UNPKG

391 kBJSONView Raw
1{"/development/breautek/storm/src/Application.ts":{"path":"/development/breautek/storm/src/Application.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":3,"column":17},"end":{"line":3,"column":34}},"2":{"start":{"line":4,"column":19},"end":{"line":4,"column":40}},"3":{"start":{"line":5,"column":17},"end":{"line":5,"column":36}},"4":{"start":{"line":6,"column":22},"end":{"line":6,"column":46}},"5":{"start":{"line":7,"column":27},"end":{"line":7,"column":56}},"6":{"start":{"line":8,"column":18},"end":{"line":8,"column":38}},"7":{"start":{"line":9,"column":19},"end":{"line":9,"column":40}},"8":{"start":{"line":10,"column":23},"end":{"line":10,"column":48}},"9":{"start":{"line":11,"column":18},"end":{"line":11,"column":38}},"10":{"start":{"line":12,"column":16},"end":{"line":12,"column":34}},"11":{"start":{"line":13,"column":19},"end":{"line":13,"column":41}},"12":{"start":{"line":14,"column":13},"end":{"line":14,"column":28}},"13":{"start":{"line":15,"column":0},"end":{"line":15,"column":40}},"14":{"start":{"line":16,"column":26},"end":{"line":16,"column":160}},"15":{"start":{"line":19,"column":8},"end":{"line":19,"column":16}},"16":{"start":{"line":20,"column":8},"end":{"line":20,"column":37}},"17":{"start":{"line":21,"column":8},"end":{"line":21,"column":40}},"18":{"start":{"line":22,"column":8},"end":{"line":22,"column":32}},"19":{"start":{"line":23,"column":8},"end":{"line":25,"column":9}},"20":{"start":{"line":24,"column":12},"end":{"line":24,"column":43}},"21":{"start":{"line":26,"column":8},"end":{"line":26,"column":42}},"22":{"start":{"line":27,"column":8},"end":{"line":27,"column":25}},"23":{"start":{"line":28,"column":8},"end":{"line":28,"column":43}},"24":{"start":{"line":29,"column":8},"end":{"line":36,"column":9}},"25":{"start":{"line":30,"column":12},"end":{"line":30,"column":46}},"26":{"start":{"line":31,"column":12},"end":{"line":31,"column":54}},"27":{"start":{"line":34,"column":12},"end":{"line":34,"column":45}},"28":{"start":{"line":35,"column":12},"end":{"line":35,"column":69}},"29":{"start":{"line":37,"column":8},"end":{"line":39,"column":11}},"30":{"start":{"line":38,"column":12},"end":{"line":38,"column":42}},"31":{"start":{"line":40,"column":8},"end":{"line":40,"column":54}},"32":{"start":{"line":41,"column":8},"end":{"line":41,"column":60}},"33":{"start":{"line":42,"column":8},"end":{"line":42,"column":59}},"34":{"start":{"line":43,"column":8},"end":{"line":43,"column":21}},"35":{"start":{"line":46,"column":8},"end":{"line":106,"column":11}},"36":{"start":{"line":47,"column":12},"end":{"line":47,"column":33}},"37":{"start":{"line":48,"column":12},"end":{"line":48,"column":60}},"38":{"start":{"line":49,"column":12},"end":{"line":49,"column":73}},"39":{"start":{"line":50,"column":12},"end":{"line":50,"column":43}},"40":{"start":{"line":51,"column":12},"end":{"line":51,"column":37}},"41":{"start":{"line":53,"column":12},"end":{"line":56,"column":13}},"42":{"start":{"line":54,"column":34},"end":{"line":54,"column":77}},"43":{"start":{"line":55,"column":16},"end":{"line":55,"column":53}},"44":{"start":{"line":57,"column":12},"end":{"line":57,"column":38}},"45":{"start":{"line":58,"column":12},"end":{"line":58,"column":57}},"46":{"start":{"line":59,"column":12},"end":{"line":59,"column":49}},"47":{"start":{"line":61,"column":12},"end":{"line":66,"column":13}},"48":{"start":{"line":62,"column":16},"end":{"line":62,"column":58}},"49":{"start":{"line":65,"column":16},"end":{"line":65,"column":65}},"50":{"start":{"line":67,"column":12},"end":{"line":67,"column":25}},"51":{"start":{"line":68,"column":12},"end":{"line":68,"column":37}},"52":{"start":{"line":70,"column":12},"end":{"line":70,"column":57}},"53":{"start":{"line":71,"column":12},"end":{"line":71,"column":36}},"54":{"start":{"line":72,"column":12},"end":{"line":75,"column":16}},"55":{"start":{"line":76,"column":12},"end":{"line":79,"column":16}},"56":{"start":{"line":80,"column":12},"end":{"line":80,"column":37}},"57":{"start":{"line":82,"column":12},"end":{"line":82,"column":60}},"58":{"start":{"line":83,"column":12},"end":{"line":83,"column":41}},"59":{"start":{"line":85,"column":12},"end":{"line":85,"column":33}},"60":{"start":{"line":86,"column":28},"end":{"line":86,"column":55}},"61":{"start":{"line":87,"column":23},"end":{"line":87,"column":44}},"62":{"start":{"line":88,"column":12},"end":{"line":101,"column":13}},"63":{"start":{"line":89,"column":16},"end":{"line":97,"column":17}},"64":{"start":{"line":90,"column":20},"end":{"line":90,"column":65}},"65":{"start":{"line":91,"column":20},"end":{"line":93,"column":23}},"66":{"start":{"line":92,"column":24},"end":{"line":92,"column":99}},"67":{"start":{"line":96,"column":20},"end":{"line":96,"column":105}},"68":{"start":{"line":100,"column":16},"end":{"line":100,"column":131}},"69":{"start":{"line":102,"column":12},"end":{"line":102,"column":27}},"70":{"start":{"line":103,"column":12},"end":{"line":103,"column":31}},"71":{"start":{"line":105,"column":12},"end":{"line":105,"column":42}},"72":{"start":{"line":109,"column":19},"end":{"line":109,"column":23}},"73":{"start":{"line":110,"column":8},"end":{"line":115,"column":9}},"74":{"start":{"line":111,"column":26},"end":{"line":111,"column":47}},"75":{"start":{"line":112,"column":12},"end":{"line":114,"column":13}},"76":{"start":{"line":113,"column":16},"end":{"line":113,"column":36}},"77":{"start":{"line":116,"column":8},"end":{"line":116,"column":20}},"78":{"start":{"line":119,"column":8},"end":{"line":119,"column":34}},"79":{"start":{"line":120,"column":18},"end":{"line":120,"column":44}},"80":{"start":{"line":121,"column":8},"end":{"line":121,"column":60}},"81":{"start":{"line":122,"column":8},"end":{"line":122,"column":77}},"82":{"start":{"line":123,"column":8},"end":{"line":123,"column":78}},"83":{"start":{"line":124,"column":8},"end":{"line":124,"column":103}},"84":{"start":{"line":125,"column":8},"end":{"line":125,"column":45}},"85":{"start":{"line":129,"column":8},"end":{"line":129,"column":29}},"86":{"start":{"line":132,"column":8},"end":{"line":132,"column":51}},"87":{"start":{"line":135,"column":22},"end":{"line":135,"column":44}},"88":{"start":{"line":136,"column":8},"end":{"line":139,"column":11}},"89":{"start":{"line":137,"column":20},"end":{"line":137,"column":50}},"90":{"start":{"line":138,"column":12},"end":{"line":138,"column":74}},"91":{"start":{"line":140,"column":8},"end":{"line":143,"column":11}},"92":{"start":{"line":141,"column":20},"end":{"line":141,"column":50}},"93":{"start":{"line":142,"column":12},"end":{"line":142,"column":75}},"94":{"start":{"line":144,"column":8},"end":{"line":147,"column":11}},"95":{"start":{"line":145,"column":20},"end":{"line":145,"column":50}},"96":{"start":{"line":146,"column":12},"end":{"line":146,"column":74}},"97":{"start":{"line":148,"column":8},"end":{"line":151,"column":11}},"98":{"start":{"line":149,"column":20},"end":{"line":149,"column":50}},"99":{"start":{"line":150,"column":12},"end":{"line":150,"column":77}},"100":{"start":{"line":154,"column":8},"end":{"line":163,"column":11}},"101":{"start":{"line":155,"column":12},"end":{"line":162,"column":13}},"102":{"start":{"line":156,"column":16},"end":{"line":158,"column":19}},"103":{"start":{"line":157,"column":20},"end":{"line":157,"column":30}},"104":{"start":{"line":161,"column":16},"end":{"line":161,"column":26}},"105":{"start":{"line":166,"column":8},"end":{"line":172,"column":11}},"106":{"start":{"line":167,"column":12},"end":{"line":171,"column":15}},"107":{"start":{"line":168,"column":16},"end":{"line":168,"column":32}},"108":{"start":{"line":170,"column":16},"end":{"line":170,"column":39}},"109":{"start":{"line":175,"column":8},"end":{"line":175,"column":25}},"110":{"start":{"line":178,"column":8},"end":{"line":178,"column":29}},"111":{"start":{"line":181,"column":8},"end":{"line":181,"column":27}},"112":{"start":{"line":184,"column":8},"end":{"line":184,"column":27}},"113":{"start":{"line":187,"column":8},"end":{"line":187,"column":20}},"114":{"start":{"line":191,"column":8},"end":{"line":191,"column":41}},"115":{"start":{"line":194,"column":8},"end":{"line":194,"column":33}},"116":{"start":{"line":197,"column":8},"end":{"line":197,"column":23}},"117":{"start":{"line":200,"column":22},"end":{"line":200,"column":35}},"118":{"start":{"line":201,"column":16},"end":{"line":201,"column":18}},"119":{"start":{"line":202,"column":8},"end":{"line":204,"column":9}},"120":{"start":{"line":203,"column":12},"end":{"line":203,"column":21}},"121":{"start":{"line":205,"column":8},"end":{"line":207,"column":9}},"122":{"start":{"line":206,"column":12},"end":{"line":206,"column":43}},"123":{"start":{"line":208,"column":8},"end":{"line":210,"column":9}},"124":{"start":{"line":209,"column":12},"end":{"line":209,"column":34}},"125":{"start":{"line":211,"column":8},"end":{"line":213,"column":9}},"126":{"start":{"line":212,"column":12},"end":{"line":212,"column":67}},"127":{"start":{"line":214,"column":8},"end":{"line":214,"column":17}},"128":{"start":{"line":217,"column":8},"end":{"line":217,"column":37}},"129":{"start":{"line":220,"column":8},"end":{"line":220,"column":51}},"130":{"start":{"line":223,"column":8},"end":{"line":223,"column":33}},"131":{"start":{"line":226,"column":23},"end":{"line":226,"column":39}},"132":{"start":{"line":227,"column":23},"end":{"line":227,"column":27}},"133":{"start":{"line":228,"column":8},"end":{"line":230,"column":9}},"134":{"start":{"line":229,"column":12},"end":{"line":229,"column":24}},"135":{"start":{"line":231,"column":8},"end":{"line":231,"column":49}},"136":{"start":{"line":232,"column":8},"end":{"line":234,"column":9}},"137":{"start":{"line":233,"column":12},"end":{"line":233,"column":49}},"138":{"start":{"line":235,"column":8},"end":{"line":257,"column":9}},"139":{"start":{"line":236,"column":12},"end":{"line":236,"column":55}},"140":{"start":{"line":239,"column":26},"end":{"line":239,"column":45}},"141":{"start":{"line":240,"column":12},"end":{"line":256,"column":13}},"142":{"start":{"line":240,"column":25},"end":{"line":240,"column":26}},"143":{"start":{"line":241,"column":29},"end":{"line":241,"column":39}},"144":{"start":{"line":242,"column":16},"end":{"line":242,"column":39}},"145":{"start":{"line":243,"column":16},"end":{"line":245,"column":17}},"146":{"start":{"line":244,"column":20},"end":{"line":244,"column":29}},"147":{"start":{"line":246,"column":28},"end":{"line":246,"column":57}},"148":{"start":{"line":247,"column":16},"end":{"line":249,"column":17}},"149":{"start":{"line":248,"column":20},"end":{"line":248,"column":29}},"150":{"start":{"line":250,"column":16},"end":{"line":255,"column":17}},"151":{"start":{"line":251,"column":20},"end":{"line":251,"column":37}},"152":{"start":{"line":254,"column":20},"end":{"line":254,"column":48}},"153":{"start":{"line":258,"column":8},"end":{"line":258,"column":24}},"154":{"start":{"line":261,"column":8},"end":{"line":278,"column":9}},"155":{"start":{"line":263,"column":16},"end":{"line":263,"column":53}},"156":{"start":{"line":265,"column":16},"end":{"line":265,"column":55}},"157":{"start":{"line":267,"column":16},"end":{"line":267,"column":55}},"158":{"start":{"line":269,"column":16},"end":{"line":269,"column":54}},"159":{"start":{"line":271,"column":16},"end":{"line":271,"column":57}},"160":{"start":{"line":273,"column":16},"end":{"line":273,"column":55}},"161":{"start":{"line":275,"column":16},"end":{"line":275,"column":55}},"162":{"start":{"line":277,"column":16},"end":{"line":277,"column":28}},"163":{"start":{"line":283,"column":0},"end":{"line":283,"column":34}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":18,"column":4},"end":{"line":18,"column":5}},"loc":{"start":{"line":18,"column":47},"end":{"line":44,"column":5}},"line":18},"1":{"name":"(anonymous_1)","decl":{"start":{"line":37,"column":41},"end":{"line":37,"column":42}},"loc":{"start":{"line":37,"column":52},"end":{"line":39,"column":9}},"line":37},"2":{"name":"(anonymous_2)","decl":{"start":{"line":45,"column":4},"end":{"line":45,"column":5}},"loc":{"start":{"line":45,"column":12},"end":{"line":107,"column":5}},"line":45},"3":{"name":"(anonymous_3)","decl":{"start":{"line":46,"column":46},"end":{"line":46,"column":47}},"loc":{"start":{"line":46,"column":58},"end":{"line":52,"column":9}},"line":46},"4":{"name":"(anonymous_4)","decl":{"start":{"line":52,"column":16},"end":{"line":52,"column":17}},"loc":{"start":{"line":52,"column":22},"end":{"line":60,"column":9}},"line":52},"5":{"name":"(anonymous_5)","decl":{"start":{"line":60,"column":16},"end":{"line":60,"column":17}},"loc":{"start":{"line":60,"column":24},"end":{"line":69,"column":9}},"line":60},"6":{"name":"(anonymous_6)","decl":{"start":{"line":69,"column":16},"end":{"line":69,"column":17}},"loc":{"start":{"line":69,"column":22},"end":{"line":81,"column":9}},"line":69},"7":{"name":"(anonymous_7)","decl":{"start":{"line":81,"column":16},"end":{"line":81,"column":17}},"loc":{"start":{"line":81,"column":22},"end":{"line":84,"column":9}},"line":81},"8":{"name":"(anonymous_8)","decl":{"start":{"line":84,"column":16},"end":{"line":84,"column":17}},"loc":{"start":{"line":84,"column":22},"end":{"line":104,"column":9}},"line":84},"9":{"name":"(anonymous_9)","decl":{"start":{"line":91,"column":56},"end":{"line":91,"column":57}},"loc":{"start":{"line":91,"column":62},"end":{"line":93,"column":21}},"line":91},"10":{"name":"(anonymous_10)","decl":{"start":{"line":104,"column":17},"end":{"line":104,"column":18}},"loc":{"start":{"line":104,"column":28},"end":{"line":106,"column":9}},"line":104},"11":{"name":"(anonymous_11)","decl":{"start":{"line":108,"column":4},"end":{"line":108,"column":5}},"loc":{"start":{"line":108,"column":14},"end":{"line":117,"column":5}},"line":108},"12":{"name":"(anonymous_12)","decl":{"start":{"line":118,"column":4},"end":{"line":118,"column":5}},"loc":{"start":{"line":118,"column":23},"end":{"line":126,"column":5}},"line":118},"13":{"name":"(anonymous_13)","decl":{"start":{"line":127,"column":4},"end":{"line":127,"column":5}},"loc":{"start":{"line":127,"column":30},"end":{"line":127,"column":33}},"line":127},"14":{"name":"(anonymous_14)","decl":{"start":{"line":128,"column":4},"end":{"line":128,"column":5}},"loc":{"start":{"line":128,"column":17},"end":{"line":130,"column":5}},"line":128},"15":{"name":"(anonymous_15)","decl":{"start":{"line":131,"column":4},"end":{"line":131,"column":5}},"loc":{"start":{"line":131,"column":26},"end":{"line":133,"column":5}},"line":131},"16":{"name":"(anonymous_16)","decl":{"start":{"line":134,"column":4},"end":{"line":134,"column":5}},"loc":{"start":{"line":134,"column":38},"end":{"line":152,"column":5}},"line":134},"17":{"name":"(anonymous_17)","decl":{"start":{"line":136,"column":30},"end":{"line":136,"column":31}},"loc":{"start":{"line":136,"column":53},"end":{"line":139,"column":9}},"line":136},"18":{"name":"(anonymous_18)","decl":{"start":{"line":140,"column":31},"end":{"line":140,"column":32}},"loc":{"start":{"line":140,"column":54},"end":{"line":143,"column":9}},"line":140},"19":{"name":"(anonymous_19)","decl":{"start":{"line":144,"column":30},"end":{"line":144,"column":31}},"loc":{"start":{"line":144,"column":53},"end":{"line":147,"column":9}},"line":144},"20":{"name":"(anonymous_20)","decl":{"start":{"line":148,"column":33},"end":{"line":148,"column":34}},"loc":{"start":{"line":148,"column":56},"end":{"line":151,"column":9}},"line":148},"21":{"name":"(anonymous_21)","decl":{"start":{"line":153,"column":4},"end":{"line":153,"column":5}},"loc":{"start":{"line":153,"column":12},"end":{"line":164,"column":5}},"line":153},"22":{"name":"(anonymous_22)","decl":{"start":{"line":154,"column":27},"end":{"line":154,"column":28}},"loc":{"start":{"line":154,"column":48},"end":{"line":163,"column":9}},"line":154},"23":{"name":"(anonymous_23)","decl":{"start":{"line":156,"column":34},"end":{"line":156,"column":35}},"loc":{"start":{"line":156,"column":40},"end":{"line":158,"column":17}},"line":156},"24":{"name":"(anonymous_24)","decl":{"start":{"line":165,"column":4},"end":{"line":165,"column":5}},"loc":{"start":{"line":165,"column":21},"end":{"line":173,"column":5}},"line":165},"25":{"name":"(anonymous_25)","decl":{"start":{"line":166,"column":27},"end":{"line":166,"column":28}},"loc":{"start":{"line":166,"column":48},"end":{"line":172,"column":9}},"line":166},"26":{"name":"(anonymous_26)","decl":{"start":{"line":167,"column":56},"end":{"line":167,"column":57}},"loc":{"start":{"line":167,"column":68},"end":{"line":169,"column":13}},"line":167},"27":{"name":"(anonymous_27)","decl":{"start":{"line":169,"column":21},"end":{"line":169,"column":22}},"loc":{"start":{"line":169,"column":35},"end":{"line":171,"column":13}},"line":169},"28":{"name":"(anonymous_28)","decl":{"start":{"line":174,"column":4},"end":{"line":174,"column":5}},"loc":{"start":{"line":174,"column":14},"end":{"line":176,"column":5}},"line":174},"29":{"name":"(anonymous_29)","decl":{"start":{"line":177,"column":4},"end":{"line":177,"column":5}},"loc":{"start":{"line":177,"column":22},"end":{"line":179,"column":5}},"line":177},"30":{"name":"(anonymous_30)","decl":{"start":{"line":180,"column":4},"end":{"line":180,"column":5}},"loc":{"start":{"line":180,"column":16},"end":{"line":182,"column":5}},"line":180},"31":{"name":"(anonymous_31)","decl":{"start":{"line":183,"column":4},"end":{"line":183,"column":5}},"loc":{"start":{"line":183,"column":16},"end":{"line":185,"column":5}},"line":183},"32":{"name":"(anonymous_32)","decl":{"start":{"line":186,"column":4},"end":{"line":186,"column":5}},"loc":{"start":{"line":186,"column":19},"end":{"line":188,"column":5}},"line":186},"33":{"name":"(anonymous_33)","decl":{"start":{"line":189,"column":4},"end":{"line":189,"column":5}},"loc":{"start":{"line":189,"column":25},"end":{"line":189,"column":28}},"line":189},"34":{"name":"(anonymous_34)","decl":{"start":{"line":190,"column":4},"end":{"line":190,"column":5}},"loc":{"start":{"line":190,"column":34},"end":{"line":192,"column":5}},"line":190},"35":{"name":"(anonymous_35)","decl":{"start":{"line":193,"column":4},"end":{"line":193,"column":5}},"loc":{"start":{"line":193,"column":22},"end":{"line":195,"column":5}},"line":193},"36":{"name":"(anonymous_36)","decl":{"start":{"line":196,"column":4},"end":{"line":196,"column":5}},"loc":{"start":{"line":196,"column":12},"end":{"line":198,"column":5}},"line":196},"37":{"name":"(anonymous_37)","decl":{"start":{"line":199,"column":4},"end":{"line":199,"column":5}},"loc":{"start":{"line":199,"column":21},"end":{"line":215,"column":5}},"line":199},"38":{"name":"(anonymous_38)","decl":{"start":{"line":216,"column":4},"end":{"line":216,"column":5}},"loc":{"start":{"line":216,"column":19},"end":{"line":218,"column":5}},"line":216},"39":{"name":"(anonymous_39)","decl":{"start":{"line":219,"column":4},"end":{"line":219,"column":5}},"loc":{"start":{"line":219,"column":20},"end":{"line":221,"column":5}},"line":219},"40":{"name":"(anonymous_40)","decl":{"start":{"line":222,"column":4},"end":{"line":222,"column":5}},"loc":{"start":{"line":222,"column":26},"end":{"line":224,"column":5}},"line":222},"41":{"name":"(anonymous_41)","decl":{"start":{"line":225,"column":4},"end":{"line":225,"column":5}},"loc":{"start":{"line":225,"column":33},"end":{"line":259,"column":5}},"line":225},"42":{"name":"(anonymous_42)","decl":{"start":{"line":260,"column":4},"end":{"line":260,"column":5}},"loc":{"start":{"line":260,"column":25},"end":{"line":279,"column":5}},"line":260},"43":{"name":"(anonymous_43)","decl":{"start":{"line":280,"column":4},"end":{"line":280,"column":5}},"loc":{"start":{"line":280,"column":20},"end":{"line":280,"column":23}},"line":280},"44":{"name":"(anonymous_44)","decl":{"start":{"line":281,"column":4},"end":{"line":281,"column":5}},"loc":{"start":{"line":281,"column":14},"end":{"line":281,"column":17}},"line":281}},"branchMap":{"0":{"loc":{"start":{"line":23,"column":8},"end":{"line":25,"column":9}},"type":"if","locations":[{"start":{"line":23,"column":8},"end":{"line":25,"column":9}},{"start":{"line":23,"column":8},"end":{"line":25,"column":9}}],"line":23},"1":{"loc":{"start":{"line":29,"column":8},"end":{"line":36,"column":9}},"type":"if","locations":[{"start":{"line":29,"column":8},"end":{"line":36,"column":9}},{"start":{"line":29,"column":8},"end":{"line":36,"column":9}}],"line":29},"2":{"loc":{"start":{"line":40,"column":26},"end":{"line":40,"column":53}},"type":"binary-expr","locations":[{"start":{"line":40,"column":26},"end":{"line":40,"column":36}},{"start":{"line":40,"column":40},"end":{"line":40,"column":53}}],"line":40},"3":{"loc":{"start":{"line":53,"column":12},"end":{"line":56,"column":13}},"type":"if","locations":[{"start":{"line":53,"column":12},"end":{"line":56,"column":13}},{"start":{"line":53,"column":12},"end":{"line":56,"column":13}}],"line":53},"4":{"loc":{"start":{"line":61,"column":12},"end":{"line":66,"column":13}},"type":"if","locations":[{"start":{"line":61,"column":12},"end":{"line":66,"column":13}},{"start":{"line":61,"column":12},"end":{"line":66,"column":13}}],"line":61},"5":{"loc":{"start":{"line":88,"column":12},"end":{"line":101,"column":13}},"type":"if","locations":[{"start":{"line":88,"column":12},"end":{"line":101,"column":13}},{"start":{"line":88,"column":12},"end":{"line":101,"column":13}}],"line":88},"6":{"loc":{"start":{"line":88,"column":16},"end":{"line":88,"column":58}},"type":"binary-expr","locations":[{"start":{"line":88,"column":16},"end":{"line":88,"column":34}},{"start":{"line":88,"column":38},"end":{"line":88,"column":58}}],"line":88},"7":{"loc":{"start":{"line":89,"column":16},"end":{"line":97,"column":17}},"type":"if","locations":[{"start":{"line":89,"column":16},"end":{"line":97,"column":17}},{"start":{"line":89,"column":16},"end":{"line":97,"column":17}}],"line":89},"8":{"loc":{"start":{"line":110,"column":8},"end":{"line":115,"column":9}},"type":"if","locations":[{"start":{"line":110,"column":8},"end":{"line":115,"column":9}},{"start":{"line":110,"column":8},"end":{"line":115,"column":9}}],"line":110},"9":{"loc":{"start":{"line":110,"column":12},"end":{"line":110,"column":48}},"type":"binary-expr","locations":[{"start":{"line":110,"column":12},"end":{"line":110,"column":23}},{"start":{"line":110,"column":27},"end":{"line":110,"column":48}}],"line":110},"10":{"loc":{"start":{"line":112,"column":12},"end":{"line":114,"column":13}},"type":"if","locations":[{"start":{"line":112,"column":12},"end":{"line":114,"column":13}},{"start":{"line":112,"column":12},"end":{"line":114,"column":13}}],"line":112},"11":{"loc":{"start":{"line":155,"column":12},"end":{"line":162,"column":13}},"type":"if","locations":[{"start":{"line":155,"column":12},"end":{"line":162,"column":13}},{"start":{"line":155,"column":12},"end":{"line":162,"column":13}}],"line":155},"12":{"loc":{"start":{"line":155,"column":16},"end":{"line":155,"column":52}},"type":"binary-expr","locations":[{"start":{"line":155,"column":16},"end":{"line":155,"column":27}},{"start":{"line":155,"column":31},"end":{"line":155,"column":52}}],"line":155},"13":{"loc":{"start":{"line":202,"column":8},"end":{"line":204,"column":9}},"type":"if","locations":[{"start":{"line":202,"column":8},"end":{"line":204,"column":9}},{"start":{"line":202,"column":8},"end":{"line":204,"column":9}}],"line":202},"14":{"loc":{"start":{"line":205,"column":8},"end":{"line":207,"column":9}},"type":"if","locations":[{"start":{"line":205,"column":8},"end":{"line":207,"column":9}},{"start":{"line":205,"column":8},"end":{"line":207,"column":9}}],"line":205},"15":{"loc":{"start":{"line":208,"column":8},"end":{"line":210,"column":9}},"type":"if","locations":[{"start":{"line":208,"column":8},"end":{"line":210,"column":9}},{"start":{"line":208,"column":8},"end":{"line":210,"column":9}}],"line":208},"16":{"loc":{"start":{"line":211,"column":8},"end":{"line":213,"column":9}},"type":"if","locations":[{"start":{"line":211,"column":8},"end":{"line":213,"column":9}},{"start":{"line":211,"column":8},"end":{"line":213,"column":9}}],"line":211},"17":{"loc":{"start":{"line":228,"column":8},"end":{"line":230,"column":9}},"type":"if","locations":[{"start":{"line":228,"column":8},"end":{"line":230,"column":9}},{"start":{"line":228,"column":8},"end":{"line":230,"column":9}}],"line":228},"18":{"loc":{"start":{"line":232,"column":8},"end":{"line":234,"column":9}},"type":"if","locations":[{"start":{"line":232,"column":8},"end":{"line":234,"column":9}},{"start":{"line":232,"column":8},"end":{"line":234,"column":9}}],"line":232},"19":{"loc":{"start":{"line":235,"column":8},"end":{"line":257,"column":9}},"type":"if","locations":[{"start":{"line":235,"column":8},"end":{"line":257,"column":9}},{"start":{"line":235,"column":8},"end":{"line":257,"column":9}}],"line":235},"20":{"loc":{"start":{"line":243,"column":16},"end":{"line":245,"column":17}},"type":"if","locations":[{"start":{"line":243,"column":16},"end":{"line":245,"column":17}},{"start":{"line":243,"column":16},"end":{"line":245,"column":17}}],"line":243},"21":{"loc":{"start":{"line":247,"column":16},"end":{"line":249,"column":17}},"type":"if","locations":[{"start":{"line":247,"column":16},"end":{"line":249,"column":17}},{"start":{"line":247,"column":16},"end":{"line":249,"column":17}}],"line":247},"22":{"loc":{"start":{"line":250,"column":16},"end":{"line":255,"column":17}},"type":"if","locations":[{"start":{"line":250,"column":16},"end":{"line":255,"column":17}},{"start":{"line":250,"column":16},"end":{"line":255,"column":17}}],"line":250},"23":{"loc":{"start":{"line":261,"column":8},"end":{"line":278,"column":9}},"type":"switch","locations":[{"start":{"line":262,"column":12},"end":{"line":263,"column":53}},{"start":{"line":264,"column":12},"end":{"line":265,"column":55}},{"start":{"line":266,"column":12},"end":{"line":267,"column":55}},{"start":{"line":268,"column":12},"end":{"line":269,"column":54}},{"start":{"line":270,"column":12},"end":{"line":271,"column":57}},{"start":{"line":272,"column":12},"end":{"line":273,"column":55}},{"start":{"line":274,"column":12},"end":{"line":275,"column":55}},{"start":{"line":276,"column":12},"end":{"line":277,"column":28}}],"line":261}},"s":{"0":1,"1":1,"2":1,"3":1,"4":1,"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":25,"16":25,"17":25,"18":25,"19":25,"20":25,"21":25,"22":25,"23":25,"24":25,"25":21,"26":21,"27":4,"28":4,"29":25,"30":0,"31":25,"32":25,"33":25,"34":25,"35":25,"36":25,"37":25,"38":25,"39":25,"40":25,"41":25,"42":4,"43":4,"44":25,"45":25,"46":25,"47":25,"48":21,"49":4,"50":25,"51":25,"52":25,"53":25,"54":25,"55":25,"56":25,"57":25,"58":25,"59":25,"60":25,"61":25,"62":25,"63":23,"64":21,"65":21,"66":21,"67":2,"68":2,"69":25,"70":25,"71":0,"72":63,"73":63,"74":63,"75":63,"76":63,"77":63,"78":25,"79":25,"80":25,"81":25,"82":25,"83":25,"84":25,"85":1,"86":51,"87":78,"88":78,"89":27,"90":27,"91":78,"92":6,"93":6,"94":78,"95":4,"96":4,"97":78,"98":4,"99":4,"100":23,"101":23,"102":21,"103":21,"104":2,"105":23,"106":23,"107":23,"108":0,"109":24,"110":2,"111":471,"112":255,"113":21,"114":2,"115":1,"116":10,"117":26,"118":26,"119":26,"120":0,"121":26,"122":0,"123":26,"124":0,"125":26,"126":0,"127":26,"128":4,"129":2,"130":4,"131":4,"132":4,"133":4,"134":0,"135":4,"136":4,"137":1,"138":3,"139":0,"140":3,"141":3,"142":3,"143":6,"144":6,"145":6,"146":0,"147":6,"148":6,"149":0,"150":6,"151":3,"152":3,"153":3,"154":14,"155":1,"156":1,"157":1,"158":1,"159":1,"160":4,"161":4,"162":1,"163":1},"f":{"0":25,"1":0,"2":25,"3":25,"4":25,"5":25,"6":25,"7":25,"8":25,"9":21,"10":0,"11":63,"12":25,"13":25,"14":1,"15":51,"16":78,"17":27,"18":6,"19":4,"20":4,"21":23,"22":23,"23":21,"24":23,"25":23,"26":23,"27":0,"28":24,"29":2,"30":471,"31":255,"32":21,"33":25,"34":2,"35":1,"36":10,"37":26,"38":4,"39":2,"40":4,"41":4,"42":14,"43":25,"44":25},"b":{"0":[25,0],"1":[21,4],"2":[25,0],"3":[4,21],"4":[21,4],"5":[23,2],"6":[25,23],"7":[21,2],"8":[63,0],"9":[63,63],"10":[63,0],"11":[21,2],"12":[23,22],"13":[0,26],"14":[0,26],"15":[0,26],"16":[0,26],"17":[0,4],"18":[1,3],"19":[0,3],"20":[0,6],"21":[0,6],"22":[3,3],"23":[1,1,1,1,1,4,4,1]},"inputSourceMap":{"version":3,"file":"/development/breautek/storm/src/Application.ts","sources":["/development/breautek/storm/src/Application.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (C) 2017 Norman Breau\r\n\r\n// This program is free software: you can redistribute it and/or modify\r\n// it under the terms of the GNU General Public License as published by\r\n// the Free Software Foundation, either version 3 of the License, or\r\n// (at your option) any later version.\r\n\r\n// This program is distributed in the hope that it will be useful,\r\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\r\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\r\n// GNU General Public License for more details.\r\n\r\n// You should have received a copy of the GNU General Public License\r\n// along with this program. If not, see <http://www.gnu.org/licenses/>.\r\n\r\nimport {EventEmitter} from 'events';\r\nimport {setInstance} from './instance';\r\nimport {Logger} from './Logger';\r\nimport {LogSeverity} from './LogSeverity';\r\nimport {TokenManager} from './TokenManager';\r\nimport {ApplicationEvent} from './ApplicationEvent';\r\nimport {ExitCode} from './ExitCode';\r\nimport {Database} from './Database';\r\nimport {Handler} from './Handler';\r\nimport {IHandler} from './IHandler';\r\nimport {Request} from './Request';\r\nimport {Response} from './Response';\r\nimport {ConfigLoader} from './ConfigLoader';\r\nimport {IConfig} from './IConfig';\r\nimport Commander = require('commander');\r\nimport * as Express from 'express';\r\nimport * as BodyParser from 'body-parser';\r\nimport * as http from 'http';\r\n\r\nrequire('source-map-support').install();\r\n\r\n/**\r\n * The default log level to log informational, warnings, errors, and fatal messages.\r\n */\r\nconst DEFAULT_LOG_LEVEL = LogSeverity.INFO | LogSeverity.WARNING | LogSeverity.ERROR | LogSeverity.FATAL;\r\n\r\n/**\r\n * Main entry point for the Application. Should be extended and have the abstract methods implemented.\r\n */\r\nexport abstract class Application extends EventEmitter {\r\n private logger: Logger;\r\n private name: string;\r\n private configPath: string;\r\n private config: IConfig;\r\n private tokenManager: TokenManager;\r\n private server: Express.Application;\r\n private db: Database;\r\n private _logConfigDefaulting: boolean;\r\n private _isTestEnvironment: boolean;\r\n private socket: http.Server;\r\n\r\n // private _argv: any;\r\n private _program: Commander.CommanderStatic;\r\n\r\n /**\r\n * \r\n * @param name The application name\r\n * @param configPath The directory where bt-config.json and bt-local-config.json can be found. Defaults to current working directory.\r\n * @param logSeverity Log severity. Defaults to INFO | WARNING | ERROR | FATAL\r\n */\r\n public constructor(name: string, configPath: string, logSeverity?: LogSeverity) {\r\n super();\r\n\r\n setInstance(this);\r\n\r\n this._isTestEnvironment = false;\r\n \r\n this.$buildArgOptions();\r\n\r\n if ((<any>global).jasmine) {\r\n // We are in a test development\r\n this._isTestEnvironment = true;\r\n }\r\n\r\n this._program.parse(process.argv);\r\n\r\n this.name = name;\r\n this.logger = this._createLogger();\r\n\r\n if (logSeverity) {\r\n this._logConfigDefaulting = false;\r\n this.getLogger().setLogLevel(logSeverity);\r\n }\r\n else {\r\n this._logConfigDefaulting = true;\r\n this.getLogger().setLogLevel(this._getDefaultLogLevel());\r\n }\r\n\r\n process.on('unhandledRejection', (error: any) => {\r\n this.getLogger().fatal(error);\r\n });\r\n\r\n this.configPath = configPath || process.cwd();\r\n\r\n this.getLogger().trace('Application is booting...');\r\n this.getLogger().trace('Loading Configuration...');\r\n\r\n this._load();\r\n }\r\n\r\n private _load(): void {\r\n this.loadConfig(this.configPath).then((config: IConfig) => {\r\n this.config = config;\r\n this.getLogger().trace('Configuration loaded.');\r\n this.emit(ApplicationEvent.CONFIG_LOADED);\r\n this.onConfigLoad(this.config);\r\n return Promise.resolve();\r\n }).then(() => {\r\n if (this._logConfigDefaulting) {\r\n let logSeverity: LogSeverity = this._parseLogLevelConfig(this.getConfig());\r\n this.logger.setLogLevel(logSeverity);\r\n }\r\n\r\n this.logger.loadFilters();\r\n\r\n this.getLogger().trace('Initializing DB...');\r\n\r\n return this.initDB(this.getConfig());\r\n }).then((db: Database) => {\r\n if (db) {\r\n this.getLogger().trace('DB Initialized.');\r\n }\r\n else {\r\n this.getLogger().trace('DB is not initialized.');\r\n }\r\n this.db = db;\r\n\r\n return Promise.resolve();\r\n }).then(() => {\r\n this.getLogger().trace('Starting server...');\r\n this.server = Express();\r\n this.server.use(BodyParser.json({\r\n type : 'application/json',\r\n limit : this.getRequestSizeLimit()\r\n }));\r\n this.server.use(BodyParser.text({\r\n type : 'text/*',\r\n limit : this.getRequestSizeLimit()\r\n }));\r\n\r\n return Promise.resolve();\r\n }).then(() => {\r\n this.getLogger().trace('Attaching handlers...');\r\n return this.attachHandlers();\r\n }).then(() => {\r\n this.onBeforeReady();\r\n \r\n let bindingIP: string = this.getConfig().binding_ip;\r\n let port: number = this.getConfig().port;\r\n \r\n if (bindingIP !== null && bindingIP !== 'null') {\r\n if (this.shouldListen()) {\r\n this.socket = http.createServer(this.server);\r\n this.socket.listen(port, bindingIP, () => {\r\n this.getLogger().trace(`Server started on ${bindingIP}:${this.getPort()}`);\r\n });\r\n }\r\n else {\r\n this.getLogger().trace('Server did not bind because shouldListen() returned false.');\r\n }\r\n }\r\n else {\r\n this.getLogger().info(`Server does not have a bounding IP set. The server will not be listening for connections.`);\r\n }\r\n\r\n this.onReady();\r\n this.emit('ready');\r\n }).catch((error) => {\r\n this.getLogger().fatal(error);\r\n });\r\n }\r\n\r\n public getPort(): number {\r\n let port: number = null;\r\n if (this.socket && this.socket.listening) {\r\n let address = this.socket.address();\r\n if (typeof address !== 'string') {\r\n port = address.port;\r\n }\r\n }\r\n return port;\r\n }\r\n\r\n private $buildArgOptions() {\r\n this._program = Commander;\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-var-requires\r\n let pkg: any = require('../package.json');\r\n \r\n this._program.version(pkg.version, '-v, --version');\r\n this._program.option('--port <port>', 'The running port to consume');\r\n this._program.option('--binding <ip>', 'The binding IP to listen on');\r\n this._program.option('--authentication_header', 'The header name of the authentication token');\r\n\r\n this._buildArgOptions(this._program);\r\n }\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-empty-function\r\n protected _buildArgOptions(program: Commander.CommanderStatic): void {}\r\n\r\n public getProgram(): Commander.CommanderStatic {\r\n return this._program;\r\n }\r\n\r\n /**\r\n * The maximum size limit for incoming requests that this service needs to handle.\r\n */\r\n public getRequestSizeLimit(): number {\r\n return this.getConfig().request_size_limit;\r\n }\r\n\r\n /**\r\n * \r\n * @param path The URL API path. E.g. /api/myService/myCommand/\r\n * @param HandlerClass The concrete class (not the instance) of Handler to be used for this API.\r\n */\r\n public attachHandler(path: string, HandlerClass: IHandler): void {\r\n let handler: Handler = new HandlerClass(this);\r\n this.server.get(path, (request: Express.Request, response: Express.Response) => {\r\n let r: Request = new Request(request);\r\n handler.get(r, new Response(response, r.getURL()));\r\n });\r\n this.server.post(path, (request: Express.Request, response: Express.Response) => {\r\n let r: Request = new Request(request);\r\n handler.post(r, new Response(response, r.getURL()));\r\n });\r\n this.server.put(path, (request: Express.Request, response: Express.Response) => {\r\n let r: Request = new Request(request);\r\n handler.put(r, new Response(response, r.getURL()));\r\n });\r\n this.server.delete(path, (request: Express.Request, response: Express.Response) => {\r\n let r: Request = new Request(request);\r\n handler.delete(r, new Response(response, r.getURL()));\r\n });\r\n }\r\n\r\n public close(): Promise<void> {\r\n return new Promise<void>((resolve, reject) => {\r\n if (this.socket && this.socket.listening) {\r\n this.socket.close(() => {\r\n resolve();\r\n });\r\n }\r\n else {\r\n resolve();\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * Subclasses are expected to attach the API handlers for their service. This will be invoked during application startup.\r\n * @returns Promise<void>\r\n */\r\n protected abstract attachHandlers(): Promise<void>;\r\n\r\n /**\r\n * \r\n * @param path The directory path that contains bt-config.json and bt-local-config.json\r\n */\r\n public loadConfig(path: string): Promise<IConfig> {\r\n return new Promise<IConfig>((resolve, reject) => {\r\n ConfigLoader.load(path).then((config: IConfig) => {\r\n resolve(config);\r\n }).catch((exitCode: ExitCode) => {\r\n process.exit(exitCode);\r\n });\r\n });\r\n }\r\n\r\n /**\r\n * @returns the application name\r\n */\r\n public getName(): string {\r\n return this.name;\r\n }\r\n\r\n /**\r\n * \r\n * @param logger Logger class to use\r\n */\r\n public setLogger(logger: Logger): void {\r\n this.logger = logger;\r\n }\r\n\r\n /**\r\n * @returns the application's logger\r\n */\r\n public getLogger(): Logger {\r\n return this.logger;\r\n }\r\n\r\n /**\r\n * @returns the config object.\r\n */\r\n public getConfig(): IConfig {\r\n return this.config;\r\n }\r\n\r\n /**\r\n * @returns true if the Application should bind to an IP address\r\n */\r\n public shouldListen(): boolean {\r\n return true;\r\n }\r\n\r\n /**\r\n * Invoked once the config has been loaded and ready to be used.\r\n * \r\n * @param config The config object (as defined in bt-config.json/bt-local-config.json)\r\n */\r\n protected onConfigLoad(config: IConfig): void {}\r\n\r\n /**\r\n * Sets the TokenManager to be used for authentication.\r\n * @param tokenManager \r\n */\r\n public setTokenManager(tokenManager: TokenManager): void {\r\n this.tokenManager = tokenManager;\r\n }\r\n\r\n /**\r\n * @returns the token manager\r\n */\r\n public getTokenManager(): TokenManager {\r\n return this.tokenManager;\r\n }\r\n\r\n /**\r\n * @returns the database pool. This will need to be casted based on your preferred database dialect.\r\n */\r\n public getDB(): Database {\r\n return this.db;\r\n }\r\n\r\n /**\r\n * @returns command line arguments\r\n */\r\n public getCmdLineArgs(): any {\r\n let program: Commander.CommanderStatic = this._program;\r\n let o: any = {};\r\n\r\n if (!program) {\r\n return o;\r\n }\r\n\r\n if (program.binding !== undefined) {\r\n // eslint-disable-next-line @typescript-eslint/camelcase\r\n o.binding_ip = program.binding;\r\n }\r\n\r\n if (program.port !== undefined) {\r\n o.port = program.port;\r\n }\r\n\r\n if (program.authenticationHeader !== undefined) {\r\n // eslint-disable-next-line @typescript-eslint/camelcase\r\n o.authentication_header = program.authenticationHeader;\r\n }\r\n\r\n return o;\r\n }\r\n\r\n /**\r\n * Subclasses are expected to override this to configure their database setup, if the service uses a database.\r\n * @param config The bt-config object\r\n */\r\n protected initDB(config: IConfig): Promise<Database> {\r\n return Promise.resolve(null);\r\n }\r\n\r\n /**\r\n * Creates the logger instance used by the application\r\n * @returns Logger\r\n */\r\n protected _createLogger(): Logger {\r\n return new Logger(this.getName());\r\n }\r\n\r\n /**\r\n * Sets the default log level on the Logger\r\n */\r\n protected _getDefaultLogLevel(): LogSeverity {\r\n return DEFAULT_LOG_LEVEL;\r\n }\r\n\r\n /**\r\n * Parses the log severity flags from the config object.\r\n * @param config bt-config object\r\n * @returns the severity mask\r\n */\r\n protected _parseLogLevelConfig(config: IConfig): LogSeverity {\r\n let llConfig: string = config.log_level;\r\n let severity: LogSeverity = null;\r\n\r\n if (!llConfig) {\r\n return null;\r\n }\r\n\r\n llConfig = llConfig.toLowerCase().trim();\r\n\r\n if (llConfig.indexOf('all') > -1) {\r\n return LogSeverity.ALL;\r\n }\r\n\r\n if (llConfig.indexOf('|') === -1) {\r\n severity = this._llStrToSeverity(llConfig);\r\n }\r\n else {\r\n let llParts: Array<string> = llConfig.split('|');\r\n for (let i: number = 0; i < llParts.length; i++) {\r\n let llPart: string = llParts[i];\r\n llPart = llPart.trim();\r\n if (llPart === '') {\r\n continue;\r\n }\r\n\r\n /* istanbul ignore next */\r\n let llSev: LogSeverity = this._llStrToSeverity(llPart);\r\n if (!llSev) {\r\n continue;\r\n }\r\n\r\n if (!severity) {\r\n severity = llSev;\r\n }\r\n else {\r\n severity = severity | llSev;\r\n }\r\n }\r\n }\r\n\r\n return severity;\r\n }\r\n\r\n /**\r\n * Translates the severity string to its corresponding enumeration value.\r\n * @param ll sevierty string\r\n */\r\n protected _llStrToSeverity(ll: string): LogSeverity {\r\n switch (ll) {\r\n case 'all':\r\n return LogSeverity.ALL;\r\n case 'trace':\r\n return LogSeverity.TRACE;\r\n case 'debug':\r\n return LogSeverity.DEBUG;\r\n case 'info':\r\n return LogSeverity.INFO;\r\n case 'warning':\r\n return LogSeverity.WARNING;\r\n case 'error':\r\n return LogSeverity.ERROR;\r\n case 'fatal':\r\n return LogSeverity.FATAL;\r\n default:\r\n return null;\r\n }\r\n }\r\n\r\n protected onBeforeReady(): void {}\r\n\r\n /**\r\n * Invoked when the application is considered ready for operation.\r\n */\r\n protected onReady(): void {}\r\n}\r\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"90f80f01b24c5853f46fcbbf6b83d99910de92d4","contentHash":"e0e9eb8267749dcf471aba3e2151321cc260da1665f7628718b3ae50a42c713d"},"/development/breautek/storm/src/instance.ts":{"path":"/development/breautek/storm/src/instance.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":3,"column":17},"end":{"line":3,"column":36}},"2":{"start":{"line":4,"column":22},"end":{"line":4,"column":46}},"3":{"start":{"line":7,"column":20},"end":{"line":12,"column":1}},"4":{"start":{"line":8,"column":4},"end":{"line":10,"column":5}},"5":{"start":{"line":9,"column":8},"end":{"line":9,"column":75}},"6":{"start":{"line":11,"column":4},"end":{"line":11,"column":19}},"7":{"start":{"line":13,"column":0},"end":{"line":13,"column":34}},"8":{"start":{"line":14,"column":20},"end":{"line":16,"column":1}},"9":{"start":{"line":15,"column":4},"end":{"line":15,"column":20}},"10":{"start":{"line":17,"column":0},"end":{"line":17,"column":34}},"11":{"start":{"line":18,"column":29},"end":{"line":30,"column":1}},"12":{"start":{"line":19,"column":4},"end":{"line":29,"column":5}},"13":{"start":{"line":20,"column":8},"end":{"line":20,"column":36}},"14":{"start":{"line":23,"column":8},"end":{"line":27,"column":9}},"15":{"start":{"line":24,"column":12},"end":{"line":24,"column":59}},"16":{"start":{"line":25,"column":12},"end":{"line":25,"column":86}},"17":{"start":{"line":26,"column":12},"end":{"line":26,"column":105}},"18":{"start":{"line":28,"column":8},"end":{"line":28,"column":29}},"19":{"start":{"line":31,"column":0},"end":{"line":31,"column":52}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":7,"column":20},"end":{"line":7,"column":21}},"loc":{"start":{"line":7,"column":29},"end":{"line":12,"column":1}},"line":7},"1":{"name":"(anonymous_1)","decl":{"start":{"line":14,"column":20},"end":{"line":14,"column":21}},"loc":{"start":{"line":14,"column":26},"end":{"line":16,"column":1}},"line":14},"2":{"name":"(anonymous_2)","decl":{"start":{"line":18,"column":29},"end":{"line":18,"column":30}},"loc":{"start":{"line":18,"column":35},"end":{"line":30,"column":1}},"line":18}},"branchMap":{"0":{"loc":{"start":{"line":8,"column":4},"end":{"line":10,"column":5}},"type":"if","locations":[{"start":{"line":8,"column":4},"end":{"line":10,"column":5}},{"start":{"line":8,"column":4},"end":{"line":10,"column":5}}],"line":8},"1":{"loc":{"start":{"line":19,"column":4},"end":{"line":29,"column":5}},"type":"if","locations":[{"start":{"line":19,"column":4},"end":{"line":29,"column":5}},{"start":{"line":19,"column":4},"end":{"line":29,"column":5}}],"line":19},"2":{"loc":{"start":{"line":23,"column":8},"end":{"line":27,"column":9}},"type":"if","locations":[{"start":{"line":23,"column":8},"end":{"line":27,"column":9}},{"start":{"line":23,"column":8},"end":{"line":27,"column":9}}],"line":23}},"s":{"0":1,"1":1,"2":1,"3":1,"4":27,"5":24,"6":27,"7":1,"8":1,"9":214,"10":1,"11":1,"12":111,"13":110,"14":1,"15":1,"16":1,"17":1,"18":1,"19":1},"f":{"0":27,"1":214,"2":111},"b":{"0":[24,3],"1":[110,1],"2":[1,0]},"inputSourceMap":{"version":3,"file":"/development/breautek/storm/src/instance.ts","sources":["/development/breautek/storm/src/instance.ts"],"names":[],"mappings":";;AAkBA,qCAAgC;AAChC,+CAA0C;AAE1C,IAAI,QAAqB,CAAC;AAC1B,IAAI,aAAqB,CAAC;AAE1B,MAAM,WAAW,GAAG,CAAC,GAAgB,EAAQ,EAAE;IAC3C,IAAI,QAAQ,EAAE;QACV,QAAQ,CAAC,SAAS,EAAE,CAAC,IAAI,CAAC,uCAAuC,CAAC,CAAC;KACtE;IACD,QAAQ,GAAG,GAAG,CAAC;AACnB,CAAC,CAAC;AAqBE,kCAAW;AAnBf,MAAM,WAAW,GAAG,GAAgB,EAAE;IAClC,OAAO,QAAQ,CAAC;AACpB,CAAC,CAAC;AAkBE,kCAAW;AAhBf,MAAM,oBAAoB,GAAG,GAAW,EAAE;IACtC,IAAI,QAAQ,EAAE;QACV,OAAO,QAAQ,CAAC,SAAS,EAAE,CAAC;KAC/B;SACI;QACD,IAAI,CAAC,aAAa,EAAE;YAChB,aAAa,GAAG,IAAI,eAAM,CAAC,SAAS,CAAC,CAAC;YACtC,aAAa,CAAC,IAAI,CAAC,qDAAqD,CAAC,CAAC;YAC1E,aAAa,CAAC,WAAW,CAAC,yBAAW,CAAC,KAAK,GAAG,yBAAW,CAAC,KAAK,CAAC,CAAC;SACpE;QACD,OAAO,aAAa,CAAC;KACxB;AACL,CAAC,CAAC;AAKE,oDAAoB","sourcesContent":["/* istanbul ignore file */\r\n\r\n// Copyright (C) 2017 Norman Breau\r\n\r\n// This program is free software: you can redistribute it and/or modify\r\n// it under the terms of the GNU General Public License as published by\r\n// the Free Software Foundation, either version 3 of the License, or\r\n// (at your option) any later version.\r\n\r\n// This program is distributed in the hope that it will be useful,\r\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\r\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\r\n// GNU General Public License for more details.\r\n\r\n// You should have received a copy of the GNU General Public License\r\n// along with this program. If not, see <http://www.gnu.org/licenses/>.\r\n\r\nimport {Application} from './Application';\r\nimport {Logger} from './Logger';\r\nimport {LogSeverity} from './LogSeverity';\r\n\r\nlet instance: Application;\r\nlet genericLogger: Logger;\r\n\r\nconst setInstance = (app: Application): void => {\r\n if (instance) {\r\n instance.getLogger().warn('Storm application already initialized');\r\n }\r\n instance = app;\r\n};\r\n\r\nconst getInstance = (): Application => {\r\n return instance;\r\n};\r\n\r\nconst getApplicationLogger = (): Logger => {\r\n if (instance) {\r\n return instance.getLogger();\r\n }\r\n else {\r\n if (!genericLogger) {\r\n genericLogger = new Logger('Generic');\r\n genericLogger.info('Using generic logger. Only errors will be reported.');\r\n genericLogger.setLogLevel(LogSeverity.ERROR | LogSeverity.FATAL);\r\n }\r\n return genericLogger;\r\n }\r\n};\r\n\r\nexport {\r\n setInstance,\r\n getInstance,\r\n getApplicationLogger\r\n};\r\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"eb1dceedd43faa5d43ef80190d190524a747ae3f","contentHash":"4e3789d4425431a86d8be2570455da6737686ac717b43bd8c7d4c98ec194ab25"},"/development/breautek/storm/src/Logger.ts":{"path":"/development/breautek/storm/src/Logger.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":3,"column":17},"end":{"line":3,"column":34}},"2":{"start":{"line":4,"column":22},"end":{"line":4,"column":46}},"3":{"start":{"line":5,"column":19},"end":{"line":5,"column":40}},"4":{"start":{"line":6,"column":14},"end":{"line":6,"column":29}},"5":{"start":{"line":7,"column":19},"end":{"line":7,"column":40}},"6":{"start":{"line":10,"column":8},"end":{"line":10,"column":16}},"7":{"start":{"line":11,"column":8},"end":{"line":11,"column":25}},"8":{"start":{"line":12,"column":8},"end":{"line":12,"column":54}},"9":{"start":{"line":13,"column":8},"end":{"line":13,"column":58}},"10":{"start":{"line":14,"column":8},"end":{"line":18,"column":44}},"11":{"start":{"line":19,"column":8},"end":{"line":21,"column":9}},"12":{"start":{"line":20,"column":12},"end":{"line":20,"column":37}},"13":{"start":{"line":22,"column":8},"end":{"line":22,"column":53}},"14":{"start":{"line":23,"column":8},"end":{"line":23,"column":53}},"15":{"start":{"line":26,"column":8},"end":{"line":26,"column":30}},"16":{"start":{"line":29,"column":8},"end":{"line":29,"column":30}},"17":{"start":{"line":32,"column":8},"end":{"line":32,"column":35}},"18":{"start":{"line":35,"column":8},"end":{"line":35,"column":37}},"19":{"start":{"line":38,"column":8},"end":{"line":38,"column":31}},"20":{"start":{"line":41,"column":8},"end":{"line":41,"column":33}},"21":{"start":{"line":44,"column":8},"end":{"line":44,"column":25}},"22":{"start":{"line":47,"column":8},"end":{"line":47,"column":32}},"23":{"start":{"line":50,"column":20},"end":{"line":50,"column":46}},"24":{"start":{"line":51,"column":8},"end":{"line":53,"column":9}},"25":{"start":{"line":52,"column":12},"end":{"line":52,"column":43}},"26":{"start":{"line":56,"column":8},"end":{"line":61,"column":9}},"27":{"start":{"line":57,"column":12},"end":{"line":57,"column":44}},"28":{"start":{"line":60,"column":12},"end":{"line":60,"column":31}},"29":{"start":{"line":64,"column":8},"end":{"line":64,"column":37}},"30":{"start":{"line":67,"column":18},"end":{"line":67,"column":42}},"31":{"start":{"line":68,"column":21},"end":{"line":68,"column":25}},"32":{"start":{"line":69,"column":8},"end":{"line":71,"column":9}},"33":{"start":{"line":70,"column":12},"end":{"line":70,"column":37}},"34":{"start":{"line":72,"column":8},"end":{"line":76,"column":9}},"35":{"start":{"line":73,"column":12},"end":{"line":73,"column":76}},"36":{"start":{"line":74,"column":12},"end":{"line":74,"column":58}},"37":{"start":{"line":75,"column":12},"end":{"line":75,"column":19}},"38":{"start":{"line":77,"column":22},"end":{"line":77,"column":26}},"39":{"start":{"line":78,"column":8},"end":{"line":87,"column":9}},"40":{"start":{"line":79,"column":12},"end":{"line":79,"column":51}},"41":{"start":{"line":82,"column":12},"end":{"line":82,"column":25}},"42":{"start":{"line":83,"column":12},"end":{"line":86,"column":13}},"43":{"start":{"line":83,"column":25},"end":{"line":83,"column":26}},"44":{"start":{"line":84,"column":32},"end":{"line":84,"column":53}},"45":{"start":{"line":85,"column":16},"end":{"line":85,"column":70}},"46":{"start":{"line":88,"column":8},"end":{"line":88,"column":33}},"47":{"start":{"line":91,"column":27},"end":{"line":91,"column":70}},"48":{"start":{"line":92,"column":8},"end":{"line":94,"column":9}},"49":{"start":{"line":93,"column":12},"end":{"line":93,"column":31}},"50":{"start":{"line":95,"column":29},"end":{"line":95,"column":52}},"51":{"start":{"line":96,"column":8},"end":{"line":98,"column":9}},"52":{"start":{"line":97,"column":12},"end":{"line":97,"column":31}},"53":{"start":{"line":99,"column":18},"end":{"line":99,"column":49}},"54":{"start":{"line":100,"column":20},"end":{"line":100,"column":52}},"55":{"start":{"line":101,"column":8},"end":{"line":101,"column":38}},"56":{"start":{"line":104,"column":8},"end":{"line":104,"column":38}},"57":{"start":{"line":107,"column":8},"end":{"line":107,"column":33}},"58":{"start":{"line":110,"column":8},"end":{"line":110,"column":29}},"59":{"start":{"line":113,"column":8},"end":{"line":113,"column":137}},"60":{"start":{"line":116,"column":22},"end":{"line":116,"column":24}},"61":{"start":{"line":117,"column":18},"end":{"line":117,"column":20}},"62":{"start":{"line":118,"column":8},"end":{"line":143,"column":9}},"63":{"start":{"line":120,"column":16},"end":{"line":120,"column":36}},"64":{"start":{"line":121,"column":16},"end":{"line":121,"column":22}},"65":{"start":{"line":123,"column":16},"end":{"line":123,"column":36}},"66":{"start":{"line":124,"column":16},"end":{"line":124,"column":22}},"67":{"start":{"line":126,"column":16},"end":{"line":126,"column":35}},"68":{"start":{"line":127,"column":16},"end":{"line":127,"column":22}},"69":{"start":{"line":129,"column":16},"end":{"line":129,"column":35}},"70":{"start":{"line":130,"column":16},"end":{"line":130,"column":22}},"71":{"start":{"line":132,"column":16},"end":{"line":132,"column":36}},"72":{"start":{"line":133,"column":16},"end":{"line":133,"column":22}},"73":{"start":{"line":135,"column":16},"end":{"line":135,"column":36}},"74":{"start":{"line":136,"column":16},"end":{"line":136,"column":22}},"75":{"start":{"line":138,"column":16},"end":{"line":138,"column":40}},"76":{"start":{"line":139,"column":16},"end":{"line":139,"column":22}},"77":{"start":{"line":141,"column":16},"end":{"line":141,"column":58}},"78":{"start":{"line":142,"column":16},"end":{"line":142,"column":22}},"79":{"start":{"line":144,"column":8},"end":{"line":158,"column":9}},"80":{"start":{"line":144,"column":21},"end":{"line":144,"column":22}},"81":{"start":{"line":145,"column":22},"end":{"line":145,"column":33}},"82":{"start":{"line":146,"column":12},"end":{"line":148,"column":13}},"83":{"start":{"line":147,"column":16},"end":{"line":147,"column":27}},"84":{"start":{"line":149,"column":12},"end":{"line":154,"column":13}},"85":{"start":{"line":150,"column":16},"end":{"line":150,"column":42}},"86":{"start":{"line":153,"column":16},"end":{"line":153,"column":27}},"87":{"start":{"line":155,"column":12},"end":{"line":157,"column":13}},"88":{"start":{"line":156,"column":16},"end":{"line":156,"column":41}},"89":{"start":{"line":159,"column":8},"end":{"line":159,"column":84}},"90":{"start":{"line":162,"column":18},"end":{"line":162,"column":56}},"91":{"start":{"line":163,"column":8},"end":{"line":163,"column":40}},"92":{"start":{"line":166,"column":8},"end":{"line":173,"column":9}},"93":{"start":{"line":167,"column":12},"end":{"line":172,"column":13}},"94":{"start":{"line":168,"column":16},"end":{"line":168,"column":49}},"95":{"start":{"line":171,"column":16},"end":{"line":171,"column":47}},"96":{"start":{"line":176,"column":8},"end":{"line":178,"column":9}},"97":{"start":{"line":177,"column":12},"end":{"line":177,"column":24}},"98":{"start":{"line":179,"column":8},"end":{"line":184,"column":9}},"99":{"start":{"line":179,"column":21},"end":{"line":179,"column":22}},"100":{"start":{"line":180,"column":25},"end":{"line":180,"column":41}},"101":{"start":{"line":181,"column":12},"end":{"line":183,"column":13}},"102":{"start":{"line":182,"column":16},"end":{"line":182,"column":29}},"103":{"start":{"line":185,"column":8},"end":{"line":185,"column":20}},"104":{"start":{"line":188,"column":8},"end":{"line":195,"column":9}},"105":{"start":{"line":189,"column":12},"end":{"line":189,"column":50}},"106":{"start":{"line":190,"column":26},"end":{"line":193,"column":13}},"107":{"start":{"line":194,"column":12},"end":{"line":194,"column":56}},"108":{"start":{"line":198,"column":8},"end":{"line":198,"column":61}},"109":{"start":{"line":201,"column":8},"end":{"line":201,"column":61}},"110":{"start":{"line":204,"column":8},"end":{"line":204,"column":60}},"111":{"start":{"line":207,"column":8},"end":{"line":207,"column":63}},"112":{"start":{"line":210,"column":8},"end":{"line":210,"column":61}},"113":{"start":{"line":213,"column":8},"end":{"line":213,"column":61}},"114":{"start":{"line":216,"column":16},"end":{"line":216,"column":27}},"115":{"start":{"line":217,"column":19},"end":{"line":217,"column":21}},"116":{"start":{"line":218,"column":8},"end":{"line":223,"column":9}},"117":{"start":{"line":219,"column":12},"end":{"line":219,"column":59}},"118":{"start":{"line":222,"column":12},"end":{"line":222,"column":38}},"119":{"start":{"line":224,"column":8},"end":{"line":226,"column":9}},"120":{"start":{"line":225,"column":12},"end":{"line":225,"column":74}},"121":{"start":{"line":227,"column":8},"end":{"line":227,"column":26}},"122":{"start":{"line":228,"column":8},"end":{"line":228,"column":27}},"123":{"start":{"line":229,"column":8},"end":{"line":229,"column":60}},"124":{"start":{"line":232,"column":16},"end":{"line":232,"column":27}},"125":{"start":{"line":233,"column":19},"end":{"line":233,"column":21}},"126":{"start":{"line":234,"column":8},"end":{"line":234,"column":98}},"127":{"start":{"line":235,"column":8},"end":{"line":237,"column":9}},"128":{"start":{"line":236,"column":12},"end":{"line":236,"column":101}},"129":{"start":{"line":238,"column":8},"end":{"line":238,"column":26}},"130":{"start":{"line":239,"column":8},"end":{"line":239,"column":27}},"131":{"start":{"line":240,"column":8},"end":{"line":240,"column":60}},"132":{"start":{"line":243,"column":20},"end":{"line":243,"column":79}},"133":{"start":{"line":244,"column":18},"end":{"line":244,"column":26}},"134":{"start":{"line":245,"column":8},"end":{"line":248,"column":9}},"135":{"start":{"line":246,"column":12},"end":{"line":246,"column":84}},"136":{"start":{"line":247,"column":12},"end":{"line":247,"column":26}},"137":{"start":{"line":249,"column":8},"end":{"line":249,"column":48}},"138":{"start":{"line":252,"column":8},"end":{"line":252,"column":45}},"139":{"start":{"line":255,"column":20},"end":{"line":255,"column":79}},"140":{"start":{"line":256,"column":18},"end":{"line":256,"column":26}},"141":{"start":{"line":257,"column":8},"end":{"line":260,"column":9}},"142":{"start":{"line":258,"column":12},"end":{"line":258,"column":84}},"143":{"start":{"line":259,"column":12},"end":{"line":259,"column":26}},"144":{"start":{"line":261,"column":8},"end":{"line":261,"column":94}},"145":{"start":{"line":264,"column":8},"end":{"line":264,"column":78}},"146":{"start":{"line":267,"column":0},"end":{"line":267,"column":24}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":9,"column":4},"end":{"line":9,"column":5}},"loc":{"start":{"line":9,"column":65},"end":{"line":24,"column":5}},"line":9},"1":{"name":"(anonymous_1)","decl":{"start":{"line":25,"column":4},"end":{"line":25,"column":5}},"loc":{"start":{"line":25,"column":27},"end":{"line":27,"column":5}},"line":25},"2":{"name":"(anonymous_2)","decl":{"start":{"line":28,"column":4},"end":{"line":28,"column":5}},"loc":{"start":{"line":28,"column":29},"end":{"line":30,"column":5}},"line":28},"3":{"name":"(anonymous_3)","decl":{"start":{"line":31,"column":4},"end":{"line":31,"column":5}},"loc":{"start":{"line":31,"column":27},"end":{"line":33,"column":5}},"line":31},"4":{"name":"(anonymous_4)","decl":{"start":{"line":34,"column":4},"end":{"line":34,"column":5}},"loc":{"start":{"line":34,"column":29},"end":{"line":36,"column":5}},"line":34},"5":{"name":"(anonymous_5)","decl":{"start":{"line":37,"column":4},"end":{"line":37,"column":5}},"loc":{"start":{"line":37,"column":19},"end":{"line":39,"column":5}},"line":37},"6":{"name":"(anonymous_6)","decl":{"start":{"line":40,"column":4},"end":{"line":40,"column":5}},"loc":{"start":{"line":40,"column":21},"end":{"line":42,"column":5}},"line":40},"7":{"name":"(anonymous_7)","decl":{"start":{"line":43,"column":4},"end":{"line":43,"column":5}},"loc":{"start":{"line":43,"column":14},"end":{"line":45,"column":5}},"line":43},"8":{"name":"(anonymous_8)","decl":{"start":{"line":46,"column":4},"end":{"line":46,"column":5}},"loc":{"start":{"line":46,"column":19},"end":{"line":48,"column":5}},"line":46},"9":{"name":"(anonymous_9)","decl":{"start":{"line":49,"column":4},"end":{"line":49,"column":5}},"loc":{"start":{"line":49,"column":22},"end":{"line":54,"column":5}},"line":49},"10":{"name":"(anonymous_10)","decl":{"start":{"line":55,"column":4},"end":{"line":55,"column":5}},"loc":{"start":{"line":55,"column":24},"end":{"line":62,"column":5}},"line":55},"11":{"name":"(anonymous_11)","decl":{"start":{"line":63,"column":4},"end":{"line":63,"column":5}},"loc":{"start":{"line":63,"column":17},"end":{"line":65,"column":5}},"line":63},"12":{"name":"(anonymous_12)","decl":{"start":{"line":66,"column":4},"end":{"line":66,"column":5}},"loc":{"start":{"line":66,"column":18},"end":{"line":89,"column":5}},"line":66},"13":{"name":"(anonymous_13)","decl":{"start":{"line":90,"column":4},"end":{"line":90,"column":5}},"loc":{"start":{"line":90,"column":24},"end":{"line":102,"column":5}},"line":90},"14":{"name":"(anonymous_14)","decl":{"start":{"line":103,"column":4},"end":{"line":103,"column":5}},"loc":{"start":{"line":103,"column":28},"end":{"line":105,"column":5}},"line":103},"15":{"name":"(anonymous_15)","decl":{"start":{"line":106,"column":4},"end":{"line":106,"column":5}},"loc":{"start":{"line":106,"column":26},"end":{"line":108,"column":5}},"line":106},"16":{"name":"(anonymous_16)","decl":{"start":{"line":109,"column":4},"end":{"line":109,"column":5}},"loc":{"start":{"line":109,"column":18},"end":{"line":111,"column":5}},"line":109},"17":{"name":"(anonymous_17)","decl":{"start":{"line":112,"column":4},"end":{"line":112,"column":5}},"loc":{"start":{"line":112,"column":21},"end":{"line":114,"column":5}},"line":112},"18":{"name":"(anonymous_18)","decl":{"start":{"line":115,"column":4},"end":{"line":115,"column":5}},"loc":{"start":{"line":115,"column":38},"end":{"line":160,"column":5}},"line":115},"19":{"name":"(anonymous_19)","decl":{"start":{"line":161,"column":4},"end":{"line":161,"column":5}},"loc":{"start":{"line":161,"column":37},"end":{"line":164,"column":5}},"line":161},"20":{"name":"(anonymous_20)","decl":{"start":{"line":165,"column":4},"end":{"line":165,"column":5}},"loc":{"start":{"line":165,"column":31},"end":{"line":174,"column":5}},"line":165},"21":{"name":"(anonymous_21)","decl":{"start":{"line":175,"column":4},"end":{"line":175,"column":5}},"loc":{"start":{"line":175,"column":30},"end":{"line":186,"column":5}},"line":175},"22":{"name":"(anonymous_22)","decl":{"start":{"line":187,"column":4},"end":{"line":187,"column":5}},"loc":{"start":{"line":187,"column":28},"end":{"line":196,"column":5}},"line":187},"23":{"name":"(anonymous_23)","decl":{"start":{"line":197,"column":4},"end":{"line":197,"column":5}},"loc":{"start":{"line":197,"column":19},"end":{"line":199,"column":5}},"line":197},"24":{"name":"(anonymous_24)","decl":{"start":{"line":200,"column":4},"end":{"line":200,"column":5}},"loc":{"start":{"line":200,"column":19},"end":{"line":202,"column":5}},"line":200},"25":{"name":"(anonymous_25)","decl":{"start":{"line":203,"column":4},"end":{"line":203,"column":5}},"loc":{"start":{"line":203,"column":18},"end":{"line":205,"column":5}},"line":203},"26":{"name":"(anonymous_26)","decl":{"start":{"line":206,"column":4},"end":{"line":206,"column":5}},"loc":{"start":{"line":206,"column":18},"end":{"line":208,"column":5}},"line":206},"27":{"name":"(anonymous_27)","decl":{"start":{"line":209,"column":4},"end":{"line":209,"column":5}},"loc":{"start":{"line":209,"column":19},"end":{"line":211,"column":5}},"line":209},"28":{"name":"(anonymous_28)","decl":{"start":{"line":212,"column":4},"end":{"line":212,"column":5}},"loc":{"start":{"line":212,"column":19},"end":{"line":214,"column":5}},"line":212},"29":{"name":"(anonymous_29)","decl":{"start":{"line":215,"column":4},"end":{"line":215,"column":5}},"loc":{"start":{"line":215,"column":43},"end":{"line":230,"column":5}},"line":215},"30":{"name":"(anonymous_30)","decl":{"start":{"line":231,"column":4},"end":{"line":231,"column":5}},"loc":{"start":{"line":231,"column":74},"end":{"line":241,"column":5}},"line":231},"31":{"name":"(anonymous_31)","decl":{"start":{"line":242,"column":4},"end":{"line":242,"column":5}},"loc":{"start":{"line":242,"column":35},"end":{"line":250,"column":5}},"line":242},"32":{"name":"(anonymous_32)","decl":{"start":{"line":251,"column":4},"end":{"line":251,"column":5}},"loc":{"start":{"line":251,"column":50},"end":{"line":253,"column":5}},"line":251},"33":{"name":"(anonymous_33)","decl":{"start":{"line":254,"column":4},"end":{"line":254,"column":5}},"loc":{"start":{"line":254,"column":73},"end":{"line":262,"column":5}},"line":254},"34":{"name":"(anonymous_34)","decl":{"start":{"line":263,"column":4},"end":{"line":263,"column":5}},"loc":{"start":{"line":263,"column":77},"end":{"line":265,"column":5}},"line":263}},"branchMap":{"0":{"loc":{"start":{"line":9,"column":16},"end":{"line":9,"column":25}},"type":"default-arg","locations":[{"start":{"line":9,"column":23},"end":{"line":9,"column":25}}],"line":9},"1":{"loc":{"start":{"line":9,"column":37},"end":{"line":9,"column":63}},"type":"default-arg","locations":[{"start":{"line":9,"column":58},"end":{"line":9,"column":63}}],"line":9},"2":{"loc":{"start":{"line":19,"column":8},"end":{"line":21,"column":9}},"type":"if","locations":[{"start":{"line":19,"column":8},"end":{"line":21,"column":9}},{"start":{"line":19,"column":8},"end":{"line":21,"column":9}}],"line":19},"3":{"loc":{"start":{"line":51,"column":8},"end":{"line":53,"column":9}},"type":"if","locations":[{"start":{"line":51,"column":8},"end":{"line":53,"column":9}},{"start":{"line":51,"column":8},"end":{"line":53,"column":9}}],"line":51},"4":{"loc":{"start":{"line":56,"column":8},"end":{"line":61,"column":9}},"type":"if","locations":[{"start":{"line":56,"column":8},"end":{"line":61,"column":9}},{"start":{"line":56,"column":8},"end":{"line":61,"column":9}}],"line":56},"5":{"loc":{"start":{"line":69,"column":8},"end":{"line":71,"column":9}},"type":"if","locations":[{"start":{"line":69,"column":8},"end":{"line":71,"column":9}},{"start":{"line":69,"column":8},"end":{"line":71,"column":9}}],"line":69},"6":{"loc":{"start":{"line":72,"column":8},"end":{"line":76,"column":9}},"type":"if","locations":[{"start":{"line":72,"column":8},"end":{"line":76,"column":9}},{"start":{"line":72,"column":8},"end":{"line":76,"column":9}}],"line":72},"7":{"loc":{"start":{"line":78,"column":8},"end":{"line":87,"column":9}},"type":"if","locations":[{"start":{"line":78,"column":8},"end":{"line":87,"column":9}},{"start":{"line":78,"column":8},"end":{"line":87,"column":9}}],"line":78},"8":{"loc":{"start":{"line":78,"column":12},"end":{"line":78,"column":90}},"type":"binary-expr","locations":[{"start":{"line":78,"column":12},"end":{"line":78,"column":31}},{"start":{"line":78,"column":36},"end":{"line":78,"column":54}},{"start":{"line":78,"column":58},"end":{"line":78,"column":89}}],"line":78},"9":{"loc":{"start":{"line":92,"column":8},"end":{"line":94,"column":9}},"type":"if","locations":[{"start":{"line":92,"column":8},"end":{"line":94,"column":9}},{"start":{"line":92,"column":8},"end":{"line":94,"column":9}}],"line":92},"10":{"loc":{"start":{"line":96,"column":8},"end":{"line":98,"column":9}},"type":"if","locations":[{"start":{"line":96,"column":8},"end":{"line":98,"column":9}},{"start":{"line":96,"column":8},"end":{"line":98,"column":9}}],"line":96},"11":{"loc":{"start":{"line":118,"column":8},"end":{"line":143,"column":9}},"type":"switch","locations":[{"start":{"line":119,"column":12},"end":{"line":121,"column":22}},{"start":{"line":122,"column":12},"end":{"line":124,"column":22}},{"start":{"line":125,"column":12},"end":{"line":127,"column":22}},{"start":{"line":128,"column":12},"end":{"line":130,"column":22}},{"start":{"line":131,"column":12},"end":{"line":133,"column":22}},{"start":{"line":134,"column":12},"end":{"line":136,"column":22}},{"start":{"line":137,"column":12},"end":{"line":139,"column":22}},{"start":{"line":140,"column":12},"end":{"line":142,"column":22}}],"line":118},"12":{"loc":{"start":{"line":146,"column":12},"end":{"line":148,"column":13}},"type":"if","locations":[{"start":{"line":146,"column":12},"end":{"line":148,"column":13}},{"start":{"line":146,"column":12},"end":{"line":148,"column":13}}],"line":146},"13":{"loc":{"start":{"line":149,"column":12},"end":{"line":154,"column":13}},"type":"if","locations":[{"start":{"line":149,"column":12},"end":{"line":154,"column":13}},{"start":{"line":149,"column":12},"end":{"line":154,"column":13}}],"line":149},"14":{"loc":{"start":{"line":155,"column":12},"end":{"line":157,"column":13}},"type":"if","locations":[{"start":{"line":155,"column":12},"end":{"line":157,"column":13}},{"start":{"line":155,"column":12},"end":{"line":157,"column":13}}],"line":155},"15":{"loc":{"start":{"line":166,"column":8},"end":{"line":173,"column":9}},"type":"if","locations":[{"start":{"line":166,"column":8},"end":{"line":173,"column":9}},{"start":{"line":166,"column":8},"end":{"line":173,"column":9}}],"line":166},"16":{"loc":{"start":{"line":167,"column":12},"end":{"line":172,"column":13}},"type":"if","locations":[{"start":{"line":167,"column":12},"end":{"line":172,"column":13}},{"start":{"line":167,"column":12},"end":{"line":172,"column":13}}],"line":167},"17":{"loc":{"start":{"line":167,"column":16},"end":{"line":167,"column":123}},"type":"binary-expr","locations":[{"start":{"line":167,"column":17},"end":{"line":167,"column":95}},{"start":{"line":167,"column":100},"end":{"line":167,"column":123}}],"line":167},"18":{"loc":{"start":{"line":176,"column":8},"end":{"line":178,"column":9}},"type":"if","locations":[{"start":{"line":176,"column":8},"end":{"line":178,"column":9}},{"start":{"line":176,"column":8},"end":{"line":178,"column":9}}],"line":176},"19":{"loc":{"start":{"line":181,"column":12},"end":{"line":183,"column":13}},"type":"if","locations":[{"start":{"line":181,"column":12},"end":{"line":183,"column":13}},{"start":{"line":181,"column":12},"end":{"line":183,"column":13}}],"line":181},"20":{"loc":{"start":{"line":188,"column":8},"end":{"line":195,"column":9}},"type":"if","locations":[{"start":{"line":188,"column":8},"end":{"line":195,"column":9}},{"start":{"line":188,"column":8},"end":{"line":195,"column":9}}],"line":188},"21":{"loc":{"start":{"line":218,"column":8},"end":{"line":223,"column":9}},"type":"if","locations":[{"start":{"line":218,"column":8},"end":{"line":223,"column":9}},{"start":{"line":218,"column":8},"end":{"line":223,"column":9}}],"line":218},"22":{"loc":{"start":{"line":224,"column":8},"end":{"line":226,"column":9}},"type":"if","locations":[{"start":{"line":224,"column":8},"end":{"line":226,"column":9}},{"start":{"line":224,"column":8},"end":{"line":226,"column":9}}],"line":224},"23":{"loc":{"start":{"line":235,"column":8},"end":{"line":237,"column":9}},"type":"if","locations":[{"start":{"line":235,"column":8},"end":{"line":237,"column":9}},{"start":{"line":235,"column":8},"end":{"line":237,"column":9}}],"line":235},"24":{"loc":{"start":{"line":245,"column":8},"end":{"line":248,"column":9}},"type":"if","locations":[{"start":{"line":245,"column":8},"end":{"line":248,"column":9}},{"start":{"line":245,"column":8},"end":{"line":248,"column":9}}],"line":245},"25":{"loc":{"start":{"line":257,"column":8},"end":{"line":260,"column":9}},"type":"if","locations":[{"start":{"line":257,"column":8},"end":{"line":260,"column":9}},{"start":{"line":257,"column":8},"end":{"line":260,"column":9}}],"line":257}},"s":{"0":1,"1":1,"2":1,"3":1,"4":1,"5":1,"6":48,"7":48,"8":48,"9":48,"10":48,"11":48,"12":1,"13":48,"14":48,"15":25,"16":25,"17":1,"18":1,"19":79,"20":2,"21":2,"22":2,"23":1,"24":1,"25":1,"26":28,"27":27,"28":1,"29":8,"30":25,"31":25,"32":25,"33":25,"34":25,"35":0,"36":0,"37":0,"38":25,"39":25,"40":1,"41":24,"42":24,"43":24,"44":25,"45":25,"46":25,"47":25,"48":25,"49":0,"50":25,"51":25,"52":0,"53":25,"54":25,"55":25,"56":49,"57":37,"58":703,"59":82,"60":82,"61":82,"62":82,"63":33,"64":33,"65":1,"66":1,"67":5,"68":5,"69":4,"70":4,"71":36,"72":36,"73":1,"74":1,"75":0,"76":0,"77":2,"78":2,"79":82,"80":82,"81":83,"82":83,"83":1,"84":83,"85":15,"86":68,"87":83,"88":12,"89":82,"90":79,"91":79,"92":79,"93":79,"94":1,"95":78,"96":79,"97":33,"98":46,"99":46,"100":46,"101":46,"102":0,"103":46,"104":700,"105":79,"106":79,"107":79,"108":543,"109":1,"110":72,"111":28,"112":36,"113":1,"114":11,"115":11,"116":11,"117":11,"118":0,"119":11,"120":2,"121":11,"122":11,"123":11,"124":7,"125":7,"126":7,"127":7,"128":7,"129":7,"130":7,"131":7,"132":11,"133":11,"134":11,"135":2,"136":2,"137":11,"138":2,"139":7,"140":7,"141":7,"142":0,"143":0,"144":7,"145":7,"146":1},"f":{"0":48,"1":25,"2":25,"3":1,"4":1,"5":79,"6":2,"7":2,"8":2,"9":1,"10":28,"11":8,"12":25,"13":25,"14":49,"15":37,"16":703,"17":82,"18":82,"19":79,"20":79,"21":79,"22":700,"23":543,"24":1,"25":72,"26":28,"27":36,"28":1,"29":11,"30":7,"31":11,"32":2,"33":7,"34":7},"b":{"0":[21],"1":[47],"2":[1,47],"3":[1,0],"4":[27,1],"5":[25,0],"6":[0,25],"7":[1,24],"8":[25,25,25],"9":[0,25],"10":[0,25],"11":[33,1,5,4,36,1,0,2],"12":[1,82],"13":[15,68],"14":[12,71],"15":[79,0],"16":[1,78],"17":[79,38],"18":[33,46],"19":[0,46],"20":[79,621],"21":[11,0],"22":[2,9],"23":[7,0],"24":[2,9],"25":[0,7]},"inputSourceMap":{"version":3,"file":"/development/breautek/storm/src/Logger.ts","sources":["/development/breautek/storm/src/Logger.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (C) 2017 Norman Breau\r\n\r\n// This program is free software: you can redistribute it and/or modify\r\n// it under the terms of the GNU General Public License as published by\r\n// the Free Software Foundation, either version 3 of the License, or\r\n// (at your option) any later version.\r\n\r\n// This program is distributed in the hope that it will be useful,\r\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\r\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\r\n// GNU General Public License for more details.\r\n\r\n// You should have received a copy of the GNU General Public License\r\n// along with this program. If not, see <http://www.gnu.org/licenses/>.\r\n\r\n/* eslint-disable prefer-rest-params */\r\n\r\nimport {EventEmitter} from 'events';\r\nimport {LogSeverity} from './LogSeverity';\r\nimport {LogEvent} from './LogEvent';\r\nimport {ILogEvent} from './ILogEvent';\r\nimport * as utils from 'util';\r\nimport {getInstance} from './instance';\r\nimport { IConfig } from './IConfig';\r\nimport { Application } from './Application';\r\nimport {Writable} from 'stream';\r\n\r\nexport class Logger extends EventEmitter {\r\n private name: string;\r\n private logLevel: LogSeverity;\r\n private useStdErrForErrors: boolean;\r\n private _filters: Array<RegExp>;\r\n private _logStream: Writable;\r\n private _errorStream: Writable;\r\n\r\n public constructor(name: string = '', logLevel?: LogSeverity, useStdErrForErrors: boolean = false) {\r\n super();\r\n\r\n this.name = name;\r\n\r\n this._logStream = this._getDefaultLogStream();\r\n this._errorStream = this._getDefaultErrorStream();\r\n\r\n this.logLevel = LogSeverity.DEBUG |\r\n LogSeverity.INFO |\r\n LogSeverity.WARNING |\r\n LogSeverity.ERROR |\r\n LogSeverity.FATAL;\r\n \r\n if (logLevel) {\r\n this.logLevel = logLevel;\r\n }\r\n\r\n this._filters = this._getDefaultLogFilters();\r\n\r\n this.useStdErrForErrors = useStdErrForErrors;\r\n }\r\n\r\n protected _getDefaultLogStream(): Writable {\r\n return process.stdout;\r\n }\r\n\r\n protected _getDefaultErrorStream(): Writable {\r\n return process.stderr;\r\n }\r\n\r\n public setLogStream(writable: Writable) {\r\n this._logStream = writable;\r\n }\r\n\r\n public setErrorStream(writable: Writable) {\r\n this._errorStream = writable;\r\n }\r\n\r\n public getLogStream(): Writable {\r\n return this._logStream;\r\n }\r\n\r\n public getErrorStream(): Writable {\r\n return this._errorStream;\r\n }\r\n\r\n public getName(): string {\r\n return this.name;\r\n }\r\n\r\n public addFilter(reg: RegExp): void {\r\n this._filters.push(reg);\r\n }\r\n\r\n public removeFilter(reg: RegExp): void {\r\n let index: number = this._filters.indexOf(reg);\r\n if (index > -1) {\r\n this._filters.splice(index, 1);\r\n }\r\n }\r\n\r\n public setFilters(filters: Array<RegExp>): void {\r\n if (filters) {\r\n this._filters = filters.slice();\r\n }\r\n else {\r\n this._filters = [];\r\n }\r\n }\r\n\r\n public getFilters(): Array<RegExp> {\r\n return this._filters.slice();\r\n }\r\n\r\n public loadFilters(): void {\r\n let app: Application = getInstance();\r\n let config: IConfig = null;\r\n\r\n if (app) {\r\n config = app.getConfig();\r\n }\r\n\r\n if (!config) {\r\n this.trace('No config for logger... Using default log filters');\r\n this.setFilters(this._getDefaultLogFilters());\r\n return;\r\n }\r\n\r\n let filters: Array<RegExp> = null;\r\n if (!config.log_filters || (config.log_filters && config.log_filters.length === 0)) {\r\n filters = this._getDefaultLogFilters();\r\n }\r\n else {\r\n filters = [];\r\n for (let i: number = 0; i < config.log_filters.length; i++) {\r\n let logFilter: string = config.log_filters[i];\r\n filters.push(new RegExp(this._parseRegex(logFilter)));\r\n }\r\n }\r\n\r\n this.setFilters(filters);\r\n }\r\n\r\n private _parseRegex(strReg: string): RegExp {\r\n let malformError: Error = new Error('Malformed regex in log_filters');\r\n if (strReg[0] !== '/') {\r\n throw malformError;\r\n }\r\n\r\n let lastSlashIndex = strReg.lastIndexOf('/');\r\n if (lastSlashIndex === strReg.indexOf('/')) {\r\n throw malformError;\r\n }\r\n\r\n let reg: string = strReg.slice(1, lastSlashIndex);\r\n let flags = strReg.slice(lastSlashIndex + 1);\r\n\r\n return new RegExp(reg, flags);\r\n }\r\n\r\n protected _getDefaultLogFilters(): Array<RegExp> {\r\n return [/TokenExpiredError/g];\r\n }\r\n\r\n public setLogLevel(severity: LogSeverity): void {\r\n this.logLevel = severity;\r\n }\r\n\r\n public getLogLevel(): LogSeverity {\r\n return this.logLevel;\r\n }\r\n\r\n protected _formatDate(now: Date): string {\r\n return `${now.getFullYear()}/${now.getMonth() + 1}/${now.getDate()} - ${now.getHours()}:${now.getMinutes()}:${now.getSeconds()}`;\r\n }\r\n\r\n protected _formatString(messages: IArguments, severity: LogSeverity): string {\r\n let sevText: string = '';\r\n let str: string = '';\r\n\r\n switch (severity) {\r\n case LogSeverity.TRACE:\r\n sevText = '[TRACE]';\r\n break;\r\n case LogSeverity.DEBUG:\r\n sevText = '[DEBUG]';\r\n break;\r\n case LogSeverity.INFO:\r\n sevText = '[INFO]';\r\n break;\r\n case LogSeverity.WARNING:\r\n sevText = '[WARN]';\r\n break;\r\n case LogSeverity.ERROR:\r\n sevText = '[ERROR]';\r\n break;\r\n case LogSeverity.FATAL:\r\n sevText = '[FATAL]';\r\n break;\r\n case LogSeverity.DEPRECATE:\r\n sevText = '[DEPRECATE]';\r\n break;\r\n default:\r\n this.warn('Unknown Severity value used.');\r\n break;\r\n }\r\n \r\n for (let i: number = 0; i < messages.length; i++) {\r\n let msg: any = messages[i];\r\n\r\n if (str.length !== 0) {\r\n str += ' ';\r\n }\r\n\r\n if (typeof msg !== 'string') {\r\n str += utils.inspect(msg);\r\n }\r\n else {\r\n str += msg;\r\n }\r\n\r\n if (msg instanceof Error) {\r\n str = msg.stack + '\\n\\n';\r\n }\r\n }\r\n\r\n return `${sevText}[${this.name}][${this._formatDate(new Date())}] ${str}\\n`;\r\n }\r\n\r\n protected _logMessages(messages: IArguments, severity: LogSeverity): void {\r\n let msg: string = this._formatString(messages, severity);\r\n \r\n this._logMessage(msg, severity);\r\n }\r\n\r\n protected _logMessage(msg: string, severity: LogSeverity): void {\r\n if (this._shouldLog(msg, severity)) {\r\n if ((severity & (LogSeverity.ERROR | LogSeverity.FATAL)) && this.useStdErrForErrors) {\r\n this.getErrorStream().write(msg);\r\n }\r\n else {\r\n this.getLogStream().write(msg);\r\n }\r\n }\r\n }\r\n\r\n protected _shouldLog(msg: string, severity: LogSeverity): boolean {\r\n if (severity === LogSeverity.TRACE) {\r\n return true;\r\n }\r\n\r\n for (let i: number = 0; i < this._filters.length; i++) {\r\n let filter: RegExp = this._filters[i];\r\n if (filter.test(msg)) {\r\n return false;\r\n }\r\n }\r\n\r\n return true;\r\n }\r\n\r\n protected log(messages: IArguments, severity: LogSeverity): void {\r\n if (severity & this.getLogLevel()) {\r\n this._logMessages(messages, severity);\r\n let logData: ILogEvent = {\r\n severity : severity,\r\n messages : messages\r\n };\r\n this.emit(LogEvent.LOG, logData);\r\n }\r\n }\r\n\r\n public trace(message: any): void {\r\n this.log(arguments, LogSeverity.TRACE);\r\n }\r\n\r\n public debug(message: any): void {\r\n this.log(arguments, LogSeverity.DEBUG);\r\n }\r\n\r\n public info(message: any): void {\r\n this.log(arguments, LogSeverity.INFO);\r\n }\r\n\r\n public warn(message: any): void {\r\n this.log(arguments, LogSeverity.WARNING);\r\n }\r\n\r\n public error(message: any): void {\r\n this.log(arguments, LogSeverity.ERROR);\r\n }\r\n\r\n public fatal(message: any): void {\r\n this.log(arguments, LogSeverity.FATAL);\r\n }\r\n\r\n public deprecate(alternative?: string, methodOverride?: string): void {\r\n let e: Error = new Error();\r\n let args: any = [];\r\n \r\n if (!methodOverride) {\r\n args.push(this._getDeprecatedMethodMessage(e));\r\n }\r\n else {\r\n args.push(methodOverride);\r\n }\r\n\r\n if (alternative) {\r\n args.push(this._getDeprecatedAlternativeMessage(alternative));\r\n }\r\n \r\n args.push('\\n\\n');\r\n args.push(e.stack);\r\n this.log(args, LogSeverity.DEPRECATE);\r\n }\r\n\r\n public deprecateParameterType(argumentLocation: number, deprecatedType: string, alternative?: string): void {\r\n let e: Error = new Error();\r\n let args: any = [];\r\n\r\n args.push(this._getDeprecatedParameterMethodMessage(e, argumentLocation, deprecatedType));\r\n\r\n if (alternative) {\r\n args.push(this._getDeprecatedParameterAlternativeMessage(alternative, argumentLocation));\r\n }\r\n \r\n args.push('\\n\\n');\r\n args.push(e.stack);\r\n this.log(args, LogSeverity.DEPRECATE);\r\n }\r\n \r\n private _getDeprecatedMethodMessage(e: Error): string {\r\n let stack = e.stack.split('\\n')[2].replace(/^\\s+at\\s+(.+?)\\s.+/g, '$1');\r\n let obj: string = 'Method';\r\n if (stack === \"new\") {\r\n stack = e.stack.split('\\n')[2].replace(/^\\s+at new\\s+(.+?)\\s.+/g, '$1');\r\n obj = 'Class';\r\n }\r\n return `${obj} ${stack} is deprecated.`\r\n }\r\n\r\n private _getDeprecatedAlternativeMessage(alternative: string): string {\r\n return `Use ${alternative} instead.`;\r\n }\r\n\r\n private _getDeprecatedParameterMethodMessage(e: Error, argumentLocation: number, parameter: string): string {\r\n let stack = e.stack.split('\\n')[2].replace(/^\\s+at\\s+(.+?)\\s.+/g, '$1');\r\n let obj: string = 'Method';\r\n if (stack === \"new\") {\r\n stack = e.stack.split('\\n')[2].replace(/^\\s+at new\\s+(.+?)\\s.+/g, '$1');\r\n obj = 'Class';\r\n }\r\n return `${obj} ${stack} ${parameter} at parameter ${argumentLocation} is deprecated.`\r\n }\r\n\r\n private _getDeprecatedParameterAlternativeMessage(alternative: string, argumentLocation: number): string {\r\n return `Use ${alternative} at parameter ${argumentLocation} instead.`;\r\n }\r\n}\r\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"16c2ed0e18c0681fd410870ef3001e545fbca458","contentHash":"ac193e38723f5279fcc5d003fd833f90950f724a6fba1363431b3d3da503f293"},"/development/breautek/storm/src/LogSeverity.ts":{"path":"/development/breautek/storm/src/LogSeverity.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":4,"column":0},"end":{"line":13,"column":68}},"2":{"start":{"line":5,"column":4},"end":{"line":5,"column":52}},"3":{"start":{"line":6,"column":4},"end":{"line":6,"column":52}},"4":{"start":{"line":7,"column":4},"end":{"line":7,"column":50}},"5":{"start":{"line":8,"column":4},"end":{"line":8,"column":56}},"6":{"start":{"line":9,"column":4},"end":{"line":9,"column":61}},"7":{"start":{"line":10,"column":4},"end":{"line":10,"column":53}},"8":{"start":{"line":11,"column":4},"end":{"line":11,"column":53}},"9":{"start":{"line":12,"column":4},"end":{"line":12,"column":50}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":4,"column":1},"end":{"line":4,"column":2}},"loc":{"start":{"line":4,"column":24},"end":{"line":13,"column":1}},"line":4}},"branchMap":{"0":{"loc":{"start":{"line":13,"column":17},"end":{"line":13,"column":66}},"type":"binary-expr","locations":[{"start":{"line":13,"column":17},"end":{"line":13,"column":36}},{"start":{"line":13,"column":41},"end":{"line":13,"column":65}}],"line":13}},"s":{"0":1,"1":1,"2":1,"3":1,"4":1,"5":1,"6":1,"7":1,"8":1,"9":1},"f":{"0":1},"b":{"0":[1,1]},"inputSourceMap":{"version":3,"file":"/development/breautek/storm/src/LogSeverity.ts","sources":["/development/breautek/storm/src/LogSeverity.ts"],"names":[],"mappings":";;AAeA,IAAY,WASX;AATD,WAAY,WAAW;IACnB,+CAAS,CAAA;IACT,+CAAS,CAAA;IACT,6CAAQ,CAAA;IACR,mDAAW,CAAA;IACX,wDAAc,CAAA;IACd,gDAAU,CAAA;IACV,gDAAU,CAAA;IACV,6CAAgE,CAAA;AACpE,CAAC,EATW,WAAW,GAAX,mBAAW,KAAX,mBAAW,QAStB","sourcesContent":["// Copyright (C) 2017 Norman Breau\r\n\r\n// This program is free software: you can redistribute it and/or modify\r\n// it under the terms of the GNU General Public License as published by\r\n// the Free Software Foundation, either version 3 of the License, or\r\n// (at your option) any later version.\r\n\r\n// This program is distributed in the hope that it will be useful,\r\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\r\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\r\n// GNU General Public License for more details.\r\n\r\n// You should have received a copy of the GNU General Public License\r\n// along with this program. If not, see <http://www.gnu.org/licenses/>.\r\n\r\nexport enum LogSeverity {\r\n TRACE = 1,\r\n DEBUG = 2,\r\n INFO = 4,\r\n WARNING = 8,\r\n DEPRECATE = 16,\r\n ERROR = 32,\r\n FATAL = 64,\r\n ALL = TRACE | DEBUG | INFO | WARNING | DEPRECATE | ERROR | FATAL\r\n}\r\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"f7ca6f80536f851e857670f5e05fdf9a4aa6f521","contentHash":"4ad54a411c24bd4a13e92a1566ad5e0f29587181e0facccf5ffc7bb01fd56fce"},"/development/breautek/storm/src/LogEvent.ts":{"path":"/development/breautek/storm/src/LogEvent.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":4,"column":0},"end":{"line":6,"column":59}},"2":{"start":{"line":5,"column":4},"end":{"line":5,"column":28}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":4,"column":1},"end":{"line":4,"column":2}},"loc":{"start":{"line":4,"column":21},"end":{"line":6,"column":1}},"line":4}},"branchMap":{"0":{"loc":{"start":{"line":6,"column":14},"end":{"line":6,"column":57}},"type":"binary-expr","locations":[{"start":{"line":6,"column":14},"end":{"line":6,"column":30}},{"start":{"line":6,"column":35},"end":{"line":6,"column":56}}],"line":6}},"s":{"0":1,"1":1,"2":1},"f":{"0":1},"b":{"0":[1,1]},"inputSourceMap":{"version":3,"file":"/development/breautek/storm/src/LogEvent.ts","sources":["/development/breautek/storm/src/LogEvent.ts"],"names":[],"mappings":";;AAeA,IAAY,QAEX;AAFD,WAAY,QAAQ;IAChB,uBAAW,CAAA;AACf,CAAC,EAFW,QAAQ,GAAR,gBAAQ,KAAR,gBAAQ,QAEnB","sourcesContent":["// Copyright (C) 2017 Norman Breau\n\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU General Public License for more details.\n\n// You should have received a copy of the GNU General Public License\n// along with this program. If not, see <http://www.gnu.org/licenses/>.\n\nexport enum LogEvent {\n LOG = 'log'\n}\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"17c6428e9793cc1cec1860bc2212dc330345048c","contentHash":"1fc1989bb34119569907d8a2a0e32081fa5066b5d697081c8db4b0caebd2d7e2"},"/development/breautek/storm/src/ApplicationEvent.ts":{"path":"/development/breautek/storm/src/ApplicationEvent.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":4,"column":0},"end":{"line":6,"column":83}},"2":{"start":{"line":5,"column":4},"end":{"line":5,"column":56}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":4,"column":1},"end":{"line":4,"column":2}},"loc":{"start":{"line":4,"column":29},"end":{"line":6,"column":1}},"line":4}},"branchMap":{"0":{"loc":{"start":{"line":6,"column":22},"end":{"line":6,"column":81}},"type":"binary-expr","locations":[{"start":{"line":6,"column":22},"end":{"line":6,"column":46}},{"start":{"line":6,"column":51},"end":{"line":6,"column":80}}],"line":6}},"s":{"0":1,"1":1,"2":1},"f":{"0":1},"b":{"0":[1,1]},"inputSourceMap":{"version":3,"file":"/development/breautek/storm/src/ApplicationEvent.ts","sources":["/development/breautek/storm/src/ApplicationEvent.ts"],"names":[],"mappings":";;AAeA,IAAY,gBAEX;AAFD,WAAY,gBAAgB;IACxB,mDAA+B,CAAA;AACnC,CAAC,EAFW,gBAAgB,GAAhB,wBAAgB,KAAhB,wBAAgB,QAE3B","sourcesContent":["// Copyright (C) 2017 Norman Breau\r\n\r\n// This program is free software: you can redistribute it and/or modify\r\n// it under the terms of the GNU General Public License as published by\r\n// the Free Software Foundation, either version 3 of the License, or\r\n// (at your option) any later version.\r\n\r\n// This program is distributed in the hope that it will be useful,\r\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\r\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\r\n// GNU General Public License for more details.\r\n\r\n// You should have received a copy of the GNU General Public License\r\n// along with this program. If not, see <http://www.gnu.org/licenses/>.\r\n\r\nexport enum ApplicationEvent {\r\n CONFIG_LOADED = 'config_loaded'\r\n}\r\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"bb73c509d381b5fa5ee471e131681b455bbbd2f3","contentHash":"f2fd4f17c4de820c2c5eae46064fa5c873c3cd6ac53a774c7d8e4644b6cb0dcd"},"/development/breautek/storm/src/Request.ts":{"path":"/development/breautek/storm/src/Request.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":3,"column":19},"end":{"line":3,"column":40}},"2":{"start":{"line":6,"column":8},"end":{"line":6,"column":31}},"3":{"start":{"line":9,"column":8},"end":{"line":9,"column":33}},"4":{"start":{"line":12,"column":8},"end":{"line":25,"column":11}},"5":{"start":{"line":13,"column":20},"end":{"line":13,"column":43}},"6":{"start":{"line":14,"column":23},"end":{"line":14,"column":52}},"7":{"start":{"line":15,"column":12},"end":{"line":15,"column":30}},"8":{"start":{"line":16,"column":12},"end":{"line":24,"column":15}},"9":{"start":{"line":17,"column":16},"end":{"line":19,"column":17}},"10":{"start":{"line":18,"column":20},"end":{"line":18,"column":41}},"11":{"start":{"line":20,"column":16},"end":{"line":23,"column":19}},"12":{"start":{"line":28,"column":8},"end":{"line":28,"column":36}},"13":{"start":{"line":31,"column":20},"end":{"line":31,"column":60}},"14":{"start":{"line":32,"column":8},"end":{"line":37,"column":9}},"15":{"start":{"line":33,"column":12},"end":{"line":33,"column":25}},"16":{"start":{"line":36,"column":12},"end":{"line":36,"column":55}},"17":{"start":{"line":40,"column":8},"end":{"line":40,"column":34}},"18":{"start":{"line":43,"column":8},"end":{"line":43,"column":35}},"19":{"start":{"line":46,"column":8},"end":{"line":46,"column":41}},"20":{"start":{"line":49,"column":8},"end":{"line":49,"column":31}},"21":{"start":{"line":52,"column":8},"end":{"line":52,"column":49}},"22":{"start":{"line":55,"column":8},"end":{"line":55,"column":37}},"23":{"start":{"line":58,"column":8},"end":{"line":58,"column":35}},"24":{"start":{"line":61,"column":8},"end":{"line":61,"column":40}},"25":{"start":{"line":64,"column":8},"end":{"line":64,"column":35}},"26":{"start":{"line":67,"column":8},"end":{"line":67,"column":46}},"27":{"start":{"line":70,"column":8},"end":{"line":70,"column":36}},"28":{"start":{"line":73,"column":8},"end":{"line":73,"column":28}},"29":{"start":{"line":76,"column":0},"end":{"line":76,"column":26}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":5,"column":4},"end":{"line":5,"column":5}},"loc":{"start":{"line":5,"column":25},"end":{"line":7,"column":5}},"line":5},"1":{"name":"(anonymous_1)","decl":{"start":{"line":8,"column":4},"end":{"line":8,"column":5}},"loc":{"start":{"line":8,"column":14},"end":{"line":10,"column":5}},"line":8},"2":{"name":"(anonymous_2)","decl":{"start":{"line":11,"column":4},"end":{"line":11,"column":5}},"loc":{"start":{"line":11,"column":14},"end":{"line":26,"column":5}},"line":11},"3":{"name":"(anonymous_3)","decl":{"start":{"line":12,"column":27},"end":{"line":12,"column":28}},"loc":{"start":{"line":12,"column":48},"end":{"line":25,"column":9}},"line":12},"4":{"name":"(anonymous_4)","decl":{"start":{"line":16,"column":26},"end":{"line":16,"column":27}},"loc":{"start":{"line":16,"column":52},"end":{"line":24,"column":13}},"line":16},"5":{"name":"(anonymous_5)","decl":{"start":{"line":27,"column":4},"end":{"line":27,"column":5}},"loc":{"start":{"line":27,"column":17},"end":{"line":29,"column":5}},"line":27},"6":{"name":"(anonymous_6)","decl":{"start":{"line":30,"column":4},"end":{"line":30,"column":5}},"loc":{"start":{"line":30,"column":20},"end":{"line":38,"column":5}},"line":30},"7":{"name":"(anonymous_7)","decl":{"start":{"line":39,"column":4},"end":{"line":39,"column":5}},"loc":{"start":{"line":39,"column":24},"end":{"line":41,"column":5}},"line":39},"8":{"name":"(anonymous_8)","decl":{"start":{"line":42,"column":4},"end":{"line":42,"column":5}},"loc":{"start":{"line":42,"column":16},"end":{"line":44,"column":5}},"line":42},"9":{"name":"(anonymous_9)","decl":{"start":{"line":45,"column":4},"end":{"line":45,"column":5}},"loc":{"start":{"line":45,"column":19},"end":{"line":47,"column":5}},"line":45},"10":{"name":"(anonymous_10)","decl":{"start":{"line":48,"column":4},"end":{"line":48,"column":5}},"loc":{"start":{"line":48,"column":12},"end":{"line":50,"column":5}},"line":48},"11":{"name":"(anonymous_11)","decl":{"start":{"line":51,"column":4},"end":{"line":51,"column":5}},"loc":{"start":{"line":51,"column":21},"end":{"line":53,"column":5}},"line":51},"12":{"name":"(anonymous_12)","decl":{"start":{"line":54,"column":4},"end":{"line":54,"column":5}},"loc":{"start":{"line":54,"column":18},"end":{"line":56,"column":5}},"line":54},"13":{"name":"(anonymous_13)","decl":{"start":{"line":57,"column":4},"end":{"line":57,"column":5}},"loc":{"start":{"line":57,"column":16},"end":{"line":59,"column":5}},"line":57},"14":{"name":"(anonymous_14)","decl":{"start":{"line":60,"column":4},"end":{"line":60,"column":5}},"loc":{"start":{"line":60,"column":13},"end":{"line":62,"column":5}},"line":60},"15":{"name":"(anonymous_15)","decl":{"start":{"line":63,"column":4},"end":{"line":63,"column":5}},"loc":{"start":{"line":63,"column":15},"end":{"line":65,"column":5}},"line":63},"16":{"name":"(anonymous_16)","decl":{"start":{"line":66,"column":4},"end":{"line":66,"column":5}},"loc":{"start":{"line":66,"column":22},"end":{"line":68,"column":5}},"line":66},"17":{"name":"(anonymous_17)","decl":{"start":{"line":69,"column":4},"end":{"line":69,"column":5}},"loc":{"start":{"line":69,"column":19},"end":{"line":71,"column":5}},"line":69},"18":{"name":"(anonymous_18)","decl":{"start":{"line":72,"column":4},"end":{"line":72,"column":5}},"loc":{"start":{"line":72,"column":23},"end":{"line":74,"column":5}},"line":72}},"branchMap":{"0":{"loc":{"start":{"line":17,"column":16},"end":{"line":19,"column":17}},"type":"if","locations":[{"start":{"line":17,"column":16},"end":{"line":19,"column":17}},{"start":{"line":17,"column":16},"end":{"line":19,"column":17}}],"line":17},"1":{"loc":{"start":{"line":32,"column":8},"end":{"line":37,"column":9}},"type":"if","locations":[{"start":{"line":32,"column":8},"end":{"line":37,"column":9}},{"start":{"line":32,"column":8},"end":{"line":37,"column":9}}],"line":32},"2":{"loc":{"start":{"line":36,"column":19},"end":{"line":36,"column":54}},"type":"cond-expr","locations":[{"start":{"line":36,"column":39},"end":{"line":36,"column":47}},{"start":{"line":36,"column":50},"end":{"line":36,"column":54}}],"line":36},"3":{"loc":{"start":{"line":36,"column":19},"end":{"line":36,"column":36}},"type":"binary-expr","locations":[{"start":{"line":36,"column":19},"end":{"line":36,"column":24}},{"start":{"line":36,"column":28},"end":{"line":36,"column":36}}],"line":36}},"s":{"0":1,"1":1,"2":41,"3":6,"4":1,"5":1,"6":1,"7":1,"8":1,"9":1,"10":0,"11":1,"12":1,"13":4,"14":4,"15":2,"16":2,"17":1,"18":2,"19":1,"20":1,"21":1,"22":1,"23":1,"24":41,"25":1,"26":1,"27":1,"28":2,"29":1},"f":{"0":41,"1":6,"2":1,"3":1,"4":1,"5":1,"6":4,"7":1,"8":2,"9":1,"10":1,"11":1,"12":1,"13":1,"14":41,"15":1,"16":1,"17":1,"18":2},"b":{"0":[0,1],"1":[2,2],"2":[0,2],"3":[2,0]},"inputSourceMap":{"version":3,"file":"/development/breautek/storm/src/Request.ts","sources":["/development/breautek/storm/src/Request.ts"],"names":[],"mappings":";;AAkBA,yCAAyC;AAOzC,MAAa,OAAO;IAGhB,YAAmB,OAAwB;QACvC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IAC3B,CAAC;IAEM,OAAO;QACV,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;IAC7B,CAAC;IAEM,OAAO;QACV,OAAO,IAAI,OAAO,CAAY,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAC9C,IAAI,CAAC,GAAoB,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACjD,IAAI,IAAI,GAA4B,IAAI,UAAU,CAAC,YAAY,EAAE,CAAC;YAClE,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;YAElB,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,KAAU,EAAE,MAAyB,EAAE,KAAuB,EAAO,EAAE;gBAClF,IAAI,KAAK,EAAE;oBACP,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;iBACxB;gBAED,OAAO,OAAO,CAAC;oBACX,MAAM;oBACN,KAAK,EAAE,KAAK;iBACf,CAAC,CAAC;YACP,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;IACP,CAAC;IAEM,UAAU;QACb,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC;IAChC,CAAC;IAEM,SAAS,CAAC,IAAY;QACzB,IAAI,KAAK,GAA2B,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;QAC7E,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;YAC3B,OAAO,KAAK,CAAC;SAChB;aACI;YACD,OAAO,KAAK,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;SAC9C;IACL,CAAC;IAEM,iBAAiB;QACpB,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;IAC9B,CAAC;IAEM,SAAS;QACZ,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;IAC/B,CAAC;IAEM,QAAQ,CAAC,IAAY;QACxB,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACrC,CAAC;IAEM,KAAK;QACR,OAAO,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;IAC3B,CAAC;IAEM,cAAc;QACjB,OAAO,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC;IAC7C,CAAC;IAEM,WAAW;QACd,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC;IACjC,CAAC;IAEM,SAAS;QACZ,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;IAC/B,CAAC;IAEM,MAAM;QACT,OAAO,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC;IACpC,CAAC;IAEM,QAAQ;QACX,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;IAC/B,CAAC;IAEM,IAAI,CAAC,WAAqB;QAC7B,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAC1C,CAAC;IAEM,MAAM,CAAC,MAAgB;QAC1B,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAChC,CAAC;IAEM,gBAAgB;QACnB,OAAO,IAAI,CAAC,OAAO,CAAC;IACxB,CAAC;CACJ;AA3FD,0BA2FC","sourcesContent":["// Copyright (C) 2017 Norman Breau\r\n\r\n// This program is free software: you can redistribute it and/or modify\r\n// it under the terms of the GNU General Public License as published by\r\n// the Free Software Foundation, either version 3 of the License, or\r\n// (at your option) any later version.\r\n\r\n// This program is distributed in the hope that it will be useful,\r\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\r\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\r\n// GNU General Public License for more details.\r\n\r\n// You should have received a copy of the GNU General Public License\r\n// along with this program. If not, see <http://www.gnu.org/licenses/>.\r\n\r\nimport * as express from 'express';\r\nimport { IncomingHttpHeaders } from 'http';\r\nimport {Writable} from 'stream';\r\nimport * as formidable from 'formidable';\r\nimport {IFormData} from './IFormData';\r\n\r\nexport interface IParameterMap {\r\n [key: string]: string;\r\n}\r\n\r\nexport class Request<TBody = any> {\r\n private request: express.Request;\r\n\r\n public constructor(request: express.Request) {\r\n this.request = request;\r\n }\r\n\r\n public getBody(): TBody {\r\n return this.request.body;\r\n }\r\n\r\n public getForm(): Promise<IFormData> {\r\n return new Promise<IFormData>((resolve, reject) => {\r\n let r: express.Request = this.getRequestSource();\r\n let form: formidable.IncomingForm = new formidable.IncomingForm();\r\n form.hash = 'md5';\r\n\r\n form.parse(r, (error: any, fields: formidable.Fields, files: formidable.Files): any => {\r\n if (error) {\r\n return reject(error);\r\n }\r\n\r\n return resolve({\r\n fields,\r\n files: files\r\n });\r\n });\r\n });\r\n }\r\n\r\n public getHeaders(): IncomingHttpHeaders {\r\n return this.request.headers;\r\n }\r\n\r\n public getHeader(name: string): string {\r\n let value: string | Array<string> = this.request.headers[name.toLowerCase()];\r\n if (typeof value === 'string') {\r\n return value;\r\n }\r\n else {\r\n return value && value[0] ? value[0] : null;\r\n }\r\n }\r\n\r\n public getQueryVariables(): any {\r\n return this.request.query;\r\n }\r\n\r\n public getParams(): IParameterMap {\r\n return this.request.params;\r\n }\r\n\r\n public getParam(name: string): string {\r\n return this.request.params[name];\r\n }\r\n\r\n public getIP(): string {\r\n return this.request.ip;\r\n }\r\n\r\n public getForwardedIP(): string {\r\n return this.getHeader('X-Forwarded-FOR');\r\n }\r\n\r\n public getHostname(): string {\r\n return this.request.hostname;\r\n }\r\n\r\n public getMethod(): string {\r\n return this.request.method;\r\n }\r\n\r\n public getURL(): string {\r\n return this.request.originalUrl;\r\n }\r\n\r\n public isSecure(): boolean {\r\n return this.request.secure;\r\n }\r\n\r\n public pipe(destination: Writable): any {\r\n return this.request.pipe(destination);\r\n }\r\n\r\n public unpipe(source: Writable): void {\r\n this.request.unpipe(source);\r\n }\r\n\r\n public getRequestSource(): express.Request {\r\n return this.request;\r\n }\r\n}\r\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"6aa980fd38bdfbe4c4c7b01f6f066f4c9e9e123f","contentHash":"659b802f6e197f3b793d1dcac55ad3cac17ca42cff18397c0d15d203bf79792f"},"/development/breautek/storm/src/Response.ts":{"path":"/development/breautek/storm/src/Response.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":3,"column":21},"end":{"line":3,"column":44}},"2":{"start":{"line":4,"column":23},"end":{"line":4,"column":48}},"3":{"start":{"line":5,"column":21},"end":{"line":5,"column":44}},"4":{"start":{"line":6,"column":19},"end":{"line":6,"column":40}},"5":{"start":{"line":7,"column":24},"end":{"line":7,"column":50}},"6":{"start":{"line":10,"column":8},"end":{"line":10,"column":33}},"7":{"start":{"line":11,"column":8},"end":{"line":11,"column":34}},"8":{"start":{"line":12,"column":8},"end":{"line":12,"column":37}},"9":{"start":{"line":15,"column":8},"end":{"line":15,"column":37}},"10":{"start":{"line":16,"column":8},"end":{"line":16,"column":20}},"11":{"start":{"line":19,"column":8},"end":{"line":19,"column":40}},"12":{"start":{"line":22,"column":8},"end":{"line":22,"column":36}},"13":{"start":{"line":25,"column":8},"end":{"line":33,"column":9}},"14":{"start":{"line":26,"column":12},"end":{"line":26,"column":66}},"15":{"start":{"line":28,"column":13},"end":{"line":33,"column":9}},"16":{"start":{"line":29,"column":12},"end":{"line":29,"column":77}},"17":{"start":{"line":32,"column":12},"end":{"line":32,"column":37}},"18":{"start":{"line":34,"column":8},"end":{"line":34,"column":159}},"19":{"start":{"line":37,"column":8},"end":{"line":39,"column":11}},"20":{"start":{"line":38,"column":12},"end":{"line":38,"column":41}},"21":{"start":{"line":40,"column":8},"end":{"line":40,"column":35}},"22":{"start":{"line":43,"column":8},"end":{"line":48,"column":9}},"23":{"start":{"line":44,"column":12},"end":{"line":44,"column":66}},"24":{"start":{"line":47,"column":12},"end":{"line":47,"column":55}},"25":{"start":{"line":49,"column":8},"end":{"line":49,"column":24}},"26":{"start":{"line":52,"column":8},"end":{"line":52,"column":38}},"27":{"start":{"line":55,"column":8},"end":{"line":55,"column":40}},"28":{"start":{"line":58,"column":8},"end":{"line":58,"column":41}},"29":{"start":{"line":61,"column":8},"end":{"line":74,"column":9}},"30":{"start":{"line":62,"column":12},"end":{"line":70,"column":13}},"31":{"start":{"line":63,"column":16},"end":{"line":63,"column":33}},"32":{"start":{"line":65,"column":17},"end":{"line":70,"column":13}},"33":{"start":{"line":66,"column":16},"end":{"line":66,"column":33}},"34":{"start":{"line":69,"column":16},"end":{"line":69,"column":68}},"35":{"start":{"line":73,"column":12},"end":{"line":73,"column":64}},"36":{"start":{"line":77,"column":8},"end":{"line":77,"column":54}},"37":{"start":{"line":78,"column":8},"end":{"line":78,"column":75}},"38":{"start":{"line":81,"column":8},"end":{"line":81,"column":54}},"39":{"start":{"line":82,"column":8},"end":{"line":82,"column":76}},"40":{"start":{"line":85,"column":8},"end":{"line":85,"column":54}},"41":{"start":{"line":86,"column":8},"end":{"line":86,"column":73}},"42":{"start":{"line":89,"column":8},"end":{"line":89,"column":54}},"43":{"start":{"line":90,"column":8},"end":{"line":90,"column":72}},"44":{"start":{"line":93,"column":8},"end":{"line":93,"column":54}},"45":{"start":{"line":94,"column":8},"end":{"line":94,"column":73}},"46":{"start":{"line":97,"column":8},"end":{"line":97,"column":54}},"47":{"start":{"line":98,"column":8},"end":{"line":98,"column":74}},"48":{"start":{"line":101,"column":0},"end":{"line":101,"column":28}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":9,"column":4},"end":{"line":9,"column":5}},"loc":{"start":{"line":9,"column":38},"end":{"line":13,"column":5}},"line":9},"1":{"name":"(anonymous_1)","decl":{"start":{"line":14,"column":4},"end":{"line":14,"column":5}},"loc":{"start":{"line":14,"column":22},"end":{"line":17,"column":5}},"line":14},"2":{"name":"(anonymous_2)","decl":{"start":{"line":18,"column":4},"end":{"line":18,"column":5}},"loc":{"start":{"line":18,"column":16},"end":{"line":20,"column":5}},"line":18},"3":{"name":"(anonymous_3)","decl":{"start":{"line":21,"column":4},"end":{"line":21,"column":5}},"loc":{"start":{"line":21,"column":18},"end":{"line":23,"column":5}},"line":21},"4":{"name":"(anonymous_4)","decl":{"start":{"line":24,"column":4},"end":{"line":24,"column":5}},"loc":{"start":{"line":24,"column":15},"end":{"line":35,"column":5}},"line":24},"5":{"name":"(anonymous_5)","decl":{"start":{"line":36,"column":4},"end":{"line":36,"column":5}},"loc":{"start":{"line":36,"column":17},"end":{"line":41,"column":5}},"line":36},"6":{"name":"(anonymous_6)","decl":{"start":{"line":37,"column":25},"end":{"line":37,"column":26}},"loc":{"start":{"line":37,"column":31},"end":{"line":39,"column":9}},"line":37},"7":{"name":"(anonymous_7)","decl":{"start":{"line":42,"column":4},"end":{"line":42,"column":5}},"loc":{"start":{"line":42,"column":18},"end":{"line":50,"column":5}},"line":42},"8":{"name":"(anonymous_8)","decl":{"start":{"line":51,"column":4},"end":{"line":51,"column":5}},"loc":{"start":{"line":51,"column":26},"end":{"line":53,"column":5}},"line":51},"9":{"name":"(anonymous_9)","decl":{"start":{"line":54,"column":4},"end":{"line":54,"column":5}},"loc":{"start":{"line":54,"column":29},"end":{"line":56,"column":5}},"line":54},"10":{"name":"(anonymous_10)","decl":{"start":{"line":57,"column":4},"end":{"line":57,"column":5}},"loc":{"start":{"line":57,"column":20},"end":{"line":59,"column":5}},"line":57},"11":{"name":"(anonymous_11)","decl":{"start":{"line":60,"column":4},"end":{"line":60,"column":5}},"loc":{"start":{"line":60,"column":17},"end":{"line":75,"column":5}},"line":60},"12":{"name":"(anonymous_12)","decl":{"start":{"line":76,"column":4},"end":{"line":76,"column":5}},"loc":{"start":{"line":76,"column":21},"end":{"line":79,"column":5}},"line":76},"13":{"name":"(anonymous_13)","decl":{"start":{"line":80,"column":4},"end":{"line":80,"column":5}},"loc":{"start":{"line":80,"column":23},"end":{"line":83,"column":5}},"line":80},"14":{"name":"(anonymous_14)","decl":{"start":{"line":84,"column":4},"end":{"line":84,"column":5}},"loc":{"start":{"line":84,"column":20},"end":{"line":87,"column":5}},"line":84},"15":{"name":"(anonymous_15)","decl":{"start":{"line":88,"column":4},"end":{"line":88,"column":5}},"loc":{"start":{"line":88,"column":19},"end":{"line":91,"column":5}},"line":88},"16":{"name":"(anonymous_16)","decl":{"start":{"line":92,"column":4},"end":{"line":92,"column":5}},"loc":{"start":{"line":92,"column":19},"end":{"line":95,"column":5}},"line":92},"17":{"name":"(anonymous_17)","decl":{"start":{"line":96,"column":4},"end":{"line":96,"column":5}},"loc":{"start":{"line":96,"column":24},"end":{"line":99,"column":5}},"line":96}},"branchMap":{"0":{"loc":{"start":{"line":25,"column":8},"end":{"line":33,"column":9}},"type":"if","locations":[{"start":{"line":25,"column":8},"end":{"line":33,"column":9}},{"start":{"line":25,"column":8},"end":{"line":33,"column":9}}],"line":25},"1":{"loc":{"start":{"line":28,"column":13},"end":{"line":33,"column":9}},"type":"if","locations":[{"start":{"line":28,"column":13},"end":{"line":33,"column":9}},{"start":{"line":28,"column":13},"end":{"line":33,"column":9}}],"line":28},"2":{"loc":{"start":{"line":43,"column":8},"end":{"line":48,"column":9}},"type":"if","locations":[{"start":{"line":43,"column":8},"end":{"line":48,"column":9}},{"start":{"line":43,"column":8},"end":{"line":48,"column":9}}],"line":43},"3":{"loc":{"start":{"line":61,"column":8},"end":{"line":74,"column":9}},"type":"if","locations":[{"start":{"line":61,"column":8},"end":{"line":74,"column":9}},{"start":{"line":61,"column":8},"end":{"line":74,"column":9}}],"line":61},"4":{"loc":{"start":{"line":62,"column":12},"end":{"line":70,"column":13}},"type":"if","locations":[{"start":{"line":62,"column":12},"end":{"line":70,"column":13}},{"start":{"line":62,"column":12},"end":{"line":70,"column":13}}],"line":62},"5":{"loc":{"start":{"line":65,"column":17},"end":{"line":70,"column":13}},"type":"if","locations":[{"start":{"line":65,"column":17},"end":{"line":70,"column":13}},{"start":{"line":65,"column":17},"end":{"line":70,"column":13}}],"line":65}},"s":{"0":1,"1":1,"2":1,"3":1,"4":1,"5":1,"6":41,"7":41,"8":41,"9":38,"10":38,"11":45,"12":1,"13":45,"14":2,"15":43,"16":4,"17":39,"18":45,"19":1,"20":1,"21":1,"22":15,"23":14,"24":1,"25":15,"26":1,"27":1,"28":2,"29":4,"30":3,"31":1,"32":2,"33":1,"34":1,"35":1,"36":1,"37":1,"38":1,"39":1,"40":1,"41":1,"42":1,"43":1,"44":1,"45":1,"46":2,"47":2,"48":1},"f":{"0":41,"1":38,"2":45,"3":1,"4":45,"5":1,"6":1,"7":15,"8":1,"9":1,"10":2,"11":4,"12":1,"13":1,"14":1,"15":1,"16":1,"17":2},"b":{"0":[2,43],"1":[4,39],"2":[14,1],"3":[3,1],"4":[1,2],"5":[1,1]},"inputSourceMap":{"version":3,"file":"/development/breautek/storm/src/Response.ts","sources":["/development/breautek/storm/src/Response.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (C) 2017 Norman Breau\r\n\r\n// This program is free software: you can redistribute it and/or modify\r\n// it under the terms of the GNU General Public License as published by\r\n// the Free Software Foundation, either version 3 of the License, or\r\n// (at your option) any later version.\r\n\r\n// This program is distributed in the hope that it will be useful,\r\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\r\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\r\n// GNU General Public License for more details.\r\n\r\n// You should have received a copy of the GNU General Public License\r\n// along with this program. If not, see <http://www.gnu.org/licenses/>.\r\n\r\nimport {StatusCode} from './StatusCode';\r\nimport {ResponseData} from './ResponseData';\r\nimport {StormError, IErrorResponse} from './StormError';\r\nimport * as express from 'express';\r\nimport {getApplicationLogger} from './instance';\r\nimport { InternalError } from './InternalError';\r\n\r\nexport type SendableData = ResponseData | Error | IErrorResponse | any;\r\n\r\nexport interface IHeaderKeyValuePair {\r\n [key: string]: string;\r\n}\r\n\r\nexport class Response<TResponse = SendableData, TErrorResponse = Error | IErrorResponse | string> {\r\n private response: express.Response;\r\n private created: Date;\r\n private requestURL: string;\r\n\r\n public constructor(response: express.Response, requestURL: string) {\r\n this.response = response;\r\n this.created = new Date();\r\n this.requestURL = requestURL;\r\n }\r\n\r\n public setStatus(status: StatusCode): Response<TResponse, TErrorResponse> {\r\n this.response.status(status);\r\n return this;\r\n }\r\n\r\n public getStatus(): StatusCode {\r\n return this.response.statusCode;\r\n }\r\n\r\n public redirect(url: string): void {\r\n this.response.redirect(url);\r\n }\r\n\r\n public send(data?: TResponse | TErrorResponse | StormError | IErrorResponse): void {\r\n if (data instanceof ResponseData) {\r\n this.setStatus(data.getStatus()).send(data.getData());\r\n }\r\n else if (data instanceof StormError) {\r\n this.setStatus(data.getHTTPCode()).send(data.getErrorResponse());\r\n }\r\n else {\r\n this.response.send(data);\r\n }\r\n \r\n getApplicationLogger().info(`API ${this.requestURL} (${this.getStatus()}) responded in ${new Date().getTime() - this.created.getTime()}ms`);\r\n }\r\n\r\n public pipe(stream: NodeJS.ReadableStream): void {\r\n stream.on('end', () => {\r\n stream.unpipe(this.response);\r\n });\r\n \r\n stream.pipe(this.response);\r\n }\r\n\r\n public success(data?: TResponse): void {\r\n if (data === undefined) {\r\n this.setStatus(StatusCode.OK_NO_CONTENT);\r\n }\r\n else {\r\n this.setStatus(StatusCode.OK);\r\n }\r\n\r\n this.send(data);\r\n }\r\n\r\n public setHeader(key: string, value: string): void {\r\n this.response.set(key, value);\r\n }\r\n\r\n public setHeaders(keyValuePair: IHeaderKeyValuePair): void {\r\n this.response.set(keyValuePair);\r\n }\r\n\r\n public isHeadersSent(): boolean {\r\n return this.response.headersSent;\r\n }\r\n\r\n public error(error?: TErrorResponse | ResponseData<TErrorResponse>): void {\r\n if (error) {\r\n if (error instanceof StormError) {\r\n this.send(error);\r\n }\r\n else if (error instanceof ResponseData) {\r\n // If it was not ResponseData<TResponse> then\r\n // the method signature should have caught it\r\n this.send((<TErrorResponse><unknown>error));\r\n }\r\n else {\r\n this.send(new InternalError(error));\r\n }\r\n }\r\n else {\r\n this.send(new InternalError(error));\r\n }\r\n }\r\n\r\n /**\r\n * @deprecated\r\n */\r\n public badRequest(data?: TErrorResponse | StormError): void {\r\n getApplicationLogger().deprecate();\r\n this.setStatus(StatusCode.ERR_BAD_REQUEST).send(data);\r\n }\r\n\r\n /**\r\n * @deprecated\r\n */\r\n public unauthorized(data?: TErrorResponse | StormError): void {\r\n getApplicationLogger().deprecate();\r\n this.setStatus(StatusCode.ERR_UNAUTHORIZED).send(data);\r\n }\r\n\r\n /**\r\n * @deprecated\r\n */\r\n public forbidden(data?: TErrorResponse | StormError): void {\r\n getApplicationLogger().deprecate();\r\n this.setStatus(StatusCode.ERR_FORBIDDEN).send(data);\r\n }\r\n\r\n /**\r\n * @deprecated\r\n */\r\n public conflict(data?: TErrorResponse | StormError): void {\r\n getApplicationLogger().deprecate();\r\n this.setStatus(StatusCode.ERR_CONFLICT).send(data);\r\n }\r\n\r\n /**\r\n * @deprecated\r\n */\r\n public notFound(data?: TErrorResponse | StormError): void {\r\n getApplicationLogger().deprecate();\r\n this.setStatus(StatusCode.ERR_NOT_FOUND).send(data);\r\n }\r\n\r\n /**\r\n * @deprecated\r\n */\r\n public internalError(data?: TErrorResponse | StormError): void {\r\n getApplicationLogger().deprecate();\r\n this.setStatus(StatusCode.INTERNAL_ERROR).send(data);\r\n }\r\n}\r\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"9cca69f472bc4eaae33d763bdfa4902faacaf25d","contentHash":"4add934c4065105018b623487719fe5624c5a5ba24467505214d7b2acef4c14f"},"/development/breautek/storm/src/StatusCode.ts":{"path":"/development/breautek/storm/src/StatusCode.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":4,"column":0},"end":{"line":53,"column":65}},"2":{"start":{"line":5,"column":4},"end":{"line":5,"column":68}},"3":{"start":{"line":6,"column":4},"end":{"line":6,"column":90}},"4":{"start":{"line":7,"column":4},"end":{"line":7,"column":72}},"5":{"start":{"line":8,"column":4},"end":{"line":8,"column":46}},"6":{"start":{"line":9,"column":4},"end":{"line":9,"column":62}},"7":{"start":{"line":10,"column":4},"end":{"line":10,"column":64}},"8":{"start":{"line":11,"column":4},"end":{"line":11,"column":74}},"9":{"start":{"line":12,"column":4},"end":{"line":12,"column":68}},"10":{"start":{"line":13,"column":4},"end":{"line":13,"column":74}},"11":{"start":{"line":14,"column":4},"end":{"line":14,"column":78}},"12":{"start":{"line":15,"column":4},"end":{"line":15,"column":72}},"13":{"start":{"line":16,"column":4},"end":{"line":16,"column":80}},"14":{"start":{"line":17,"column":4},"end":{"line":17,"column":84}},"15":{"start":{"line":18,"column":4},"end":{"line":18,"column":88}},"16":{"start":{"line":19,"column":4},"end":{"line":19,"column":64}},"17":{"start":{"line":20,"column":4},"end":{"line":20,"column":72}},"18":{"start":{"line":21,"column":4},"end":{"line":21,"column":78}},"19":{"start":{"line":22,"column":4},"end":{"line":22,"column":72}},"20":{"start":{"line":23,"column":4},"end":{"line":23,"column":62}},"21":{"start":{"line":24,"column":4},"end":{"line":24,"column":72}},"22":{"start":{"line":25,"column":4},"end":{"line":25,"column":74}},"23":{"start":{"line":26,"column":4},"end":{"line":26,"column":82}},"24":{"start":{"line":27,"column":4},"end":{"line":27,"column":68}},"25":{"start":{"line":28,"column":4},"end":{"line":28,"column":68}},"26":{"start":{"line":29,"column":4},"end":{"line":29,"column":72}},"27":{"start":{"line":30,"column":4},"end":{"line":30,"column":78}},"28":{"start":{"line":31,"column":4},"end":{"line":31,"column":88}},"29":{"start":{"line":32,"column":4},"end":{"line":32,"column":80}},"30":{"start":{"line":33,"column":4},"end":{"line":33,"column":66}},"31":{"start":{"line":34,"column":4},"end":{"line":34,"column":58}},"32":{"start":{"line":35,"column":4},"end":{"line":35,"column":80}},"33":{"start":{"line":36,"column":4},"end":{"line":36,"column":88}},"34":{"start":{"line":37,"column":4},"end":{"line":37,"column":84}},"35":{"start":{"line":38,"column":4},"end":{"line":38,"column":90}},"36":{"start":{"line":39,"column":4},"end":{"line":39,"column":94}},"37":{"start":{"line":40,"column":4},"end":{"line":40,"column":108}},"38":{"start":{"line":41,"column":4},"end":{"line":41,"column":86}},"39":{"start":{"line":42,"column":4},"end":{"line":42,"column":62}},"40":{"start":{"line":43,"column":4},"end":{"line":43,"column":82}},"41":{"start":{"line":44,"column":4},"end":{"line":44,"column":92}},"42":{"start":{"line":45,"column":4},"end":{"line":45,"column":84}},"43":{"start":{"line":46,"column":4},"end":{"line":46,"column":100}},"44":{"start":{"line":47,"column":4},"end":{"line":47,"column":60}},"45":{"start":{"line":48,"column":4},"end":{"line":48,"column":70}},"46":{"start":{"line":49,"column":4},"end":{"line":49,"column":90}},"47":{"start":{"line":50,"column":4},"end":{"line":50,"column":82}},"48":{"start":{"line":51,"column":4},"end":{"line":51,"column":98}},"49":{"start":{"line":52,"column":4},"end":{"line":52,"column":74}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":4,"column":1},"end":{"line":4,"column":2}},"loc":{"start":{"line":4,"column":23},"end":{"line":53,"column":1}},"line":4}},"branchMap":{"0":{"loc":{"start":{"line":53,"column":16},"end":{"line":53,"column":63}},"type":"binary-expr","locations":[{"start":{"line":53,"column":16},"end":{"line":53,"column":34}},{"start":{"line":53,"column":39},"end":{"line":53,"column":62}}],"line":53}},"s":{"0":1,"1":1,"2":1,"3":1,"4":1,"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"16":1,"17":1,"18":1,"19":1,"20":1,"21":1,"22":1,"23":1,"24":1,"25":1,"26":1,"27":1,"28":1,"29":1,"30":1,"31":1,"32":1,"33":1,"34":1,"35":1,"36":1,"37":1,"38":1,"39":1,"40":1,"41":1,"42":1,"43":1,"44":1,"45":1,"46":1,"47":1,"48":1,"49":1},"f":{"0":1},"b":{"0":[1,1]},"inputSourceMap":{"version":3,"file":"/development/breautek/storm/src/StatusCode.ts","sources":["/development/breautek/storm/src/StatusCode.ts"],"names":[],"mappings":";;AAeA,IAAY,UAqDX;AArDD,WAAY,UAAU;IAClB,+DAAmB,CAAA;IACnB,qFAA8B,CAAA;IAC9B,mEAAqB,CAAA;IAErB,yCAAQ,CAAA;IACR,yDAAgB,CAAA;IAChB,2DAAiB,CAAA;IACjB,qEAAsB,CAAA;IACtB,+DAAmB,CAAA;IACnB,qEAAsB,CAAA;IACtB,yEAAwB,CAAA;IACxB,mEAAqB,CAAA;IACrB,2EAAyB,CAAA;IAEzB,+EAA2B,CAAA;IAC3B,mFAA6B,CAAA;IAC7B,2DAAiB,CAAA;IACjB,mEAAqB,CAAA;IACrB,yEAAwB,CAAA;IACxB,mEAAqB,CAAA;IACrB,yDAAgB,CAAA;IAEhB,mEAAqB,CAAA;IACrB,qEAAsB,CAAA;IACtB,6EAA0B,CAAA;IAC1B,+DAAmB,CAAA;IACnB,+DAAmB,CAAA;IACnB,mEAAqB,CAAA;IACrB,yEAAwB,CAAA;IACxB,mFAA6B,CAAA;IAC7B,2EAAyB,CAAA;IACzB,6DAAiB,CAAA;IACjB,qDAAc,CAAA;IACd,2EAAyB,CAAA;IACzB,mFAA6B,CAAA;IAC7B,+EAA2B,CAAA;IAC3B,qFAA8B,CAAA;IAC9B,yFAAgC,CAAA;IAChC,uGAAuC,CAAA;IACvC,iFAA4B,CAAA;IAC5B,yDAAgB,CAAA;IAChB,6EAA0B,CAAA;IAC1B,uFAA+B,CAAA;IAC/B,+EAA2B,CAAA;IAC3B,+FAAmC,CAAA;IACnC,uDAAe,CAAA;IAEf,iEAAoB,CAAA;IACpB,qFAA8B,CAAA;IAC9B,6EAA0B,CAAA;IAC1B,6FAAkC,CAAA;IAClC,qEAAsB,CAAA;AAC1B,CAAC,EArDW,UAAU,GAAV,kBAAU,KAAV,kBAAU,QAqDrB","sourcesContent":["// Copyright (C) 2017 Norman Breau\r\n\r\n// This program is free software: you can redistribute it and/or modify\r\n// it under the terms of the GNU General Public License as published by\r\n// the Free Software Foundation, either version 3 of the License, or\r\n// (at your option) any later version.\r\n\r\n// This program is distributed in the hope that it will be useful,\r\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\r\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\r\n// GNU General Public License for more details.\r\n\r\n// You should have received a copy of the GNU General Public License\r\n// along with this program. If not, see <http://www.gnu.org/licenses/>.\r\n\r\nexport enum StatusCode {\r\n INFO_CONTINUE = 100,\r\n INFO_SWITCHING_PROTOCOLS = 101,\r\n INFO_PROCESSING = 102,\r\n\r\n OK = 200,\r\n OK_CREATED = 201,\r\n OK_ACCEPTED = 202,\r\n OK_NON_AUTH_INFO = 203,\r\n OK_NO_CONTENT = 204,\r\n OK_RESET_CONTENT = 205,\r\n OK_PARTIAL_CONTENT = 206,\r\n OK_MULTI_STATUS = 207,\r\n OK_ALREADY_REPORTED = 208,\r\n\r\n REDIR_MULTIPLE_CHOICE = 300,\r\n REDIR_MOVED_PERMANENTLY = 301,\r\n REDIR_FOUND = 301,\r\n REDIR_SEE_OTHER = 303,\r\n REDIR_NOT_MODIFIED = 304,\r\n REDIR_USE_PROXY = 305,\r\n REDIR_TEMP = 307,\r\n\r\n ERR_BAD_REQUEST = 400,\r\n ERR_UNAUTHORIZED = 401,\t\t// Used when the user needs to authorize.\r\n ERR_PAYMENT_REQUIRED = 402,\r\n ERR_FORBIDDEN = 403,\t\t// USed when the user is authorized but is not allowed access.\r\n ERR_NOT_FOUND = 404,\r\n ERR_NOT_ALLOWED = 405,\r\n ERR_NOT_ACCEPTABLE = 406,\r\n ERR_PROXY_AUTH_REQUIRED = 407,\r\n ERR_REQUEST_TIMEOUT = 408,\r\n ERR_CONFLICT= 409,\r\n ERR_GONE = 410,\r\n ERR_LENGTH_REQUIRED = 411,\r\n ERR_PRECONDITION_FAILED = 412,\r\n ERR_REQUEST_TOO_LARGE = 413,\r\n ERR_REQUEST_URI_TOO_LONG = 414,\r\n ERR_UNSUPPORTED_MEDIA_TYPE = 415,\r\n ERR_REQUEST_RANGE_NOT_SATISFIABLE = 416,\r\n ERR_EXPECTATION_FAILED = 417,\r\n ERR_TEAPOT = 418,\r\n ERR_UPGRADE_REQUIRED = 426,\r\n ERR_PRECONDITION_REQUIRED = 428,\r\n ERR_TOO_MANY_REQUESTS = 429,\r\n ERR_REQUEST_HEADERS_TOO_LARGE = 431,\r\n ERR_LEGAL = 451,\r\n\r\n INTERNAL_ERROR = 500,\r\n INTERNAL_NOT_IMPLEMENTED = 501,\r\n INTERNAL_BAD_GATEWAY = 502,\r\n INTERNAL_SERVICE_UNAVAILABLE = 503,\r\n INTERNAL_TIMEOUT = 504\r\n}\r\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"80d7fc8c3b0bbcd25a7658847382d78e231a2f89","contentHash":"1e841646c11d020325b7aab7538283e6de2ef25d753effadfdea2dde5b3676c7"},"/development/breautek/storm/src/ResponseData.ts":{"path":"/development/breautek/storm/src/ResponseData.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":5,"column":8},"end":{"line":5,"column":29}},"2":{"start":{"line":6,"column":8},"end":{"line":6,"column":25}},"3":{"start":{"line":9,"column":8},"end":{"line":9,"column":27}},"4":{"start":{"line":12,"column":8},"end":{"line":12,"column":25}},"5":{"start":{"line":15,"column":0},"end":{"line":15,"column":36}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":4,"column":4},"end":{"line":4,"column":5}},"loc":{"start":{"line":4,"column":30},"end":{"line":7,"column":5}},"line":4},"1":{"name":"(anonymous_1)","decl":{"start":{"line":8,"column":4},"end":{"line":8,"column":5}},"loc":{"start":{"line":8,"column":16},"end":{"line":10,"column":5}},"line":8},"2":{"name":"(anonymous_2)","decl":{"start":{"line":11,"column":4},"end":{"line":11,"column":5}},"loc":{"start":{"line":11,"column":14},"end":{"line":13,"column":5}},"line":11}},"branchMap":{},"s":{"0":1,"1":2,"2":2,"3":2,"4":2,"5":1},"f":{"0":2,"1":2,"2":2},"b":{},"inputSourceMap":{"version":3,"file":"/development/breautek/storm/src/ResponseData.ts","sources":["/development/breautek/storm/src/ResponseData.ts"],"names":[],"mappings":";;AAiBA,MAAa,YAAY;IAIrB,YAAmB,MAAkB,EAAE,IAAY;QAC/C,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACrB,CAAC;IAEM,SAAS;QACZ,OAAO,IAAI,CAAC,MAAM,CAAC;IACvB,CAAC;IAEM,OAAO;QACV,OAAO,IAAI,CAAC,IAAI,CAAC;IACrB,CAAC;CACJ;AAhBD,oCAgBC","sourcesContent":["// Copyright (C) 2017 Norman Breau\r\n\r\n// This program is free software: you can redistribute it and/or modify\r\n// it under the terms of the GNU General Public License as published by\r\n// the Free Software Foundation, either version 3 of the License, or\r\n// (at your option) any later version.\r\n\r\n// This program is distributed in the hope that it will be useful,\r\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\r\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\r\n// GNU General Public License for more details.\r\n\r\n// You should have received a copy of the GNU General Public License\r\n// along with this program. If not, see <http://www.gnu.org/licenses/>.\r\n\r\nimport {StatusCode} from './StatusCode';\r\n\r\nexport class ResponseData<TData = any> {\r\n private status: StatusCode;\r\n private data: TData;\r\n\r\n public constructor(status: StatusCode, data?: TData) {\r\n this.status = status;\r\n this.data = data;\r\n }\r\n\r\n public getStatus(): StatusCode {\r\n return this.status;\r\n }\r\n\r\n public getData(): TData {\r\n return this.data;\r\n }\r\n}\r\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"eb899baf6b4034de66655b90cd775de313c9a06e","contentHash":"285bdd7d2bbbe28e2e6d45bc86791871bc52be05cae8144891b275948c869597"},"/development/breautek/storm/src/StormError.ts":{"path":"/development/breautek/storm/src/StormError.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":3,"column":19},"end":{"line":3,"column":40}},"2":{"start":{"line":4,"column":21},"end":{"line":4,"column":44}},"3":{"start":{"line":7,"column":8},"end":{"line":7,"column":16}},"4":{"start":{"line":8,"column":8},"end":{"line":8,"column":31}},"5":{"start":{"line":9,"column":25},"end":{"line":9,"column":49}},"6":{"start":{"line":10,"column":8},"end":{"line":10,"column":81}},"7":{"start":{"line":11,"column":8},"end":{"line":11,"column":60}},"8":{"start":{"line":14,"column":8},"end":{"line":14,"column":18}},"9":{"start":{"line":17,"column":8},"end":{"line":17,"column":28}},"10":{"start":{"line":20,"column":8},"end":{"line":20,"column":54}},"11":{"start":{"line":23,"column":22},"end":{"line":23,"column":26}},"12":{"start":{"line":24,"column":8},"end":{"line":30,"column":9}},"13":{"start":{"line":25,"column":12},"end":{"line":25,"column":130}},"14":{"start":{"line":26,"column":12},"end":{"line":26,"column":53}},"15":{"start":{"line":29,"column":12},"end":{"line":29,"column":46}},"16":{"start":{"line":31,"column":8},"end":{"line":36,"column":10}},"17":{"start":{"line":39,"column":0},"end":{"line":39,"column":32}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":6,"column":4},"end":{"line":6,"column":5}},"loc":{"start":{"line":6,"column":25},"end":{"line":12,"column":5}},"line":6},"1":{"name":"(anonymous_1)","decl":{"start":{"line":13,"column":4},"end":{"line":13,"column":5}},"loc":{"start":{"line":13,"column":23},"end":{"line":15,"column":5}},"line":13},"2":{"name":"(anonymous_2)","decl":{"start":{"line":16,"column":4},"end":{"line":16,"column":5}},"loc":{"start":{"line":16,"column":24},"end":{"line":18,"column":5}},"line":16},"3":{"name":"(anonymous_3)","decl":{"start":{"line":19,"column":4},"end":{"line":19,"column":5}},"loc":{"start":{"line":19,"column":18},"end":{"line":21,"column":5}},"line":19},"4":{"name":"(anonymous_4)","decl":{"start":{"line":22,"column":4},"end":{"line":22,"column":5}},"loc":{"start":{"line":22,"column":23},"end":{"line":37,"column":5}},"line":22}},"branchMap":{"0":{"loc":{"start":{"line":24,"column":8},"end":{"line":30,"column":9}},"type":"if","locations":[{"start":{"line":24,"column":8},"end":{"line":30,"column":9}},{"start":{"line":24,"column":8},"end":{"line":30,"column":9}}],"line":24}},"s":{"0":1,"1":1,"2":1,"3":23,"4":23,"5":23,"6":23,"7":23,"8":49,"9":56,"10":2,"11":40,"12":40,"13":0,"14":0,"15":40,"16":40,"17":1},"f":{"0":23,"1":49,"2":56,"3":2,"4":40},"b":{"0":[0,40]},"inputSourceMap":{"version":3,"file":"/development/breautek/storm/src/StormError.ts","sources":["/development/breautek/storm/src/StormError.ts"],"names":[],"mappings":";;AAeA,yCAAuC;AAEvC,6CAAwC;AAaxC,MAAsB,UAAW,SAAQ,KAAK;IAG1C,YAAmB,OAAa;QAC5B,KAAK,EAAE,CAAC;QAER,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QAEvB,MAAM,QAAQ,GAAgB,sBAAW,EAAE,CAAC;QAC5C,QAAQ,CAAC,SAAS,EAAE,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,UAAU,EAAE,wBAAwB,CAAC,CAAC;QACzE,QAAQ,CAAC,SAAS,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC,CAAC;IACxD,CAAC;IAaM,gBAAgB;QACnB,OAAO,EAAE,CAAC;IACd,CAAC;IAMM,iBAAiB;QACpB,OAAO,IAAI,CAAC,OAAO,CAAC;IACxB,CAAC;IAEM,WAAW;QACd,OAAO,uBAAU,CAAC,cAAc,CAAC;IACrC,CAAC;IAOM,gBAAgB;QACnB,IAAI,OAAO,GAA4B,IAAI,CAAC;QAE5C,IAAU,IAAK,CAAC,sBAAsB,CAAC,EAAE;YACrC,sBAAW,EAAE,CAAC,SAAS,EAAE,CAAC,SAAS,CAAC,kBAAkB,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,yBAAyB,CAAC,CAAC;YAC3G,OAAO,GAAS,IAAK,CAAC,sBAAsB,CAAC,EAAE,CAAC;SACnD;aACI;YACD,OAAO,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;SACrC;QAED,OAAO;YACH,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI;YAC3B,OAAO,EAAG,IAAI,CAAC,UAAU,EAAE;YAC3B,IAAI,EAAG,IAAI,CAAC,OAAO,EAAE;YACrB,OAAO,EAAE,OAAO;SACnB,CAAC;IACN,CAAC;CACJ;AA/DD,gCA+DC","sourcesContent":["// Copyright (C) 2017 Norman Breau\r\n\r\n// This program is free software: you can redistribute it and/or modify\r\n// it under the terms of the GNU General Public License as published by\r\n// the Free Software Foundation, either version 3 of the License, or\r\n// (at your option) any later version.\r\n\r\n// This program is distributed in the hope that it will be useful,\r\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\r\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\r\n// GNU General Public License for more details.\r\n\r\n// You should have received a copy of the GNU General Public License\r\n// along with this program. If not, see <http://www.gnu.org/licenses/>.\r\n\r\nimport {getInstance} from './instance';\r\nimport {Application} from './Application';\r\nimport {StatusCode} from './StatusCode';\r\n\r\nexport interface IAdditionalErrorDetails {\r\n [key: string]: any;\r\n}\r\n\r\nexport interface IErrorResponse {\r\n name: string;\r\n message: string;\r\n code: number;\r\n details: IAdditionalErrorDetails;\r\n}\r\n\r\nexport abstract class StormError extends Error {\r\n private details: any;\r\n\r\n public constructor(details?: any) {\r\n super();\r\n\r\n this.details = details;\r\n\r\n const instance: Application = getInstance();\r\n instance.getLogger().error(`${this.getMessage()}... See details below:`);\r\n instance.getLogger().info(this.getPrivateDetails());\r\n }\r\n\r\n public abstract getMessage(): string;\r\n public abstract getCode(): number;\r\n\r\n // public getDetails(): any {\r\n // getInstance().getLogger().deprecate('getPrivateDetails()');\r\n // return this.getPrivateDetails();\r\n // }\r\n\r\n /**\r\n * Sends details to the client.\r\n */\r\n public getPublicDetails(): IAdditionalErrorDetails {\r\n return {};\r\n }\r\n\r\n /**\r\n * Private details are only logged to the server log.\r\n * They are kept secret from the client.\r\n */\r\n public getPrivateDetails(): any {\r\n return this.details;\r\n }\r\n\r\n public getHTTPCode(): StatusCode {\r\n return StatusCode.INTERNAL_ERROR;\r\n }\r\n\r\n // public getAdditionalDetails(): IAdditionalErrorDetails {\r\n // getInstance().getLogger().deprecate('getPublicDetails()');\r\n // return this.getPublicDetails();\r\n // }\r\n\r\n public getErrorResponse(): IErrorResponse {\r\n let details: IAdditionalErrorDetails = null;\r\n\r\n if ((<any>this)['getAdditionalDetails']) {\r\n getInstance().getLogger().deprecate('getPublicDetails', `${this.constructor.name}.getAdditionalDetails()`);\r\n details = (<any>this)['getAdditionalDetails']();\r\n }\r\n else {\r\n details = this.getPublicDetails();\r\n }\r\n\r\n return {\r\n name: this.constructor.name,\r\n message : this.getMessage(),\r\n code : this.getCode(),\r\n details: details\r\n };\r\n }\r\n}\r\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"b89a45327b5853db991f61d6d9f29b19795620ce","contentHash":"5c0aa8e833f0ccca8f23e8a793e0eb6a17fab9b8e4c7f2cecb5e660b20b8a044"},"/development/breautek/storm/src/InternalError.ts":{"path":"/development/breautek/storm/src/InternalError.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":3,"column":21},"end":{"line":3,"column":44}},"2":{"start":{"line":4,"column":20},"end":{"line":4,"column":42}},"3":{"start":{"line":5,"column":21},"end":{"line":5,"column":44}},"4":{"start":{"line":8,"column":8},"end":{"line":8,"column":23}},"5":{"start":{"line":11,"column":8},"end":{"line":11,"column":73}},"6":{"start":{"line":14,"column":8},"end":{"line":14,"column":46}},"7":{"start":{"line":17,"column":8},"end":{"line":17,"column":54}},"8":{"start":{"line":20,"column":0},"end":{"line":20,"column":38}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":7,"column":4},"end":{"line":7,"column":5}},"loc":{"start":{"line":7,"column":25},"end":{"line":9,"column":5}},"line":7},"1":{"name":"(anonymous_1)","decl":{"start":{"line":10,"column":4},"end":{"line":10,"column":5}},"loc":{"start":{"line":10,"column":17},"end":{"line":12,"column":5}},"line":10},"2":{"name":"(anonymous_2)","decl":{"start":{"line":13,"column":4},"end":{"line":13,"column":5}},"loc":{"start":{"line":13,"column":14},"end":{"line":15,"column":5}},"line":13},"3":{"name":"(anonymous_3)","decl":{"start":{"line":16,"column":4},"end":{"line":16,"column":5}},"loc":{"start":{"line":16,"column":18},"end":{"line":18,"column":5}},"line":16}},"branchMap":{},"s":{"0":1,"1":1,"2":1,"3":1,"4":3,"5":5,"6":2,"7":2,"8":1},"f":{"0":3,"1":5,"2":2,"3":2},"b":{},"inputSourceMap":{"version":3,"file":"/development/breautek/storm/src/InternalError.ts","sources":["/development/breautek/storm/src/InternalError.ts"],"names":[],"mappings":";;AAeA,6CAAwC;AACxC,2CAAsC;AACtC,6CAAwC;AAExC,MAAa,aAAc,SAAQ,uBAAU;IACzC,YAAmB,OAAa;QAC5B,KAAK,CAAC,OAAO,CAAC,CAAC;IACnB,CAAC;IAEM,UAAU;QACb,OAAO,yDAAyD,CAAC;IACrE,CAAC;IAEM,OAAO;QACV,OAAO,qBAAS,CAAC,QAAQ,CAAC;IAC9B,CAAC;IAEM,WAAW;QACd,OAAO,uBAAU,CAAC,cAAc,CAAC;IACrC,CAAC;CACJ;AAhBD,sCAgBC","sourcesContent":["// Copyright (C) 2017 Norman Breau\r\n\r\n// This program is free software: you can redistribute it and/or modify\r\n// it under the terms of the GNU General Public License as published by\r\n// the Free Software Foundation, either version 3 of the License, or\r\n// (at your option) any later version.\r\n\r\n// This program is distributed in the hope that it will be useful,\r\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\r\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\r\n// GNU General Public License for more details.\r\n\r\n// You should have received a copy of the GNU General Public License\r\n// along with this program. If not, see <http://www.gnu.org/licenses/>.\r\n\r\nimport {StormError} from './StormError';\r\nimport {ErrorCode} from './ErrorCode';\r\nimport {StatusCode} from './StatusCode';\r\n\r\nexport class InternalError extends StormError {\r\n public constructor(details?: any) {\r\n super(details);\r\n }\r\n\r\n public getMessage(): string {\r\n return `An internal server error has occured. Please try again.`;\r\n }\r\n\r\n public getCode(): ErrorCode {\r\n return ErrorCode.INTERNAL;\r\n }\r\n\r\n public getHTTPCode(): StatusCode {\r\n return StatusCode.INTERNAL_ERROR;\r\n }\r\n}\r\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"951de87ec8dcf3ade4fc11eea6c166c12af19633","contentHash":"ff19b65131d0e6387cd4892fb1ec128298591d7747c85cb4dbd241510e45e2c3"},"/development/breautek/storm/src/ErrorCode.ts":{"path":"/development/breautek/storm/src/ErrorCode.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":4,"column":0},"end":{"line":13,"column":62}},"2":{"start":{"line":5,"column":4},"end":{"line":5,"column":54}},"3":{"start":{"line":6,"column":4},"end":{"line":6,"column":72}},"4":{"start":{"line":7,"column":4},"end":{"line":7,"column":64}},"5":{"start":{"line":8,"column":4},"end":{"line":8,"column":76}},"6":{"start":{"line":9,"column":4},"end":{"line":9,"column":64}},"7":{"start":{"line":10,"column":4},"end":{"line":10,"column":68}},"8":{"start":{"line":11,"column":4},"end":{"line":11,"column":76}},"9":{"start":{"line":12,"column":4},"end":{"line":12,"column":84}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":4,"column":1},"end":{"line":4,"column":2}},"loc":{"start":{"line":4,"column":22},"end":{"line":13,"column":1}},"line":4}},"branchMap":{"0":{"loc":{"start":{"line":13,"column":15},"end":{"line":13,"column":60}},"type":"binary-expr","locations":[{"start":{"line":13,"column":15},"end":{"line":13,"column":32}},{"start":{"line":13,"column":37},"end":{"line":13,"column":59}}],"line":13}},"s":{"0":1,"1":1,"2":1,"3":1,"4":1,"5":1,"6":1,"7":1,"8":1,"9":1},"f":{"0":1},"b":{"0":[1,1]},"inputSourceMap":{"version":3,"file":"/development/breautek/storm/src/ErrorCode.ts","sources":["/development/breautek/storm/src/ErrorCode.ts"],"names":[],"mappings":";;AAeA,IAAY,SASX;AATD,WAAY,SAAS;IACjB,iDAAQ,CAAA;IACR,mEAAiB,CAAA;IACjB,2DAAa,CAAA;IACb,uEAAmB,CAAA;IACnB,2DAAa,CAAA;IACb,+DAAe,CAAA;IACf,uEAAmB,CAAA;IACnB,+EAAuB,CAAA;AAC3B,CAAC,EATW,SAAS,GAAT,iBAAS,KAAT,iBAAS,QASpB","sourcesContent":["// Copyright (C) 2017 Norman Breau\r\n\r\n// This program is free software: you can redistribute it and/or modify\r\n// it under the terms of the GNU General Public License as published by\r\n// the Free Software Foundation, either version 3 of the License, or\r\n// (at your option) any later version.\r\n\r\n// This program is distributed in the hope that it will be useful,\r\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\r\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\r\n// GNU General Public License for more details.\r\n\r\n// You should have received a copy of the GNU General Public License\r\n// along with this program. If not, see <http://www.gnu.org/licenses/>.\r\n\r\nexport enum ErrorCode {\r\n INTERNAL,\r\n MISSING_PARAMETER,\r\n EXPIRED_TOKEN,\r\n INVALID_CREDENTIALS,\r\n INVALID_VALUE,\r\n DUPLICATE_ENTRY,\r\n UNAUTHORIZED_ACCESS,\r\n INSUFFICIENT_DISK_SPACE\r\n}\r\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"cd58e8985158db7306bdbdfee84ad2bc7333d307","contentHash":"a2fa1b2714228b6862297ca1c2c82df1badb59c91c82e495fe7dbd450fe8f577"},"/development/breautek/storm/src/ConfigLoader.ts":{"path":"/development/breautek/storm/src/ConfigLoader.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":3,"column":19},"end":{"line":3,"column":40}},"2":{"start":{"line":4,"column":17},"end":{"line":4,"column":36}},"3":{"start":{"line":5,"column":13},"end":{"line":5,"column":28}},"4":{"start":{"line":6,"column":19},"end":{"line":6,"column":40}},"5":{"start":{"line":10,"column":21},"end":{"line":10,"column":46}},"6":{"start":{"line":11,"column":8},"end":{"line":55,"column":11}},"7":{"start":{"line":12,"column":12},"end":{"line":12,"column":50}},"8":{"start":{"line":13,"column":25},"end":{"line":13,"column":27}},"9":{"start":{"line":14,"column":24},"end":{"line":14,"column":60}},"10":{"start":{"line":15,"column":24},"end":{"line":15,"column":66}},"11":{"start":{"line":19,"column":12},"end":{"line":19,"column":57}},"12":{"start":{"line":20,"column":12},"end":{"line":20,"column":58}},"13":{"start":{"line":21,"column":12},"end":{"line":21,"column":60}},"14":{"start":{"line":22,"column":12},"end":{"line":22,"column":86}},"15":{"start":{"line":23,"column":12},"end":{"line":23,"column":52}},"16":{"start":{"line":24,"column":12},"end":{"line":34,"column":13}},"17":{"start":{"line":25,"column":16},"end":{"line":25,"column":35}},"18":{"start":{"line":26,"column":16},"end":{"line":26,"column":52}},"19":{"start":{"line":29,"column":16},"end":{"line":29,"column":50}},"20":{"start":{"line":30,"column":16},"end":{"line":32,"column":19}},"21":{"start":{"line":31,"column":20},"end":{"line":31,"column":63}},"22":{"start":{"line":33,"column":16},"end":{"line":33,"column":23}},"23":{"start":{"line":35,"column":12},"end":{"line":35,"column":59}},"24":{"start":{"line":36,"column":12},"end":{"line":43,"column":13}},"25":{"start":{"line":37,"column":16},"end":{"line":37,"column":35}},"26":{"start":{"line":38,"column":16},"end":{"line":38,"column":53}},"27":{"start":{"line":41,"column":16},"end":{"line":41,"column":66}},"28":{"start":{"line":42,"column":16},"end":{"line":42,"column":33}},"29":{"start":{"line":44,"column":12},"end":{"line":49,"column":13}},"30":{"start":{"line":45,"column":16},"end":{"line":45,"column":94}},"31":{"start":{"line":48,"column":16},"end":{"line":48,"column":64}},"32":{"start":{"line":50,"column":12},"end":{"line":50,"column":62}},"33":{"start":{"line":51,"column":12},"end":{"line":51,"column":87}},"34":{"start":{"line":52,"column":12},"end":{"line":52,"column":51}},"35":{"start":{"line":53,"column":12},"end":{"line":53,"column":33}},"36":{"start":{"line":54,"column":12},"end":{"line":54,"column":28}},"37":{"start":{"line":58,"column":18},"end":{"line":58,"column":42}},"38":{"start":{"line":59,"column":8},"end":{"line":61,"column":9}},"39":{"start":{"line":60,"column":12},"end":{"line":60,"column":22}},"40":{"start":{"line":62,"column":8},"end":{"line":62,"column":36}},"41":{"start":{"line":66,"column":18},"end":{"line":66,"column":42}},"42":{"start":{"line":67,"column":8},"end":{"line":69,"column":9}},"43":{"start":{"line":68,"column":12},"end":{"line":68,"column":55}},"44":{"start":{"line":70,"column":8},"end":{"line":72,"column":9}},"45":{"start":{"line":71,"column":12},"end":{"line":71,"column":57}},"46":{"start":{"line":73,"column":8},"end":{"line":73,"column":22}},"47":{"start":{"line":76,"column":8},"end":{"line":76,"column":44}},"48":{"start":{"line":77,"column":8},"end":{"line":77,"column":44}},"49":{"start":{"line":78,"column":16},"end":{"line":78,"column":18}},"50":{"start":{"line":79,"column":8},"end":{"line":93,"column":9}},"51":{"start":{"line":80,"column":22},"end":{"line":80,"column":27}},"52":{"start":{"line":81,"column":22},"end":{"line":81,"column":27}},"53":{"start":{"line":82,"column":12},"end":{"line":92,"column":13}},"54":{"start":{"line":83,"column":16},"end":{"line":88,"column":17}},"55":{"start":{"line":84,"column":20},"end":{"line":84,"column":63}},"56":{"start":{"line":87,"column":20},"end":{"line":87,"column":31}},"57":{"start":{"line":91,"column":16},"end":{"line":91,"column":27}},"58":{"start":{"line":94,"column":8},"end":{"line":94,"column":17}},"59":{"start":{"line":97,"column":0},"end":{"line":97,"column":36}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":8,"column":4},"end":{"line":8,"column":5}},"loc":{"start":{"line":8,"column":18},"end":{"line":8,"column":21}},"line":8},"1":{"name":"(anonymous_1)","decl":{"start":{"line":9,"column":4},"end":{"line":9,"column":5}},"loc":{"start":{"line":9,"column":22},"end":{"line":56,"column":5}},"line":9},"2":{"name":"(anonymous_2)","decl":{"start":{"line":11,"column":27},"end":{"line":11,"column":28}},"loc":{"start":{"line":11,"column":48},"end":{"line":55,"column":9}},"line":11},"3":{"name":"(anonymous_3)","decl":{"start":{"line":30,"column":33},"end":{"line":30,"column":34}},"loc":{"start":{"line":30,"column":39},"end":{"line":32,"column":17}},"line":30},"4":{"name":"(anonymous_4)","decl":{"start":{"line":57,"column":4},"end":{"line":57,"column":5}},"loc":{"start":{"line":57,"column":29},"end":{"line":63,"column":5}},"line":57},"5":{"name":"(anonymous_5)","decl":{"start":{"line":64,"column":4},"end":{"line":64,"column":5}},"loc":{"start":{"line":64,"column":24},"end":{"line":74,"column":5}},"line":64},"6":{"name":"(anonymous_6)","decl":{"start":{"line":75,"column":4},"end":{"line":75,"column":5}},"loc":{"start":{"line":75,"column":32},"end":{"line":95,"column":5}},"line":75}},"branchMap":{"0":{"loc":{"start":{"line":44,"column":12},"end":{"line":49,"column":13}},"type":"if","locations":[{"start":{"line":44,"column":12},"end":{"line":49,"column":13}},{"start":{"line":44,"column":12},"end":{"line":49,"column":13}}],"line":44},"1":{"loc":{"start":{"line":59,"column":8},"end":{"line":61,"column":9}},"type":"if","locations":[{"start":{"line":59,"column":8},"end":{"line":61,"column":9}},{"start":{"line":59,"column":8},"end":{"line":61,"column":9}}],"line":59},"2":{"loc":{"start":{"line":67,"column":8},"end":{"line":69,"column":9}},"type":"if","locations":[{"start":{"line":67,"column":8},"end":{"line":69,"column":9}},{"start":{"line":67,"column":8},"end":{"line":69,"column":9}}],"line":67},"3":{"loc":{"start":{"line":70,"column":8},"end":{"line":72,"column":9}},"type":"if","locations":[{"start":{"line":70,"column":8},"end":{"line":72,"column":9}},{"start":{"line":70,"column":8},"end":{"line":72,"column":9}}],"line":70},"4":{"loc":{"start":{"line":82,"column":12},"end":{"line":92,"column":13}},"type":"if","locations":[{"start":{"line":82,"column":12},"end":{"line":92,"column":13}},{"start":{"line":82,"column":12},"end":{"line":92,"column":13}}],"line":82},"5":{"loc":{"start":{"line":82,"column":16},"end":{"line":82,"column":75}},"type":"binary-expr","locations":[{"start":{"line":82,"column":16},"end":{"line":82,"column":19}},{"start":{"line":82,"column":24},"end":{"line":82,"column":47}},{"start":{"line":82,"column":52},"end":{"line":82,"column":75}}],"line":82},"6":{"loc":{"start":{"line":83,"column":16},"end":{"line":88,"column":17}},"type":"if","locations":[{"start":{"line":83,"column":16},"end":{"line":88,"column":17}},{"start":{"line":83,"column":16},"end":{"line":88,"column":17}}],"line":83},"7":{"loc":{"start":{"line":83,"column":20},"end":{"line":83,"column":70}},"type":"binary-expr","locations":[{"start":{"line":83,"column":20},"end":{"line":83,"column":43}},{"start":{"line":83,"column":47},"end":{"line":83,"column":70}}],"line":83}},"s":{"0":1,"1":1,"2":1,"3":1,"4":1,"5":26,"6":26,"7":26,"8":26,"9":26,"10":26,"11":26,"12":26,"13":26,"14":26,"15":26,"16":26,"17":26,"18":25,"19":1,"20":1,"21":1,"22":1,"23":25,"24":25,"25":25,"26":24,"27":1,"28":1,"29":25,"30":24,"31":1,"32":25,"33":25,"34":25,"35":25,"36":25,"37":25,"38":25,"39":0,"40":25,"41":26,"42":26,"43":26,"44":26,"45":0,"46":26,"47":75,"48":75,"49":75,"50":75,"51":149,"52":149,"53":149,"54":1,"55":1,"56":0,"57":148,"58":75,"59":1},"f":{"0":0,"1":26,"2":26,"3":1,"4":25,"5":26,"6":75},"b":{"0":[24,1],"1":[0,25],"2":[26,0],"3":[0,26],"4":[1,148],"5":[149,117,2],"6":[1,0],"7":[1,1]},"inputSourceMap":{"version":3,"file":"/development/breautek/storm/src/ConfigLoader.ts","sources":["/development/breautek/storm/src/ConfigLoader.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (C) 2017 Norman Breau\r\n\r\n// This program is free software: you can redistribute it and/or modify\r\n// it under the terms of the GNU General Public License as published by\r\n// the Free Software Foundation, either version 3 of the License, or\r\n// (at your option) any later version.\r\n\r\n// This program is distributed in the hope that it will be useful,\r\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\r\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\r\n// GNU General Public License for more details.\r\n\r\n// You should have received a copy of the GNU General Public License\r\n// along with this program. If not, see <http://www.gnu.org/licenses/>.\r\n\r\nimport {getInstance, getApplicationLogger} from './instance';\r\nimport {Logger} from './Logger';\r\nimport * as Path from 'path';\r\nimport {Application} from './Application';\r\nimport {ExitCode} from './ExitCode';\r\nimport {IConfig} from './IConfig';\r\n\r\nexport class ConfigLoader {\r\n // eslint-disable-next-line @typescript-eslint/no-empty-function\r\n private constructor() {}\r\n\r\n public static load(path: string): Promise<IConfig> {\r\n let logger: Logger = ConfigLoader._getLogger();\r\n\r\n return new Promise<any>((resolve, reject) => {\r\n logger.trace('Configuration loaded.');\r\n \r\n let config: any = {};\r\n\r\n let cPath: string = Path.resolve(path, 'bt-config.json');\r\n let lPath: string = Path.resolve(path, 'bt-local-config.json');\r\n \r\n let c: any;\r\n let l: any;\r\n let defaults: any;\r\n\r\n logger.trace(`Main Config Path:\\t ${cPath}`);\r\n logger.trace(`Local Config Path:\\t ${lPath}`);\r\n \r\n logger.trace('Loading configuration defaults.');\r\n defaults = require(Path.resolve(__dirname, '../bt-config-defaults.json'));\r\n\r\n logger.trace('Loading main confing...');\r\n try {\r\n c = require(cPath);\r\n logger.trace('Main config loaded.');\r\n }\r\n catch (ex) {\r\n logger.error(`Missing ${cPath}.`);\r\n process.nextTick(() => {\r\n reject(ExitCode.MISSING_CONFIG);\r\n // process.exit(ExitCode.MISSING_CONFIG);\r\n });\r\n return;\r\n }\r\n\r\n logger.trace('Loading optional local config.');\r\n try {\r\n l = require(lPath);\r\n logger.trace('Local config loaded.');\r\n }\r\n catch (ex) {\r\n logger.trace('Local config could not be loaded.');\r\n logger.trace(ex);\r\n }\r\n\r\n if (l) {\r\n config = ConfigLoader._mergeConfig(defaults, ConfigLoader._mergeConfig(c, l));\r\n }\r\n else {\r\n config = ConfigLoader._mergeConfig(defaults, c);\r\n }\r\n\r\n logger.trace('Reading command line arguments...');\r\n config = ConfigLoader._mergeConfig(config, ConfigLoader._getCmdLineArgs());\r\n\r\n logger.trace('Configurations merged.');\r\n logger.trace(config);\r\n\r\n resolve(<IConfig>config);\r\n });\r\n }\r\n\r\n private static _getCmdLineArgs(): any {\r\n let app: Application = getInstance();\r\n if (!app) {\r\n return {};\r\n }\r\n\r\n return app.getCmdLineArgs();\r\n }\r\n\r\n // private static _removeNaNs(o: any): any {\r\n // for (var i in o) {\r\n // if (isNaN(o[i])) {\r\n // delete o[i];\r\n // }\r\n // }\r\n\r\n // return o;\r\n // }\r\n\r\n private static _getLogger(): Logger {\r\n let logger: Logger;\r\n let app: Application = getInstance();\r\n if (app) {\r\n logger = getApplicationLogger();\r\n }\r\n \r\n if (!logger) {\r\n logger = new Logger('ConfigLoader');\r\n }\r\n\r\n return logger;\r\n }\r\n\r\n private static _mergeConfig(o1: any, o2: any): any {\r\n // Clone to protect data from changing defaults object\r\n o1 = JSON.parse(JSON.stringify(o1));\r\n o2 = JSON.parse(JSON.stringify(o2));\r\n\r\n let o: any = o1;\r\n\r\n for (let i in o2) {\r\n let o1p = o1[i];\r\n let o2p = o2[i];\r\n\r\n if (o1p && (typeof o2p === 'object') && !(o2p instanceof Array)) {\r\n if (typeof o1p === 'object' && !(o1p instanceof Array)) {\r\n o[i] = ConfigLoader._mergeConfig(o1p, o2p);\r\n }\r\n else {\r\n o[i] = o2p;\r\n }\r\n }\r\n else {\r\n o[i] = o2p;\r\n }\r\n }\r\n\r\n return o;\r\n }\r\n}\r\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"dcbbd161c09edf28c1aeadcb6304c0c4093b9a5b","contentHash":"dccf96aea9a9eefcbe2d9e8f315d550212d9448f34d5cbcd4accb4bd9abfb7d1"},"/development/breautek/storm/src/ExitCode.ts":{"path":"/development/breautek/storm/src/ExitCode.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":4,"column":0},"end":{"line":6,"column":59}},"2":{"start":{"line":5,"column":4},"end":{"line":5,"column":64}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":4,"column":1},"end":{"line":4,"column":2}},"loc":{"start":{"line":4,"column":21},"end":{"line":6,"column":1}},"line":4}},"branchMap":{"0":{"loc":{"start":{"line":6,"column":14},"end":{"line":6,"column":57}},"type":"binary-expr","locations":[{"start":{"line":6,"column":14},"end":{"line":6,"column":30}},{"start":{"line":6,"column":35},"end":{"line":6,"column":56}}],"line":6}},"s":{"0":1,"1":1,"2":1},"f":{"0":1},"b":{"0":[1,1]},"inputSourceMap":{"version":3,"file":"/development/breautek/storm/src/ExitCode.ts","sources":["/development/breautek/storm/src/ExitCode.ts"],"names":[],"mappings":";;AAeA,IAAY,QAEX;AAFD,WAAY,QAAQ;IAChB,2DAAc,CAAA;AAClB,CAAC,EAFW,QAAQ,GAAR,gBAAQ,KAAR,gBAAQ,QAEnB","sourcesContent":["// Copyright (C) 2017 Norman Breau\r\n\r\n// This program is free software: you can redistribute it and/or modify\r\n// it under the terms of the GNU General Public License as published by\r\n// the Free Software Foundation, either version 3 of the License, or\r\n// (at your option) any later version.\r\n\r\n// This program is distributed in the hope that it will be useful,\r\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\r\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\r\n// GNU General Public License for more details.\r\n\r\n// You should have received a copy of the GNU General Public License\r\n// along with this program. If not, see <http://www.gnu.org/licenses/>.\r\n\r\nexport enum ExitCode {\r\n MISSING_CONFIG\r\n}\r\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"ee04a055e865979c513aeed22da54afd5337ce5d","contentHash":"3cfae863842278f8e07e247962c7e9f44aae28dee952be73914630555ddffb3d"},"/development/breautek/storm/src/Handler.ts":{"path":"/development/breautek/storm/src/Handler.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":3,"column":21},"end":{"line":3,"column":44}},"2":{"start":{"line":4,"column":19},"end":{"line":4,"column":40}},"3":{"start":{"line":5,"column":21},"end":{"line":5,"column":44}},"4":{"start":{"line":6,"column":24},"end":{"line":6,"column":50}},"5":{"start":{"line":9,"column":8},"end":{"line":9,"column":24}},"6":{"start":{"line":10,"column":8},"end":{"line":10,"column":52}},"7":{"start":{"line":13,"column":8},"end":{"line":13,"column":18}},"8":{"start":{"line":16,"column":21},"end":{"line":16,"column":57}},"9":{"start":{"line":17,"column":25},"end":{"line":17,"column":53}},"10":{"start":{"line":18,"column":8},"end":{"line":18,"column":45}},"11":{"start":{"line":21,"column":8},"end":{"line":21,"column":33}},"12":{"start":{"line":24,"column":21},"end":{"line":27,"column":9}},"13":{"start":{"line":28,"column":8},"end":{"line":46,"column":9}},"14":{"start":{"line":29,"column":12},"end":{"line":33,"column":13}},"15":{"start":{"line":29,"column":25},"end":{"line":29,"column":26}},"16":{"start":{"line":30,"column":33},"end":{"line":30,"column":53}},"17":{"start":{"line":31,"column":16},"end":{"line":31,"column":57}},"18":{"start":{"line":32,"column":16},"end":{"line":32,"column":83}},"19":{"start":{"line":36,"column":12},"end":{"line":36,"column":59}},"20":{"start":{"line":37,"column":24},"end":{"line":37,"column":28}},"21":{"start":{"line":38,"column":12},"end":{"line":43,"column":13}},"22":{"start":{"line":39,"column":16},"end":{"line":39,"column":62}},"23":{"start":{"line":42,"column":16},"end":{"line":42,"column":27}},"24":{"start":{"line":44,"column":12},"end":{"line":44,"column":63}},"25":{"start":{"line":45,"column":12},"end":{"line":45,"column":41}},"26":{"start":{"line":47,"column":8},"end":{"line":52,"column":9}},"27":{"start":{"line":48,"column":12},"end":{"line":51,"column":14}},"28":{"start":{"line":53,"column":8},"end":{"line":55,"column":9}},"29":{"start":{"line":54,"column":12},"end":{"line":54,"column":37}},"30":{"start":{"line":56,"column":8},"end":{"line":58,"column":9}},"31":{"start":{"line":57,"column":12},"end":{"line":57,"column":39}},"32":{"start":{"line":59,"column":8},"end":{"line":59,"column":39}},"33":{"start":{"line":62,"column":8},"end":{"line":62,"column":30}},"34":{"start":{"line":65,"column":8},"end":{"line":73,"column":11}},"35":{"start":{"line":66,"column":12},"end":{"line":72,"column":15}},"36":{"start":{"line":67,"column":16},"end":{"line":67,"column":59}},"37":{"start":{"line":68,"column":16},"end":{"line":68,"column":26}},"38":{"start":{"line":70,"column":16},"end":{"line":70,"column":67}},"39":{"start":{"line":71,"column":16},"end":{"line":71,"column":30}},"40":{"start":{"line":76,"column":8},"end":{"line":84,"column":11}},"41":{"start":{"line":77,"column":12},"end":{"line":83,"column":15}},"42":{"start":{"line":78,"column":16},"end":{"line":78,"column":59}},"43":{"start":{"line":79,"column":16},"end":{"line":79,"column":26}},"44":{"start":{"line":81,"column":16},"end":{"line":81,"column":67}},"45":{"start":{"line":82,"column":16},"end":{"line":82,"column":30}},"46":{"start":{"line":87,"column":8},"end":{"line":95,"column":11}},"47":{"start":{"line":88,"column":12},"end":{"line":94,"column":15}},"48":{"start":{"line":89,"column":16},"end":{"line":89,"column":60}},"49":{"start":{"line":90,"column":16},"end":{"line":90,"column":26}},"50":{"start":{"line":92,"column":16},"end":{"line":92,"column":67}},"51":{"start":{"line":93,"column":16},"end":{"line":93,"column":30}},"52":{"start":{"line":98,"column":8},"end":{"line":106,"column":11}},"53":{"start":{"line":99,"column":12},"end":{"line":105,"column":15}},"54":{"start":{"line":100,"column":16},"end":{"line":100,"column":62}},"55":{"start":{"line":101,"column":16},"end":{"line":101,"column":26}},"56":{"start":{"line":103,"column":16},"end":{"line":103,"column":67}},"57":{"start":{"line":104,"column":16},"end":{"line":104,"column":30}},"58":{"start":{"line":109,"column":8},"end":{"line":109,"column":84}},"59":{"start":{"line":110,"column":8},"end":{"line":110,"column":33}},"60":{"start":{"line":113,"column":8},"end":{"line":113,"column":84}},"61":{"start":{"line":114,"column":8},"end":{"line":114,"column":33}},"62":{"start":{"line":117,"column":8},"end":{"line":117,"column":84}},"63":{"start":{"line":118,"column":8},"end":{"line":118,"column":33}},"64":{"start":{"line":121,"column":8},"end":{"line":121,"column":84}},"65":{"start":{"line":122,"column":8},"end":{"line":122,"column":33}},"66":{"start":{"line":125,"column":0},"end":{"line":125,"column":26}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":8,"column":4},"end":{"line":8,"column":5}},"loc":{"start":{"line":8,"column":21},"end":{"line":11,"column":5}},"line":8},"1":{"name":"(anonymous_1)","decl":{"start":{"line":12,"column":4},"end":{"line":12,"column":5}},"loc":{"start":{"line":12,"column":23},"end":{"line":14,"column":5}},"line":12},"2":{"name":"(anonymous_2)","decl":{"start":{"line":15,"column":4},"end":{"line":15,"column":5}},"loc":{"start":{"line":15,"column":28},"end":{"line":19,"column":5}},"line":15},"3":{"name":"(anonymous_3)","decl":{"start":{"line":20,"column":4},"end":{"line":20,"column":5}},"loc":{"start":{"line":20,"column":12},"end":{"line":22,"column":5}},"line":20},"4":{"name":"(anonymous_4)","decl":{"start":{"line":23,"column":4},"end":{"line":23,"column":5}},"loc":{"start":{"line":23,"column":49},"end":{"line":60,"column":5}},"line":23},"5":{"name":"(anonymous_5)","decl":{"start":{"line":61,"column":4},"end":{"line":61,"column":5}},"loc":{"start":{"line":61,"column":50},"end":{"line":63,"column":5}},"line":61},"6":{"name":"(anonymous_6)","decl":{"start":{"line":64,"column":4},"end":{"line":64,"column":5}},"loc":{"start":{"line":64,"column":27},"end":{"line":74,"column":5}},"line":64},"7":{"name":"(anonymous_7)","decl":{"start":{"line":65,"column":27},"end":{"line":65,"column":28}},"loc":{"start":{"line":65,"column":48},"end":{"line":73,"column":9}},"line":65},"8":{"name":"(anonymous_8)","decl":{"start":{"line":66,"column":61},"end":{"line":66,"column":62}},"loc":{"start":{"line":66,"column":73},"end":{"line":69,"column":13}},"line":66},"9":{"name":"(anonymous_9)","decl":{"start":{"line":69,"column":21},"end":{"line":69,"column":22}},"loc":{"start":{"line":69,"column":32},"end":{"line":72,"column":13}},"line":69},"10":{"name":"(anonymous_10)","decl":{"start":{"line":75,"column":4},"end":{"line":75,"column":5}},"loc":{"start":{"line":75,"column":27},"end":{"line":85,"column":5}},"line":75},"11":{"name":"(anonymous_11)","decl":{"start":{"line":76,"column":27},"end":{"line":76,"column":28}},"loc":{"start":{"line":76,"column":48},"end":{"line":84,"column":9}},"line":76},"12":{"name":"(anonymous_12)","decl":{"start":{"line":77,"column":61},"end":{"line":77,"column":62}},"loc":{"start":{"line":77,"column":73},"end":{"line":80,"column":13}},"line":77},"13":{"name":"(anonymous_13)","decl":{"start":{"line":80,"column":21},"end":{"line":80,"column":22}},"loc":{"start":{"line":80,"column":32},"end":{"line":83,"column":13}},"line":80},"14":{"name":"(anonymous_14)","decl":{"start":{"line":86,"column":4},"end":{"line":86,"column":5}},"loc":{"start":{"line":86,"column":28},"end":{"line":96,"column":5}},"line":86},"15":{"name":"(anonymous_15)","decl":{"start":{"line":87,"column":27},"end":{"line":87,"column":28}},"loc":{"start":{"line":87,"column":48},"end":{"line":95,"column":9}},"line":87},"16":{"name":"(anonymous_16)","decl":{"start":{"line":88,"column":61},"end":{"line":88,"column":62}},"loc":{"start":{"line":88,"column":73},"end":{"line":91,"column":13}},"line":88},"17":{"name":"(anonymous_17)","decl":{"start":{"line":91,"column":21},"end":{"line":91,"column":22}},"loc":{"start":{"line":91,"column":32},"end":{"line":94,"column":13}},"line":91},"18":{"name":"(anonymous_18)","decl":{"start":{"line":97,"column":4},"end":{"line":97,"column":5}},"loc":{"start":{"line":97,"column":30},"end":{"line":107,"column":5}},"line":97},"19":{"name":"(anonymous_19)","decl":{"start":{"line":98,"column":27},"end":{"line":98,"column":28}},"loc":{"start":{"line":98,"column":48},"end":{"line":106,"column":9}},"line":98},"20":{"name":"(anonymous_20)","decl":{"start":{"line":99,"column":61},"end":{"line":99,"column":62}},"loc":{"start":{"line":99,"column":73},"end":{"line":102,"column":13}},"line":99},"21":{"name":"(anonymous_21)","decl":{"start":{"line":102,"column":21},"end":{"line":102,"column":22}},"loc":{"start":{"line":102,"column":32},"end":{"line":105,"column":13}},"line":102},"22":{"name":"(anonymous_22)","decl":{"start":{"line":108,"column":4},"end":{"line":108,"column":5}},"loc":{"start":{"line":108,"column":28},"end":{"line":111,"column":5}},"line":108},"23":{"name":"(anonymous_23)","decl":{"start":{"line":112,"column":4},"end":{"line":112,"column":5}},"loc":{"start":{"line":112,"column":29},"end":{"line":115,"column":5}},"line":112},"24":{"name":"(anonymous_24)","decl":{"start":{"line":116,"column":4},"end":{"line":116,"column":5}},"loc":{"start":{"line":116,"column":28},"end":{"line":119,"column":5}},"line":116},"25":{"name":"(anonymous_25)","decl":{"start":{"line":120,"column":4},"end":{"line":120,"column":5}},"loc":{"start":{"line":120,"column":31},"end":{"line":123,"column":5}},"line":120}},"branchMap":{"0":{"loc":{"start":{"line":38,"column":12},"end":{"line":43,"column":13}},"type":"if","locations":[{"start":{"line":38,"column":12},"end":{"line":43,"column":13}},{"start":{"line":38,"column":12},"end":{"line":43,"column":13}}],"line":38},"1":{"loc":{"start":{"line":47,"column":8},"end":{"line":52,"column":9}},"type":"if","locations":[{"start":{"line":47,"column":8},"end":{"line":52,"column":9}},{"start":{"line":47,"column":8},"end":{"line":52,"column":9}}],"line":47},"2":{"loc":{"start":{"line":53,"column":8},"end":{"line":55,"column":9}},"type":"if","locations":[{"start":{"line":53,"column":8},"end":{"line":55,"column":9}},{"start":{"line":53,"column":8},"end":{"line":55,"column":9}}],"line":53},"3":{"loc":{"start":{"line":56,"column":8},"end":{"line":58,"column":9}},"type":"if","locations":[{"start":{"line":56,"column":8},"end":{"line":58,"column":9}},{"start":{"line":56,"column":8},"end":{"line":58,"column":9}}],"line":56}},"s":{"0":1,"1":1,"2":1,"3":1,"4":1,"5":82,"6":82,"7":78,"8":1,"9":1,"10":1,"11":1,"12":48,"13":48,"14":48,"15":48,"16":8,"17":8,"18":8,"19":5,"20":5,"21":5,"22":1,"23":4,"24":5,"25":5,"26":43,"27":1,"28":43,"29":1,"30":43,"31":1,"32":43,"33":8,"34":31,"35":31,"36":29,"37":29,"38":2,"39":2,"40":5,"41":5,"42":4,"43":4,"44":1,"45":1,"46":7,"47":7,"48":6,"49":6,"50":1,"51":1,"52":5,"53":5,"54":4,"55":4,"56":1,"57":1,"58":3,"59":3,"60":1,"61":1,"62":1,"63":1,"64":1,"65":1,"66":1},"f":{"0":82,"1":78,"2":1,"3":1,"4":48,"5":8,"6":31,"7":31,"8":29,"9":2,"10":5,"11":5,"12":4,"13":1,"14":7,"15":7,"16":6,"17":1,"18":5,"19":5,"20":4,"21":1,"22":3,"23":1,"24":1,"25":1},"b":{"0":[1,4],"1":[1,42],"2":[1,42],"3":[1,42]},"inputSourceMap":{"version":3,"file":"/development/breautek/storm/src/Handler.ts","sources":["/development/breautek/storm/src/Handler.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (C) 2017 Norman Breau\r\n\r\n// This program is free software: you can redistribute it and/or modify\r\n// it under the terms of the GNU General Public License as published by\r\n// the Free Software Foundation, either version 3 of the License, or\r\n// (at your option) any later version.\r\n\r\n// This program is distributed in the hope that it will be useful,\r\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\r\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\r\n// GNU General Public License for more details.\r\n\r\n// You should have received a copy of the GNU General Public License\r\n// along with this program. If not, see <http://www.gnu.org/licenses/>.\r\n\r\nimport {StatusCode} from './StatusCode';\r\nimport {Application} from './Application';\r\nimport {getInstance} from './instance';\r\nimport {Request} from './Request';\r\nimport {Response} from './Response';\r\nimport {Database} from './Database';\r\nimport {Middleware} from './Middleware';\r\nimport {StormError} from './StormError';\r\nimport {IConfig} from './IConfig';\r\nimport { InternalError } from './InternalError';\r\nimport { IRequestResponse } from './IRequestResponse';\r\n\r\nexport class Handler<\r\n TGetRequest = any,\r\n TGetResponse = any,\r\n TPostRequest = any,\r\n TPostResponse = any,\r\n TPutRequest = any,\r\n TPutResponse = any,\r\n TDeleteRequest = any,\r\n TDeleteResponse = any\r\n > {\r\n private _app: Application;\r\n private _middlewares: Array<Middleware>;\r\n\r\n constructor(app: Application) {\r\n this._app = app;\r\n this._middlewares = this._initMiddlewares();\r\n }\r\n\r\n protected _initMiddlewares(): Array<Middleware> {\r\n return [];\r\n }\r\n\r\n public getAccessToken(request: Request): string {\r\n let config: IConfig = getInstance().getConfig();\r\n let authHeader: string = config.authentication_header;\r\n return request.getHeader(authHeader);\r\n }\r\n\r\n public getDB(): Database {\r\n return this._app.getDB();\r\n }\r\n\r\n private async _executeMiddlewares(request: Request, response: Response): Promise<IRequestResponse> {\r\n let result: IRequestResponse = {\r\n request,\r\n response\r\n };\r\n\r\n try {\r\n for (let i: number = 0; i < this._middlewares.length; i++) {\r\n let middleware: Middleware = this._middlewares[i];\r\n console.log(`executing middleware ${i}`);\r\n result = await middleware.execute(result.request, result.response);\r\n }\r\n }\r\n catch (ex) {\r\n getInstance().getLogger().error(ex);\r\n let error: StormError = null;\r\n if (!(ex instanceof StormError)) {\r\n error = new InternalError(ex);\r\n }\r\n else {\r\n error = ex;\r\n }\r\n this._onMiddlewareReject(request, response, error);\r\n return Promise.reject(error);\r\n }\r\n\r\n if (!result) {\r\n result = {\r\n request: null,\r\n response: null\r\n };\r\n }\r\n\r\n if (!result.request) {\r\n result.request = request;\r\n }\r\n\r\n if (!result.response) {\r\n result.response = response;\r\n }\r\n\r\n return Promise.resolve(result);\r\n }\r\n\r\n protected _onMiddlewareReject(request: Request, response: Response, error: StormError) {\r\n response.error(error);\r\n }\r\n\r\n public get(request: Request<TGetRequest>, response: Response<TGetResponse>): Promise<void> {\r\n return new Promise((resolve, reject) => {\r\n this._executeMiddlewares(request, response).then((result: IRequestResponse<TGetRequest, TGetResponse>) => {\r\n this._get(result.request, result.response);\r\n resolve();\r\n }).catch((error: StormError) => {\r\n this._onMiddlewareReject(request, response, error);\r\n reject(error);\r\n });\r\n });\r\n }\r\n\r\n public put(request: Request<TPutRequest>, response: Response<TPutResponse>): Promise<void> {\r\n return new Promise((resolve, reject) => {\r\n this._executeMiddlewares(request, response).then((result: IRequestResponse<TPutRequest, TPutResponse>) => {\r\n this._put(result.request, result.response);\r\n resolve();\r\n }).catch((error: StormError) => {\r\n this._onMiddlewareReject(request, response, error);\r\n reject(error);\r\n });\r\n });\r\n }\r\n\r\n public post(request: Request<TPostRequest>, response: Response<TPostResponse>): Promise<void> {\r\n return new Promise((resolve, reject) => {\r\n this._executeMiddlewares(request, response).then((result: IRequestResponse<TPostRequest, TPostResponse>) => {\r\n this._post(result.request, result.response);\r\n resolve();\r\n }).catch((error: StormError) => {\r\n this._onMiddlewareReject(request, response, error);\r\n reject(error);\r\n });\r\n });\r\n }\r\n\r\n public delete(request: Request<TDeleteRequest>, response: Response<TDeleteResponse>): Promise<void> {\r\n return new Promise((resolve, reject) => {\r\n this._executeMiddlewares(request, response).then((result: IRequestResponse<TDeleteRequest, TDeleteResponse>) => {\r\n this._delete(result.request, result.response);\r\n resolve();\r\n }).catch((error: StormError) => {\r\n this._onMiddlewareReject(request, response, error);\r\n reject(error);\r\n });\r\n });\r\n }\r\n\r\n protected _get(request: Request<TGetRequest>, response: Response<TGetResponse>): Promise<void> {\r\n response.setStatus(StatusCode.INTERNAL_NOT_IMPLEMENTED).send();\r\n return Promise.resolve();\r\n }\r\n\r\n protected _post(request: Request<TPostRequest>, response: Response<TPostResponse>): Promise<void> {\r\n response.setStatus(StatusCode.INTERNAL_NOT_IMPLEMENTED).send();\r\n return Promise.resolve();\r\n }\r\n\r\n protected _put(request: Request<TPutRequest>, response: Response<TPutResponse>): Promise<void> {\r\n response.setStatus(StatusCode.INTERNAL_NOT_IMPLEMENTED).send();\r\n return Promise.resolve();\r\n }\r\n\r\n protected _delete(request: Request<TDeleteRequest>, response: Response<TDeleteResponse>): Promise<void> {\r\n response.setStatus(StatusCode.INTERNAL_NOT_IMPLEMENTED).send();\r\n return Promise.resolve();\r\n }\r\n}\r\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"acd1e65bc7efe40165cc86efb410c1ee3af0032d","contentHash":"0c11dcf93192d48f4fad58275f7796e29dc2c1f9d28b02fce964bec5715358d6"},"/development/breautek/storm/src/Database.ts":{"path":"/development/breautek/storm/src/Database.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":3,"column":13},"end":{"line":3,"column":28}},"2":{"start":{"line":4,"column":19},"end":{"line":4,"column":40}},"3":{"start":{"line":5,"column":20},"end":{"line":5,"column":28}},"4":{"start":{"line":8,"column":8},"end":{"line":8,"column":35}},"5":{"start":{"line":11,"column":8},"end":{"line":13,"column":9}},"6":{"start":{"line":12,"column":12},"end":{"line":12,"column":69}},"7":{"start":{"line":14,"column":8},"end":{"line":14,"column":52}},"8":{"start":{"line":15,"column":8},"end":{"line":15,"column":43}},"9":{"start":{"line":18,"column":8},"end":{"line":18,"column":50}},"10":{"start":{"line":19,"column":8},"end":{"line":19,"column":38}},"11":{"start":{"line":22,"column":17},"end":{"line":22,"column":48}},"12":{"start":{"line":23,"column":8},"end":{"line":23,"column":43}},"13":{"start":{"line":24,"column":8},"end":{"line":24,"column":34}},"14":{"start":{"line":25,"column":8},"end":{"line":25,"column":18}},"15":{"start":{"line":28,"column":8},"end":{"line":31,"column":9}},"16":{"start":{"line":29,"column":12},"end":{"line":29,"column":101}},"17":{"start":{"line":30,"column":12},"end":{"line":30,"column":19}},"18":{"start":{"line":32,"column":8},"end":{"line":32,"column":46}},"19":{"start":{"line":33,"column":8},"end":{"line":33,"column":34}},"20":{"start":{"line":36,"column":20},"end":{"line":36,"column":28}},"21":{"start":{"line":37,"column":8},"end":{"line":42,"column":9}},"22":{"start":{"line":38,"column":12},"end":{"line":38,"column":27}},"23":{"start":{"line":40,"column":13},"end":{"line":42,"column":9}},"24":{"start":{"line":41,"column":12},"end":{"line":41,"column":29}},"25":{"start":{"line":43,"column":8},"end":{"line":43,"column":62}},"26":{"start":{"line":46,"column":0},"end":{"line":46,"column":28}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":7,"column":4},"end":{"line":7,"column":5}},"loc":{"start":{"line":7,"column":18},"end":{"line":9,"column":5}},"line":7},"1":{"name":"(anonymous_1)","decl":{"start":{"line":10,"column":4},"end":{"line":10,"column":5}},"loc":{"start":{"line":10,"column":22},"end":{"line":16,"column":5}},"line":10},"2":{"name":"(anonymous_2)","decl":{"start":{"line":17,"column":4},"end":{"line":17,"column":5}},"loc":{"start":{"line":17,"column":19},"end":{"line":20,"column":5}},"line":17},"3":{"name":"(anonymous_3)","decl":{"start":{"line":21,"column":4},"end":{"line":21,"column":5}},"loc":{"start":{"line":21,"column":30},"end":{"line":26,"column":5}},"line":21},"4":{"name":"(anonymous_4)","decl":{"start":{"line":27,"column":4},"end":{"line":27,"column":5}},"loc":{"start":{"line":27,"column":25},"end":{"line":34,"column":5}},"line":27},"5":{"name":"(anonymous_5)","decl":{"start":{"line":35,"column":4},"end":{"line":35,"column":5}},"loc":{"start":{"line":35,"column":54},"end":{"line":44,"column":5}},"line":35}},"branchMap":{"0":{"loc":{"start":{"line":11,"column":8},"end":{"line":13,"column":9}},"type":"if","locations":[{"start":{"line":11,"column":8},"end":{"line":13,"column":9}},{"start":{"line":11,"column":8},"end":{"line":13,"column":9}}],"line":11},"1":{"loc":{"start":{"line":28,"column":8},"end":{"line":31,"column":9}},"type":"if","locations":[{"start":{"line":28,"column":8},"end":{"line":31,"column":9}},{"start":{"line":28,"column":8},"end":{"line":31,"column":9}}],"line":28},"2":{"loc":{"start":{"line":35,"column":18},"end":{"line":35,"column":44}},"type":"default-arg","locations":[{"start":{"line":35,"column":39},"end":{"line":35,"column":44}}],"line":35},"3":{"loc":{"start":{"line":37,"column":8},"end":{"line":42,"column":9}},"type":"if","locations":[{"start":{"line":37,"column":8},"end":{"line":42,"column":9}},{"start":{"line":37,"column":8},"end":{"line":42,"column":9}}],"line":37},"4":{"loc":{"start":{"line":40,"column":13},"end":{"line":42,"column":9}},"type":"if","locations":[{"start":{"line":40,"column":13},"end":{"line":42,"column":9}},{"start":{"line":40,"column":13},"end":{"line":42,"column":9}}],"line":40}},"s":{"0":1,"1":1,"2":1,"3":1,"4":37,"5":5,"6":1,"7":4,"8":4,"9":2,"10":2,"11":3,"12":3,"13":3,"14":3,"15":2,"16":1,"17":1,"18":1,"19":1,"20":13,"21":13,"22":1,"23":12,"24":3,"25":13,"26":1},"f":{"0":37,"1":5,"2":2,"3":3,"4":2,"5":13},"b":{"0":[1,4],"1":[1,1],"2":[3],"3":[1,12],"4":[3,9]},"inputSourceMap":{"version":3,"file":"/development/breautek/storm/src/Database.ts","sources":["/development/breautek/storm/src/Database.ts"],"names":[],"mappings":";;AAeA,6BAA6B;AAE7B,yCAAgD;AAEhD,MAAM,WAAW,GAAW,QAAQ,CAAC;AAErC,MAAsB,QAAQ;IAG1B;QACI,IAAI,CAAC,gBAAgB,GAAG,EAAE,CAAC;IAC/B,CAAC;IAEM,SAAS,CAAC,MAAW;QACxB,IAAI,IAAI,CAAC,gBAAgB,CAAC,WAAW,CAAC,EAAE;YACpC,MAAM,IAAI,KAAK,CAAC,SAAS,WAAW,mBAAmB,CAAC,CAAC;SAC5D;QAED,IAAI,CAAC,gBAAgB,CAAC,WAAW,CAAC,GAAG,MAAM,CAAC;QAC5C,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;IACvC,CAAC;IAEM,YAAY;QACf,OAAO,IAAI,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAC;QAC1C,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;IAClC,CAAC;IAEM,QAAQ,CAAC,OAAe,EAAE,MAAW;QACxC,IAAI,EAAE,GAAG,SAAS,IAAI,CAAC,EAAE,EAAE,IAAI,OAAO,EAAE,CAAC;QAEzC,IAAI,CAAC,gBAAgB,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC;QACnC,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;QAE1B,OAAO,EAAE,CAAC;IACd,CAAC;IAEM,WAAW,CAAC,OAAe;QAC9B,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,EAAE;YACjC,+BAAoB,EAAE,CAAC,IAAI,CAAC,QAAQ,OAAO,iCAAiC,CAAC,CAAC;YAC9E,OAAO;SACV;QAED,OAAO,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;QACtC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IAC9B,CAAC;IAEM,aAAa,CAAC,qBAA8B,KAAK,EAAE,MAAe;QACrE,IAAI,KAAK,GAAW,QAAQ,CAAC;QAE7B,IAAI,MAAM,EAAE;YACR,KAAK,GAAG,MAAM,CAAC;SAClB;aACI,IAAI,kBAAkB,EAAE;YACzB,KAAK,GAAG,QAAQ,CAAC;SACpB;QAED,OAAO,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,kBAAkB,CAAC,CAAC;IAC1D,CAAC;CAMJ;AAzDD,4BAyDC","sourcesContent":["// Copyright (C) 2017 Norman Breau\r\n\r\n// This program is free software: you can redistribute it and/or modify\r\n// it under the terms of the GNU General Public License as published by\r\n// the Free Software Foundation, either version 3 of the License, or\r\n// (at your option) any later version.\r\n\r\n// This program is distributed in the hope that it will be useful,\r\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\r\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\r\n// GNU General Public License for more details.\r\n\r\n// You should have received a copy of the GNU General Public License\r\n// along with this program. If not, see <http://www.gnu.org/licenses/>.\r\n\r\nimport * as UUID from 'uuid';\r\nimport {DatabaseConnection} from './DatabaseConnection';\r\nimport {getApplicationLogger} from './instance';\r\n\r\nconst MASTER_NAME: string = 'MASTER';\r\n\r\nexport abstract class Database {\r\n private clusterConfigMap: any;\r\n\r\n constructor() {\r\n this.clusterConfigMap = {};\r\n }\r\n\r\n public addMaster(config: any): void {\r\n if (this.clusterConfigMap[MASTER_NAME]) {\r\n throw new Error(`Node \"${MASTER_NAME}\" already exists.`);\r\n }\r\n\r\n this.clusterConfigMap[MASTER_NAME] = config;\r\n this._addNode(MASTER_NAME, config);\r\n }\r\n\r\n public removeMaster(): void {\r\n delete this.clusterConfigMap[MASTER_NAME];\r\n this._removeNode(MASTER_NAME);\r\n }\r\n\r\n public addSlave(slaveID: string, config: any): string {\r\n let id = `SLAVE.${UUID.v4()}.${slaveID}`;\r\n\r\n this.clusterConfigMap[id] = config;\r\n this._addNode(id, config);\r\n\r\n return id;\r\n }\r\n\r\n public removeSlave(slaveID: string): void {\r\n if (!this.clusterConfigMap[slaveID]) {\r\n getApplicationLogger().warn(`Node ${slaveID} is not a part of this cluster.`);\r\n return;\r\n }\r\n\r\n delete this.clusterConfigMap[slaveID];\r\n this._removeNode(slaveID);\r\n }\r\n\r\n public getConnection(requireWriteAccess: boolean = false, nodeID?: string): Promise<DatabaseConnection> {\r\n let query: string = 'SLAVE*';\r\n \r\n if (nodeID) {\r\n query = nodeID;\r\n }\r\n else if (requireWriteAccess) {\r\n query = 'MASTER';\r\n }\r\n\r\n return this._getConnection(query, requireWriteAccess);\r\n }\r\n\r\n protected abstract _addNode(name: string, config: any): void;\r\n protected abstract _removeNode(name: string): void;\r\n protected abstract _getConnection(query: string, requireWriteAccess: boolean): Promise<DatabaseConnection>;\r\n public abstract escape(query: string): string;\r\n}\r\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"550579a1a2b357f04c70caa71cfed2f472f211c9","contentHash":"4fec1eb5e2f9a7dc4400d32ae36be748de693e5a02395063c14e710cbbff12b9"},"/development/breautek/storm/src/DatabaseConnection.ts":{"path":"/development/breautek/storm/src/DatabaseConnection.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":3,"column":19},"end":{"line":3,"column":40}},"2":{"start":{"line":4,"column":16},"end":{"line":4,"column":34}},"3":{"start":{"line":5,"column":0},"end":{"line":5,"column":31}},"4":{"start":{"line":6,"column":0},"end":{"line":6,"column":40}},"5":{"start":{"line":9,"column":8},"end":{"line":9,"column":23}},"6":{"start":{"line":10,"column":8},"end":{"line":10,"column":35}},"7":{"start":{"line":11,"column":8},"end":{"line":11,"column":92}},"8":{"start":{"line":12,"column":8},"end":{"line":12,"column":26}},"9":{"start":{"line":13,"column":8},"end":{"line":13,"column":75}},"10":{"start":{"line":14,"column":8},"end":{"line":16,"column":9}},"11":{"start":{"line":15,"column":12},"end":{"line":15,"column":58}},"12":{"start":{"line":17,"column":8},"end":{"line":17,"column":33}},"13":{"start":{"line":20,"column":8},"end":{"line":20,"column":161}},"14":{"start":{"line":23,"column":8},"end":{"line":23,"column":41}},"15":{"start":{"line":26,"column":8},"end":{"line":26,"column":40}},"16":{"start":{"line":29,"column":8},"end":{"line":31,"column":9}},"17":{"start":{"line":30,"column":12},"end":{"line":30,"column":44}},"18":{"start":{"line":32,"column":8},"end":{"line":34,"column":35}},"19":{"start":{"line":33,"column":12},"end":{"line":33,"column":41}},"20":{"start":{"line":37,"column":8},"end":{"line":37,"column":24}},"21":{"start":{"line":40,"column":8},"end":{"line":40,"column":29}},"22":{"start":{"line":43,"column":8},"end":{"line":45,"column":9}},"23":{"start":{"line":44,"column":12},"end":{"line":44,"column":79}},"24":{"start":{"line":46,"column":8},"end":{"line":46,"column":32}},"25":{"start":{"line":49,"column":8},"end":{"line":49,"column":29}},"26":{"start":{"line":52,"column":8},"end":{"line":52,"column":33}},"27":{"start":{"line":53,"column":23},"end":{"line":53,"column":27}},"28":{"start":{"line":54,"column":8},"end":{"line":61,"column":9}},"29":{"start":{"line":55,"column":12},"end":{"line":55,"column":40}},"30":{"start":{"line":56,"column":12},"end":{"line":56,"column":43}},"31":{"start":{"line":59,"column":12},"end":{"line":59,"column":103}},"32":{"start":{"line":60,"column":12},"end":{"line":60,"column":29}},"33":{"start":{"line":62,"column":8},"end":{"line":62,"column":45}},"34":{"start":{"line":65,"column":8},"end":{"line":65,"column":33}},"35":{"start":{"line":66,"column":23},"end":{"line":66,"column":27}},"36":{"start":{"line":67,"column":8},"end":{"line":74,"column":9}},"37":{"start":{"line":68,"column":12},"end":{"line":68,"column":40}},"38":{"start":{"line":69,"column":12},"end":{"line":69,"column":43}},"39":{"start":{"line":72,"column":12},"end":{"line":72,"column":103}},"40":{"start":{"line":73,"column":12},"end":{"line":73,"column":29}},"41":{"start":{"line":75,"column":8},"end":{"line":75,"column":61}},"42":{"start":{"line":78,"column":8},"end":{"line":80,"column":9}},"43":{"start":{"line":79,"column":12},"end":{"line":79,"column":37}},"44":{"start":{"line":81,"column":8},"end":{"line":81,"column":27}},"45":{"start":{"line":82,"column":8},"end":{"line":82,"column":40}},"46":{"start":{"line":83,"column":8},"end":{"line":83,"column":39}},"47":{"start":{"line":86,"column":8},"end":{"line":86,"column":27}},"48":{"start":{"line":89,"column":0},"end":{"line":89,"column":48}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":8,"column":4},"end":{"line":8,"column":5}},"loc":{"start":{"line":8,"column":53},"end":{"line":18,"column":5}},"line":8},"1":{"name":"(anonymous_1)","decl":{"start":{"line":19,"column":4},"end":{"line":19,"column":5}},"loc":{"start":{"line":19,"column":28},"end":{"line":21,"column":5}},"line":19},"2":{"name":"(anonymous_2)","decl":{"start":{"line":22,"column":4},"end":{"line":22,"column":5}},"loc":{"start":{"line":22,"column":33},"end":{"line":24,"column":5}},"line":22},"3":{"name":"(anonymous_3)","decl":{"start":{"line":25,"column":4},"end":{"line":25,"column":5}},"loc":{"start":{"line":25,"column":28},"end":{"line":27,"column":5}},"line":25},"4":{"name":"(anonymous_4)","decl":{"start":{"line":28,"column":4},"end":{"line":28,"column":5}},"loc":{"start":{"line":28,"column":24},"end":{"line":35,"column":5}},"line":28},"5":{"name":"(anonymous_5)","decl":{"start":{"line":32,"column":39},"end":{"line":32,"column":40}},"loc":{"start":{"line":32,"column":45},"end":{"line":34,"column":9}},"line":32},"6":{"name":"(anonymous_6)","decl":{"start":{"line":36,"column":4},"end":{"line":36,"column":5}},"loc":{"start":{"line":36,"column":13},"end":{"line":38,"column":5}},"line":36},"7":{"name":"(anonymous_7)","decl":{"start":{"line":39,"column":4},"end":{"line":39,"column":5}},"loc":{"start":{"line":39,"column":17},"end":{"line":41,"column":5}},"line":39},"8":{"name":"(anonymous_8)","decl":{"start":{"line":42,"column":4},"end":{"line":42,"column":5}},"loc":{"start":{"line":42,"column":24},"end":{"line":47,"column":5}},"line":42},"9":{"name":"(anonymous_9)","decl":{"start":{"line":48,"column":4},"end":{"line":48,"column":5}},"loc":{"start":{"line":48,"column":17},"end":{"line":50,"column":5}},"line":48},"10":{"name":"(anonymous_10)","decl":{"start":{"line":51,"column":4},"end":{"line":51,"column":5}},"loc":{"start":{"line":51,"column":25},"end":{"line":63,"column":5}},"line":51},"11":{"name":"(anonymous_11)","decl":{"start":{"line":64,"column":4},"end":{"line":64,"column":5}},"loc":{"start":{"line":64,"column":41},"end":{"line":76,"column":5}},"line":64},"12":{"name":"(anonymous_12)","decl":{"start":{"line":77,"column":4},"end":{"line":77,"column":5}},"loc":{"start":{"line":77,"column":30},"end":{"line":84,"column":5}},"line":77},"13":{"name":"(anonymous_13)","decl":{"start":{"line":85,"column":4},"end":{"line":85,"column":5}},"loc":{"start":{"line":85,"column":15},"end":{"line":87,"column":5}},"line":85}},"branchMap":{"0":{"loc":{"start":{"line":11,"column":36},"end":{"line":11,"column":60}},"type":"binary-expr","locations":[{"start":{"line":11,"column":36},"end":{"line":11,"column":54}},{"start":{"line":11,"column":58},"end":{"line":11,"column":60}}],"line":11},"1":{"loc":{"start":{"line":14,"column":8},"end":{"line":16,"column":9}},"type":"if","locations":[{"start":{"line":14,"column":8},"end":{"line":16,"column":9}},{"start":{"line":14,"column":8},"end":{"line":16,"column":9}}],"line":14},"2":{"loc":{"start":{"line":29,"column":8},"end":{"line":31,"column":9}},"type":"if","locations":[{"start":{"line":29,"column":8},"end":{"line":31,"column":9}},{"start":{"line":29,"column":8},"end":{"line":31,"column":9}}],"line":29},"3":{"loc":{"start":{"line":43,"column":8},"end":{"line":45,"column":9}},"type":"if","locations":[{"start":{"line":43,"column":8},"end":{"line":45,"column":9}},{"start":{"line":43,"column":8},"end":{"line":45,"column":9}}],"line":43},"4":{"loc":{"start":{"line":54,"column":8},"end":{"line":61,"column":9}},"type":"if","locations":[{"start":{"line":54,"column":8},"end":{"line":61,"column":9}},{"start":{"line":54,"column":8},"end":{"line":61,"column":9}}],"line":54},"5":{"loc":{"start":{"line":67,"column":8},"end":{"line":74,"column":9}},"type":"if","locations":[{"start":{"line":67,"column":8},"end":{"line":74,"column":9}},{"start":{"line":67,"column":8},"end":{"line":74,"column":9}}],"line":67},"6":{"loc":{"start":{"line":77,"column":10},"end":{"line":77,"column":28}},"type":"default-arg","locations":[{"start":{"line":77,"column":23},"end":{"line":77,"column":28}}],"line":77},"7":{"loc":{"start":{"line":78,"column":8},"end":{"line":80,"column":9}},"type":"if","locations":[{"start":{"line":78,"column":8},"end":{"line":80,"column":9}},{"start":{"line":78,"column":8},"end":{"line":80,"column":9}}],"line":78}},"s":{"0":1,"1":1,"2":1,"3":1,"4":1,"5":82,"6":82,"7":82,"8":82,"9":82,"10":82,"11":1,"12":82,"13":1,"14":7,"15":2,"16":103,"17":21,"18":103,"19":1,"20":26,"21":16,"22":10,"23":1,"24":9,"25":24,"26":20,"27":20,"28":20,"29":16,"30":16,"31":4,"32":4,"33":20,"34":3,"35":3,"36":3,"37":0,"38":0,"39":3,"40":3,"41":3,"42":18,"43":0,"44":18,"45":18,"46":18,"47":20,"48":1},"f":{"0":82,"1":1,"2":7,"3":2,"4":103,"5":1,"6":26,"7":16,"8":10,"9":24,"10":20,"11":3,"12":18,"13":20},"b":{"0":[82,20],"1":[1,81],"2":[21,82],"3":[1,9],"4":[16,4],"5":[0,3],"6":[11],"7":[0,18]},"inputSourceMap":{"version":3,"file":"/development/breautek/storm/src/DatabaseConnection.ts","sources":["/development/breautek/storm/src/DatabaseConnection.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (C) 2017 Norman Breau\r\n\r\n// This program is free software: you can redistribute it and/or modify\r\n// it under the terms of the GNU General Public License as published by\r\n// the Free Software Foundation, either version 3 of the License, or\r\n// (at your option) any later version.\r\n\r\n// This program is distributed in the hope that it will be useful,\r\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\r\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\r\n// GNU General Public License for more details.\r\n\r\n// You should have received a copy of the GNU General Public License\r\n// along with this program. If not, see <http://www.gnu.org/licenses/>.\r\n\r\nimport {\r\n getApplicationLogger,\r\n getInstance\r\n} from './instance';\r\nimport {Readable} from 'stream';\r\nimport {IDatabaseConnection} from './IDatabaseConnection';\r\nimport {Query} from './Query';\r\nimport { IQueryParameters } from './IQueryParameters';\r\n\r\nexport const LINGER_WARNING: number = 10000;\r\nexport const DEFAULT_QUERY_TIMEOUT: number = 3600000;\r\n\r\n/**\r\n * Do not call `new Database` directly. Use `Database.getConnection` to create a `DatabaseConnection` object.\r\n * @abstract\r\n * @implements `IDatabaseConnection`\r\n * @class\r\n */\r\nexport abstract class DatabaseConnection implements IDatabaseConnection {\r\n private api: any;\r\n private readOnly: boolean;\r\n private _timeout: number;\r\n private _lingerTimer: NodeJS.Timer;\r\n private _instantiationStack: string;\r\n private _open: boolean;\r\n\r\n public constructor(api: any, isReadOnly: boolean, instantiationStack: string) {\r\n this.api = api;\r\n this.readOnly = isReadOnly;\r\n this._instantiationStack = (instantiationStack || '').replace(/Error:/, 'Warning:');\r\n this._open = true;\r\n\r\n this._timeout = getInstance().getConfig().query_timeout;\r\n if (isNaN(this._timeout)) {\r\n this._timeout = DEFAULT_QUERY_TIMEOUT;\r\n }\r\n\r\n this._armLingerWarning();\r\n }\r\n\r\n private _triggerLingerWarning(): void {\r\n getApplicationLogger().warn(`Database connection has lingered for ${LINGER_WARNING}ms of inactivity.\\n\\n${this._instantiationStack}`);\r\n }\r\n\r\n public setInstantiationStack(stack: string): void {\r\n this._instantiationStack = stack;\r\n }\r\n\r\n /**\r\n * Gets the callback stacktrace to determine what opened\r\n * this connection. Useful for debugging lingering connections.\r\n * @returns string - A stacktrace\r\n */\r\n public getInstantiationStack(): string {\r\n return this._instantiationStack;\r\n }\r\n\r\n private _armLingerWarning() {\r\n if (this._lingerTimer) {\r\n clearTimeout(this._lingerTimer);\r\n }\r\n\r\n this._lingerTimer = setTimeout(() => {\r\n this._triggerLingerWarning();\r\n }, LINGER_WARNING);\r\n }\r\n\r\n /**\r\n * Gets the underlying Database API\r\n * @returns any\r\n */\r\n public getAPI(): any {\r\n return this.api;\r\n }\r\n\r\n /**\r\n * Returns true if connection was created without\r\n * write access\r\n * @returns boolean\r\n */\r\n public isReadOnly(): boolean {\r\n return this.readOnly;\r\n }\r\n\r\n /**\r\n * Sets the timeout of this connectino\r\n * \r\n * @param timeout in milliseconds\r\n */\r\n public setTimeout(timeout: number): void {\r\n if (isNaN(timeout)) {\r\n throw new TypeError('setTimeout expects a number in parameter 1.');\r\n }\r\n\r\n this._timeout = timeout;\r\n }\r\n\r\n /**\r\n * Returns the current timeout setting\r\n * @returns number in milliseconds\r\n */\r\n public getTimeout(): number {\r\n return this._timeout;\r\n }\r\n\r\n /**\r\n * Queries the database for a dataset.\r\n * \r\n * @param {Query} query The database query\r\n * @param {IQueryParameters} params Parameters for the query\r\n * @async\r\n * @returns Promise<any>\r\n */\r\n public query(query: string | Query, params?: IQueryParameters): Promise<any> {\r\n this._armLingerWarning();\r\n \r\n let queryStr: string = null;\r\n if (query instanceof Query) {\r\n queryStr = query.getQuery();\r\n params = query.getParameters();\r\n }\r\n else {\r\n getInstance().getLogger().deprecateParameterType(1, 'string', 'Query instance');\r\n queryStr = query;\r\n }\r\n\r\n return this._query(queryStr, params);\r\n }\r\n\r\n /**\r\n * \r\n * @param query The database query\r\n * @param params Parameters for the query\r\n * @param streamOptions Stream options\r\n * @returns Readable\r\n */\r\n public stream(query: string | Query, params?: any, streamOptions?: any): Readable {\r\n this._armLingerWarning();\r\n let queryStr: string = null;\r\n if (query instanceof Query) {\r\n queryStr = query.getQuery();\r\n params = query.getParameters();\r\n }\r\n else {\r\n getInstance().getLogger().deprecateParameterType(1, 'string', 'Query instance');\r\n queryStr = query;\r\n }\r\n return this._stream(queryStr, params, streamOptions);\r\n }\r\n\r\n /**\r\n * Closes the connection. May error if connection has an active transaction.\r\n * if `forceClose` boolean is true, it will force close the connection, regardless\r\n * of transaction state.\r\n * \r\n * @param forceClose optional boolean\r\n * @async\r\n * @returns Promise<void>\r\n */\r\n public close(forceClose: boolean = false): Promise<void> {\r\n if (this.isClosed()) {\r\n return Promise.resolve();\r\n }\r\n \r\n this._open = false;\r\n clearTimeout(this._lingerTimer);\r\n return this._close(forceClose);\r\n }\r\n\r\n /**\r\n * Returns true if the connection has been closed.\r\n */\r\n public isClosed(): boolean {\r\n return !this._open;\r\n }\r\n\r\n /**\r\n * Implementation method to start a transaction.\r\n * \r\n * @abstract\r\n * @async\r\n * @returns Promise<void>\r\n */\r\n public abstract startTransaction(): Promise<void>;\r\n\r\n /**\r\n * Implementation method to determine if the connection is in an active transaction.\r\n * \r\n * @abstract\r\n * @returns boolean\r\n */\r\n public abstract isTransaction(): boolean;\r\n\r\n /**\r\n * Ends a transaction. if `requiresRollback` is `true`, then `rollback()` is invoked. Otherwise, `commit()` is invoked.\r\n * \r\n * @abstract\r\n * @async\r\n * @param requiresRollback optional boolean\r\n * @returns Promise<void>\r\n */\r\n public abstract endTransaction(requiresRollback?: boolean): Promise<void>;\r\n \r\n /**\r\n * Commits a transaction. This will end a transaction.\r\n * \r\n * @abstract\r\n * @async\r\n * @returns Promise<void>\r\n */\r\n public abstract commit(): Promise<void>;\r\n\r\n /**\r\n * Rollsback a transaction. This will end a transaction.\r\n * \r\n * @abstract\r\n * @async\r\n * @returns Promise<void>\r\n */\r\n public abstract rollback(): Promise<void>;\r\n\r\n /**\r\n * Implementation to close the connection, if `forceClose` is true, close the connection no matter what.\r\n * Silently error if it means the connection is closed.\r\n * \r\n * @param forceClose boolean, if `true`, should close the connection no matter what.\r\n * @async\r\n * @returns Promise<void>\r\n */\r\n protected abstract _close(forceClose: boolean): Promise<void>;\r\n \r\n /**\r\n * Implementation method to return a dataset from the database\r\n * \r\n * @param query The database query\r\n * @param params The query parameters\r\n * @async\r\n * @returns Promise\r\n */\r\n protected abstract _query(query: string, params?: any): Promise<any>;\r\n\r\n /**\r\n * Implementation method to return a dataset from the database like `query()`,\r\n * but returns a `Readable` stream instead.\r\n * \r\n * @param query The database query\r\n * @param params The query parameters\r\n * @param streamOptions `Readable` stream options\r\n * @returns `Readable`\r\n */\r\n protected abstract _stream(query: string, params?: any, streamOptions?: any): Readable;\r\n}\r\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"02f1814b3b869ac238a097601fd42c4315622912","contentHash":"43eb3a1628e78d85ccdb8f092a5cf529cb346ba438031df1e6cc36edde93a6dd"},"/development/breautek/storm/src/Query.ts":{"path":"/development/breautek/storm/src/Query.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":5,"column":8},"end":{"line":5,"column":34}},"2":{"start":{"line":8,"column":8},"end":{"line":8,"column":28}},"3":{"start":{"line":11,"column":8},"end":{"line":11,"column":32}},"4":{"start":{"line":14,"column":0},"end":{"line":14,"column":22}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":4,"column":4},"end":{"line":4,"column":5}},"loc":{"start":{"line":4,"column":33},"end":{"line":6,"column":5}},"line":4},"1":{"name":"(anonymous_1)","decl":{"start":{"line":7,"column":4},"end":{"line":7,"column":5}},"loc":{"start":{"line":7,"column":20},"end":{"line":9,"column":5}},"line":7},"2":{"name":"(anonymous_2)","decl":{"start":{"line":10,"column":4},"end":{"line":10,"column":5}},"loc":{"start":{"line":10,"column":15},"end":{"line":12,"column":5}},"line":10}},"branchMap":{"0":{"loc":{"start":{"line":4,"column":16},"end":{"line":4,"column":31}},"type":"default-arg","locations":[{"start":{"line":4,"column":29},"end":{"line":4,"column":31}}],"line":4}},"s":{"0":1,"1":3,"2":16,"3":16,"4":1},"f":{"0":3,"1":16,"2":16},"b":{"0":[3]},"inputSourceMap":{"version":3,"file":"/development/breautek/storm/src/Query.ts","sources":["/development/breautek/storm/src/Query.ts"],"names":[],"mappings":";;AAEA,MAAsB,KAAK;IAGvB,YAAmB,aAA+B,EAAE;QAChD,IAAI,CAAC,OAAO,GAAG,UAAU,CAAC;IAC9B,CAAC;IAEM,aAAa;QAChB,OAAO,IAAI,CAAC,OAAO,CAAC;IACxB,CAAC;IAIM,QAAQ;QACX,OAAO,IAAI,CAAC,SAAS,EAAE,CAAC;IAC5B,CAAC;CACJ;AAhBD,sBAgBC","sourcesContent":["import {IQueryParameters} from './IQueryParameters';\n\nexport abstract class Query {\n private _params: IQueryParameters;\n\n public constructor(parameters: IQueryParameters = {}) {\n this._params = parameters;\n }\n\n public getParameters(): IQueryParameters {\n return this._params;\n }\n\n protected abstract _getQuery(): string;\n\n public getQuery(): string {\n return this._getQuery();\n }\n}\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"e48dd2850d68ba97adbfca08b8e23fd2c99a3257","contentHash":"44bfd658cf0293e8057af5e0633d0d546b220bd358cf36eb2a16325775e54114"},"/development/breautek/storm/src/HTTPMethod.ts":{"path":"/development/breautek/storm/src/HTTPMethod.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":4,"column":0},"end":{"line":9,"column":65}},"2":{"start":{"line":5,"column":4},"end":{"line":5,"column":30}},"3":{"start":{"line":6,"column":4},"end":{"line":6,"column":32}},"4":{"start":{"line":7,"column":4},"end":{"line":7,"column":30}},"5":{"start":{"line":8,"column":4},"end":{"line":8,"column":36}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":4,"column":1},"end":{"line":4,"column":2}},"loc":{"start":{"line":4,"column":23},"end":{"line":9,"column":1}},"line":4}},"branchMap":{"0":{"loc":{"start":{"line":9,"column":16},"end":{"line":9,"column":63}},"type":"binary-expr","locations":[{"start":{"line":9,"column":16},"end":{"line":9,"column":34}},{"start":{"line":9,"column":39},"end":{"line":9,"column":62}}],"line":9}},"s":{"0":1,"1":1,"2":1,"3":1,"4":1,"5":1},"f":{"0":1},"b":{"0":[1,1]},"inputSourceMap":{"version":3,"file":"/development/breautek/storm/src/HTTPMethod.ts","sources":["/development/breautek/storm/src/HTTPMethod.ts"],"names":[],"mappings":";;AACA,IAAY,UAKX;AALD,WAAY,UAAU;IAClB,yBAAe,CAAA;IACf,2BAAgB,CAAA;IAChB,yBAAe,CAAA;IACf,+BAAkB,CAAA;AACtB,CAAC,EALW,UAAU,GAAV,kBAAU,KAAV,kBAAU,QAKrB","sourcesContent":["\nexport enum HTTPMethod {\n GET = 'GET',\n POST = 'POST',\n PUT = 'PUT',\n DELETE = 'DELETE'\n}\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"c42ff0d821cd389baf3e824124986b07860f6af7","contentHash":"e660cb1c5a2241d975b20f8903f5d6205129f5fdee51926bb3b81fdb4db22d5f"},"/development/breautek/storm/src/DumpStream.ts":{"path":"/development/breautek/storm/src/DumpStream.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":3,"column":19},"end":{"line":3,"column":32}},"2":{"start":{"line":7,"column":8},"end":{"line":7,"column":57}},"3":{"start":{"line":10,"column":0},"end":{"line":10,"column":32}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":5,"column":4},"end":{"line":5,"column":5}},"loc":{"start":{"line":5,"column":18},"end":{"line":5,"column":21}},"line":5},"1":{"name":"(anonymous_1)","decl":{"start":{"line":6,"column":4},"end":{"line":6,"column":5}},"loc":{"start":{"line":6,"column":25},"end":{"line":8,"column":5}},"line":6}},"branchMap":{},"s":{"0":1,"1":1,"2":46,"3":1},"f":{"0":0,"1":46},"b":{},"inputSourceMap":{"version":3,"file":"/development/breautek/storm/src/DumpStream.ts","sources":["/development/breautek/storm/src/DumpStream.ts"],"names":[],"mappings":";;AACA,iCAAiC;AAGjC,MAAa,UAAU;IAGnB,gBAAuB,CAAC;IAEjB,MAAM,CAAC,WAAW;QACrB,OAAO,UAAU,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC;IACrD,CAAC;CACJ;AARD,gCAQC","sourcesContent":["\nimport * as FileSystem from 'fs';\nimport {Writable} from 'stream';\n\nexport class DumpStream {\n\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n private constructor() {}\n\n public static getWritable(): Writable {\n return FileSystem.createWriteStream('/dev/null');\n }\n}\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"dc8e7da4ae44f9c172f9264d090438293eae084e","contentHash":"2b9d422df072b71c286fa39b709d19beb14e9dfa9b55235d9035fc2a53be5de6"},"/development/breautek/storm/src/TokenManager.ts":{"path":"/development/breautek/storm/src/TokenManager.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":3,"column":12},"end":{"line":3,"column":35}},"2":{"start":{"line":4,"column":16},"end":{"line":4,"column":34}},"3":{"start":{"line":5,"column":33},"end":{"line":5,"column":68}},"4":{"start":{"line":6,"column":17},"end":{"line":6,"column":34}},"5":{"start":{"line":9,"column":8},"end":{"line":9,"column":29}},"6":{"start":{"line":12,"column":8},"end":{"line":28,"column":11}},"7":{"start":{"line":13,"column":12},"end":{"line":27,"column":15}},"8":{"start":{"line":14,"column":16},"end":{"line":17,"column":17}},"9":{"start":{"line":15,"column":20},"end":{"line":15,"column":32}},"10":{"start":{"line":16,"column":20},"end":{"line":16,"column":27}},"11":{"start":{"line":18,"column":16},"end":{"line":18,"column":60}},"12":{"start":{"line":19,"column":16},"end":{"line":26,"column":19}},"13":{"start":{"line":22,"column":20},"end":{"line":24,"column":21}},"14":{"start":{"line":23,"column":24},"end":{"line":23,"column":45}},"15":{"start":{"line":25,"column":20},"end":{"line":25,"column":61}},"16":{"start":{"line":31,"column":8},"end":{"line":46,"column":11}},"17":{"start":{"line":32,"column":12},"end":{"line":39,"column":13}},"18":{"start":{"line":33,"column":16},"end":{"line":35,"column":18}},"19":{"start":{"line":37,"column":17},"end":{"line":39,"column":13}},"20":{"start":{"line":38,"column":16},"end":{"line":38,"column":48}},"21":{"start":{"line":40,"column":12},"end":{"line":45,"column":15}},"22":{"start":{"line":41,"column":16},"end":{"line":43,"column":17}},"23":{"start":{"line":42,"column":20},"end":{"line":42,"column":41}},"24":{"start":{"line":44,"column":16},"end":{"line":44,"column":40}},"25":{"start":{"line":49,"column":8},"end":{"line":57,"column":11}},"26":{"start":{"line":50,"column":12},"end":{"line":56,"column":13}},"27":{"start":{"line":51,"column":32},"end":{"line":51,"column":64}},"28":{"start":{"line":52,"column":16},"end":{"line":52,"column":33}},"29":{"start":{"line":55,"column":16},"end":{"line":55,"column":27}},"30":{"start":{"line":60,"column":0},"end":{"line":60,"column":36}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":8,"column":4},"end":{"line":8,"column":5}},"loc":{"start":{"line":8,"column":24},"end":{"line":10,"column":5}},"line":8},"1":{"name":"(anonymous_1)","decl":{"start":{"line":11,"column":4},"end":{"line":11,"column":5}},"loc":{"start":{"line":11,"column":29},"end":{"line":29,"column":5}},"line":11},"2":{"name":"(anonymous_2)","decl":{"start":{"line":12,"column":27},"end":{"line":12,"column":28}},"loc":{"start":{"line":12,"column":48},"end":{"line":28,"column":9}},"line":12},"3":{"name":"(anonymous_3)","decl":{"start":{"line":13,"column":37},"end":{"line":13,"column":38}},"loc":{"start":{"line":13,"column":54},"end":{"line":27,"column":13}},"line":13},"4":{"name":"(anonymous_4)","decl":{"start":{"line":21,"column":19},"end":{"line":21,"column":20}},"loc":{"start":{"line":21,"column":37},"end":{"line":26,"column":17}},"line":21},"5":{"name":"(anonymous_5)","decl":{"start":{"line":30,"column":4},"end":{"line":30,"column":5}},"loc":{"start":{"line":30,"column":27},"end":{"line":47,"column":5}},"line":30},"6":{"name":"(anonymous_6)","decl":{"start":{"line":31,"column":27},"end":{"line":31,"column":28}},"loc":{"start":{"line":31,"column":48},"end":{"line":46,"column":9}},"line":31},"7":{"name":"(anonymous_7)","decl":{"start":{"line":40,"column":122},"end":{"line":40,"column":123}},"loc":{"start":{"line":40,"column":142},"end":{"line":45,"column":13}},"line":40},"8":{"name":"(anonymous_8)","decl":{"start":{"line":48,"column":4},"end":{"line":48,"column":5}},"loc":{"start":{"line":48,"column":18},"end":{"line":58,"column":5}},"line":48},"9":{"name":"(anonymous_9)","decl":{"start":{"line":49,"column":27},"end":{"line":49,"column":28}},"loc":{"start":{"line":49,"column":48},"end":{"line":57,"column":9}},"line":49}},"branchMap":{"0":{"loc":{"start":{"line":14,"column":16},"end":{"line":17,"column":17}},"type":"if","locations":[{"start":{"line":14,"column":16},"end":{"line":17,"column":17}},{"start":{"line":14,"column":16},"end":{"line":17,"column":17}}],"line":14},"1":{"loc":{"start":{"line":22,"column":20},"end":{"line":24,"column":21}},"type":"if","locations":[{"start":{"line":22,"column":20},"end":{"line":24,"column":21}},{"start":{"line":22,"column":20},"end":{"line":24,"column":21}}],"line":22},"2":{"loc":{"start":{"line":32,"column":12},"end":{"line":39,"column":13}},"type":"if","locations":[{"start":{"line":32,"column":12},"end":{"line":39,"column":13}},{"start":{"line":32,"column":12},"end":{"line":39,"column":13}}],"line":32},"3":{"loc":{"start":{"line":37,"column":17},"end":{"line":39,"column":13}},"type":"if","locations":[{"start":{"line":37,"column":17},"end":{"line":39,"column":13}},{"start":{"line":37,"column":17},"end":{"line":39,"column":13}}],"line":37},"4":{"loc":{"start":{"line":41,"column":16},"end":{"line":43,"column":17}},"type":"if","locations":[{"start":{"line":41,"column":16},"end":{"line":43,"column":17}},{"start":{"line":41,"column":16},"end":{"line":43,"column":17}}],"line":41}},"s":{"0":1,"1":1,"2":1,"3":1,"4":1,"5":2,"6":7,"7":7,"8":7,"9":0,"10":0,"11":7,"12":7,"13":7,"14":0,"15":7,"16":5,"17":5,"18":2,"19":3,"20":0,"21":5,"22":5,"23":2,"24":3,"25":1,"26":1,"27":1,"28":1,"29":0,"30":1},"f":{"0":2,"1":7,"2":7,"3":7,"4":7,"5":5,"6":5,"7":5,"8":1,"9":1},"b":{"0":[0,7],"1":[0,7],"2":[2,3],"3":[0,3],"4":[2,3]},"inputSourceMap":{"version":3,"file":"/development/breautek/storm/src/TokenManager.ts","sources":["/development/breautek/storm/src/TokenManager.ts"],"names":[],"mappings":";;AAeA,oCAAoC;AACpC,mCAA8B;AAE9B,qEAAgE;AAChE,mCAAmC;AAEnC,MAAa,YAAY;IAGrB,YAAmB,MAAc;QAC7B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACzB,CAAC;IAEM,IAAI,CAAC,OAA6B,EAAE,SAA0B;QACjE,OAAO,IAAI,OAAO,CAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAC1C,oBAAW,CAAC,EAAE,EAAE,CAAC,GAAU,EAAE,MAAc,EAAE,EAAE;gBAC3C,IAAI,GAAG,EAAE;oBACL,MAAM,CAAC,GAAG,CAAC,CAAC;oBACZ,OAAO;iBACV;gBAGD,OAAO,CAAC,UAAU,GAAG,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;gBAE5C,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,MAAM,EAAE;oBAC3B,SAAS,EAAG,SAAS;iBACxB,EAAE,CAAC,KAAY,EAAE,KAAa,EAAE,EAAE;oBAC/B,IAAI,KAAK,EAAE;wBACP,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;qBACxB;oBAED,OAAO,OAAO,CAAC,IAAI,aAAK,CAAC,KAAK,CAAC,CAAC,CAAC;gBACrC,CAAC,CAAC,CAAC;YACP,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;IACP,CAAC;IAEM,MAAM,CAAC,KAAY,EAAE,OAA2B;QACnD,OAAO,IAAI,OAAO,CAAM,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAExC,IAAI,CAAC,OAAO,EAAE;gBACV,OAAO,GAAG;oBACN,gBAAgB,EAAE,IAAI;iBACzB,CAAC;aACL;iBAAM,IAAI,OAAO,CAAC,gBAAgB,KAAK,SAAS,EAAE;gBAC/C,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC;aACnC;YACD,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,YAAY,EAAE,EAAE,IAAI,CAAC,MAAM,EAAE,+CAAsB,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;gBACpG,IAAI,KAAK,EAAE;oBACP,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;iBACxB;gBAED,OAAO,OAAO,CAAC,OAAO,CAAC,CAAC;YAC5B,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;IACP,CAAC;IAEM,MAAM,CAAC,KAAY;QACtB,OAAO,IAAI,OAAO,CAAM,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACxC,IAAI;gBACA,MAAM,OAAO,GAAQ,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC,CAAC;gBACtD,OAAO,CAAC,OAAO,CAAC,CAAC;aACpB;YACD,OAAO,EAAE,EAAE;gBACP,MAAM,CAAC,EAAE,CAAC,CAAC;aACd;QACL,CAAC,CAAC,CAAC;IACP,CAAC;CACJ;AA9DD,oCA8DC","sourcesContent":["// Copyright (C) 2017 Norman Breau\r\n\r\n// This program is free software: you can redistribute it and/or modify\r\n// it under the terms of the GNU General Public License as published by\r\n// the Free Software Foundation, either version 3 of the License, or\r\n// (at your option) any later version.\r\n\r\n// This program is distributed in the hope that it will be useful,\r\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\r\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\r\n// GNU General Public License for more details.\r\n\r\n// You should have received a copy of the GNU General Public License\r\n// along with this program. If not, see <http://www.gnu.org/licenses/>.\r\n\r\nimport * as jwt from 'jsonwebtoken';\r\nimport {Token} from './Token';\r\nimport {IJWTVerifyOptions} from './IJWTVerifyOptions';\r\nimport {JWTVerifyOptionsParser} from './JWTVerifyOptionsParser';\r\nimport {randomBytes} from 'crypto';\r\n\r\nexport class TokenManager {\r\n private secret: string;\r\n\r\n public constructor(secret: string) {\r\n this.secret = secret;\r\n }\r\n\r\n public sign(payload: {[key: string]: any}, expiresIn: string | number): Promise<Token> {\r\n return new Promise<Token>((resolve, reject) => {\r\n randomBytes(64, (err: Error, buffer: Buffer) => {\r\n if (err) {\r\n reject(err);\r\n return;\r\n }\r\n\r\n // eslint-disable-next-line @typescript-eslint/camelcase\r\n payload.__bt__salt = buffer.toString('hex');\r\n\r\n jwt.sign(payload, this.secret, {\r\n expiresIn : expiresIn\r\n }, (error: Error, token: string) => {\r\n if (error) {\r\n return reject(error);\r\n }\r\n \r\n return resolve(new Token(token));\r\n });\r\n });\r\n });\r\n }\r\n\r\n public verify(token: Token, options?: IJWTVerifyOptions): Promise<any> {\r\n return new Promise<any>((resolve, reject) => {\r\n // placed inside the promise in the event that a reject would be required.\r\n if (!options) {\r\n options = {\r\n enableExpiration: true\r\n };\r\n } else if (options.enableExpiration === undefined) {\r\n options.enableExpiration = true;\r\n }\r\n jwt.verify(token.getSignature(), this.secret, JWTVerifyOptionsParser.parse(options), (error, decoded) => {\r\n if (error) {\r\n return reject(error);\r\n }\r\n\r\n return resolve(decoded);\r\n });\r\n });\r\n }\r\n\r\n public decode(token: Token): Promise<any> {\r\n return new Promise<any>((resolve, reject) => {\r\n try {\r\n const decoded: any = jwt.decode(token.getSignature());\r\n resolve(decoded);\r\n }\r\n catch (ex) {\r\n reject(ex);\r\n }\r\n });\r\n }\r\n}\r\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"7a5fcd58e0d29fecbbad31a0353387de87a5947b","contentHash":"3ca8475c7c9048591e1040a549209543e87fee0a2a9b54be8fa2cd93c552276b"},"/development/breautek/storm/src/Token.ts":{"path":"/development/breautek/storm/src/Token.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":5,"column":8},"end":{"line":5,"column":35}},"2":{"start":{"line":8,"column":8},"end":{"line":8,"column":30}},"3":{"start":{"line":11,"column":0},"end":{"line":11,"column":22}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":4,"column":4},"end":{"line":4,"column":5}},"loc":{"start":{"line":4,"column":27},"end":{"line":6,"column":5}},"line":4},"1":{"name":"(anonymous_1)","decl":{"start":{"line":7,"column":4},"end":{"line":7,"column":5}},"loc":{"start":{"line":7,"column":19},"end":{"line":9,"column":5}},"line":7}},"branchMap":{},"s":{"0":1,"1":9,"2":10,"3":1},"f":{"0":9,"1":10},"b":{},"inputSourceMap":{"version":3,"file":"/development/breautek/storm/src/Token.ts","sources":["/development/breautek/storm/src/Token.ts"],"names":[],"mappings":";;AAeA,MAAa,KAAK;IAGd,YAAY,SAAiB;QACzB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC/B,CAAC;IAEM,YAAY;QACf,OAAO,IAAI,CAAC,SAAS,CAAC;IAC1B,CAAC;CACJ;AAVD,sBAUC","sourcesContent":["// Copyright (C) 2017 Norman Breau\r\n\r\n// This program is free software: you can redistribute it and/or modify\r\n// it under the terms of the GNU General Public License as published by\r\n// the Free Software Foundation, either version 3 of the License, or\r\n// (at your option) any later version.\r\n\r\n// This program is distributed in the hope that it will be useful,\r\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\r\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\r\n// GNU General Public License for more details.\r\n\r\n// You should have received a copy of the GNU General Public License\r\n// along with this program. If not, see <http://www.gnu.org/licenses/>.\r\n\r\nexport class Token {\r\n private signature: string;\r\n\r\n constructor(signature: string) {\r\n this.signature = signature;\r\n }\r\n\r\n public getSignature(): string {\r\n return this.signature;\r\n }\r\n}\r\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"9b6e48be0db94f28246002f3bbbea1a643f7aa5a","contentHash":"ed242a530517973d126b800df26ce501d0d7800f6c3158818d0c2ed7ca87e667"},"/development/breautek/storm/src/JWTVerifyOptionsParser.ts":{"path":"/development/breautek/storm/src/JWTVerifyOptionsParser.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":5,"column":8},"end":{"line":5,"column":70}},"2":{"start":{"line":8,"column":19},"end":{"line":8,"column":21}},"3":{"start":{"line":9,"column":8},"end":{"line":11,"column":9}},"4":{"start":{"line":10,"column":12},"end":{"line":10,"column":62}},"5":{"start":{"line":12,"column":8},"end":{"line":12,"column":20}},"6":{"start":{"line":15,"column":0},"end":{"line":15,"column":56}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":4,"column":4},"end":{"line":4,"column":5}},"loc":{"start":{"line":4,"column":18},"end":{"line":6,"column":5}},"line":4},"1":{"name":"(anonymous_1)","decl":{"start":{"line":7,"column":4},"end":{"line":7,"column":5}},"loc":{"start":{"line":7,"column":26},"end":{"line":13,"column":5}},"line":7}},"branchMap":{"0":{"loc":{"start":{"line":9,"column":8},"end":{"line":11,"column":9}},"type":"if","locations":[{"start":{"line":9,"column":8},"end":{"line":11,"column":9}},{"start":{"line":9,"column":8},"end":{"line":11,"column":9}}],"line":9}},"s":{"0":1,"1":0,"2":5,"3":5,"4":5,"5":5,"6":1},"f":{"0":0,"1":5},"b":{"0":[5,0]},"inputSourceMap":{"version":3,"file":"/development/breautek/storm/src/JWTVerifyOptionsParser.ts","sources":["/development/breautek/storm/src/JWTVerifyOptionsParser.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAIb,MAAa,sBAAsB;IAC/B;QACI,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;IAClE,CAAC;IAGM,MAAM,CAAC,KAAK,CAAC,OAA0B;QAC1C,IAAI,IAAI,GAAQ,EAAE,CAAC;QAEnB,IAAI,OAAO,CAAC,gBAAgB,KAAK,SAAS,EAAE;YACxC,IAAI,CAAC,gBAAgB,GAAG,CAAC,OAAO,CAAC,gBAAgB,CAAC;SACrD;QAED,OAAO,IAAI,CAAC;IAChB,CAAC;CACJ;AAfD,wDAeC","sourcesContent":["'use strict';\r\n\r\nimport {IJWTVerifyOptions} from './IJWTVerifyOptions';\r\n\r\nexport class JWTVerifyOptionsParser {\r\n constructor() {\r\n throw new Error('JWTVerifyOptionsParser is an static class.');\r\n }\r\n\r\n // Parses IJWTVerifyOptions to jwt options\r\n public static parse(options: IJWTVerifyOptions): any {\r\n let opts: any = {};\r\n\r\n if (options.enableExpiration !== undefined) {\r\n opts.ignoreExpiration = !options.enableExpiration;\r\n }\r\n\r\n return opts;\r\n }\r\n}\r\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"3e19fb834a98dbc7d08f44cb2371ad13f9edf1a6","contentHash":"f9a1342883173dfe160f88ec64b0cef687feb458867d405dad98291fa32eaa11"},"/development/breautek/storm/src/api.ts":{"path":"/development/breautek/storm/src/api.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":3,"column":17},"end":{"line":3,"column":38}},"2":{"start":{"line":4,"column":0},"end":{"line":4,"column":45}},"3":{"start":{"line":5,"column":0},"end":{"line":5,"column":63}},"4":{"start":{"line":6,"column":20},"end":{"line":6,"column":44}},"5":{"start":{"line":7,"column":0},"end":{"line":7,"column":48}},"6":{"start":{"line":8,"column":21},"end":{"line":8,"column":46}},"7":{"start":{"line":9,"column":0},"end":{"line":9,"column":51}},"8":{"start":{"line":10,"column":17},"end":{"line":10,"column":38}},"9":{"start":{"line":11,"column":0},"end":{"line":11,"column":39}},"10":{"start":{"line":12,"column":27},"end":{"line":12,"column":58}},"11":{"start":{"line":13,"column":0},"end":{"line":13,"column":69}},"12":{"start":{"line":14,"column":22},"end":{"line":14,"column":48}},"13":{"start":{"line":15,"column":0},"end":{"line":15,"column":54}},"14":{"start":{"line":16,"column":24},"end":{"line":16,"column":52}},"15":{"start":{"line":17,"column":0},"end":{"line":17,"column":60}},"16":{"start":{"line":18,"column":34},"end":{"line":18,"column":72}},"17":{"start":{"line":19,"column":0},"end":{"line":19,"column":90}},"18":{"start":{"line":20,"column":14},"end":{"line":20,"column":32}},"19":{"start":{"line":21,"column":0},"end":{"line":21,"column":30}},"20":{"start":{"line":22,"column":18},"end":{"line":22,"column":40}},"21":{"start":{"line":23,"column":0},"end":{"line":23,"column":42}},"22":{"start":{"line":24,"column":19},"end":{"line":24,"column":42}},"23":{"start":{"line":25,"column":0},"end":{"line":25,"column":45}},"24":{"start":{"line":26,"column":30},"end":{"line":26,"column":64}},"25":{"start":{"line":27,"column":0},"end":{"line":27,"column":78}},"26":{"start":{"line":28,"column":32},"end":{"line":28,"column":68}},"27":{"start":{"line":29,"column":0},"end":{"line":29,"column":84}},"28":{"start":{"line":30,"column":22},"end":{"line":30,"column":48}},"29":{"start":{"line":31,"column":0},"end":{"line":31,"column":54}},"30":{"start":{"line":32,"column":26},"end":{"line":32,"column":56}},"31":{"start":{"line":33,"column":0},"end":{"line":33,"column":66}},"32":{"start":{"line":34,"column":26},"end":{"line":34,"column":56}},"33":{"start":{"line":35,"column":0},"end":{"line":35,"column":66}},"34":{"start":{"line":36,"column":32},"end":{"line":36,"column":68}},"35":{"start":{"line":37,"column":0},"end":{"line":37,"column":84}},"36":{"start":{"line":38,"column":28},"end":{"line":38,"column":60}},"37":{"start":{"line":39,"column":0},"end":{"line":39,"column":72}},"38":{"start":{"line":40,"column":23},"end":{"line":40,"column":50}},"39":{"start":{"line":41,"column":0},"end":{"line":41,"column":57}},"40":{"start":{"line":42,"column":28},"end":{"line":42,"column":60}},"41":{"start":{"line":43,"column":0},"end":{"line":43,"column":72}},"42":{"start":{"line":44,"column":19},"end":{"line":44,"column":42}},"43":{"start":{"line":45,"column":0},"end":{"line":45,"column":45}},"44":{"start":{"line":46,"column":19},"end":{"line":46,"column":42}},"45":{"start":{"line":47,"column":0},"end":{"line":47,"column":45}},"46":{"start":{"line":48,"column":16},"end":{"line":48,"column":36}},"47":{"start":{"line":49,"column":0},"end":{"line":49,"column":36}},"48":{"start":{"line":50,"column":17},"end":{"line":50,"column":38}},"49":{"start":{"line":51,"column":0},"end":{"line":51,"column":39}},"50":{"start":{"line":52,"column":21},"end":{"line":52,"column":46}},"51":{"start":{"line":53,"column":0},"end":{"line":53,"column":51}},"52":{"start":{"line":54,"column":16},"end":{"line":54,"column":36}},"53":{"start":{"line":55,"column":0},"end":{"line":55,"column":36}},"54":{"start":{"line":56,"column":23},"end":{"line":56,"column":50}},"55":{"start":{"line":57,"column":0},"end":{"line":57,"column":57}},"56":{"start":{"line":58,"column":24},"end":{"line":58,"column":52}},"57":{"start":{"line":59,"column":0},"end":{"line":59,"column":60}},"58":{"start":{"line":60,"column":19},"end":{"line":60,"column":42}},"59":{"start":{"line":61,"column":0},"end":{"line":61,"column":45}},"60":{"start":{"line":62,"column":24},"end":{"line":62,"column":52}},"61":{"start":{"line":63,"column":0},"end":{"line":63,"column":60}},"62":{"start":{"line":64,"column":40},"end":{"line":64,"column":84}},"63":{"start":{"line":65,"column":0},"end":{"line":65,"column":108}},"64":{"start":{"line":66,"column":14},"end":{"line":66,"column":32}},"65":{"start":{"line":67,"column":0},"end":{"line":67,"column":30}},"66":{"start":{"line":68,"column":21},"end":{"line":68,"column":46}},"67":{"start":{"line":69,"column":0},"end":{"line":69,"column":51}},"68":{"start":{"line":70,"column":33},"end":{"line":70,"column":70}},"69":{"start":{"line":71,"column":0},"end":{"line":71,"column":87}},"70":{"start":{"line":72,"column":17},"end":{"line":72,"column":38}},"71":{"start":{"line":73,"column":0},"end":{"line":73,"column":39}},"72":{"start":{"line":74,"column":17},"end":{"line":74,"column":38}},"73":{"start":{"line":75,"column":0},"end":{"line":75,"column":39}},"74":{"start":{"line":76,"column":15},"end":{"line":76,"column":34}},"75":{"start":{"line":77,"column":0},"end":{"line":77,"column":33}},"76":{"start":{"line":78,"column":20},"end":{"line":78,"column":44}},"77":{"start":{"line":79,"column":0},"end":{"line":79,"column":48}},"78":{"start":{"line":80,"column":25},"end":{"line":80,"column":54}},"79":{"start":{"line":81,"column":0},"end":{"line":81,"column":63}},"80":{"start":{"line":82,"column":19},"end":{"line":82,"column":42}},"81":{"start":{"line":83,"column":0},"end":{"line":83,"column":45}},"82":{"start":{"line":84,"column":19},"end":{"line":84,"column":40}},"83":{"start":{"line":85,"column":0},"end":{"line":85,"column":32}}},"fnMap":{},"branchMap":{},"s":{"0":1,"1":1,"2":1,"3":1,"4":1,"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"16":1,"17":1,"18":1,"19":1,"20":1,"21":1,"22":1,"23":1,"24":1,"25":1,"26":1,"27":1,"28":1,"29":1,"30":1,"31":1,"32":1,"33":1,"34":1,"35":1,"36":1,"37":1,"38":1,"39":1,"40":1,"41":1,"42":1,"43":1,"44":1,"45":1,"46":1,"47":1,"48":1,"49":1,"50":1,"51":1,"52":1,"53":1,"54":1,"55":1,"56":1,"57":1,"58":1,"59":1,"60":1,"61":1,"62":1,"63":1,"64":1,"65":1,"66":1,"67":1,"68":1,"69":1,"70":1,"71":1,"72":1,"73":1,"74":1,"75":1,"76":1,"77":1,"78":1,"79":1,"80":1,"81":1,"82":1,"83":1},"f":{},"b":{},"inputSourceMap":{"version":3,"file":"/development/breautek/storm/src/api.ts","sources":["/development/breautek/storm/src/api.ts"],"names":[],"mappings":";;AAgBA,uCAA6D;AAArD,iCAAA,WAAW,CAAA;AAAE,0CAAA,oBAAoB,CAAA;AACzC,6CAA0C;AAAlC,oCAAA,WAAW,CAAA;AAGnB,+CAA4C;AAApC,sCAAA,YAAY,CAAA;AAGpB,uCAAoC;AAA5B,8BAAA,QAAQ,CAAA;AAChB,2DAAwD;AAAhD,kDAAA,kBAAkB,CAAA;AAC1B,iDAA8C;AAAtC,wCAAA,aAAa,CAAA;AACrB,qDAAkD;AAA1C,4CAAA,eAAe,CAAA;AACvB,yEAAsE;AAA9D,gEAAA,yBAAyB,CAAA;AACjC,iCAA8B;AAAtB,wBAAA,KAAK,CAAA;AAGb,yCAAsC;AAA9B,gCAAA,SAAS,CAAA;AACjB,2CAIsB;AAHlB,kCAAA,UAAU,CAAA;AAId,iEAA8D;AAAtD,wDAAA,qBAAqB,CAAA;AAC7B,qEAAkE;AAA1D,4DAAA,uBAAuB,CAAA;AAC/B,iDAA8C;AAAtC,wCAAA,aAAa,CAAA;AACrB,yDAAsD;AAA9C,gDAAA,iBAAiB,CAAA;AACzB,yDAAsD;AAA9C,gDAAA,iBAAiB,CAAA;AACzB,qEAAkE;AAA1D,4DAAA,uBAAuB,CAAA;AAC/B,6DAA0D;AAAlD,oDAAA,mBAAmB,CAAA;AAC3B,mDAAgD;AAAxC,0CAAA,cAAc,CAAA;AACtB,6DAA0D;AAAlD,oDAAA,mBAAmB,CAAA;AAG3B,2CAAwC;AAAhC,kCAAA,UAAU,CAAA;AAClB,2CAAwC;AAAhC,kCAAA,UAAU,CAAA;AAClB,qCAAiD;AAAzC,4BAAA,OAAO,CAAA;AACf,uCAAoC;AAA5B,8BAAA,QAAQ,CAAA;AAChB,+CAA4C;AAApC,sCAAA,YAAY,CAAA;AACpB,qCAAkC;AAA1B,4BAAA,OAAO,CAAA;AACf,mDAAgD;AAAxC,0CAAA,cAAc,CAAA;AACtB,qDAAkD;AAA1C,4CAAA,eAAe,CAAA;AACvB,2CAAwC;AAAhC,kCAAA,UAAU,CAAA;AAClB,qDAAkD;AAA1C,4CAAA,eAAe,CAAA;AACvB,qFAAkF;AAA1E,4EAAA,+BAA+B,CAAA;AAcvC,iCAA8B;AAAtB,wBAAA,KAAK,CAAA;AACb,+CAA4C;AAApC,sCAAA,YAAY,CAAA;AACpB,uEAAoE;AAA5D,8DAAA,wBAAwB,CAAA;AAGhC,uCAAoC;AAA5B,8BAAA,QAAQ,CAAA;AAChB,uCAAoC;AAA5B,8BAAA,QAAQ,CAAA;AAChB,mCAAgC;AAAxB,0BAAA,MAAM,CAAA;AACd,6CAA0C;AAAlC,oCAAA,WAAW,CAAA;AACnB,uDAAoD;AAA5C,8CAAA,gBAAgB,CAAA;AACxB,2CAAwC;AAAhC,kCAAA,UAAU,CAAA;AAGlB,yCAAyC;AACjC,gCAAU","sourcesContent":["// Copyright (C) 2017 Norman Breau\r\n\r\n// This program is free software: you can redistribute it and/or modify\r\n// it under the terms of the GNU General Public License as published by\r\n// the Free Software Foundation, either version 3 of the License, or\r\n// (at your option) any later version.\r\n\r\n// This program is distributed in the hope that it will be useful,\r\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\r\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\r\n// GNU General Public License for more details.\r\n\r\n// You should have received a copy of the GNU General Public License\r\n// along with this program. If not, see <http://www.gnu.org/licenses/>.\r\n\r\n// Application\r\nexport {getInstance, getApplicationLogger} from './instance';\r\nexport {Application} from './Application';\r\n\r\n// Config\r\nexport {ConfigLoader} from './ConfigLoader';\r\n\r\n// Database\r\nexport {Database} from './Database';\r\nexport {DatabaseConnection} from './DatabaseConnection';\r\nexport {MySQLDatabase} from './MySQLDatabase';\r\nexport {MySQLConnection} from './MySQLConnection';\r\nexport {ManagedDatabaseConnection} from './ManagedDatabaseConnection';\r\nexport {Query} from './Query';\r\n\r\n// Errors\r\nexport {ErrorCode} from './ErrorCode';\r\nexport {\r\n StormError,\r\n IErrorResponse,\r\n IAdditionalErrorDetails\r\n} from './StormError';\r\nexport {MissingParameterError} from './MissingParameterError';\r\nexport {InvalidCredentialsError} from './InvalidCredentialsError';\r\nexport {InternalError} from './InternalError';\r\nexport {ExpiredTokenError} from './ExpiredTokenError';\r\nexport {InvalidValueError} from './InvalidValueError';\r\nexport {UnauthorizedAccessError} from './UnauthorizedAccessError';\r\nexport {EntityNotFoundError} from './EntityNotFoundError';\r\nexport {DiskSpaceError} from './DiskSpaceError';\r\nexport {DuplicateEntryError} from './DuplicateEntryError';\r\n\r\n// HTTP\r\nexport {StatusCode} from './StatusCode';\r\nexport {Middleware} from './Middleware';\r\nexport {Request, IParameterMap} from './Request';\r\nexport {Response} from './Response';\r\nexport {ResponseData} from './ResponseData';\r\nexport {Handler} from './Handler';\r\nexport {CORSMiddleware} from './CORSMiddleware';\r\nexport {ServiceProvider} from './ServiceProvider';\r\nexport {HTTPMethod} from './HTTPMethod';\r\nexport {ServiceResponse} from './ServiceResponse';\r\nexport {BackendAuthenticationMiddleware} from './BackendAuthenticationMiddleware';\r\n\r\n// Interfaces\r\nexport {ILogEvent} from './ILogEvent';\r\nexport {IJWTVerifyOptions} from './IJWTVerifyOptions';\r\nexport {IHandler} from './IHandler';\r\nexport {IRequestResponse} from './IRequestResponse';\r\nexport {IConfig} from './IConfig';\r\nexport {IFormData} from './IFormData';\r\nexport {IDatabaseConnection} from './IDatabaseConnection';\r\nexport {IServiceHeaders} from './IServiceHeaders';\r\nexport {IQueryParameters} from './IQueryParameters';\r\n\r\n// Token\r\nexport {Token} from './Token';\r\nexport {TokenManager} from './TokenManager';\r\nexport {AuthenticationMiddleware} from './AuthenticationMiddleware';\r\n\r\n// Utils\r\nexport {ExitCode} from './ExitCode';\r\nexport {LogEvent} from './LogEvent';\r\nexport {Logger} from './Logger';\r\nexport {LogSeverity} from './LogSeverity';\r\nexport {LoggerMiddleware} from './LoggerMiddleware';\r\nexport {DumpStream} from './DumpStream';\r\n\r\n// Third-party\r\nimport * as formidable from 'formidable';\r\nexport {formidable};\r\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"6f2881c1aad1e0fa95516a920963f0c925c1fa93","contentHash":"05e4116cf9c9ae67f97d3498c1c1f5f26608b954eb9f865a09deb278b8111e30"},"/development/breautek/storm/src/MySQLDatabase.ts":{"path":"/development/breautek/storm/src/MySQLDatabase.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":3,"column":19},"end":{"line":3,"column":40}},"2":{"start":{"line":4,"column":26},"end":{"line":4,"column":54}},"3":{"start":{"line":5,"column":14},"end":{"line":5,"column":30}},"4":{"start":{"line":6,"column":19},"end":{"line":6,"column":40}},"5":{"start":{"line":9,"column":8},"end":{"line":9,"column":16}},"6":{"start":{"line":10,"column":8},"end":{"line":10,"column":49}},"7":{"start":{"line":13,"column":8},"end":{"line":13,"column":35}},"8":{"start":{"line":16,"column":8},"end":{"line":16,"column":95}},"9":{"start":{"line":17,"column":8},"end":{"line":17,"column":41}},"10":{"start":{"line":20,"column":8},"end":{"line":20,"column":97}},"11":{"start":{"line":21,"column":8},"end":{"line":21,"column":36}},"12":{"start":{"line":24,"column":8},"end":{"line":24,"column":92}},"13":{"start":{"line":25,"column":8},"end":{"line":34,"column":11}},"14":{"start":{"line":26,"column":36},"end":{"line":26,"column":53}},"15":{"start":{"line":27,"column":12},"end":{"line":33,"column":15}},"16":{"start":{"line":28,"column":16},"end":{"line":31,"column":17}},"17":{"start":{"line":29,"column":20},"end":{"line":29,"column":34}},"18":{"start":{"line":30,"column":20},"end":{"line":30,"column":27}},"19":{"start":{"line":32,"column":16},"end":{"line":32,"column":115}},"20":{"start":{"line":37,"column":0},"end":{"line":37,"column":38}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":8,"column":4},"end":{"line":8,"column":5}},"loc":{"start":{"line":8,"column":18},"end":{"line":11,"column":5}},"line":8},"1":{"name":"(anonymous_1)","decl":{"start":{"line":12,"column":4},"end":{"line":12,"column":5}},"loc":{"start":{"line":12,"column":18},"end":{"line":14,"column":5}},"line":12},"2":{"name":"(anonymous_2)","decl":{"start":{"line":15,"column":4},"end":{"line":15,"column":5}},"loc":{"start":{"line":15,"column":29},"end":{"line":18,"column":5}},"line":15},"3":{"name":"(anonymous_3)","decl":{"start":{"line":19,"column":4},"end":{"line":19,"column":5}},"loc":{"start":{"line":19,"column":24},"end":{"line":22,"column":5}},"line":19},"4":{"name":"(anonymous_4)","decl":{"start":{"line":23,"column":4},"end":{"line":23,"column":5}},"loc":{"start":{"line":23,"column":46},"end":{"line":35,"column":5}},"line":23},"5":{"name":"(anonymous_5)","decl":{"start":{"line":25,"column":27},"end":{"line":25,"column":28}},"loc":{"start":{"line":25,"column":48},"end":{"line":34,"column":9}},"line":25},"6":{"name":"(anonymous_6)","decl":{"start":{"line":27,"column":46},"end":{"line":27,"column":47}},"loc":{"start":{"line":27,"column":69},"end":{"line":33,"column":13}},"line":27}},"branchMap":{"0":{"loc":{"start":{"line":28,"column":16},"end":{"line":31,"column":17}},"type":"if","locations":[{"start":{"line":28,"column":16},"end":{"line":31,"column":17}},{"start":{"line":28,"column":16},"end":{"line":31,"column":17}}],"line":28}},"s":{"0":1,"1":1,"2":1,"3":1,"4":1,"5":7,"6":7,"7":1,"8":2,"9":2,"10":1,"11":1,"12":2,"13":2,"14":2,"15":2,"16":0,"17":0,"18":0,"19":0,"20":1},"f":{"0":7,"1":1,"2":2,"3":1,"4":2,"5":2,"6":0},"b":{"0":[0,0]},"inputSourceMap":{"version":3,"file":"/development/breautek/storm/src/MySQLDatabase.ts","sources":["/development/breautek/storm/src/MySQLDatabase.ts"],"names":[],"mappings":";;AAeA,yCAAoC;AACpC,uDAAkD;AAClD,+BAA+B;AAC/B,yCAAgD;AAEhD,MAAa,aAAc,SAAQ,mBAAQ;IAGvC;QACI,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,iBAAiB,EAAE,CAAC;IAC7C,CAAC;IAEM,MAAM,CAAC,KAAa;QACvB,OAAO,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC/B,CAAC;IAES,QAAQ,CAAC,MAAc,EAAE,MAAwB;QACvD,+BAAoB,EAAE,CAAC,KAAK,CAAC,oCAAoC,MAAM,GAAG,CAAC,CAAC;QAC5E,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACrC,CAAC;IAES,WAAW,CAAC,MAAc;QAChC,+BAAoB,EAAE,CAAC,KAAK,CAAC,sCAAsC,MAAM,GAAG,CAAC,CAAC;QAC9E,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAChC,CAAC;IAES,cAAc,CAAC,KAAa,EAAE,kBAA2B;QAC/D,+BAAoB,EAAE,CAAC,KAAK,CAAC,iCAAiC,KAAK,IAAI,CAAC,CAAC;QACzE,OAAO,IAAI,OAAO,CAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACpD,IAAI,iBAAiB,GAAW,IAAI,KAAK,EAAE,CAAC,KAAK,CAAC;YAClD,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC,KAAuB,EAAE,UAAgC,EAAE,EAAE;gBAC5F,IAAI,KAAK,EAAE;oBACP,MAAM,CAAC,KAAK,CAAC,CAAC;oBACd,OAAO;iBACV;gBAED,OAAO,CAAC,IAAI,iCAAe,CAAC,UAAU,EAAE,iBAAiB,EAAE,CAAC,kBAAkB,CAAC,CAAC,CAAC;YACrF,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;IACP,CAAC;CACJ;AApCD,sCAoCC","sourcesContent":["// Copyright (C) 2017 Norman Breau\r\n\r\n// This program is free software: you can redistribute it and/or modify\r\n// it under the terms of the GNU General Public License as published by\r\n// the Free Software Foundation, either version 3 of the License, or\r\n// (at your option) any later version.\r\n\r\n// This program is distributed in the hope that it will be useful,\r\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\r\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\r\n// GNU General Public License for more details.\r\n\r\n// You should have received a copy of the GNU General Public License\r\n// along with this program. If not, see <http://www.gnu.org/licenses/>.\r\n\r\nimport {Database} from './Database';\r\nimport {MySQLConnection} from './MySQLConnection';\r\nimport * as MySQL from 'mysql';\r\nimport {getApplicationLogger} from './instance';\r\n\r\nexport class MySQLDatabase extends Database {\r\n private cluster: MySQL.PoolCluster;\r\n\r\n constructor() {\r\n super();\r\n this.cluster = MySQL.createPoolCluster();\r\n }\r\n\r\n public escape(query: string): string {\r\n return MySQL.escape(query);\r\n }\r\n\r\n protected _addNode(nodeID: string, config: MySQL.PoolConfig): void {\r\n getApplicationLogger().trace(`Adding node to connection pool: \"${nodeID}\"`);\r\n this.cluster.add(nodeID, config);\r\n }\r\n\r\n protected _removeNode(nodeID: string): void {\r\n getApplicationLogger().trace(`Removing node to connection pool: \"${nodeID}\"`);\r\n this.cluster.remove(nodeID);\r\n }\r\n\r\n protected _getConnection(query: string, requireWriteAccess: boolean): Promise<MySQLConnection> {\r\n getApplicationLogger().trace(`Querying connection pool for \"${query}\".`);\r\n return new Promise<MySQLConnection>((resolve, reject) => {\r\n let instantationStack: string = new Error().stack;\r\n this.cluster.getConnection(query, (error: MySQL.MysqlError, connection: MySQL.PoolConnection) => {\r\n if (error) {\r\n reject(error);\r\n return;\r\n }\r\n\r\n resolve(new MySQLConnection(connection, instantationStack, !requireWriteAccess));\r\n });\r\n });\r\n }\r\n}\r\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"919dd28caa5b794b7ffdbc8752fa4715f90d1083","contentHash":"d9c7016cb8816d652a7993bbded94ed9998faaab87ea38dec771b7764b1be448"},"/development/breautek/storm/src/MySQLConnection.ts":{"path":"/development/breautek/storm/src/MySQLConnection.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":3,"column":29},"end":{"line":3,"column":60}},"2":{"start":{"line":4,"column":29},"end":{"line":4,"column":60}},"3":{"start":{"line":5,"column":19},"end":{"line":5,"column":40}},"4":{"start":{"line":6,"column":32},"end":{"line":6,"column":74}},"5":{"start":{"line":7,"column":22},"end":{"line":7,"column":54}},"6":{"start":{"line":8,"column":24},"end":{"line":8,"column":58}},"7":{"start":{"line":9,"column":31},"end":{"line":9,"column":34}},"8":{"start":{"line":10,"column":30},"end":{"line":10,"column":81}},"9":{"start":{"line":11,"column":20},"end":{"line":11,"column":51}},"10":{"start":{"line":12,"column":22},"end":{"line":12,"column":57}},"11":{"start":{"line":15,"column":8},"end":{"line":15,"column":58}},"12":{"start":{"line":16,"column":8},"end":{"line":16,"column":28}},"13":{"start":{"line":17,"column":8},"end":{"line":17,"column":33}},"14":{"start":{"line":18,"column":8},"end":{"line":27,"column":10}},"15":{"start":{"line":19,"column":12},"end":{"line":20,"column":29}},"16":{"start":{"line":20,"column":16},"end":{"line":20,"column":29}},"17":{"start":{"line":21,"column":12},"end":{"line":26,"column":26}},"18":{"start":{"line":22,"column":16},"end":{"line":24,"column":17}},"19":{"start":{"line":23,"column":20},"end":{"line":23,"column":52}},"20":{"start":{"line":25,"column":16},"end":{"line":25,"column":27}},"21":{"start":{"line":30,"column":8},"end":{"line":30,"column":32}},"22":{"start":{"line":33,"column":8},"end":{"line":33,"column":28}},"23":{"start":{"line":36,"column":8},"end":{"line":47,"column":11}},"24":{"start":{"line":37,"column":30},"end":{"line":45,"column":14}},"25":{"start":{"line":41,"column":16},"end":{"line":43,"column":17}},"26":{"start":{"line":42,"column":20},"end":{"line":42,"column":103}},"27":{"start":{"line":44,"column":16},"end":{"line":44,"column":40}},"28":{"start":{"line":46,"column":12},"end":{"line":46,"column":69}},"29":{"start":{"line":50,"column":8},"end":{"line":52,"column":9}},"30":{"start":{"line":51,"column":12},"end":{"line":51,"column":31}},"31":{"start":{"line":53,"column":8},"end":{"line":55,"column":9}},"32":{"start":{"line":54,"column":12},"end":{"line":54,"column":65}},"33":{"start":{"line":56,"column":28},"end":{"line":59,"column":18}},"34":{"start":{"line":60,"column":8},"end":{"line":60,"column":65}},"35":{"start":{"line":61,"column":8},"end":{"line":61,"column":49}},"36":{"start":{"line":64,"column":8},"end":{"line":66,"column":9}},"37":{"start":{"line":65,"column":12},"end":{"line":65,"column":98}},"38":{"start":{"line":67,"column":8},"end":{"line":69,"column":9}},"39":{"start":{"line":68,"column":12},"end":{"line":68,"column":88}},"40":{"start":{"line":70,"column":8},"end":{"line":70,"column":32}},"41":{"start":{"line":71,"column":8},"end":{"line":79,"column":11}},"42":{"start":{"line":72,"column":12},"end":{"line":78,"column":15}},"43":{"start":{"line":73,"column":16},"end":{"line":73,"column":26}},"44":{"start":{"line":75,"column":16},"end":{"line":75,"column":41}},"45":{"start":{"line":76,"column":16},"end":{"line":76,"column":60}},"46":{"start":{"line":77,"column":16},"end":{"line":77,"column":27}},"47":{"start":{"line":82,"column":8},"end":{"line":82,"column":68}},"48":{"start":{"line":85,"column":8},"end":{"line":87,"column":9}},"49":{"start":{"line":86,"column":12},"end":{"line":86,"column":101}},"50":{"start":{"line":88,"column":8},"end":{"line":96,"column":11}},"51":{"start":{"line":89,"column":12},"end":{"line":95,"column":15}},"52":{"start":{"line":90,"column":16},"end":{"line":90,"column":41}},"53":{"start":{"line":91,"column":16},"end":{"line":91,"column":26}},"54":{"start":{"line":93,"column":16},"end":{"line":93,"column":60}},"55":{"start":{"line":94,"column":16},"end":{"line":94,"column":27}},"56":{"start":{"line":99,"column":8},"end":{"line":101,"column":9}},"57":{"start":{"line":100,"column":12},"end":{"line":100,"column":99}},"58":{"start":{"line":102,"column":8},"end":{"line":110,"column":11}},"59":{"start":{"line":103,"column":12},"end":{"line":109,"column":15}},"60":{"start":{"line":104,"column":16},"end":{"line":104,"column":41}},"61":{"start":{"line":105,"column":16},"end":{"line":105,"column":26}},"62":{"start":{"line":107,"column":16},"end":{"line":107,"column":60}},"63":{"start":{"line":108,"column":16},"end":{"line":108,"column":27}},"64":{"start":{"line":113,"column":8},"end":{"line":115,"column":9}},"65":{"start":{"line":114,"column":12},"end":{"line":114,"column":142}},"66":{"start":{"line":116,"column":8},"end":{"line":116,"column":29}},"67":{"start":{"line":117,"column":8},"end":{"line":138,"column":11}},"68":{"start":{"line":118,"column":34},"end":{"line":118,"column":38}},"69":{"start":{"line":119,"column":12},"end":{"line":129,"column":13}},"70":{"start":{"line":120,"column":16},"end":{"line":125,"column":17}},"71":{"start":{"line":121,"column":20},"end":{"line":121,"column":54}},"72":{"start":{"line":124,"column":20},"end":{"line":124,"column":56}},"73":{"start":{"line":128,"column":16},"end":{"line":128,"column":52}},"74":{"start":{"line":130,"column":12},"end":{"line":137,"column":15}},"75":{"start":{"line":131,"column":16},"end":{"line":131,"column":40}},"76":{"start":{"line":132,"column":16},"end":{"line":132,"column":26}},"77":{"start":{"line":134,"column":16},"end":{"line":134,"column":66}},"78":{"start":{"line":135,"column":16},"end":{"line":135,"column":40}},"79":{"start":{"line":136,"column":16},"end":{"line":136,"column":26}},"80":{"start":{"line":141,"column":0},"end":{"line":141,"column":42}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":14,"column":4},"end":{"line":14,"column":5}},"loc":{"start":{"line":14,"column":67},"end":{"line":28,"column":5}},"line":14},"1":{"name":"(anonymous_1)","decl":{"start":{"line":18,"column":40},"end":{"line":18,"column":41}},"loc":{"start":{"line":18,"column":65},"end":{"line":27,"column":9}},"line":18},"2":{"name":"(anonymous_2)","decl":{"start":{"line":21,"column":44},"end":{"line":21,"column":45}},"loc":{"start":{"line":21,"column":64},"end":{"line":26,"column":13}},"line":21},"3":{"name":"(anonymous_3)","decl":{"start":{"line":29,"column":4},"end":{"line":29,"column":5}},"loc":{"start":{"line":29,"column":20},"end":{"line":31,"column":5}},"line":29},"4":{"name":"(anonymous_4)","decl":{"start":{"line":32,"column":4},"end":{"line":32,"column":5}},"loc":{"start":{"line":32,"column":13},"end":{"line":34,"column":5}},"line":32},"5":{"name":"(anonymous_5)","decl":{"start":{"line":35,"column":4},"end":{"line":35,"column":5}},"loc":{"start":{"line":35,"column":26},"end":{"line":48,"column":5}},"line":35},"6":{"name":"(anonymous_6)","decl":{"start":{"line":36,"column":27},"end":{"line":36,"column":28}},"loc":{"start":{"line":36,"column":48},"end":{"line":47,"column":9}},"line":36},"7":{"name":"(anonymous_7)","decl":{"start":{"line":40,"column":23},"end":{"line":40,"column":24}},"loc":{"start":{"line":40,"column":43},"end":{"line":45,"column":13}},"line":40},"8":{"name":"(anonymous_8)","decl":{"start":{"line":49,"column":4},"end":{"line":49,"column":5}},"loc":{"start":{"line":49,"column":42},"end":{"line":62,"column":5}},"line":49},"9":{"name":"(anonymous_9)","decl":{"start":{"line":63,"column":4},"end":{"line":63,"column":5}},"loc":{"start":{"line":63,"column":23},"end":{"line":80,"column":5}},"line":63},"10":{"name":"(anonymous_10)","decl":{"start":{"line":71,"column":27},"end":{"line":71,"column":28}},"loc":{"start":{"line":71,"column":48},"end":{"line":79,"column":9}},"line":71},"11":{"name":"(anonymous_11)","decl":{"start":{"line":72,"column":51},"end":{"line":72,"column":52}},"loc":{"start":{"line":72,"column":57},"end":{"line":74,"column":13}},"line":72},"12":{"name":"(anonymous_12)","decl":{"start":{"line":74,"column":21},"end":{"line":74,"column":22}},"loc":{"start":{"line":74,"column":29},"end":{"line":78,"column":13}},"line":74},"13":{"name":"(anonymous_13)","decl":{"start":{"line":81,"column":4},"end":{"line":81,"column":5}},"loc":{"start":{"line":81,"column":45},"end":{"line":83,"column":5}},"line":81},"14":{"name":"(anonymous_14)","decl":{"start":{"line":84,"column":4},"end":{"line":84,"column":5}},"loc":{"start":{"line":84,"column":15},"end":{"line":97,"column":5}},"line":84},"15":{"name":"(anonymous_15)","decl":{"start":{"line":88,"column":27},"end":{"line":88,"column":28}},"loc":{"start":{"line":88,"column":48},"end":{"line":96,"column":9}},"line":88},"16":{"name":"(anonymous_16)","decl":{"start":{"line":89,"column":43},"end":{"line":89,"column":44}},"loc":{"start":{"line":89,"column":49},"end":{"line":92,"column":13}},"line":89},"17":{"name":"(anonymous_17)","decl":{"start":{"line":92,"column":21},"end":{"line":92,"column":22}},"loc":{"start":{"line":92,"column":29},"end":{"line":95,"column":13}},"line":92},"18":{"name":"(anonymous_18)","decl":{"start":{"line":98,"column":4},"end":{"line":98,"column":5}},"loc":{"start":{"line":98,"column":13},"end":{"line":111,"column":5}},"line":98},"19":{"name":"(anonymous_19)","decl":{"start":{"line":102,"column":27},"end":{"line":102,"column":28}},"loc":{"start":{"line":102,"column":48},"end":{"line":110,"column":9}},"line":102},"20":{"name":"(anonymous_20)","decl":{"start":{"line":103,"column":41},"end":{"line":103,"column":42}},"loc":{"start":{"line":103,"column":47},"end":{"line":106,"column":13}},"line":103},"21":{"name":"(anonymous_21)","decl":{"start":{"line":106,"column":21},"end":{"line":106,"column":22}},"loc":{"start":{"line":106,"column":29},"end":{"line":109,"column":13}},"line":106},"22":{"name":"(anonymous_22)","decl":{"start":{"line":112,"column":4},"end":{"line":112,"column":5}},"loc":{"start":{"line":112,"column":23},"end":{"line":139,"column":5}},"line":112},"23":{"name":"(anonymous_23)","decl":{"start":{"line":117,"column":27},"end":{"line":117,"column":28}},"loc":{"start":{"line":117,"column":48},"end":{"line":138,"column":9}},"line":117},"24":{"name":"(anonymous_24)","decl":{"start":{"line":130,"column":33},"end":{"line":130,"column":34}},"loc":{"start":{"line":130,"column":39},"end":{"line":133,"column":13}},"line":130},"25":{"name":"(anonymous_25)","decl":{"start":{"line":133,"column":21},"end":{"line":133,"column":22}},"loc":{"start":{"line":133,"column":32},"end":{"line":137,"column":13}},"line":133}},"branchMap":{"0":{"loc":{"start":{"line":14,"column":48},"end":{"line":14,"column":65}},"type":"default-arg","locations":[{"start":{"line":14,"column":61},"end":{"line":14,"column":65}}],"line":14},"1":{"loc":{"start":{"line":19,"column":12},"end":{"line":20,"column":29}},"type":"if","locations":[{"start":{"line":19,"column":12},"end":{"line":20,"column":29}},{"start":{"line":19,"column":12},"end":{"line":20,"column":29}}],"line":19},"2":{"loc":{"start":{"line":22,"column":16},"end":{"line":24,"column":17}},"type":"if","locations":[{"start":{"line":22,"column":16},"end":{"line":24,"column":17}},{"start":{"line":22,"column":16},"end":{"line":24,"column":17}}],"line":22},"3":{"loc":{"start":{"line":41,"column":16},"end":{"line":43,"column":17}},"type":"if","locations":[{"start":{"line":41,"column":16},"end":{"line":43,"column":17}},{"start":{"line":41,"column":16},"end":{"line":43,"column":17}}],"line":41},"4":{"loc":{"start":{"line":50,"column":8},"end":{"line":52,"column":9}},"type":"if","locations":[{"start":{"line":50,"column":8},"end":{"line":52,"column":9}},{"start":{"line":50,"column":8},"end":{"line":52,"column":9}}],"line":50},"5":{"loc":{"start":{"line":53,"column":8},"end":{"line":55,"column":9}},"type":"if","locations":[{"start":{"line":53,"column":8},"end":{"line":55,"column":9}},{"start":{"line":53,"column":8},"end":{"line":55,"column":9}}],"line":53},"6":{"loc":{"start":{"line":64,"column":8},"end":{"line":66,"column":9}},"type":"if","locations":[{"start":{"line":64,"column":8},"end":{"line":66,"column":9}},{"start":{"line":64,"column":8},"end":{"line":66,"column":9}}],"line":64},"7":{"loc":{"start":{"line":67,"column":8},"end":{"line":69,"column":9}},"type":"if","locations":[{"start":{"line":67,"column":8},"end":{"line":69,"column":9}},{"start":{"line":67,"column":8},"end":{"line":69,"column":9}}],"line":67},"8":{"loc":{"start":{"line":81,"column":19},"end":{"line":81,"column":43}},"type":"default-arg","locations":[{"start":{"line":81,"column":38},"end":{"line":81,"column":43}}],"line":81},"9":{"loc":{"start":{"line":82,"column":15},"end":{"line":82,"column":67}},"type":"cond-expr","locations":[{"start":{"line":82,"column":36},"end":{"line":82,"column":51}},{"start":{"line":82,"column":54},"end":{"line":82,"column":67}}],"line":82},"10":{"loc":{"start":{"line":85,"column":8},"end":{"line":87,"column":9}},"type":"if","locations":[{"start":{"line":85,"column":8},"end":{"line":87,"column":9}},{"start":{"line":85,"column":8},"end":{"line":87,"column":9}}],"line":85},"11":{"loc":{"start":{"line":99,"column":8},"end":{"line":101,"column":9}},"type":"if","locations":[{"start":{"line":99,"column":8},"end":{"line":101,"column":9}},{"start":{"line":99,"column":8},"end":{"line":101,"column":9}}],"line":99},"12":{"loc":{"start":{"line":113,"column":8},"end":{"line":115,"column":9}},"type":"if","locations":[{"start":{"line":113,"column":8},"end":{"line":115,"column":9}},{"start":{"line":113,"column":8},"end":{"line":115,"column":9}}],"line":113},"13":{"loc":{"start":{"line":113,"column":12},"end":{"line":113,"column":47}},"type":"binary-expr","locations":[{"start":{"line":113,"column":12},"end":{"line":113,"column":23}},{"start":{"line":113,"column":27},"end":{"line":113,"column":47}}],"line":113},"14":{"loc":{"start":{"line":119,"column":12},"end":{"line":129,"column":13}},"type":"if","locations":[{"start":{"line":119,"column":12},"end":{"line":129,"column":13}},{"start":{"line":119,"column":12},"end":{"line":129,"column":13}}],"line":119},"15":{"loc":{"start":{"line":120,"column":16},"end":{"line":125,"column":17}},"type":"if","locations":[{"start":{"line":120,"column":16},"end":{"line":125,"column":17}},{"start":{"line":120,"column":16},"end":{"line":125,"column":17}}],"line":120}},"s":{"0":1,"1":1,"2":1,"3":1,"4":1,"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":39,"12":39,"13":39,"14":39,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":31,"22":1,"23":18,"24":18,"25":18,"26":5,"27":13,"28":18,"29":2,"30":1,"31":2,"32":2,"33":2,"34":2,"35":2,"36":12,"37":1,"38":11,"39":1,"40":10,"41":10,"42":10,"43":9,"44":1,"45":1,"46":1,"47":2,"48":5,"49":1,"50":4,"51":4,"52":2,"53":2,"54":2,"55":2,"56":3,"57":1,"58":2,"59":2,"60":1,"61":1,"62":1,"63":1,"64":5,"65":1,"66":4,"67":4,"68":4,"69":4,"70":3,"71":2,"72":1,"73":1,"74":4,"75":3,"76":3,"77":1,"78":1,"79":1,"80":1},"f":{"0":39,"1":0,"2":0,"3":31,"4":1,"5":18,"6":18,"7":18,"8":2,"9":12,"10":10,"11":9,"12":1,"13":2,"14":5,"15":4,"16":2,"17":2,"18":3,"19":2,"20":1,"21":1,"22":5,"23":4,"24":3,"25":1},"b":{"0":[25],"1":[0,0],"2":[0,0],"3":[5,13],"4":[1,1],"5":[2,0],"6":[1,11],"7":[1,10],"8":[1],"9":[1,1],"10":[1,4],"11":[1,2],"12":[1,4],"13":[5,2],"14":[3,1],"15":[2,1]},"inputSourceMap":{"version":3,"file":"/development/breautek/storm/src/MySQLConnection.ts","sources":["/development/breautek/storm/src/MySQLConnection.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (C) 2017 Norman Breau\r\n\r\n// This program is free software: you can redistribute it and/or modify\r\n// it under the terms of the GNU General Public License as published by\r\n// the Free Software Foundation, either version 3 of the License, or\r\n// (at your option) any later version.\r\n\r\n// This program is distributed in the hope that it will be useful,\r\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\r\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\r\n// GNU General Public License for more details.\r\n\r\n// You should have received a copy of the GNU General Public License\r\n// along with this program. If not, see <http://www.gnu.org/licenses/>.\r\n\r\nimport {DatabaseConnection} from './DatabaseConnection';\r\nimport {DatabaseQueryError} from './DatabaseQueryError';\r\nimport {getInstance, getApplicationLogger} from './instance';\r\nimport * as MySQL from 'mysql';\r\nimport {Readable} from 'stream';\r\nimport {Query} from './Query';\r\nimport { StartTransactionQuery } from './private/StartTransactionQuery';\r\nimport { CommitQuery } from './private/CommitQuery';\r\nimport { RollbackQuery } from './private/RollbackQuery';\r\n\r\nconst DEFAULT_HIGH_WATERMARK: number = 512; // in number of result objects\r\n\r\nconst startTransactionQuery: Query = new StartTransactionQuery();\r\nconst commitQuery: Query = new CommitQuery();\r\nconst rollbackQuery: Query = new RollbackQuery();\r\n\r\nexport class MySQLConnection extends DatabaseConnection {\r\n private transaction: boolean;\r\n private _opened: boolean;\r\n\r\n public constructor(connection: MySQL.PoolConnection, instantiationStack: string, isReadOnly: boolean = true) {\r\n super(connection, isReadOnly, instantiationStack);\r\n\r\n this._opened = true;\r\n this.transaction = false;\r\n\r\n connection.config.queryFormat = function(query: string, values: any) {\r\n if (!values) return query;\r\n\r\n return query.replace(/:(\\w+)/g, function(this: any, txt: string, key: string): string {\r\n // eslint-disable-next-line no-prototype-builtins\r\n if (values.hasOwnProperty(key)) {\r\n return this.escape(values[key]);\r\n }\r\n return txt;\r\n }.bind(this));\r\n };\r\n }\r\n\r\n public isTransaction(): boolean {\r\n return this.transaction;\r\n }\r\n\r\n public isOpen(): boolean {\r\n return this._opened;\r\n }\r\n\r\n protected _query(query: string, params?: any): Promise<any> {\r\n return new Promise((resolve, reject) => {\r\n let queryObject: MySQL.Query = this.getAPI().query({\r\n sql: query,\r\n timeout: this.getTimeout()\r\n }, params, (error: MySQL.MysqlError, results: any) => {\r\n if (error) {\r\n return reject(new DatabaseQueryError(queryObject.sql, error));\r\n }\r\n\r\n return resolve(results);\r\n });\r\n getApplicationLogger().trace(queryObject.sql);\r\n });\r\n }\r\n\r\n protected _stream(query: string, params?: any, streamOptions?: any): Readable {\r\n if (!streamOptions) {\r\n streamOptions = {};\r\n }\r\n\r\n if (!streamOptions.highWatermark) {\r\n streamOptions.highWatermark = DEFAULT_HIGH_WATERMARK;\r\n }\r\n\r\n const queryObject: MySQL.Query = this.getAPI().query({\r\n sql: query,\r\n timeout: this.getTimeout()\r\n }, params);\r\n\r\n getApplicationLogger().trace(queryObject.sql);\r\n\r\n return queryObject.stream(streamOptions);\r\n }\r\n\r\n public startTransaction(): Promise<void> {\r\n if (this.isReadOnly()) {\r\n return Promise.reject(new Error('A readonly connection cannot start a transaction.'));\r\n }\r\n\r\n if (this.isTransaction()) {\r\n return Promise.reject(new Error('Connection is already in a transaction.'));\r\n }\r\n\r\n this.transaction = true;\r\n\r\n return new Promise<void>((resolve, reject) => {\r\n this.query(startTransactionQuery).then(() => {\r\n resolve();\r\n }).catch((ex) => {\r\n this.transaction = false;\r\n getApplicationLogger().error(ex);\r\n reject(ex);\r\n });\r\n });\r\n }\r\n\r\n public endTransaction(requiresRollback: boolean = false): Promise<void> {\r\n return (requiresRollback) ? this.rollback() : this.commit();\r\n }\r\n\r\n public rollback(): Promise<void> {\r\n if (!this.isTransaction()) {\r\n return Promise.reject(new Error('Cannot rollback when there is no active transaction.'));\r\n }\r\n\r\n return new Promise<void>((resolve, reject) => {\r\n this.query(rollbackQuery).then(() => {\r\n this.transaction = false\r\n resolve();\r\n }).catch((ex: any) => {\r\n getApplicationLogger().error(ex);\r\n reject(ex);\r\n });\r\n });\r\n }\r\n\r\n public commit(): Promise<void> {\r\n if (!this.isTransaction()) {\r\n return Promise.reject(new Error('Cannot commit when there is no active transaction.'));\r\n }\r\n\r\n return new Promise<void>((resolve, reject) => {\r\n this.query(commitQuery).then(() => {\r\n this.transaction = false;\r\n resolve();\r\n }).catch((ex: any) => {\r\n getApplicationLogger().error(ex);\r\n reject(ex);\r\n });\r\n });\r\n }\r\n\r\n protected _close(forceClose: boolean): Promise<void> {\r\n if (!forceClose && this.isTransaction()) {\r\n return Promise.reject(new Error('Cannot close a connection while there is an active transaction. Use commit or rollback first.'));\r\n }\r\n\r\n this._opened = false;\r\n \r\n return new Promise<void>((resolve, reject) => {\r\n let rollbackPromise: Promise<void> = null;\r\n if (forceClose) {\r\n if (this.isTransaction()) {\r\n rollbackPromise = this.rollback();\r\n }\r\n else {\r\n rollbackPromise = Promise.resolve();\r\n }\r\n }\r\n else {\r\n rollbackPromise = Promise.resolve();\r\n }\r\n\r\n rollbackPromise.then(() => {\r\n this.getAPI().release();\r\n resolve();\r\n }).catch((error: any) => {\r\n getInstance().getLogger().error(error);\r\n this.getAPI().release();\r\n resolve();\r\n });\r\n });\r\n }\r\n}\r\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"138af2d0aa5bd2902474e6e227629b1316641592","contentHash":"2a34c7086047a87179635419284bd165915c058260c946cade5ebe179369e2b0"},"/development/breautek/storm/src/DatabaseQueryError.ts":{"path":"/development/breautek/storm/src/DatabaseQueryError.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":3,"column":21},"end":{"line":3,"column":44}},"2":{"start":{"line":4,"column":21},"end":{"line":4,"column":44}},"3":{"start":{"line":7,"column":8},"end":{"line":10,"column":11}},"4":{"start":{"line":13,"column":8},"end":{"line":13,"column":39}},"5":{"start":{"line":16,"column":8},"end":{"line":16,"column":17}},"6":{"start":{"line":19,"column":8},"end":{"line":19,"column":54}},"7":{"start":{"line":22,"column":0},"end":{"line":22,"column":48}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":6,"column":4},"end":{"line":6,"column":5}},"loc":{"start":{"line":6,"column":30},"end":{"line":11,"column":5}},"line":6},"1":{"name":"(anonymous_1)","decl":{"start":{"line":12,"column":4},"end":{"line":12,"column":5}},"loc":{"start":{"line":12,"column":17},"end":{"line":14,"column":5}},"line":12},"2":{"name":"(anonymous_2)","decl":{"start":{"line":15,"column":4},"end":{"line":15,"column":5}},"loc":{"start":{"line":15,"column":14},"end":{"line":17,"column":5}},"line":15},"3":{"name":"(anonymous_3)","decl":{"start":{"line":18,"column":4},"end":{"line":18,"column":5}},"loc":{"start":{"line":18,"column":18},"end":{"line":20,"column":5}},"line":18}},"branchMap":{},"s":{"0":1,"1":1,"2":1,"3":6,"4":12,"5":6,"6":1,"7":1},"f":{"0":6,"1":12,"2":6,"3":1},"b":{},"inputSourceMap":{"version":3,"file":"/development/breautek/storm/src/DatabaseQueryError.ts","sources":["/development/breautek/storm/src/DatabaseQueryError.ts"],"names":[],"mappings":";;AACA,6CAAwC;AACxC,6CAAwC;AAExC,MAAa,kBAAmB,SAAQ,uBAAU;IAC9C,YAAmB,KAAa,EAAE,KAAU;QACxC,KAAK,CAAC;YACF,KAAK,EAAE,KAAK;YACZ,KAAK,EAAE,KAAK;SACf,CAAC,CAAC;IACP,CAAC;IAEM,UAAU;QACb,OAAO,uBAAuB,CAAC;IACnC,CAAC;IAEM,OAAO;QACV,OAAO,CAAC,CAAC;IACb,CAAC;IAEM,WAAW;QACd,OAAO,uBAAU,CAAC,cAAc,CAAC;IACrC,CAAC;CACJ;AAnBD,gDAmBC","sourcesContent":["\nimport {StormError} from './StormError';\nimport {StatusCode} from './StatusCode';\n\nexport class DatabaseQueryError extends StormError {\n public constructor(query: string, error: any) {\n super({\n query: query,\n error: error\n });\n }\n\n public getMessage(): string {\n return 'Internal Server Error';\n }\n\n public getCode(): number {\n return 0;\n }\n\n public getHTTPCode(): StatusCode {\n return StatusCode.INTERNAL_ERROR;\n }\n}\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"5d6f647d96d1bc721c635017b75c3fb5e31dcc00","contentHash":"8a0b90b023fa1e2d96f32ee80bbc3e4754951af75d107d0cf0177a4becf48276"},"/development/breautek/storm/src/private/StartTransactionQuery.ts":{"path":"/development/breautek/storm/src/private/StartTransactionQuery.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":3,"column":16},"end":{"line":3,"column":35}},"2":{"start":{"line":6,"column":8},"end":{"line":6,"column":35}},"3":{"start":{"line":9,"column":0},"end":{"line":9,"column":54}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":5,"column":4},"end":{"line":5,"column":5}},"loc":{"start":{"line":5,"column":16},"end":{"line":7,"column":5}},"line":5}},"branchMap":{},"s":{"0":1,"1":1,"2":10,"3":1},"f":{"0":10},"b":{},"inputSourceMap":{"version":3,"file":"/development/breautek/storm/src/private/StartTransactionQuery.ts","sources":["/development/breautek/storm/src/private/StartTransactionQuery.ts"],"names":[],"mappings":";;AACA,oCAA+B;AAE/B,MAAa,qBAAsB,SAAQ,aAAK;IAClC,SAAS;QACf,OAAO,mBAAmB,CAAC;IAC/B,CAAC;CACJ;AAJD,sDAIC","sourcesContent":["\nimport {Query} from '../Query';\n\nexport class StartTransactionQuery extends Query {\n protected _getQuery(): string {\n return 'START TRANSACTION';\n }\n}\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"7cfe80d08cd71f8377f0d2081045f591f774f1c0","contentHash":"53d08bfed383df7e80fe242832609de216a697671a265fa84f29b2015043079b"},"/development/breautek/storm/src/private/CommitQuery.ts":{"path":"/development/breautek/storm/src/private/CommitQuery.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":3,"column":16},"end":{"line":3,"column":35}},"2":{"start":{"line":6,"column":8},"end":{"line":6,"column":24}},"3":{"start":{"line":9,"column":0},"end":{"line":9,"column":34}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":5,"column":4},"end":{"line":5,"column":5}},"loc":{"start":{"line":5,"column":16},"end":{"line":7,"column":5}},"line":5}},"branchMap":{},"s":{"0":1,"1":1,"2":2,"3":1},"f":{"0":2},"b":{},"inputSourceMap":{"version":3,"file":"/development/breautek/storm/src/private/CommitQuery.ts","sources":["/development/breautek/storm/src/private/CommitQuery.ts"],"names":[],"mappings":";;AACA,oCAA+B;AAE/B,MAAa,WAAY,SAAQ,aAAK;IACxB,SAAS;QACf,OAAO,QAAQ,CAAC;IACpB,CAAC;CACJ;AAJD,kCAIC","sourcesContent":["\nimport {Query} from '../Query';\n\nexport class CommitQuery extends Query {\n protected _getQuery(): string {\n return 'COMMIT';\n }\n}\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"4e455b3f05532f129d3b9b6e77923d71d0293bdc","contentHash":"529a756562e5f0335fa7bcfb769edce46caa60acc924985a76a5c1640ee95714"},"/development/breautek/storm/src/private/RollbackQuery.ts":{"path":"/development/breautek/storm/src/private/RollbackQuery.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":3,"column":16},"end":{"line":3,"column":35}},"2":{"start":{"line":6,"column":8},"end":{"line":6,"column":26}},"3":{"start":{"line":9,"column":0},"end":{"line":9,"column":38}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":5,"column":4},"end":{"line":5,"column":5}},"loc":{"start":{"line":5,"column":16},"end":{"line":7,"column":5}},"line":5}},"branchMap":{},"s":{"0":1,"1":1,"2":4,"3":1},"f":{"0":4},"b":{},"inputSourceMap":{"version":3,"file":"/development/breautek/storm/src/private/RollbackQuery.ts","sources":["/development/breautek/storm/src/private/RollbackQuery.ts"],"names":[],"mappings":";;AACA,oCAA+B;AAE/B,MAAa,aAAc,SAAQ,aAAK;IAC1B,SAAS;QACf,OAAO,UAAU,CAAC;IACtB,CAAC;CACJ;AAJD,sCAIC","sourcesContent":["\nimport {Query} from '../Query';\n\nexport class RollbackQuery extends Query {\n protected _getQuery(): string {\n return 'ROLLBACK';\n }\n}\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"ce71c399ac1e52759263039ec5563bc6a610ac09","contentHash":"41a3b4a9da8714cb695e828f8b8ed4fb78c24e0d22a403b31bb9c270e2ea180d"},"/development/breautek/storm/src/ManagedDatabaseConnection.ts":{"path":"/development/breautek/storm/src/ManagedDatabaseConnection.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":3,"column":19},"end":{"line":3,"column":40}},"2":{"start":{"line":6,"column":8},"end":{"line":6,"column":30}},"3":{"start":{"line":7,"column":8},"end":{"line":7,"column":44}},"4":{"start":{"line":8,"column":8},"end":{"line":8,"column":50}},"5":{"start":{"line":11,"column":8},"end":{"line":26,"column":9}},"6":{"start":{"line":12,"column":34},"end":{"line":12,"column":50}},"7":{"start":{"line":13,"column":12},"end":{"line":25,"column":13}},"8":{"start":{"line":14,"column":16},"end":{"line":14,"column":182}},"9":{"start":{"line":15,"column":16},"end":{"line":15,"column":84}},"10":{"start":{"line":16,"column":16},"end":{"line":21,"column":19}},"11":{"start":{"line":17,"column":20},"end":{"line":17,"column":42}},"12":{"start":{"line":19,"column":20},"end":{"line":19,"column":70}},"13":{"start":{"line":20,"column":20},"end":{"line":20,"column":46}},"14":{"start":{"line":24,"column":16},"end":{"line":24,"column":38}},"15":{"start":{"line":27,"column":8},"end":{"line":27,"column":38}},"16":{"start":{"line":28,"column":8},"end":{"line":28,"column":29}},"17":{"start":{"line":31,"column":8},"end":{"line":31,"column":35}},"18":{"start":{"line":34,"column":8},"end":{"line":34,"column":29}},"19":{"start":{"line":37,"column":8},"end":{"line":37,"column":34}},"20":{"start":{"line":40,"column":8},"end":{"line":45,"column":9}},"21":{"start":{"line":41,"column":12},"end":{"line":41,"column":58}},"22":{"start":{"line":44,"column":12},"end":{"line":44,"column":42}},"23":{"start":{"line":48,"column":8},"end":{"line":53,"column":9}},"24":{"start":{"line":49,"column":12},"end":{"line":49,"column":60}},"25":{"start":{"line":52,"column":12},"end":{"line":52,"column":41}},"26":{"start":{"line":56,"column":8},"end":{"line":61,"column":9}},"27":{"start":{"line":57,"column":12},"end":{"line":57,"column":49}},"28":{"start":{"line":60,"column":12},"end":{"line":60,"column":24}},"29":{"start":{"line":64,"column":8},"end":{"line":66,"column":11}},"30":{"start":{"line":65,"column":12},"end":{"line":65,"column":43}},"31":{"start":{"line":69,"column":8},"end":{"line":74,"column":9}},"32":{"start":{"line":70,"column":12},"end":{"line":70,"column":49}},"33":{"start":{"line":73,"column":12},"end":{"line":73,"column":24}},"34":{"start":{"line":77,"column":8},"end":{"line":81,"column":11}},"35":{"start":{"line":78,"column":12},"end":{"line":80,"column":29}},"36":{"start":{"line":79,"column":16},"end":{"line":79,"column":76}},"37":{"start":{"line":84,"column":8},"end":{"line":84,"column":74}},"38":{"start":{"line":87,"column":8},"end":{"line":98,"column":11}},"39":{"start":{"line":88,"column":12},"end":{"line":97,"column":13}},"40":{"start":{"line":89,"column":16},"end":{"line":93,"column":33}},"41":{"start":{"line":90,"column":20},"end":{"line":90,"column":44}},"42":{"start":{"line":91,"column":20},"end":{"line":91,"column":42}},"43":{"start":{"line":92,"column":20},"end":{"line":92,"column":30}},"44":{"start":{"line":96,"column":16},"end":{"line":96,"column":26}},"45":{"start":{"line":101,"column":8},"end":{"line":110,"column":11}},"46":{"start":{"line":102,"column":12},"end":{"line":109,"column":29}},"47":{"start":{"line":103,"column":16},"end":{"line":108,"column":17}},"48":{"start":{"line":104,"column":20},"end":{"line":104,"column":78}},"49":{"start":{"line":107,"column":20},"end":{"line":107,"column":30}},"50":{"start":{"line":113,"column":8},"end":{"line":118,"column":9}},"51":{"start":{"line":114,"column":12},"end":{"line":114,"column":52}},"52":{"start":{"line":117,"column":12},"end":{"line":117,"column":25}},"53":{"start":{"line":121,"column":8},"end":{"line":130,"column":11}},"54":{"start":{"line":122,"column":12},"end":{"line":129,"column":29}},"55":{"start":{"line":123,"column":16},"end":{"line":128,"column":17}},"56":{"start":{"line":124,"column":20},"end":{"line":124,"column":68}},"57":{"start":{"line":127,"column":20},"end":{"line":127,"column":30}},"58":{"start":{"line":133,"column":8},"end":{"line":142,"column":11}},"59":{"start":{"line":134,"column":12},"end":{"line":141,"column":29}},"60":{"start":{"line":135,"column":16},"end":{"line":140,"column":17}},"61":{"start":{"line":136,"column":20},"end":{"line":136,"column":70}},"62":{"start":{"line":139,"column":20},"end":{"line":139,"column":30}},"63":{"start":{"line":145,"column":8},"end":{"line":162,"column":11}},"64":{"start":{"line":146,"column":26},"end":{"line":146,"column":30}},"65":{"start":{"line":147,"column":39},"end":{"line":147,"column":44}},"66":{"start":{"line":148,"column":12},"end":{"line":154,"column":13}},"67":{"start":{"line":149,"column":16},"end":{"line":149,"column":94}},"68":{"start":{"line":150,"column":16},"end":{"line":150,"column":44}},"69":{"start":{"line":153,"column":16},"end":{"line":153,"column":60}},"70":{"start":{"line":155,"column":12},"end":{"line":161,"column":29}},"71":{"start":{"line":156,"column":16},"end":{"line":158,"column":17}},"72":{"start":{"line":157,"column":20},"end":{"line":157,"column":76}},"73":{"start":{"line":159,"column":16},"end":{"line":159,"column":46}},"74":{"start":{"line":160,"column":16},"end":{"line":160,"column":42}},"75":{"start":{"line":165,"column":8},"end":{"line":170,"column":9}},"76":{"start":{"line":166,"column":12},"end":{"line":166,"column":45}},"77":{"start":{"line":169,"column":12},"end":{"line":169,"column":24}},"78":{"start":{"line":173,"column":0},"end":{"line":173,"column":62}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":5,"column":4},"end":{"line":5,"column":5}},"loc":{"start":{"line":5,"column":39},"end":{"line":9,"column":5}},"line":5},"1":{"name":"(anonymous_1)","decl":{"start":{"line":10,"column":4},"end":{"line":10,"column":5}},"loc":{"start":{"line":10,"column":30},"end":{"line":29,"column":5}},"line":10},"2":{"name":"(anonymous_2)","decl":{"start":{"line":16,"column":46},"end":{"line":16,"column":47}},"loc":{"start":{"line":16,"column":52},"end":{"line":18,"column":17}},"line":16},"3":{"name":"(anonymous_3)","decl":{"start":{"line":18,"column":25},"end":{"line":18,"column":26}},"loc":{"start":{"line":18,"column":36},"end":{"line":21,"column":17}},"line":18},"4":{"name":"(anonymous_4)","decl":{"start":{"line":30,"column":4},"end":{"line":30,"column":5}},"loc":{"start":{"line":30,"column":22},"end":{"line":32,"column":5}},"line":30},"5":{"name":"(anonymous_5)","decl":{"start":{"line":33,"column":4},"end":{"line":33,"column":5}},"loc":{"start":{"line":33,"column":16},"end":{"line":35,"column":5}},"line":33},"6":{"name":"(anonymous_6)","decl":{"start":{"line":36,"column":4},"end":{"line":36,"column":5}},"loc":{"start":{"line":36,"column":20},"end":{"line":38,"column":5}},"line":36},"7":{"name":"(anonymous_7)","decl":{"start":{"line":39,"column":4},"end":{"line":39,"column":5}},"loc":{"start":{"line":39,"column":33},"end":{"line":46,"column":5}},"line":39},"8":{"name":"(anonymous_8)","decl":{"start":{"line":47,"column":4},"end":{"line":47,"column":5}},"loc":{"start":{"line":47,"column":28},"end":{"line":54,"column":5}},"line":47},"9":{"name":"(anonymous_9)","decl":{"start":{"line":55,"column":4},"end":{"line":55,"column":5}},"loc":{"start":{"line":55,"column":17},"end":{"line":62,"column":5}},"line":55},"10":{"name":"(anonymous_10)","decl":{"start":{"line":63,"column":4},"end":{"line":63,"column":5}},"loc":{"start":{"line":63,"column":24},"end":{"line":67,"column":5}},"line":63},"11":{"name":"(anonymous_11)","decl":{"start":{"line":64,"column":35},"end":{"line":64,"column":36}},"loc":{"start":{"line":64,"column":51},"end":{"line":66,"column":9}},"line":64},"12":{"name":"(anonymous_12)","decl":{"start":{"line":68,"column":4},"end":{"line":68,"column":5}},"loc":{"start":{"line":68,"column":17},"end":{"line":75,"column":5}},"line":68},"13":{"name":"(anonymous_13)","decl":{"start":{"line":76,"column":4},"end":{"line":76,"column":5}},"loc":{"start":{"line":76,"column":25},"end":{"line":82,"column":5}},"line":76},"14":{"name":"(anonymous_14)","decl":{"start":{"line":77,"column":27},"end":{"line":77,"column":28}},"loc":{"start":{"line":77,"column":48},"end":{"line":81,"column":9}},"line":77},"15":{"name":"(anonymous_15)","decl":{"start":{"line":78,"column":39},"end":{"line":78,"column":40}},"loc":{"start":{"line":78,"column":55},"end":{"line":80,"column":13}},"line":78},"16":{"name":"(anonymous_16)","decl":{"start":{"line":83,"column":4},"end":{"line":83,"column":5}},"loc":{"start":{"line":83,"column":41},"end":{"line":85,"column":5}},"line":83},"17":{"name":"(anonymous_17)","decl":{"start":{"line":86,"column":4},"end":{"line":86,"column":5}},"loc":{"start":{"line":86,"column":22},"end":{"line":99,"column":5}},"line":86},"18":{"name":"(anonymous_18)","decl":{"start":{"line":87,"column":27},"end":{"line":87,"column":28}},"loc":{"start":{"line":87,"column":48},"end":{"line":98,"column":9}},"line":87},"19":{"name":"(anonymous_19)","decl":{"start":{"line":89,"column":56},"end":{"line":89,"column":57}},"loc":{"start":{"line":89,"column":62},"end":{"line":93,"column":17}},"line":89},"20":{"name":"(anonymous_20)","decl":{"start":{"line":100,"column":4},"end":{"line":100,"column":5}},"loc":{"start":{"line":100,"column":23},"end":{"line":111,"column":5}},"line":100},"21":{"name":"(anonymous_21)","decl":{"start":{"line":101,"column":27},"end":{"line":101,"column":28}},"loc":{"start":{"line":101,"column":48},"end":{"line":110,"column":9}},"line":101},"22":{"name":"(anonymous_22)","decl":{"start":{"line":102,"column":39},"end":{"line":102,"column":40}},"loc":{"start":{"line":102,"column":55},"end":{"line":109,"column":13}},"line":102},"23":{"name":"(anonymous_23)","decl":{"start":{"line":112,"column":4},"end":{"line":112,"column":5}},"loc":{"start":{"line":112,"column":20},"end":{"line":119,"column":5}},"line":112},"24":{"name":"(anonymous_24)","decl":{"start":{"line":120,"column":4},"end":{"line":120,"column":5}},"loc":{"start":{"line":120,"column":13},"end":{"line":131,"column":5}},"line":120},"25":{"name":"(anonymous_25)","decl":{"start":{"line":121,"column":27},"end":{"line":121,"column":28}},"loc":{"start":{"line":121,"column":48},"end":{"line":130,"column":9}},"line":121},"26":{"name":"(anonymous_26)","decl":{"start":{"line":122,"column":39},"end":{"line":122,"column":40}},"loc":{"start":{"line":122,"column":55},"end":{"line":129,"column":13}},"line":122},"27":{"name":"(anonymous_27)","decl":{"start":{"line":132,"column":4},"end":{"line":132,"column":5}},"loc":{"start":{"line":132,"column":15},"end":{"line":143,"column":5}},"line":132},"28":{"name":"(anonymous_28)","decl":{"start":{"line":133,"column":27},"end":{"line":133,"column":28}},"loc":{"start":{"line":133,"column":48},"end":{"line":142,"column":9}},"line":133},"29":{"name":"(anonymous_29)","decl":{"start":{"line":134,"column":39},"end":{"line":134,"column":40}},"loc":{"start":{"line":134,"column":55},"end":{"line":141,"column":13}},"line":134},"30":{"name":"(anonymous_30)","decl":{"start":{"line":144,"column":4},"end":{"line":144,"column":5}},"loc":{"start":{"line":144,"column":21},"end":{"line":163,"column":5}},"line":144},"31":{"name":"(anonymous_31)","decl":{"start":{"line":145,"column":27},"end":{"line":145,"column":28}},"loc":{"start":{"line":145,"column":48},"end":{"line":162,"column":9}},"line":145},"32":{"name":"(anonymous_32)","decl":{"start":{"line":155,"column":25},"end":{"line":155,"column":26}},"loc":{"start":{"line":155,"column":41},"end":{"line":161,"column":13}},"line":155},"33":{"name":"(anonymous_33)","decl":{"start":{"line":164,"column":4},"end":{"line":164,"column":5}},"loc":{"start":{"line":164,"column":13},"end":{"line":171,"column":5}},"line":164}},"branchMap":{"0":{"loc":{"start":{"line":5,"column":16},"end":{"line":5,"column":37}},"type":"default-arg","locations":[{"start":{"line":5,"column":32},"end":{"line":5,"column":37}}],"line":5},"1":{"loc":{"start":{"line":11,"column":8},"end":{"line":26,"column":9}},"type":"if","locations":[{"start":{"line":11,"column":8},"end":{"line":26,"column":9}},{"start":{"line":11,"column":8},"end":{"line":26,"column":9}}],"line":11},"2":{"loc":{"start":{"line":13,"column":12},"end":{"line":25,"column":13}},"type":"if","locations":[{"start":{"line":13,"column":12},"end":{"line":25,"column":13}},{"start":{"line":13,"column":12},"end":{"line":25,"column":13}}],"line":13},"3":{"loc":{"start":{"line":40,"column":8},"end":{"line":45,"column":9}},"type":"if","locations":[{"start":{"line":40,"column":8},"end":{"line":45,"column":9}},{"start":{"line":40,"column":8},"end":{"line":45,"column":9}}],"line":40},"4":{"loc":{"start":{"line":48,"column":8},"end":{"line":53,"column":9}},"type":"if","locations":[{"start":{"line":48,"column":8},"end":{"line":53,"column":9}},{"start":{"line":48,"column":8},"end":{"line":53,"column":9}}],"line":48},"5":{"loc":{"start":{"line":56,"column":8},"end":{"line":61,"column":9}},"type":"if","locations":[{"start":{"line":56,"column":8},"end":{"line":61,"column":9}},{"start":{"line":56,"column":8},"end":{"line":61,"column":9}}],"line":56},"6":{"loc":{"start":{"line":69,"column":8},"end":{"line":74,"column":9}},"type":"if","locations":[{"start":{"line":69,"column":8},"end":{"line":74,"column":9}},{"start":{"line":69,"column":8},"end":{"line":74,"column":9}}],"line":69},"7":{"loc":{"start":{"line":88,"column":12},"end":{"line":97,"column":13}},"type":"if","locations":[{"start":{"line":88,"column":12},"end":{"line":97,"column":13}},{"start":{"line":88,"column":12},"end":{"line":97,"column":13}}],"line":88},"8":{"loc":{"start":{"line":88,"column":16},"end":{"line":88,"column":57}},"type":"binary-expr","locations":[{"start":{"line":88,"column":16},"end":{"line":88,"column":36}},{"start":{"line":88,"column":40},"end":{"line":88,"column":57}}],"line":88},"9":{"loc":{"start":{"line":103,"column":16},"end":{"line":108,"column":17}},"type":"if","locations":[{"start":{"line":103,"column":16},"end":{"line":108,"column":17}},{"start":{"line":103,"column":16},"end":{"line":108,"column":17}}],"line":103},"10":{"loc":{"start":{"line":113,"column":8},"end":{"line":118,"column":9}},"type":"if","locations":[{"start":{"line":113,"column":8},"end":{"line":118,"column":9}},{"start":{"line":113,"column":8},"end":{"line":118,"column":9}}],"line":113},"11":{"loc":{"start":{"line":123,"column":16},"end":{"line":128,"column":17}},"type":"if","locations":[{"start":{"line":123,"column":16},"end":{"line":128,"column":17}},{"start":{"line":123,"column":16},"end":{"line":128,"column":17}}],"line":123},"12":{"loc":{"start":{"line":135,"column":16},"end":{"line":140,"column":17}},"type":"if","locations":[{"start":{"line":135,"column":16},"end":{"line":140,"column":17}},{"start":{"line":135,"column":16},"end":{"line":140,"column":17}}],"line":135},"13":{"loc":{"start":{"line":148,"column":12},"end":{"line":154,"column":13}},"type":"if","locations":[{"start":{"line":148,"column":12},"end":{"line":154,"column":13}},{"start":{"line":148,"column":12},"end":{"line":154,"column":13}}],"line":148},"14":{"loc":{"start":{"line":156,"column":16},"end":{"line":158,"column":17}},"type":"if","locations":[{"start":{"line":156,"column":16},"end":{"line":158,"column":17}},{"start":{"line":156,"column":16},"end":{"line":158,"column":17}}],"line":156},"15":{"loc":{"start":{"line":165,"column":8},"end":{"line":170,"column":9}},"type":"if","locations":[{"start":{"line":165,"column":8},"end":{"line":170,"column":9}},{"start":{"line":165,"column":8},"end":{"line":170,"column":9}}],"line":165}},"s":{"0":1,"1":1,"2":32,"3":32,"4":32,"5":21,"6":3,"7":3,"8":2,"9":2,"10":2,"11":1,"12":1,"13":1,"14":1,"15":21,"16":21,"17":2,"18":33,"19":44,"20":0,"21":0,"22":0,"23":2,"24":1,"25":1,"26":3,"27":1,"28":2,"29":8,"30":8,"31":2,"32":1,"33":1,"34":1,"35":1,"36":1,"37":1,"38":32,"39":32,"40":7,"41":7,"42":7,"43":7,"44":25,"45":2,"46":2,"47":2,"48":1,"49":1,"50":3,"51":2,"52":1,"53":2,"54":2,"55":2,"56":1,"57":1,"58":2,"59":2,"60":2,"61":1,"62":1,"63":15,"64":15,"65":15,"66":15,"67":7,"68":7,"69":8,"70":15,"71":15,"72":7,"73":15,"74":15,"75":2,"76":1,"77":1,"78":1},"f":{"0":32,"1":21,"2":1,"3":1,"4":2,"5":33,"6":44,"7":0,"8":2,"9":3,"10":8,"11":8,"12":2,"13":1,"14":1,"15":1,"16":1,"17":32,"18":32,"19":7,"20":2,"21":2,"22":2,"23":3,"24":2,"25":2,"26":2,"27":2,"28":2,"29":2,"30":15,"31":15,"32":15,"33":2},"b":{"0":[30],"1":[3,18],"2":[2,1],"3":[0,0],"4":[1,1],"5":[1,2],"6":[1,1],"7":[7,25],"8":[32,25],"9":[1,1],"10":[2,1],"11":[1,1],"12":[1,1],"13":[7,8],"14":[7,8],"15":[1,1]},"inputSourceMap":{"version":3,"file":"/development/breautek/storm/src/ManagedDatabaseConnection.ts","sources":["/development/breautek/storm/src/ManagedDatabaseConnection.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (C) 2017 Norman Breau\n\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU General Public License for more details.\n\n// You should have received a copy of the GNU General Public License\n// along with this program. If not, see <http://www.gnu.org/licenses/>.\n\nimport {IDatabaseConnection} from './IDatabaseConnection';\nimport {getInstance} from './instance';\nimport {Readable} from 'stream';\nimport { Query } from './Query';\n\nexport class ManagedDatabaseConnection implements IDatabaseConnection {\n private _connection: IDatabaseConnection;\n /**\n * When true, this class will not close the connection or\n * allow transaction starts or ends. Methods for these actions\n * will be a no-op.\n */\n private _managed: boolean;\n\n private _requiresWrite: boolean;\n private _instantionStack: string;\n\n public constructor(requiresWrite: boolean = false) {\n this._managed = false;\n this._requiresWrite = requiresWrite;\n this._instantionStack = new Error().stack;\n }\n\n public setConnection(connection: IDatabaseConnection): void {\n if (this._connection) {\n // Store original connection because of async,\n // but we don't really need to wait for the async operations\n // to complete to set the new connection object.\n const oldConnection: IDatabaseConnection = this._connection;\n if (oldConnection.isTransaction()) {\n getInstance().getLogger().warn('Rolling back a transaction because setConnection was called on a ManagedDatabaseConnection in a transaction in progress.');\n getInstance().getLogger().trace(new Error('Stacktrace'));\n oldConnection.rollback().then(() => {\n oldConnection.close();\n }).catch((error: any) => {\n getInstance().getLogger().error(error);\n oldConnection.close(true);\n });\n }\n else {\n oldConnection.close();\n }\n }\n\n this._connection = connection;\n this._managed = true;\n }\n\n public isWriteRequired(): boolean {\n return this._requiresWrite;\n }\n\n public isManaged(): boolean {\n return this._managed;\n }\n\n public hasConnection(): boolean {\n return !!this._connection;\n }\n\n public setInstantiationStack(stack: string): void {\n if (this.hasConnection()) {\n this._connection.setInstantiationStack(stack);\n }\n else {\n this._instantionStack = stack;\n }\n }\n\n public getInstantiationStack(): string {\n if (this.hasConnection()) {\n return this._connection.getInstantiationStack();\n }\n else {\n return this._instantionStack;\n }\n }\n\n public isReadOnly(): boolean {\n if (this.hasConnection()) {\n return this._connection.isReadOnly();\n }\n else {\n return true;\n }\n }\n\n public setTimeout(timeout: number): void {\n this._getConnection().then((connection: IDatabaseConnection) => {\n connection.setTimeout(timeout);\n });\n }\n\n public getTimeout(): number {\n if (this.hasConnection()) {\n return this._connection.getTimeout();\n }\n else {\n return null;\n }\n }\n\n public query(query: string | Query, params?: any): Promise<any> {\n return new Promise<any>((resolve, reject) => {\n this._getConnection().then((connection: IDatabaseConnection) => {\n connection.query(query, params).then(resolve).catch(reject);\n }).catch(reject);\n })\n }\n\n public stream(query: string | Query, params?: any, streamOptions?: any): Readable {\n throw new Error('stream is not supported on Managed Connections');\n }\n\n public close(forceClose?: boolean): Promise<void> {\n return new Promise<void>((resolve, reject) => {\n if (this.hasConnection() && !this.isManaged()) {\n this._connection.close(forceClose).then(() => {\n this._connection = null;\n this._managed = false;\n resolve();\n }).catch(reject);\n }\n else {\n resolve();\n }\n });\n }\n\n public startTransaction(): Promise<void> {\n return new Promise<void>((resolve, reject) => {\n this._getConnection().then((connection: IDatabaseConnection) => {\n if (!this.isManaged()) {\n connection.startTransaction().then(resolve).catch(reject);\n }\n else {\n resolve();\n }\n }).catch(reject);\n });\n }\n\n public isTransaction(): boolean {\n if (this.hasConnection()) {\n return this._connection.isTransaction();\n }\n else {\n return false;\n }\n }\n\n public commit(): Promise<void> {\n return new Promise<void>((resolve, reject) => {\n this._getConnection().then((connection: IDatabaseConnection) => {\n if (!this.isManaged()) {\n connection.commit().then(resolve).catch(reject);\n }\n else {\n resolve();\n }\n }).catch(reject);\n });\n }\n\n public rollback(): Promise<void> {\n return new Promise<void>((resolve, reject) => {\n this._getConnection().then((connection: IDatabaseConnection) => {\n if (!this.isManaged()) {\n connection.rollback().then(resolve).catch(reject);\n }\n else {\n resolve();\n }\n }).catch(reject);\n });\n }\n\n private _getConnection(): Promise<IDatabaseConnection> {\n return new Promise<IDatabaseConnection>((resolve, reject) => {\n let promise: Promise<IDatabaseConnection> = null;\n let setInstantationStack: boolean = false;\n if (!this._connection) {\n promise = getInstance().getDB().getConnection(this._requiresWrite);\n setInstantationStack = true;\n }\n else {\n promise = Promise.resolve(this._connection);\n }\n\n promise.then((connection: IDatabaseConnection) => {\n if (setInstantationStack) {\n connection.setInstantiationStack(this._instantionStack);\n }\n this._connection = connection;\n resolve(this._connection);\n }).catch(reject);\n });\n }\n\n public getAPI(): any {\n if (this.hasConnection()) {\n return this._connection.getAPI();\n }\n else {\n return null;\n }\n }\n}\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"091a5a4c9a90cddf5e1b0472ed83b12efc357ba9","contentHash":"1206ca0a6819e743a13017164543f34f39d3860ee5ad34c527cbaebe330b1b49"},"/development/breautek/storm/src/MissingParameterError.ts":{"path":"/development/breautek/storm/src/MissingParameterError.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":3,"column":21},"end":{"line":3,"column":44}},"2":{"start":{"line":4,"column":20},"end":{"line":4,"column":42}},"3":{"start":{"line":5,"column":21},"end":{"line":5,"column":44}},"4":{"start":{"line":8,"column":8},"end":{"line":8,"column":40}},"5":{"start":{"line":11,"column":8},"end":{"line":11,"column":76}},"6":{"start":{"line":14,"column":8},"end":{"line":14,"column":55}},"7":{"start":{"line":17,"column":8},"end":{"line":17,"column":55}},"8":{"start":{"line":20,"column":0},"end":{"line":20,"column":54}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":7,"column":4},"end":{"line":7,"column":5}},"loc":{"start":{"line":7,"column":27},"end":{"line":9,"column":5}},"line":7},"1":{"name":"(anonymous_1)","decl":{"start":{"line":10,"column":4},"end":{"line":10,"column":5}},"loc":{"start":{"line":10,"column":17},"end":{"line":12,"column":5}},"line":10},"2":{"name":"(anonymous_2)","decl":{"start":{"line":13,"column":4},"end":{"line":13,"column":5}},"loc":{"start":{"line":13,"column":14},"end":{"line":15,"column":5}},"line":13},"3":{"name":"(anonymous_3)","decl":{"start":{"line":16,"column":4},"end":{"line":16,"column":5}},"loc":{"start":{"line":16,"column":18},"end":{"line":18,"column":5}},"line":16}},"branchMap":{},"s":{"0":1,"1":1,"2":1,"3":1,"4":1,"5":7,"6":6,"7":1,"8":1},"f":{"0":1,"1":7,"2":6,"3":1},"b":{},"inputSourceMap":{"version":3,"file":"/development/breautek/storm/src/MissingParameterError.ts","sources":["/development/breautek/storm/src/MissingParameterError.ts"],"names":[],"mappings":";;AAgBA,6CAAwC;AACxC,2CAAsC;AACtC,6CAAwC;AAExC,MAAa,qBAAsB,SAAQ,uBAAU;IACjD,YAAmB,SAAiB;QAChC,KAAK,CAAC,EAAC,SAAS,EAAE,SAAS,EAAC,CAAC,CAAC;IAClC,CAAC;IAEM,UAAU;QACb,OAAO,sBAAsB,IAAI,CAAC,iBAAiB,EAAE,CAAC,SAAS,IAAI,CAAC;IACxE,CAAC;IAEM,OAAO;QACV,OAAO,qBAAS,CAAC,iBAAiB,CAAC;IACvC,CAAC;IAEM,WAAW;QACd,OAAO,uBAAU,CAAC,eAAe,CAAC;IACtC,CAAC;CACJ;AAhBD,sDAgBC","sourcesContent":["\n// Copyright (C) 2017 Norman Breau\n\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU General Public License for more details.\n\n// You should have received a copy of the GNU General Public License\n// along with this program. If not, see <http://www.gnu.org/licenses/>.\n\nimport {StormError} from './StormError';\nimport {ErrorCode} from './ErrorCode';\nimport {StatusCode} from './StatusCode';\n\nexport class MissingParameterError extends StormError {\n public constructor(parameter: string) {\n super({parameter: parameter});\n }\n\n public getMessage(): string {\n return `Missing parameter (${this.getPrivateDetails().parameter}).`;\n }\n\n public getCode(): ErrorCode {\n return ErrorCode.MISSING_PARAMETER;\n }\n\n public getHTTPCode(): StatusCode {\n return StatusCode.ERR_BAD_REQUEST;\n }\n}\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"ad417884696c7bb4fba5791ea80f99465d9e7855","contentHash":"5d9246ee84df4919f00d579a6f89d55b34aa9554045414213cb6853cc0959bb2"},"/development/breautek/storm/src/InvalidCredentialsError.ts":{"path":"/development/breautek/storm/src/InvalidCredentialsError.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":3,"column":21},"end":{"line":3,"column":44}},"2":{"start":{"line":4,"column":20},"end":{"line":4,"column":42}},"3":{"start":{"line":5,"column":21},"end":{"line":5,"column":44}},"4":{"start":{"line":8,"column":8},"end":{"line":8,"column":23}},"5":{"start":{"line":11,"column":8},"end":{"line":11,"column":93}},"6":{"start":{"line":14,"column":8},"end":{"line":14,"column":57}},"7":{"start":{"line":17,"column":8},"end":{"line":17,"column":56}},"8":{"start":{"line":20,"column":0},"end":{"line":20,"column":58}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":7,"column":4},"end":{"line":7,"column":5}},"loc":{"start":{"line":7,"column":25},"end":{"line":9,"column":5}},"line":7},"1":{"name":"(anonymous_1)","decl":{"start":{"line":10,"column":4},"end":{"line":10,"column":5}},"loc":{"start":{"line":10,"column":17},"end":{"line":12,"column":5}},"line":10},"2":{"name":"(anonymous_2)","decl":{"start":{"line":13,"column":4},"end":{"line":13,"column":5}},"loc":{"start":{"line":13,"column":14},"end":{"line":15,"column":5}},"line":13},"3":{"name":"(anonymous_3)","decl":{"start":{"line":16,"column":4},"end":{"line":16,"column":5}},"loc":{"start":{"line":16,"column":18},"end":{"line":18,"column":5}},"line":16}},"branchMap":{},"s":{"0":1,"1":1,"2":1,"3":1,"4":1,"5":7,"6":6,"7":1,"8":1},"f":{"0":1,"1":7,"2":6,"3":1},"b":{},"inputSourceMap":{"version":3,"file":"/development/breautek/storm/src/InvalidCredentialsError.ts","sources":["/development/breautek/storm/src/InvalidCredentialsError.ts"],"names":[],"mappings":";;AAeA,6CAAwC;AACxC,2CAAsC;AACtC,6CAAwC;AAExC,MAAa,uBAAwB,SAAQ,uBAAU;IACnD,YAAmB,OAAa;QAC5B,KAAK,CAAC,OAAO,CAAC,CAAC;IACnB,CAAC;IAEM,UAAU;QACb,OAAO,6EAA6E,CAAC;IACzF,CAAC;IAEM,OAAO;QACV,OAAO,qBAAS,CAAC,mBAAmB,CAAC;IACzC,CAAC;IAEM,WAAW;QACd,OAAO,uBAAU,CAAC,gBAAgB,CAAC;IACvC,CAAC;CACJ;AAhBD,0DAgBC","sourcesContent":["// Copyright (C) 2017 Norman Breau\r\n\r\n// This program is free software: you can redistribute it and/or modify\r\n// it under the terms of the GNU General Public License as published by\r\n// the Free Software Foundation, either version 3 of the License, or\r\n// (at your option) any later version.\r\n\r\n// This program is distributed in the hope that it will be useful,\r\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\r\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\r\n// GNU General Public License for more details.\r\n\r\n// You should have received a copy of the GNU General Public License\r\n// along with this program. If not, see <http://www.gnu.org/licenses/>.\r\n\r\nimport {StormError} from './StormError';\r\nimport {ErrorCode} from './ErrorCode';\r\nimport {StatusCode} from './StatusCode';\r\n\r\nexport class InvalidCredentialsError extends StormError {\r\n public constructor(details?: any) {\r\n super(details);\r\n }\r\n\r\n public getMessage(): string {\r\n return `Username or password is incorrect. Please check your username and password.`;\r\n }\r\n\r\n public getCode(): ErrorCode {\r\n return ErrorCode.INVALID_CREDENTIALS;\r\n }\r\n\r\n public getHTTPCode(): StatusCode {\r\n return StatusCode.ERR_UNAUTHORIZED;\r\n }\r\n}\r\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"58e07cccad420cf6ed362c9ea9cd96042abb2597","contentHash":"ba82bef350e637845b3f0354578642a7aa78426129c0cea67337076951f191f2"},"/development/breautek/storm/src/ExpiredTokenError.ts":{"path":"/development/breautek/storm/src/ExpiredTokenError.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":3,"column":21},"end":{"line":3,"column":44}},"2":{"start":{"line":4,"column":20},"end":{"line":4,"column":42}},"3":{"start":{"line":5,"column":21},"end":{"line":5,"column":44}},"4":{"start":{"line":8,"column":8},"end":{"line":8,"column":23}},"5":{"start":{"line":11,"column":8},"end":{"line":11,"column":49}},"6":{"start":{"line":14,"column":8},"end":{"line":14,"column":51}},"7":{"start":{"line":17,"column":8},"end":{"line":17,"column":56}},"8":{"start":{"line":20,"column":0},"end":{"line":20,"column":46}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":7,"column":4},"end":{"line":7,"column":5}},"loc":{"start":{"line":7,"column":25},"end":{"line":9,"column":5}},"line":7},"1":{"name":"(anonymous_1)","decl":{"start":{"line":10,"column":4},"end":{"line":10,"column":5}},"loc":{"start":{"line":10,"column":17},"end":{"line":12,"column":5}},"line":10},"2":{"name":"(anonymous_2)","decl":{"start":{"line":13,"column":4},"end":{"line":13,"column":5}},"loc":{"start":{"line":13,"column":14},"end":{"line":15,"column":5}},"line":13},"3":{"name":"(anonymous_3)","decl":{"start":{"line":16,"column":4},"end":{"line":16,"column":5}},"loc":{"start":{"line":16,"column":18},"end":{"line":18,"column":5}},"line":16}},"branchMap":{},"s":{"0":1,"1":1,"2":1,"3":1,"4":1,"5":7,"6":6,"7":1,"8":1},"f":{"0":1,"1":7,"2":6,"3":1},"b":{},"inputSourceMap":{"version":3,"file":"/development/breautek/storm/src/ExpiredTokenError.ts","sources":["/development/breautek/storm/src/ExpiredTokenError.ts"],"names":[],"mappings":";;AAeA,6CAAwC;AACxC,2CAAsC;AACtC,6CAAwC;AAExC,MAAa,iBAAkB,SAAQ,uBAAU;IAC7C,YAAmB,OAAa;QAC5B,KAAK,CAAC,OAAO,CAAC,CAAC;IACnB,CAAC;IAEM,UAAU;QACb,OAAO,iCAAiC,CAAC;IAC7C,CAAC;IAEM,OAAO;QACV,OAAO,qBAAS,CAAC,aAAa,CAAC;IACnC,CAAC;IAEM,WAAW;QACd,OAAO,uBAAU,CAAC,gBAAgB,CAAC;IACvC,CAAC;CACJ;AAhBD,8CAgBC","sourcesContent":["// Copyright (C) 2017 Norman Breau\r\n\r\n// This program is free software: you can redistribute it and/or modify\r\n// it under the terms of the GNU General Public License as published by\r\n// the Free Software Foundation, either version 3 of the License, or\r\n// (at your option) any later version.\r\n\r\n// This program is distributed in the hope that it will be useful,\r\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\r\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\r\n// GNU General Public License for more details.\r\n\r\n// You should have received a copy of the GNU General Public License\r\n// along with this program. If not, see <http://www.gnu.org/licenses/>.\r\n\r\nimport {StormError} from './StormError';\r\nimport {ErrorCode} from './ErrorCode';\r\nimport {StatusCode} from './StatusCode';\r\n\r\nexport class ExpiredTokenError extends StormError {\r\n public constructor(details?: any) {\r\n super(details);\r\n }\r\n\r\n public getMessage(): string {\r\n return `Your login session has expired.`;\r\n }\r\n\r\n public getCode(): ErrorCode {\r\n return ErrorCode.EXPIRED_TOKEN;\r\n }\r\n\r\n public getHTTPCode(): StatusCode {\r\n return StatusCode.ERR_UNAUTHORIZED;\r\n }\r\n}\r\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"cb352884274f6fcc8a6e12be67a4e2d494e93eab","contentHash":"afb407db88c1729c00e8441632c8542fe5a23373061cb405c7ebbe7bc5def1f5"},"/development/breautek/storm/src/InvalidValueError.ts":{"path":"/development/breautek/storm/src/InvalidValueError.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":3,"column":21},"end":{"line":3,"column":44}},"2":{"start":{"line":4,"column":20},"end":{"line":4,"column":42}},"3":{"start":{"line":5,"column":21},"end":{"line":5,"column":44}},"4":{"start":{"line":8,"column":8},"end":{"line":12,"column":11}},"5":{"start":{"line":15,"column":22},"end":{"line":15,"column":46}},"6":{"start":{"line":16,"column":8},"end":{"line":16,"column":116}},"7":{"start":{"line":19,"column":8},"end":{"line":19,"column":51}},"8":{"start":{"line":22,"column":8},"end":{"line":22,"column":55}},"9":{"start":{"line":25,"column":0},"end":{"line":25,"column":46}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":7,"column":4},"end":{"line":7,"column":5}},"loc":{"start":{"line":7,"column":41},"end":{"line":13,"column":5}},"line":7},"1":{"name":"(anonymous_1)","decl":{"start":{"line":14,"column":4},"end":{"line":14,"column":5}},"loc":{"start":{"line":14,"column":17},"end":{"line":17,"column":5}},"line":14},"2":{"name":"(anonymous_2)","decl":{"start":{"line":18,"column":4},"end":{"line":18,"column":5}},"loc":{"start":{"line":18,"column":14},"end":{"line":20,"column":5}},"line":18},"3":{"name":"(anonymous_3)","decl":{"start":{"line":21,"column":4},"end":{"line":21,"column":5}},"loc":{"start":{"line":21,"column":18},"end":{"line":23,"column":5}},"line":21}},"branchMap":{},"s":{"0":1,"1":1,"2":1,"3":1,"4":1,"5":7,"6":7,"7":6,"8":1,"9":1},"f":{"0":1,"1":7,"2":6,"3":1},"b":{},"inputSourceMap":{"version":3,"file":"/development/breautek/storm/src/InvalidValueError.ts","sources":["/development/breautek/storm/src/InvalidValueError.ts"],"names":[],"mappings":";;AAeA,6CAAwC;AACxC,2CAAsC;AACtC,6CAAwC;AAExC,MAAa,iBAAkB,SAAQ,uBAAU;IAC7C,YAAmB,QAAgB,EAAE,QAAa,EAAE,GAAQ;QACxD,KAAK,CAAC;YACF,QAAQ,EAAE,QAAQ;YAClB,QAAQ,EAAE,QAAQ;YAClB,GAAG,EAAE,GAAG;SACX,CAAC,CAAC;IACP,CAAC;IAEM,UAAU;QACb,IAAI,OAAO,GAAQ,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAC5C,OAAO,yBAAyB,OAAO,CAAC,QAAQ,eAAe,OAAO,CAAC,QAAQ,aAAa,OAAO,CAAC,GAAG,IAAI,CAAC;IAChH,CAAC;IAEM,OAAO;QACV,OAAO,qBAAS,CAAC,aAAa,CAAC;IACnC,CAAC;IAEM,WAAW;QACd,OAAO,uBAAU,CAAC,eAAe,CAAC;IACtC,CAAC;CACJ;AArBD,8CAqBC","sourcesContent":["// Copyright (C) 2017 Norman Breau\r\n\r\n// This program is free software: you can redistribute it and/or modify\r\n// it under the terms of the GNU General Public License as published by\r\n// the Free Software Foundation, either version 3 of the License, or\r\n// (at your option) any later version.\r\n\r\n// This program is distributed in the hope that it will be useful,\r\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\r\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\r\n// GNU General Public License for more details.\r\n\r\n// You should have received a copy of the GNU General Public License\r\n// along with this program. If not, see <http://www.gnu.org/licenses/>.\r\n\r\nimport {StormError} from './StormError';\r\nimport {ErrorCode} from './ErrorCode';\r\nimport {StatusCode} from './StatusCode';\r\n\r\nexport class InvalidValueError extends StormError {\r\n public constructor(variable: string, expected: any, got: any) {\r\n super({\r\n variable: variable,\r\n expected: expected,\r\n got: got\r\n });\r\n }\r\n\r\n public getMessage(): string {\r\n let details: any = this.getPrivateDetails();\r\n return `Unexpected value for \"${details.variable}\". Expected ${details.expected} but got \"${details.got}\".`;\r\n }\r\n\r\n public getCode(): ErrorCode {\r\n return ErrorCode.INVALID_VALUE;\r\n }\r\n\r\n public getHTTPCode(): StatusCode {\r\n return StatusCode.ERR_BAD_REQUEST;\r\n }\r\n}\r\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"66375910aa44b58a6df37752185a9f272b77cd28","contentHash":"cd583ac9e2f27771fea378d24d671790470027c43f46d55adac8d232a53b519e"},"/development/breautek/storm/src/UnauthorizedAccessError.ts":{"path":"/development/breautek/storm/src/UnauthorizedAccessError.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":3,"column":21},"end":{"line":3,"column":44}},"2":{"start":{"line":4,"column":20},"end":{"line":4,"column":42}},"3":{"start":{"line":5,"column":21},"end":{"line":5,"column":44}},"4":{"start":{"line":8,"column":8},"end":{"line":8,"column":25}},"5":{"start":{"line":11,"column":8},"end":{"line":11,"column":32}},"6":{"start":{"line":14,"column":8},"end":{"line":14,"column":57}},"7":{"start":{"line":17,"column":8},"end":{"line":17,"column":53}},"8":{"start":{"line":20,"column":0},"end":{"line":20,"column":58}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":7,"column":4},"end":{"line":7,"column":5}},"loc":{"start":{"line":7,"column":27},"end":{"line":9,"column":5}},"line":7},"1":{"name":"(anonymous_1)","decl":{"start":{"line":10,"column":4},"end":{"line":10,"column":5}},"loc":{"start":{"line":10,"column":17},"end":{"line":12,"column":5}},"line":10},"2":{"name":"(anonymous_2)","decl":{"start":{"line":13,"column":4},"end":{"line":13,"column":5}},"loc":{"start":{"line":13,"column":14},"end":{"line":15,"column":5}},"line":13},"3":{"name":"(anonymous_3)","decl":{"start":{"line":16,"column":4},"end":{"line":16,"column":5}},"loc":{"start":{"line":16,"column":18},"end":{"line":18,"column":5}},"line":16}},"branchMap":{},"s":{"0":1,"1":1,"2":1,"3":1,"4":1,"5":7,"6":6,"7":1,"8":1},"f":{"0":1,"1":7,"2":6,"3":1},"b":{},"inputSourceMap":{"version":3,"file":"/development/breautek/storm/src/UnauthorizedAccessError.ts","sources":["/development/breautek/storm/src/UnauthorizedAccessError.ts"],"names":[],"mappings":";;AAeA,6CAAwC;AACxC,2CAAsC;AACtC,6CAAwC;AAExC,MAAa,uBAAwB,SAAQ,uBAAU;IACnD,YAAmB,SAAiB;QAChC,KAAK,CAAC,SAAS,CAAC,CAAC;IACrB,CAAC;IAEM,UAAU;QACb,OAAO,gBAAgB,CAAC;IAC5B,CAAC;IAEM,OAAO;QACV,OAAO,qBAAS,CAAC,mBAAmB,CAAC;IACzC,CAAC;IAEM,WAAW;QACd,OAAO,uBAAU,CAAC,aAAa,CAAC;IACpC,CAAC;CACJ;AAhBD,0DAgBC","sourcesContent":["// Copyright (C) 2017 Norman Breau\r\n\r\n// This program is free software: you can redistribute it and/or modify\r\n// it under the terms of the GNU General Public License as published by\r\n// the Free Software Foundation, either version 3 of the License, or\r\n// (at your option) any later version.\r\n\r\n// This program is distributed in the hope that it will be useful,\r\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\r\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\r\n// GNU General Public License for more details.\r\n\r\n// You should have received a copy of the GNU General Public License\r\n// along with this program. If not, see <http://www.gnu.org/licenses/>.\r\n\r\nimport {StormError} from './StormError';\r\nimport {ErrorCode} from './ErrorCode';\r\nimport {StatusCode} from './StatusCode';\r\n\r\nexport class UnauthorizedAccessError extends StormError {\r\n public constructor(userToken: string) {\r\n super(userToken);\r\n }\r\n\r\n public getMessage(): string {\r\n return `Access Denied.`;\r\n }\r\n\r\n public getCode(): ErrorCode {\r\n return ErrorCode.UNAUTHORIZED_ACCESS;\r\n }\r\n\r\n public getHTTPCode(): StatusCode {\r\n return StatusCode.ERR_FORBIDDEN;\r\n }\r\n}\r\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"3127e4e5fe5177c798360ac166c6b9a21c366037","contentHash":"e216ce5cf8c46eebea7eb23c42b4144b512796495e9820efb23ede2c946189fe"},"/development/breautek/storm/src/EntityNotFoundError.ts":{"path":"/development/breautek/storm/src/EntityNotFoundError.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":3,"column":21},"end":{"line":3,"column":44}},"2":{"start":{"line":4,"column":20},"end":{"line":4,"column":42}},"3":{"start":{"line":5,"column":21},"end":{"line":5,"column":44}},"4":{"start":{"line":8,"column":8},"end":{"line":8,"column":30}},"5":{"start":{"line":11,"column":8},"end":{"line":11,"column":67}},"6":{"start":{"line":14,"column":8},"end":{"line":14,"column":51}},"7":{"start":{"line":17,"column":8},"end":{"line":17,"column":53}},"8":{"start":{"line":20,"column":0},"end":{"line":20,"column":50}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":7,"column":4},"end":{"line":7,"column":5}},"loc":{"start":{"line":7,"column":22},"end":{"line":9,"column":5}},"line":7},"1":{"name":"(anonymous_1)","decl":{"start":{"line":10,"column":4},"end":{"line":10,"column":5}},"loc":{"start":{"line":10,"column":17},"end":{"line":12,"column":5}},"line":10},"2":{"name":"(anonymous_2)","decl":{"start":{"line":13,"column":4},"end":{"line":13,"column":5}},"loc":{"start":{"line":13,"column":14},"end":{"line":15,"column":5}},"line":13},"3":{"name":"(anonymous_3)","decl":{"start":{"line":16,"column":4},"end":{"line":16,"column":5}},"loc":{"start":{"line":16,"column":18},"end":{"line":18,"column":5}},"line":16}},"branchMap":{},"s":{"0":1,"1":1,"2":1,"3":1,"4":5,"5":11,"6":6,"7":1,"8":1},"f":{"0":5,"1":11,"2":6,"3":1},"b":{},"inputSourceMap":{"version":3,"file":"/development/breautek/storm/src/EntityNotFoundError.ts","sources":["/development/breautek/storm/src/EntityNotFoundError.ts"],"names":[],"mappings":";;AAeA,6CAAwC;AACxC,2CAAsC;AACtC,6CAAwC;AAExC,MAAa,mBAAoB,SAAQ,uBAAU;IAC/C,YAAmB,IAAY;QAC3B,KAAK,CAAC,EAAC,IAAI,EAAE,IAAI,EAAC,CAAC,CAAC;IACxB,CAAC;IAEM,UAAU;QACb,OAAO,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC,IAAI,mBAAmB,CAAC;IAC/D,CAAC;IAEM,OAAO;QACV,OAAO,qBAAS,CAAC,aAAa,CAAC;IACnC,CAAC;IAEM,WAAW;QACd,OAAO,uBAAU,CAAC,aAAa,CAAC;IACpC,CAAC;CACJ;AAhBD,kDAgBC","sourcesContent":["// Copyright (C) 2017 Norman Breau\r\n\r\n// This program is free software: you can redistribute it and/or modify\r\n// it under the terms of the GNU General Public License as published by\r\n// the Free Software Foundation, either version 3 of the License, or\r\n// (at your option) any later version.\r\n\r\n// This program is distributed in the hope that it will be useful,\r\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\r\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\r\n// GNU General Public License for more details.\r\n\r\n// You should have received a copy of the GNU General Public License\r\n// along with this program. If not, see <http://www.gnu.org/licenses/>.\r\n\r\nimport {StormError} from './StormError';\r\nimport {ErrorCode} from './ErrorCode';\r\nimport {StatusCode} from './StatusCode';\r\n\r\nexport class EntityNotFoundError extends StormError {\r\n public constructor(name: string) {\r\n super({name: name});\r\n }\r\n\r\n public getMessage(): string {\r\n return `${this.getPrivateDetails().name} does not exists.`;\r\n }\r\n\r\n public getCode(): ErrorCode {\r\n return ErrorCode.INVALID_VALUE;\r\n }\r\n\r\n public getHTTPCode(): StatusCode {\r\n return StatusCode.ERR_NOT_FOUND;\r\n }\r\n}\r\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"e8341303005b29e7e8a656749eec6241b36c73e4","contentHash":"e11d0f4663954fb27cd8e0a5ab510bcbd9bc5c3be956304d7665a49b9cd4116e"},"/development/breautek/storm/src/DiskSpaceError.ts":{"path":"/development/breautek/storm/src/DiskSpaceError.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":3,"column":21},"end":{"line":3,"column":44}},"2":{"start":{"line":4,"column":20},"end":{"line":4,"column":42}},"3":{"start":{"line":5,"column":21},"end":{"line":5,"column":44}},"4":{"start":{"line":8,"column":8},"end":{"line":10,"column":11}},"5":{"start":{"line":13,"column":8},"end":{"line":13,"column":33}},"6":{"start":{"line":16,"column":8},"end":{"line":16,"column":61}},"7":{"start":{"line":19,"column":8},"end":{"line":19,"column":54}},"8":{"start":{"line":22,"column":0},"end":{"line":22,"column":40}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":7,"column":4},"end":{"line":7,"column":5}},"loc":{"start":{"line":7,"column":31},"end":{"line":11,"column":5}},"line":7},"1":{"name":"(anonymous_1)","decl":{"start":{"line":12,"column":4},"end":{"line":12,"column":5}},"loc":{"start":{"line":12,"column":17},"end":{"line":14,"column":5}},"line":12},"2":{"name":"(anonymous_2)","decl":{"start":{"line":15,"column":4},"end":{"line":15,"column":5}},"loc":{"start":{"line":15,"column":14},"end":{"line":17,"column":5}},"line":15},"3":{"name":"(anonymous_3)","decl":{"start":{"line":18,"column":4},"end":{"line":18,"column":5}},"loc":{"start":{"line":18,"column":18},"end":{"line":20,"column":5}},"line":18}},"branchMap":{},"s":{"0":1,"1":1,"2":1,"3":1,"4":1,"5":7,"6":6,"7":1,"8":1},"f":{"0":1,"1":7,"2":6,"3":1},"b":{},"inputSourceMap":{"version":3,"file":"/development/breautek/storm/src/DiskSpaceError.ts","sources":["/development/breautek/storm/src/DiskSpaceError.ts"],"names":[],"mappings":";;AAeA,6CAAwC;AACxC,2CAAsC;AACtC,6CAAwC;AAExC,MAAa,cAAe,SAAQ,uBAAU;IAC1C,YAAmB,aAAqB;QACpC,KAAK,CAAC;YACF,KAAK,EAAE,aAAa;SACvB,CAAC,CAAC;IACP,CAAC;IAEM,UAAU;QACb,OAAO,iBAAiB,CAAC;IAC7B,CAAC;IAEM,OAAO;QACV,OAAO,qBAAS,CAAC,uBAAuB,CAAC;IAC7C,CAAC;IAEM,WAAW;QACd,OAAO,uBAAU,CAAC,cAAc,CAAC;IACrC,CAAC;CACJ;AAlBD,wCAkBC","sourcesContent":["// Copyright (C) 2017 Norman Breau\r\n\r\n// This program is free software: you can redistribute it and/or modify\r\n// it under the terms of the GNU General Public License as published by\r\n// the Free Software Foundation, either version 3 of the License, or\r\n// (at your option) any later version.\r\n\r\n// This program is distributed in the hope that it will be useful,\r\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\r\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\r\n// GNU General Public License for more details.\r\n\r\n// You should have received a copy of the GNU General Public License\r\n// along with this program. If not, see <http://www.gnu.org/licenses/>.\r\n\r\nimport {StormError} from './StormError';\r\nimport {ErrorCode} from './ErrorCode';\r\nimport {StatusCode} from './StatusCode';\r\n\r\nexport class DiskSpaceError extends StormError {\r\n public constructor(spaceRequired: number) {\r\n super({\r\n space: spaceRequired\r\n });\r\n }\r\n\r\n public getMessage(): string {\r\n return `Internal Error.`;\r\n }\r\n\r\n public getCode(): ErrorCode {\r\n return ErrorCode.INSUFFICIENT_DISK_SPACE;\r\n }\r\n\r\n public getHTTPCode(): StatusCode {\r\n return StatusCode.INTERNAL_ERROR;\r\n }\r\n}\r\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"95c47a235d34a9c6fff8cddfdaecfa18c7be6d07","contentHash":"a5a5f9c93fcb3ce8245f1cbf28d6be8387de28b7c6a53b3dde4d77dd7c83d86d"},"/development/breautek/storm/src/DuplicateEntryError.ts":{"path":"/development/breautek/storm/src/DuplicateEntryError.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":3,"column":21},"end":{"line":3,"column":44}},"2":{"start":{"line":4,"column":20},"end":{"line":4,"column":42}},"3":{"start":{"line":5,"column":21},"end":{"line":5,"column":44}},"4":{"start":{"line":8,"column":8},"end":{"line":12,"column":11}},"5":{"start":{"line":15,"column":22},"end":{"line":15,"column":46}},"6":{"start":{"line":16,"column":8},"end":{"line":16,"column":98}},"7":{"start":{"line":19,"column":8},"end":{"line":19,"column":53}},"8":{"start":{"line":22,"column":8},"end":{"line":22,"column":55}},"9":{"start":{"line":25,"column":0},"end":{"line":25,"column":50}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":7,"column":4},"end":{"line":7,"column":5}},"loc":{"start":{"line":7,"column":49},"end":{"line":13,"column":5}},"line":7},"1":{"name":"(anonymous_1)","decl":{"start":{"line":14,"column":4},"end":{"line":14,"column":5}},"loc":{"start":{"line":14,"column":17},"end":{"line":17,"column":5}},"line":14},"2":{"name":"(anonymous_2)","decl":{"start":{"line":18,"column":4},"end":{"line":18,"column":5}},"loc":{"start":{"line":18,"column":14},"end":{"line":20,"column":5}},"line":18},"3":{"name":"(anonymous_3)","decl":{"start":{"line":21,"column":4},"end":{"line":21,"column":5}},"loc":{"start":{"line":21,"column":18},"end":{"line":23,"column":5}},"line":21}},"branchMap":{"0":{"loc":{"start":{"line":7,"column":30},"end":{"line":7,"column":47}},"type":"default-arg","locations":[{"start":{"line":7,"column":41},"end":{"line":7,"column":47}}],"line":7}},"s":{"0":1,"1":1,"2":1,"3":1,"4":1,"5":7,"6":7,"7":6,"8":1,"9":1},"f":{"0":1,"1":7,"2":6,"3":1},"b":{"0":[1]},"inputSourceMap":{"version":3,"file":"/development/breautek/storm/src/DuplicateEntryError.ts","sources":["/development/breautek/storm/src/DuplicateEntryError.ts"],"names":[],"mappings":";;AAeA,6CAAwC;AACxC,2CAAsC;AACtC,6CAAwC;AAQxC,MAAa,mBAAoB,SAAQ,uBAAU;IAC/C,YAAmB,MAAc,EAAE,IAAY,EAAE,WAAmB,MAAM;QACtE,KAAK,CAAC;YACF,MAAM;YACN,IAAI;YACJ,QAAQ;SACX,CAAC,CAAC;IACP,CAAC;IAEM,UAAU;QACb,IAAI,OAAO,GAAgC,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACpE,OAAO,GAAG,OAAO,CAAC,MAAM,aAAa,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC,IAAI,mBAAmB,CAAC;IAC9F,CAAC;IAEM,OAAO;QACV,OAAO,qBAAS,CAAC,eAAe,CAAC;IACrC,CAAC;IAEM,WAAW;QACd,OAAO,uBAAU,CAAC,eAAe,CAAC;IACtC,CAAC;CACJ;AArBD,kDAqBC","sourcesContent":["// Copyright (C) 2017 Norman Breau\r\n\r\n// This program is free software: you can redistribute it and/or modify\r\n// it under the terms of the GNU General Public License as published by\r\n// the Free Software Foundation, either version 3 of the License, or\r\n// (at your option) any later version.\r\n\r\n// This program is distributed in the hope that it will be useful,\r\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\r\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\r\n// GNU General Public License for more details.\r\n\r\n// You should have received a copy of the GNU General Public License\r\n// along with this program. If not, see <http://www.gnu.org/licenses/>.\r\n\r\nimport {StormError} from './StormError';\r\nimport {ErrorCode} from './ErrorCode';\r\nimport {StatusCode} from './StatusCode';\r\n\r\ninterface IDuplicateEntryErrorOptions {\r\n entity: string;\r\n name: string;\r\n property: string;\r\n}\r\n\r\nexport class DuplicateEntryError extends StormError {\r\n public constructor(entity: string, name: string, property: string = 'name') {\r\n super({\r\n entity,\r\n name,\r\n property\r\n });\r\n }\r\n\r\n public getMessage(): string {\r\n let details: IDuplicateEntryErrorOptions = this.getPrivateDetails();\r\n return `${details.entity} with the ${details.property} \"${details.name}\" already exists.`;\r\n }\r\n\r\n public getCode(): ErrorCode {\r\n return ErrorCode.DUPLICATE_ENTRY;\r\n }\r\n\r\n public getHTTPCode(): StatusCode {\r\n return StatusCode.ERR_BAD_REQUEST;\r\n }\r\n}\r\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"210cd92708a26658d23004eea4b3cf7237e8b735","contentHash":"0b334c64cdec99919827242ca68b75d0ca598336b08138786dbb7d55d4793f1d"},"/development/breautek/storm/src/ServiceProvider.ts":{"path":"/development/breautek/storm/src/ServiceProvider.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":3,"column":21},"end":{"line":3,"column":44}},"2":{"start":{"line":4,"column":26},"end":{"line":4,"column":54}},"3":{"start":{"line":5,"column":13},"end":{"line":5,"column":28}},"4":{"start":{"line":6,"column":16},"end":{"line":6,"column":26}},"5":{"start":{"line":9,"column":8},"end":{"line":9,"column":24}},"6":{"start":{"line":12,"column":8},"end":{"line":12,"column":25}},"7":{"start":{"line":15,"column":8},"end":{"line":15,"column":25}},"8":{"start":{"line":18,"column":8},"end":{"line":18,"column":27}},"9":{"start":{"line":21,"column":8},"end":{"line":21,"column":67}},"10":{"start":{"line":24,"column":8},"end":{"line":24,"column":19}},"11":{"start":{"line":27,"column":8},"end":{"line":27,"column":22}},"12":{"start":{"line":30,"column":8},"end":{"line":30,"column":20}},"13":{"start":{"line":33,"column":26},"end":{"line":33,"column":28}},"14":{"start":{"line":34,"column":8},"end":{"line":43,"column":9}},"15":{"start":{"line":35,"column":12},"end":{"line":42,"column":13}},"16":{"start":{"line":36,"column":16},"end":{"line":41,"column":17}},"17":{"start":{"line":37,"column":20},"end":{"line":37,"column":65}},"18":{"start":{"line":40,"column":20},"end":{"line":40,"column":66}},"19":{"start":{"line":44,"column":8},"end":{"line":44,"column":102}},"20":{"start":{"line":47,"column":8},"end":{"line":91,"column":11}},"21":{"start":{"line":48,"column":27},"end":{"line":54,"column":13}},"22":{"start":{"line":55,"column":12},"end":{"line":55,"column":88}},"23":{"start":{"line":56,"column":12},"end":{"line":56,"column":102}},"24":{"start":{"line":57,"column":12},"end":{"line":59,"column":13}},"25":{"start":{"line":58,"column":16},"end":{"line":58,"column":70}},"26":{"start":{"line":60,"column":12},"end":{"line":60,"column":67}},"27":{"start":{"line":61,"column":12},"end":{"line":61,"column":70}},"28":{"start":{"line":62,"column":12},"end":{"line":62,"column":74}},"29":{"start":{"line":63,"column":12},"end":{"line":63,"column":66}},"30":{"start":{"line":64,"column":12},"end":{"line":64,"column":66}},"31":{"start":{"line":65,"column":12},"end":{"line":65,"column":88}},"32":{"start":{"line":66,"column":31},"end":{"line":66,"column":46}},"33":{"start":{"line":67,"column":26},"end":{"line":85,"column":14}},"34":{"start":{"line":68,"column":16},"end":{"line":68,"column":103}},"35":{"start":{"line":69,"column":16},"end":{"line":69,"column":117}},"36":{"start":{"line":70,"column":16},"end":{"line":76,"column":19}},"37":{"start":{"line":71,"column":20},"end":{"line":71,"column":92}},"38":{"start":{"line":72,"column":20},"end":{"line":75,"column":23}},"39":{"start":{"line":77,"column":16},"end":{"line":80,"column":19}},"40":{"start":{"line":78,"column":20},"end":{"line":78,"column":90}},"41":{"start":{"line":79,"column":20},"end":{"line":79,"column":91}},"42":{"start":{"line":81,"column":16},"end":{"line":84,"column":19}},"43":{"start":{"line":82,"column":20},"end":{"line":82,"column":59}},"44":{"start":{"line":83,"column":20},"end":{"line":83,"column":30}},"45":{"start":{"line":86,"column":12},"end":{"line":89,"column":13}},"46":{"start":{"line":87,"column":16},"end":{"line":87,"column":44}},"47":{"start":{"line":88,"column":16},"end":{"line":88,"column":36}},"48":{"start":{"line":90,"column":12},"end":{"line":90,"column":39}},"49":{"start":{"line":94,"column":8},"end":{"line":94,"column":22}},"50":{"start":{"line":97,"column":8},"end":{"line":97,"column":135}},"51":{"start":{"line":100,"column":8},"end":{"line":100,"column":127}},"52":{"start":{"line":103,"column":8},"end":{"line":103,"column":126}},"53":{"start":{"line":106,"column":8},"end":{"line":106,"column":129}},"54":{"start":{"line":109,"column":0},"end":{"line":109,"column":42}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":8,"column":4},"end":{"line":8,"column":5}},"loc":{"start":{"line":8,"column":21},"end":{"line":10,"column":5}},"line":8},"1":{"name":"(anonymous_1)","decl":{"start":{"line":11,"column":4},"end":{"line":11,"column":5}},"loc":{"start":{"line":11,"column":14},"end":{"line":13,"column":5}},"line":11},"2":{"name":"(anonymous_2)","decl":{"start":{"line":14,"column":4},"end":{"line":14,"column":5}},"loc":{"start":{"line":14,"column":13},"end":{"line":16,"column":5}},"line":14},"3":{"name":"(anonymous_3)","decl":{"start":{"line":17,"column":4},"end":{"line":17,"column":5}},"loc":{"start":{"line":17,"column":17},"end":{"line":19,"column":5}},"line":17},"4":{"name":"(anonymous_4)","decl":{"start":{"line":20,"column":4},"end":{"line":20,"column":5}},"loc":{"start":{"line":20,"column":17},"end":{"line":22,"column":5}},"line":20},"5":{"name":"(anonymous_5)","decl":{"start":{"line":23,"column":4},"end":{"line":23,"column":5}},"loc":{"start":{"line":23,"column":16},"end":{"line":25,"column":5}},"line":23},"6":{"name":"(anonymous_6)","decl":{"start":{"line":26,"column":4},"end":{"line":26,"column":5}},"loc":{"start":{"line":26,"column":19},"end":{"line":28,"column":5}},"line":26},"7":{"name":"(anonymous_7)","decl":{"start":{"line":29,"column":4},"end":{"line":29,"column":5}},"loc":{"start":{"line":29,"column":17},"end":{"line":31,"column":5}},"line":29},"8":{"name":"(anonymous_8)","decl":{"start":{"line":32,"column":4},"end":{"line":32,"column":5}},"loc":{"start":{"line":32,"column":33},"end":{"line":45,"column":5}},"line":32},"9":{"name":"(anonymous_9)","decl":{"start":{"line":46,"column":4},"end":{"line":46,"column":5}},"loc":{"start":{"line":46,"column":72},"end":{"line":92,"column":5}},"line":46},"10":{"name":"(anonymous_10)","decl":{"start":{"line":47,"column":27},"end":{"line":47,"column":28}},"loc":{"start":{"line":47,"column":48},"end":{"line":91,"column":9}},"line":47},"11":{"name":"(anonymous_11)","decl":{"start":{"line":67,"column":49},"end":{"line":67,"column":50}},"loc":{"start":{"line":67,"column":63},"end":{"line":85,"column":13}},"line":67},"12":{"name":"(anonymous_12)","decl":{"start":{"line":70,"column":36},"end":{"line":70,"column":37}},"loc":{"start":{"line":70,"column":47},"end":{"line":76,"column":17}},"line":70},"13":{"name":"(anonymous_13)","decl":{"start":{"line":77,"column":35},"end":{"line":77,"column":36}},"loc":{"start":{"line":77,"column":41},"end":{"line":80,"column":17}},"line":77},"14":{"name":"(anonymous_14)","decl":{"start":{"line":81,"column":37},"end":{"line":81,"column":38}},"loc":{"start":{"line":81,"column":44},"end":{"line":84,"column":17}},"line":81},"15":{"name":"(anonymous_15)","decl":{"start":{"line":93,"column":4},"end":{"line":93,"column":5}},"loc":{"start":{"line":93,"column":26},"end":{"line":95,"column":5}},"line":93},"16":{"name":"(anonymous_16)","decl":{"start":{"line":96,"column":4},"end":{"line":96,"column":5}},"loc":{"start":{"line":96,"column":60},"end":{"line":98,"column":5}},"line":96},"17":{"name":"(anonymous_17)","decl":{"start":{"line":99,"column":4},"end":{"line":99,"column":5}},"loc":{"start":{"line":99,"column":61},"end":{"line":101,"column":5}},"line":99},"18":{"name":"(anonymous_18)","decl":{"start":{"line":102,"column":4},"end":{"line":102,"column":5}},"loc":{"start":{"line":102,"column":60},"end":{"line":104,"column":5}},"line":102},"19":{"name":"(anonymous_19)","decl":{"start":{"line":105,"column":4},"end":{"line":105,"column":5}},"loc":{"start":{"line":105,"column":63},"end":{"line":107,"column":5}},"line":105}},"branchMap":{"0":{"loc":{"start":{"line":34,"column":8},"end":{"line":43,"column":9}},"type":"if","locations":[{"start":{"line":34,"column":8},"end":{"line":43,"column":9}},{"start":{"line":34,"column":8},"end":{"line":43,"column":9}}],"line":34},"1":{"loc":{"start":{"line":36,"column":16},"end":{"line":41,"column":17}},"type":"if","locations":[{"start":{"line":36,"column":16},"end":{"line":41,"column":17}},{"start":{"line":36,"column":16},"end":{"line":41,"column":17}}],"line":36},"2":{"loc":{"start":{"line":53,"column":25},"end":{"line":53,"column":38}},"type":"binary-expr","locations":[{"start":{"line":53,"column":25},"end":{"line":53,"column":32}},{"start":{"line":53,"column":36},"end":{"line":53,"column":38}}],"line":53},"3":{"loc":{"start":{"line":57,"column":12},"end":{"line":59,"column":13}},"type":"if","locations":[{"start":{"line":57,"column":12},"end":{"line":59,"column":13}},{"start":{"line":57,"column":12},"end":{"line":59,"column":13}}],"line":57},"4":{"loc":{"start":{"line":86,"column":12},"end":{"line":89,"column":13}},"type":"if","locations":[{"start":{"line":86,"column":12},"end":{"line":89,"column":13}},{"start":{"line":86,"column":12},"end":{"line":89,"column":13}}],"line":86},"5":{"loc":{"start":{"line":86,"column":16},"end":{"line":86,"column":40}},"type":"binary-expr","locations":[{"start":{"line":86,"column":16},"end":{"line":86,"column":20}},{"start":{"line":86,"column":24},"end":{"line":86,"column":40}}],"line":86}},"s":{"0":1,"1":1,"2":1,"3":1,"4":1,"5":1,"6":4,"7":1,"8":5,"9":4,"10":5,"11":1,"12":5,"13":4,"14":4,"15":1,"16":2,"17":1,"18":1,"19":4,"20":4,"21":4,"22":4,"23":4,"24":4,"25":4,"26":4,"27":4,"28":4,"29":4,"30":4,"31":4,"32":4,"33":4,"34":4,"35":4,"36":4,"37":2,"38":2,"39":4,"40":4,"41":4,"42":4,"43":0,"44":0,"45":4,"46":3,"47":3,"48":4,"49":4,"50":1,"51":1,"52":1,"53":1,"54":1},"f":{"0":1,"1":4,"2":1,"3":5,"4":4,"5":5,"6":1,"7":5,"8":4,"9":4,"10":4,"11":4,"12":2,"13":4,"14":0,"15":4,"16":1,"17":1,"18":1,"19":1},"b":{"0":[1,3],"1":[1,1],"2":[4,4],"3":[4,0],"4":[3,1],"5":[4,4]},"inputSourceMap":{"version":3,"file":"/development/breautek/storm/src/ServiceProvider.ts","sources":["/development/breautek/storm/src/ServiceProvider.ts"],"names":[],"mappings":"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","sourcesContent":["\nimport {Application} from './Application';\nimport {IServiceHeaders} from './IServiceHeaders';\nimport {HTTPMethod} from './HTTPMethod';\nimport {ServiceResponse} from './ServiceResponse';\nimport * as http from 'http';\n\nconst NO_DATA: string = `|${0x0}|`;\n\nexport abstract class ServiceProvider {\n private _app: Application;\n\n public constructor(app: Application) {\n this._app = app;\n }\n\n protected abstract _getBase(): string;\n protected abstract _getPort(): number;\n\n protected _getApp(): Application {\n return this._app;\n }\n\n public getApp(): Application {\n return this._app;\n }\n\n protected _getDomain(): string {\n return '127.0.0.1';\n }\n\n private _getSecret(): string {\n return this._app.getConfig().backend_authentication_secret;\n }\n\n public urlSuffix(): string {\n return '/';\n }\n\n protected _getProtocol(): string {\n return 'http';\n }\n\n public getVersion(): string {\n return 'v1';\n }\n\n protected _createURL(url: string, queryParams?: any): string {\n let queryString: string = '';\n\n if (queryParams) {\n for (let i in queryParams) {\n if (queryString === '') {\n queryString = '?' + i + '=' + queryParams[i];\n }\n else {\n queryString += '&' + i + '=' + queryParams[i];\n }\n }\n }\n\n return `/api/${this._getBase()}/${this.getVersion()}/${url}${this.urlSuffix()}${queryString}`;\n }\n\n public request(method: HTTPMethod, url: string, accessToken: string, data: any, headers?: IServiceHeaders, additionalOptions?: any): Promise<ServiceResponse> {\n return new Promise<ServiceResponse>((resolve, reject) => {\n let httpOpts: http.RequestOptions = {\n port: this._getPort(),\n hostname: `${this._getDomain()}`,\n method: method,\n path: url,\n headers: headers || {}\n };\n\n httpOpts.headers[this._app.getConfig().authentication_header] = accessToken;\n httpOpts.headers[this._app.getConfig().backend_authentication_header] = this._getSecret();\n \n if (!httpOpts.headers['Content-Type']) {\n httpOpts.headers['Content-Type'] = 'application/json';\n }\n\n this._app.getLogger().trace(`ServiceProvider Request`);\n this._app.getLogger().trace(`METHOD: ${httpOpts.method}`);\n this._app.getLogger().trace(`HOSTNAME: ${httpOpts.hostname}`);\n this._app.getLogger().trace(`PORT: ${httpOpts.port}`);\n this._app.getLogger().trace(`PATH: ${httpOpts.path}`);\n this._app.getLogger().trace(`HEADERS: ${JSON.stringify(httpOpts.headers)}`);\n \n let responseData: Buffer = Buffer.from('');\n\n let request: http.ClientRequest = http.request(httpOpts, (response: http.IncomingMessage) => {\n this._app.getLogger().trace(`ServiceProvider Response Status: ${response.statusCode}`);\n this._app.getLogger().trace(`ServiceProvider Response Headers: ${JSON.stringify(response.headers)}`);\n\n response.on('data', (chunk: Buffer) => {\n this._app.getLogger().trace(`ServiceProvider Received Chunk: ${chunk}`);\n responseData = Buffer.concat([\n responseData,\n chunk\n ]);\n });\n\n response.on('end', () => {\n this._app.getLogger().trace(`ServiceProvider request has completed.`);\n resolve(new ServiceResponse(responseData, response));\n });\n\n response.on('error', (e: Error) => {\n this._app.getLogger().error(e.message);\n reject(e);\n });\n });\n\n if (data && data !== NO_DATA) {\n data = JSON.stringify(data);\n request.write(data);\n }\n\n this._sendRequest(request);\n });\n }\n\n private _sendRequest(request: http.ClientRequest): void {\n request.end();\n }\n\n public get(url: string, accessToken: string, data?: any, headers?: IServiceHeaders, additionalOptions?: any): Promise<ServiceResponse> {\n return this.request(HTTPMethod.GET, this._createURL(url, data), accessToken, NO_DATA, headers, additionalOptions);\n }\n\n public post(url: string, accessToken: string, data?: any, headers?: IServiceHeaders, additionalOptions?: any): Promise<ServiceResponse> {\n return this.request(HTTPMethod.POST, this._createURL(url), accessToken, data, headers, additionalOptions);\n }\n\n public put(url: string, accessToken: string, data?: any, headers?: IServiceHeaders, additionalOptions?: any): Promise<ServiceResponse> {\n return this.request(HTTPMethod.PUT, this._createURL(url), accessToken, data, headers, additionalOptions);\n }\n\n public delete(url: string, accessToken: string, data?: any, headers?: IServiceHeaders, additionalOptions?: any): Promise<ServiceResponse> {\n return this.request(HTTPMethod.DELETE, this._createURL(url), accessToken, data, headers, additionalOptions);\n }\n}\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"df0d0483550fb353dbb8ed37d1368178c0aa8b21","contentHash":"ed8d0614f1c0c2ba0b84a249e6661b7241acfd31c80888b5a9befe6b3fdf822e"},"/development/breautek/storm/src/ServiceResponse.ts":{"path":"/development/breautek/storm/src/ServiceResponse.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":5,"column":8},"end":{"line":5,"column":26}},"2":{"start":{"line":6,"column":8},"end":{"line":6,"column":34}},"3":{"start":{"line":9,"column":8},"end":{"line":9,"column":26}},"4":{"start":{"line":12,"column":8},"end":{"line":12,"column":43}},"5":{"start":{"line":15,"column":8},"end":{"line":15,"column":42}},"6":{"start":{"line":18,"column":0},"end":{"line":18,"column":42}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":4,"column":4},"end":{"line":4,"column":5}},"loc":{"start":{"line":4,"column":32},"end":{"line":7,"column":5}},"line":4},"1":{"name":"(anonymous_1)","decl":{"start":{"line":8,"column":4},"end":{"line":8,"column":5}},"loc":{"start":{"line":8,"column":13},"end":{"line":10,"column":5}},"line":8},"2":{"name":"(anonymous_2)","decl":{"start":{"line":11,"column":4},"end":{"line":11,"column":5}},"loc":{"start":{"line":11,"column":14},"end":{"line":13,"column":5}},"line":11},"3":{"name":"(anonymous_3)","decl":{"start":{"line":14,"column":4},"end":{"line":14,"column":5}},"loc":{"start":{"line":14,"column":14},"end":{"line":16,"column":5}},"line":14}},"branchMap":{},"s":{"0":1,"1":8,"2":8,"3":1,"4":5,"5":3,"6":1},"f":{"0":8,"1":1,"2":5,"3":3},"b":{},"inputSourceMap":{"version":3,"file":"/development/breautek/storm/src/ServiceResponse.ts","sources":["/development/breautek/storm/src/ServiceResponse.ts"],"names":[],"mappings":";;AAEA,MAAa,eAAe;IAIxB,YAAmB,IAAY,EAAE,QAAyB;QACtD,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAClB,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;IAC9B,CAAC;IAEM,MAAM;QACT,OAAO,IAAI,CAAC,KAAK,CAAC;IACtB,CAAC;IAEM,OAAO;QACV,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IACvC,CAAC;IAEM,OAAO;QACV,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;IACtC,CAAC;CACJ;AApBD,0CAoBC","sourcesContent":["import {IncomingMessage} from 'http';\n\nexport class ServiceResponse {\n private _data: Buffer;\n private _response: IncomingMessage;\n\n public constructor(data: Buffer, response: IncomingMessage) {\n this._data = data;\n this._response = response;\n }\n\n public getRaw(): Buffer {\n return this._data;\n }\n\n public getUTF8(): string {\n return this._data.toString('utf8');\n }\n\n public getJSON(): any {\n return JSON.parse(this.getUTF8());\n }\n}\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"e710a743a33402b7c50f288b9d68f9d5fbb4ab04","contentHash":"89a5022198f9063bfeb32feb30f26160485afcb7f1303ff9bae2c04e9701774d"}}
\No newline at end of file