{"_id":"di4js","_rev":"32-ec5c1ef38a0cf1f528aa7c41af8fc4ac","name":"di4js","description":"The di4js module is dependency injection implementation in JavaScript. Dependency injection is a software design pattern that allows the removal of hard-coded dependencies and makes it possible to change them.","dist-tags":{"latest":"1.1.5"},"versions":{"1.0.0":{"name":"di4js","description":"The di4js module is dependency injection implementation in JavaScript. Dependency injection is a software design pattern that allows the removal of hard-coded dependencies and makes it possible to change them.","version":"1.0.0","author":{"name":"Gediminas Backevicius","email":"gediminas.backevicius@gmail.com"},"bugs":{"url":"https://github.com/gedbac/di4js/issues"},"scripts":{"test":"grunt"},"keywords":["di","dependency","injection"],"repository":{"type":"git","url":"https://github.com/gedbac/di4js.git"},"main":"./lib/di4js.js","engines":{"node":"*"},"devDependencies":{"grunt":"~0.4.4","grunt-contrib-jshint":"~0.10.0","grunt-contrib-clean":"~0.5.0","grunt-contrib-concat":"~0.4.0","grunt-contrib-jasmine":"~0.6.3","grunt-contrib-watch":"~0.6.1","grunt-jasmine-node":"^0.2.1","grunt-contrib-uglify":"^0.4.0"},"homepage":"https://github.com/gedbac/di4js","_id":"di4js@1.0.0","dist":{"shasum":"b901a8024dd76f2adba35d4da45e0760477bc16b","tarball":"https://registry.npmjs.org/di4js/-/di4js-1.0.0.tgz","integrity":"sha512-QlKPQIZZS2R+dCTHOgjcXOWj37g8CAtdNg1oRulFtgcNEk7Wd6sOckYDJEBakKdzjabkubm9Yse3XdStkyDQVA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDRbbMnV4iuyE4cpHtn4NZWvJpwfLva1w2SrYnkvOkB5QIhAJIVEiysOcQgUIDw4f4aUPM3rxhXSXO2yEwnDxEGNr5b"}]},"_from":".","_npmVersion":"1.4.3","_npmUser":{"name":"gedbac","email":"gediminas.backevicius@gmail.com"},"maintainers":[{"name":"gedbac","email":"gediminas.backevicius@gmail.com"}],"directories":{}},"1.0.1":{"name":"di4js","description":"The di4js module is dependency injection implementation in JavaScript. Dependency injection is a software design pattern that allows the removal of hard-coded dependencies and makes it possible to change them.","version":"1.0.1","author":{"name":"Gediminas Backevicius","email":"gediminas.backevicius@gmail.com"},"bugs":{"url":"https://github.com/gedbac/di4js/issues"},"scripts":{"test":"grunt"},"keywords":["di","dependency","injection","IoC","javascript"],"repository":{"type":"git","url":"https://github.com/gedbac/di4js.git"},"main":"./lib/di4js.js","engines":{"node":">=0.8"},"devDependencies":{"grunt":"~0.4.4","grunt-contrib-jshint":"~0.10.0","grunt-contrib-clean":"~0.5.0","grunt-contrib-concat":"~0.4.0","grunt-contrib-jasmine":"~0.6.3","grunt-contrib-watch":"~0.6.1","grunt-jasmine-node":"^0.2.1","grunt-contrib-uglify":"^0.4.0"},"homepage":"https://github.com/gedbac/di4js","_id":"di4js@1.0.1","dist":{"shasum":"39e6b590a7a77aa43eaa9257b49fc4b173a42a5a","tarball":"https://registry.npmjs.org/di4js/-/di4js-1.0.1.tgz","integrity":"sha512-YdJAkM49ytygaeZUO/nhzaPHGsMH4Wbc4qWMTVW8kanraZTBJX2oatHlYsyOLYp4ftgFHTA+it2k4581W8TwmQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCE/WeJ6B1zC/Vur1p0+9KgtNKHV44MMCMUEKWfRAdnlQIhAOgrfY2++5e/PVVAhUzrtais4nFGAalvD1dBn/wYC9Mq"}]},"_from":".","_npmVersion":"1.4.3","_npmUser":{"name":"gedbac","email":"gediminas.backevicius@gmail.com"},"maintainers":[{"name":"gedbac","email":"gediminas.backevicius@gmail.com"}],"directories":{}},"1.0.3":{"name":"di4js","description":"The di4js module is dependency injection implementation in JavaScript. Dependency injection is a software design pattern that allows the removal of hard-coded dependencies and makes it possible to change them.","version":"1.0.3","author":{"name":"Gediminas Backevicius","email":"gediminas.backevicius@gmail.com"},"bugs":{"url":"https://github.com/gedbac/di4js/issues"},"scripts":{"test":"grunt"},"keywords":["di","dependency","injection","IoC","javascript"],"repository":{"type":"git","url":"https://github.com/gedbac/di4js.git"},"main":"./lib/di4js.js","engines":{"node":">=0.8"},"devDependencies":{"grunt":"~0.4.5","grunt-contrib-jshint":"~0.10.0","grunt-contrib-clean":"~0.5.0","grunt-contrib-concat":"~0.5.0","grunt-contrib-jasmine":"~0.7.0","grunt-contrib-watch":"~0.6.1","grunt-jasmine-node":"^0.2.1","grunt-contrib-uglify":"^0.5.0"},"homepage":"https://github.com/gedbac/di4js","_id":"di4js@1.0.3","dist":{"shasum":"46bae9603f02dc76f4e2a426a0452719ded26ce7","tarball":"https://registry.npmjs.org/di4js/-/di4js-1.0.3.tgz","integrity":"sha512-7bWyIxBcMcchuePaza4i4KKukrxKgxnWLrQHfSXuUangxaSlyk1+I4sJeXzRrpspTcn70HQpGdbB3+WC96w3Ow==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDjJZhuizmHeS9hzNpV+TSUWq73lL4ibpl3Y2wXQOiXkQIhAMSptbPx9dijybIc2qNTl40fq1fnWbHz/GDgAE9QykG8"}]},"_from":".","_npmVersion":"1.4.3","_npmUser":{"name":"gedbac","email":"gediminas.backevicius@gmail.com"},"maintainers":[{"name":"gedbac","email":"gediminas.backevicius@gmail.com"}],"directories":{}},"1.0.4":{"name":"di4js","description":"The di4js module is dependency injection implementation in JavaScript. Dependency injection is a software design pattern that allows the removal of hard-coded dependencies and makes it possible to change them.","version":"1.0.4","author":{"name":"Gediminas Backevicius","email":"gediminas.backevicius@gmail.com"},"bugs":{"url":"https://github.com/gedbac/di4js/issues"},"scripts":{"test":"grunt"},"keywords":["di","dependency","injection","IoC","javascript"],"repository":{"type":"git","url":"https://github.com/gedbac/di4js.git"},"main":"./lib/di4js.js","engines":{"node":">=0.8"},"devDependencies":{"grunt":"~0.4.5","grunt-contrib-jshint":"~0.10.0","grunt-contrib-clean":"~0.6.0","grunt-contrib-concat":"~0.5.0","grunt-contrib-jasmine":"~0.7.0","grunt-contrib-watch":"~0.6.1","grunt-jasmine-node":"^0.2.1","grunt-contrib-uglify":"^0.5.1"},"homepage":"https://github.com/gedbac/di4js","_id":"di4js@1.0.4","dist":{"shasum":"ec4b8e311ef665c57776cfc17950f6d1aa11f516","tarball":"https://registry.npmjs.org/di4js/-/di4js-1.0.4.tgz","integrity":"sha512-TH1ggnA32qon7k5sd+wnA0WvSOM53yGUkgZmu3vadKtyh219TTNzDnrj++/g3wf8XwWa1Nxn6o8hxcy6+Ku6TQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHyRR/taN0vAtaf7xYoetDZls3wY8ui0+A8DRFb5mnYMAiEAoQxA+I40DrYzDI4eva9u1YzadYl7t6/pB4NmU9zNI1Y="}]},"_from":".","_npmVersion":"1.4.3","_npmUser":{"name":"gedbac","email":"gediminas.backevicius@gmail.com"},"maintainers":[{"name":"gedbac","email":"gediminas.backevicius@gmail.com"}],"directories":{}},"1.0.5":{"name":"di4js","description":"The di4js module is dependency injection implementation in JavaScript. Dependency injection is a software design pattern that allows the removal of hard-coded dependencies and makes it possible to change them.","version":"1.0.5","author":{"name":"Gediminas Backevicius","email":"gediminas.backevicius@gmail.com"},"bugs":{"url":"https://github.com/gedbac/di4js/issues"},"scripts":{"test":"grunt"},"keywords":["di","dependency","injection","IoC","javascript"],"repository":{"type":"git","url":"https://github.com/gedbac/di4js.git"},"main":"./lib/di4js.js","engines":{"node":">=0.8"},"devDependencies":{"grunt":"~0.4.5","grunt-contrib-jshint":"~0.10.0","grunt-contrib-clean":"~0.6.0","grunt-contrib-concat":"~0.5.0","grunt-contrib-watch":"~0.6.1","grunt-contrib-jasmine":"~0.8.1","grunt-jasmine-node":"~0.2.1","grunt-contrib-uglify":"~0.6.0"},"homepage":"https://github.com/gedbac/di4js","_id":"di4js@1.0.5","dist":{"shasum":"c32414a0835190064f49540a2ee9602d2547c82a","tarball":"https://registry.npmjs.org/di4js/-/di4js-1.0.5.tgz","integrity":"sha512-uKxjBGtTeqkhiECtD9AEn+pxNmhDVHa7c89t0LG/IgRVWo7KCMJ06LfmMR6fzdMiGjyCp4GsxD1k4z6R8RqVWQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDd6g9Nt738+7Et3dC/svh1s+EBvHhCMhiOlbOyGMGJGwIhAMHBEZptD4ShScSKZ263UIKV+7JggXIzU9cEusa7QW1N"}]},"_from":".","_npmVersion":"1.4.3","_npmUser":{"name":"gedbac","email":"gediminas.backevicius@gmail.com"},"maintainers":[{"name":"gedbac","email":"gediminas.backevicius@gmail.com"}],"directories":{}},"1.0.6":{"name":"di4js","description":"The di4js module is dependency injection implementation in JavaScript. Dependency injection is a software design pattern that allows the removal of hard-coded dependencies and makes it possible to change them.","version":"1.0.6","author":{"name":"Gediminas Backevicius","email":"gediminas.backevicius@gmail.com"},"bugs":{"url":"https://github.com/gedbac/di4js/issues"},"scripts":{"test":"grunt"},"keywords":["di","dependency","injection","IoC","javascript"],"repository":{"type":"git","url":"https://github.com/gedbac/di4js.git"},"main":"./lib/di4js.js","engines":{"node":">=0.8"},"devDependencies":{"grunt":"~0.4.5","grunt-contrib-jshint":"~0.10.0","grunt-contrib-clean":"~0.6.0","grunt-contrib-concat":"~0.5.0","grunt-contrib-watch":"~0.6.1","grunt-contrib-jasmine":"~0.8.1","grunt-jasmine-node":"~0.2.1","grunt-contrib-uglify":"~0.6.0"},"homepage":"https://github.com/gedbac/di4js","_id":"di4js@1.0.6","dist":{"shasum":"85bdc7fedc22fb6b67720af075ede32180aae92c","tarball":"https://registry.npmjs.org/di4js/-/di4js-1.0.6.tgz","integrity":"sha512-6nYOmjJt4BlX50t4mjl3EBfQy9Ta+4xSdAofZPuCSB+MsJSI91N1XxeEp1an2SzQv0+jjAZQmV5be6VRfrPzag==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCCL0UBrFJp3+5juw7DA0m2v52NfVDVEdCosH+ntHrDwQIgU1LiEoQxIh8ynhDSyKUsytwx2jpk+40r0853XNxrLjA="}]},"_from":".","_npmVersion":"1.4.3","_npmUser":{"name":"gedbac","email":"gediminas.backevicius@gmail.com"},"maintainers":[{"name":"gedbac","email":"gediminas.backevicius@gmail.com"}],"directories":{}},"1.0.7":{"name":"di4js","description":"The di4js module is dependency injection implementation in JavaScript. Dependency injection is a software design pattern that allows the removal of hard-coded dependencies and makes it possible to change them.","version":"1.0.7","author":{"name":"Gediminas Backevicius","email":"gediminas.backevicius@gmail.com"},"bugs":{"url":"https://github.com/gedbac/di4js/issues"},"scripts":{"test":"grunt"},"keywords":["di","dependency","injection","IoC","javascript"],"repository":{"type":"git","url":"https://github.com/gedbac/di4js.git"},"main":"./lib/di4js.js","engines":{"node":">=0.8"},"devDependencies":{"grunt":"~0.4.5","grunt-contrib-jshint":"~0.10.0","grunt-contrib-clean":"~0.6.0","grunt-contrib-concat":"~0.5.0","grunt-contrib-watch":"~0.6.1","grunt-contrib-jasmine":"~0.8.1","grunt-jasmine-node":"~0.2.1","grunt-contrib-uglify":"~0.6.0"},"homepage":"https://github.com/gedbac/di4js","_id":"di4js@1.0.7","dist":{"shasum":"5f3794569b82666eb168127ee4cc3f68a527b202","tarball":"https://registry.npmjs.org/di4js/-/di4js-1.0.7.tgz","integrity":"sha512-isNhiUnVQ58eituNg1OX0O7zWxoKcxGWQV48+VlyVOjHoCCDYAYipAyiaAORKGHRXj4/xky8ZWtA9A3/gX00oA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDvT8wcLoF8sOZfNJ924Dod2JWDPhYBS045g9cH/mWQ1wIhAMaRreLETyPzB/iYB9zRKLZAtQwKsFWAtDC1zBqwXOLy"}]},"_from":".","_npmVersion":"1.4.3","_npmUser":{"name":"gedbac","email":"gediminas.backevicius@gmail.com"},"maintainers":[{"name":"gedbac","email":"gediminas.backevicius@gmail.com"}],"directories":{}},"1.1.0":{"name":"di4js","description":"The di4js module is dependency injection implementation in JavaScript. Dependency injection is a software design pattern that allows the removal of hard-coded dependencies and makes it possible to change them.","version":"1.1.0","author":{"name":"Gediminas Backevicius","email":"gediminas.backevicius@gmail.com"},"bugs":{"url":"https://github.com/gedbac/di4js/issues"},"scripts":{"test":"grunt"},"keywords":["di","dependency","injection","IoC","javascript"],"repository":{"type":"git","url":"https://github.com/gedbac/di4js.git"},"main":"./lib/di4js.js","engines":{"node":">=0.8"},"devDependencies":{"grunt":"~0.4.5","grunt-contrib-jshint":"~0.11.0","grunt-contrib-clean":"~0.6.0","grunt-contrib-concat":"~0.5.0","grunt-contrib-watch":"~0.6.1","grunt-contrib-jasmine":"~0.8.1","grunt-jasmine-node":"~0.2.1","grunt-contrib-uglify":"~0.7.0","grunt-karma":"^0.9.0","jasmine-core":"~2.1.2","karma":"^0.12.28","karma-chrome-launcher":"^0.1.5","karma-firefox-launcher":"^0.1.3","karma-ie-launcher":"^0.1.5","karma-safari-launcher":"^0.1.1","karma-jasmine":"^0.3.2","karma-jasmine-html-reporter":"^0.1.5"},"gitHead":"3ff6465879e06d96dd17f87091e28a5902741f2e","homepage":"https://github.com/gedbac/di4js","_id":"di4js@1.1.0","_shasum":"29dd3c17f8d0a6c472f3e7de30139be6eab63b8b","_from":".","_npmVersion":"1.4.28","_npmUser":{"name":"gedbac","email":"gediminas.backevicius@gmail.com"},"maintainers":[{"name":"gedbac","email":"gediminas.backevicius@gmail.com"}],"dist":{"shasum":"29dd3c17f8d0a6c472f3e7de30139be6eab63b8b","tarball":"https://registry.npmjs.org/di4js/-/di4js-1.1.0.tgz","integrity":"sha512-cZ+Ka1bxmKhFW/Uvu4KseoFImZfWlCi3grlMo5hkitvTB9OBnpQ/v0IWO4Do4EeXmUSXK/+BovJo3o0M0/5I/w==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIE4MJEJMHAFKXh3U0GHKOTBi8jn5vDP3s7fBPE5wrIPpAiAu8w8oLiXmxNR3CNTEFxrXX63cajD7p23jNkWbIYqe4w=="}]},"directories":{}},"1.1.1":{"name":"di4js","description":"The di4js module is dependency injection implementation in JavaScript. Dependency injection is a software design pattern that allows the removal of hard-coded dependencies and makes it possible to change them.","version":"1.1.1","author":{"name":"Gediminas Backevicius","email":"gediminas.backevicius@gmail.com"},"bugs":{"url":"https://github.com/gedbac/di4js/issues"},"scripts":{"test":"grunt"},"keywords":["di","dependency","injection","IoC","javascript"],"repository":{"type":"git","url":"https://github.com/gedbac/di4js.git"},"main":"./lib/di4js.js","engines":{"node":">=0.8"},"devDependencies":{"grunt":"~0.4.5","grunt-contrib-jshint":"~0.11.0","grunt-contrib-clean":"~0.6.0","grunt-contrib-concat":"~0.5.0","grunt-contrib-watch":"~0.6.1","grunt-contrib-jasmine":"~0.8.1","grunt-jasmine-node":"~0.2.1","grunt-contrib-uglify":"~0.8.0","grunt-karma":"^0.10.1","jasmine-core":"~2.2.0","karma":"^0.12.28","karma-chrome-launcher":"^0.1.5","karma-firefox-launcher":"^0.1.3","karma-ie-launcher":"^0.1.5","karma-safari-launcher":"^0.1.1","karma-jasmine":"^0.3.2","karma-jasmine-html-reporter":"^0.1.5"},"gitHead":"825d239a266772fa14113a4e061f2aeaeecc5661","homepage":"https://github.com/gedbac/di4js","_id":"di4js@1.1.1","_shasum":"2c24545131e1d4fca6fca2833134832dd9af6789","_from":".","_npmVersion":"1.4.28","_npmUser":{"name":"gedbac","email":"gediminas.backevicius@gmail.com"},"maintainers":[{"name":"gedbac","email":"gediminas.backevicius@gmail.com"}],"dist":{"shasum":"2c24545131e1d4fca6fca2833134832dd9af6789","tarball":"https://registry.npmjs.org/di4js/-/di4js-1.1.1.tgz","integrity":"sha512-cFf2eGXp27BfJYwUjTq4CLLPjCnDd4UrLBPKTzP2OZOX+211wZiVGspcV8UBDUx3eL0cZmnU0dVSI9wnAnaVnA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICOQktN33OPojs4w83H4jaB5p78zV2UZ3kPej1UmE8HWAiB/VSVjpJBxdW731jpkDQs7rb9UHH1ih3hl91Y/VN5UAA=="}]},"directories":{}},"1.1.2":{"name":"di4js","description":"The di4js module is dependency injection implementation in JavaScript. Dependency injection is a software design pattern that allows the removal of hard-coded dependencies and makes it possible to change them.","version":"1.1.2","author":{"name":"Gediminas Backevicius","email":"gediminas.backevicius@gmail.com"},"bugs":{"url":"https://github.com/gedbac/di4js/issues"},"scripts":{"test":"grunt"},"keywords":["di","dependency","injection","IoC","javascript"],"repository":{"type":"git","url":"https://github.com/gedbac/di4js.git"},"main":"./lib/di4js.js","engines":{"node":">=0.8"},"devDependencies":{"grunt":"~0.4.5","grunt-contrib-jshint":"~0.11.0","grunt-contrib-clean":"~0.6.0","grunt-contrib-concat":"~0.5.0","grunt-contrib-watch":"~0.6.1","grunt-contrib-jasmine":"~0.8.1","grunt-jasmine-node":"~0.2.1","grunt-contrib-uglify":"~0.8.0","grunt-karma":"^0.10.1","jasmine-core":"~2.2.0","karma":"^0.12.28","karma-chrome-launcher":"^0.1.5","karma-firefox-launcher":"^0.1.3","karma-ie-launcher":"^0.1.5","karma-safari-launcher":"^0.1.1","karma-jasmine":"^0.3.2","karma-jasmine-html-reporter":"^0.1.5"},"gitHead":"0e23743b7e09ddeaa4a8996b7f08f91f23de6c03","homepage":"https://github.com/gedbac/di4js","_id":"di4js@1.1.2","_shasum":"0db8a7215d8323ac77c079a8934f8125852529b5","_from":".","_npmVersion":"1.4.28","_npmUser":{"name":"gedbac","email":"gediminas.backevicius@gmail.com"},"maintainers":[{"name":"gedbac","email":"gediminas.backevicius@gmail.com"}],"dist":{"shasum":"0db8a7215d8323ac77c079a8934f8125852529b5","tarball":"https://registry.npmjs.org/di4js/-/di4js-1.1.2.tgz","integrity":"sha512-2Zpcx0wplUwpivPXjdAeLh2mTl2ZSogvhr71ZgibA1CX0HwLoDWhCmgiFxXuUwjsSXcS3itGRhBQX5Kc9oWZGQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC9rAwQ/XOgL2WmbELXVqEyBDbsGUI98w3NNNxsiDfZrAIgbdyuYVBVFDzmdeW46VPgK6j0ZzRRYEhtTqrokoq6QEw="}]},"directories":{}},"1.1.3":{"name":"di4js","description":"The di4js module is dependency injection implementation in JavaScript. Dependency injection is a software design pattern that allows the removal of hard-coded dependencies and makes it possible to change them.","version":"1.1.3","author":{"name":"Gediminas Backevicius","email":"gediminas.backevicius@gmail.com"},"bugs":{"url":"https://github.com/gedbac/di4js/issues"},"scripts":{"test":"grunt"},"keywords":["di","dependency","injection","IoC","javascript"],"repository":{"type":"git","url":"https://github.com/gedbac/di4js.git"},"main":"./lib/di4js.js","engines":{"node":">=0.8"},"devDependencies":{"grunt":"~0.4.5","grunt-contrib-jshint":"~0.11.0","grunt-contrib-clean":"~0.6.0","grunt-contrib-concat":"~0.5.0","grunt-contrib-watch":"~0.6.1","grunt-contrib-jasmine":"~0.8.2","grunt-jasmine-node":"~0.2.1","grunt-contrib-uglify":"~0.8.0","grunt-karma":"~0.10.1","jasmine-core":"~2.2.0","karma":"0.12.31","karma-chrome-launcher":"~0.1.7","karma-firefox-launcher":"~0.1.4","karma-ie-launcher":"~0.1.5","karma-safari-launcher":"~0.1.1","karma-jasmine":"~0.3.5","karma-jasmine-html-reporter":"~0.1.6"},"gitHead":"0df169fb868350cb13ace8a00369a0269771cae5","homepage":"https://github.com/gedbac/di4js","_id":"di4js@1.1.3","_shasum":"f580755fff322cfa5736116c41d32c1b0c6f50fa","_from":".","_npmVersion":"1.4.28","_npmUser":{"name":"gedbac","email":"gediminas.backevicius@gmail.com"},"maintainers":[{"name":"gedbac","email":"gediminas.backevicius@gmail.com"}],"dist":{"shasum":"f580755fff322cfa5736116c41d32c1b0c6f50fa","tarball":"https://registry.npmjs.org/di4js/-/di4js-1.1.3.tgz","integrity":"sha512-/6OagjSUKBOe/ansx9dCEza70YkCLl4M0IgMnYwu9rmMt36Kr0/ESskyJ9a3lkMZLrip93qpEJV81BmJEFvcHg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDqkDGsJPigLGc5n5/1t3isJi0zUizFyFW45T9Qy6wMEAIhAO1yTgVm976Odzttw6ZuRKcfMHvFzMK9hhkmhMCqDlhE"}]},"directories":{}},"1.1.4":{"name":"di4js","description":"The di4js module is dependency injection implementation in JavaScript. Dependency injection is a software design pattern that allows the removal of hard-coded dependencies and makes it possible to change them.","version":"1.1.4","author":{"name":"Gediminas Backevicius","email":"gediminas.backevicius@gmail.com"},"bugs":{"url":"https://github.com/gedbac/di4js/issues"},"scripts":{"test":"grunt"},"keywords":["di","dependency","injection","IoC","javascript"],"repository":{"type":"git","url":"git+https://github.com/gedbac/di4js.git"},"main":"./lib/di4js.js","engines":{"node":">=0.8"},"devDependencies":{"grunt":"~0.4.5","grunt-contrib-jshint":"~0.11.0","grunt-contrib-clean":"~0.6.0","grunt-contrib-concat":"~0.5.0","grunt-contrib-watch":"~0.6.1","grunt-contrib-jasmine":"~0.8.2","grunt-jasmine-node":"~0.2.1","grunt-contrib-uglify":"~0.8.0","grunt-karma":"~0.10.1","jasmine-core":"~2.2.0","karma":"0.12.31","karma-chrome-launcher":"~0.1.7","karma-firefox-launcher":"~0.1.4","karma-ie-launcher":"~0.1.5","karma-safari-launcher":"~0.1.1","karma-jasmine":"~0.3.5","karma-jasmine-html-reporter":"~0.1.6"},"gitHead":"7b2aec326ca52da8771976d41d7ab716736bea9c","homepage":"https://github.com/gedbac/di4js#readme","_id":"di4js@1.1.4","_nodeVersion":"12.16.2","_npmVersion":"6.14.4","dist":{"integrity":"sha512-AcTZ8YMj4nacY/WKJHH7fa+m84Hc8tO7AncBBmWMWApXP8KJcPtyruQChDrz0WFRrW3CYaVdiC260xOeQEmZlA==","shasum":"f77cb72729043b10b2a865897c2e965b5057b00b","tarball":"https://registry.npmjs.org/di4js/-/di4js-1.1.4.tgz","fileCount":28,"unpackedSize":247545,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe2iZ5CRA9TVsSAnZWagAAlhYP/A6aqljVK4NqL7LZUrnp\nZBk/bBqO3m+JUFUVQagXWt/LaYeJrLz4fM4tfTiyS3MMtEAbviswuS1XyopA\nHOU5XHl/etHDC8Wb2ulrcqS6tYBNqU9csvPe8vBo3ZiQ/COD5QXjg8zQ7NWQ\nXkDoNL5gtf0PcizNSj7YLNOVd5pTpwst3zqzmHPvo7/GxZ9qFM9sQST4n3lS\nWK2rZOKdWmfyC8BxDNC+cVIRvxqO4swWHhNJkZ7KzlB3O5sHvxsVipybgwBo\nkv4RJbHkLc9uK/n62Vv+7i6eNgiyVKKk6ed5oTUAmrgA7ba+S4XoqJWz5P6X\nHzxn05ezjabv9ho1si6SxxEKOPPTTCBKi4cvDdHW8oWklkbQP4ZbYXekB4OF\ng64oq2t+wXAZxOYDorTxY+rug12aSe0YYZSUSekXJzt13LKsXUC7HwTBlx2t\n+I/xWaMKdeL6vjA+ixC+rbwIkepHdN2L72n9q+HvR9/RYlJ+VlxZGzfZtSfu\nc/e3vUFo/hBqCX0CO7ACIE7HPy9n7iCCnVoMR8nx8tT/dY0f/nkLo0yjq0yt\nZnNTb7CshzKr5XeM24QPSVBa/RzAAaqm/lSAG4xn6qvzSAsiD7OwVhJv2BWI\ng3/sgWaXfzLF0/oNS7EYwJ7Tf94u1//tSYbvbDrWnHKGmg0VjPD4ROtIN05E\nLmM2\r\n=zQ1S\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCFYS9jhS/kt6SG+/E6h3pr1rbYqVmvtcV8dHxqYSb8ugIgR9U+165XyKOXJVlu5boOu8lnXgYCX2/e4DHuTxTdyHU="}]},"maintainers":[{"name":"gedbac","email":"gediminas.backevicius@gmail.com"}],"_npmUser":{"name":"gedbac","email":"gediminas.backevicius@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/di4js_1.1.4_1591355001372_0.45704940567341956"},"_hasShrinkwrap":false},"1.1.5":{"name":"di4js","description":"The di4js module is dependency injection implementation in JavaScript. Dependency injection is a software design pattern that allows the removal of hard-coded dependencies and makes it possible to change them.","version":"1.1.5","author":{"name":"Gediminas Backevicius","email":"gediminas.backevicius@gmail.com"},"bugs":{"url":"https://github.com/gedbac/di4js/issues"},"scripts":{"test":"grunt"},"keywords":["di","dependency","injection","IoC","javascript"],"repository":{"type":"git","url":"git+https://github.com/gedbac/di4js.git"},"main":"./lib/di4js.js","engines":{"node":">=0.8"},"devDependencies":{"grunt":"~0.4.5","grunt-contrib-jshint":"~0.11.0","grunt-contrib-clean":"~0.6.0","grunt-contrib-concat":"~0.5.0","grunt-contrib-watch":"~0.6.1","grunt-contrib-jasmine":"~0.8.2","grunt-jasmine-node":"~0.2.1","grunt-contrib-uglify":"~0.8.0","grunt-karma":"~0.10.1","jasmine-core":"~2.2.0","karma":"0.12.31","karma-chrome-launcher":"~0.1.7","karma-firefox-launcher":"~0.1.4","karma-ie-launcher":"~0.1.5","karma-safari-launcher":"~0.1.1","karma-jasmine":"~0.3.5","karma-jasmine-html-reporter":"~0.1.6"},"gitHead":"a1071cef2f0250fed05e50e1a29ac40f779c7321","homepage":"https://github.com/gedbac/di4js#readme","_id":"di4js@1.1.5","_nodeVersion":"12.16.2","_npmVersion":"6.14.4","dist":{"integrity":"sha512-nojDYzkumoiXZia0JA/nj8olHIUtWRCZVOcwE+6NkTQLteltRUZEA1ZWjn6s4nHcX4Y+V8y8UsbjWa+m7D7zAg==","shasum":"9ffc5d2f969aafeec9c6666e35472fd92d4fc1db","tarball":"https://registry.npmjs.org/di4js/-/di4js-1.1.5.tgz","fileCount":28,"unpackedSize":247608,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe4xYpCRA9TVsSAnZWagAAmJcP/2ME3yUZBFiFn0EHJpb2\nSZIanASuubun1SM0oouPQgWgfD+z7Pghfz9yNA4ZgHhLHyKgQNuAHLF1gChQ\na+FbJ9U53c0ADIioRQHypNFLuUIYCSYhfMr63FeVDO01xj7Ra6WyE3RAQHty\nu9ppi6dB0v79asLIZ85o98sS4vIqvg5zIlEtU+Z4HiqC7mO6FTbG583vN0GV\nAGWDelQk3I1IHf4GezgqkGCh+2pHvtylFkV++4aia7kmmkgS1VZJNRoXLKxr\nz/V3luz/wbYPSBcWvLYsgdKHwckoWkQJvPMObOeUi9AKi5ircfClO9jw3inr\nOlAxHuQ/199tuSJpvLzkLCAKda2FgIoOgfvvqX/ugvBU8TeDPePY8y81K0Gy\nYOMDdkk74tflYCqCPU7i4svzFL5rv7GAOgA7SilqpIS5uTWOk5Mi6Abg3MIT\n9VpxiqD6jzWuvf2mEayZizEp2rqAi2xQmb5/nBYTwJYiw5fAew85ptHweuHR\n2y2ir7BNoM0h3vNmapNvaGhx2Vq8wbAD3XeKXTu0KVL2+oa1HAgqd/2TmHzI\n2Q9+pvVLB7x7eyl5KNlZeMWxYT+hR5uZrRokUcHjIus2nsaoS3m7bIWd6Lok\nNXW1olyziHEu7h+wlRdA4TjBcGQBgBH5beycvPVENJmaJPMPwmWwyXteAQCV\nzoX8\r\n=zFb+\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDVOY6Q/w0ODug1kmvg/693SV4rCXyixQYyTwBp6pZOdQIhAIz+RLsGp6i90ITOulUVUh9azt0zKBsSUn1gQ2RmIzo7"}]},"maintainers":[{"name":"gedbac","email":"gediminas.backevicius@gmail.com"}],"_npmUser":{"name":"gedbac","email":"gediminas.backevicius@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/di4js_1.1.5_1591940649285_0.7514629309595129"},"_hasShrinkwrap":false}},"readme":"# di4js\r\n\r\n[![Built with Grunt](https://cdn.gruntjs.com/builtwith.png)](http://gruntjs.com/)\r\n[![devDependency Status](https://david-dm.org/gedbac/di4js/dev-status.svg)](https://david-dm.org/gedbac/di4js#info=devDependencies)\r\n[![Build Status](https://secure.travis-ci.org/gedbac/di4js.svg)](http://travis-ci.org/gedbac/di4js)\r\n\r\nThe __di4js__ module is dependency injection implementation in JavaScript.\r\nDependency injection is a software design pattern that allows the removal of\r\nhard-coded dependencies and makes it possible to change them. __di4js__  is free\r\nsoftware distributed under the terms of the MIT License (MIT) and can be used\r\nwith __web browsers__ or with __node.js__.\r\n\r\n    var Car = function (engine, year) {\r\n      this.engine = engine;\r\n\t  this.year = year;\r\n    };\r\n\r\n    Car.prototype.start = function () {\r\n      this.engine.start();\r\n    };\r\n\r\n    var DieselEngine = function () {\r\n      this.hp = 0;\r\n    };\r\n\r\n    DieselEngine.prototype.start = function () {\r\n      console.log(\"Diesel engine with \" + this.hp + \" hp has been started...\");\r\n    };\r\n\r\n    di\r\n      .autowired(false)\r\n      .register('dieselEngine')\r\n        .as(DieselEngine)\r\n        .withProperties()\r\n          .prop('hp').val(42);\r\n      .register('car')\r\n        .as(Car)\r\n        .withConstructor()\r\n          .param().ref('dieselEngine')\r\n\t\t  .param().val(1976);\r\n\r\n    var car = di.resolve('car');\r\n\r\n    car.start(); // Diesel engine with 42 hp has been started...\r\n\r\n## Overview\r\n\r\n* [Supported platforms](#supported-platforms)\r\n* [Installation](#installation)\r\n\t* [Node.js](#nodejs)\r\n\t* [Web Browser](#web-browser)\r\n\t\t* [NuGet](#nuget)\r\n* [API](#api)\r\n\t* [autowired(value)](#diautowiredvalue)\r\n    * [isAutowired](#diisautowired)\r\n\t* [register(name)](#diregistername)\r\n\t\t* [as(type)](#diastype)\r\n\t\t* [instance(instance)](#diinstanceinstance)\r\n\t\t* [asSingleton()](#diassingleton)\r\n\t\t* [withConstructor()](#diwithconstructor)\r\n\t\t\t* [param(name)](#diparamname)\r\n\t\t* [withProperties()](#diwithproperties)\r\n\t\t\t* [prop(name)](#dipropname)\r\n            * [func(name)](#difuncname)\r\n\t\t* [val(instance)](#divalinstance)\r\n\t\t* [ref(name)](#direfname)\r\n\t\t* [setFactory(factory)](#disetfactoryfactory)\r\n\t* [resolve(name)](#diresolvename)\r\n\t* [create()](#dicreate)\r\n\t* [inject(func)](#diinjectfunc)\r\n\t* [contains(name)](#dicontainsname)\r\n\t* [setDefaultFactory(factory)](#disetdefaultfactoryfactory)\r\n\t* [setNameTransformer(transformer)](#disetnametransformertransformer)\r\n    * [getDefaultDependencyResolver()](#digetdefaultdependencyresolver)\r\n    * [setDefaultDependencyResolver(value)](#disetdefaultdependencyresolvervalue)\r\n    * [debug](#didebug)\r\n\t* [dispose()](#didispose)\r\n\t* [version](#diversion)\r\n* [License](#license)\r\n* [Authors](#authors)\r\n\r\n## Supported platforms\r\n\r\n__di4js__ runs on all the following environments:\r\n\r\n__Web browsers__\r\n\r\n* [Chrome](http://www.google.com/chrome/ \"Chrome\")\r\n* [Firefox](http://www.getfirefox.com/ \"Firefox\")\r\n* [Internet Explorer (IE9+)](http://www.microsoft.com/windows/internet-explorer/default.aspx \"Internet Explorer\")\r\n\r\n__Server-side platforms__\r\n\r\n* [Node.js](http://nodejs.org/ \"Node.js\")\r\n\r\n## Installation\r\n\r\n### Node.js\r\n\r\nTo install __di4js__ module for Node.js, this command should be used:\r\n\r\n\tnpm install di4js\r\n\r\nAlso __di4js__ module's loading statement should be added to main module:\r\n\r\n\t'use strict';\r\n\r\n\tvar di = require('di4js');\r\n\r\n\t// Your code goes here...\r\n\r\n### Web Browser\r\n\r\nTheare are few options to install __di4js__ to the web  browser. Module can be downloaded or can be installed using __NuGet__ package manager.\r\n\r\n\t<!DOCTYPE HTML>\r\n\t<html>\r\n\t<body>\r\n\t  <!-- Your code goes here...-->\r\n\t  <script src=\"./scripts/di4js.min.js\"></script>\r\n\t</body>\r\n\t</html>\r\n\r\n#### AMD\r\n\r\ndi4js is compatible with asynchronous module definition (AMD) and it can be loaded as ordinal module.\r\n\r\n    define(['di4js'], function (di) {\r\n\r\n    });\r\n\r\n### NuGet\r\n\r\nIn Visual Studio __di4js__ module can be installed using NuGet extension. To install __di4js__, run the following command in the package manager console.\r\n\r\n\tInstall-Package di4js\r\n\r\n## API\r\n\r\n### di.autowired(value)\r\n\r\nIf autowired is enabled for dependency resolver, all type's or instance's dependencies are resolved automatically. By default autowired is disabled for dependency resolver. Parameter *value* is optional and has to be a boolean.\r\n\r\n\tdi\r\n\t  .autowired()\r\n      .register('engine')\r\n        .as(DieselEngine)\r\n\t\t.withProperties()\r\n      \t  .prop('hp').val(42);\r\n      .register('car')\r\n        .as(Car);\r\n\r\n    di.resolve('car'); // { engine: { hp: 42 } }\r\n\r\n### di.isAutowired\r\n\r\nAllows to check if autowired is enabled.\r\n\r\n    di\r\n      .autowired();\r\n\r\n    di.isAutowired; // true\r\n\r\n### di.register(name)\r\n\r\nDefines registration's name. Parameter *name* is required and has to be a string.\r\n\r\n\tdi.register('dieselEngine');\r\n\r\nMultiple registration's can be defined for a single name. A list of instances will be returned while resolving such registration by name.\r\n\r\n\tdi\r\n\t\t.register('engine')\r\n\t\t\t.instance(new DieselEngine())\r\n\t\t.register('engine')\r\n\t\t\t.instance(new PetrolEngine());\r\n\r\n    var engines = di.resolve('engine'); // []\r\n\r\n### di.as(type)\r\n\r\nMaps a name with the given type. Parameter *type* is required and has to be a function.\r\n\r\n\tdi.register('dieselEngine').as(DieselEngine);\r\n\r\n### di.instance(instance)\r\n\r\nMaps registration's name with the given instance. Parameter *instance* is required and can be any type.\r\n\r\n\tvar engine = new DieselEngine();\r\n\r\n\tdi.register('dieselEngine').instance(engine);\r\n\r\nVarious types can be used:\r\n\r\n\tdi.register('number').instance(0);\r\n\tdi.register('flag').instance(false);\r\n\tdi.register('str').instance('Hello world!');\r\n\tdi.register('date').instance(new Date());\r\n\tdi.register('func').instance(function () { });\r\n    di.register('obj').instance({});\r\n\r\n### di.asSingleton()\r\n\r\nMarks type as singleton. If type is marked as singleton, the same instance always will be returned.\r\n\r\n\tdi\r\n\t  .register('dieselEngine')\r\n\t\t.as(DieselEngine)\r\n        .asSingleton();\r\n\r\n### di.withConstructor()\r\n\r\nAllows to define constructor's parameters.\r\n\r\n### di.param(name)\r\n\r\nDefines constructor's parameter. Parameter *name* is optional and has to be a string or integer. It can represent parameter's name or index.\r\n\r\nParameter can be defined without name. Index will be assigned automatically.\r\n\r\n    di\r\n      .register('car')\r\n        .as(Car)\r\n        .withConstructor()\r\n          .param().val(new DieselEngine())\r\n          .param().val(1976);\r\n\r\n    di.resolve('car'); // { engine: { hp: 0 }, year: 1976 }\r\n\r\nParameter can be defined by name or index.\r\n\r\n    di\r\n      .register('car')\r\n        .as(Car)\r\n        .withConstructor()\r\n          .param('engine').val(new DieselEngine())\r\n          .param(1).val(1976);\r\n\r\n    di.resolve('car'); // { engine: { hp: 0 }, year: 1976 }\r\n\r\n### di.withProperties()\r\n\r\nAllows to define type's properties.\r\n\r\n### di.prop(name)\r\n\r\nDefines property. Parameter *name* is required and has to be a string.\r\n\r\n\tdi\r\n\t  .register('dieselEngine')\r\n\t    .as(DieselEngine)\r\n\t\t.withProperties()\r\n\t\t  .prop('hp').val(140);\r\n\r\n### di.func(name)\r\n\r\nDefines function which has to be invoked while resoling type. Parameter *name* is required and has to be a string.\r\n\r\n    di\r\n      .register('car')\r\n        .as(Car)\r\n          .withProperties()\r\n            .func('setEngine')\r\n              .param().ref('dieselEngine');\r\n\r\n### di.val(instance)\r\n\r\nAllows to define property's or constructor paramter's value. Parameter *instance* is required and can be any type.\r\n\r\nConstructor parameter's value is defined.\r\n\r\n\tdi\r\n\t  .register('dieselEngine')\r\n\t    .as(DieselEngine)\r\n\t\t.withConstructor()\r\n\t\t  .param().val(140);\r\n\r\nProperty's value is defined.\r\n\r\n\tdi\r\n\t  .register('dieselEngine')\r\n\t    .as(DieselEngine)\r\n\t\t.withProperties()\r\n\t\t  .prop('hp').val(140);\r\n\r\nFunction paramter's value is defined.\r\n\r\n    di\r\n      .register('car')\r\n        .as(Car)\r\n          .withProperties()\r\n            .func('setEngine')\r\n              .param().val(new DieselEngine());\r\n\r\n### di.ref(name)\r\n\r\nMaps property or constructor's parameter with registered type in dependency resolver.\r\n\r\nConstructor's parameter can be resolved while instantiating a type.\r\n\r\n\tdi\r\n\t  .register('car')\r\n\t\t.withConstructor()\r\n          .param().ref('dieselEngine');\r\n\r\nProperty can be resolved while instantiating a type.\r\n\r\n\tdi\r\n\t  .register('car')\r\n\t\t.withProperties()\r\n          .prop('engine').ref('dieselEngine');\r\n\r\nFunction's paramter can be resolved while resolving a type.\r\n\r\n    di\r\n      .register('car')\r\n        .as(Car)\r\n          .withProperties()\r\n            .func('setEngine')\r\n              .param().ref('dieselEngine');\r\n\r\n### di.setFactory(factory)\r\n\r\nReplaces default factory which is used while instantiating a new instance. Parameter *factory* is required and it accepts function or object.\r\n\r\nA function can be used:\r\n\r\n\tdi\r\n\t  .register('dieselEngine')\r\n\t    .as(DieselEngine)\r\n\t    .setFactory(function (options) {\r\n\t      return new options.type();\r\n\t    });\r\n\r\nAn object which has a method *create* can be used:\r\n\r\n\tvar CustomFactory = {\r\n\t  create: function (options) {\r\n        return new options.type();\r\n\t  }\r\n\t};\r\n\r\n    di\r\n\t  .register('dieselEngine')\r\n\t    .as(DieselEngine)\r\n\t    .setFactory(CustomFactory);\r\n\r\n### di.resolve(name)\r\n\r\nResolves type or instance by name. Parameter *name* is required and has to be a string.\r\n\r\n\tdi.register('dieselEngine').as(DieselEngine);\r\n\r\n\tvar engine = di.resolve('dieselEngine');\r\n\r\n### di.create()\r\n\r\nAllows to create child container. It usefull when you want to have more when one container or container per specific scope, or to override parent's container do not making inpact on it.\r\n\r\n\tvar child = di.create();\r\n\tchild\r\n\t  .register('dieselEngine')\r\n        .as(DieselEngine);\r\n\r\n\tdi.contains('dieselEngine'); // false\r\n\tchild.contains('dieselEngine'); // true\r\n\r\n### di.inject(func)\r\n\r\nAllows to to inject dependencies to the function or to the instantiated object.\r\n\r\nDependency are injected automatically by parameter's name to the function.\r\n\r\n\tdi\r\n\t  .register('dieselEngine')\r\n      \t.as(DieselEngine);\r\n\r\n\tdi.inject(function (dieselEngine) {\r\n\t  engine.start(); // Diesel engine with 0 hp has been started...\r\n\t});\r\n\r\nAn array notation can be used for injecting dependencies to the function.\r\n\r\n\tdi\r\n\t  .register('dieselEngine')\r\n      \t.as(DieselEngine);\r\n\r\n\tdi.inject(['dieselEngine', function (dieselEngine) {\r\n\t  engine.start(); // Diesel engine with 0 hp has been started...\r\n\t}]);\r\n\r\nProperties of the object are set automatically by properties' names.\r\n\r\n    di\r\n      .register('engine')\r\n        .as(DieselEngine);\r\n\r\n    var car = new Car();\r\n    di.inject(car); // { engine: { hp: 0 }, year: null }\r\n\r\nRegistration's name, which has to be applied while injecting dependencies to the function, can be passed to *inject* method.\r\n\r\n    di\r\n      .register('dieselEngine')\r\n        .as(DieselEngine)\r\n      .register('car')\r\n        .as(Car)\r\n          .withConstructor()\r\n            .param().ref('dieselEngine')\r\n            .param().val(2000);\r\n\r\n    di.inject(function (engine, year) {\r\n      engine.start(); // Diesel engine with 0 hp has been started...\r\n    }, 'car');\r\n\r\nRegistration's name, which has to be applied while injecting dependencies to the object, can be passed to *inject* method.\r\n\r\n    di\r\n      .register('dieselEngine')\r\n        .as(DieselEngine)\r\n      .register('car')\r\n        .as(Car)\r\n          .withProperties()\r\n            .prop('engine').ref('dieselEngine');\r\n\r\n    var car = new Car();\r\n    di.inject(car, 'car');\r\n\r\n### di.contains(name)\r\n\r\nAllows to check if type or instance is registered in dependency resolver with given name. Parameter *name* is required and has to be a string.\r\n\r\n\tdi.resolve('dieselEngine'); // false\r\n\r\n### di.setDefaultFactory(factory)\r\n\r\nReplaces default factory of dependecy resolver. Factory is used to create instance from type's definition. Parameter *factory* is required and it accepts function or object.\r\n\r\nA function can be used.\r\n\r\n\tdi\r\n\t  .setDefaultFactory(function (options) {\r\n\t    return new options.type();\r\n\t  })\r\n\t  .register('dieselEngine')\r\n\t    .as(DieselEngine);\r\n\r\nAn object which has method *created* can be used.\r\n\r\n\tvar customFactory = {\r\n\t  create: function options() {\r\n\t    return new options.type();\r\n\t  }\r\n\t};\r\n\r\n\tdi\r\n\t  .setDefaultFactory(customFactory)\r\n\t  .register('dieselEngine')\r\n\t    .as(DieselEngine);\r\n\r\n### di.setNameTransformer(transformer)\r\n\r\nIt is used to transform property's or constructor's parameter's name while resolving type's dependencies. Parameter *transformer* is required and it accepts function or object.\r\n\r\nA function can be used.\r\n\r\n\tdi\r\n\t  .autowired(true)\r\n\t  .setNameTransformer(function (name) {\r\n\t    return name.replace(/([A-Z])/g, function (str) {\r\n\t      return '-' + str.toLowerCase();\r\n\t    });\r\n\t  })\r\n\t  .register('diesel-engine')\r\n\t    .as(DieselEngine)\r\n\t  .register('tractor')\r\n\t    .as(Tractor);\r\n\r\n\tdi.resolve('tractor'); // { dieselEngine: { hp: 0 } }\r\n\r\nAn object which has method *transform* can be used.\r\n\r\n\tvar customNameTransformer = {\r\n\t  transform: function (name) {\r\n\t    return name.replace(/([A-Z])/g, function (str) {\r\n\t      return '-' + str.toLowerCase();\r\n\t    });\r\n\t  }\r\n\t};\r\n\r\n\tdi\r\n\t  .autowired(true)\r\n\t  .setNameTransformer(customNameTransformer)\r\n\t  .register('diesel-engine')\r\n\t    .as(DieselEngine)\r\n\t  .register('tractor')\r\n\t    .as(Tractor);\r\n\r\n\tdi.resolve('tractor'); { dieselEngine: { hp: 0 } }\r\n\r\n### di.getDefaultDependencyResolver()\r\n\r\nReturns default dependency resolver.\r\n\r\n### di.setDefaultDependencyResolver(value)\r\n\r\nAllows to set default dependency resolver.\r\n\r\n### di.debug\r\n\r\nThis flag allows to print an additional information to the output.\r\n\r\n    di.debug = true;\r\n\r\n### di.dispose()\r\n\r\nSets dependency resolver to initial state. All registered types and instances are removed from it.\r\n\r\n\tdi\r\n\t  .register('dieselEngine')\r\n\t    .instance(new DieselEngine());\r\n\r\n\tdi.dispose();\r\n\r\n\tdi.resolve('dieselEngine'); // throws an exception\r\n\r\n### di.version\r\n\r\nReturns module's version.\r\n\r\n\tdi.version; // 1.0.0\r\n\r\n## License\r\n\r\nThis software is distributed under the terms of the MIT License (MIT).\r\n\r\n## Authors\r\n\r\nGediminas Backevcius / [@gedbac](https://twitter.com/gedbac)","maintainers":[{"name":"gedbac","email":"gediminas.backevicius@gmail.com"}],"time":{"modified":"2022-06-15T03:07:52.654Z","created":"2014-04-14T10:25:19.485Z","1.0.0":"2014-04-14T10:25:19.485Z","1.0.1":"2014-04-22T06:44:32.317Z","1.0.3":"2014-07-28T08:26:35.270Z","1.0.4":"2014-08-05T05:43:09.469Z","1.0.5":"2014-10-28T10:06:46.475Z","1.0.6":"2014-10-31T07:52:18.610Z","1.0.7":"2014-12-01T13:56:45.290Z","1.1.0":"2015-01-28T21:02:04.603Z","1.1.1":"2015-03-03T13:05:44.617Z","1.1.2":"2015-03-03T14:13:59.338Z","1.1.3":"2015-03-04T12:31:14.339Z","1.1.4":"2020-06-05T11:03:21.519Z","1.1.5":"2020-06-12T05:44:09.424Z"},"homepage":"https://github.com/gedbac/di4js#readme","keywords":["di","dependency","injection","IoC","javascript"],"repository":{"type":"git","url":"git+https://github.com/gedbac/di4js.git"},"author":{"name":"Gediminas Backevicius","email":"gediminas.backevicius@gmail.com"},"bugs":{"url":"https://github.com/gedbac/di4js/issues"},"readmeFilename":"README.md","users":{"gedbac":true,"ronin161":true}}