{"_id":"app-container","_rev":"26-786db2ccced80bfc8f40121a982c4a68","name":"app-container","description":"asynchronous IoC container for node.js applications","dist-tags":{"latest":"1.1.2"},"versions":{"0.1.0":{"name":"app-container","version":"0.1.0","description":"asynchronous IoC container for node.js applications","main":"./dist","scripts":{"build":"rm -rf dist/* && babel lib -d dist","coverage":"babel-node ./node_modules/.bin/babel-istanbul cover ./node_modules/.bin/_mocha test/**/*.test.js","postversion":"npm run build","release":"npm run build && standard-version","start":"node .","test":"mocha --recursive --compilers js:babel-register test/**/*.test.js"},"repository":{"type":"git","url":"git+https://github.com/cludden/app-container.git"},"keywords":["ioc","async","di","dependency injection","dependency-injection","container","ioc-container","IoC"],"author":{"name":"chris ludden"},"license":"MIT","bugs":{"url":"https://github.com/cludden/app-container/issues"},"homepage":"https://github.com/cludden/app-container#readme","devDependencies":{"babel-cli":"^6.23.0","babel-core":"^6.23.1","babel-istanbul":"^0.12.2","babel-plugin-add-module-exports":"^0.2.1","babel-plugin-transform-object-rest-spread":"^6.23.0","babel-preset-env":"^1.2.1","chai":"^3.5.0","eslint":"^3.17.1","eslint-config-airbnb-base":"^11.1.1","eslint-plugin-import":"^2.2.0","istanbul":"^0.4.5","mocha":"^3.2.0","sinon":"^2.1.0","sinon-chai":"^2.9.0","standard-version":"^4.0.0"},"dependencies":{"bluebird":"^3.5.0","debug":"^2.6.3","dependency-graph":"^0.5.0","glob":"^7.1.1","lodash":"^4.17.4"},"gitHead":"e68effa68df30818ebf60317f03f746920b7b01d","_id":"app-container@0.1.0","_shasum":"8377307f8748f40f15016d5d8c030db83009f63d","_from":".","_npmVersion":"3.10.10","_nodeVersion":"6.9.5","_npmUser":{"name":"cludden","email":"chris.ludden@gmail.com"},"dist":{"shasum":"8377307f8748f40f15016d5d8c030db83009f63d","tarball":"https://registry.npmjs.org/app-container/-/app-container-0.1.0.tgz","integrity":"sha512-IHn4knZAo+YXJZH/KNzoGMkXY3P3ByiPPKeLQ4/8nruOYftQi9Y0q63YeM8iu0MWh/IEJRJLXVj43W6m3h3NCg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDwUyUTWY/Zo3OKXXSCR860XmjL6unkg9qRbhY0CGhRsAIhAP3+hedosVZgnDhnEC4xWHLe4YCk38hdwrR/Aye50Ch4"}]},"maintainers":[{"name":"cludden","email":"chris.ludden@gmail.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/app-container-0.1.0.tgz_1490997333667_0.3270229296758771"},"directories":{}},"0.1.1":{"name":"app-container","version":"0.1.1","description":"asynchronous IoC container for node.js applications","main":"./dist","scripts":{"build":"rm -rf dist/* && babel lib -d dist","coverage":"babel-node ./node_modules/.bin/babel-istanbul cover ./node_modules/.bin/_mocha test/**/*.test.js","postversion":"npm run build","release":"npm run build && standard-version","start":"node .","test":"mocha --recursive --compilers js:babel-register test/**/*.test.js"},"repository":{"type":"git","url":"git+https://github.com/cludden/app-container.git"},"keywords":["ioc","async","di","dependency injection","dependency-injection","container","ioc-container","IoC"],"author":{"name":"chris ludden"},"license":"MIT","bugs":{"url":"https://github.com/cludden/app-container/issues"},"homepage":"https://github.com/cludden/app-container#readme","devDependencies":{"babel-cli":"^6.23.0","babel-core":"^6.23.1","babel-istanbul":"^0.12.2","babel-plugin-add-module-exports":"^0.2.1","babel-plugin-transform-object-rest-spread":"^6.23.0","babel-preset-env":"^1.2.1","chai":"^3.5.0","eslint":"^3.17.1","eslint-config-airbnb-base":"^11.1.1","eslint-plugin-import":"^2.2.0","istanbul":"^0.4.5","mocha":"^3.2.0","sinon":"^2.1.0","sinon-chai":"^2.9.0","standard-version":"^4.0.0"},"dependencies":{"bluebird":"^3.5.0","debug":"^2.6.3","dependency-graph":"^0.5.0","glob":"^7.1.1","lodash":"^4.17.4"},"gitHead":"fdd56b9555654a233ca0f6b49a4fefbadf1c9927","_id":"app-container@0.1.1","_shasum":"930b3fb5a65be682862d3945b1891bacfa500780","_from":".","_npmVersion":"3.10.10","_nodeVersion":"6.9.5","_npmUser":{"name":"cludden","email":"chris.ludden@gmail.com"},"dist":{"shasum":"930b3fb5a65be682862d3945b1891bacfa500780","tarball":"https://registry.npmjs.org/app-container/-/app-container-0.1.1.tgz","integrity":"sha512-Lbo9848V7cuRsmSX3rgiEzjtTGmgouFtppdhIamKZC/ouTnYiTWN4PBQ+UCwIv/WI6xSKB3S670wbzGX6jaYFg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCvHaq4T/rfMe3fggUF9SacyXVyvymrXTAUXHu7AqN1YwIgZTXFQVobuvMdCIoWCgtWU3PpEWu/ucqebM22hFV5bwM="}]},"maintainers":[{"name":"cludden","email":"chris.ludden@gmail.com"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/app-container-0.1.1.tgz_1490997419748_0.9659513183869421"},"directories":{}},"0.2.0":{"name":"app-container","version":"0.2.0","description":"asynchronous IoC container for node.js applications","main":"./dist","scripts":{"build":"rm -rf dist/* && babel lib -d dist","coverage":"babel-node ./node_modules/.bin/babel-istanbul cover ./node_modules/.bin/_mocha test/**/*.test.js","postversion":"npm run build","release":"npm run build && standard-version","start":"node .","test":"mocha --recursive --compilers js:babel-register test/**/*.test.js"},"repository":{"type":"git","url":"git+https://github.com/cludden/app-container.git"},"keywords":["ioc","async","di","dependency injection","dependency-injection","container","ioc-container","IoC"],"author":{"name":"chris ludden"},"license":"MIT","bugs":{"url":"https://github.com/cludden/app-container/issues"},"homepage":"https://github.com/cludden/app-container#readme","devDependencies":{"babel-cli":"^6.23.0","babel-core":"^6.23.1","babel-istanbul":"^0.12.2","babel-plugin-add-module-exports":"^0.2.1","babel-plugin-transform-object-rest-spread":"^6.23.0","babel-preset-env":"^1.2.1","chai":"^3.5.0","eslint":"^3.17.1","eslint-config-airbnb-base":"^11.1.1","eslint-plugin-import":"^2.2.0","istanbul":"^0.4.5","mocha":"^3.2.0","sinon":"^2.1.0","sinon-chai":"^2.9.0","standard-version":"^4.0.0"},"dependencies":{"bluebird":"^3.5.0","debug":"^2.6.3","dependency-graph":"^0.5.0","es6-error":"^4.0.2","glob":"^7.1.1","lodash":"^4.17.4"},"gitHead":"3b3cd20424fbda7b6f72b56ac2f0b44dea730271","_id":"app-container@0.2.0","_shasum":"36880a03545d98cced067e41a542579a3f0a3d3d","_from":".","_npmVersion":"3.10.10","_nodeVersion":"6.9.5","_npmUser":{"name":"cludden","email":"chris.ludden@gmail.com"},"dist":{"shasum":"36880a03545d98cced067e41a542579a3f0a3d3d","tarball":"https://registry.npmjs.org/app-container/-/app-container-0.2.0.tgz","integrity":"sha512-efQdiZEa0fQAsOurTwVAV72VLtMjOBDJrijW3NCJN0+B60rl8/QU7qEJ5dL8lKa0eNk04gvudulDUaWEQl8qxA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIH590ylCKF1zxDPoduShn6+KTqdTurqiQY8VFHaQWrWiAiEA5dLsiVQR92msIZzCEbE56Jf0yQz0fTq1uutkd2TVOVs="}]},"maintainers":[{"name":"cludden","email":"chris.ludden@gmail.com"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/app-container-0.2.0.tgz_1491172329895_0.5136127702426165"},"directories":{}},"0.3.0":{"name":"app-container","version":"0.3.0","description":"asynchronous IoC container for node.js applications","main":"./dist","scripts":{"build":"rm -rf dist/* && babel lib -d dist","coverage":"babel-node ./node_modules/.bin/babel-istanbul cover ./node_modules/.bin/_mocha test/**/*.test.js","postversion":"npm run build","release":"npm run build && standard-version","start":"node .","test":"mocha --recursive --compilers js:babel-register test/**/*.test.js"},"repository":{"type":"git","url":"git+https://github.com/cludden/app-container.git"},"keywords":["ioc","async","di","dependency injection","dependency-injection","container","ioc-container","IoC"],"author":{"name":"chris ludden"},"license":"MIT","bugs":{"url":"https://github.com/cludden/app-container/issues"},"homepage":"https://github.com/cludden/app-container#readme","devDependencies":{"babel-cli":"^6.23.0","babel-core":"^6.23.1","babel-istanbul":"^0.12.2","babel-plugin-add-module-exports":"^0.2.1","babel-plugin-transform-object-rest-spread":"^6.23.0","babel-preset-env":"^1.2.1","chai":"^3.5.0","eslint":"^3.17.1","eslint-config-airbnb-base":"^11.1.1","eslint-plugin-import":"^2.2.0","istanbul":"^0.4.5","mocha":"^3.2.0","sinon":"^2.1.0","sinon-chai":"^2.9.0","standard-version":"^4.0.0"},"dependencies":{"bluebird":"^3.5.0","debug":"^2.6.3","dependency-graph":"^0.5.0","es6-error":"^4.0.2","glob":"^7.1.1","lodash":"^4.17.4","mocha":"^3.2.0"},"gitHead":"acc1edd3a2d203238226083a72d21b68edb6ff29","_id":"app-container@0.3.0","_shasum":"c398c7d292221ba8aeaa10881588163c95b7d3f9","_from":".","_npmVersion":"3.10.10","_nodeVersion":"6.9.5","_npmUser":{"name":"cludden","email":"chris.ludden@gmail.com"},"dist":{"shasum":"c398c7d292221ba8aeaa10881588163c95b7d3f9","tarball":"https://registry.npmjs.org/app-container/-/app-container-0.3.0.tgz","integrity":"sha512-V6p5NGtBDEMKTPuiXAOMi4ctV3n7sXvzEGNg6ERQifFOptDodlxiED52ojwX3kTDvWxKc5R6V7BaRS1QOk/+4g==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIC+RlvHzmkynq8eWjgr0REt2EawALQX5JAcxhF34CgBIAiEAjDVs0XnMmKNg1vno3YxojXlu1jF3paqAhMRt4KhIUXE="}]},"maintainers":[{"name":"cludden","email":"chris.ludden@gmail.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/app-container-0.3.0.tgz_1491228862076_0.754088785732165"},"directories":{}},"0.3.1":{"name":"app-container","version":"0.3.1","description":"asynchronous IoC container for node.js applications","main":"./dist","scripts":{"build":"rm -rf dist/* && babel lib -d dist","coverage":"babel-node ./node_modules/.bin/babel-istanbul cover ./node_modules/.bin/_mocha test/**/*.test.js","postversion":"npm run build","release":"npm run build && standard-version","start":"node .","test":"mocha --recursive --compilers js:babel-register test/**/*.test.js"},"repository":{"type":"git","url":"git+https://github.com/cludden/app-container.git"},"keywords":["ioc","async","di","dependency injection","dependency-injection","container","ioc-container","IoC"],"author":{"name":"chris ludden"},"license":"MIT","bugs":{"url":"https://github.com/cludden/app-container/issues"},"homepage":"https://github.com/cludden/app-container#readme","devDependencies":{"babel-cli":"^6.23.0","babel-core":"^6.23.1","babel-istanbul":"^0.12.2","babel-plugin-add-module-exports":"^0.2.1","babel-plugin-transform-object-rest-spread":"^6.23.0","babel-preset-env":"^1.2.1","chai":"^3.5.0","eslint":"^3.17.1","eslint-config-airbnb-base":"^11.1.1","eslint-plugin-import":"^2.2.0","istanbul":"^0.4.5","mocha":"^3.2.0","sinon":"^2.1.0","sinon-chai":"^2.9.0","standard-version":"^4.0.0"},"dependencies":{"bluebird":"^3.5.0","debug":"^2.6.3","dependency-graph":"^0.5.0","es6-error":"^4.0.2","glob":"^7.1.1","lodash":"^4.17.4","mocha":"^3.2.0"},"gitHead":"f38d463f5d359bf015cd6eb37bd3fd3f8bfb1e66","_id":"app-container@0.3.1","_shasum":"eb2dc38e46887e991dc4f50359d656f0441922cb","_from":".","_npmVersion":"3.10.10","_nodeVersion":"6.9.5","_npmUser":{"name":"cludden","email":"chris.ludden@gmail.com"},"dist":{"shasum":"eb2dc38e46887e991dc4f50359d656f0441922cb","tarball":"https://registry.npmjs.org/app-container/-/app-container-0.3.1.tgz","integrity":"sha512-st8cCb68wexg3luuFExZBSUeB4hJE2q2rG7zTxQPP5aEVnth7FIDDK1J81IHH9Q8sgyZhE3UtmXqn89YWiZHCA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGeJdmIOf/pft2RZaqf7biPmm2d2MecdsvprTpJA9eBrAiEAzICMVWl+Pxu97xXEQ43Qxy0oqU8IfdW4jzsiyQNpN9c="}]},"maintainers":[{"name":"cludden","email":"chris.ludden@gmail.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/app-container-0.3.1.tgz_1491241828230_0.624170663068071"},"directories":{}},"0.3.2":{"name":"app-container","version":"0.3.2","description":"asynchronous IoC container for node.js applications","main":"./dist","scripts":{"build":"rm -rf dist/* && babel lib -d dist","coverage":"babel-node ./node_modules/.bin/babel-istanbul cover ./node_modules/.bin/_mocha test/**/*.test.js","postversion":"npm run build","release":"npm run build && standard-version","start":"node .","test":"mocha --recursive --compilers js:babel-register test/**/*.test.js"},"repository":{"type":"git","url":"git+https://github.com/cludden/app-container.git"},"keywords":["ioc","async","di","dependency injection","dependency-injection","container","ioc-container","IoC"],"author":{"name":"chris ludden"},"license":"MIT","bugs":{"url":"https://github.com/cludden/app-container/issues"},"homepage":"https://github.com/cludden/app-container#readme","devDependencies":{"babel-cli":"^6.23.0","babel-core":"^6.23.1","babel-istanbul":"^0.12.2","babel-plugin-add-module-exports":"^0.2.1","babel-plugin-transform-object-rest-spread":"^6.23.0","babel-preset-env":"^1.2.1","chai":"^3.5.0","eslint":"^3.17.1","eslint-config-airbnb-base":"^11.1.1","eslint-plugin-import":"^2.2.0","istanbul":"^0.4.5","mocha":"^3.2.0","sinon":"^2.1.0","sinon-chai":"^2.9.0","standard-version":"^4.0.0"},"dependencies":{"bluebird":"^3.5.0","debug":"^2.6.3","dependency-graph":"^0.5.0","es6-error":"^4.0.2","glob":"^7.1.1","lodash":"^4.17.4","mocha":"^3.2.0"},"gitHead":"386f053dbdf9422a75bfbaf344a1afcf10a31d21","_id":"app-container@0.3.2","_shasum":"91686219225d088785e2f014ed5a627eb8ed817c","_from":".","_npmVersion":"3.10.10","_nodeVersion":"6.10.1","_npmUser":{"name":"cludden","email":"chris.ludden@gmail.com"},"dist":{"shasum":"91686219225d088785e2f014ed5a627eb8ed817c","tarball":"https://registry.npmjs.org/app-container/-/app-container-0.3.2.tgz","integrity":"sha512-dxssrOfbHS5c83s6MJ6QYKAR8IpbRxvLrskVteizw5U5psMAFNX6LmA3C+8TO/PngeghtoPZdYAo8L6heEjFoQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDEh9wzbfheveixh3cA8QTJehBhfdx+kDm4HOGvyVF0ngIhALJTFKrriUTLuNf8FDCvRrhQEBzXY0NMMqlDDf+p8dGl"}]},"maintainers":[{"name":"cludden","email":"chris.ludden@gmail.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/app-container-0.3.2.tgz_1491258501978_0.3589864717796445"},"directories":{}},"0.4.0":{"name":"app-container","version":"0.4.0","description":"asynchronous IoC container for node.js applications","main":"./dist","scripts":{"build":"rm -rf dist/* && babel lib -d dist","coverage":"babel-node ./node_modules/.bin/babel-istanbul cover ./node_modules/.bin/_mocha test/**/*.test.js","flow":"flow","postversion":"npm run build","release":"npm run build && standard-version","start":"node .","test":"mocha --recursive --compilers js:babel-register test/**/*.test.js"},"repository":{"type":"git","url":"git+https://github.com/cludden/app-container.git"},"keywords":["ioc","async","di","dependency injection","dependency-injection","container","ioc-container","IoC"],"author":{"name":"chris ludden"},"license":"MIT","bugs":{"url":"https://github.com/cludden/app-container/issues"},"homepage":"https://github.com/cludden/app-container#readme","devDependencies":{"babel-cli":"^6.23.0","babel-core":"^6.23.1","babel-eslint":"^7.2.1","babel-istanbul":"^0.12.2","babel-plugin-add-module-exports":"^0.2.1","babel-plugin-transform-object-rest-spread":"^6.23.0","babel-preset-env":"^1.2.1","chai":"^3.5.0","eslint":"^3.17.1","eslint-config-airbnb-base":"^11.1.1","eslint-plugin-import":"^2.2.0","istanbul":"^0.4.5","mocha":"^3.2.0","sinon":"^2.1.0","sinon-chai":"^2.9.0","standard-version":"^4.0.0"},"dependencies":{"bluebird":"^3.5.0","debug":"^2.6.3","dependency-graph":"^0.5.0","es6-error":"^4.0.2","glob":"^7.1.1","lodash":"^4.17.4","mocha":"^3.2.0"},"gitHead":"11b74280531e1e8d1b6998eeac162f395bba5541","_id":"app-container@0.4.0","_shasum":"c68b449ba82ef4901eb08a46d764d52ae0194b53","_from":".","_npmVersion":"3.10.10","_nodeVersion":"6.10.1","_npmUser":{"name":"cludden","email":"chris.ludden@gmail.com"},"dist":{"shasum":"c68b449ba82ef4901eb08a46d764d52ae0194b53","tarball":"https://registry.npmjs.org/app-container/-/app-container-0.4.0.tgz","integrity":"sha512-YFLP4TxA8zzMsC1RB5PJp+T7A2s1WI7dFVYTEM0YpOyvMKTLZmD50Qdbbtt6bQgqdQEkr5mws575M0JwWYChpw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDT6qu31toTkzN36+EcBFcTjXktwrFOMWCLKlnnpkV1igIgK8+1eHwvsh5ec0eN82LhpREC9mJFRwFoy0TZh6L5IxQ="}]},"maintainers":[{"name":"cludden","email":"chris.ludden@gmail.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/app-container-0.4.0.tgz_1491407961625_0.8589445617981255"},"directories":{}},"0.4.1":{"name":"app-container","version":"0.4.1","description":"asynchronous IoC container for node.js applications","main":"./dist","scripts":{"build":"rm -rf dist/* && babel lib -d dist","coverage":"babel-node ./node_modules/.bin/babel-istanbul cover ./node_modules/.bin/_mocha test/**/*.test.js","flow":"flow","postversion":"npm run build","release":"npm run build && standard-version","start":"node .","test":"mocha --recursive --compilers js:babel-register test/**/*.test.js"},"repository":{"type":"git","url":"git+https://github.com/cludden/app-container.git"},"keywords":["ioc","async","di","dependency injection","dependency-injection","container","ioc-container","IoC"],"author":{"name":"chris ludden"},"license":"MIT","bugs":{"url":"https://github.com/cludden/app-container/issues"},"homepage":"https://github.com/cludden/app-container#readme","devDependencies":{"babel-cli":"^6.23.0","babel-core":"^6.23.1","babel-eslint":"^7.2.1","babel-istanbul":"^0.12.2","babel-plugin-add-module-exports":"^0.2.1","babel-plugin-transform-object-rest-spread":"^6.23.0","babel-preset-env":"^1.2.1","chai":"^3.5.0","eslint":"^3.17.1","eslint-config-airbnb-base":"^11.1.1","eslint-plugin-import":"^2.2.0","istanbul":"^0.4.5","mocha":"^3.2.0","sinon":"^2.1.0","sinon-chai":"^2.9.0","standard-version":"^4.0.0"},"dependencies":{"bluebird":"^3.5.0","debug":"^2.6.3","dependency-graph":"^0.5.0","es6-error":"^4.0.2","glob":"^7.1.1","lodash":"^4.17.4","mocha":"^3.2.0"},"gitHead":"7ce8d4d863ee083b8a23dce8f97411e162a7c771","_id":"app-container@0.4.1","_shasum":"6f32eadb638cf4709db76cd11740e63c1beceae1","_from":".","_npmVersion":"3.10.10","_nodeVersion":"6.10.1","_npmUser":{"name":"cludden","email":"chris.ludden@gmail.com"},"dist":{"shasum":"6f32eadb638cf4709db76cd11740e63c1beceae1","tarball":"https://registry.npmjs.org/app-container/-/app-container-0.4.1.tgz","integrity":"sha512-Uk90iKxFHYWc6T1WTpf3pbWPHiXCpCXwauhMUsiGn79chuJ2Ze88EenuMmujvGNaIAUyxvaUbTeK2h215jgrag==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCvWH4SObi74ew+ZXAC35QvOxn+E7NOIw1I5djEfhmxSwIhAPKknwLpPBOdlqqCEEZxsTXoHqL4pGKDUipTNXWPLjqd"}]},"maintainers":[{"name":"cludden","email":"chris.ludden@gmail.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/app-container-0.4.1.tgz_1491411254056_0.0742293915245682"},"directories":{}},"0.4.2":{"name":"app-container","version":"0.4.2","description":"asynchronous IoC container for node.js applications","main":"./dist","scripts":{"build":"rm -rf dist/* && babel lib -d dist","coverage":"babel-node ./node_modules/.bin/babel-istanbul cover ./node_modules/.bin/_mocha test/**/*.test.js","flow":"flow","postversion":"npm run build","release":"npm run build && standard-version","start":"node .","test":"mocha --recursive --compilers js:babel-register test/**/*.test.js"},"repository":{"type":"git","url":"git+https://github.com/cludden/app-container.git"},"keywords":["ioc","async","di","dependency injection","dependency-injection","container","ioc-container","IoC"],"author":{"name":"chris ludden"},"license":"MIT","bugs":{"url":"https://github.com/cludden/app-container/issues"},"homepage":"https://github.com/cludden/app-container#readme","devDependencies":{"babel-cli":"^6.23.0","babel-core":"^6.23.1","babel-eslint":"^7.2.1","babel-istanbul":"^0.12.2","babel-plugin-add-module-exports":"^0.2.1","babel-plugin-transform-object-rest-spread":"^6.23.0","babel-preset-env":"^1.2.1","chai":"^3.5.0","eslint":"^3.17.1","eslint-config-airbnb-base":"^11.1.1","eslint-plugin-import":"^2.2.0","istanbul":"^0.4.5","mocha":"^3.2.0","sinon":"^2.1.0","sinon-chai":"^2.9.0","standard-version":"^4.0.0"},"dependencies":{"bluebird":"^3.5.0","debug":"^2.6.3","dependency-graph":"^0.5.0","es6-error":"^4.0.2","glob":"^7.1.1","lodash":"^4.17.4","mocha":"^3.2.0"},"gitHead":"b1f9e6761dd7a3a5d173a8602de4c0b5b0108f2d","_id":"app-container@0.4.2","_shasum":"4a97d7b598c16ac6447b6cd5361ca02301bbf5f0","_from":".","_npmVersion":"3.10.10","_nodeVersion":"6.10.1","_npmUser":{"name":"cludden","email":"chris.ludden@gmail.com"},"dist":{"shasum":"4a97d7b598c16ac6447b6cd5361ca02301bbf5f0","tarball":"https://registry.npmjs.org/app-container/-/app-container-0.4.2.tgz","integrity":"sha512-9dlIKik06fqapMpuViJNUE8dbBcObNfhu1oCtjwtoh5cirn7XSqe2m104Mf140lJUwBMg2lkl3XOpQamIuKmeQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDEamJURfdXsf6rlsRD0Xd6bCYh5zCd6/5dWMKFLXqMrQIhAO3iba5nVLIPhlnsHMUdAL+Spqd7UR7Fw6deIBb+9MSW"}]},"maintainers":[{"name":"cludden","email":"chris.ludden@gmail.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/app-container-0.4.2.tgz_1491411515126_0.7961947899311781"},"directories":{}},"0.4.3":{"name":"app-container","version":"0.4.3","description":"asynchronous IoC container for node.js applications","main":"./dist","scripts":{"build":"rm -rf dist/* && babel lib -d dist","coverage":"babel-node ./node_modules/.bin/babel-istanbul cover ./node_modules/.bin/_mocha test/**/*.test.js","flow":"flow","postversion":"npm run build","release":"npm run build && standard-version","start":"node .","test":"mocha --recursive --compilers js:babel-register test/**/*.test.js"},"repository":{"type":"git","url":"git+https://github.com/cludden/app-container.git"},"keywords":["ioc","async","di","dependency injection","dependency-injection","container","ioc-container","IoC"],"author":{"name":"chris ludden"},"license":"MIT","bugs":{"url":"https://github.com/cludden/app-container/issues"},"homepage":"https://github.com/cludden/app-container#readme","devDependencies":{"babel-cli":"^6.23.0","babel-core":"^6.23.1","babel-eslint":"^7.2.1","babel-istanbul":"^0.12.2","babel-plugin-add-module-exports":"^0.2.1","babel-plugin-transform-object-rest-spread":"^6.23.0","babel-preset-env":"^1.2.1","chai":"^3.5.0","eslint":"^3.17.1","eslint-config-airbnb-base":"^11.1.1","eslint-plugin-import":"^2.2.0","istanbul":"^0.4.5","mocha":"^3.2.0","sinon":"^2.1.0","sinon-chai":"^2.9.0","standard-version":"^4.0.0"},"dependencies":{"bluebird":"^3.5.0","debug":"^2.6.3","dependency-graph":"^0.5.0","es6-error":"^4.0.2","glob":"^7.1.1","lodash":"^4.17.4","mocha":"^3.2.0"},"gitHead":"24e8dd78337db6b63503ebdc8ab6e1a8a320341c","_id":"app-container@0.4.3","_shasum":"bdb65d62800ab85b3843d8818bb8f91f216dc3e2","_from":".","_npmVersion":"3.10.10","_nodeVersion":"6.9.5","_npmUser":{"name":"cludden","email":"chris.ludden@gmail.com"},"dist":{"shasum":"bdb65d62800ab85b3843d8818bb8f91f216dc3e2","tarball":"https://registry.npmjs.org/app-container/-/app-container-0.4.3.tgz","integrity":"sha512-M+4N0x+icCOvw/pjYG40NHUvnGe0qg55wREZTOqPj2VdDKXXhvYaY9WCI4S5/RWCNhUozDfXMSb0YGtf/ikOEw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCwC7ICCD/JaYXDwA/hR+Au8+2g2MqZXTtus7k7IOzfYQIgegaI7dueESjqn607mJdDmDFbpl3U787CvN1Ci9MHom0="}]},"maintainers":[{"name":"cludden","email":"chris.ludden@gmail.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/app-container-0.4.3.tgz_1491872024135_0.46481868298724294"},"directories":{}},"0.4.4":{"name":"app-container","version":"0.4.4","description":"asynchronous IoC container for node.js applications","main":"./dist","scripts":{"build":"rm -rf dist/* && babel lib -d dist","coverage":"babel-node ./node_modules/.bin/babel-istanbul cover ./node_modules/.bin/_mocha test/**/*.test.js","flow":"flow","postversion":"npm run build","release":"npm run build && standard-version","start":"node .","test":"mocha --recursive --compilers js:babel-register test/**/*.test.js"},"repository":{"type":"git","url":"git+https://github.com/cludden/app-container.git"},"keywords":["ioc","async","di","dependency injection","dependency-injection","container","ioc-container","IoC"],"author":{"name":"chris ludden"},"license":"MIT","bugs":{"url":"https://github.com/cludden/app-container/issues"},"homepage":"https://github.com/cludden/app-container#readme","devDependencies":{"babel-cli":"^6.23.0","babel-core":"^6.23.1","babel-eslint":"^7.2.1","babel-istanbul":"^0.12.2","babel-plugin-add-module-exports":"^0.2.1","babel-plugin-transform-object-rest-spread":"^6.23.0","babel-preset-env":"^1.2.1","chai":"^3.5.0","eslint":"^3.17.1","eslint-config-airbnb-base":"^11.1.1","eslint-plugin-import":"^2.2.0","istanbul":"^0.4.5","mocha":"^3.2.0","sinon":"^2.1.0","sinon-chai":"^2.9.0","standard-version":"^4.0.0"},"dependencies":{"bluebird":"^3.5.0","debug":"^2.6.3","dependency-graph":"^0.5.0","es6-error":"^4.0.2","glob":"^7.1.1","lodash":"^4.17.4","mocha":"^3.2.0"},"gitHead":"23f9a9ca79a04aa83bb960818437353970681ae7","_id":"app-container@0.4.4","_shasum":"cd2d813677caaaaab2b39d30e78e09fefe397d6e","_from":".","_npmVersion":"3.10.10","_nodeVersion":"6.10.3","_npmUser":{"name":"cludden","email":"chris.ludden@gmail.com"},"dist":{"shasum":"cd2d813677caaaaab2b39d30e78e09fefe397d6e","tarball":"https://registry.npmjs.org/app-container/-/app-container-0.4.4.tgz","integrity":"sha512-q/YzQhWEJPlwVAruscCFm0n2RKA5umNHDhCoQnq7QcIw4JT6toc5lUL9/exSvyro1Es99Iw7nWwVaEGk0h3IXg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQClTCP+nBYsjSpQHUD6cQNI4ciSvvjBHytbVOr8nN5MjwIgf6bPYJhAKVzL5STrRufxUHhVcYsbjOSOAoIPueQ9KbY="}]},"maintainers":[{"name":"cludden","email":"chris.ludden@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/app-container-0.4.4.tgz_1495595102474_0.9404875731561333"},"deprecated":"Please upgrade to ^v0.4.6","directories":{}},"0.4.5":{"name":"app-container","version":"0.4.5","description":"asynchronous IoC container for node.js applications","main":"./dist","scripts":{"build":"rm -rf dist/* && babel lib -d dist","coverage":"babel-node ./node_modules/.bin/babel-istanbul cover ./node_modules/.bin/_mocha test/**/*.test.js","flow":"flow","postversion":"npm run build","release":"npm run build && standard-version","start":"node .","test":"mocha --recursive --compilers js:babel-register test/**/*.test.js"},"repository":{"type":"git","url":"git+https://github.com/cludden/app-container.git"},"keywords":["ioc","async","di","dependency injection","dependency-injection","container","ioc-container","IoC"],"author":{"name":"chris ludden"},"license":"MIT","bugs":{"url":"https://github.com/cludden/app-container/issues"},"homepage":"https://github.com/cludden/app-container#readme","devDependencies":{"babel-cli":"^6.23.0","babel-core":"^6.23.1","babel-eslint":"^7.2.1","babel-istanbul":"^0.12.2","babel-plugin-add-module-exports":"^0.2.1","babel-plugin-transform-object-rest-spread":"^6.23.0","babel-preset-env":"^1.2.1","chai":"^3.5.0","eslint":"^3.17.1","eslint-config-airbnb-base":"^11.1.1","eslint-plugin-import":"^2.2.0","istanbul":"^0.4.5","mocha":"^3.2.0","sinon":"^2.1.0","sinon-chai":"^2.9.0","standard-version":"^4.0.0"},"dependencies":{"bluebird":"^3.5.0","debug":"^2.6.3","dependency-graph":"^0.5.0","es6-error":"^4.0.2","glob":"^7.1.1","lodash":"^4.17.4","mocha":"^3.2.0"},"gitHead":"0e4e85cc6bab0c1e013fa27f8ae1f6b1d2cdfd10","_id":"app-container@0.4.5","_shasum":"c9c3af418a8145a6a3547e0c98d4fee8158d6449","_from":".","_npmVersion":"3.10.10","_nodeVersion":"6.10.3","_npmUser":{"name":"cludden","email":"chris.ludden@gmail.com"},"dist":{"shasum":"c9c3af418a8145a6a3547e0c98d4fee8158d6449","tarball":"https://registry.npmjs.org/app-container/-/app-container-0.4.5.tgz","integrity":"sha512-GcZbLXQdJyDYOWdbriuqHjBhLIEfqX0AZwSQ13aJnhNM53pt8X2TFesKxGPUTq5wwdclDfZb/eQB1IIuJHfxPg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDrKU9xMrT46mLGhxJ6QtqUVRXp5iQoCQTMgJhmeJr9xwIgH55sdw95ghv7/xy8XlZoJX0bDDuyXJVHfX12oGhRTzQ="}]},"maintainers":[{"name":"cludden","email":"chris.ludden@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/app-container-0.4.5.tgz_1495595177921_0.6153851309791207"},"deprecated":"Please upgrade to ^v0.4.6","directories":{}},"0.4.6":{"name":"app-container","version":"0.4.6","description":"asynchronous IoC container for node.js applications","main":"./dist","scripts":{"build":"rm -rf dist/* && babel lib -d dist","coverage":"babel-node ./node_modules/.bin/babel-istanbul cover ./node_modules/.bin/_mocha test/**/*.test.js","flow":"flow","postversion":"npm run build","release":"npm run build && standard-version","start":"node .","test":"mocha --recursive --compilers js:babel-register test/**/*.test.js"},"repository":{"type":"git","url":"git+https://github.com/cludden/app-container.git"},"keywords":["ioc","async","di","dependency injection","dependency-injection","container","ioc-container","IoC"],"author":{"name":"chris ludden"},"license":"MIT","bugs":{"url":"https://github.com/cludden/app-container/issues"},"homepage":"https://github.com/cludden/app-container#readme","devDependencies":{"babel-cli":"^6.23.0","babel-core":"^6.23.1","babel-eslint":"^7.2.1","babel-istanbul":"^0.12.2","babel-plugin-add-module-exports":"^0.2.1","babel-plugin-transform-object-rest-spread":"^6.23.0","babel-preset-env":"^1.2.1","chai":"^3.5.0","eslint":"^3.17.1","eslint-config-airbnb-base":"^11.1.1","eslint-plugin-import":"^2.2.0","istanbul":"^0.4.5","mocha":"^3.2.0","sinon":"^2.1.0","sinon-chai":"^2.9.0","standard-version":"^4.0.0"},"dependencies":{"bluebird":"^3.5.0","debug":"^2.6.3","dependency-graph":"^0.5.0","es6-error":"^4.0.2","glob":"^7.1.1","lodash":"^4.17.4","mocha":"^3.2.0"},"gitHead":"459bedf18741e6b7558405573624e536d0ed1dd0","_id":"app-container@0.4.6","_shasum":"49cd4dc9f422ec33c1a471645353d999f8dc7645","_from":".","_npmVersion":"3.10.10","_nodeVersion":"6.10.3","_npmUser":{"name":"cludden","email":"chris.ludden@gmail.com"},"dist":{"shasum":"49cd4dc9f422ec33c1a471645353d999f8dc7645","tarball":"https://registry.npmjs.org/app-container/-/app-container-0.4.6.tgz","integrity":"sha512-rnJldFYWrwDRX8Fg9qWATx4hGiAo+NG0+0kRkF0Vp8hi9q0BecMTUoTEi8QDKv2xMG5NNTNxSO96P/jLYdsLMQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD0ToTbOukAzT5Ve3Xyt801oHBwvc7ENZWQWeYakbl7dgIgKiw1T81k0FRjw26hwzoeLoiN/vKWuFUmgoWOOEhC+GY="}]},"maintainers":[{"name":"cludden","email":"chris.ludden@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/app-container-0.4.6.tgz_1495595331161_0.775973164010793"},"directories":{}},"0.4.7":{"name":"app-container","version":"0.4.7","description":"asynchronous IoC container for node.js applications","main":"./dist","scripts":{"build":"rm -rf dist/* && babel lib -d dist","coverage":"babel-node ./node_modules/.bin/babel-istanbul cover ./node_modules/.bin/_mocha test/**/*.test.js","flow":"flow","postversion":"npm run build","release":"npm run build && standard-version","start":"node .","test":"mocha --recursive --compilers js:babel-register test/**/*.test.js"},"repository":{"type":"git","url":"git+https://github.com/cludden/app-container.git"},"keywords":["ioc","async","di","dependency injection","dependency-injection","container","ioc-container","IoC"],"author":{"name":"chris ludden"},"license":"MIT","bugs":{"url":"https://github.com/cludden/app-container/issues"},"homepage":"https://github.com/cludden/app-container#readme","devDependencies":{"babel-cli":"^6.23.0","babel-core":"^6.23.1","babel-eslint":"^7.2.1","babel-istanbul":"^0.12.2","babel-plugin-add-module-exports":"^0.2.1","babel-plugin-transform-object-rest-spread":"^6.23.0","babel-preset-env":"^1.2.1","chai":"^3.5.0","eslint":"^3.17.1","eslint-config-airbnb-base":"^11.1.1","eslint-plugin-import":"^2.2.0","istanbul":"^0.4.5","mocha":"^3.2.0","sinon":"^2.1.0","sinon-chai":"^2.9.0","standard-version":"^4.0.0"},"dependencies":{"bluebird":"^3.5.0","debug":"^2.6.3","dependency-graph":"^0.5.0","es6-error":"^4.0.2","glob":"^7.1.1","lodash":"^4.17.4"},"gitHead":"d7dcdae82a52fd44e25ff352d32bd4035eb5252d","_id":"app-container@0.4.7","_shasum":"a1e615667c2458ab602a51c078fc23becd75f2cd","_from":".","_npmVersion":"3.10.10","_nodeVersion":"6.10.3","_npmUser":{"name":"cludden","email":"chris.ludden@gmail.com"},"dist":{"shasum":"a1e615667c2458ab602a51c078fc23becd75f2cd","tarball":"https://registry.npmjs.org/app-container/-/app-container-0.4.7.tgz","integrity":"sha512-2qVscPxAanBiGXg/Og9s5JNsPd9PpEd0OwGhgptHQAaITjl1rjOSY+sCGbT+kFSp1hRf1cH5Wsf32e6eOZwSZA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHmMuzm6ckwKIr5jS6HHgCVWY1yVKHPKK+gqYDGI4dC+AiBDyOvL1u5jRcZv+YNTlAjb8RzV8MSLHksPZ+U2viXvwQ=="}]},"maintainers":[{"name":"cludden","email":"chris.ludden@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/app-container-0.4.7.tgz_1499457936446_0.41587005741894245"},"directories":{}},"0.4.8":{"name":"app-container","version":"0.4.8","description":"asynchronous IoC container for node.js applications","main":"./dist","scripts":{"build":"rm -rf dist/* && babel lib -d dist","coverage":"babel-node ./node_modules/.bin/babel-istanbul cover ./node_modules/.bin/_mocha test/**/*.test.js","flow":"flow","postversion":"npm run build","release":"npm run build && standard-version","start":"node .","test":"mocha --recursive --compilers js:babel-register test/**/*.test.js"},"repository":{"type":"git","url":"git+https://github.com/cludden/app-container.git"},"keywords":["ioc","async","di","dependency injection","dependency-injection","container","ioc-container","IoC"],"author":{"name":"chris ludden"},"license":"MIT","bugs":{"url":"https://github.com/cludden/app-container/issues"},"homepage":"https://github.com/cludden/app-container#readme","devDependencies":{"babel-cli":"^6.23.0","babel-core":"^6.23.1","babel-eslint":"^7.2.1","babel-istanbul":"^0.12.2","babel-plugin-add-module-exports":"^0.2.1","babel-plugin-transform-object-rest-spread":"^6.23.0","babel-preset-env":"^1.2.1","chai":"^3.5.0","eslint":"^3.17.1","eslint-config-airbnb-base":"^11.1.1","eslint-plugin-import":"^2.2.0","istanbul":"^0.4.5","mocha":"^3.2.0","sinon":"^2.1.0","sinon-chai":"^2.9.0","standard-version":"^4.0.0"},"dependencies":{"bluebird":"^3.5.0","debug":"^2.6.3","dependency-graph":"^0.5.0","es6-error":"^4.0.2","glob":"^7.1.1","lodash":"^4.17.4"},"gitHead":"928a66d2e8f12eed9329ecd563eeb3ed5ea0d245","_id":"app-container@0.4.8","_shasum":"248397029a065caabb7e47d5d6cbaaca8dc85041","_from":".","_npmVersion":"3.10.10","_nodeVersion":"6.11.3","_npmUser":{"name":"cludden","email":"chris.ludden@gmail.com"},"dist":{"shasum":"248397029a065caabb7e47d5d6cbaaca8dc85041","tarball":"https://registry.npmjs.org/app-container/-/app-container-0.4.8.tgz","integrity":"sha512-VG5rjNgwR6niIbw7X5vnaJlTqI5iJsb/l5B2yR6HtqgaCHnLocEugKBsfawDGRn9JXUpPj6CDReCm1xt3qGzCA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAT/be9shcUNGQTz1ceyrBveHjpD7gRMG3OKTW6WKDFBAiEAv3w4ftZ81YAzSpRe8CZf+OFaPhJO9IHzA0CoXX9NDe4="}]},"maintainers":[{"name":"cludden","email":"chris.ludden@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/app-container-0.4.8.tgz_1507703090366_0.6715705655515194"},"directories":{}},"1.0.0-beta.0":{"name":"app-container","version":"1.0.0-beta.0","description":"asynchronous IoC container for node.js applications","main":"./dist","scripts":{"build":"rm -rf dist/* && babel lib -d dist","coverage":"babel-node ./node_modules/.bin/babel-istanbul cover ./node_modules/.bin/_mocha test/**/*.test.js","lint":"eslint ./lib ./test","postversion":"npm run build","release":"npm run build && standard-version","sec":"nsp check","test":"mocha --recursive --compilers js:babel-register test/**/*.test.js"},"repository":{"type":"git","url":"git+https://github.com/cludden/app-container.git"},"keywords":["ioc","async","di","dependency injection","dependency-injection","container","ioc-container","IoC"],"author":{"name":"chris ludden"},"license":"MIT","bugs":{"url":"https://github.com/cludden/app-container/issues"},"homepage":"https://github.com/cludden/app-container#readme","devDependencies":{"babel-cli":"^6.23.0","babel-core":"^6.23.1","babel-eslint":"^7.2.1","babel-istanbul":"^0.12.2","babel-plugin-add-module-exports":"^0.2.1","babel-plugin-transform-object-rest-spread":"^6.23.0","babel-preset-env":"^1.2.1","chai":"^3.5.0","eslint":"^3.17.1","eslint-config-airbnb-base":"^11.1.1","eslint-plugin-import":"^2.2.0","istanbul":"^0.4.5","mocha":"^3.2.0","nsp":"^2.8.1","sinon":"^2.1.0","sinon-chai":"^2.9.0","standard-version":"^4.0.0"},"dependencies":{"bluebird":"^3.5.0","debug":"^2.6.3","dependency-graph":"^0.5.0","es6-error":"^4.0.2","glob":"^7.1.1","lodash":"^4.17.4"},"gitHead":"ade7453408b6432fc2142fbccf468b20c704c0e7","_id":"app-container@1.0.0-beta.0","_shasum":"cfcf5bf14373ef44f0db89559274e904b1ca3919","_from":".","_npmVersion":"3.10.10","_nodeVersion":"6.11.3","_npmUser":{"name":"cludden","email":"chris.ludden@gmail.com"},"dist":{"shasum":"cfcf5bf14373ef44f0db89559274e904b1ca3919","tarball":"https://registry.npmjs.org/app-container/-/app-container-1.0.0-beta.0.tgz","integrity":"sha512-QYnVycUte70f8hc/Su1vSDXk4/L9tPVO1jHk4GjRiZ4WQlXK8crhlpTa9vX7d5B5T/f3h1iF3X3JbWwg/Qgmcw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEfCzMwJ/ipacLZyqZxwqA4wKoSSRxdDA2bG1tlF9H15AiEAsUUAMqUHmjjGJRPouNodnrEiUY/vK61ceIK4uMHrpe0="}]},"maintainers":[{"name":"cludden","email":"chris.ludden@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/app-container-1.0.0-beta.0.tgz_1508341813002_0.4620549858082086"},"directories":{}},"1.0.0":{"name":"app-container","version":"1.0.0","description":"asynchronous IoC container for node.js applications","main":"./dist","scripts":{"build":"rm -rf dist/* && babel lib -d dist","coverage":"babel-node ./node_modules/.bin/babel-istanbul cover ./node_modules/.bin/_mocha test/**/*.test.js","lint":"eslint ./lib ./test","postversion":"npm run build","release":"npm run build && standard-version","sec":"nsp check","test":"mocha --recursive --compilers js:babel-register test/**/*.test.js"},"repository":{"type":"git","url":"git+https://github.com/cludden/app-container.git"},"keywords":["ioc","async","di","dependency injection","dependency-injection","container","ioc-container","IoC"],"author":{"name":"chris ludden"},"license":"MIT","bugs":{"url":"https://github.com/cludden/app-container/issues"},"homepage":"https://github.com/cludden/app-container#readme","devDependencies":{"babel-cli":"^6.23.0","babel-core":"^6.23.1","babel-eslint":"^7.2.1","babel-istanbul":"^0.12.2","babel-plugin-add-module-exports":"^0.2.1","babel-plugin-transform-object-rest-spread":"^6.23.0","babel-preset-env":"^1.2.1","chai":"^3.5.0","eslint":"^3.17.1","eslint-config-airbnb-base":"^11.1.1","eslint-plugin-import":"^2.2.0","istanbul":"^0.4.5","mocha":"^3.2.0","nsp":"^2.8.1","sinon":"^2.1.0","sinon-chai":"^2.9.0","standard-version":"^4.0.0"},"dependencies":{"bluebird":"^3.5.0","debug":"^2.6.3","dependency-graph":"^0.5.0","es6-error":"^4.0.2","glob":"^7.1.1","lodash":"^4.17.4"},"gitHead":"dc2160737311222d0856d9eba809a9f4283d9d7a","_id":"app-container@1.0.0","_shasum":"efcc93239f3b2c43c78c926b18ef735bb97c1033","_from":".","_npmVersion":"3.10.10","_nodeVersion":"6.11.3","_npmUser":{"name":"cludden","email":"chris.ludden@gmail.com"},"dist":{"shasum":"efcc93239f3b2c43c78c926b18ef735bb97c1033","tarball":"https://registry.npmjs.org/app-container/-/app-container-1.0.0.tgz","integrity":"sha512-VbQ9JY9IQpwCa5ThbJGPTxse/EmRW3QsFxi02M26Fca6Cj7SGKyWTrxuxrtlw4mlT2mRq2Rq410/bl2S/KkdHw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCHxz8KgHdqNChR/A3wrQznj2SzY2SEdJ6ndeXovy9OFgIgByoK/F2eQGGMLWdZf6D9PIHhXORwjEXe7ol++kER5D4="}]},"maintainers":[{"name":"cludden","email":"chris.ludden@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/app-container-1.0.0.tgz_1509739311493_0.9440799604635686"},"directories":{}},"1.1.0-beta.0":{"name":"app-container","version":"1.1.0-beta.0","description":"asynchronous IoC container for node.js applications","main":"./dist","scripts":{"build":"rm -rf dist/* && babel lib -d dist","coverage":"babel-node ./node_modules/.bin/babel-istanbul cover ./node_modules/.bin/_mocha test/**/*.test.js","lint":"eslint ./lib ./test","postversion":"npm run build","release":"npm run build && standard-version","sec":"nsp check","test":"mocha --recursive --compilers js:babel-register test/**/*.test.js"},"repository":{"type":"git","url":"git+https://github.com/cludden/app-container.git"},"keywords":["ioc","async","di","dependency injection","dependency-injection","container","ioc-container","IoC"],"author":{"name":"chris ludden"},"license":"MIT","bugs":{"url":"https://github.com/cludden/app-container/issues"},"homepage":"https://github.com/cludden/app-container#readme","devDependencies":{"babel-cli":"^6.23.0","babel-core":"^6.23.1","babel-eslint":"^7.2.1","babel-istanbul":"^0.12.2","babel-plugin-add-module-exports":"^0.2.1","babel-plugin-transform-object-rest-spread":"^6.23.0","babel-preset-env":"^1.2.1","chai":"^3.5.0","eslint":"^3.17.1","eslint-config-airbnb-base":"^11.1.1","eslint-plugin-import":"^2.2.0","istanbul":"^0.4.5","mocha":"^3.2.0","nsp":"^2.8.1","sinon":"^2.1.0","sinon-chai":"^2.9.0","standard-version":"^4.0.0"},"dependencies":{"bluebird":"^3.5.0","debug":"^2.6.3","dependency-graph":"^0.5.0","es6-error":"^4.0.2","glob":"^7.1.1","lodash":"^4.17.4"},"gitHead":"8ac86f018de9d938f4ca7c24333f93fa5c5d8a5c","_id":"app-container@1.1.0-beta.0","_npmVersion":"5.4.2","_nodeVersion":"8.4.0","_npmUser":{"name":"cludden","email":"chris.ludden@gmail.com"},"dist":{"integrity":"sha512-cIpFwPt9ucuPMihpfzmdA/i0wMZ0trzp4vWWFBfAP9pZw1jSO6ypvQ3J/70B2SXpVMsIb8GgPEES/kVGdxIGNA==","shasum":"ba8a2c811768f5ecf0588928fa566067a8431e4b","tarball":"https://registry.npmjs.org/app-container/-/app-container-1.1.0-beta.0.tgz","fileCount":13,"unpackedSize":223308,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIA6Jsx8K80ht5jjrZlOxCkTqR1SJOvVUY/pxVAXSZvVZAiEA1VaGO1DqaXA4FWgLxgOMoouKIJj7ZihBEfZT8tkvYnA="}]},"maintainers":[{"name":"cludden","email":"chris.ludden@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/app-container_1.1.0-beta.0_1520105614249_0.21692959730836203"},"_hasShrinkwrap":true},"1.1.0":{"name":"app-container","version":"1.1.0","description":"asynchronous IoC container for node.js applications","main":"./dist","scripts":{"build":"rm -rf dist/* && babel lib -d dist","coverage":"babel-node ./node_modules/.bin/babel-istanbul cover ./node_modules/.bin/_mocha test/**/*.test.js","lint":"eslint ./lib ./test","postversion":"npm run build","release":"npm run build && standard-version","sec":"nsp check","test":"mocha --recursive --compilers js:babel-register test/**/*.test.js"},"repository":{"type":"git","url":"git+https://github.com/cludden/app-container.git"},"keywords":["ioc","async","di","dependency injection","dependency-injection","container","ioc-container","IoC"],"author":{"name":"chris ludden"},"license":"MIT","bugs":{"url":"https://github.com/cludden/app-container/issues"},"homepage":"https://github.com/cludden/app-container#readme","devDependencies":{"babel-cli":"^6.23.0","babel-core":"^6.23.1","babel-eslint":"^7.2.1","babel-istanbul":"^0.12.2","babel-plugin-add-module-exports":"^0.2.1","babel-plugin-transform-object-rest-spread":"^6.23.0","babel-preset-env":"^1.2.1","chai":"^3.5.0","eslint":"^3.17.1","eslint-config-airbnb-base":"^11.1.1","eslint-plugin-import":"^2.2.0","istanbul":"^0.4.5","mocha":"^3.2.0","nsp":"^2.8.1","sinon":"^2.1.0","sinon-chai":"^2.9.0","standard-version":"^4.0.0"},"dependencies":{"bluebird":"^3.5.0","debug":"^2.6.3","dependency-graph":"^0.5.0","es6-error":"^4.0.2","glob":"^7.1.1","lodash":"^4.17.4"},"gitHead":"a8ddcb99d036ec3f00618964df19cfa1d3c688fe","_id":"app-container@1.1.0","_npmVersion":"5.4.2","_nodeVersion":"8.4.0","_npmUser":{"name":"cludden","email":"chris.ludden@gmail.com"},"dist":{"integrity":"sha512-fqW/mzAOrieMTKHvO61Bc2Q50EOCi8HOnlz/IQYDMWBYljcESBfZZ6M1IZ3O8Dc7MHCNb58bL4Gvg9EfM7A5bw==","shasum":"44e5083acf0161d3703342e492d9b9a601a71ca1","tarball":"https://registry.npmjs.org/app-container/-/app-container-1.1.0.tgz","fileCount":13,"unpackedSize":223414,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFSLiTYr9C2ggTcUyDPPffvS+Iiz6dlwri0Kn2RIM5/XAiEAgUhua/HsWJ/HCTm3po+wvzI0+yy4qF7msolwiru5wNc="}]},"maintainers":[{"name":"cludden","email":"chris.ludden@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/app-container_1.1.0_1522717127717_0.054099749320409396"},"_hasShrinkwrap":true},"1.1.1":{"name":"app-container","version":"1.1.1","description":"asynchronous IoC container for node.js applications","main":"./dist","scripts":{"build":"rm -rf dist/* && babel lib -d dist","coverage":"babel-node ./node_modules/.bin/babel-istanbul cover ./node_modules/.bin/_mocha test/**/*.test.js","lint":"eslint ./lib ./test","postversion":"npm run build","release":"npm run build && standard-version","sec":"nsp check","test":"mocha --recursive --compilers js:babel-register test/**/*.test.js"},"repository":{"type":"git","url":"git+https://github.com/cludden/app-container.git"},"keywords":["ioc","async","di","dependency injection","dependency-injection","container","ioc-container","IoC"],"author":{"name":"chris ludden"},"license":"MIT","bugs":{"url":"https://github.com/cludden/app-container/issues"},"homepage":"https://github.com/cludden/app-container#readme","devDependencies":{"babel-cli":"^6.23.0","babel-core":"^6.23.1","babel-eslint":"^7.2.1","babel-istanbul":"^0.12.2","babel-plugin-add-module-exports":"^0.2.1","babel-plugin-transform-object-rest-spread":"^6.23.0","babel-preset-env":"^1.2.1","chai":"^3.5.0","eslint":"^3.17.1","eslint-config-airbnb-base":"^11.1.1","eslint-plugin-import":"^2.2.0","istanbul":"^0.4.5","mocha":"^3.2.0","nsp":"^2.8.1","sinon":"^2.1.0","sinon-chai":"^2.9.0","standard-version":"^4.0.0"},"dependencies":{"bluebird":"^3.5.0","debug":"^2.6.3","dependency-graph":"^0.5.0","es6-error":"^4.0.2","glob":"^7.1.1","lodash":"^4.17.4"},"gitHead":"cdae445179eaf240f414a004f1b28653b49f8549","_id":"app-container@1.1.1","_npmVersion":"5.6.0","_nodeVersion":"8.11.1","_npmUser":{"name":"cludden","email":"chris.ludden@gmail.com"},"dist":{"integrity":"sha512-CKn9CPczMjwxdlOmvH6Jwd/L5/P3HHsC5qilgxopiZcUgCfQR/UlVfIm3+j22mTfs9e8TcvYGHBg0cEWxZogRA==","shasum":"60e010d7d7b392c0e487161d71a60174470ea407","tarball":"https://registry.npmjs.org/app-container/-/app-container-1.1.1.tgz","fileCount":13,"unpackedSize":223789,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJa8YUjCRA9TVsSAnZWagAA29sP/iJf9g1qOCDRF4hLEKyt\naHW4zttJ2g+4GVSNGYtxu7aqxCdrPSpcG52u9niI5tTpCDbkVD1DnSy8Gt/i\ntaOfaZdvY+MQ20jocU4NhK6C/RA5ZeGgxtvsXdYYf42/5PcybPYA7PEas+zO\nPjXJ7QM622QyY/whjgyIa7XmAG94eQ+hhqVun/7rE6VYBtOlmSsr+UtGSmwt\nwdNGpWk96uGk4u0aNQhklMQCzwfZ4MymgEh+/UA11QSc1PngsODt8bRVoeVj\n0H3BqlXtSEOWMcM9ajICnFcDoIXMB37qlgUoxUWBfKzWigWvxxInQiLpjbns\n7KeKNJ57ot8At4X1nK3x6OG8GxT3yG9+bxLY1Ja7ZVY1rt4E7eabasM2XJg3\nrb4n4FyL0/AyEaaeDf8Nyms5JZpO3aiodCqdMjRSYFmkYkbwNQA/TJIV2mla\nld3JYjH+UzPstSGou+1aVpjqjmJqQFIj2pY11qw/anRLNpDkO3mgSKA2Qqce\nWMX4oVL1O4dwEOGhXYZwDa55BOjEK8uGgEwiJ8eB8XlgWWrgyAZz7Wi3wuto\nzgRqE4r6ofsXrVlpz6CWEGWIJW+KM+RYVjMyXAaXBByZG7yPNkOOzoThCI96\nytXSf2OFHVuE9bIWBnxVYpLHHfCpZw3vZAG2bld0tVII5N3JS4T1Jm4Wf1tW\nDdM4\r\n=bXvm\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDjK5zMYE0LajWhUpF6FtTi0NqLU3wCUFRpz/mwrxSSxAIhAMMbSzhBDXK0f2+4cYOKVVEWQj59N0UZK/gJbSrHBCzQ"}]},"maintainers":[{"name":"cludden","email":"chris.ludden@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/app-container_1.1.1_1525777698401_0.5529616994450188"},"_hasShrinkwrap":true},"1.1.2":{"name":"app-container","version":"1.1.2","description":"asynchronous IoC container for node.js applications","main":"./dist","scripts":{"build":"rm -rf dist/* && babel lib -d dist","coverage":"nyc --require babel-core/register node_modules/.bin/mocha --recursive --exit 'test/**/*.test.js'","lint":"eslint ./lib ./test","postversion":"npm run build","release":"npm run build && standard-version","test":"mocha --recursive --compilers js:babel-register --exit 'test/**/*.test.js'"},"repository":{"type":"git","url":"git+https://github.com/cludden/app-container.git"},"keywords":["ioc","async","di","dependency injection","dependency-injection","container","ioc-container","IoC"],"author":{"name":"chris ludden"},"license":"MIT","bugs":{"url":"https://github.com/cludden/app-container/issues"},"homepage":"https://github.com/cludden/app-container#readme","nyc":{"check-coverage":true,"lines":80,"reporter":["lcov","text-summary"],"temp-directory":"./coverage/.nyc_output"},"dependencies":{"bluebird":"^3.5.4","debug":"^4.1.1","dependency-graph":"^0.8.0","es6-error":"^4.1.1","glob":"^7.1.4","lodash":"^4.17.11"},"devDependencies":{"babel-cli":"^6.26.0","babel-core":"^6.26.3","babel-eslint":"^10.0.1","babel-plugin-add-module-exports":"^1.0.2","babel-plugin-transform-object-rest-spread":"^6.26.0","babel-preset-env":"^1.7.0","chai":"^4.2.0","eslint":"^5.16.0","eslint-config-airbnb-base":"^13.1.0","eslint-plugin-import":"^2.17.2","istanbul":"^0.4.5","mocha":"^6.1.4","nyc":"^14.1.1","sinon":"^7.3.2","sinon-chai":"^3.3.0","standard-version":"^6.0.1"},"gitHead":"98de660ca6120ffefd3ba812468a82253dc1a721","_id":"app-container@1.1.2","_nodeVersion":"10.16.0","_npmVersion":"6.9.0","dist":{"integrity":"sha512-QFJdPnWb2YN1KSWZqyzmCXiQJ87Pcq1bcgd3ssM5Jatmg+RhiAopJCRGaNqcbPTnSG1QfSJoS7QOUrz+lcZjdQ==","shasum":"28503334be70b0ac59296ebc4b5b80eee2374675","tarball":"https://registry.npmjs.org/app-container/-/app-container-1.1.2.tgz","fileCount":12,"unpackedSize":37467,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc7zwWCRA9TVsSAnZWagAA88QP/3nQPoQLFqfo2dfIkG3L\n0g0W7JyIot+sTOEKt6GhNY3s8/bFEjShdjTNQpEbnwKRZ5WlQZL+FkrrVxnH\nJ4YHIdUQbPyAzK3P/LLRYZsxGj/aU7H1E9RLhneAfKBxhIn4HyJeNqmdiE9r\n7xG8SooYZYr7G1ow0e7Kf7x1d+YgyvX3GMOUpB85BaLIF/b4ho5NLeDadJIG\nDXCUsaK0ToFRMw05yEoWhs/bQKTArnYYJvbixk1ZPQKb7A+Yvy04R5+2efFs\nkUmN+yOmOZRI7O5GdRIn7NAGD27ipcj4ZebqrJ0aIGmgRZBykyni3pG9QNvT\nImbn7AIIB0ACRtuYKOR1ZAQQqQJIcdSg+xeTfj6KHlDh2lJgZew6WOAi5cqF\nHMrhznu8EdLzE15yiV3C+pZoOhaRuxoWIxEmIopoCyitQWDrDYtY+LfkhBXe\nsToDo2f1lP5uZMKPp1VFpaNZK/4IVl+1L07MG6258yQvD9eD7sNzr4cxASpa\n/p6nf1nGx4Hb7gcmVfgTfUViIvFofyfn59kklaYs1yPfQwRUpW0KdFpIC2Bc\nje1mMRlvAFRSXi6P1pUlpJbv+GNPKHSnIXCekw/vBwSashEjvNT/6znaQ8kn\nRlfAzpUXYaa5W8fILWgLB6xtGjIwn9IJhA0nkR+Eh4GxBlM9rWbJLr1l2szO\nnZtx\r\n=iQFp\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHcErUGzDWuLtLP1R0WHNfow5uyHa+Awb8L8JjlFDsDCAiEA0BsT0Tvc7juecCDHnZixPNNbwCLGtt1jxXe6jsKQxuo="}]},"maintainers":[{"name":"cludden","email":"chris.ludden@gmail.com"}],"_npmUser":{"name":"cludden","email":"chris.ludden@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/app-container_1.1.2_1559182358300_0.30140592678609734"},"_hasShrinkwrap":false}},"readme":"# app-container\nYet another IoC container for node applications with a few specific goals:\n- support for asynchronous modules\n- flexible declaration & dependency syntax\n- support for initialization hooks\n\n\n\n## Installing\n```shell\n$ npm install --save app-container\n```\n\n\n\n## Getting Started\nBelow is a super simple example. See `/test/fixtures` for some more examples.\n\nDefine your code as modules that accept dependencies.\n\nusing an asynchronous factory function...\n```javascript\n// in config.js\nimport someAsyncModule from 'some-async-module'\n\nexport const inject = { }\n\nexport default async function() {\n  const config = await someAsyncModule.load()\n  return config\n}\n```\n\nusing a plain old javascript object...\n```javascript\n// in greet.js\nexport const inject = {\n  require: ['config']\n}\n\nexport default {\n  greet(greeting, name) {\n    console.log(`${greeting}, ${name}${this.config.punctuation}`);\n  },\n};\n```\n\nusing a constructor function...\n```javascript\n// in hello.js\nexport const inject = {\n  type: 'constructor',\n  require: ['greet']\n}\n\nexport default class Foo {\n  constructor(greet) {\n    this.greeter = greet;\n  }\n\n  sayHello(name) {\n    this.greeter.greet('Hello', name);\n  }\n}\n```\n\nCreate a new container.\n```javascript\n// in container.js\nimport Container from 'app-container';\n\n// create a new container\nconst container = new Container({\n  namespace: 'inject', // this is the default namespace\n  defaults: { singleton: true }, // these are defaults to apply to all module declarations\n});\n\n// register modules matching a given pattern. the directory will be scanned recursively.\ncontainer.glob('**/*.js', { cwd: __dirname });\n\nexport default container;\n```\n\nLoad some dependencies...\n```javascript\n// in index.js\nimport container from './container';\n\nexport default async function main() {\n  const hello = await container.load('hello');\n  hello.sayHello('World');\n}\n\nif (require.main === module) {\n  main();\n}\n```\n\n\n## Modules\nModule's need to declare themselves to the container by exposing an object at a given namespace. If no namespace is defined when creating a container, the default namespace of `inject` will be used. The simplest module declaration is shown below.\n```javascript\n// in foo.js\nexport const inject = { };\n\nexport default function() {\n  return {\n    myMethod() { /* ... */ }\n  };\n};\n```\n\nOr, in commonjs format:\n```javascript\n// in foo.js\nmodule.exports = function() {\n  return {\n    myMethod() { /* ... */ }\n  };\n};\n\nmodule.exports.inject = { };\n```\n\nIf `foo.js` resides at the root of one of our registered directories, then the container would register a new component named `foo` with no dependencies and assume that `foo`'s default export (or module.exports) is a factory function. We could instead declare `foo` as a constructor function like so:\n```javascript\n// in foo.js\nexport const inject = { type: 'constructor' };\n\nexport default class Foo {\n  myMethod() { /* ... */ }\n};\n```\n\nOr even a plain old javascript object.\n```javascript\n// in foo.js\nexport const inject = { };\n\nexport default {\n  myMethod() { /* ... */ }\n};\n```\n\nTo declare a dependency, we can add a `require` property to our declaration. In the following example, we add a dependency on another component, `bar`. By the time our module's factory function is invoked, an instantiated bar instance will be passed in as an argument.\n```javascript\n// in foo.js\nexport const inject = {\n  require: 'bar'\n};\n\nexport default function(bar) {\n  return {\n    myMethod() { /* ... */ }\n  };\n};\n```\n\nA component can have more than one dependency as well. By declaring `require` as an array, each dependency will be created, initialized, and passed in as arguments to our factory function.\n```javascript\n// in foo.js\nexport const inject = {\n  require: ['bar', 'baz', 'gar', 'gaz']\n};\n\nexport default function(bar, baz, gar, gaz) {\n  return {\n    myMethod() { /* ... */ }\n  };\n};\n```\n\nWe can also declare our dependencies as an object. This allows us to rename them, and/or group them in various ways.\n```javascript\n// in foo.js\nexport const inject = {\n  require: {\n    some: 'bar',\n    other: 'baz',\n    mods: {\n      gar: 'gar',\n      gaz: 'gaz'\n    }\n  },\n};\n\nexport default function({ some, other, mods }) {\n  const { gar, gaz } = mods;\n  return {\n    myMethod() { /* ... */ }\n  };\n};\n```\n\n## Plugins\n\nWe can use special syntax to use plugins that support additional functionality.\n\nThe `all!` plugin can be used to bulk load modules that match a pattern as an object.\n```javascript\n// in foo.js\nexport const inject = {\n  require: ['all!^b', 'all!^g']\n};\n\nexport default function({ bar, baz }, { gar, gaz }) {\n  return {\n    myMethod() { /* ... */ }\n  };\n};\n```\n\nThe `any!` plugin is similar to *all*, except that it loads resolved modules as an array.\n```javascript\n// in foo.js\nexport const inject = {\n  require: ['any!^b', 'any!^g']\n};\n\nexport default function([bar, baz], [gar, gaz]) {\n  return {\n    myMethod() { /* ... */ }\n  };\n};\n```\n\nThe `container!` plugin can be used to register/load dynamic components or change the behavior of the container at runtime.\n```javascript\n// in repository.js\nexport const inject = {\n  require: ['container!', 'config']\n}\n\nexport default function(container, config) {\n  if (config.backend === 'in-memory') {\n    return container.load('inmem/repo');\n  }\n  return container.load('redis/repo');\n}\n```\n\n\n\n## Asynchronous Components\nThe container supports asynchronous modules in two ways. 1) By returning a promise from a factory function:\n```javascript\n// in foo.js\nexport const inject = {\n  name: 'foo',\n  require: ['bar', 'baz']\n};\n\nexport default function(bar, baz) {\n  return Promise.resolve({\n    myMethod() { /* ... */ }\n  });\n};\n\n// in bar.js\nexport const inject = {\n  name: 'bar',\n  require: ['bar', 'baz']\n};\n\nexport default async function(bar, baz) {\n  await new Promise(resolve => setTimeout(resolve, 1000))\n  return {\n    myMethod() { /* ... */ }\n  }\n};\n```\n\nor, 2) by exposing an initialization method/function on the module instance that returns a promise.\n```javascript\n// in foo.js\nexport const inject = {\n  name: 'foo',\n  init: 'connect',\n  require: ['bar', 'baz']\n};\n\nexport default function(bar, baz) {\n  return {\n    myMethod() { /* ... */ },\n\n    connect() {\n      return Promise.resolve();\n    },\n  };\n};\n```\n\n\n\n## Module Properties\nA module declaration can declare any combination of the following properties.\n\n| Property | Type | Description |\n| --- | --- | --- |\n| init | <small>String</small> | The name of a method/function to call to initialize the module instance after it's been created. |\n| name | <small>String</small> | A custom name to use to register with the container. If not provided, the relative path to the file (minus the extension) will be used instead when registering modules using glob |\n| require | <small>Object String String[]</small> | Module dependencies declarations |\n| singleton | <small>Boolean</small> | Whether or not the module should be treated as a singleton, meaning that if the module is required by two or more other modules, only one instance will ever be created, and all downstream modules will share the same instance. |\n| type | <small>String</small> | The default export (or module.exports) should either be a factory function, constructor function or something like a plain old javascript object or function that doesn't need instantiation/initialization. If no type is declared, the container will inspect it and assume that it is a factory function (if a function is exported), or an object, if something else is exported. You can override the default behavior by declaring a type property with a value of `constructor` or `object`. |\n\n\n\n## API\n### Container([options]) => container\nConstructor function for creating container instances.\n\n###### Parameters\n| Name | Type | Description |\n| --- | --- | --- |\n| options | *Object* | |\n| options.defaults | *Object* | a map of default module options to apply to each module declaration |\n| options.namespace | *String* | override the default namespace `inject` |\n\n###### Example\n```javascript\n// instantiate a new container using the default namespace and setting the default\n// singleton flag to true\nconst container = new Container({\n  namespace: 'inject',\n  defaults: {\n    singleton: true,\n  },\n})\n```\n\n---\n\n### glob(pattern, options)\nThe glob method allows for automagically registering multiple modules with the container instance using `glob` to match files in a given directory.\n\n###### Parameters\n| Name | Type | Description |\n| --- | --- | --- |\n| pattern | *String* | a glob pattern for matching modules to register with the container. Only modules that match this pattern and declare a matching namespace will be registered. |\n| options | *Object* | an options object to pass to the underlying `glob.sync` call. |\n\n###### Example\n```javascript\n// recursively register all .js files in the same directory as this file\n// excluding index.js. see glob.js for more options\nconst container = new Container()\ncontainer.glob('**/*.js', { cwd: __dirname, ignore: ['index.js'] })\n```\n\n---\n\n### load(...components) => Bluebird\nLoad one or more components\n\n###### Parameters\n| Name | Type | Description |\n| --- | --- | --- |\n| component | *Object|String* | one or more components to load |\n\n###### Example\n```javascript\n// load a single module\nconst foo = await container.load('foo');\n\n// load multiple modules\nconst [foo, bar] = await container.load('foo', 'bar');\n// or\nconst [foo, bar] = await container.load(['foo', 'bar']);\n\n// the container returns a bluebird promise, so any bluebird function can be used.\ncontainer.load('foo', 'bar')\n.spread((foo, bar) => {\n  // ..\n});\n\n// use a component map\nconst { foo, bar} = await container.load({ foo: 'services/foo', bar: 'services/bar' });\n\n// use all or any\nconst { 'services/foo': foo, 'services/bar': bar } = await container.load('all!^services');\n\nconst services = await container.load('any!^services');\n```\n\n---\n\n### register(mod, name, [options]) => Bluebird\nLoad one or more components\n\n###### Parameters\n| Name | Type | Description |\n| --- | --- | --- |\n| mod | *Function|Object* | module definition |\n| name | *Object|String* | component name or valid compoment options object |\n| [options] | *Object | component options object (see module properties above) |\n\n\n###### Example\n```javascript\nimport Container from 'app-container';\n\nimport * as bar from './bar';\nimport * as foo from './foo';\n\nconst container = new Container({\n  namespace: 'inject',\n  defaults: { singleton: true },\n});\n\ncontainer.register(bar, 'bar', bar.inject);\ncontainer.register(foo, foo.inject);\n\nexport default container;\n```\n\n\n\n## Debugging\nTo enable debugging, you can use the `DEBUG` environment variable.\n```shell\n$ export DEBUG=app-container*\n```\n\n\n\n## Testing\nrun the test suite with code coverage\n```shell\n$ docker-compose run app-container\n```\n\n\n\n## Contributing\n1. [Fork it](https://github.com/cludden/app-container/fork)\n1. Create your feature branch (`git checkout -b my-new-feature`)\n1. Commit your changes using [conventional changelog standards](https://github.com/bcoe/conventional-changelog-standard/blob/master/convention.md) (`git commit -am 'feat: adds my new feature'`)\n1. Push to the branch (`git push origin my-new-feature`)\n1. Ensure linting/security/tests are all passing\n1. Create new Pull Request\n\n\n\n## LICENSE\nCopyright (c) 2017 Chris Ludden.\n\nLicensed under the [MIT License](LICENSE.md)\n","maintainers":[{"name":"cludden","email":"chris.ludden@gmail.com"}],"time":{"modified":"2022-06-13T03:16:00.176Z","created":"2017-03-31T21:55:35.701Z","0.1.0":"2017-03-31T21:55:35.701Z","0.1.1":"2017-03-31T21:57:00.340Z","0.2.0":"2017-04-02T22:32:10.696Z","0.3.0":"2017-04-03T14:14:24.078Z","0.3.1":"2017-04-03T17:50:30.133Z","0.3.2":"2017-04-03T22:28:23.917Z","0.4.0":"2017-04-05T15:59:23.672Z","0.4.1":"2017-04-05T16:54:16.096Z","0.4.2":"2017-04-05T16:58:37.131Z","0.4.3":"2017-04-11T00:53:46.239Z","0.4.4":"2017-05-24T03:05:03.487Z","0.4.5":"2017-05-24T03:06:18.920Z","0.4.6":"2017-05-24T03:08:52.477Z","0.4.7":"2017-07-07T20:05:37.534Z","0.4.8":"2017-10-11T06:24:50.437Z","1.0.0-beta.0":"2017-10-18T15:50:14.080Z","1.0.0":"2017-11-03T20:01:52.556Z","1.1.0-beta.0":"2018-03-03T19:33:34.359Z","1.1.0":"2018-04-03T00:58:47.832Z","1.1.1":"2018-05-08T11:08:18.592Z","1.1.2":"2019-05-30T02:12:38.566Z"},"homepage":"https://github.com/cludden/app-container#readme","keywords":["ioc","async","di","dependency injection","dependency-injection","container","ioc-container","IoC"],"repository":{"type":"git","url":"git+https://github.com/cludden/app-container.git"},"author":{"name":"chris ludden"},"bugs":{"url":"https://github.com/cludden/app-container/issues"},"license":"MIT","readmeFilename":"README.md"}