{"_id":"iniettore","_rev":"29-5b7fa6f71d6dc69d4d33052463ea2abf","name":"iniettore","description":"Minimalistic Dependency Injection Container","dist-tags":{"latest":"4.0.0-alpha.0","canary":"4.0.0-alpha.6"},"versions":{"0.0.1":{"name":"iniettore","version":"0.0.1","description":"A light and simple IoC container","main":"lib/iniettore.js","scripts":{"test":"gulp test","build":"gulp default"},"keywords":["ioc","di","container","dependency injection"],"engines":{"node":">=0.10.25"},"author":{"name":"Cesare Naldi","url":"https://github.com/cesarenaldi"},"homepage":"https://github.com/cesarenaldi/iniettore.git","repository":{"type":"git","url":"https://github.com/cesarenaldi/iniettore.git"},"license":"ISC","devDependencies":{"gulp":"~3.8.0","gulp-mocha":"~0.4.1","tmp":"0.0.23","es6-module-jstransform":"~0.1.4","gulp-jstransform":"~0.1.0","gulp-rename":"~1.2.0","gulp-filter":"~0.4.1","sinon":"~1.10.2","chai":"~1.9.1","sinon-chai":"~2.5.0","gulp-cached":"0.0.3","gulp-debug":"~0.3.0","gulp-browserify":"~0.5.0","karma":"~0.12.16","gulp-karma":"0.0.4","mocha":"~1.20.1","karma-mocha":"~0.1.4","karma-chrome-launcher":"~0.1.4","karma-spec-reporter":"0.0.13","karma-coverage":"~0.2.4","karma-sinon":"~1.0.3","karma-chai":"~0.1.0","karma-sinon-chai":"~0.2.0","jstransformify":"~0.2.2","browserify":"~4.1.11","through2":"~0.5.1","vinyl-source-stream":"~0.1.1","glob":"~4.0.2","gulp-streamify":"0.0.5","gulp-foreach":"0.0.1","watchify":"~0.10.2","gulp-watch":"~0.6.8","gulp-util":"~2.2.19","gulp-uglify":"~0.3.1","envify":"~2.0.0","karma-phantomjs-launcher":"~0.1.4","karma-es5-shim":"https://github.com/pokehanai/karma-es5-shim/archive/v2.1.0.tar.gz","require-dir":"~0.1.0","run-sequence":"~0.3.6","jstransform":"~5.0.0","gulp-size":"~0.4.0"},"bugs":{"url":"https://github.com/cesarenaldi/iniettore/issues"},"_id":"iniettore@0.0.1","dist":{"shasum":"c280c038f52e30fe922653116b5539b710ab9a79","tarball":"https://registry.npmjs.org/iniettore/-/iniettore-0.0.1.tgz","integrity":"sha512-pftXjrKriRt65LtxW+1GChTM7ByXoIfmOI9Mho5azw+/LSgTg5YF0+ZUowTj2+MZ8fnN7tEj006vbyCKLfamnA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDHTkkJilEWmHrIt9wRhjNDpRSPEzA0pVaH9AwvfUY38gIhAOYcxWN9n8nzgu6mR6Sm/rd1Zn2KBeAgkPPXD8ZI47kg"}]},"_from":".","_npmVersion":"1.3.24","_npmUser":{"name":"cnaldi","email":"naldi.cesare@gmail.com"},"maintainers":[{"name":"cnaldi","email":"naldi.cesare@gmail.com"}],"directories":{}},"0.0.2":{"name":"iniettore","version":"0.0.2","description":"A light and simple IoC container","main":"lib/iniettore.js","scripts":{"test":"gulp test","build":"gulp default"},"keywords":["ioc","di","container","dependency injection"],"engines":{"node":">=0.10.25"},"author":{"name":"Cesare Naldi","url":"https://github.com/cesarenaldi"},"homepage":"https://github.com/cesarenaldi/iniettore.git","repository":{"type":"git","url":"https://github.com/cesarenaldi/iniettore.git"},"license":"ISC","devDependencies":{"gulp":"~3.8.0","gulp-mocha":"~0.4.1","tmp":"0.0.23","es6-module-jstransform":"~0.1.4","gulp-jstransform":"~0.1.0","gulp-rename":"~1.2.0","gulp-filter":"~0.4.1","sinon":"~1.10.2","chai":"~1.9.1","sinon-chai":"~2.5.0","gulp-cached":"0.0.3","gulp-debug":"~0.3.0","gulp-browserify":"~0.5.0","karma":"~0.12.16","gulp-karma":"0.0.4","mocha":"~1.20.1","karma-mocha":"~0.1.4","karma-chrome-launcher":"~0.1.4","karma-spec-reporter":"0.0.13","karma-coverage":"~0.2.4","karma-sinon":"~1.0.3","karma-chai":"~0.1.0","karma-sinon-chai":"~0.2.0","jstransformify":"~0.2.2","browserify":"~4.1.11","through2":"~0.5.1","vinyl-source-stream":"~0.1.1","glob":"~4.0.2","gulp-streamify":"0.0.5","gulp-foreach":"0.0.1","watchify":"~0.10.2","gulp-watch":"~0.6.8","gulp-util":"~2.2.19","gulp-uglify":"~0.3.1","envify":"~2.0.0","karma-phantomjs-launcher":"~0.1.4","karma-es5-shim":"https://github.com/pokehanai/karma-es5-shim/archive/v2.1.0.tar.gz","require-dir":"~0.1.0","run-sequence":"~0.3.6","jstransform":"~5.0.0","gulp-size":"~0.4.0"},"bugs":{"url":"https://github.com/cesarenaldi/iniettore/issues"},"_id":"iniettore@0.0.2","dist":{"shasum":"1254ccca35dd733bdba80c83562926692e43129a","tarball":"https://registry.npmjs.org/iniettore/-/iniettore-0.0.2.tgz","integrity":"sha512-mRls3+p0KO+xegWnJqPhTVBnUtX6Bil2vVUfkTcbVBPLOHCkOCyTtzjHrd6G6MpoFr9WRkomYJBz470pA4NuPw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFML66JI51YIr/3f0x/DPr/f/TINZjj1MT/WdiOoW4VuAiEAv37XXciMsBWPrVdhbfPf7Yt0w0vWaeuuGYFx00JvZYg="}]},"_from":".","_npmVersion":"1.3.24","_npmUser":{"name":"cnaldi","email":"naldi.cesare@gmail.com"},"maintainers":[{"name":"cnaldi","email":"naldi.cesare@gmail.com"}],"directories":{}},"0.0.3":{"name":"iniettore","version":"0.0.3","description":"A light and simple IoC container","main":"lib/iniettore.js","scripts":{"test":"gulp test","build":"gulp default","prepublish":"gulp build"},"keywords":["ioc","di","container","dependency injection"],"engines":{"node":">=0.10.25"},"author":{"name":"Cesare Naldi","url":"https://github.com/cesarenaldi"},"homepage":"https://github.com/cesarenaldi/iniettore.git","repository":{"type":"git","url":"https://github.com/cesarenaldi/iniettore.git"},"license":"ISC","devDependencies":{"gulp":"~3.8.0","gulp-mocha":"~0.4.1","tmp":"0.0.23","es6-module-jstransform":"~0.1.4","gulp-jstransform":"~0.1.0","gulp-rename":"~1.2.0","gulp-filter":"~0.4.1","sinon":"~1.10.2","chai":"~1.9.1","sinon-chai":"~2.5.0","gulp-cached":"0.0.3","gulp-debug":"~0.3.0","gulp-browserify":"~0.5.0","karma":"~0.12.16","gulp-karma":"0.0.4","mocha":"~1.20.1","karma-mocha":"~0.1.4","karma-chrome-launcher":"~0.1.4","karma-spec-reporter":"0.0.13","karma-coverage":"~0.2.4","karma-sinon":"~1.0.3","karma-chai":"~0.1.0","karma-sinon-chai":"~0.2.0","jstransformify":"~0.2.2","browserify":"~4.1.11","through2":"~0.5.1","vinyl-source-stream":"~0.1.1","glob":"~4.0.2","gulp-streamify":"0.0.5","gulp-foreach":"0.0.1","watchify":"~0.10.2","gulp-watch":"~0.6.8","gulp-util":"~2.2.19","gulp-uglify":"~0.3.1","envify":"~2.0.0","karma-phantomjs-launcher":"~0.1.4","karma-es5-shim":"https://github.com/pokehanai/karma-es5-shim/archive/v2.1.0.tar.gz","require-dir":"~0.1.0","run-sequence":"~0.3.6","jstransform":"~5.0.0","gulp-size":"~0.4.0"},"bugs":{"url":"https://github.com/cesarenaldi/iniettore/issues"},"_id":"iniettore@0.0.3","dist":{"shasum":"d2380bed1c838b57f699e37d4191c69e10e298e6","tarball":"https://registry.npmjs.org/iniettore/-/iniettore-0.0.3.tgz","integrity":"sha512-BNv0s5xjjWGh8Bjncv6TOVkuPyu+PzH2KhRHsmNmEXIMfXBeDbVlUqtX/npUCnLP3EbRyaa2d1XWOc1YURxiaQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC/djKUXh84DVDkLUuYe4EVnqqYUA3b6U2rfGKGlJQOFwIgCbHlCIQqEzyXKa2E2KV+FTWDN2YG1dQhb3V18SgvLQQ="}]},"_from":".","_npmVersion":"1.3.24","_npmUser":{"name":"cnaldi","email":"naldi.cesare@gmail.com"},"maintainers":[{"name":"cnaldi","email":"naldi.cesare@gmail.com"}],"directories":{}},"0.0.4":{"name":"iniettore","version":"0.0.4","description":"A light and simple IoC container","main":"lib/iniettore.js","scripts":{"test":"gulp test-ci","build":"gulp default","prepublish":"gulp build"},"keywords":["ioc","di","container","dependency injection"],"engines":{"node":">=0.10.25"},"author":{"name":"Cesare Naldi","url":"https://github.com/cesarenaldi"},"homepage":"https://github.com/cesarenaldi/iniettore.git","repository":{"type":"git","url":"https://github.com/cesarenaldi/iniettore.git"},"license":"ISC","devDependencies":{"gulp":"~3.8.0","gulp-mocha":"~0.4.1","tmp":"0.0.23","es6-module-jstransform":"~0.1.4","gulp-jstransform":"~0.1.0","gulp-rename":"~1.2.0","gulp-filter":"~0.4.1","sinon":"~1.10.2","chai":"~1.9.1","sinon-chai":"~2.5.0","gulp-cached":"0.0.3","gulp-debug":"~0.3.0","gulp-browserify":"~0.5.0","karma":"~0.12.16","gulp-karma":"0.0.4","mocha":"~1.20.1","karma-mocha":"~0.1.4","karma-chrome-launcher":"~0.1.4","karma-spec-reporter":"0.0.13","karma-coverage":"~0.2.4","karma-sinon":"~1.0.3","karma-chai":"~0.1.0","karma-sinon-chai":"~0.2.0","jstransformify":"~0.2.2","browserify":"~4.1.11","through2":"~0.5.1","vinyl-source-stream":"~0.1.1","glob":"~4.0.2","gulp-streamify":"0.0.5","gulp-foreach":"0.0.1","watchify":"~0.10.2","gulp-watch":"~0.6.8","gulp-util":"~2.2.19","gulp-uglify":"~0.3.1","envify":"~2.0.0","karma-phantomjs-launcher":"~0.1.4","karma-es5-shim":"https://github.com/pokehanai/karma-es5-shim/archive/v2.1.0.tar.gz","require-dir":"~0.1.0","run-sequence":"~0.3.6","jstransform":"~5.0.0","gulp-size":"~0.4.0","browserify-istanbul":"~0.1.0","gulp-coveralls":"~0.1.2"},"bugs":{"url":"https://github.com/cesarenaldi/iniettore/issues"},"_id":"iniettore@0.0.4","dist":{"shasum":"4ae0a4dc24e3871924701806938bab64213c35ad","tarball":"https://registry.npmjs.org/iniettore/-/iniettore-0.0.4.tgz","integrity":"sha512-tJgARhLWyD4TO2Dmb2FJj8y7/RO6UtTIKOfBhL5wnuNrge6Os5hR/t8oyaj1krVWppyQi0BXrNlWlvqBwk7BTg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDrC+mRCuxK0Jo4kKzcaT5e1gCnohOCvP+OEtwuBak2wAiBSLInKQ4hO8PZurK287VedIEEChq6j0vjiqhcUzYXtCQ=="}]},"_from":".","_npmVersion":"1.3.24","_npmUser":{"name":"cnaldi","email":"naldi.cesare@gmail.com"},"maintainers":[{"name":"cnaldi","email":"naldi.cesare@gmail.com"}],"directories":{}},"0.0.5":{"name":"iniettore","version":"0.0.5","description":"A light and simple IoC container","main":"lib/iniettore.js","scripts":{"test":"gulp test-ci","build":"gulp default","prepublish":"gulp build"},"keywords":["ioc","di","container","dependency injection"],"engines":{"node":">=0.10.25"},"author":{"name":"Cesare Naldi","url":"https://github.com/cesarenaldi"},"homepage":"https://github.com/cesarenaldi/iniettore.git","repository":{"type":"git","url":"https://github.com/cesarenaldi/iniettore.git"},"license":"ISC","devDependencies":{"gulp":"~3.8.0","gulp-mocha":"~0.4.1","tmp":"0.0.23","es6-module-jstransform":"~0.1.4","gulp-jstransform":"~0.1.0","gulp-rename":"~1.2.0","gulp-filter":"~0.4.1","sinon":"~1.10.2","chai":"~1.9.1","sinon-chai":"~2.5.0","gulp-cached":"0.0.3","gulp-debug":"~0.3.0","gulp-browserify":"~0.5.0","karma":"~0.12.16","gulp-karma":"0.0.4","mocha":"~1.20.1","karma-mocha":"~0.1.4","karma-chrome-launcher":"~0.1.4","karma-spec-reporter":"0.0.13","karma-coverage":"~0.2.4","karma-sinon":"~1.0.3","karma-chai":"~0.1.0","karma-sinon-chai":"~0.2.0","jstransformify":"~0.2.2","browserify":"~4.1.11","through2":"~0.5.1","vinyl-source-stream":"~0.1.1","glob":"~4.0.2","gulp-streamify":"0.0.5","gulp-foreach":"0.0.1","watchify":"~0.10.2","gulp-watch":"~0.6.8","gulp-util":"~2.2.19","gulp-uglify":"~0.3.1","envify":"~2.0.0","karma-phantomjs-launcher":"~0.1.4","karma-es5-shim":"https://github.com/pokehanai/karma-es5-shim/archive/v2.1.0.tar.gz","require-dir":"~0.1.0","run-sequence":"~0.3.6","jstransform":"~5.0.0","gulp-size":"~0.4.0","browserify-istanbul":"~0.1.0","gulp-coveralls":"~0.1.2"},"gitHead":"81a8d63fa2ca88ead65f4469096acf91d7b7e38f","bugs":{"url":"https://github.com/cesarenaldi/iniettore/issues"},"_id":"iniettore@0.0.5","_shasum":"f2d6e5bea2066a325db8fae55f44379540bcbe65","_from":".","_npmVersion":"1.4.14","_npmUser":{"name":"cnaldi","email":"naldi.cesare@gmail.com"},"maintainers":[{"name":"cnaldi","email":"naldi.cesare@gmail.com"}],"dist":{"shasum":"f2d6e5bea2066a325db8fae55f44379540bcbe65","tarball":"https://registry.npmjs.org/iniettore/-/iniettore-0.0.5.tgz","integrity":"sha512-a+gYGcpQ1GRigH266rDt1p9utBKvQTUwHTufxliDFAEVPLuh6KxrlWgkDE5iLxTSXJrlXmIOT4N1gwhrn7sHeg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD3HW1/S1D405raxNxt5l3/HcSpWgwbuDw63JAcieuGAgIhAMewt7DJBDaAmxmUpUe3EffWsTi4CHbClJDpP46PV650"}]},"directories":{}},"1.0.0":{"name":"iniettore","version":"1.0.0","description":"A light and simple IoC container","main":"lib/iniettore.js","scripts":{"test":"gulp test-ci","build":"gulp default","prepublish":"gulp build"},"keywords":["ioc","di","container","dependency injection"],"engines":{"node":">=0.10.25"},"author":{"name":"Cesare Naldi","url":"https://github.com/cesarenaldi"},"homepage":"https://github.com/cesarenaldi/iniettore.git","repository":{"type":"git","url":"https://github.com/cesarenaldi/iniettore.git"},"license":"ISC","devDependencies":{"browserify":"~4.1.11","browserify-istanbul":"~0.1.0","chai":"~1.9.1","envify":"~2.0.0","es6-module-jstransform":"~0.1.4","glob":"~4.0.2","gulp":"~3.8.0","gulp-browserify":"~0.5.0","gulp-cached":"0.0.3","gulp-coveralls":"~0.1.2","gulp-debug":"~0.3.0","gulp-filter":"~0.4.1","gulp-foreach":"0.0.1","gulp-jstransform":"~0.1.0","gulp-karma":"0.0.4","gulp-mocha":"~0.4.1","gulp-rename":"~1.2.0","gulp-size":"~0.4.0","gulp-streamify":"0.0.5","gulp-uglify":"~0.3.1","gulp-util":"~2.2.19","gulp-watch":"~0.6.8","jstransform":"~5.0.0","jstransformify":"~0.2.2","karma":"~0.12.16","karma-chai":"~0.1.0","karma-chrome-launcher":"~0.1.4","karma-coverage":"~0.2.4","karma-es5-shim":"https://github.com/pokehanai/karma-es5-shim/archive/v2.1.0.tar.gz","karma-mocha":"~0.1.4","karma-phantomjs-launcher":"~0.1.4","karma-sinon":"~1.0.3","karma-sinon-chai":"~0.2.0","karma-spec-reporter":"0.0.13","mocha":"~1.20.1","require-dir":"~0.1.0","run-sequence":"~0.3.6","sinon":"~1.10.2","sinon-chai":"~2.5.0","through2":"~0.5.1","tmp":"0.0.23","vinyl-source-stream":"~0.1.1","watchify":"~0.10.2"},"gitHead":"fccb56f6317f9135d76d6a799b7a607632075b66","bugs":{"url":"https://github.com/cesarenaldi/iniettore/issues"},"_id":"iniettore@1.0.0","_shasum":"346de8b5e5aa72fc1daff2f7d474c2514a9b2dc0","_from":".","_npmVersion":"1.4.14","_npmUser":{"name":"cnaldi","email":"naldi.cesare@gmail.com"},"maintainers":[{"name":"cnaldi","email":"naldi.cesare@gmail.com"}],"dist":{"shasum":"346de8b5e5aa72fc1daff2f7d474c2514a9b2dc0","tarball":"https://registry.npmjs.org/iniettore/-/iniettore-1.0.0.tgz","integrity":"sha512-VTUTnRblnMeewO1kKex5xF+ypsrwxkIk5gRDWysXWKsz6pnaM1jXA7g9e043jwZXB+zTmJAwnDCTGtKxBzANBg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHCAYd86kkjuAV8WWBa9ZQN8wSO/+kfPm/cjFQuYMS31AiEAw/giyEPc0SskDTyy+H9LeCb3LJsywLLNyrxNcb32sH0="}]},"directories":{}},"1.1.0":{"name":"iniettore","version":"1.1.0","description":"A light and simple IoC container","main":"lib/iniettore.js","scripts":{"test":"gulp test-ci","build":"gulp default","prepublish":"gulp build"},"keywords":["ioc","di","container","dependency injection"],"engines":{"node":">=0.10.25"},"author":{"name":"Cesare Naldi","url":"https://github.com/cesarenaldi"},"homepage":"https://github.com/cesarenaldi/iniettore.git","repository":{"type":"git","url":"https://github.com/cesarenaldi/iniettore.git"},"license":"ISC","devDependencies":{"browserify":"~4.1.11","browserify-istanbul":"~0.1.0","chai":"~1.9.1","envify":"~2.0.0","es6-module-jstransform":"~0.1.4","glob":"~4.0.2","gulp":"~3.8.0","gulp-browserify":"~0.5.0","gulp-cached":"0.0.3","gulp-coveralls":"~0.1.2","gulp-debug":"~0.3.0","gulp-filter":"~0.4.1","gulp-foreach":"0.0.1","gulp-jstransform":"~0.1.0","gulp-karma":"0.0.4","gulp-mocha":"~0.4.1","gulp-rename":"~1.2.0","gulp-size":"~0.4.0","gulp-streamify":"0.0.5","gulp-uglify":"~0.3.1","gulp-util":"~2.2.19","gulp-watch":"~0.6.8","jstransform":"~5.0.0","jstransformify":"~0.2.2","karma":"~0.12.16","karma-chai":"~0.1.0","karma-chrome-launcher":"~0.1.4","karma-coverage":"~0.2.4","karma-es5-shim":"https://github.com/pokehanai/karma-es5-shim/archive/v2.1.0.tar.gz","karma-mocha":"~0.1.4","karma-phantomjs-launcher":"~0.1.4","karma-sinon":"~1.0.3","karma-sinon-chai":"~0.2.0","karma-spec-reporter":"0.0.13","mocha":"~1.20.1","require-dir":"~0.1.0","run-sequence":"~0.3.6","sinon":"~1.10.2","sinon-chai":"~2.5.0","through2":"~0.5.1","tmp":"0.0.23","vinyl-source-stream":"~0.1.1","watchify":"~0.10.2"},"gitHead":"b4297f8dbe61cecc61ad12fcb845e8b46bf96f19","bugs":{"url":"https://github.com/cesarenaldi/iniettore/issues"},"_id":"iniettore@1.1.0","_shasum":"ea463634008c38f3b426b74e7830a425e8c9d979","_from":".","_npmVersion":"1.4.14","_npmUser":{"name":"cnaldi","email":"naldi.cesare@gmail.com"},"maintainers":[{"name":"cnaldi","email":"naldi.cesare@gmail.com"}],"dist":{"shasum":"ea463634008c38f3b426b74e7830a425e8c9d979","tarball":"https://registry.npmjs.org/iniettore/-/iniettore-1.1.0.tgz","integrity":"sha512-XjPCceq0GV63PUcwQxINebfWMbVk6EJ/PU7LKEjHPWlfSPFG9CsxFxpxEu1av7AZqNfjGWvCnSKbsgice2eQ4A==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBZSFPZtn4BTsqZfBLI54vBPy1Z+ZWRmAvNgksHXwQwOAiBRRj9MFNwq7z1EbRCqnZ0XpuhgBwBA2xR5OclLtwSh8Q=="}]},"directories":{}},"1.2.0":{"name":"iniettore","version":"1.2.0","description":"A light and simple IoC container","main":"lib/iniettore.js","scripts":{"test":"gulp test-ci","build":"gulp default","prepublish":"gulp build"},"keywords":["ioc","di","container","dependency injection"],"engines":{"node":">=0.10.25"},"author":{"name":"Cesare Naldi","url":"https://github.com/cesarenaldi"},"homepage":"https://github.com/cesarenaldi/iniettore.git","repository":{"type":"git","url":"https://github.com/cesarenaldi/iniettore.git"},"license":"ISC","devDependencies":{"browserify":"~4.1.11","browserify-istanbul":"~0.1.0","chai":"~1.9.1","envify":"~2.0.0","es6-module-jstransform":"~0.1.4","glob":"~4.0.2","gulp":"~3.8.0","gulp-browserify":"~0.5.0","gulp-cached":"0.0.3","gulp-coveralls":"~0.1.2","gulp-debug":"~0.3.0","gulp-filter":"~0.4.1","gulp-foreach":"0.0.1","gulp-jstransform":"~0.1.0","gulp-karma":"0.0.4","gulp-mocha":"~0.4.1","gulp-rename":"~1.2.0","gulp-size":"~0.4.0","gulp-streamify":"0.0.5","gulp-uglify":"~0.3.1","gulp-util":"~2.2.19","gulp-watch":"~0.6.8","jstransform":"~5.0.0","jstransformify":"~0.2.2","karma":"~0.12.16","karma-chai":"~0.1.0","karma-chrome-launcher":"~0.1.4","karma-coverage":"~0.2.4","karma-es5-shim":"https://github.com/pokehanai/karma-es5-shim/archive/v2.1.0.tar.gz","karma-mocha":"~0.1.4","karma-phantomjs-launcher":"~0.1.4","karma-sinon":"~1.0.3","karma-sinon-chai":"~0.2.0","karma-spec-reporter":"0.0.13","mocha":"~1.20.1","require-dir":"~0.1.0","run-sequence":"~0.3.6","sinon":"~1.10.2","sinon-chai":"~2.5.0","through2":"~0.5.1","tmp":"0.0.23","vinyl-source-stream":"~0.1.1","watchify":"~0.10.2"},"gitHead":"7a6740bee670dd266b4d1dedc2cae6b4c8813439","bugs":{"url":"https://github.com/cesarenaldi/iniettore/issues"},"_id":"iniettore@1.2.0","_shasum":"6a0a68c203cea96e7d4c2e0dc0064854d447a770","_from":".","_npmVersion":"1.4.14","_npmUser":{"name":"cnaldi","email":"naldi.cesare@gmail.com"},"maintainers":[{"name":"cnaldi","email":"naldi.cesare@gmail.com"}],"dist":{"shasum":"6a0a68c203cea96e7d4c2e0dc0064854d447a770","tarball":"https://registry.npmjs.org/iniettore/-/iniettore-1.2.0.tgz","integrity":"sha512-6+rHFadp1UyiSQ39MlZpl7+cGu3Zmwy5z3BXX6qY+c7l1zCCM9qOqXZCUJZHBHBz+P8r2jZzuxOlzo34U1i6jw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIB9LSg3Bs3IWPHNey9tj2e3JI8jA8zcoxdcH9h2O56TeAiEA4F8cGNrSxzahgbP9jJAcKvaGg7VYdvuJOS+xDD0H4gM="}]},"directories":{}},"2.0.0-pre":{"name":"iniettore","version":"2.0.0-pre","description":"A light and simple IoC container","main":"lib/iniettore.js","scripts":{"test":"gulp test-ci","build":"gulp default","prepublish":"gulp build"},"keywords":["ioc","di","container","dependency injection"],"engines":{"node":">=0.10.25"},"author":{"name":"Cesare Naldi","url":"https://github.com/cesarenaldi"},"homepage":"https://github.com/cesarenaldi/iniettore.git","repository":{"type":"git","url":"https://github.com/cesarenaldi/iniettore.git"},"license":"ISC","devDependencies":{"browserify":"~4.1.11","browserify-istanbul":"~0.1.0","chai":"~1.9.1","envify":"~2.0.0","es6-module-jstransform":"~0.1.4","glob":"~4.0.2","gulp":"~3.8.0","gulp-browserify":"~0.5.0","gulp-cached":"0.0.3","gulp-coveralls":"~0.1.2","gulp-debug":"~0.3.0","gulp-filter":"~0.4.1","gulp-foreach":"0.0.1","gulp-jstransform":"~0.1.0","gulp-karma":"0.0.4","gulp-mocha":"~0.4.1","gulp-rename":"~1.2.0","gulp-size":"~0.4.0","gulp-streamify":"0.0.5","gulp-uglify":"~0.3.1","gulp-util":"~2.2.19","gulp-watch":"~0.6.8","jstransform":"~5.0.0","jstransformify":"~0.2.2","karma":"~0.12.16","karma-chai":"~0.1.0","karma-chrome-launcher":"~0.1.4","karma-coverage":"~0.2.4","karma-es5-shim":"https://github.com/pokehanai/karma-es5-shim/archive/v2.1.0.tar.gz","karma-mocha":"~0.1.4","karma-phantomjs-launcher":"~0.1.4","karma-sinon":"~1.0.3","karma-sinon-chai":"~0.2.0","karma-spec-reporter":"0.0.13","mocha":"~1.20.1","require-dir":"~0.1.0","run-sequence":"~0.3.6","sinon":"~1.10.2","sinon-chai":"~2.5.0","through2":"~0.5.1","tmp":"0.0.23","vinyl-source-stream":"~0.1.1","watchify":"~0.10.2"},"gitHead":"3c82a501cd37e0769861ec0988a796ecd57073ca","bugs":{"url":"https://github.com/cesarenaldi/iniettore/issues"},"_id":"iniettore@2.0.0-pre","_shasum":"6825fb20528f4db851105a6c7be559573ad59c5e","_from":".","_npmVersion":"1.4.14","_npmUser":{"name":"cnaldi","email":"naldi.cesare@gmail.com"},"maintainers":[{"name":"cnaldi","email":"naldi.cesare@gmail.com"}],"dist":{"shasum":"6825fb20528f4db851105a6c7be559573ad59c5e","tarball":"https://registry.npmjs.org/iniettore/-/iniettore-2.0.0-pre.tgz","integrity":"sha512-WeqerIRBBdFkVnhPZ2dM04B7LZWJ7Ft7vWp4NorkrVB8lZ9yQhghC3mbAAyd17lo+MKJdkhCDsWfqd4Ylk1InQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCobZBUCzYj1/tji8UJBnvMpjbPb/YaExSEaq05O79a8wIhAP17m+2nLbtbJoxUyL5/kN92ByWmbtuAFK+TO2v8W9Nk"}]},"directories":{}},"2.0.0":{"name":"iniettore","version":"2.0.0","description":"A light and simple IoC container","main":"lib/iniettore.js","scripts":{"test":"gulp test-ci","build":"gulp default","prepublish":"gulp build","dev":"gulp dev"},"keywords":["ioc","di","container","dependency injection"],"engines":{"node":">=0.10.29"},"author":{"name":"Cesare Naldi","url":"https://github.com/cesarenaldi"},"homepage":"https://github.com/cesarenaldi/iniettore.git","repository":{"type":"git","url":"https://github.com/cesarenaldi/iniettore.git"},"license":"ISC","dependencies":{"babel":"^5.5.4","babelify":"6.1.2","browserify":"10.2.4","browserify-istanbul":"0.2.1","chai":"2.3.0","envify":"3.4.0","es6-module-jstransform":"0.1.4","glob":"5.0.10","gulp":"3.9.0","gulp-babel":"5.1.0","gulp-browserify":"0.5.1","gulp-coveralls":"0.1.4","gulp-debug":"2.0.1","gulp-foreach":"0.1.0","gulp-karma":"0.0.4","gulp-mocha":"2.1.1","gulp-rename":"1.2.2","gulp-size":"1.2.1","gulp-streamify":"0.0.5","gulp-uglify":"1.2.0","gulp-util":"3.0.5","karma":"0.12.36","karma-chai":"0.1.0","karma-chrome-launcher":"0.1.12","karma-coverage":"0.3.1","karma-es5-shim":"0.0.4","karma-mocha":"0.1.10","karma-phantomjs-launcher":"0.2.0","karma-sinon":"1.0.4","karma-sinon-chai":"0.3.0","karma-spec-reporter":"0.0.19","mocha":"2.2.5","phantomjs":"1.9.17","require-dir":"0.3.0","run-sequence":"1.1.0","sinon":"1.14.1","sinon-chai":"2.7.0","through2":"0.6.5","tmp":"0.0.26","vinyl-source-stream":"1.1.0","watchify":"3.2.2"},"gitHead":"3d40970588df72431558a4d676a8358261a045a5","bugs":{"url":"https://github.com/cesarenaldi/iniettore/issues"},"_id":"iniettore@2.0.0","_shasum":"97fe35eab4a9f78e7d5572db275a80b363ad3013","_from":".","_npmVersion":"2.7.4","_nodeVersion":"0.12.2","_npmUser":{"name":"cnaldi","email":"naldi.cesare@gmail.com"},"maintainers":[{"name":"cnaldi","email":"naldi.cesare@gmail.com"}],"dist":{"shasum":"97fe35eab4a9f78e7d5572db275a80b363ad3013","tarball":"https://registry.npmjs.org/iniettore/-/iniettore-2.0.0.tgz","integrity":"sha512-u3Le75vVhMxRrjIqpBrjQuZbc4Pp32ldwJZWVbNYZ655hiUHHeJWEXvyu2PbWxPNuInmhwPjcY3sl9j25nWc1Q==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEWouvzY1EimJ7mcLFsw3RrKQDtbmg0SKzY6bdsLpiYAAiEAm2wSvjC+1Twez1uASPvNI/ICHLjmevOVedBRkS9H52Q="}]},"directories":{}},"2.0.1":{"name":"iniettore","version":"2.0.1","description":"A light and simple IoC container","main":"lib/iniettore.js","scripts":{"test":"gulp test-ci","build":"gulp default","prepublish":"gulp build","dev":"gulp dev"},"keywords":["ioc","di","container","dependency injection"],"engines":{"node":">=0.10.29"},"author":{"name":"Cesare Naldi","url":"https://github.com/cesarenaldi"},"homepage":"https://github.com/cesarenaldi/iniettore.git","repository":{"type":"git","url":"https://github.com/cesarenaldi/iniettore.git"},"license":"ISC","devDependencies":{"babel":"^5.5.4","babelify":"6.1.2","browserify":"10.2.4","browserify-istanbul":"0.2.1","chai":"2.3.0","envify":"3.4.0","es6-module-jstransform":"0.1.4","glob":"5.0.10","gulp":"3.9.0","gulp-babel":"5.1.0","gulp-browserify":"0.5.1","gulp-coveralls":"0.1.4","gulp-debug":"2.0.1","gulp-foreach":"0.1.0","gulp-karma":"0.0.4","gulp-mocha":"2.1.1","gulp-rename":"1.2.2","gulp-size":"1.2.1","gulp-streamify":"0.0.5","gulp-uglify":"1.2.0","gulp-util":"3.0.5","karma":"0.12.36","karma-chai":"0.1.0","karma-chrome-launcher":"0.1.12","karma-coverage":"0.3.1","karma-es5-shim":"0.0.4","karma-mocha":"0.1.10","karma-phantomjs-launcher":"0.2.0","karma-sinon":"1.0.4","karma-sinon-chai":"0.3.0","karma-spec-reporter":"0.0.19","mocha":"2.2.5","phantomjs":"1.9.17","require-dir":"0.3.0","run-sequence":"1.1.0","sinon":"1.14.1","sinon-chai":"2.7.0","through2":"0.6.5","tmp":"0.0.26","vinyl-source-stream":"1.1.0","watchify":"3.2.2"},"gitHead":"6455420e97966e6c88e3689a38b3cd2c5a781584","bugs":{"url":"https://github.com/cesarenaldi/iniettore/issues"},"_id":"iniettore@2.0.1","_shasum":"2af90d667ff2d4013036e9788eaf44de56e2b8ed","_from":".","_npmVersion":"2.7.4","_nodeVersion":"0.12.2","_npmUser":{"name":"cnaldi","email":"naldi.cesare@gmail.com"},"maintainers":[{"name":"cnaldi","email":"naldi.cesare@gmail.com"}],"dist":{"shasum":"2af90d667ff2d4013036e9788eaf44de56e2b8ed","tarball":"https://registry.npmjs.org/iniettore/-/iniettore-2.0.1.tgz","integrity":"sha512-xY5eau//bGRlnqQRW0MR7P+JZzQ2OUOW5G2JkSdevsvUkzuToNPf5pdGC2gz3q+y9GhsdyufA7WYawqbcLhWTA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC1E+ODof871iUTRhM8r4GeU54AEMPUrVoC+8d1DRI7gwIhAP38v1pOOf/wh2JqR++hHYB4tGDHYyWH43LmziVp4dz4"}]},"directories":{}},"3.0.0-pre":{"name":"iniettore","version":"3.0.0-pre","description":"A light and simple IoC container","main":"lib/iniettore.js","jsnext:main":"src/iniettore.js","scripts":{"test":"gulp test-ci","build":"gulp default","prepublish":"gulp build","dev":"mocha --require babel/register --require test/setup.js --reporter spec --full-trace --watch './test/spec/**/*.spec.js'"},"keywords":["ioc","di","container","dependency injection"],"engines":{"node":">=4"},"author":{"name":"Cesare Naldi","url":"https://github.com/cesarenaldi"},"homepage":"https://github.com/cesarenaldi/iniettore.git","repository":{"type":"git","url":"git+https://github.com/cesarenaldi/iniettore.git"},"license":"ISC","devDependencies":{"babel":"^5.5.4","babelify":"6.1.2","browserify":"10.2.4","browserify-istanbul":"0.2.1","chai":"2.3.0","envify":"3.4.0","es6-module-jstransform":"0.1.4","glob":"5.0.10","gulp":"3.9.0","gulp-babel":"5.1.0","gulp-browserify":"0.5.1","gulp-coveralls":"0.1.4","gulp-debug":"2.0.1","gulp-foreach":"0.1.0","gulp-karma":"0.0.4","gulp-mocha":"2.1.1","gulp-rename":"1.2.2","gulp-size":"1.2.1","gulp-streamify":"0.0.5","gulp-uglify":"1.2.0","gulp-util":"3.0.5","karma":"0.13.22","karma-chai":"0.1.0","karma-chrome-launcher":"0.1.12","karma-coverage":"0.3.1","karma-es5-shim":"0.0.4","karma-mocha":"0.1.10","karma-phantomjs-launcher":"0.2.0","karma-sinon":"1.0.4","karma-sinon-chai":"0.3.0","karma-spec-reporter":"0.0.19","mocha":"2.2.5","phantomjs":"2.1.7","require-dir":"0.3.0","run-sequence":"1.1.0","sinon":"1.14.1","sinon-chai":"2.7.0","through2":"0.6.5","tmp":"0.0.26","vinyl-source-stream":"1.1.0","watchify":"3.2.2"},"gitHead":"4069d813bc2e70fb4a751f3315ed946a8385d732","bugs":{"url":"https://github.com/cesarenaldi/iniettore/issues"},"_id":"iniettore@3.0.0-pre","_shasum":"45c18e4db002da85820da0bb80c5962ba67034a6","_from":".","_npmVersion":"2.15.5","_nodeVersion":"4.4.5","_npmUser":{"name":"cnaldi","email":"naldi.cesare@gmail.com"},"dist":{"shasum":"45c18e4db002da85820da0bb80c5962ba67034a6","tarball":"https://registry.npmjs.org/iniettore/-/iniettore-3.0.0-pre.tgz","integrity":"sha512-nypaP5oxFXB2q6t8Sba8+0U81u5KVqvEoD5+79O2ONPDpSGW1GPt0alISLHK1RQy3YyMDlUuazYK14NARhtOUQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICM5qv0MzBA4LiUT+ngOH8iR8ZhBhyWNTijVEHsvgE1YAiAd7pjxSOpvYWrls6aeWapW34sZqYslrFu8rqJUYKIRZA=="}]},"maintainers":[{"name":"cnaldi","email":"naldi.cesare@gmail.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/iniettore-3.0.0-pre.tgz_1478772574924_0.4448737562634051"},"directories":{}},"3.0.0-alpha-1":{"name":"iniettore","version":"3.0.0-alpha-1","description":"A light and simple IoC container","main":"lib/iniettore.js","jsnext:main":"src/iniettore.js","scripts":{"test":"gulp test-ci","build":"gulp default","prepublish":"gulp build","dev":"mocha --require babel/register --require test/setup.js --reporter spec --full-trace --watch './test/spec/**/*.spec.js'"},"keywords":["ioc","di","container","dependency injection"],"engines":{"node":">=4"},"author":{"name":"Cesare Naldi","url":"https://github.com/cesarenaldi"},"homepage":"https://github.com/cesarenaldi/iniettore.git","repository":{"type":"git","url":"git+https://github.com/cesarenaldi/iniettore.git"},"license":"ISC","devDependencies":{"babel":"^5.5.4","babelify":"6.1.2","browserify":"10.2.4","browserify-istanbul":"0.2.1","chai":"2.3.0","envify":"3.4.0","es6-module-jstransform":"0.1.4","glob":"5.0.10","gulp":"3.9.0","gulp-babel":"5.1.0","gulp-browserify":"0.5.1","gulp-coveralls":"0.1.4","gulp-debug":"2.0.1","gulp-foreach":"0.1.0","gulp-karma":"0.0.4","gulp-mocha":"2.1.1","gulp-rename":"1.2.2","gulp-size":"1.2.1","gulp-streamify":"0.0.5","gulp-uglify":"1.2.0","gulp-util":"3.0.5","karma":"0.13.22","karma-chai":"0.1.0","karma-chrome-launcher":"0.1.12","karma-coverage":"0.3.1","karma-es5-shim":"0.0.4","karma-mocha":"0.1.10","karma-phantomjs-launcher":"0.2.0","karma-sinon":"1.0.4","karma-sinon-chai":"0.3.0","karma-spec-reporter":"0.0.19","mocha":"2.2.5","phantomjs":"2.1.7","require-dir":"0.3.0","run-sequence":"1.1.0","sinon":"1.14.1","sinon-chai":"2.7.0","through2":"0.6.5","tmp":"0.0.26","vinyl-source-stream":"1.1.0","watchify":"3.2.2"},"gitHead":"a12df9a5c891c66b76c3683e063bd7ff147a3d38","bugs":{"url":"https://github.com/cesarenaldi/iniettore/issues"},"_id":"iniettore@3.0.0-alpha-1","_shasum":"5b51bf8dfdf6747c4eb0a438b23ca97fc46876e8","_from":".","_npmVersion":"2.15.5","_nodeVersion":"4.4.5","_npmUser":{"name":"cnaldi","email":"naldi.cesare@gmail.com"},"dist":{"shasum":"5b51bf8dfdf6747c4eb0a438b23ca97fc46876e8","tarball":"https://registry.npmjs.org/iniettore/-/iniettore-3.0.0-alpha-1.tgz","integrity":"sha512-kPMWWKAzV8S30bjUdFThYvUSc8Dg/1jbPZgAw4Ow9SKSr0tK5L4ssqdj1aBY9s4fDG8Iqcln1Y7VDQ8633fiWg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDWzMkc3IVvOTJbhcKgfUwp1pCzdo4Jy/fLwMDmpW5HSgIhANOjX3HmsWyBza8rgZhq3/eoYj94P7qzvQ4NGf85ZvPT"}]},"maintainers":[{"name":"cnaldi","email":"naldi.cesare@gmail.com"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/iniettore-3.0.0-alpha-1.tgz_1478773405121_0.39319657534360886"},"directories":{}},"3.0.0-RC1":{"name":"iniettore","version":"3.0.0-RC1","description":"A light and simple IoC container","main":"lib/iniettore.js","module":"src/iniettore.js","scripts":{"dev":"jest \"src/(.*)\\.spec\\.js\"","test":"jest \"src/(.*)\\.spec\\.js\" --coverage --coverageReporters=text-lcov | coveralls","build":"babel src -d lib","prepublish":"yarn build"},"keywords":["ioc","di","container","dependency injection"],"engines":{"node":">=6"},"author":{"name":"Cesare Naldi","url":"https://github.com/cesarenaldi"},"homepage":"https://github.com/cesarenaldi/iniettore.git","repository":{"type":"git","url":"https://github.com/cesarenaldi/iniettore.git"},"license":"ISC","devDependencies":{"@babel/cli":"~7.4.3","@babel/core":"~7.4.3","@babel/preset-env":"~7.4.3","coveralls":"~3.0.3","jest":"~24.7.1","jest-extended":"~0.11.1"},"jest":{"coverageDirectory":"./reports","coverageReporters":["json","lcov","text"]},"_id":"iniettore@3.0.0-RC1","dist":{"shasum":"416016618961ac598bf68cc03eb278382e193132","tarball":"https://registry.npmjs.org/iniettore/-/iniettore-3.0.0-RC1.tgz","integrity":"sha512-UwV3TTJ8/eQo5bhyBX0gAghRBYeuf/X+Wr01w++au53k5NH04KAhoYzRm3FEb45AYP8AG38MOFQ3kCzUiEd70g==","fileCount":49,"unpackedSize":101314,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcqwXBCRA9TVsSAnZWagAAeQkP/1ePTf/Kt2ZD9WXfHdZT\npfZ8HtWrrqfb7RcBs2/JmOHYhHSx0mYOjL9fnl8OBoDp2LdxvgZMi5MzmRIu\nGzbCLXRAr2ZBteGPWkY1Un9j4SVxKuJ1kC+dsKoHpj5QNG0PHnJzXka0onpn\n4wg3GW9lAYf+crjmJxLyuw6/8KAWFZs9gV/5200kUMxRb2tGlG00LTmXkmBE\nJE7NAaQE6IAI/u86GnKrHXYYxhmrmHVYyWFpqBs4laAiBeEfdj+2JC6uF8Ty\nKR+z0hxC2SRyt1cW38YMBpcDgz7ZmYh2l5StBDzJnDh1B/GY5NTg5XKBi9zj\nSi0NDQn1XrPp9ZB0aYgzEp1CLoXRmXbUQaQjAOBJWWH35WJzTQiBGopI385I\nDDtv750jbagMO7Q6hFN++xbSlODIMKcQi5+aCF9yCSwuZs/dYk7WvZPa0GHP\nUPPGNZEtYpEEDp22X0lRUWs7V1bOhP7WywdDO611erntdh+tQlJzWRybNQWx\n9gLBsb9gciV/JyGTuTsF5WOhgCUTbUfoYgOYKHtUazfncteYR7GP6IyYfWJ4\nDGh4l/AhIvmZu+AabfLP65lCWl6hhVMgocruj3J6BEEfUbcKzUMw0CgoK1Cp\n4RvSqyYJhoAY43UBKzkvPxCIbG63GRU36JbYaGPIE76vNThjXMoFqtTgp77d\n4NKR\r\n=X/Vt\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBSlrk68LAvxoFGeFJwHreo996URlcY1fOfitW1QinQHAiEAuohnDE1COMmU7oT8ZyDp5UDCJaYNhYqSC+YaimYLEpE="}]},"maintainers":[{"name":"cnaldi","email":"naldi.cesare@gmail.com"}],"_npmUser":{"name":"cnaldi","email":"naldi.cesare@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/iniettore_3.0.0-RC1_1554712001211_0.40412670565344566"},"_hasShrinkwrap":false},"4.0.0-4.0.0-alpha.0.0":{"name":"iniettore","version":"4.0.0-4.0.0-alpha.0.0","description":"Minimalistic Dependency Injection Container","main":"dist/index.js","types":"dist/index.d.ts","scripts":{"build":"tsc -b tsconfig.build.json","clean":"tsc -b tsconfig.build.json --clean"},"keywords":["browser","clean-architecture","container","dependency-injection","di","inversion-of-control","ioc","node","solid","typescript"],"engines":{"node":">=12"},"author":{"name":"Cesare Naldi","url":"https://github.com/cesarenaldi"},"bugs":{"url":"https://github.com/cesarenaldi/iniettore/issues"},"homepage":"https://github.com/cesarenaldi/iniettore/tree/master/packages/iniettore#readme","repository":{"type":"git","url":"git+https://github.com/cesarenaldi/iniettore.git","directory":"packages/iniettore"},"license":"ISC","dependencies":{"@iniettore/common":"^4.0.0-4.0.0-alpha.0.0"},"publishConfig":{"access":"public"},"gitHead":"30c57aad68379245e6557147b78e5b991df7e66c","_id":"iniettore@4.0.0-4.0.0-alpha.0.0","_nodeVersion":"12.16.3","_npmVersion":"lerna/3.22.1/node@v12.16.3+x64 (darwin)","dist":{"integrity":"sha512-P3wd+yaqieRI1qW3WdtRwJgpG+d+JEEwU4jOo+v7Z68w8lqbEcxU3FFf3ggrL6yEu7aWrcMuuAE+L/rzUFO5Bw==","shasum":"f0f11eaa9ae83fc7e5dcb99be7adee43c43579f3","tarball":"https://registry.npmjs.org/iniettore/-/iniettore-4.0.0-4.0.0-alpha.0.0.tgz","fileCount":31,"unpackedSize":28866,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgURjaCRA9TVsSAnZWagAAflIQAIog51zqzrG/LC0wSRMa\nHBVacGqD2hPejBKeSZeqSECgAN031hqETGtHYAJq/RceoU1jXGrWed1ZWpa5\nJa1vMFMqWfVi9ZAOxW3nA25lxXtqXENn/Mgdli227N9Dc42qiLI8htS4zJaL\nmuZ6f+6vsz+BA0XsAlPeZN1Tc3/OHBdkhl9DE5eH/2mpXkfvUp6B9sP1Wmx+\nliqMQjtacXY/2PWU7aaPsgFs8Bn7A/VrQQ5Zu0gNuZSbm+DnM5OgMC/WQyEI\nCn/Da56/qTaLyjMxABQbm3Azgn2hlMxncwbqG9sNB4FdQs3fof8pRY3D0nGI\nSJmpOOP+MHzyDNN/biXss9jZV2nsoRViHEJuPczjd2EJunXD2DELm0DOdcsq\nYSfMS2opr7k/+oxzydPOFcn1sx4J75T4rJvmGHC7RU3drg6FiVMPP+Gu4Hdt\nWovTuWvOXddiwCTVZ7lOiQOnrpsAQZ9lAibLkruL/UHUXbCd50uASz6pZGBL\nFoDh8hjcsKLjpPDmorGCDk2zYe6qNEKtNo1ooP+ay95M+2GQ+KAo2u9esVHw\nlEwiv8Y8PAcRnh/j+gekgQgSTbY6wjpHMS4gPgb4PhsVidR3t/i6zpRSZt6v\nkWpugpDtQqKCF7PTG4qAtAe3XGsFNqKQGem++2ifj2zQ7muFB74QM+JLtPdc\nT60R\r\n=ldMD\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDkoNFxk6AvpXneio/hd0eUPyk7GYM53VI1VK92+5W8+gIhAPxslIlonkk7vUxDbJooUIuauiFBwlH8oF/l1ByMwSkb"}]},"_npmUser":{"name":"cnaldi","email":"naldi.cesare@gmail.com"},"directories":{},"maintainers":[{"name":"cnaldi","email":"naldi.cesare@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/iniettore_4.0.0-4.0.0-alpha.0.0_1615927514445_0.5957807697397361"},"_hasShrinkwrap":false},"4.0.0-alpha.0":{"name":"iniettore","version":"4.0.0-alpha.0","description":"Minimalistic Dependency Injection Container","main":"dist/index.js","types":"dist/index.d.ts","scripts":{"build":"tsc -b tsconfig.build.json","clean":"tsc -b tsconfig.build.json --clean"},"keywords":["browser","clean-architecture","container","dependency-injection","di","inversion-of-control","ioc","node","solid","typescript"],"engines":{"node":">=12"},"author":{"name":"Cesare Naldi","url":"https://github.com/cesarenaldi"},"bugs":{"url":"https://github.com/cesarenaldi/iniettore/issues"},"homepage":"https://github.com/cesarenaldi/iniettore/tree/master/packages/iniettore#readme","repository":{"type":"git","url":"git+https://github.com/cesarenaldi/iniettore.git","directory":"packages/iniettore"},"license":"ISC","dependencies":{"@iniettore/common":"^4.0.0-alpha.0"},"publishConfig":{"access":"public"},"gitHead":"47d51262647d7948890fc2d0daf9123b0bb84ff8","_id":"iniettore@4.0.0-alpha.0","_nodeVersion":"12.16.3","_npmVersion":"lerna/3.22.1/node@v12.16.3+x64 (darwin)","dist":{"integrity":"sha512-/cmivojWNWuSS1y3rSjxi3wQMOYXlyIA6fZ8uMJoa+bVLmVUWVZFM87gUQpuunn7UUeuzEb+UdW0O+V9t7D6JQ==","shasum":"27f4efffff532fe01ca818c2654650918b5f8246","tarball":"https://registry.npmjs.org/iniettore/-/iniettore-4.0.0-alpha.0.tgz","fileCount":31,"unpackedSize":28850,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgURnuCRA9TVsSAnZWagAAm9IP/R5GCg7ABYqHk3OErPHd\nXJ1nfz6Kr5uCIs1yVZYqM4e/xT1L3WVe2un+fhq5kxNrq7tweT6d35KMll5g\nqiP6FR+Cjg9Oe4z9BxC7zmWRObnEJdY+Y0PqkM9IWERxrkKtwCW83MJ9T52p\n9BMNGgHcdGjfkwVowwbSE/JhrH4c3Do1fkmeT8KHe5D96hk5xZ8IXqV0IYdx\n37bz2ud6QpRK4JNGHL2a5iTSQSt+w2ybmIHn2+/Vl/60RiyGJdlz8iDG0Put\nYu0lP3OaqIw/m/zi0QXXWXg1B2xcCw8sCxUDtnfBuquaochjbYztollTZKy2\nq9UOLSVq4ZG1VgOx97RHJ/Xwr/syktwKBAfFzQM7XJWgGb2R9ZR8plrdkkp6\nKcc25XgGViGHcCww+Shh+ahAn7bmDn+/QDv52QUBM9pp+m8Poh7MuB3Xbbqk\ncZDUh5j3+GGDbc1GMjT3PocEYuZr3OExZci4PxNCBxdzPflOQ/GErSpOyTFv\nGhx+m8npxr8LthcUhunTg4/y4TcLV3I1FCasaGueTxb6hxoYfp40NNaAywom\n7/neuo238pc+cwdvFLBXgP2US67g/Ku93tAnOpk8QviT27wCbynfMW+Wjiy+\nokWJXgriLVNUPhBYdNNbSxx8eS1883H4HW7z5py+yqDyQiFq8Jp4MrF/HzHl\nNjnU\r\n=UCkv\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDl0IPGfMETkvI78oVWzjXO7+a4t8WxDFU8apf5K2NYiQIgGsDYnoN1DqihckJiRsd8kYHxnAMh5VaCEE4EdhTQdew="}]},"_npmUser":{"name":"cnaldi","email":"naldi.cesare@gmail.com"},"directories":{},"maintainers":[{"name":"cnaldi","email":"naldi.cesare@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/iniettore_4.0.0-alpha.0_1615927790025_0.19239714361940452"},"_hasShrinkwrap":false},"4.0.0-alpha.6":{"name":"iniettore","version":"4.0.0-alpha.6","description":"Minimalistic Dependency Injection Container","main":"dist/index.js","types":"dist/index.d.ts","scripts":{"build":"tsc -b tsconfig.build.json","clean":"tsc -b tsconfig.build.json --clean"},"keywords":["browser","clean-architecture","container","dependency-injection","di","inversion-of-control","ioc","node","solid","typescript"],"engines":{"node":">=12"},"author":{"name":"Cesare Naldi","url":"https://github.com/cesarenaldi"},"bugs":{"url":"https://github.com/cesarenaldi/iniettore/issues"},"homepage":"https://github.com/cesarenaldi/iniettore/tree/master/packages/iniettore#readme","repository":{"type":"git","url":"git+https://github.com/cesarenaldi/iniettore.git","directory":"packages/iniettore"},"license":"ISC","dependencies":{"@iniettore/common":"^4.0.0-alpha.0"},"publishConfig":{"access":"public"},"gitHead":"ae417c6408c816e480983d259066ccb697624d83","readme":"# `iniettore`\n\nIniettore is a minimalistic Dependency Injection Container for JavaScript and TypeScript.\n\nIt's platform agnostic so it can be used on many platform running JS (e.g. Node.js, browsers, React Native).\n\n## Install\n\nUsing npm:\n\n```bash\nnpm install iniettore --save\n```\n\nUsing Yarn:\n\n```bash\nyarn add iniettore\n```\n\n## Basic Concepts\n\n### Binding\nA _binding_ in an opaque object responsible of managing the lifecycle of one of your instances. Iniettore makes no assumptions about the type or shape of the managed instance.\n\n**Not just about objects.** In this documentation we will use the term _instance_ with the most generic meaning of the term. In other words you can replace _instance_ with _function_ and everything we describes here still applies.\n\nOut of the box Iniettore provides 2 types of bindings:\n\n- **Provider** bindings can be used in any scenario you want a **different instances** of your type to be \"provided\" when the corresponding dependency is requested.\n\n- **Singleton** bindings can be used in all scenarios you need **only one instance** of the specified type to exist at any given point in time.\n\n### Context\n\nA _context_ is a glorified JS Object containings a collection of bindings. A context helps to structure your application in modular way by letting you group things that have a similiar lifecycle.\n\nIniettore contexts can be organized in a hierarchy so to accommodate different application composition needs.\n\n## Getting Started\n\nWe will go over the fundamentals using an example. See below a typical dependency scenario.\n\n```typescript\n\ninterface Logger {\n  log(msg: string): void\n}\n\nclass ConsoleLogger implements Logger {\n  log(msg: string) {\n    console.log(msg)\n  }\n}\n\nclass HeroService {\n  constructor (readonly logger: Logger) {}\n\n  fightBaddie () { /* ... */ }\n}\n```\nWe will instruct Iniettore to create a `HeroService` instance and provide a `ConsoleLogger` instance via constructor injection.\n\n\n### Define the Context\n\nYou can define a _context_ with one _singleton_ of `Logger` and a _provider_ of `HeroService` where the first is a dependency of the latter.\n\n\n```typescript\nimport { container, Context, get, singleton } from 'iniettore'\n\ntype CustomContext = Context<{ logger: Logger, hero: HeroService }>\n\nconst context: CustomContext = container(() => ({\n\n  logger: singleton(() => new ConsoleLogger())\n\n  hero: provider(() => new HeroService(get(context.logger)))\n}))\n```\n\n**WARNING** `provider` bindings in Iniettore v4 do behave differently than `PROVIDER` mappings in pre-v4 versions of Iniettore. See [API Reference](#providermaterialize).\n\n### Request instances\n\nRequesting an instance of the `HeroService` will end up in also creating an instance of the `ConsoleLogger` which will be provided to the `HeroService` constructor.\n\n```typescript\nconst hero = get(context.hero)\n\nhero instanceof HeroService // true\n```\n\nTwo or more instances of the `HeroService` will share the same instance of the `ConsoleLogger`.\n\n```typescript\nconst hero1 = get(context.hero)\nconst hero2 = get(context.hero)\n\nhero1 === hero2 // false\nhero1.logger === hero2.logger // true\n```\n\n### Free memory\n\nWhen an instance is no longer needed we can tell iniettore via the `free` handler function.\n\n```typescript\nimport { free } from 'iniettore'\n\nconst context = ...\n\nlet hero = get(context.hero)\n\n// use hero here\n\nhero = null\nfree(context.hero)\n```\nAny internal reference to the `ConsoleLogger` instance will be deleted so that the instance can be garbage collected.\n\n**IMPORTANT:** It's developer responsability to notify Iniettore when an instance is no longer used.\n\n## API Reference\n\n### `singleton(materialize [, dispose])`\n\nCreates a _singleton_ binding.\n\nSingleton bindings makes no assumptions about the way you create new instances.\n\n**Parameters**\n\n- `materialize: () => T` - a user defined function that returns instances of `T`\n- `dispose: (T) => void` (optional) - a function that will be used to run bespoke dispose logic of the given instance.\n\n\n**Returns**\n\n`BindingDescriptor<T>` - an opaque object that describe how to manage the lifecycle of the singleton instance.\n\n**Examples**\n\nUsing a constructor:\n```typescript\nimport { container, singleton } from 'iniettore'\n\nconst context = container(() => ({\n  createdAt: singleton(() => new Date())\n}))\n```\n\nUsing a factory function:\n```typescript\nimport { container, singleton } from 'iniettore'\n\nfunction createdAt() {\n  return new Date()\n}\n\nconst context = container(() => ({\n  createdAt: singleton(createdAt)\n}))\n```\n\nWith a bespoke dispose logic:\n```typescript\nimport { container, singleton } from 'iniettore'\n\nclass Car {\n  start() { /* ... */ }\n  stop() { /* ... */ }\n}\n\nconst context = container(() => ({\n  c: singleton(\n    () => new Car(),\n    car => car.stop()\n  )\n}))\n```\n\n\n### `provider(materialize)`\n\nCreates a _provider_ binding.\n\nProvider bindings are agnostic about the logic you use to provide an instance. This means you can create new instances with a factory function or you can leverage a pool of instances and implement your own reuse logic.\n\n**Parameters**\n\n- `materialize: () => T` - a user defined function that returns instances of `T`\n\n\n**Returns**\n\n`BindingDescriptor<T>` - an opaque object that describe how to manage the lifecycle of the provider instances.\n\n**Examples**\n\nUsing a constructor:\n```typescript\nimport { container, provider } from 'iniettore'\n\nconst context = container(() => ({\n  createdAt: provider(() => new Date())\n}))\n```\n\nUsing a factory function:\n```typescript\nimport { container, provider } from 'iniettore'\n\nconst context = container(() => ({\n  now: provider(Date.now)\n}))\n```\n\n### `container(describe)`\n\nCreates a new _context_ with the bindings specified in the `describe` function.\n\n**Parameters**\n\n- `describe: () => { [string]: BindingDescriptor<unknown> }` - a user defined function that returns an object of `BindingDescriptor<T>`.\n\n**Returns**\n\n`{ [string]: Binding<BindingDescriptor<unknown>> }`\n\nOR more conveniently:\n\n`Context<{ [string]: unknown }>`\n\nSee [`Context` type](#context-type) later in this documentation.\n\n**Example**\n\n```typescript\nimport { container, singleton } from 'iniettore'\n\nconst context = container(() => ({\n  now: singleton(() => new Date())\n}))\n```\n\n### `get(binding)`\n\nMaterialize the `T` associated with the given `Binding<BindingDescriptor<T>>`. The `get` function works both on `singleton` and `provider` bindings. In fact the `get` function is agnostic about the lifecycle of the requested instance.\n\n**Parameters**\n\n- `binding: Binding<BindingDescriptor<T>>` - \n\n\n**Returns**\n\n`T`\n\n**Example**\n\n```typescript\nimport { container, get, singleton } from 'iniettore'\n\nconst context = container(() => ({\n  createdAt: singleton(() => new Date())\n}))\n\nconst date = get(context.createdAt)\n```\n\n### `free(bindingOrContext)`\n\nNotifies the binding that one of the consumers is no longer using one if its instance(s).\n\nEach singleton binding has an internal counter that allows iniettore to keep track of the number of instances that depends on it. When a singleton binding internal counter reaches zero, the binding clears any internal reference to the instance so it can be garbage collected propertly. A custom dispose logic could also be specified before the references gets cleared (see `singleton`).\n\nIniettore is able to figure out what singletons can be freed in the case of simple, direct dependencies (like in the `HeroService -> ConsoleLogger` example above) and also in more complex scnearios where the web of dependencies involves  several \"binding hops\". This works even in the case some of the bindings in between are not singleton bindings.\n\n**Parameters**\n\n- `bindingOrContext: Binding<unknown> | Context<{ [string]: unknown }>` - a `Binding<T>` object or an entire `Context<T>`.\n\n**Examples**\n\nUsing a binding:\n```typescript\nimport { container, get, singleton } from 'iniettore'\n\nconst context = container(() => ({\n  createdAt: singleton(() => new Date())\n}))\n\nlet date = get(context.createdAt)\n\ndata = null\nfree(context.createdAt)\n```\n\nUsing a context all the binding within context will be notified and disposed accordingly:\n```typescript\nimport { container, get, singleton } from 'iniettore'\n\nconst context = container(() => ({\n  createdAt: singleton(() => new Date())\n}))\n\nlet date = get(context.createdAt)\n\ndata = null\nfree(context)\n```\n\n### `Context` type\n\n`Context` is a convenient TS Generic Object type that helps declaring the shape of an Iniettore Context.\n\nIn any non-trivial usage of Iniettore, the `Context` is used to define the shape of an Iniettore Context so to be able to declare dependencies within the context itself (see [Getting Started](#getting-started)).\n\n#### `Context` and ISP\n\nThe [Interface Segregation Principle](https://en.wikipedia.org/wiki/Interface_segregation_principle) (ISP) is one of the five [SOLID](https://en.wikipedia.org/wiki/SOLID) principles of object-oriented programming. For the purpose of this documentation we will just use a more practical definition of ISP.\n\n> The ISP advises us not to depend on classes that have methods we don't use. - Clean Architecture (Robert C. Martin)\n\nAs an application grows sometimes it's wise to break it down into application modules that have clear boundaries with the main application. In some Computer Science literatures these modules are referred to as Components depending on how these are deployed/packaged. See an example components diagram that visualize this.\n\n```ascii\n                          ┌──────────────┐\n                       ┌──┴─┐            │\n                       └──┬─┘            │\n                          │     Main     │\n                       ┌──┴─┐            │\n                       └──┬─┘            │\n                          └───────┬──────┘\n                                  │\n                                  │\n           ┌──────────────────────┼───────────────────────┐\n           │                      │                       │\n           │                      │                       │\n   ┌───────┴──────┐       ┌───────┴──────┐        ┌───────┴──────┐\n┌──┴─┐            │    ┌──┴─┐            │     ┌──┴─┐            │\n└──┬─┘            │    └──┬─┘            │     └──┬─┘            │\n   │  Component A │       │  Component B │        │  Component C │\n┌──┴─┐            │    ┌──┴─┐            │     ┌──┴─┐            │\n└──┬─┘            │    └──┬─┘            │     └──┬─┘            │\n   └──────────────┘       └──────────────┘        └──────────────┘\n```\n\nEach component has it's own objects and it's own internal dependency needs.\n\nIt is possible to have one single Iniettore Context that defines all dependencies between indidual components objects. As an application grow it might become quite difficult to manage all such composition logic in one place.\n\nOne might need to break down the composition logic into a main application Context and one sub-Context per component.\n\nIniettore facilitate this by letting the developer create different Iniettore contexts where the individual component composition is defined and segregated.\n\nUsing the components diagram above and the `Logger`, `ConsoleLogger` and `HeroService` types [defined at the beginning](#getting-started) we can explain this with an example.\n\nLet's assume that our hypothetical application has some logging constraints that require to have only one `Logger` object for the entire application. Such instance must be registered in the main Iniettore Context.\n\n**main**\n```typescript\ntype MainContext = Context<{ logger: Logger, hero: HeroService }>\n\nconst mainContext: MainContext = container(() => ({\n\n  logger: singleton(() => new ConsoleLogger())\n\n  hero: provider(() => new HeroService(get(context.logger)))\n\n  /* other bindings */\n}))\n```\n\nLet's now assume that Component A needs to log something. Let's also make clear that Component A does NOT need `HeroService`.\n\nOne can use the `Context` generic type to isolate the portion of the main Iniettore Context needed by Component A.\n\n**RequireLoggerContext**\n```typescript\ntype RequireLoggerContext = Context<{ logger: Logger }>\n```\n\n**component-a**\n```typescript\n\n\nfunction init(main: RequireLoggerContext) {\n  const componentContext: CustomContext = container(() => ({\n  \n    hero: singleton(() => new HeroService(get(main.logger)))\n  \n    /* other bindings */\n  }))\n\n  /* ... */\n}\n```\n\nThe example above uses an hypothetical init function to initialize the component. This is not meant to prescribe any specific solution. It just helps with explaining how to use `Context` generic type to follow the ISP.\n\n\n","readmeFilename":"README.md","_id":"iniettore@4.0.0-alpha.6","_nodeVersion":"12.16.3","_npmVersion":"lerna/3.22.1/node@v12.16.3+x64 (darwin)","dist":{"integrity":"sha512-APJvQJabpe+URAqVzFaW4KHoIbZhPKpMi6bimdIdDENdKxN0ef6esYuxeSMbaJ9bLVEMsRYoj3+Iap9ExcKo2w==","shasum":"d33d36f1bca805dc22427426bc77614c4487a0e7","tarball":"https://registry.npmjs.org/iniettore/-/iniettore-4.0.0-alpha.6.tgz","fileCount":31,"unpackedSize":29878,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgbB6QCRA9TVsSAnZWagAANzcQAIhJtoR0hJUk246m6y6/\nPN8RSr9jsfdFkw15VihEOeFn7q5wo60KioK+55Y7F8Xsg8wH2V//1XN/xGJr\nWFyEvltdmhhqNIrgT9nyf1/dQvwjAstfF8n3YTe5jlJjZSd9wgpoioCvEHYz\nVgFG1eLBGocwy/n8bQFyCBmtH8oDvYOnOgJhT9owmAYTw1y4hdokyhhupv+l\nvZYhjTzU1UrEkvd7Ch0KzUbvqEL4rNeyHNiftXDxslpK5i6raX4ggzS23FK0\n/sYkeKBVvZ8ORSXNgQ7Gf5OVwV6l5LidpXA0qngpBTRRTaFKupADcX1zEo2v\nDZ8o04S9lJokC9qyoxQg7zUBCbm/olw3lR3LXQd5a+mrX/J0R+CxKidjcfCh\nSLttAqhUsg/mvNgL2ZWAPLx7i0/R24RQOKfY28CEmaye7g6totkzLzWv7C6B\nlCw9atn9U1EapgAKLaRyFzW6RGQnI+JuCdYHQx+U0EG+LSKbfTimTctYXyun\nmrLluMA34Y02CG7kGOvyLh7n6IcTW8FoaLmJ2yvsyUy1Yvbbc2oeVfi1x1Dx\nDWSagfxhsaFbbZNagwlDxvFkbO88t6rTQdFHmd6Rz/l3L3AnD9rsSut+CIQr\n/BL2dt5tqN4A1ehW9Tc/FRXz+SeEsTp94bbFrd4KmCe2sCHnycbNm59O4kcc\nU21g\r\n=QI6O\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDkJBZm8zPhZmCHihiTz/0Ko09x3/lTy9L+o1P8qwLbVwIhANaWzPfxtd4ouVrjb84QJHdJNF/e+H036u6pdsjH42lv"}]},"_npmUser":{"name":"cnaldi","email":"naldi.cesare@gmail.com"},"directories":{},"maintainers":[{"name":"cnaldi","email":"naldi.cesare@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/iniettore_4.0.0-alpha.6_1617698448318_0.08294032850749455"},"_hasShrinkwrap":false}},"readme":"","maintainers":[{"name":"cnaldi","email":"naldi.cesare@gmail.com"}],"time":{"modified":"2022-06-19T01:16:38.903Z","created":"2014-06-29T11:09:59.214Z","0.0.1":"2014-06-29T11:09:59.214Z","0.0.2":"2014-06-29T19:41:46.371Z","0.0.3":"2014-06-29T20:54:34.708Z","0.0.4":"2014-07-01T22:09:58.128Z","0.0.5":"2014-07-07T21:04:08.322Z","1.0.0":"2014-07-27T14:03:05.283Z","1.1.0":"2014-07-28T22:47:46.889Z","1.2.0":"2014-08-03T22:25:28.651Z","2.0.0-pre":"2014-08-07T21:02:28.097Z","2.0.0":"2015-06-07T21:26:28.968Z","2.0.1":"2015-06-07T21:37:08.268Z","3.0.0-pre":"2016-11-10T10:09:37.597Z","3.0.0-alpha-1":"2016-11-10T10:23:25.780Z","3.0.0-RC1":"2019-04-08T08:26:41.323Z","4.0.0-4.0.0-alpha.0.0":"2021-03-16T20:45:14.664Z","4.0.0-alpha.0":"2021-03-16T20:49:50.170Z","4.0.0-alpha.6":"2021-04-06T08:40:48.480Z"},"homepage":"https://github.com/cesarenaldi/iniettore/tree/master/packages/iniettore#readme","keywords":["browser","clean-architecture","container","dependency-injection","di","inversion-of-control","ioc","node","solid","typescript"],"repository":{"type":"git","url":"git+https://github.com/cesarenaldi/iniettore.git","directory":"packages/iniettore"},"author":{"name":"Cesare Naldi","url":"https://github.com/cesarenaldi"},"license":"ISC","readmeFilename":"","bugs":{"url":"https://github.com/cesarenaldi/iniettore/issues"}}