{"_id":"@abdokouta/react-di","_rev":"11-7739e1619ff0a27be5be02ac413cd050","name":"@abdokouta/react-di","dist-tags":{"latest":"2.1.3"},"versions":{"1.0.0":{"name":"@abdokouta/react-di","version":"1.0.0","keywords":["react","dependency-injection","di","ioc","container","inversify","inversiland","modules","decorators","nestjs-style"],"author":{"name":"Pixielity"},"license":"MIT","_id":"@abdokouta/react-di@1.0.0","maintainers":[{"name":"abdokouta","email":"akouta66@gmail.com"}],"homepage":"https://github.com/pixielity-inc/react-di#readme","bugs":{"url":"https://github.com/pixielity-inc/react-di/issues"},"dist":{"shasum":"afbf5170ef753f6da0235a03cde45043b6404d44","tarball":"https://registry.npmjs.org/@abdokouta/react-di/-/react-di-1.0.0.tgz","fileCount":10,"integrity":"sha512-9uiugxujdXbr0N8hz2CqDhkiVcRTjwlUrsecPOzxH6S24ey/ZMlG2MTNbNDySyRngb4tlhYTRhc8L0bPKSzFzw==","signatures":[{"sig":"MEUCIEBT51t9XpzopRQqOc5HmAIaYELAZpcJJQT1sveHjGX4AiEAtKKLr8nDpAokVb97lpwJptCnn/7ehQ51r4yMbYquABE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":150340},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","gitHead":"646308978e9e37ccf6ed6bd95d1cf1e66f7705fc","scripts":{"dev":"tsup --watch","test":"vitest --run","build":"tsup","format":"prettier --write \"src/**/*.{ts,tsx,js,jsx,json}\"","test:ui":"vitest --ui","test:watch":"vitest","test:coverage":"vitest --run --coverage"},"_npmUser":{"name":"abdokouta","email":"akouta66@gmail.com"},"repository":{"url":"git+https://github.com/pixielity-inc/react-di.git","type":"git"},"_npmVersion":"10.9.4","description":"Dependency injection for React - NestJS-style modules powered by Inversiland","directories":{},"_nodeVersion":"22.22.1","dependencies":{"inversiland":"^0.6.2","reflect-metadata":"^0.2.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","jsdom":"^29.0.1","react":"^19.2.4","vitest":"^4.1.2","prettier":"^3.8.1","@vitest/ui":"^4.1.2","typescript":"^6.0.2","@types/node":"^25.5.0","@types/react":"^19.2.14","@nesvel/tsup-config":"^1.0.3","@nesvel/eslint-config":"^1.0.5","@testing-library/react":"^16.3.2","@nesvel/prettier-config":"^1.0.3","@nesvel/typescript-config":"^1.0.4","@testing-library/jest-dom":"^6.9.1"},"peerDependencies":{"react":"^18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/react-di_1.0.0_1774914063932_0.47581356407212083","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"1.0.1":{"name":"@abdokouta/react-di","version":"1.0.1","keywords":["react","dependency-injection","di","ioc","container","inversify","inversiland","modules","decorators","nestjs-style"],"author":{"name":"Pixielity"},"license":"MIT","_id":"@abdokouta/react-di@1.0.1","maintainers":[{"name":"abdokouta","email":"akouta66@gmail.com"}],"homepage":"https://github.com/pixielity-inc/react-di#readme","bugs":{"url":"https://github.com/pixielity-inc/react-di/issues"},"dist":{"shasum":"00fbc3b9658c425136807f3e2917e3b110f4a35c","tarball":"https://registry.npmjs.org/@abdokouta/react-di/-/react-di-1.0.1.tgz","fileCount":10,"integrity":"sha512-lywSO6OR0g9pWy9fVYGqAAmXK/t7AmjVVE7RD0jlvo3IrxE3fCFe9X50tD+wOYmTanQnvQGVV5vBWMPP6Z4Ibg==","signatures":[{"sig":"MEUCIQC/ZnWty2j737clOSiSub9mV/TVN99wPXDbwH7cDm/IvAIgdIofRzBtLUu24IxRClyB5PbqnZwZqmLs5CzNa+Fwe2Q=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":149224},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","gitHead":"005e7e86c9da9c7f290f9a6fdf36776b24a6b6bf","scripts":{"dev":"tsup --watch","test":"vitest --run","build":"tsup","format":"prettier --write \"src/**/*.{ts,tsx,js,jsx,json}\"","test:ui":"vitest --ui","test:watch":"vitest","test:coverage":"vitest --run --coverage"},"_npmUser":{"name":"abdokouta","email":"akouta66@gmail.com"},"repository":{"url":"git+https://github.com/pixielity-inc/react-di.git","type":"git"},"_npmVersion":"10.9.4","description":"Dependency injection for React - NestJS-style modules powered by Inversiland","directories":{},"_nodeVersion":"22.22.1","dependencies":{"inversiland":"^0.6.2","reflect-metadata":"^0.2.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","jsdom":"^29.0.1","react":"^19.2.4","vitest":"^4.1.2","prettier":"^3.8.1","@vitest/ui":"^4.1.2","typescript":"^6.0.2","@types/node":"^25.5.0","@types/react":"^19.2.14","@nesvel/tsup-config":"^1.0.3","@nesvel/eslint-config":"^1.0.5","@testing-library/react":"^16.3.2","@nesvel/prettier-config":"^1.0.3","@nesvel/typescript-config":"^1.0.4","@testing-library/jest-dom":"^6.9.1"},"peerDependencies":{"react":"^18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/react-di_1.0.1_1774914186208_0.8047584174705964","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"1.0.3":{"name":"@abdokouta/react-di","version":"1.0.3","keywords":["react","dependency-injection","di","ioc","container","inversify","inversiland","modules","decorators","nestjs-style"],"author":{"name":"Pixielity"},"license":"MIT","_id":"@abdokouta/react-di@1.0.3","maintainers":[{"name":"abdokouta","email":"akouta66@gmail.com"}],"homepage":"https://github.com/pixielity-inc/react-di#readme","bugs":{"url":"https://github.com/pixielity-inc/react-di/issues"},"dist":{"shasum":"570d319fa19c6a6dd8b11e005413810ef602a407","tarball":"https://registry.npmjs.org/@abdokouta/react-di/-/react-di-1.0.3.tgz","fileCount":10,"integrity":"sha512-QvqHBeqY9oKLHJ0XKeoChGSUBoXXVPLhqrsyjoBniC+tHV6k9ULAlQtbz1S1RoSiB9zDF4aZUI/3wAN82xuC0g==","signatures":[{"sig":"MEYCIQD9HWr8oPVy25JvnxPstDnchmdBcWamMicmCXeaM93QAQIhAL8Gbc3TyVos/E3Tuy3YdViM5gMTATUJZBgKcveOYz3y","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":164001},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","gitHead":"fee2bf67e09f368823626573102e3e9f3ce02de3","scripts":{"dev":"tsup --watch","lint":"eslint . --max-warnings 0","test":"vitest --run","build":"tsup","clean":"rm -rf dist","format":"prettier --write \"src/**/*.{ts,tsx,js,jsx,json}\"","test:ui":"vitest --ui","lint:fix":"eslint . --fix","test:watch":"vitest","check-types":"tsc --noEmit","format:check":"prettier --check \"src/**/*.{ts,tsx,js,jsx,json}\"","test:coverage":"vitest --run --coverage"},"_npmUser":{"name":"abdokouta","email":"akouta66@gmail.com"},"repository":{"url":"git+https://github.com/pixielity-inc/react-di.git","type":"git"},"_npmVersion":"10.9.4","description":"Dependency injection for React - NestJS-style modules powered by Inversiland","directories":{},"_nodeVersion":"22.22.1","dependencies":{"inversiland":"^0.6.2","reflect-metadata":"^0.2.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","jsdom":"^29.0.1","react":"^19.2.4","vitest":"^4.1.2","prettier":"^3.8.1","@vitest/ui":"^4.1.2","typescript":"^6.0.2","@types/node":"^25.5.0","@types/react":"^19.2.14","@nesvel/tsup-config":"^1.0.3","@nesvel/eslint-config":"^1.0.5","@testing-library/react":"^16.3.2","@nesvel/prettier-config":"^1.0.3","@nesvel/typescript-config":"^1.0.4","@testing-library/jest-dom":"^6.9.1"},"peerDependencies":{"react":"^18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/react-di_1.0.3_1774918192038_0.5569248838218557","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"1.0.4":{"name":"@abdokouta/react-di","version":"1.0.4","keywords":["react","dependency-injection","di","ioc","container","inversify","inversiland","modules","decorators","nestjs-style"],"author":{"name":"Pixielity"},"license":"MIT","_id":"@abdokouta/react-di@1.0.4","maintainers":[{"name":"abdokouta","email":"akouta66@gmail.com"}],"homepage":"https://github.com/pixielity-inc/react-di#readme","bugs":{"url":"https://github.com/pixielity-inc/react-di/issues"},"dist":{"shasum":"a5317f30e435edd26be909d3c7ee6ec1bf0cc2cf","tarball":"https://registry.npmjs.org/@abdokouta/react-di/-/react-di-1.0.4.tgz","fileCount":10,"integrity":"sha512-1Y7bwfQCPEpBcQVyAHuKWZjtqGhcLIRqW7YC1QDRHXhcZvoPpwL243icFHE0KYPjtppNwSZrCTw2ryRG35h9lQ==","signatures":[{"sig":"MEUCIEyvg7S9+EP6i7M4ZGOd0YervRTt/dr0IXjp64OfQy7yAiEAsoSzj5C3Uo3m3se0IsxXGQgWwgbxxa9XeJKOBqs6MrA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":167181},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","gitHead":"51083aeb77a2f910a5054b17e49ed211457f35c5","scripts":{"dev":"tsup --watch","lint":"eslint . --max-warnings 0","test":"vitest --run","build":"tsup","clean":"rm -rf dist","format":"prettier --write \"src/**/*.{ts,tsx,js,jsx,json}\"","test:ui":"vitest --ui","lint:fix":"eslint . --fix","test:watch":"vitest","check-types":"tsc --noEmit","format:check":"prettier --check \"src/**/*.{ts,tsx,js,jsx,json}\"","test:coverage":"vitest --run --coverage"},"_npmUser":{"name":"abdokouta","email":"akouta66@gmail.com"},"repository":{"url":"git+https://github.com/pixielity-inc/react-di.git","type":"git"},"_npmVersion":"10.9.4","description":"Dependency injection for React - NestJS-style modules powered by Inversiland","directories":{},"_nodeVersion":"22.22.1","dependencies":{"inversiland":"^0.6.2","reflect-metadata":"^0.2.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","jsdom":"^29.0.1","react":"^19.2.4","vitest":"^4.1.2","prettier":"^3.8.1","@vitest/ui":"^4.1.2","typescript":"^6.0.2","@types/node":"^25.5.0","@types/react":"^19.2.14","@nesvel/tsup-config":"^1.0.3","@nesvel/eslint-config":"^1.0.5","@testing-library/react":"^16.3.2","@nesvel/prettier-config":"^1.0.3","@nesvel/typescript-config":"^1.0.4","@testing-library/jest-dom":"^6.9.1"},"peerDependencies":{"react":"^18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/react-di_1.0.4_1774918705295_0.6106952451718155","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"2.0.0":{"name":"@abdokouta/react-di","version":"2.0.0","keywords":["react","dependency-injection","di","ioc","container","inversify","inversiland","modules","decorators","nestjs-style"],"author":{"name":"Pixielity"},"license":"MIT","_id":"@abdokouta/react-di@2.0.0","maintainers":[{"name":"abdokouta","email":"akouta66@gmail.com"}],"homepage":"https://github.com/pixielity-inc/react-di#readme","bugs":{"url":"https://github.com/pixielity-inc/react-di/issues"},"dist":{"shasum":"668d1e025ea2d28bf4cc484a0de835fc94f7e75d","tarball":"https://registry.npmjs.org/@abdokouta/react-di/-/react-di-2.0.0.tgz","fileCount":8,"integrity":"sha512-mssU8MOeV86RH7XMRLcemCllbaLtVzDv7t2PPDByuRvdEtN3kCQ015d4IGCbCyihPIxjfoKyatNGSxEkWqHywA==","signatures":[{"sig":"MEUCIQCPSS3t6hPX4Gz7E1Aj7s3chYX/rBKUiNTYckI6oP6z/wIgCd/Kdwoi6DBZNsrpZDJbc1yyXCBnCc53xg27UkhydEA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":225163},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","gitHead":"462e4d3a718a956612ec584a906b5fabd02ed8ad","private":false,"scripts":{"dev":"tsup --watch","lint":"eslint . --max-warnings 0","test":"vitest --run","build":"tsup","clean":"rm -rf dist","format":"prettier --write \"src/**/*.{ts,tsx,js,jsx,json}\"","test:ui":"vitest --ui","lint:fix":"eslint . --fix","test:watch":"vitest","check-types":"tsc --noEmit","format:check":"prettier --check \"src/**/*.{ts,tsx,js,jsx,json}\"","test:coverage":"vitest --run --coverage"},"_npmUser":{"name":"abdokouta","email":"akouta66@gmail.com"},"repository":{"url":"git+https://github.com/pixielity-inc/react-di.git","type":"git"},"_npmVersion":"10.9.4","description":"Dependency injection for React - NestJS-style modules powered by Inversiland","directories":{},"_nodeVersion":"22.22.1","dependencies":{"inversiland":"^0.6.2","reflect-metadata":"^0.2.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","jsdom":"^29.0.1","react":"^19.2.4","vitest":"^4.1.2","prettier":"^3.8.1","@vitest/ui":"^4.1.2","typescript":"^6.0.2","@types/node":"^25.5.0","@types/react":"^19.2.14","@nesvel/tsup-config":"^1.0.3","@nesvel/eslint-config":"^1.0.5","@testing-library/react":"^16.3.2","@nesvel/prettier-config":"^1.0.3","@nesvel/typescript-config":"^1.0.4","@testing-library/jest-dom":"^6.9.1"},"peerDependencies":{"react":"^18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/react-di_2.0.0_1774925119398_0.5037320728501353","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"2.0.1":{"name":"@abdokouta/react-di","version":"2.0.1","keywords":["react","dependency-injection","di","ioc","container","inversify","inversiland","modules","decorators","nestjs-style"],"author":{"name":"Pixielity"},"license":"MIT","_id":"@abdokouta/react-di@2.0.1","maintainers":[{"name":"abdokouta","email":"akouta66@gmail.com"}],"homepage":"https://github.com/pixielity-inc/react-di#readme","bugs":{"url":"https://github.com/pixielity-inc/react-di/issues"},"dist":{"shasum":"af5e94d3ba397a00954c798a441576e181c91556","tarball":"https://registry.npmjs.org/@abdokouta/react-di/-/react-di-2.0.1.tgz","fileCount":8,"integrity":"sha512-0f+aHcttlu5V2UbTylBcGJdGH7376Xe3q0k+WXe+legzne++DLHS4qA3cZw/qwEjBrwWZphlVRVO1vLhvBhH8Q==","signatures":[{"sig":"MEUCIB3dl2cIeRczeS0CGpswk1dPiwiO8+oqxafQ5yXbCcP9AiEAurKCIAdZd/EYF71ktVeFJ4+IrJf2VbEvZBwachHghV4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":225203},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","gitHead":"2ae938023e28d864a6ce5bed0143e6656d08192f","private":false,"scripts":{"dev":"tsup --watch","lint":"eslint . --max-warnings 0","test":"vitest --run","build":"tsup","clean":"rm -rf dist","format":"prettier --write \"src/**/*.{ts,tsx,js,jsx,json}\"","test:ui":"vitest --ui","lint:fix":"eslint . --fix","test:watch":"vitest","check-types":"tsc --noEmit","format:check":"prettier --check \"src/**/*.{ts,tsx,js,jsx,json}\"","test:coverage":"vitest --run --coverage"},"_npmUser":{"name":"abdokouta","email":"akouta66@gmail.com"},"repository":{"url":"git+https://github.com/pixielity-inc/react-di.git","type":"git"},"_npmVersion":"10.9.4","description":"Dependency injection for React - NestJS-style modules powered by Inversiland","directories":{},"_nodeVersion":"22.22.1","dependencies":{"inversiland":"^0.6.2","reflect-metadata":"^0.2.2","@inversiland/inversify":"^6.1.5"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","jsdom":"^29.0.1","react":"^19.2.4","vitest":"^4.1.2","prettier":"^3.8.1","@vitest/ui":"^4.1.2","typescript":"^6.0.2","@types/node":"^25.5.0","@types/react":"^19.2.14","@nesvel/tsup-config":"^1.0.3","@nesvel/eslint-config":"^1.0.5","@testing-library/react":"^16.3.2","@nesvel/prettier-config":"^1.0.3","@nesvel/typescript-config":"^1.0.4","@testing-library/jest-dom":"^6.9.1"},"peerDependencies":{"react":"^18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/react-di_2.0.1_1774925943275_0.9603162193327037","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"2.1.0":{"name":"@abdokouta/react-di","version":"2.1.0","keywords":["react","dependency-injection","di","ioc","container","inversify","inversiland","modules","decorators","nestjs-style"],"author":{"name":"Pixielity"},"license":"MIT","_id":"@abdokouta/react-di@2.1.0","maintainers":[{"name":"abdokouta","email":"akouta66@gmail.com"}],"homepage":"https://github.com/pixielity-inc/react-di#readme","bugs":{"url":"https://github.com/pixielity-inc/react-di/issues"},"dist":{"shasum":"95c19aae36abc429cbc4ce48b4e7647af1e16026","tarball":"https://registry.npmjs.org/@abdokouta/react-di/-/react-di-2.1.0.tgz","fileCount":8,"integrity":"sha512-Z9ZrufFvffpyLdqoOW3QYRIU3P934xPykkhqKY69ToRNYv09ZWxxYIq7h/19PIw4UY9wxpV3kEUZo7tS2l6CKA==","signatures":[{"sig":"MEUCIQD9jMUCDVbXOvLsGu5RnSrlaAkb9cOIvvIxYv7tHt0SvgIgVMVEo7Cb55fERJy5D1ZWCVXBhMNS3OV7kI6AlOXbP9w=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":219469},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","gitHead":"669473b7088f9fe033c0b55f40c21aeea9eae390","private":false,"scripts":{"dev":"tsup --watch","lint":"eslint . --max-warnings 0","test":"vitest --run","build":"tsup","clean":"rm -rf dist","format":"prettier --write \"src/**/*.{ts,tsx,js,jsx,json}\"","test:ui":"vitest --ui","lint:fix":"eslint . --fix","test:watch":"vitest","check-types":"tsc --noEmit","format:check":"prettier --check \"src/**/*.{ts,tsx,js,jsx,json}\"","test:coverage":"vitest --run --coverage"},"_npmUser":{"name":"abdokouta","email":"akouta66@gmail.com"},"repository":{"url":"git+https://github.com/pixielity-inc/react-di.git","type":"git"},"_npmVersion":"10.9.4","description":"Dependency injection for React - NestJS-style modules powered by Inversiland","directories":{},"_nodeVersion":"22.22.1","dependencies":{"inversiland":"^0.6.2","reflect-metadata":"^0.2.2","@inversiland/inversify":"^6.1.5"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","jsdom":"^29.0.1","react":"^19.2.4","vitest":"^4.1.2","prettier":"^3.8.1","@vitest/ui":"^4.1.2","typescript":"^6.0.2","@types/node":"^25.5.0","@types/react":"^19.2.14","@nesvel/tsup-config":"^1.0.3","@nesvel/eslint-config":"^1.0.5","@testing-library/react":"^16.3.2","@nesvel/prettier-config":"^1.0.3","@nesvel/typescript-config":"^1.0.4","@testing-library/jest-dom":"^6.9.1"},"peerDependencies":{"react":"^18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/react-di_2.1.0_1774931833841_0.4681308233123651","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"2.1.1":{"name":"@abdokouta/react-di","version":"2.1.1","keywords":["react","dependency-injection","di","ioc","container","inversify","inversiland","modules","decorators","nestjs-style"],"author":{"name":"Pixielity"},"license":"MIT","_id":"@abdokouta/react-di@2.1.1","maintainers":[{"name":"abdokouta","email":"akouta66@gmail.com"}],"homepage":"https://github.com/pixielity-inc/react-di#readme","bugs":{"url":"https://github.com/pixielity-inc/react-di/issues"},"dist":{"shasum":"d67eff2779b8bcfeaf69be19cee7b3c9c3280474","tarball":"https://registry.npmjs.org/@abdokouta/react-di/-/react-di-2.1.1.tgz","fileCount":9,"integrity":"sha512-cDqBGRPzUeatSx6tWGbdzhf2TzsHWe1QZ1gF4+TheocApbK2RsoSAWZYaKxB9CEkbwcKDhYIsOm9lo9awx3QuA==","signatures":[{"sig":"MEUCIGkh+FWJZtkPINxErz5n0PlTyPGCmOKcyV9I14KNikqgAiEAu3iH56R3/gN0p+HMMMcxgoY8IMjgNbpzwFPMqVAnz+M=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":224591},"main":"dist/index.js","_from":"file:abdokouta-react-di-2.1.1.tgz","types":"dist/index.d.ts","module":"dist/index.mjs","private":false,"scripts":{"dev":"tsup --watch","lint":"eslint . --max-warnings 0","test":"vitest --run","build":"tsup","clean":"rm -rf dist","format":"prettier --write \"src/**/*.{ts,tsx,js,jsx,json}\"","test:ui":"vitest --ui","lint:fix":"eslint . --fix","test:watch":"vitest","check-types":"tsc --noEmit","format:check":"prettier --check \"src/**/*.{ts,tsx,js,jsx,json}\"","test:coverage":"vitest --run --coverage"},"_npmUser":{"name":"abdokouta","email":"akouta66@gmail.com"},"_resolved":"/private/var/folders/7_/q437v6xs4sqf5p4755wbbzvh0000gn/T/365e57fd52cc3cae131298de69810355/abdokouta-react-di-2.1.1.tgz","_integrity":"sha512-cDqBGRPzUeatSx6tWGbdzhf2TzsHWe1QZ1gF4+TheocApbK2RsoSAWZYaKxB9CEkbwcKDhYIsOm9lo9awx3QuA==","repository":{"url":"git+https://github.com/pixielity-inc/react-di.git","type":"git"},"_npmVersion":"10.9.4","description":"Dependency injection for React - NestJS-style modules powered by Inversiland","directories":{},"_nodeVersion":"22.22.1","dependencies":{"inversiland":"^0.6.2","reflect-metadata":"^0.2.2","@inversiland/inversify":"^6.1.5"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","jsdom":"^29.0.1","react":"^19.2.4","vitest":"^4.1.2","prettier":"^3.8.1","@vitest/ui":"^4.1.2","typescript":"^6.0.2","@types/node":"^25.5.0","@types/react":"^19.2.14","@nesvel/tsup-config":"^1.0.3","@nesvel/eslint-config":"^1.0.5","@testing-library/react":"^16.3.2","@nesvel/prettier-config":"^1.0.3","@nesvel/typescript-config":"^1.0.4","@testing-library/jest-dom":"^6.9.1"},"peerDependencies":{"react":"^18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/react-di_2.1.1_1774943514736_0.31610513894340997","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"2.1.2":{"name":"@abdokouta/react-di","version":"2.1.2","keywords":["react","dependency-injection","di","ioc","container","inversify","inversiland","modules","decorators","nestjs-style"],"author":{"url":"https://github.com/abdokouta","name":"Abdelrhman Kouta","email":"abdelrhman@pixielity.com"},"license":"MIT","_id":"@abdokouta/react-di@2.1.2","maintainers":[{"name":"abdokouta","email":"akouta66@gmail.com"}],"homepage":"https://github.com/abdokouta/container#readme","bugs":{"url":"https://github.com/abdokouta/container/issues"},"dist":{"shasum":"2426d8f6b62d37ffcb34692548bf5d4d49aff4dc","tarball":"https://registry.npmjs.org/@abdokouta/react-di/-/react-di-2.1.2.tgz","fileCount":10,"integrity":"sha512-fWYzsNoaIAnka39fQNCPHga7wQBaWruqgi1tbwPh3Udf/bMjrExK/WHUBFGksftALv8BuAVQ4EKBD+q8LFqMJA==","signatures":[{"sig":"MEUCIHCWw07bFM7A6aQNNQKmOEYsoYNEH+9ONiw2Xmvx8EeqAiEApst3BXejC/5+wuwtAwjGC84IRGuzOBRJsOXKPVUPxMs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":225678},"main":"./dist/index.js","type":"module","_from":"file:abdokouta-react-di-2.1.2.tgz","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=18.0.0","pnpm":">=9.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"scripts":{"dev":"tsup --watch","lint":"eslint . --max-warnings 0","test":"vitest run","build":"tsup","clean":"rm -rf dist node_modules/.cache","format":"prettier --write .","release":"pnpm publish --access public --no-git-checks","lint:fix":"eslint . --fix","typecheck":"tsc --noEmit","test:watch":"vitest","format:check":"prettier --check .","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"abdokouta","email":"akouta66@gmail.com"},"_resolved":"/private/var/folders/7_/q437v6xs4sqf5p4755wbbzvh0000gn/T/4d419bf6e2bf6b61b9f6f2ba488ab17b/abdokouta-react-di-2.1.2.tgz","_integrity":"sha512-fWYzsNoaIAnka39fQNCPHga7wQBaWruqgi1tbwPh3Udf/bMjrExK/WHUBFGksftALv8BuAVQ4EKBD+q8LFqMJA==","repository":{"url":"git+https://github.com/abdokouta/container.git","type":"git","directory":"packages/container"},"_npmVersion":"11.12.1","description":"Dependency injection for React - NestJS-style modules powered by Inversiland","directories":{},"sideEffects":false,"_nodeVersion":"22.22.1","dependencies":{"inversiland":"^0.6.2","reflect-metadata":"^0.2.2","@inversiland/inversify":"^6.1.5"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","jsdom":"^29.0.1","react":"^19.2.4","vitest":"^4.1.2","prettier":"^3.8.1","@vitest/ui":"^4.1.2","typescript":"^6.0.2","@types/node":"^25.5.0","@types/react":"^19.2.14","@nesvel/tsup-config":"^1.0.3","@nesvel/eslint-config":"^1.0.5","@testing-library/react":"^16.3.2","@nesvel/prettier-config":"^1.0.3","@nesvel/typescript-config":"^1.0.4","@testing-library/jest-dom":"^6.9.1"},"peerDependencies":{"react":"^18.0.0 || ^19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/react-di_2.1.2_1774953545244_0.4770653357298402","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"2.1.3":{"name":"@abdokouta/react-di","version":"2.1.3","keywords":["react","dependency-injection","di","ioc","container","inversify","inversiland","modules","decorators","nestjs-style"],"author":{"url":"https://github.com/abdokouta","name":"Abdelrhman Kouta","email":"abdelrhman@pixielity.com"},"license":"MIT","_id":"@abdokouta/react-di@2.1.3","maintainers":[{"name":"abdokouta","email":"akouta66@gmail.com"}],"homepage":"https://github.com/abdokouta/container#readme","bugs":{"url":"https://github.com/abdokouta/container/issues"},"dist":{"shasum":"cf3db8776096215f0554cfcbbc872c816f2730af","tarball":"https://registry.npmjs.org/@abdokouta/react-di/-/react-di-2.1.3.tgz","fileCount":10,"integrity":"sha512-fYiKJrJvcB//itLjcQ6Wyv8HzEpuS4mmQFpKETQkXJZQ5UiZdnkL6+LPV+1ma1K2N7zLJxF1ZY1Vn6VZ0TRPKg==","signatures":[{"sig":"MEUCIQCBnlMrcE487DvGGoDt8GEHcvtcCrb3CGbuVbyXXOd0pwIgJABS//bjhzjruJcv3HFDzyO8bB1JW9VMZpJmdUHiy/s=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":225622},"main":"./dist/index.js","type":"module","_from":"file:abdokouta-react-di-2.1.3.tgz","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=18.0.0","pnpm":">=9.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"scripts":{"dev":"tsup --watch","lint":"eslint . --max-warnings 0","test":"vitest run","build":"tsup","clean":"rm -rf dist node_modules/.cache","format":"prettier --write .","release":"pnpm publish --access public --no-git-checks","lint:fix":"eslint . --fix","typecheck":"tsc --noEmit","test:watch":"vitest","format:check":"prettier --check .","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"abdokouta","email":"akouta66@gmail.com"},"_resolved":"/private/var/folders/7_/q437v6xs4sqf5p4755wbbzvh0000gn/T/c6308ed7986a839628124bd63563c118/abdokouta-react-di-2.1.3.tgz","_integrity":"sha512-fYiKJrJvcB//itLjcQ6Wyv8HzEpuS4mmQFpKETQkXJZQ5UiZdnkL6+LPV+1ma1K2N7zLJxF1ZY1Vn6VZ0TRPKg==","repository":{"url":"git+https://github.com/abdokouta/container.git","type":"git","directory":"packages/container"},"_npmVersion":"10.9.7","description":"Dependency injection for React - NestJS-style modules powered by Inversiland","directories":{},"sideEffects":false,"_nodeVersion":"22.22.2","dependencies":{"inversiland":"^0.6.2","reflect-metadata":"^0.2.2","@inversiland/inversify":"^6.1.5"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","jsdom":"^29.0.1","react":"^19.2.4","vitest":"^4.1.2","prettier":"^3.8.1","@eslint/js":"10.0.1","@vitest/ui":"^4.1.2","typescript":"^6.0.2","@types/node":"^25.5.0","@types/react":"^19.2.14","typescript-eslint":"^8.58.0","@nesvel/tsup-config":"^1.0.3","@nesvel/eslint-config":"^1.0.5","@testing-library/react":"^16.3.2","@nesvel/prettier-config":"^1.0.3","@nesvel/typescript-config":"^1.0.4","@testing-library/jest-dom":"^6.9.1"},"peerDependencies":{"react":"^18.0.0 || ^19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/react-di_2.1.3_1775074476306_0.8122891663597724","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."}},"time":{"created":"2026-03-30T23:41:03.520Z","modified":"2026-04-05T18:30:35.765Z","1.0.0":"2026-03-30T23:41:04.102Z","1.0.1":"2026-03-30T23:43:06.386Z","1.0.3":"2026-03-31T00:49:52.229Z","1.0.4":"2026-03-31T00:58:25.471Z","2.0.0":"2026-03-31T02:45:19.573Z","2.0.1":"2026-03-31T02:59:03.445Z","2.1.0":"2026-03-31T04:37:14.002Z","2.1.1":"2026-03-31T07:51:54.884Z","2.1.2":"2026-03-31T10:39:05.386Z","2.1.3":"2026-04-01T20:14:36.473Z"},"bugs":{"url":"https://github.com/abdokouta/container/issues"},"author":{"url":"https://github.com/abdokouta","name":"Abdelrhman Kouta","email":"abdelrhman@pixielity.com"},"license":"MIT","homepage":"https://github.com/abdokouta/container#readme","keywords":["react","dependency-injection","di","ioc","container","inversify","inversiland","modules","decorators","nestjs-style"],"repository":{"url":"git+https://github.com/abdokouta/container.git","type":"git","directory":"packages/container"},"description":"Dependency injection for React - NestJS-style modules powered by Inversiland","maintainers":[{"name":"abdokouta","email":"akouta66@gmail.com"}],"readme":"<p align=\"center\">\n  <img src=\"https://raw.githubusercontent.com/abdokouta/react-di/main/assets/banner.svg\" alt=\"@abdokouta/react-di\" width=\"100%\" />\n</p>\n\n<h1 align=\"center\">@abdokouta/react-di</h1>\n\n<p align=\"center\">\n  <strong>Powerful dependency injection for React with NestJS-style modules</strong>\n</p>\n\n<p align=\"center\">\n  <a href=\"https://www.npmjs.com/package/@abdokouta/react-di\"><img src=\"https://img.shields.io/npm/v/@abdokouta/react-di.svg?style=flat-square\" alt=\"npm version\" /></a>\n  <a href=\"https://www.npmjs.com/package/@abdokouta/react-di\"><img src=\"https://img.shields.io/npm/dm/@abdokouta/react-di.svg?style=flat-square\" alt=\"npm downloads\" /></a>\n  <a href=\"https://github.com/abdokouta/react-di/blob/main/LICENSE\"><img src=\"https://img.shields.io/npm/l/@abdokouta/react-di.svg?style=flat-square\" alt=\"license\" /></a>\n  <a href=\"https://github.com/abdokouta/react-di\"><img src=\"https://img.shields.io/github/stars/abdokouta/react-di?style=flat-square\" alt=\"GitHub stars\" /></a>\n</p>\n\n<p align=\"center\">\n  Built on top of <a href=\"https://github.com/inversiland/inversiland\">Inversiland</a> • TypeScript-first • Zero boilerplate\n</p>\n\n---\n\n## ✨ Features\n\n- 🎯 **NestJS-style modules** - Familiar patterns for organizing your React app\n- 💉 **Powerful DI** - Constructor injection with decorators\n- 🔄 **Dynamic modules** - `forRoot` and `forFeature` patterns\n- ⚛️ **React hooks** - `useInject` for seamless component integration\n- 🌍 **Global modules** - Share services across your entire app\n- 🔥 **HMR support** - Works perfectly with Vite hot module replacement\n- 📦 **Tree-shakeable** - Only bundle what you use\n- 🎨 **TypeScript-first** - Full type safety and IntelliSense\n\n## 📦 Installation\n\n```bash\nnpm install @abdokouta/react-di reflect-metadata\n# or\nyarn add @abdokouta/react-di reflect-metadata\n# or\npnpm add @abdokouta/react-di reflect-metadata\n```\n\n> **Note:** Make sure to enable `experimentalDecorators` and `emitDecoratorMetadata` in your `tsconfig.json`\n\n```json\n{\n  \"compilerOptions\": {\n    \"experimentalDecorators\": true,\n    \"emitDecoratorMetadata\": true\n  }\n}\n```\n\n## 🚀 Quick Start\n\n### 1. Initialize the Container\n\n```typescript\n// main.tsx\nimport \"reflect-metadata\";\nimport { Container, ContainerProvider } from \"@abdokouta/react-di\";\nimport { AppModule } from \"./modules/app.module\";\n\n// Initialize BEFORE React renders\nContainer\n  .configure()\n  .withModule(AppModule)\n  .withLogLevel(import.meta.env.DEV ? \"debug\" : \"info\")\n  .withDefaultScope(\"Singleton\")\n  .build();\n\nReactDOM.createRoot(document.getElementById(\"root\")!).render(\n  <ContainerProvider module={AppModule}>\n    <App />\n  </ContainerProvider>\n);\n```\n\n### 2. Create Services\n\n```typescript\n// services/logger.service.ts\nimport { Injectable } from \"@abdokouta/react-di\";\n\n@Injectable()\nexport class LoggerService {\n  log(message: string) {\n    console.log(`[LOG]: ${message}`);\n  }\n}\n```\n\n```typescript\n// services/user.service.ts\nimport { Injectable, Inject } from \"@abdokouta/react-di\";\nimport { LoggerService } from \"./logger.service\";\n\nexport const USER_SERVICE = Symbol.for(\"UserService\");\n\n@Injectable()\nexport class UserService {\n  constructor(@Inject(LoggerService) private logger: LoggerService) {}\n\n  getUsers() {\n    this.logger.log(\"Fetching users...\");\n    return [\n      { id: 1, name: \"John\" },\n      { id: 2, name: \"Jane\" },\n    ];\n  }\n}\n```\n\n### 3. Create Modules\n\n```typescript\n// modules/app.module.ts\nimport { Module } from \"@abdokouta/react-di\";\nimport { LoggerService } from \"../services/logger.service\";\nimport { UserService, USER_SERVICE } from \"../services/user.service\";\n\n@Module({\n  providers: [LoggerService, { provide: USER_SERVICE, useClass: UserService }],\n})\nexport class AppModule {}\n```\n\n### 4. Use in Components\n\n```typescript\n// components/UserList.tsx\nimport { useInject } from \"@abdokouta/react-di\";\nimport { UserService, USER_SERVICE } from \"../services/user.service\";\n\nexport function UserList() {\n  const userService = useInject<UserService>(USER_SERVICE);\n  const users = userService.getUsers();\n\n  return (\n    <ul>\n      {users.map(user => (\n        <li key={user.id}>{user.name}</li>\n      ))}\n    </ul>\n  );\n}\n```\n\n## 🏗️ Container Builder API\n\nThe `Container` class provides a fluent builder API for initialization:\n\n```typescript\nimport { Container } from \"@abdokouta/react-di\";\n\n// Full configuration\nContainer.configure()\n  .withModule(AppModule)\n  .withLogLevel(\"debug\") // \"none\" | \"info\" | \"debug\"\n  .withDefaultScope(\"Singleton\") // \"Singleton\" | \"Transient\" | \"Request\"\n  .build();\n\n// With config object\nContainer.configure()\n  .withModule(AppModule)\n  .withConfig({\n    logLevel: \"debug\",\n    defaultScope: \"Singleton\",\n  })\n  .build();\n\n// With defaults (logLevel: \"info\", defaultScope: \"Singleton\")\nContainer.configure().withModule(AppModule).withDefaults().build();\n\n// Development defaults (logLevel: \"debug\")\nContainer.configure().withModule(AppModule).withDevDefaults().build();\n```\n\n## 🌍 Global Modules\n\nMake services available everywhere without importing:\n\n```typescript\nimport { Module, Global } from \"@abdokouta/react-di\";\n\n@Global()\n@Module({\n  providers: [LoggerService],\n})\nexport class LoggerModule {}\n\n// Now LoggerService is available in ALL modules\n@Module({\n  imports: [LoggerModule],\n})\nexport class AppModule {}\n```\n\n## 🔄 Dynamic Modules\n\nCreate configurable modules with `forRoot` and `forFeature`:\n\n```typescript\nimport { Module, forRoot, type DynamicModule } from \"@abdokouta/react-di\";\n\nexport const CONFIG = Symbol.for(\"Config\");\n\n@Module({})\nexport class ConfigModule {\n  static forRoot(config: AppConfig): DynamicModule {\n    return forRoot(ConfigModule, {\n      providers: [{ provide: CONFIG, useValue: config }, ConfigService],\n      exports: [ConfigService],\n    });\n  }\n}\n\n// Usage\n@Module({\n  imports: [\n    ConfigModule.forRoot({\n      apiUrl: \"https://api.example.com\",\n      debug: true,\n    }),\n  ],\n})\nexport class AppModule {}\n```\n\n## 📋 Provider Types\n\n### Class Provider\n\n```typescript\n{ provide: UserService, useClass: UserService }\n// or simply\nUserService\n```\n\n### Value Provider\n\n```typescript\n{ provide: API_URL, useValue: \"https://api.example.com\" }\n```\n\n### Factory Provider\n\n```typescript\n{\n  provide: CONNECTION,\n  useFactory: (context) => () => createConnection(),\n}\n```\n\n### Async Factory Provider\n\n```typescript\n{\n  provide: DATABASE,\n  useAsyncFactory: () => async () => {\n    return await connectToDatabase();\n  },\n}\n```\n\n### Alias Provider\n\n```typescript\n{ provide: \"Logger\", useExisting: LoggerService }\n```\n\n## 🎣 React Hooks\n\n### useInject\n\n```typescript\nconst service = useInject<UserService>(USER_SERVICE);\n```\n\n### useContainer\n\n```typescript\nconst { container, moduleClass } = useContainer();\n```\n\n### useModule\n\n```typescript\nconst container = useModule(AppModule);\n```\n\n## 🔧 Decorators\n\n| Decorator             | Description                                      |\n| --------------------- | ------------------------------------------------ |\n| `@Module()`           | Define a module with providers, imports, exports |\n| `@Global()`           | Make module's providers globally available       |\n| `@Injectable()`       | Mark a class as injectable                       |\n| `@Inject(token)`      | Inject a dependency                              |\n| `@MultiInject(token)` | Inject all providers with the same token         |\n| `@Optional()`         | Mark dependency as optional                      |\n\n## ⚙️ Configuration\n\n### tsconfig.json\n\n```json\n{\n  \"compilerOptions\": {\n    \"experimentalDecorators\": true,\n    \"emitDecoratorMetadata\": true,\n    \"strictPropertyInitialization\": false\n  }\n}\n```\n\n### Vite Configuration\n\n```typescript\n// vite.config.ts\nimport { defineConfig } from \"vite\";\nimport react from \"@vitejs/plugin-react\";\n\nexport default defineConfig({\n  plugins: [\n    react({\n      babel: {\n        plugins: [\n          [\"@babel/plugin-proposal-decorators\", { legacy: true }],\n          [\"@babel/plugin-transform-class-properties\", { loose: true }],\n        ],\n      },\n    }),\n  ],\n});\n```\n\n## 🔥 HMR Support\n\nThis library fully supports Vite's Hot Module Replacement. The key is to initialize the container **outside** of React's lifecycle:\n\n```typescript\n// ✅ Correct - Initialize before React\nContainer.configure().withModule(AppModule).build();\n\nReactDOM.createRoot(root).render(<App />);\n```\n\n```typescript\n// ❌ Wrong - Don't initialize inside components\nfunction App() {\n  Container.configure().withModule(AppModule).build(); // This breaks HMR!\n}\n```\n\n## 📚 Examples\n\nCheck out the [examples](./examples) directory for complete working examples:\n\n- [Vite + React](./examples/vite) - Full-featured example with all patterns\n\n## 🤝 Contributing\n\nContributions are welcome! Please read our [contributing guide](CONTRIBUTING.md) for details.\n\n## 📄 License\n\nMIT © [Abdo Kouta](https://github.com/abdokouta)\n\n---\n\n<p align=\"center\">\n  Made with ❤️ by <a href=\"https://github.com/abdokouta\">Abdo Kouta</a>\n</p>\n","readmeFilename":"README.md"}