You're Invited:Meet the Socket Team at BlackHat and DEF CON in Las Vegas, Aug 7-8.RSVP
Socket
Socket
Sign inDemoInstall

awilix

Package Overview
Dependencies
Maintainers
1
Versions
81
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 2.4.0 to 2.5.0

7

CHANGELOG.md
# Awilix Changelog
## 2.5.0
* **[NEW]**: Implemented per-module locals injection ([#24](https://github.com/jeffijoe/awilix/issues/24)).
* Fixed issue where passing a `Lifetime` like `.registerFunction('name', func, Lifetime.SCOPED)` didn't work.
* Documented `asClass`, `asValue` and `asFunction`.
* **[FIXED]**: nasty options leaking when using `registerClass/Function({ test1: [Test1, { }], test2: [Test2, { }] })`.
## 2.4.0

@@ -4,0 +11,0 @@

2

coverage/coverage.json

@@ -1,1 +0,1 @@

{"/Users/jeff/Projects/awilix/lib/awilix.js":{"path":"/Users/jeff/Projects/awilix/lib/awilix.js","s":{"1":1,"2":1},"b":{},"f":{},"fnMap":{},"statementMap":{"1":{"start":{"line":2,"column":0},"end":{"line":8,"column":1}},"2":{"start":{"line":11,"column":0},"end":{"line":11,"column":57}}},"branchMap":{}},"/Users/jeff/Projects/awilix/lib/createContainer.js":{"path":"/Users/jeff/Projects/awilix/lib/createContainer.js","s":{"1":1,"2":1,"3":1,"4":1,"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":71,"12":71,"13":71,"14":71,"15":71,"16":65,"17":2,"18":71,"19":71,"20":71,"21":71,"22":8,"23":71,"24":67,"25":1,"26":71,"27":71,"28":133,"29":71,"30":17,"31":71,"32":71,"33":86,"34":86,"35":92,"36":92,"37":86,"38":71,"39":71,"40":213,"41":32,"42":32,"43":45,"44":45,"45":45,"46":5,"47":5,"48":45,"49":32,"50":71,"51":71,"52":71,"53":71,"54":101,"55":68,"56":101,"57":101,"58":101,"59":101,"60":1,"61":100,"62":5,"63":95,"64":95,"65":95,"66":63,"67":49,"68":6,"69":6,"70":2,"71":2,"72":4,"73":6,"74":25,"75":38,"76":38,"77":14,"78":14,"79":25,"80":11,"81":11,"82":25,"83":1,"84":80,"85":80,"86":21,"87":21,"88":101,"89":82,"90":71,"91":71,"92":3,"93":3,"94":71,"95":71},"b":{"1":[1,1],"2":[17,54],"3":[71,71],"4":[133,37],"5":[5,40],"6":[45,34],"7":[68,33],"8":[1,100],"9":[5,95],"10":[63,6,25,1],"11":[2,4],"12":[14,24],"13":[11,14],"14":[82,19]},"f":{"1":71,"2":65,"3":8,"4":32},"fnMap":{"1":{"name":"createContainer","line":28,"loc":{"start":{"line":28,"column":17},"end":{"line":28,"column":71}}},"2":{"name":"(anonymous_2)","line":57,"loc":{"start":{"line":57,"column":22},"end":{"line":57,"column":25}}},"3":{"name":"(anonymous_3)","line":91,"loc":{"start":{"line":91,"column":32},"end":{"line":91,"column":47}}},"4":{"name":"registerShortcut","line":186,"loc":{"start":{"line":186,"column":46},"end":{"line":186,"column":92}}}},"statementMap":{"1":{"start":{"line":1,"column":0},"end":{"line":1,"column":44}},"2":{"start":{"line":2,"column":0},"end":{"line":2,"column":44}},"3":{"start":{"line":3,"column":0},"end":{"line":3,"column":67}},"4":{"start":{"line":4,"column":0},"end":{"line":4,"column":50}},"5":{"start":{"line":5,"column":0},"end":{"line":5,"column":64}},"6":{"start":{"line":6,"column":0},"end":{"line":6,"column":56}},"7":{"start":{"line":7,"column":0},"end":{"line":7,"column":38}},"8":{"start":{"line":8,"column":0},"end":{"line":8,"column":30}},"9":{"start":{"line":14,"column":0},"end":{"line":14,"column":40}},"10":{"start":{"line":28,"column":0},"end":{"line":366,"column":1}},"11":{"start":{"line":29,"column":2},"end":{"line":31,"column":13}},"12":{"start":{"line":37,"column":2},"end":{"line":37,"column":26}},"13":{"start":{"line":41,"column":2},"end":{"line":41,"column":32}},"14":{"start":{"line":44,"column":2},"end":{"line":44,"column":26}},"15":{"start":{"line":47,"column":2},"end":{"line":67,"column":3}},"16":{"start":{"line":58,"column":6},"end":{"line":58,"column":34}},"17":{"start":{"line":65,"column":6},"end":{"line":65,"column":134}},"18":{"start":{"line":70,"column":2},"end":{"line":72,"column":17}},"19":{"start":{"line":80,"column":2},"end":{"line":80,"column":37}},"20":{"start":{"line":87,"column":2},"end":{"line":87,"column":22}},"21":{"start":{"line":90,"column":2},"end":{"line":94,"column":3}},"22":{"start":{"line":91,"column":49},"end":{"line":91,"column":69}},"23":{"start":{"line":101,"column":2},"end":{"line":125,"column":4}},"24":{"start":{"line":114,"column":27},"end":{"line":114,"column":40}},"25":{"start":{"line":123,"column":6},"end":{"line":123,"column":104}},"26":{"start":{"line":127,"column":2},"end":{"line":127,"column":27}},"27":{"start":{"line":135,"column":2},"end":{"line":141,"column":3}},"28":{"start":{"line":136,"column":4},"end":{"line":140,"column":5}},"29":{"start":{"line":149,"column":2},"end":{"line":151,"column":3}},"30":{"start":{"line":150,"column":4},"end":{"line":150,"column":46}},"31":{"start":{"line":153,"column":2},"end":{"line":153,"column":37}},"32":{"start":{"line":164,"column":2},"end":{"line":172,"column":3}},"33":{"start":{"line":165,"column":4},"end":{"line":165,"column":53}},"34":{"start":{"line":166,"column":4},"end":{"line":169,"column":5}},"35":{"start":{"line":167,"column":6},"end":{"line":167,"column":28}},"36":{"start":{"line":168,"column":6},"end":{"line":168,"column":32}},"37":{"start":{"line":171,"column":4},"end":{"line":171,"column":20}},"38":{"start":{"line":174,"column":2},"end":{"line":174,"column":31}},"39":{"start":{"line":186,"column":2},"end":{"line":207,"column":3}},"40":{"start":{"line":186,"column":46},"end":{"line":207,"column":3}},"41":{"start":{"line":188,"column":4},"end":{"line":188,"column":46}},"42":{"start":{"line":190,"column":4},"end":{"line":203,"column":5}},"43":{"start":{"line":191,"column":6},"end":{"line":191,"column":36}},"44":{"start":{"line":194,"column":6},"end":{"line":194,"column":36}},"45":{"start":{"line":196,"column":6},"end":{"line":200,"column":7}},"46":{"start":{"line":198,"column":8},"end":{"line":198,"column":58}},"47":{"start":{"line":199,"column":8},"end":{"line":199,"column":44}},"48":{"start":{"line":202,"column":6},"end":{"line":202,"column":46}},"49":{"start":{"line":206,"column":4},"end":{"line":206,"column":20}},"50":{"start":{"line":221,"column":2},"end":{"line":221,"column":55}},"51":{"start":{"line":235,"column":2},"end":{"line":235,"column":49}},"52":{"start":{"line":249,"column":2},"end":{"line":249,"column":76}},"53":{"start":{"line":260,"column":2},"end":{"line":339,"column":3}},"54":{"start":{"line":261,"column":4},"end":{"line":263,"column":5}},"55":{"start":{"line":262,"column":6},"end":{"line":262,"column":49}},"56":{"start":{"line":267,"column":4},"end":{"line":267,"column":33}},"57":{"start":{"line":269,"column":4},"end":{"line":338,"column":5}},"58":{"start":{"line":271,"column":6},"end":{"line":271,"column":52}},"59":{"start":{"line":272,"column":6},"end":{"line":274,"column":7}},"60":{"start":{"line":273,"column":8},"end":{"line":273,"column":95}},"61":{"start":{"line":276,"column":6},"end":{"line":278,"column":7}},"62":{"start":{"line":277,"column":8},"end":{"line":277,"column":62}},"63":{"start":{"line":281,"column":6},"end":{"line":281,"column":32}},"64":{"start":{"line":284,"column":6},"end":{"line":284,"column":26}},"65":{"start":{"line":285,"column":6},"end":{"line":324,"column":7}},"66":{"start":{"line":288,"column":10},"end":{"line":288,"column":52}},"67":{"start":{"line":289,"column":10},"end":{"line":289,"column":15}},"68":{"start":{"line":292,"column":10},"end":{"line":292,"column":35}},"69":{"start":{"line":293,"column":10},"end":{"line":298,"column":11}},"70":{"start":{"line":294,"column":12},"end":{"line":294,"column":54}},"71":{"start":{"line":295,"column":12},"end":{"line":295,"column":39}},"72":{"start":{"line":297,"column":12},"end":{"line":297,"column":29}},"73":{"start":{"line":299,"column":10},"end":{"line":299,"column":15}},"74":{"start":{"line":307,"column":10},"end":{"line":314,"column":11}},"75":{"start":{"line":308,"column":12},"end":{"line":308,"column":34}},"76":{"start":{"line":309,"column":12},"end":{"line":313,"column":13}},"77":{"start":{"line":311,"column":14},"end":{"line":311,"column":31}},"78":{"start":{"line":312,"column":14},"end":{"line":312,"column":19}},"79":{"start":{"line":317,"column":10},"end":{"line":320,"column":11}},"80":{"start":{"line":318,"column":12},"end":{"line":318,"column":54}},"81":{"start":{"line":319,"column":12},"end":{"line":319,"column":44}},"82":{"start":{"line":321,"column":10},"end":{"line":321,"column":15}},"83":{"start":{"line":323,"column":10},"end":{"line":323,"column":111}},"84":{"start":{"line":326,"column":6},"end":{"line":326,"column":27}},"85":{"start":{"line":327,"column":6},"end":{"line":327,"column":21}},"86":{"start":{"line":330,"column":6},"end":{"line":330,"column":26}},"87":{"start":{"line":331,"column":6},"end":{"line":331,"column":15}},"88":{"start":{"line":335,"column":6},"end":{"line":337,"column":7}},"89":{"start":{"line":336,"column":8},"end":{"line":336,"column":34}},"90":{"start":{"line":341,"column":2},"end":{"line":341,"column":29}},"91":{"start":{"line":352,"column":2},"end":{"line":355,"column":3}},"92":{"start":{"line":353,"column":4},"end":{"line":353,"column":53}},"93":{"start":{"line":354,"column":4},"end":{"line":354,"column":20}},"94":{"start":{"line":362,"column":2},"end":{"line":362,"column":37}},"95":{"start":{"line":365,"column":2},"end":{"line":365,"column":18}}},"branchMap":{"1":{"line":65,"type":"cond-expr","locations":[{"start":{"line":65,"column":54},"end":{"line":65,"column":64}},{"start":{"line":65,"column":67},"end":{"line":65,"column":69}}]},"2":{"line":70,"type":"cond-expr","locations":[{"start":{"line":71,"column":6},"end":{"line":71,"column":56}},{"start":{"line":72,"column":6},"end":{"line":72,"column":17}}]},"3":{"line":91,"type":"binary-expr","locations":[{"start":{"line":91,"column":13},"end":{"line":91,"column":28}},{"start":{"line":91,"column":32},"end":{"line":91,"column":70}}]},"4":{"line":138,"type":"binary-expr","locations":[{"start":{"line":138,"column":6},"end":{"line":138,"column":23}},{"start":{"line":138,"column":27},"end":{"line":138,"column":58}}]},"5":{"line":196,"type":"if","locations":[{"start":{"line":196,"column":6},"end":{"line":196,"column":6}},{"start":{"line":196,"column":6},"end":{"line":196,"column":6}}]},"6":{"line":196,"type":"binary-expr","locations":[{"start":{"line":196,"column":10},"end":{"line":196,"column":24}},{"start":{"line":196,"column":28},"end":{"line":196,"column":58}}]},"7":{"line":261,"type":"if","locations":[{"start":{"line":261,"column":4},"end":{"line":261,"column":4}},{"start":{"line":261,"column":4},"end":{"line":261,"column":4}}]},"8":{"line":272,"type":"if","locations":[{"start":{"line":272,"column":6},"end":{"line":272,"column":6}},{"start":{"line":272,"column":6},"end":{"line":272,"column":6}}]},"9":{"line":276,"type":"if","locations":[{"start":{"line":276,"column":6},"end":{"line":276,"column":6}},{"start":{"line":276,"column":6},"end":{"line":276,"column":6}}]},"10":{"line":285,"type":"switch","locations":[{"start":{"line":286,"column":8},"end":{"line":289,"column":15}},{"start":{"line":290,"column":8},"end":{"line":299,"column":15}},{"start":{"line":300,"column":8},"end":{"line":321,"column":15}},{"start":{"line":322,"column":8},"end":{"line":323,"column":111}}]},"11":{"line":293,"type":"if","locations":[{"start":{"line":293,"column":10},"end":{"line":293,"column":10}},{"start":{"line":293,"column":10},"end":{"line":293,"column":10}}]},"12":{"line":309,"type":"if","locations":[{"start":{"line":309,"column":12},"end":{"line":309,"column":12}},{"start":{"line":309,"column":12},"end":{"line":309,"column":12}}]},"13":{"line":317,"type":"if","locations":[{"start":{"line":317,"column":10},"end":{"line":317,"column":10}},{"start":{"line":317,"column":10},"end":{"line":317,"column":10}}]},"14":{"line":335,"type":"if","locations":[{"start":{"line":335,"column":6},"end":{"line":335,"column":6}},{"start":{"line":335,"column":6},"end":{"line":335,"column":6}}]}}},"/Users/jeff/Projects/awilix/lib/loadModules.js":{"path":"/Users/jeff/Projects/awilix/lib/loadModules.js","s":{"1":1,"2":1,"3":1,"4":1,"5":1,"6":1,"7":1,"8":1,"9":11,"10":11,"11":11,"12":11,"13":11,"14":22,"15":22,"16":1,"17":21,"18":5,"19":3,"20":2,"21":16,"22":11,"23":22,"24":19,"25":19,"26":19,"27":3,"28":2,"29":3,"30":2,"31":19,"32":19,"33":5,"34":19,"35":19,"36":19,"37":11},"b":{"1":[11,2],"2":[11,11],"3":[1,21],"4":[5,16],"5":[3,2],"6":[5,3],"7":[3,16],"8":[2,1],"9":[2,1],"10":[5,14],"11":[1,18]},"f":{"1":11},"fnMap":{"1":{"name":"loadModules","line":38,"loc":{"start":{"line":38,"column":17},"end":{"line":38,"column":73}}}},"statementMap":{"1":{"start":{"line":1,"column":0},"end":{"line":1,"column":39}},"2":{"start":{"line":2,"column":0},"end":{"line":2,"column":35}},"3":{"start":{"line":3,"column":0},"end":{"line":3,"column":37}},"4":{"start":{"line":4,"column":0},"end":{"line":4,"column":42}},"5":{"start":{"line":5,"column":0},"end":{"line":5,"column":38}},"6":{"start":{"line":6,"column":0},"end":{"line":6,"column":48}},"7":{"start":{"line":8,"column":0},"end":{"line":10,"column":1}},"8":{"start":{"line":38,"column":0},"end":{"line":108,"column":1}},"9":{"start":{"line":39,"column":2},"end":{"line":39,"column":42}},"10":{"start":{"line":40,"column":2},"end":{"line":40,"column":19}},"11":{"start":{"line":41,"column":2},"end":{"line":47,"column":10}},"12":{"start":{"line":48,"column":2},"end":{"line":48,"column":62}},"13":{"start":{"line":50,"column":2},"end":{"line":78,"column":4}},"14":{"start":{"line":51,"column":4},"end":{"line":51,"column":47}},"15":{"start":{"line":54,"column":4},"end":{"line":56,"column":5}},"16":{"start":{"line":55,"column":6},"end":{"line":55,"column":22}},"17":{"start":{"line":58,"column":4},"end":{"line":70,"column":5}},"18":{"start":{"line":59,"column":6},"end":{"line":67,"column":7}},"19":{"start":{"line":61,"column":8},"end":{"line":66,"column":9}},"20":{"start":{"line":69,"column":6},"end":{"line":69,"column":22}},"21":{"start":{"line":72,"column":4},"end":{"line":77,"column":5}},"22":{"start":{"line":79,"column":2},"end":{"line":104,"column":4}},"23":{"start":{"line":79,"column":21},"end":{"line":79,"column":22}},"24":{"start":{"line":80,"column":4},"end":{"line":80,"column":36}},"25":{"start":{"line":81,"column":4},"end":{"line":81,"column":35}},"26":{"start":{"line":82,"column":4},"end":{"line":90,"column":5}},"27":{"start":{"line":83,"column":6},"end":{"line":85,"column":7}},"28":{"start":{"line":84,"column":8},"end":{"line":84,"column":45}},"29":{"start":{"line":87,"column":6},"end":{"line":89,"column":7}},"30":{"start":{"line":88,"column":8},"end":{"line":88,"column":48}},"31":{"start":{"line":92,"column":4},"end":{"line":92,"column":52}},"32":{"start":{"line":94,"column":4},"end":{"line":96,"column":5}},"33":{"start":{"line":95,"column":6},"end":{"line":95,"column":63}},"34":{"start":{"line":98,"column":4},"end":{"line":98,"column":98}},"35":{"start":{"line":99,"column":4},"end":{"line":99,"column":85}},"36":{"start":{"line":100,"column":4},"end":{"line":103,"column":5}},"37":{"start":{"line":105,"column":2},"end":{"line":107,"column":3}}},"branchMap":{"1":{"line":40,"type":"binary-expr","locations":[{"start":{"line":40,"column":9},"end":{"line":40,"column":13}},{"start":{"line":40,"column":17},"end":{"line":40,"column":19}}]},"2":{"line":46,"type":"binary-expr","locations":[{"start":{"line":46,"column":7},"end":{"line":46,"column":11}},{"start":{"line":46,"column":15},"end":{"line":46,"column":39}}]},"3":{"line":54,"type":"if","locations":[{"start":{"line":54,"column":4},"end":{"line":54,"column":4}},{"start":{"line":54,"column":4},"end":{"line":54,"column":4}}]},"4":{"line":58,"type":"if","locations":[{"start":{"line":58,"column":4},"end":{"line":58,"column":4}},{"start":{"line":58,"column":4},"end":{"line":58,"column":4}}]},"5":{"line":59,"type":"if","locations":[{"start":{"line":59,"column":6},"end":{"line":59,"column":6}},{"start":{"line":59,"column":6},"end":{"line":59,"column":6}}]},"6":{"line":59,"type":"binary-expr","locations":[{"start":{"line":59,"column":10},"end":{"line":59,"column":24}},{"start":{"line":59,"column":28},"end":{"line":59,"column":54}}]},"7":{"line":82,"type":"if","locations":[{"start":{"line":82,"column":4},"end":{"line":82,"column":4}},{"start":{"line":82,"column":4},"end":{"line":82,"column":4}}]},"8":{"line":83,"type":"if","locations":[{"start":{"line":83,"column":6},"end":{"line":83,"column":6}},{"start":{"line":83,"column":6},"end":{"line":83,"column":6}}]},"9":{"line":87,"type":"if","locations":[{"start":{"line":87,"column":6},"end":{"line":87,"column":6}},{"start":{"line":87,"column":6},"end":{"line":87,"column":6}}]},"10":{"line":94,"type":"if","locations":[{"start":{"line":94,"column":4},"end":{"line":94,"column":4}},{"start":{"line":94,"column":4},"end":{"line":94,"column":4}}]},"11":{"line":98,"type":"cond-expr","locations":[{"start":{"line":98,"column":50},"end":{"line":98,"column":71}},{"start":{"line":98,"column":74},"end":{"line":98,"column":98}}]}}},"/Users/jeff/Projects/awilix/lib/isFunction.js":{"path":"/Users/jeff/Projects/awilix/lib/isFunction.js","s":{"1":1,"2":118},"b":{},"f":{},"fnMap":{},"statementMap":{"1":{"start":{"line":10,"column":0},"end":{"line":10,"column":49}},"2":{"start":{"line":10,"column":24},"end":{"line":10,"column":49}}},"branchMap":{}},"/Users/jeff/Projects/awilix/lib/Lifetime.js":{"path":"/Users/jeff/Projects/awilix/lib/Lifetime.js","s":{"1":1,"2":1,"3":1},"b":{},"f":{},"fnMap":{},"statementMap":{"1":{"start":{"line":5,"column":0},"end":{"line":5,"column":38}},"2":{"start":{"line":11,"column":0},"end":{"line":11,"column":38}},"3":{"start":{"line":17,"column":0},"end":{"line":17,"column":32}}},"branchMap":{}},"/Users/jeff/Projects/awilix/lib/registrations.js":{"path":"/Users/jeff/Projects/awilix/lib/registrations.js","s":{"1":1,"2":1,"3":1,"4":1,"5":1,"6":84,"7":1,"8":84,"9":15,"10":15,"11":84,"12":5,"13":5,"14":84,"15":4,"16":5,"17":4,"18":2,"19":3,"20":1,"21":20,"22":12,"23":20,"24":1,"25":1,"26":59,"27":1,"28":58,"29":58,"30":58,"31":58,"32":58,"33":58,"34":58,"35":1,"36":1,"37":27,"38":1,"39":26,"40":26,"41":26,"42":19,"43":26,"44":26,"45":26,"46":26,"47":26,"48":1,"49":84,"50":58,"51":84,"52":84,"53":72,"54":72,"55":63,"56":9,"57":5,"58":5,"59":7,"60":5,"61":4,"62":1,"63":1,"64":84,"65":84,"66":27,"67":57,"68":1},"b":{"1":[1,58],"2":[1,26],"3":[58,26],"4":[72,50,1],"5":[63,9],"6":[5,4],"7":[27,57],"8":[84,62,39,27]},"f":{"1":19,"2":84,"3":72,"4":84},"fnMap":{"1":{"name":"(anonymous_1)","line":148,"loc":{"start":{"line":148,"column":19},"end":{"line":148,"column":31}}},"2":{"name":"generateResolve","line":182,"loc":{"start":{"line":182,"column":0},"end":{"line":182,"column":53}}},"3":{"name":"resolve","line":192,"loc":{"start":{"line":192,"column":9},"end":{"line":192,"column":38}}},"4":{"name":"parseDependencies","line":225,"loc":{"start":{"line":225,"column":0},"end":{"line":225,"column":34}}}},"statementMap":{"1":{"start":{"line":1,"column":0},"end":{"line":1,"column":38}},"2":{"start":{"line":2,"column":0},"end":{"line":2,"column":50}},"3":{"start":{"line":3,"column":0},"end":{"line":3,"column":42}},"4":{"start":{"line":4,"column":0},"end":{"line":4,"column":68}},"5":{"start":{"line":17,"column":0},"end":{"line":19,"column":1}},"6":{"start":{"line":18,"column":2},"end":{"line":18,"column":43}},"7":{"start":{"line":34,"column":0},"end":{"line":54,"column":1}},"8":{"start":{"line":35,"column":2},"end":{"line":38,"column":3}},"9":{"start":{"line":36,"column":4},"end":{"line":36,"column":24}},"10":{"start":{"line":37,"column":4},"end":{"line":37,"column":14}},"11":{"start":{"line":40,"column":2},"end":{"line":43,"column":3}},"12":{"start":{"line":41,"column":4},"end":{"line":41,"column":30}},"13":{"start":{"line":42,"column":4},"end":{"line":42,"column":14}},"14":{"start":{"line":45,"column":2},"end":{"line":53,"column":3}},"15":{"start":{"line":47,"column":21},"end":{"line":47,"column":52}},"16":{"start":{"line":48,"column":18},"end":{"line":48,"column":46}},"17":{"start":{"line":49,"column":21},"end":{"line":49,"column":52}},"18":{"start":{"line":51,"column":17},"end":{"line":51,"column":56}},"19":{"start":{"line":52,"column":19},"end":{"line":52,"column":60}},"20":{"start":{"line":68,"column":0},"end":{"line":77,"column":1}},"21":{"start":{"line":69,"column":2},"end":{"line":71,"column":3}},"22":{"start":{"line":70,"column":4},"end":{"line":70,"column":16}},"23":{"start":{"line":73,"column":2},"end":{"line":76,"column":3}},"24":{"start":{"line":79,"column":0},"end":{"line":79,"column":32}},"25":{"start":{"line":97,"column":0},"end":{"line":117,"column":1}},"26":{"start":{"line":98,"column":2},"end":{"line":100,"column":3}},"27":{"start":{"line":99,"column":4},"end":{"line":99,"column":74}},"28":{"start":{"line":102,"column":2},"end":{"line":104,"column":3}},"29":{"start":{"line":106,"column":2},"end":{"line":106,"column":36}},"30":{"start":{"line":108,"column":2},"end":{"line":108,"column":37}},"31":{"start":{"line":109,"column":2},"end":{"line":113,"column":3}},"32":{"start":{"line":114,"column":2},"end":{"line":114,"column":39}},"33":{"start":{"line":115,"column":2},"end":{"line":115,"column":51}},"34":{"start":{"line":116,"column":2},"end":{"line":116,"column":15}},"35":{"start":{"line":119,"column":0},"end":{"line":119,"column":38}},"36":{"start":{"line":136,"column":0},"end":{"line":162,"column":1}},"37":{"start":{"line":137,"column":2},"end":{"line":139,"column":3}},"38":{"start":{"line":138,"column":4},"end":{"line":138,"column":70}},"39":{"start":{"line":141,"column":2},"end":{"line":143,"column":3}},"40":{"start":{"line":145,"column":2},"end":{"line":145,"column":36}},"41":{"start":{"line":148,"column":2},"end":{"line":150,"column":3}},"42":{"start":{"line":149,"column":4},"end":{"line":149,"column":33}},"43":{"start":{"line":152,"column":2},"end":{"line":152,"column":71}},"44":{"start":{"line":153,"column":2},"end":{"line":157,"column":3}},"45":{"start":{"line":158,"column":2},"end":{"line":158,"column":39}},"46":{"start":{"line":159,"column":2},"end":{"line":159,"column":51}},"47":{"start":{"line":161,"column":2},"end":{"line":161,"column":15}},"48":{"start":{"line":182,"column":0},"end":{"line":209,"column":1}},"49":{"start":{"line":184,"column":2},"end":{"line":186,"column":3}},"50":{"start":{"line":185,"column":4},"end":{"line":185,"column":30}},"51":{"start":{"line":189,"column":2},"end":{"line":189,"column":63}},"52":{"start":{"line":192,"column":2},"end":{"line":208,"column":3}},"53":{"start":{"line":195,"column":4},"end":{"line":195,"column":108}},"54":{"start":{"line":196,"column":4},"end":{"line":199,"column":5}},"55":{"start":{"line":198,"column":6},"end":{"line":198,"column":33}},"56":{"start":{"line":202,"column":4},"end":{"line":206,"column":5}},"57":{"start":{"line":203,"column":6},"end":{"line":203,"column":25}},"58":{"start":{"line":204,"column":6},"end":{"line":204,"column":70}},"59":{"start":{"line":204,"column":34},"end":{"line":204,"column":69}},"60":{"start":{"line":205,"column":6},"end":{"line":205,"column":28}},"61":{"start":{"line":207,"column":4},"end":{"line":207,"column":15}},"62":{"start":{"line":214,"column":0},"end":{"line":214,"column":45}},"63":{"start":{"line":225,"column":0},"end":{"line":231,"column":1}},"64":{"start":{"line":226,"column":2},"end":{"line":226,"column":46}},"65":{"start":{"line":227,"column":2},"end":{"line":229,"column":3}},"66":{"start":{"line":228,"column":4},"end":{"line":228,"column":35}},"67":{"start":{"line":230,"column":2},"end":{"line":230,"column":11}},"68":{"start":{"line":233,"column":0},"end":{"line":233,"column":32}}},"branchMap":{"1":{"line":98,"type":"if","locations":[{"start":{"line":98,"column":2},"end":{"line":98,"column":2}},{"start":{"line":98,"column":2},"end":{"line":98,"column":2}}]},"2":{"line":137,"type":"if","locations":[{"start":{"line":137,"column":2},"end":{"line":137,"column":2}},{"start":{"line":137,"column":2},"end":{"line":137,"column":2}}]},"3":{"line":184,"type":"if","locations":[{"start":{"line":184,"column":2},"end":{"line":184,"column":2}},{"start":{"line":184,"column":2},"end":{"line":184,"column":2}}]},"4":{"line":195,"type":"binary-expr","locations":[{"start":{"line":195,"column":28},"end":{"line":195,"column":47}},{"start":{"line":195,"column":51},"end":{"line":195,"column":83}},{"start":{"line":195,"column":87},"end":{"line":195,"column":107}}]},"5":{"line":196,"type":"if","locations":[{"start":{"line":196,"column":4},"end":{"line":196,"column":4}},{"start":{"line":196,"column":4},"end":{"line":196,"column":4}}]},"6":{"line":202,"type":"if","locations":[{"start":{"line":202,"column":4},"end":{"line":202,"column":4}},{"start":{"line":202,"column":4},"end":{"line":202,"column":4}}]},"7":{"line":227,"type":"if","locations":[{"start":{"line":227,"column":2},"end":{"line":227,"column":2}},{"start":{"line":227,"column":2},"end":{"line":227,"column":2}}]},"8":{"line":227,"type":"binary-expr","locations":[{"start":{"line":227,"column":6},"end":{"line":227,"column":10}},{"start":{"line":227,"column":14},"end":{"line":227,"column":21}},{"start":{"line":227,"column":25},"end":{"line":227,"column":47}},{"start":{"line":227,"column":51},"end":{"line":227,"column":73}}]}}},"/Users/jeff/Projects/awilix/lib/ResolutionMode.js":{"path":"/Users/jeff/Projects/awilix/lib/ResolutionMode.js","s":{"1":1,"2":1},"b":{},"f":{},"fnMap":{},"statementMap":{"1":{"start":{"line":6,"column":0},"end":{"line":6,"column":30}},"2":{"start":{"line":13,"column":0},"end":{"line":13,"column":34}}},"branchMap":{}},"/Users/jeff/Projects/awilix/lib/AwilixNotAFunctionError.js":{"path":"/Users/jeff/Projects/awilix/lib/AwilixNotAFunctionError.js","s":{"1":1,"2":2,"3":1},"b":{},"f":{"1":2},"fnMap":{"1":{"name":"(anonymous_1)","line":20,"loc":{"start":{"line":20,"column":14},"end":{"line":20,"column":54}}}},"statementMap":{"1":{"start":{"line":1,"column":0},"end":{"line":1,"column":52}},"2":{"start":{"line":21,"column":4},"end":{"line":21,"column":89}},"3":{"start":{"line":25,"column":0},"end":{"line":25,"column":40}}},"branchMap":{}},"/Users/jeff/Projects/awilix/lib/ExtendableError.js":{"path":"/Users/jeff/Projects/awilix/lib/ExtendableError.js","s":{"1":9,"2":9,"3":9,"4":9,"5":1},"b":{},"f":{"1":9},"fnMap":{"1":{"name":"(anonymous_1)","line":12,"loc":{"start":{"line":12,"column":14},"end":{"line":12,"column":24}}}},"statementMap":{"1":{"start":{"line":13,"column":4},"end":{"line":13,"column":18}},"2":{"start":{"line":16,"column":4},"end":{"line":19,"column":6}},"3":{"start":{"line":21,"column":4},"end":{"line":24,"column":6}},"4":{"start":{"line":26,"column":4},"end":{"line":26,"column":51}},"5":{"start":{"line":30,"column":0},"end":{"line":30,"column":32}}},"branchMap":{}},"/Users/jeff/Projects/awilix/lib/listModules.js":{"path":"/Users/jeff/Projects/awilix/lib/listModules.js","s":{"1":1,"2":1,"3":1,"4":1,"5":1,"6":12,"7":12,"8":12,"9":3,"10":3,"11":12,"12":12,"13":89,"14":12,"15":1,"16":9,"17":5,"18":8,"19":4},"b":{"1":[3,9],"2":[5,4]},"f":{"1":12,"2":9},"fnMap":{"1":{"name":"_listModules","line":23,"loc":{"start":{"line":23,"column":0},"end":{"line":23,"column":42}}},"2":{"name":"listModules","line":55,"loc":{"start":{"line":55,"column":17},"end":{"line":55,"column":59}}}},"statementMap":{"1":{"start":{"line":1,"column":0},"end":{"line":1,"column":28}},"2":{"start":{"line":2,"column":0},"end":{"line":2,"column":28}},"3":{"start":{"line":3,"column":0},"end":{"line":3,"column":36}},"4":{"start":{"line":6,"column":0},"end":{"line":6,"column":28}},"5":{"start":{"line":23,"column":0},"end":{"line":38,"column":1}},"6":{"start":{"line":24,"column":2},"end":{"line":24,"column":69}},"7":{"start":{"line":25,"column":2},"end":{"line":25,"column":24}},"8":{"start":{"line":26,"column":2},"end":{"line":29,"column":3}},"9":{"start":{"line":27,"column":4},"end":{"line":27,"column":32}},"10":{"start":{"line":28,"column":4},"end":{"line":28,"column":32}},"11":{"start":{"line":31,"column":2},"end":{"line":31,"column":58}},"12":{"start":{"line":32,"column":2},"end":{"line":36,"column":5}},"13":{"start":{"line":32,"column":34},"end":{"line":36,"column":3}},"14":{"start":{"line":37,"column":2},"end":{"line":37,"column":15}},"15":{"start":{"line":55,"column":0},"end":{"line":65,"column":1}},"16":{"start":{"line":56,"column":2},"end":{"line":62,"column":3}},"17":{"start":{"line":57,"column":4},"end":{"line":61,"column":5}},"18":{"start":{"line":59,"column":13},"end":{"line":59,"column":34}},"19":{"start":{"line":64,"column":2},"end":{"line":64,"column":41}}},"branchMap":{"1":{"line":26,"type":"if","locations":[{"start":{"line":26,"column":2},"end":{"line":26,"column":2}},{"start":{"line":26,"column":2},"end":{"line":26,"column":2}}]},"2":{"line":56,"type":"if","locations":[{"start":{"line":56,"column":2},"end":{"line":56,"column":2}},{"start":{"line":56,"column":2},"end":{"line":56,"column":2}}]}}},"/Users/jeff/Projects/awilix/lib/flatten.js":{"path":"/Users/jeff/Projects/awilix/lib/flatten.js","s":{"1":1,"2":6,"3":6,"4":10,"5":41,"6":6},"b":{},"f":{"1":6},"fnMap":{"1":{"name":"flatten","line":10,"loc":{"start":{"line":10,"column":17},"end":{"line":10,"column":42}}}},"statementMap":{"1":{"start":{"line":10,"column":0},"end":{"line":19,"column":1}},"2":{"start":{"line":11,"column":2},"end":{"line":11,"column":19}},"3":{"start":{"line":12,"column":2},"end":{"line":16,"column":4}},"4":{"start":{"line":13,"column":4},"end":{"line":15,"column":6}},"5":{"start":{"line":14,"column":6},"end":{"line":14,"column":23}},"6":{"start":{"line":18,"column":2},"end":{"line":18,"column":15}}},"branchMap":{}},"/Users/jeff/Projects/awilix/lib/AwilixResolutionError.js":{"path":"/Users/jeff/Projects/awilix/lib/AwilixResolutionError.js","s":{"1":1,"2":1,"3":1,"4":7,"5":7,"6":7,"7":7,"8":7,"9":2,"10":7,"11":7,"12":7,"13":7,"14":1},"b":{"1":[2,5]},"f":{"1":7},"fnMap":{"1":{"name":"(anonymous_1)","line":45,"loc":{"start":{"line":45,"column":14},"end":{"line":45,"column":47}}}},"statementMap":{"1":{"start":{"line":1,"column":0},"end":{"line":1,"column":29}},"2":{"start":{"line":2,"column":0},"end":{"line":2,"column":52}},"3":{"start":{"line":16,"column":0},"end":{"line":29,"column":1}},"4":{"start":{"line":17,"column":2},"end":{"line":17,"column":43}},"5":{"start":{"line":18,"column":2},"end":{"line":18,"column":28}},"6":{"start":{"line":19,"column":2},"end":{"line":19,"column":59}},"7":{"start":{"line":20,"column":2},"end":{"line":20,"column":42}},"8":{"start":{"line":21,"column":2},"end":{"line":23,"column":3}},"9":{"start":{"line":22,"column":4},"end":{"line":22,"column":24}},"10":{"start":{"line":25,"column":2},"end":{"line":25,"column":18}},"11":{"start":{"line":26,"column":2},"end":{"line":26,"column":51}},"12":{"start":{"line":28,"column":2},"end":{"line":28,"column":12}},"13":{"start":{"line":46,"column":4},"end":{"line":46,"column":61}},"14":{"start":{"line":50,"column":0},"end":{"line":50,"column":38}}},"branchMap":{"1":{"line":21,"type":"if","locations":[{"start":{"line":21,"column":2},"end":{"line":21,"column":2}},{"start":{"line":21,"column":2},"end":{"line":21,"column":2}}]}}},"/Users/jeff/Projects/awilix/lib/nameValueToObject.js":{"path":"/Users/jeff/Projects/awilix/lib/nameValueToObject.js","s":{"1":1,"2":1,"3":120,"4":120,"5":79,"6":120},"b":{"1":[79,41]},"f":{"1":120},"fnMap":{"1":{"name":"nameValueToObject","line":14,"loc":{"start":{"line":14,"column":17},"end":{"line":14,"column":58}}}},"statementMap":{"1":{"start":{"line":1,"column":0},"end":{"line":1,"column":48}},"2":{"start":{"line":14,"column":0},"end":{"line":21,"column":1}},"3":{"start":{"line":15,"column":2},"end":{"line":15,"column":16}},"4":{"start":{"line":16,"column":2},"end":{"line":18,"column":3}},"5":{"start":{"line":17,"column":4},"end":{"line":17,"column":42}},"6":{"start":{"line":20,"column":2},"end":{"line":20,"column":12}}},"branchMap":{"1":{"line":16,"type":"if","locations":[{"start":{"line":16,"column":2},"end":{"line":16,"column":2}},{"start":{"line":16,"column":2},"end":{"line":16,"column":2}}]}}},"/Users/jeff/Projects/awilix/lib/last.js":{"path":"/Users/jeff/Projects/awilix/lib/last.js","s":{"1":1,"2":102},"b":{},"f":{"1":102},"fnMap":{"1":{"name":"last","line":10,"loc":{"start":{"line":10,"column":17},"end":{"line":10,"column":37}}}},"statementMap":{"1":{"start":{"line":10,"column":0},"end":{"line":12,"column":1}},"2":{"start":{"line":11,"column":2},"end":{"line":11,"column":28}}},"branchMap":{}}}
{"/Users/jeff/Projects/awilix/lib/awilix.js":{"path":"/Users/jeff/Projects/awilix/lib/awilix.js","s":{"1":1,"2":1},"b":{},"f":{},"fnMap":{},"statementMap":{"1":{"start":{"line":2,"column":0},"end":{"line":8,"column":1}},"2":{"start":{"line":11,"column":0},"end":{"line":11,"column":57}}},"branchMap":{}},"/Users/jeff/Projects/awilix/lib/createContainer.js":{"path":"/Users/jeff/Projects/awilix/lib/createContainer.js","s":{"1":1,"2":1,"3":1,"4":1,"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":75,"12":75,"13":75,"14":75,"15":75,"16":69,"17":2,"18":75,"19":75,"20":75,"21":75,"22":8,"23":75,"24":82,"25":1,"26":75,"27":75,"28":149,"29":75,"30":17,"31":75,"32":75,"33":97,"34":97,"35":105,"36":105,"37":97,"38":75,"39":75,"40":225,"41":36,"42":36,"43":55,"44":55,"45":55,"46":13,"47":13,"48":4,"49":13,"50":13,"51":55,"52":36,"53":75,"54":75,"55":75,"56":75,"57":122,"58":80,"59":122,"60":122,"61":122,"62":122,"63":1,"64":121,"65":8,"66":113,"67":113,"68":113,"69":81,"70":64,"71":6,"72":6,"73":2,"74":2,"75":4,"76":6,"77":25,"78":38,"79":38,"80":14,"81":14,"82":25,"83":11,"84":11,"85":25,"86":1,"87":95,"88":95,"89":27,"90":27,"91":122,"92":97,"93":75,"94":75,"95":3,"96":3,"97":75,"98":75},"b":{"1":[1,1],"2":[17,58],"3":[75,75],"4":[149,37],"5":[13,42],"6":[55,44],"7":[4,9],"8":[80,42],"9":[1,121],"10":[8,113],"11":[81,6,25,1],"12":[2,4],"13":[14,24],"14":[11,14],"15":[97,25]},"f":{"1":75,"2":69,"3":8,"4":36},"fnMap":{"1":{"name":"createContainer","line":28,"loc":{"start":{"line":28,"column":17},"end":{"line":28,"column":71}}},"2":{"name":"(anonymous_2)","line":57,"loc":{"start":{"line":57,"column":22},"end":{"line":57,"column":25}}},"3":{"name":"(anonymous_3)","line":91,"loc":{"start":{"line":91,"column":32},"end":{"line":91,"column":47}}},"4":{"name":"registerShortcut","line":186,"loc":{"start":{"line":186,"column":46},"end":{"line":186,"column":92}}}},"statementMap":{"1":{"start":{"line":1,"column":0},"end":{"line":1,"column":44}},"2":{"start":{"line":2,"column":0},"end":{"line":2,"column":44}},"3":{"start":{"line":3,"column":0},"end":{"line":3,"column":67}},"4":{"start":{"line":4,"column":0},"end":{"line":4,"column":50}},"5":{"start":{"line":5,"column":0},"end":{"line":5,"column":64}},"6":{"start":{"line":6,"column":0},"end":{"line":6,"column":56}},"7":{"start":{"line":7,"column":0},"end":{"line":7,"column":38}},"8":{"start":{"line":8,"column":0},"end":{"line":8,"column":30}},"9":{"start":{"line":14,"column":0},"end":{"line":14,"column":40}},"10":{"start":{"line":28,"column":0},"end":{"line":371,"column":1}},"11":{"start":{"line":29,"column":2},"end":{"line":31,"column":13}},"12":{"start":{"line":37,"column":2},"end":{"line":37,"column":26}},"13":{"start":{"line":41,"column":2},"end":{"line":41,"column":32}},"14":{"start":{"line":44,"column":2},"end":{"line":44,"column":26}},"15":{"start":{"line":47,"column":2},"end":{"line":67,"column":3}},"16":{"start":{"line":58,"column":6},"end":{"line":58,"column":34}},"17":{"start":{"line":65,"column":6},"end":{"line":65,"column":134}},"18":{"start":{"line":70,"column":2},"end":{"line":72,"column":17}},"19":{"start":{"line":80,"column":2},"end":{"line":80,"column":37}},"20":{"start":{"line":87,"column":2},"end":{"line":87,"column":22}},"21":{"start":{"line":90,"column":2},"end":{"line":94,"column":3}},"22":{"start":{"line":91,"column":49},"end":{"line":91,"column":69}},"23":{"start":{"line":101,"column":2},"end":{"line":125,"column":4}},"24":{"start":{"line":114,"column":27},"end":{"line":114,"column":40}},"25":{"start":{"line":123,"column":6},"end":{"line":123,"column":104}},"26":{"start":{"line":127,"column":2},"end":{"line":127,"column":27}},"27":{"start":{"line":135,"column":2},"end":{"line":141,"column":3}},"28":{"start":{"line":136,"column":4},"end":{"line":140,"column":5}},"29":{"start":{"line":149,"column":2},"end":{"line":151,"column":3}},"30":{"start":{"line":150,"column":4},"end":{"line":150,"column":46}},"31":{"start":{"line":153,"column":2},"end":{"line":153,"column":37}},"32":{"start":{"line":164,"column":2},"end":{"line":172,"column":3}},"33":{"start":{"line":165,"column":4},"end":{"line":165,"column":53}},"34":{"start":{"line":166,"column":4},"end":{"line":169,"column":5}},"35":{"start":{"line":167,"column":6},"end":{"line":167,"column":28}},"36":{"start":{"line":168,"column":6},"end":{"line":168,"column":32}},"37":{"start":{"line":171,"column":4},"end":{"line":171,"column":20}},"38":{"start":{"line":174,"column":2},"end":{"line":174,"column":31}},"39":{"start":{"line":186,"column":2},"end":{"line":212,"column":3}},"40":{"start":{"line":186,"column":46},"end":{"line":212,"column":3}},"41":{"start":{"line":188,"column":4},"end":{"line":188,"column":46}},"42":{"start":{"line":189,"column":4},"end":{"line":208,"column":5}},"43":{"start":{"line":190,"column":6},"end":{"line":190,"column":36}},"44":{"start":{"line":193,"column":6},"end":{"line":193,"column":43}},"45":{"start":{"line":195,"column":6},"end":{"line":205,"column":7}},"46":{"start":{"line":196,"column":8},"end":{"line":196,"column":42}},"47":{"start":{"line":198,"column":8},"end":{"line":201,"column":9}},"48":{"start":{"line":200,"column":10},"end":{"line":200,"column":45}},"49":{"start":{"line":203,"column":8},"end":{"line":203,"column":55}},"50":{"start":{"line":204,"column":8},"end":{"line":204,"column":44}},"51":{"start":{"line":207,"column":6},"end":{"line":207,"column":49}},"52":{"start":{"line":211,"column":4},"end":{"line":211,"column":20}},"53":{"start":{"line":226,"column":2},"end":{"line":226,"column":55}},"54":{"start":{"line":240,"column":2},"end":{"line":240,"column":49}},"55":{"start":{"line":254,"column":2},"end":{"line":254,"column":76}},"56":{"start":{"line":265,"column":2},"end":{"line":344,"column":3}},"57":{"start":{"line":266,"column":4},"end":{"line":268,"column":5}},"58":{"start":{"line":267,"column":6},"end":{"line":267,"column":49}},"59":{"start":{"line":272,"column":4},"end":{"line":272,"column":33}},"60":{"start":{"line":274,"column":4},"end":{"line":343,"column":5}},"61":{"start":{"line":276,"column":6},"end":{"line":276,"column":52}},"62":{"start":{"line":277,"column":6},"end":{"line":279,"column":7}},"63":{"start":{"line":278,"column":8},"end":{"line":278,"column":95}},"64":{"start":{"line":281,"column":6},"end":{"line":283,"column":7}},"65":{"start":{"line":282,"column":8},"end":{"line":282,"column":62}},"66":{"start":{"line":286,"column":6},"end":{"line":286,"column":32}},"67":{"start":{"line":289,"column":6},"end":{"line":289,"column":26}},"68":{"start":{"line":290,"column":6},"end":{"line":329,"column":7}},"69":{"start":{"line":293,"column":10},"end":{"line":293,"column":52}},"70":{"start":{"line":294,"column":10},"end":{"line":294,"column":15}},"71":{"start":{"line":297,"column":10},"end":{"line":297,"column":35}},"72":{"start":{"line":298,"column":10},"end":{"line":303,"column":11}},"73":{"start":{"line":299,"column":12},"end":{"line":299,"column":54}},"74":{"start":{"line":300,"column":12},"end":{"line":300,"column":39}},"75":{"start":{"line":302,"column":12},"end":{"line":302,"column":29}},"76":{"start":{"line":304,"column":10},"end":{"line":304,"column":15}},"77":{"start":{"line":312,"column":10},"end":{"line":319,"column":11}},"78":{"start":{"line":313,"column":12},"end":{"line":313,"column":34}},"79":{"start":{"line":314,"column":12},"end":{"line":318,"column":13}},"80":{"start":{"line":316,"column":14},"end":{"line":316,"column":31}},"81":{"start":{"line":317,"column":14},"end":{"line":317,"column":19}},"82":{"start":{"line":322,"column":10},"end":{"line":325,"column":11}},"83":{"start":{"line":323,"column":12},"end":{"line":323,"column":54}},"84":{"start":{"line":324,"column":12},"end":{"line":324,"column":44}},"85":{"start":{"line":326,"column":10},"end":{"line":326,"column":15}},"86":{"start":{"line":328,"column":10},"end":{"line":328,"column":111}},"87":{"start":{"line":331,"column":6},"end":{"line":331,"column":27}},"88":{"start":{"line":332,"column":6},"end":{"line":332,"column":21}},"89":{"start":{"line":335,"column":6},"end":{"line":335,"column":26}},"90":{"start":{"line":336,"column":6},"end":{"line":336,"column":15}},"91":{"start":{"line":340,"column":6},"end":{"line":342,"column":7}},"92":{"start":{"line":341,"column":8},"end":{"line":341,"column":34}},"93":{"start":{"line":346,"column":2},"end":{"line":346,"column":29}},"94":{"start":{"line":357,"column":2},"end":{"line":360,"column":3}},"95":{"start":{"line":358,"column":4},"end":{"line":358,"column":53}},"96":{"start":{"line":359,"column":4},"end":{"line":359,"column":20}},"97":{"start":{"line":367,"column":2},"end":{"line":367,"column":37}},"98":{"start":{"line":370,"column":2},"end":{"line":370,"column":18}}},"branchMap":{"1":{"line":65,"type":"cond-expr","locations":[{"start":{"line":65,"column":54},"end":{"line":65,"column":64}},{"start":{"line":65,"column":67},"end":{"line":65,"column":69}}]},"2":{"line":70,"type":"cond-expr","locations":[{"start":{"line":71,"column":6},"end":{"line":71,"column":56}},{"start":{"line":72,"column":6},"end":{"line":72,"column":17}}]},"3":{"line":91,"type":"binary-expr","locations":[{"start":{"line":91,"column":13},"end":{"line":91,"column":28}},{"start":{"line":91,"column":32},"end":{"line":91,"column":70}}]},"4":{"line":138,"type":"binary-expr","locations":[{"start":{"line":138,"column":6},"end":{"line":138,"column":23}},{"start":{"line":138,"column":27},"end":{"line":138,"column":58}}]},"5":{"line":195,"type":"if","locations":[{"start":{"line":195,"column":6},"end":{"line":195,"column":6}},{"start":{"line":195,"column":6},"end":{"line":195,"column":6}}]},"6":{"line":195,"type":"binary-expr","locations":[{"start":{"line":195,"column":10},"end":{"line":195,"column":24}},{"start":{"line":195,"column":28},"end":{"line":195,"column":58}}]},"7":{"line":198,"type":"if","locations":[{"start":{"line":198,"column":8},"end":{"line":198,"column":8}},{"start":{"line":198,"column":8},"end":{"line":198,"column":8}}]},"8":{"line":266,"type":"if","locations":[{"start":{"line":266,"column":4},"end":{"line":266,"column":4}},{"start":{"line":266,"column":4},"end":{"line":266,"column":4}}]},"9":{"line":277,"type":"if","locations":[{"start":{"line":277,"column":6},"end":{"line":277,"column":6}},{"start":{"line":277,"column":6},"end":{"line":277,"column":6}}]},"10":{"line":281,"type":"if","locations":[{"start":{"line":281,"column":6},"end":{"line":281,"column":6}},{"start":{"line":281,"column":6},"end":{"line":281,"column":6}}]},"11":{"line":290,"type":"switch","locations":[{"start":{"line":291,"column":8},"end":{"line":294,"column":15}},{"start":{"line":295,"column":8},"end":{"line":304,"column":15}},{"start":{"line":305,"column":8},"end":{"line":326,"column":15}},{"start":{"line":327,"column":8},"end":{"line":328,"column":111}}]},"12":{"line":298,"type":"if","locations":[{"start":{"line":298,"column":10},"end":{"line":298,"column":10}},{"start":{"line":298,"column":10},"end":{"line":298,"column":10}}]},"13":{"line":314,"type":"if","locations":[{"start":{"line":314,"column":12},"end":{"line":314,"column":12}},{"start":{"line":314,"column":12},"end":{"line":314,"column":12}}]},"14":{"line":322,"type":"if","locations":[{"start":{"line":322,"column":10},"end":{"line":322,"column":10}},{"start":{"line":322,"column":10},"end":{"line":322,"column":10}}]},"15":{"line":340,"type":"if","locations":[{"start":{"line":340,"column":6},"end":{"line":340,"column":6}},{"start":{"line":340,"column":6},"end":{"line":340,"column":6}}]}}},"/Users/jeff/Projects/awilix/lib/loadModules.js":{"path":"/Users/jeff/Projects/awilix/lib/loadModules.js","s":{"1":1,"2":1,"3":1,"4":1,"5":1,"6":1,"7":1,"8":1,"9":11,"10":11,"11":11,"12":11,"13":11,"14":22,"15":22,"16":1,"17":21,"18":5,"19":3,"20":2,"21":16,"22":11,"23":22,"24":19,"25":19,"26":19,"27":3,"28":2,"29":3,"30":2,"31":19,"32":19,"33":5,"34":19,"35":19,"36":19,"37":11},"b":{"1":[11,2],"2":[11,11],"3":[1,21],"4":[5,16],"5":[3,2],"6":[5,3],"7":[3,16],"8":[2,1],"9":[2,1],"10":[5,14],"11":[1,18]},"f":{"1":11},"fnMap":{"1":{"name":"loadModules","line":38,"loc":{"start":{"line":38,"column":17},"end":{"line":38,"column":73}}}},"statementMap":{"1":{"start":{"line":1,"column":0},"end":{"line":1,"column":39}},"2":{"start":{"line":2,"column":0},"end":{"line":2,"column":35}},"3":{"start":{"line":3,"column":0},"end":{"line":3,"column":37}},"4":{"start":{"line":4,"column":0},"end":{"line":4,"column":42}},"5":{"start":{"line":5,"column":0},"end":{"line":5,"column":38}},"6":{"start":{"line":6,"column":0},"end":{"line":6,"column":48}},"7":{"start":{"line":8,"column":0},"end":{"line":10,"column":1}},"8":{"start":{"line":38,"column":0},"end":{"line":108,"column":1}},"9":{"start":{"line":39,"column":2},"end":{"line":39,"column":42}},"10":{"start":{"line":40,"column":2},"end":{"line":40,"column":19}},"11":{"start":{"line":41,"column":2},"end":{"line":47,"column":10}},"12":{"start":{"line":48,"column":2},"end":{"line":48,"column":62}},"13":{"start":{"line":50,"column":2},"end":{"line":78,"column":4}},"14":{"start":{"line":51,"column":4},"end":{"line":51,"column":47}},"15":{"start":{"line":54,"column":4},"end":{"line":56,"column":5}},"16":{"start":{"line":55,"column":6},"end":{"line":55,"column":22}},"17":{"start":{"line":58,"column":4},"end":{"line":70,"column":5}},"18":{"start":{"line":59,"column":6},"end":{"line":67,"column":7}},"19":{"start":{"line":61,"column":8},"end":{"line":66,"column":9}},"20":{"start":{"line":69,"column":6},"end":{"line":69,"column":22}},"21":{"start":{"line":72,"column":4},"end":{"line":77,"column":5}},"22":{"start":{"line":79,"column":2},"end":{"line":104,"column":4}},"23":{"start":{"line":79,"column":21},"end":{"line":79,"column":22}},"24":{"start":{"line":80,"column":4},"end":{"line":80,"column":36}},"25":{"start":{"line":81,"column":4},"end":{"line":81,"column":35}},"26":{"start":{"line":82,"column":4},"end":{"line":90,"column":5}},"27":{"start":{"line":83,"column":6},"end":{"line":85,"column":7}},"28":{"start":{"line":84,"column":8},"end":{"line":84,"column":45}},"29":{"start":{"line":87,"column":6},"end":{"line":89,"column":7}},"30":{"start":{"line":88,"column":8},"end":{"line":88,"column":48}},"31":{"start":{"line":92,"column":4},"end":{"line":92,"column":52}},"32":{"start":{"line":94,"column":4},"end":{"line":96,"column":5}},"33":{"start":{"line":95,"column":6},"end":{"line":95,"column":63}},"34":{"start":{"line":98,"column":4},"end":{"line":98,"column":98}},"35":{"start":{"line":99,"column":4},"end":{"line":99,"column":85}},"36":{"start":{"line":100,"column":4},"end":{"line":103,"column":5}},"37":{"start":{"line":105,"column":2},"end":{"line":107,"column":3}}},"branchMap":{"1":{"line":40,"type":"binary-expr","locations":[{"start":{"line":40,"column":9},"end":{"line":40,"column":13}},{"start":{"line":40,"column":17},"end":{"line":40,"column":19}}]},"2":{"line":46,"type":"binary-expr","locations":[{"start":{"line":46,"column":7},"end":{"line":46,"column":11}},{"start":{"line":46,"column":15},"end":{"line":46,"column":39}}]},"3":{"line":54,"type":"if","locations":[{"start":{"line":54,"column":4},"end":{"line":54,"column":4}},{"start":{"line":54,"column":4},"end":{"line":54,"column":4}}]},"4":{"line":58,"type":"if","locations":[{"start":{"line":58,"column":4},"end":{"line":58,"column":4}},{"start":{"line":58,"column":4},"end":{"line":58,"column":4}}]},"5":{"line":59,"type":"if","locations":[{"start":{"line":59,"column":6},"end":{"line":59,"column":6}},{"start":{"line":59,"column":6},"end":{"line":59,"column":6}}]},"6":{"line":59,"type":"binary-expr","locations":[{"start":{"line":59,"column":10},"end":{"line":59,"column":24}},{"start":{"line":59,"column":28},"end":{"line":59,"column":54}}]},"7":{"line":82,"type":"if","locations":[{"start":{"line":82,"column":4},"end":{"line":82,"column":4}},{"start":{"line":82,"column":4},"end":{"line":82,"column":4}}]},"8":{"line":83,"type":"if","locations":[{"start":{"line":83,"column":6},"end":{"line":83,"column":6}},{"start":{"line":83,"column":6},"end":{"line":83,"column":6}}]},"9":{"line":87,"type":"if","locations":[{"start":{"line":87,"column":6},"end":{"line":87,"column":6}},{"start":{"line":87,"column":6},"end":{"line":87,"column":6}}]},"10":{"line":94,"type":"if","locations":[{"start":{"line":94,"column":4},"end":{"line":94,"column":4}},{"start":{"line":94,"column":4},"end":{"line":94,"column":4}}]},"11":{"line":98,"type":"cond-expr","locations":[{"start":{"line":98,"column":50},"end":{"line":98,"column":71}},{"start":{"line":98,"column":74},"end":{"line":98,"column":98}}]}}},"/Users/jeff/Projects/awilix/lib/isFunction.js":{"path":"/Users/jeff/Projects/awilix/lib/isFunction.js","s":{"1":1,"2":133},"b":{},"f":{},"fnMap":{},"statementMap":{"1":{"start":{"line":10,"column":0},"end":{"line":10,"column":49}},"2":{"start":{"line":10,"column":24},"end":{"line":10,"column":49}}},"branchMap":{}},"/Users/jeff/Projects/awilix/lib/Lifetime.js":{"path":"/Users/jeff/Projects/awilix/lib/Lifetime.js","s":{"1":1,"2":1,"3":1},"b":{},"f":{},"fnMap":{},"statementMap":{"1":{"start":{"line":5,"column":0},"end":{"line":5,"column":38}},"2":{"start":{"line":11,"column":0},"end":{"line":11,"column":38}},"3":{"start":{"line":17,"column":0},"end":{"line":17,"column":32}}},"branchMap":{}},"/Users/jeff/Projects/awilix/lib/registrations.js":{"path":"/Users/jeff/Projects/awilix/lib/registrations.js","s":{"1":1,"2":1,"3":1,"4":1,"5":1,"6":99,"7":1,"8":99,"9":15,"10":15,"11":99,"12":6,"13":6,"14":99,"15":4,"16":4,"17":99,"18":4,"19":5,"20":4,"21":2,"22":4,"23":1,"24":20,"25":12,"26":20,"27":1,"28":1,"29":65,"30":1,"31":64,"32":64,"33":64,"34":64,"35":64,"36":64,"37":64,"38":1,"39":1,"40":36,"41":1,"42":35,"43":35,"44":35,"45":31,"46":35,"47":35,"48":35,"49":35,"50":35,"51":1,"52":20,"53":26,"54":26,"55":20,"56":6,"57":1,"58":14,"59":14,"60":14,"61":1,"62":99,"63":64,"64":99,"65":99,"66":90,"67":90,"68":75,"69":75,"70":15,"71":11,"72":11,"73":11,"74":4,"75":1,"76":1,"77":99,"78":99,"79":30,"80":69,"81":1},"b":{"1":[1,64],"2":[1,35],"3":[20,6],"4":[64,35],"5":[90,62,1],"6":[75,15],"7":[14,61],"8":[11,4],"9":[6,5],"10":[30,69],"11":[99,76,52,30]},"f":{"1":31,"2":20,"3":26,"4":14,"5":14,"6":99,"7":90,"8":99},"fnMap":{"1":{"name":"newClass","line":155,"loc":{"start":{"line":155,"column":19},"end":{"line":155,"column":40}}},"2":{"name":"wrapWithInjector","line":179,"loc":{"start":{"line":179,"column":0},"end":{"line":179,"column":48}}},"3":{"name":"wrappedResolve","line":180,"loc":{"start":{"line":180,"column":9},"end":{"line":180,"column":40}}},"4":{"name":"createInjectorProxy","line":198,"loc":{"start":{"line":198,"column":0},"end":{"line":198,"column":51}}},"5":{"name":"(anonymous_5)","line":201,"loc":{"start":{"line":201,"column":8},"end":{"line":201,"column":27}}},"6":{"name":"generateResolve","line":225,"loc":{"start":{"line":225,"column":0},"end":{"line":225,"column":53}}},"7":{"name":"resolve","line":235,"loc":{"start":{"line":235,"column":9},"end":{"line":235,"column":38}}},"8":{"name":"parseDependencies","line":277,"loc":{"start":{"line":277,"column":0},"end":{"line":277,"column":34}}}},"statementMap":{"1":{"start":{"line":1,"column":0},"end":{"line":1,"column":38}},"2":{"start":{"line":2,"column":0},"end":{"line":2,"column":50}},"3":{"start":{"line":3,"column":0},"end":{"line":3,"column":42}},"4":{"start":{"line":4,"column":0},"end":{"line":4,"column":68}},"5":{"start":{"line":17,"column":0},"end":{"line":19,"column":1}},"6":{"start":{"line":18,"column":2},"end":{"line":18,"column":43}},"7":{"start":{"line":34,"column":0},"end":{"line":60,"column":1}},"8":{"start":{"line":35,"column":2},"end":{"line":38,"column":3}},"9":{"start":{"line":36,"column":4},"end":{"line":36,"column":24}},"10":{"start":{"line":37,"column":4},"end":{"line":37,"column":14}},"11":{"start":{"line":40,"column":2},"end":{"line":43,"column":3}},"12":{"start":{"line":41,"column":4},"end":{"line":41,"column":30}},"13":{"start":{"line":42,"column":4},"end":{"line":42,"column":14}},"14":{"start":{"line":45,"column":2},"end":{"line":48,"column":3}},"15":{"start":{"line":46,"column":4},"end":{"line":46,"column":27}},"16":{"start":{"line":47,"column":4},"end":{"line":47,"column":14}},"17":{"start":{"line":50,"column":2},"end":{"line":59,"column":3}},"18":{"start":{"line":53,"column":21},"end":{"line":53,"column":52}},"19":{"start":{"line":54,"column":18},"end":{"line":54,"column":46}},"20":{"start":{"line":55,"column":21},"end":{"line":55,"column":52}},"21":{"start":{"line":57,"column":17},"end":{"line":57,"column":56}},"22":{"start":{"line":58,"column":19},"end":{"line":58,"column":60}},"23":{"start":{"line":74,"column":0},"end":{"line":83,"column":1}},"24":{"start":{"line":75,"column":2},"end":{"line":77,"column":3}},"25":{"start":{"line":76,"column":4},"end":{"line":76,"column":16}},"26":{"start":{"line":79,"column":2},"end":{"line":82,"column":3}},"27":{"start":{"line":85,"column":0},"end":{"line":85,"column":32}},"28":{"start":{"line":103,"column":0},"end":{"line":124,"column":1}},"29":{"start":{"line":104,"column":2},"end":{"line":106,"column":3}},"30":{"start":{"line":105,"column":4},"end":{"line":105,"column":74}},"31":{"start":{"line":108,"column":2},"end":{"line":110,"column":3}},"32":{"start":{"line":112,"column":2},"end":{"line":112,"column":36}},"33":{"start":{"line":114,"column":2},"end":{"line":114,"column":37}},"34":{"start":{"line":115,"column":2},"end":{"line":120,"column":3}},"35":{"start":{"line":121,"column":2},"end":{"line":121,"column":39}},"36":{"start":{"line":122,"column":2},"end":{"line":122,"column":51}},"37":{"start":{"line":123,"column":2},"end":{"line":123,"column":15}},"38":{"start":{"line":126,"column":0},"end":{"line":126,"column":38}},"39":{"start":{"line":143,"column":0},"end":{"line":169,"column":1}},"40":{"start":{"line":144,"column":2},"end":{"line":146,"column":3}},"41":{"start":{"line":145,"column":4},"end":{"line":145,"column":70}},"42":{"start":{"line":148,"column":2},"end":{"line":150,"column":3}},"43":{"start":{"line":152,"column":2},"end":{"line":152,"column":36}},"44":{"start":{"line":155,"column":2},"end":{"line":157,"column":3}},"45":{"start":{"line":156,"column":4},"end":{"line":156,"column":33}},"46":{"start":{"line":159,"column":2},"end":{"line":159,"column":71}},"47":{"start":{"line":160,"column":2},"end":{"line":164,"column":3}},"48":{"start":{"line":165,"column":2},"end":{"line":165,"column":39}},"49":{"start":{"line":166,"column":2},"end":{"line":166,"column":51}},"50":{"start":{"line":168,"column":2},"end":{"line":168,"column":15}},"51":{"start":{"line":179,"column":0},"end":{"line":188,"column":1}},"52":{"start":{"line":180,"column":2},"end":{"line":187,"column":3}},"53":{"start":{"line":181,"column":4},"end":{"line":181,"column":38}},"54":{"start":{"line":182,"column":4},"end":{"line":184,"column":5}},"55":{"start":{"line":183,"column":6},"end":{"line":183,"column":25}},"56":{"start":{"line":186,"column":4},"end":{"line":186,"column":34}},"57":{"start":{"line":198,"column":0},"end":{"line":205,"column":1}},"58":{"start":{"line":199,"column":2},"end":{"line":199,"column":62}},"59":{"start":{"line":200,"column":2},"end":{"line":204,"column":4}},"60":{"start":{"line":202,"column":6},"end":{"line":202,"column":37}},"61":{"start":{"line":225,"column":0},"end":{"line":261,"column":1}},"62":{"start":{"line":227,"column":2},"end":{"line":229,"column":3}},"63":{"start":{"line":228,"column":4},"end":{"line":228,"column":30}},"64":{"start":{"line":232,"column":2},"end":{"line":232,"column":63}},"65":{"start":{"line":235,"column":2},"end":{"line":260,"column":3}},"66":{"start":{"line":238,"column":4},"end":{"line":238,"column":108}},"67":{"start":{"line":239,"column":4},"end":{"line":247,"column":5}},"68":{"start":{"line":241,"column":6},"end":{"line":243,"column":26}},"69":{"start":{"line":246,"column":6},"end":{"line":246,"column":23}},"70":{"start":{"line":250,"column":4},"end":{"line":257,"column":5}},"71":{"start":{"line":251,"column":6},"end":{"line":253,"column":27}},"72":{"start":{"line":255,"column":6},"end":{"line":255,"column":48}},"73":{"start":{"line":256,"column":6},"end":{"line":256,"column":28}},"74":{"start":{"line":259,"column":4},"end":{"line":259,"column":15}},"75":{"start":{"line":266,"column":0},"end":{"line":266,"column":45}},"76":{"start":{"line":277,"column":0},"end":{"line":283,"column":1}},"77":{"start":{"line":278,"column":2},"end":{"line":278,"column":46}},"78":{"start":{"line":279,"column":2},"end":{"line":281,"column":3}},"79":{"start":{"line":280,"column":4},"end":{"line":280,"column":35}},"80":{"start":{"line":282,"column":2},"end":{"line":282,"column":11}},"81":{"start":{"line":285,"column":0},"end":{"line":285,"column":32}}},"branchMap":{"1":{"line":104,"type":"if","locations":[{"start":{"line":104,"column":2},"end":{"line":104,"column":2}},{"start":{"line":104,"column":2},"end":{"line":104,"column":2}}]},"2":{"line":144,"type":"if","locations":[{"start":{"line":144,"column":2},"end":{"line":144,"column":2}},{"start":{"line":144,"column":2},"end":{"line":144,"column":2}}]},"3":{"line":182,"type":"if","locations":[{"start":{"line":182,"column":4},"end":{"line":182,"column":4}},{"start":{"line":182,"column":4},"end":{"line":182,"column":4}}]},"4":{"line":227,"type":"if","locations":[{"start":{"line":227,"column":2},"end":{"line":227,"column":2}},{"start":{"line":227,"column":2},"end":{"line":227,"column":2}}]},"5":{"line":238,"type":"binary-expr","locations":[{"start":{"line":238,"column":28},"end":{"line":238,"column":47}},{"start":{"line":238,"column":51},"end":{"line":238,"column":83}},{"start":{"line":238,"column":87},"end":{"line":238,"column":107}}]},"6":{"line":239,"type":"if","locations":[{"start":{"line":239,"column":4},"end":{"line":239,"column":4}},{"start":{"line":239,"column":4},"end":{"line":239,"column":4}}]},"7":{"line":241,"type":"cond-expr","locations":[{"start":{"line":242,"column":10},"end":{"line":242,"column":55}},{"start":{"line":243,"column":10},"end":{"line":243,"column":26}}]},"8":{"line":250,"type":"if","locations":[{"start":{"line":250,"column":4},"end":{"line":250,"column":4}},{"start":{"line":250,"column":4},"end":{"line":250,"column":4}}]},"9":{"line":251,"type":"cond-expr","locations":[{"start":{"line":252,"column":10},"end":{"line":252,"column":52}},{"start":{"line":253,"column":10},"end":{"line":253,"column":27}}]},"10":{"line":279,"type":"if","locations":[{"start":{"line":279,"column":2},"end":{"line":279,"column":2}},{"start":{"line":279,"column":2},"end":{"line":279,"column":2}}]},"11":{"line":279,"type":"binary-expr","locations":[{"start":{"line":279,"column":6},"end":{"line":279,"column":10}},{"start":{"line":279,"column":14},"end":{"line":279,"column":21}},{"start":{"line":279,"column":25},"end":{"line":279,"column":47}},{"start":{"line":279,"column":51},"end":{"line":279,"column":73}}]}}},"/Users/jeff/Projects/awilix/lib/ResolutionMode.js":{"path":"/Users/jeff/Projects/awilix/lib/ResolutionMode.js","s":{"1":1,"2":1},"b":{},"f":{},"fnMap":{},"statementMap":{"1":{"start":{"line":6,"column":0},"end":{"line":6,"column":30}},"2":{"start":{"line":13,"column":0},"end":{"line":13,"column":34}}},"branchMap":{}},"/Users/jeff/Projects/awilix/lib/AwilixNotAFunctionError.js":{"path":"/Users/jeff/Projects/awilix/lib/AwilixNotAFunctionError.js","s":{"1":1,"2":2,"3":1},"b":{},"f":{"1":2},"fnMap":{"1":{"name":"(anonymous_1)","line":20,"loc":{"start":{"line":20,"column":14},"end":{"line":20,"column":54}}}},"statementMap":{"1":{"start":{"line":1,"column":0},"end":{"line":1,"column":52}},"2":{"start":{"line":21,"column":4},"end":{"line":21,"column":89}},"3":{"start":{"line":25,"column":0},"end":{"line":25,"column":40}}},"branchMap":{}},"/Users/jeff/Projects/awilix/lib/ExtendableError.js":{"path":"/Users/jeff/Projects/awilix/lib/ExtendableError.js","s":{"1":12,"2":12,"3":12,"4":12,"5":1},"b":{},"f":{"1":12},"fnMap":{"1":{"name":"(anonymous_1)","line":12,"loc":{"start":{"line":12,"column":14},"end":{"line":12,"column":24}}}},"statementMap":{"1":{"start":{"line":13,"column":4},"end":{"line":13,"column":18}},"2":{"start":{"line":16,"column":4},"end":{"line":19,"column":6}},"3":{"start":{"line":21,"column":4},"end":{"line":24,"column":6}},"4":{"start":{"line":26,"column":4},"end":{"line":26,"column":51}},"5":{"start":{"line":30,"column":0},"end":{"line":30,"column":32}}},"branchMap":{}},"/Users/jeff/Projects/awilix/lib/listModules.js":{"path":"/Users/jeff/Projects/awilix/lib/listModules.js","s":{"1":1,"2":1,"3":1,"4":1,"5":1,"6":12,"7":12,"8":12,"9":5,"10":5,"11":12,"12":12,"13":90,"14":12,"15":1,"16":9,"17":5,"18":8,"19":4},"b":{"1":[5,7],"2":[5,4]},"f":{"1":12,"2":9},"fnMap":{"1":{"name":"_listModules","line":23,"loc":{"start":{"line":23,"column":0},"end":{"line":23,"column":42}}},"2":{"name":"listModules","line":55,"loc":{"start":{"line":55,"column":17},"end":{"line":55,"column":59}}}},"statementMap":{"1":{"start":{"line":1,"column":0},"end":{"line":1,"column":28}},"2":{"start":{"line":2,"column":0},"end":{"line":2,"column":28}},"3":{"start":{"line":3,"column":0},"end":{"line":3,"column":36}},"4":{"start":{"line":6,"column":0},"end":{"line":6,"column":28}},"5":{"start":{"line":23,"column":0},"end":{"line":38,"column":1}},"6":{"start":{"line":24,"column":2},"end":{"line":24,"column":69}},"7":{"start":{"line":25,"column":2},"end":{"line":25,"column":24}},"8":{"start":{"line":26,"column":2},"end":{"line":29,"column":3}},"9":{"start":{"line":27,"column":4},"end":{"line":27,"column":32}},"10":{"start":{"line":28,"column":4},"end":{"line":28,"column":32}},"11":{"start":{"line":31,"column":2},"end":{"line":31,"column":58}},"12":{"start":{"line":32,"column":2},"end":{"line":36,"column":5}},"13":{"start":{"line":32,"column":34},"end":{"line":36,"column":3}},"14":{"start":{"line":37,"column":2},"end":{"line":37,"column":15}},"15":{"start":{"line":55,"column":0},"end":{"line":65,"column":1}},"16":{"start":{"line":56,"column":2},"end":{"line":62,"column":3}},"17":{"start":{"line":57,"column":4},"end":{"line":61,"column":5}},"18":{"start":{"line":59,"column":13},"end":{"line":59,"column":34}},"19":{"start":{"line":64,"column":2},"end":{"line":64,"column":41}}},"branchMap":{"1":{"line":26,"type":"if","locations":[{"start":{"line":26,"column":2},"end":{"line":26,"column":2}},{"start":{"line":26,"column":2},"end":{"line":26,"column":2}}]},"2":{"line":56,"type":"if","locations":[{"start":{"line":56,"column":2},"end":{"line":56,"column":2}},{"start":{"line":56,"column":2},"end":{"line":56,"column":2}}]}}},"/Users/jeff/Projects/awilix/lib/flatten.js":{"path":"/Users/jeff/Projects/awilix/lib/flatten.js","s":{"1":1,"2":6,"3":6,"4":10,"5":41,"6":6},"b":{},"f":{"1":6},"fnMap":{"1":{"name":"flatten","line":10,"loc":{"start":{"line":10,"column":17},"end":{"line":10,"column":42}}}},"statementMap":{"1":{"start":{"line":10,"column":0},"end":{"line":19,"column":1}},"2":{"start":{"line":11,"column":2},"end":{"line":11,"column":19}},"3":{"start":{"line":12,"column":2},"end":{"line":16,"column":4}},"4":{"start":{"line":13,"column":4},"end":{"line":15,"column":6}},"5":{"start":{"line":14,"column":6},"end":{"line":14,"column":23}},"6":{"start":{"line":18,"column":2},"end":{"line":18,"column":15}}},"branchMap":{}},"/Users/jeff/Projects/awilix/lib/AwilixResolutionError.js":{"path":"/Users/jeff/Projects/awilix/lib/AwilixResolutionError.js","s":{"1":1,"2":1,"3":1,"4":10,"5":10,"6":10,"7":10,"8":10,"9":2,"10":10,"11":10,"12":10,"13":10,"14":1},"b":{"1":[2,8]},"f":{"1":10},"fnMap":{"1":{"name":"(anonymous_1)","line":45,"loc":{"start":{"line":45,"column":14},"end":{"line":45,"column":47}}}},"statementMap":{"1":{"start":{"line":1,"column":0},"end":{"line":1,"column":29}},"2":{"start":{"line":2,"column":0},"end":{"line":2,"column":52}},"3":{"start":{"line":16,"column":0},"end":{"line":29,"column":1}},"4":{"start":{"line":17,"column":2},"end":{"line":17,"column":43}},"5":{"start":{"line":18,"column":2},"end":{"line":18,"column":28}},"6":{"start":{"line":19,"column":2},"end":{"line":19,"column":59}},"7":{"start":{"line":20,"column":2},"end":{"line":20,"column":42}},"8":{"start":{"line":21,"column":2},"end":{"line":23,"column":3}},"9":{"start":{"line":22,"column":4},"end":{"line":22,"column":24}},"10":{"start":{"line":25,"column":2},"end":{"line":25,"column":18}},"11":{"start":{"line":26,"column":2},"end":{"line":26,"column":51}},"12":{"start":{"line":28,"column":2},"end":{"line":28,"column":12}},"13":{"start":{"line":46,"column":4},"end":{"line":46,"column":61}},"14":{"start":{"line":50,"column":0},"end":{"line":50,"column":38}}},"branchMap":{"1":{"line":21,"type":"if","locations":[{"start":{"line":21,"column":2},"end":{"line":21,"column":2}},{"start":{"line":21,"column":2},"end":{"line":21,"column":2}}]}}},"/Users/jeff/Projects/awilix/lib/nameValueToObject.js":{"path":"/Users/jeff/Projects/awilix/lib/nameValueToObject.js","s":{"1":1,"2":1,"3":135,"4":135,"5":91,"6":135},"b":{"1":[91,44]},"f":{"1":135},"fnMap":{"1":{"name":"nameValueToObject","line":14,"loc":{"start":{"line":14,"column":17},"end":{"line":14,"column":58}}}},"statementMap":{"1":{"start":{"line":1,"column":0},"end":{"line":1,"column":48}},"2":{"start":{"line":14,"column":0},"end":{"line":21,"column":1}},"3":{"start":{"line":15,"column":2},"end":{"line":15,"column":16}},"4":{"start":{"line":16,"column":2},"end":{"line":18,"column":3}},"5":{"start":{"line":17,"column":4},"end":{"line":17,"column":42}},"6":{"start":{"line":20,"column":2},"end":{"line":20,"column":12}}},"branchMap":{"1":{"line":16,"type":"if","locations":[{"start":{"line":16,"column":2},"end":{"line":16,"column":2}},{"start":{"line":16,"column":2},"end":{"line":16,"column":2}}]}}},"/Users/jeff/Projects/awilix/lib/last.js":{"path":"/Users/jeff/Projects/awilix/lib/last.js","s":{"1":1,"2":123},"b":{},"f":{"1":123},"fnMap":{"1":{"name":"last","line":10,"loc":{"start":{"line":10,"column":17},"end":{"line":10,"column":37}}}},"statementMap":{"1":{"start":{"line":10,"column":0},"end":{"line":12,"column":1}},"2":{"start":{"line":11,"column":2},"end":{"line":11,"column":28}}},"branchMap":{}}}

@@ -26,3 +26,3 @@ "use strict";

container.register({
testClass: index_1.asClass(TestClass),
testClass: index_1.asClass(TestClass).inject(container => ({ value: 42 })),
testClass2: index_1.asClass(TestClass),

@@ -46,6 +46,8 @@ testFunction: index_1.asFunction(testFunction),

container.registerClass({
__testClass: TestClass
__testClass: TestClass,
__testClass2: [TestClass, {}]
});
container.registerFunction({
__testFunction: testFunction
__testFunction: testFunction,
__testFunction2: [testFunction, { injector: (c) => ({ hehe: 42 }) }]
});

@@ -59,3 +61,4 @@ container.registerValue({

container.loadModules([
['hello.js', { lifetime: index_1.Lifetime.SCOPED }]
['hello.js', { lifetime: index_1.Lifetime.SCOPED }],
['world.js', { injector: (c) => ({ hah: 123 }) }]
]);

@@ -62,0 +65,0 @@ index_1.listModules('');

@@ -18,6 +18,4 @@ // Type definitions for Awilix v2.2.6

registerClass<T>(nameAndClassPair: RegisterNameAndClassPair<T>): AwilixContainer
registerClass<T>(nameAndArrayClassPair: RegisterNameAndArrayClassPair<T>): AwilixContainer
registerFunction(name: string, fn: Function): AwilixContainer
registerFunction(nameAndFunctionPair: RegisterNameAndFunctionPair): AwilixContainer
registerFunction(nameAndArrayPair: RegisterNameAndArrayFunctionPair): AwilixContainer
registerValue(name: string, value: any): AwilixContainer

@@ -45,3 +43,6 @@ registerValue(nameAndValuePairs: RegisterNameAndValuePair): AwilixContainer

*/
export declare function asClass<T>(type: new (...args: any[]) => T, options?: RegistrationOptions): FluidRegistration
export declare function asClass<T>(
type: new (...args: any[]) => T,
options?: RegistrationOptions
): FluidRegistration

@@ -55,3 +56,6 @@ /**

*/
export declare function asFunction(fn: Function, options?: RegistrationOptions): FluidRegistration
export declare function asFunction(
fn: Function,
options?: RegistrationOptions
): FluidRegistration

@@ -64,3 +68,6 @@ /**

*/
export declare function asValue(value: any, options?: RegistrationOptions): Registration
export declare function asValue(
value: any,
options?: RegistrationOptions
): Registration

@@ -84,2 +91,11 @@ /**

/**
* Gets passed the container and is expected to return an object
* whose properties are accessible at construction time for the
* configured registration.
*
* @type {Function}
*/
export type InjectorFunction = (container: AwilixContainer) => object
/**
* A registration object created by asClass() or asFunction().

@@ -94,2 +110,3 @@ * @interface FluidRegistration

classic(): this
inject(injector: InjectorFunction): this
}

@@ -182,18 +199,2 @@

/**
* Register a class using the [value, options] array syntax.
* @interface RegisterNameAndArrayClassPair<T>
*/
export interface RegisterNameAndArrayClassPair<T> {
[key: string]: [T, RegistrationOptions]
}
/**
* Register a function using the [value, options] array syntax.
* @interface RegisterNameAndArrayFunctionPair
*/
export interface RegisterNameAndArrayFunctionPair {
[key: string]: [Function, RegistrationOptions]
}
/**
* Register a class.

@@ -203,3 +204,3 @@ * @interface RegisterNameAndClassPair

export interface RegisterNameAndClassPair<T> {
[key: string]: T
[key: string]: [T, RegistrationOptions] | T
}

@@ -212,3 +213,3 @@

export interface RegisterNameAndFunctionPair {
[key: string]: Function
[key: string]: [Function, RegistrationOptions] | Function
}

@@ -240,2 +241,3 @@

resolutionMode?: ResolutionMode
injector?: InjectorFunction
}

@@ -189,3 +189,2 @@ const loadModules = require('./loadModules')

const obj = nameValueToObject(name, value)
for (const key in obj) {

@@ -195,11 +194,17 @@ let valueToRegister = obj[key]

// If we have options, copy them over.
opts = Object.assign({}, opts)
let regOpts = Object.assign({}, opts)
if (!verbatimValue && Array.isArray(valueToRegister)) {
// The ('name', [value, opts]) style
opts = Object.assign({}, opts, valueToRegister[1])
let arrayOpts = valueToRegister[1]
// // The ('name', [value, opts]) style
if (typeof arrayOpts === 'string') {
// opts is a Lifetime.
arrayOpts = { lifetime: arrayOpts }
}
regOpts = Object.assign({}, regOpts, arrayOpts)
valueToRegister = valueToRegister[0]
}
register(key, fn(valueToRegister, opts))
register(key, fn(valueToRegister, regOpts))
}

@@ -206,0 +211,0 @@

@@ -45,4 +45,10 @@ const Lifetime = require('./Lifetime')

const inject = (injector) => {
obj.injector = injector
return obj
}
return {
setLifetime,
inject,
transient: () => setLifetime(Lifetime.TRANSIENT),

@@ -113,2 +119,3 @@ scoped: () => setLifetime(Lifetime.SCOPED),

lifetime: opts.lifetime,
injector: opts.injector,
resolutionMode: opts.resolutionMode

@@ -150,3 +157,3 @@ }

// A function to handle object construction for us, as to make the generateResolve more reusable
const newClass = function () {
const newClass = function newClass () {
return new Type(...arguments)

@@ -157,4 +164,4 @@ }

const result = {
resolve,
lifetime: opts.lifetime,
injector: opts.injector,
resolutionMode: opts.resolutionMode

@@ -169,2 +176,38 @@ }

/**
* Returns a wrapped `resolve` function that provides values
* from the injector and defers to `container.resolve`.
*
* @param {AwilixContainer} container
* @param {Function} injector
* @return {Function}
*/
function wrapWithInjector (container, injector) {
return function wrappedResolve (name) {
const locals = injector(container)
if (name in locals) {
return locals[name]
}
return container.resolve(name)
}
}
/**
* Returns a new Proxy that checks the result from `injector`
* for values before delegating to the actual container.
*
* @param {Object} cradle
* @param {Function} injector
* @return {Object}
*/
function createInjectorProxy (container, injector) {
const wrappedResolve = wrapWithInjector(container, injector)
return new Proxy({}, {
get (target, property) {
return wrappedResolve(property)
}
})
}
/**
* Returns a resolve function used to construct the dependency graph

@@ -202,4 +245,9 @@ *

if (resolutionMode !== ResolutionMode.CLASSIC) {
// Just return the target injected with the cradle
return fn(container.cradle)
// If we have a custom injector, we need to wrap the cradle.
const cradle = this.injector
? createInjectorProxy(container, this.injector)
: container.cradle
// Return the target injected with the cradle
return fn(cradle)
}

@@ -209,6 +257,10 @@

if (dependencies.length > 0) {
const children = []
dependencies.forEach((d) => children.push(container.resolve(d)))
const resolve = this.injector
? wrapWithInjector(container, this.injector)
: container.resolve
const children = dependencies.map(resolve)
return fn(...children)
}
return fn()

@@ -215,0 +267,0 @@ }

@@ -6,3 +6,3 @@ /**

*/
module.exports.PROXY = 'Proxy'
module.exports.PROXY = 'PROXY'

@@ -14,2 +14,2 @@ /**

*/
module.exports.CLASSIC = 'Classic'
module.exports.CLASSIC = 'CLASSIC'
{
"name": "awilix",
"version": "2.4.0",
"version": "2.5.0",
"description": "Simple dependency injection container + helper utilities to facilitate wiring of modules",

@@ -37,10 +37,10 @@ "main": "lib/awilix.js",

"devDependencies": {
"@types/chai": "^4.0.0",
"@types/node": "^7.0.31",
"@types/chai": "^4.0.1",
"@types/node": "^8.0.5",
"chai": "^4.0.2",
"coveralls": "^2.13.1",
"eslint": "^4.0.0",
"eslint": "^4.1.1",
"eslint-config-standard": "^10.2.1",
"eslint-plugin-import": "^2.3.0",
"eslint-plugin-node": "^5.0.0",
"eslint-plugin-import": "^2.6.1",
"eslint-plugin-node": "^5.1.0",
"eslint-plugin-promise": "^3.5.0",

@@ -51,5 +51,5 @@ "eslint-plugin-standard": "^3.0.1",

"mocha": "^3.4.2",
"sinon": "^2.3.4",
"sinon": "^2.3.6",
"sinon-chai": "^2.11.0",
"typescript": "^2.3.4"
"typescript": "^2.4.1"
},

@@ -56,0 +56,0 @@ "dependencies": {

@@ -26,5 +26,9 @@ # Awilix

* [Auto-loading modules](#auto-loading-modules)
* [Per-module local injections](#per-module-local-injections)
* [API](#api)
- [The `awilix` object](#the-awilix-object)
- [`createContainer()`](#createcontainer)
- [`asFunction()`](#asfunction)
- [`asClass()`](#asclass)
- [`asValue()`](#asvalue)
- [`listModules()`](#listmodules)

@@ -443,2 +447,59 @@ - [`AwilixResolutionError`](#awilixresolutionerror)

# Per-module local injections
Some modules might need some additional configuration values than just dependencies.
For example, our `userRepository` wants a `db` module which is registered with the container, but it also wants a `timeout` value. `timeout` is a very generic name and we don't want to register that as a value that can be accessed by all modules in the container (maybe other modules have a different timeout?)
```js
export default function userRepository ({ db, timeout }) {
return {
find () {
return Promise.race([
db.query('select * from users'),
Promise.delay(timeout).then(() => Promise.reject(new Error('Timed out')))
])
}
}
}
```
Awilix 2.5 added per-module local injections. The following snippet contains _all_ the possible ways to set this up.
```js
import { createContainer, Lifetime, asFunction } from 'awilix'
import createUserRepository from './repositories/userRepository'
const container = createContainer()
// Using the fluid variant:
.register({
userRepository: asFunction(createUserRepository)
// Provide an injection function that returns an object with locals.
// The function is called once per resolve of the registration
// it is attached to.
.inject(() => ({ timeout: 2000 }))
})
// Shorthand variants
.registerFunction({
userRepository: [createUserRepository, { injector: () => ({ timeout: 2000 }) }]
})
// Stringly-typed shorthand
.registerFunction(
'userRepository',
createUserRepository,
{ injector: () => ({ timeout: 2000 }) }
)
// with `loadModules`
.loadModules([
['repositories/*.js', { injector: () => ({ timeout: 2000 }) }]
])
```
Now `timeout` is only available to the modules it was configured for.
**IMPORTANT**: the way this works is by wrapping the `cradle` in another proxy that provides the returned values from the `inject` function. This means if you pass along the injected cradle object, anything with access to it can access the local injections.
# API

@@ -473,2 +534,24 @@

## `asFunction()`
Used with `container.register({ userService: asFunction(makeUserService) })`. Tells Awilix to invoke the function without any context.
The returned registration has the following chainable (fluid) API:
* `asFunction(fn).setLifetime(lifetime: string)`: sets the lifetime of the registration to the given value.
* `asFunction(fn).transient()`: same as `asFunction(fn).setLifetime(Lifetime.TRANSIENT)`.
* `asFunction(fn).scoped()`: same as `asFunction(fn).setLifetime(Lifetime.SCOPED)`.
* `asFunction(fn).singleton()`: same as `asFunction(fn).setLifetime(Lifetime.SINGLETON)`.
* `asFunction(fn).inject(injector: Function)`: Let's you provide local dependencies only available to this module. The `injector` gets the container passed as the first and only argument and should return an object.
## `asClass()`
Used with `container.register({ userService: asClass(UserService) })`. Tells Awilix to instantiate the given function as a class using `new`.
The returned registration has the same chainable API as [`asFunction`](#asfunction).
## `asValue()`
Used with `container.register({ dbHost: asValue('localhost') })`. Tells Awilix to provide the given value as-is.
## `listModules()`

@@ -581,6 +664,6 @@

```js
// name-value-options
// name-registration)
container.register('connectionString', asValue('localhost:1433;user=...'))
container.register('mailService', asFunction(makeMailService), { lifetime: Lifetime.SINGLETON })
container.register('context', asClass(SessionContext), { lifetime: Lifetime.SCOPED })
container.register('mailService', asFunction(makeMailService))
container.register('context', asClass(SessionContext))

@@ -595,4 +678,8 @@ // object

// `registerFunction` and `registerClass` also supports a fluid syntax.
// This...
container.register('mailService', asFunction(makeMailService).setLifetime(Lifetime.SINGLETON))
// .. is the same as this:
container.register('context', asClass(SessionContext).singleton())
// .. and here are the other `Lifetime` variants as fluid functions.
container.register('context', asClass(SessionContext).transient())

@@ -691,4 +778,9 @@ container.register('context', asClass(SessionContext).scoped())

// or..
// or, to easily set up Lifetime..
container.registerClass({
exclaimer: [Exclaimer, Lifetime.SINGLETON]
})
// or, to fully customize options..
container.registerClass({
exclaimer: [Exclaimer, { lifetime: Lifetime.SINGLETON }]

@@ -695,0 +787,0 @@ })

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc