{"_id":"@fluojs/runtime","_rev":"29-275a12bc83b32c3776423a9e0293b416","name":"@fluojs/runtime","dist-tags":{"beta":"1.0.0-beta.2","latest":"3.1.2"},"versions":{"1.0.0-beta.1":{"name":"@fluojs/runtime","version":"1.0.0-beta.1","keywords":["fluo","runtime","bootstrap","application","module-graph","orchestration"],"license":"MIT","_id":"@fluojs/runtime@1.0.0-beta.1","maintainers":[{"name":"ayden94","email":"wpfekdml@naver.com"}],"homepage":"https://github.com/fluojs/fluo#readme","bugs":{"url":"https://github.com/fluojs/fluo/issues"},"dist":{"shasum":"924ef827849b9458c4647002ba04c25274f39f2d","tarball":"https://registry.npmjs.org/@fluojs/runtime/-/runtime-1.0.0-beta.1.tgz","fileCount":109,"integrity":"sha512-5pkWWwC9hFwdymwG9sYdrhLacBdxTCWS57iSZBw7so9ErLqJV1+vMU5G223nnthl34QrLVPrvFcw7UqvuxNdZA==","signatures":[{"sig":"MEYCIQCLeR4ykX+U3YgaSb+Kb/yJenPmbfaw05a1vFxvaJSp4gIhAKRguWQeiwMkO9LI5v3Gn87tHcCBnwrjwnuo9MQDnedh","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":223982},"main":"./dist/index.js","type":"module","_from":"file:fluojs-runtime-1.0.0-beta.1.tgz","types":"./dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./web":{"types":"./dist/web.d.ts","import":"./dist/web.js"},"./node":{"types":"./dist/node.d.ts","import":"./dist/node.js"},"./internal":{"types":"./dist/internal.d.ts","import":"./dist/internal.js"},"./internal-node":{"types":"./dist/internal-node.d.ts","import":"./dist/internal-node.js"},"./internal/http-adapter":{"types":"./dist/internal-http-adapter.d.ts","import":"./dist/internal-http-adapter.js"},"./internal/request-response-factory":{"types":"./dist/internal-request-response-factory.d.ts","import":"./dist/internal-request-response-factory.js"}},"private":false,"scripts":{"test":"pnpm exec vitest run -c vitest.config.ts","build":"pnpm exec babel src --extensions .ts --ignore 'src/**/*.test.ts' --out-dir dist --config-file ../../tooling/babel/babel.config.cjs && pnpm exec tsc -p tsconfig.build.json","prebuild":"node ../../tooling/scripts/clean-dist.mjs","typecheck":"pnpm exec tsc -p tsconfig.json --noEmit","test:watch":"pnpm exec vitest -c vitest.config.ts"},"_npmUser":{"name":"ayden94","email":"wpfekdml@naver.com"},"_resolved":"/private/var/folders/8d/6326p1cd2b3gqbd7zzsd22bh0000gn/T/9ef0fa200940b714cf7f785d02d46e64/fluojs-runtime-1.0.0-beta.1.tgz","_integrity":"sha512-5pkWWwC9hFwdymwG9sYdrhLacBdxTCWS57iSZBw7so9ErLqJV1+vMU5G223nnthl34QrLVPrvFcw7UqvuxNdZA==","repository":{"url":"git+https://github.com/fluojs/fluo.git","type":"git","directory":"packages/runtime"},"_npmVersion":"11.6.0","description":"Application bootstrap and runtime orchestration — module graph compilation, DI wiring, and diagnostics export for Fluo.","directories":{},"_nodeVersion":"24.9.0","dependencies":{"@fluojs/di":"^1.0.0-beta.1","@fluojs/core":"^1.0.0-beta.1","@fluojs/http":"^1.0.0-beta.1","@fluojs/config":"^1.0.0-beta.1"},"publishConfig":{"access":"public"},"typesVersions":{"*":{"internal-node":["./dist/internal-node.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^3.2.4","@fluojs/serialization":"^1.0.0-beta.1"},"_npmOperationalInternal":{"tmp":"tmp/runtime_1.0.0-beta.1_1777043029987_0.9941059973147648","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-beta.2":{"name":"@fluojs/runtime","version":"1.0.0-beta.2","keywords":["fluo","runtime","bootstrap","application","module-graph","orchestration"],"license":"MIT","_id":"@fluojs/runtime@1.0.0-beta.2","maintainers":[{"name":"ayden94","email":"wpfekdml@naver.com"}],"homepage":"https://github.com/fluojs/fluo#readme","bugs":{"url":"https://github.com/fluojs/fluo/issues"},"dist":{"shasum":"8f180c0e37e2789b1728b09222591fc663f37cc3","tarball":"https://registry.npmjs.org/@fluojs/runtime/-/runtime-1.0.0-beta.2.tgz","fileCount":109,"integrity":"sha512-is+eGVy8kks0DiBoiM4TYRDJpbb+tE61uloR/4DvZGHK6Cdao0GncPuTrF/jMCNYnLCbutbL3zrIxpVGI5Jnhg==","signatures":[{"sig":"MEUCIF/yDQdcNPJ1shg+I3OOrob7iKC9F6A4nSlPlgTzYW8EAiEA4lIAPFsAlr0RFg7eJycmzNMzmzIVJr4rIpZ3UMYYYqA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@fluojs%2fruntime@1.0.0-beta.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":225789},"main":"./dist/index.js","type":"module","_from":"file:fluojs-runtime-1.0.0-beta.2.tgz","types":"./dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./web":{"types":"./dist/web.d.ts","import":"./dist/web.js"},"./node":{"types":"./dist/node.d.ts","import":"./dist/node.js"},"./internal":{"types":"./dist/internal.d.ts","import":"./dist/internal.js"},"./internal-node":{"types":"./dist/internal-node.d.ts","import":"./dist/internal-node.js"},"./internal/http-adapter":{"types":"./dist/internal-http-adapter.d.ts","import":"./dist/internal-http-adapter.js"},"./internal/request-response-factory":{"types":"./dist/internal-request-response-factory.d.ts","import":"./dist/internal-request-response-factory.js"}},"private":false,"scripts":{"test":"pnpm exec vitest run -c vitest.config.ts","build":"pnpm exec babel src --extensions .ts --ignore 'src/**/*.test.ts' --out-dir dist --config-file ../../tooling/babel/babel.config.cjs && pnpm exec tsc -p tsconfig.build.json","prebuild":"node ../../tooling/scripts/clean-dist.mjs","typecheck":"pnpm exec tsc -p tsconfig.json --noEmit","test:watch":"pnpm exec vitest -c vitest.config.ts"},"_npmUser":{"name":"ayden94","email":"wpfekdml@naver.com"},"_resolved":"/tmp/3c3dfd3fb71d4a237a9b396b3abd67d8/fluojs-runtime-1.0.0-beta.2.tgz","_integrity":"sha512-is+eGVy8kks0DiBoiM4TYRDJpbb+tE61uloR/4DvZGHK6Cdao0GncPuTrF/jMCNYnLCbutbL3zrIxpVGI5Jnhg==","repository":{"url":"git+https://github.com/fluojs/fluo.git","type":"git","directory":"packages/runtime"},"_npmVersion":"10.8.2","description":"Application bootstrap and runtime orchestration — module graph compilation, DI wiring, and diagnostics export for Fluo.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"@fluojs/di":"^1.0.0-beta.2","@fluojs/core":"^1.0.0-beta.1","@fluojs/http":"^1.0.0-beta.1","@fluojs/config":"^1.0.0-beta.2"},"publishConfig":{"access":"public"},"typesVersions":{"*":{"internal-node":["./dist/internal-node.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^3.2.4","@fluojs/serialization":"^1.0.0-beta.2"},"_npmOperationalInternal":{"tmp":"tmp/runtime_1.0.0-beta.2_1777279946205_0.9597629366426026","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-beta.3":{"name":"@fluojs/runtime","version":"1.0.0-beta.3","keywords":["fluo","runtime","bootstrap","application","module-graph","orchestration"],"license":"MIT","_id":"@fluojs/runtime@1.0.0-beta.3","maintainers":[{"name":"ayden94","email":"wpfekdml@naver.com"}],"homepage":"https://github.com/fluojs/fluo#readme","bugs":{"url":"https://github.com/fluojs/fluo/issues"},"dist":{"shasum":"d797466301fc15b93a63b2ac09b66eabb3b497cd","tarball":"https://registry.npmjs.org/@fluojs/runtime/-/runtime-1.0.0-beta.3.tgz","fileCount":109,"integrity":"sha512-M1MmurjRXvCiGsJOgo+LZxOoa47LFYpBK0efJ4u26ECWEeYqY5ENjn0kXY11r24VO0L7TJdfYgA/7ZWTO/9Z+A==","signatures":[{"sig":"MEUCIGBDzElklxKlg8oOo7JCHKr7NnuqjIgN55nQhHbMt2JjAiEAybUf2u0w+VufGR/ucVFmlTIWC0o61CEl4i/wRRSuBqo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@fluojs%2fruntime@1.0.0-beta.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":247139},"main":"./dist/index.js","type":"module","_from":"file:fluojs-runtime-1.0.0-beta.3.tgz","types":"./dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./web":{"types":"./dist/web.d.ts","import":"./dist/web.js"},"./node":{"types":"./dist/node.d.ts","import":"./dist/node.js"},"./internal":{"types":"./dist/internal.d.ts","import":"./dist/internal.js"},"./internal-node":{"types":"./dist/internal-node.d.ts","import":"./dist/internal-node.js"},"./internal/http-adapter":{"types":"./dist/internal-http-adapter.d.ts","import":"./dist/internal-http-adapter.js"},"./internal/request-response-factory":{"types":"./dist/internal-request-response-factory.d.ts","import":"./dist/internal-request-response-factory.js"}},"private":false,"scripts":{"test":"pnpm exec vitest run -c vitest.config.ts","build":"pnpm exec babel src --extensions .ts --ignore 'src/**/*.test.ts' --out-dir dist --config-file ../../tooling/babel/babel.config.cjs && pnpm exec tsc -p tsconfig.build.json","prebuild":"node ../../tooling/scripts/clean-dist.mjs","typecheck":"pnpm exec tsc -p tsconfig.json --noEmit","test:watch":"pnpm exec vitest -c vitest.config.ts"},"_npmUser":{"name":"ayden94","email":"wpfekdml@naver.com"},"_resolved":"/tmp/7dc84fe517e9fb815ba7dfabc4e03780/fluojs-runtime-1.0.0-beta.3.tgz","_integrity":"sha512-M1MmurjRXvCiGsJOgo+LZxOoa47LFYpBK0efJ4u26ECWEeYqY5ENjn0kXY11r24VO0L7TJdfYgA/7ZWTO/9Z+A==","repository":{"url":"git+https://github.com/fluojs/fluo.git","type":"git","directory":"packages/runtime"},"_npmVersion":"10.8.2","description":"Application bootstrap and runtime orchestration — module graph compilation, DI wiring, and diagnostics export for Fluo.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"@fluojs/di":"^1.0.0-beta.3","@fluojs/core":"^1.0.0-beta.2","@fluojs/http":"^1.0.0-beta.2","@fluojs/config":"^1.0.0-beta.3"},"publishConfig":{"access":"public"},"typesVersions":{"*":{"internal-node":["./dist/internal-node.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^3.2.4","@fluojs/serialization":"^1.0.0-beta.3"},"_npmOperationalInternal":{"tmp":"tmp/runtime_1.0.0-beta.3_1777370708107_0.07594276169253389","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-beta.4":{"name":"@fluojs/runtime","version":"1.0.0-beta.4","keywords":["fluo","runtime","bootstrap","application","module-graph","orchestration"],"license":"MIT","_id":"@fluojs/runtime@1.0.0-beta.4","maintainers":[{"name":"ayden94","email":"wpfekdml@naver.com"}],"homepage":"https://github.com/fluojs/fluo#readme","bugs":{"url":"https://github.com/fluojs/fluo/issues"},"dist":{"shasum":"b3caa93e05443c122b0e596fd9a1cba98f4db019","tarball":"https://registry.npmjs.org/@fluojs/runtime/-/runtime-1.0.0-beta.4.tgz","fileCount":109,"integrity":"sha512-dLOedEWGYs0qBLa5xBiYQbvOe0tBYwWGZp9/O0a5Cp1uwH8hWhMkgPgVZqPcRg53TSgZuSqmGQItTEMhxRTvaA==","signatures":[{"sig":"MEYCIQClR2/nEBSWrMoNl+UytgqWo7qalJhANcq+EI02GHiUoAIhAK5/yI+g4fLSU00rsCEc9aNUtYOlhD0QUrflxWWTFrkS","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@fluojs%2fruntime@1.0.0-beta.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":256837},"main":"./dist/index.js","type":"module","_from":"file:fluojs-runtime-1.0.0-beta.4.tgz","types":"./dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./web":{"types":"./dist/web.d.ts","import":"./dist/web.js"},"./node":{"types":"./dist/node.d.ts","import":"./dist/node.js"},"./internal":{"types":"./dist/internal.d.ts","import":"./dist/internal.js"},"./internal-node":{"types":"./dist/internal-node.d.ts","import":"./dist/internal-node.js"},"./internal/http-adapter":{"types":"./dist/internal-http-adapter.d.ts","import":"./dist/internal-http-adapter.js"},"./internal/request-response-factory":{"types":"./dist/internal-request-response-factory.d.ts","import":"./dist/internal-request-response-factory.js"}},"private":false,"scripts":{"test":"pnpm exec vitest run -c vitest.config.ts","build":"pnpm exec babel src --extensions .ts --ignore 'src/**/*.test.ts' --out-dir dist --config-file ../../tooling/babel/babel.config.cjs && pnpm exec tsc -p tsconfig.build.json","prebuild":"node ../../tooling/scripts/clean-dist.mjs","typecheck":"pnpm exec tsc -p tsconfig.json --noEmit","test:watch":"pnpm exec vitest -c vitest.config.ts"},"_npmUser":{"name":"ayden94","email":"wpfekdml@naver.com"},"_resolved":"/tmp/774c308cf09f984b840702bfc916d1fe/fluojs-runtime-1.0.0-beta.4.tgz","_integrity":"sha512-dLOedEWGYs0qBLa5xBiYQbvOe0tBYwWGZp9/O0a5Cp1uwH8hWhMkgPgVZqPcRg53TSgZuSqmGQItTEMhxRTvaA==","repository":{"url":"git+https://github.com/fluojs/fluo.git","type":"git","directory":"packages/runtime"},"_npmVersion":"10.8.2","description":"Application bootstrap and runtime orchestration — module graph compilation, DI wiring, and diagnostics export for Fluo.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"@fluojs/di":"^1.0.0-beta.4","@fluojs/core":"^1.0.0-beta.2","@fluojs/http":"^1.0.0-beta.3","@fluojs/config":"^1.0.0-beta.3"},"publishConfig":{"access":"public"},"typesVersions":{"*":{"internal-node":["./dist/internal-node.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^3.2.4","@fluojs/serialization":"^1.0.0-beta.3"},"_npmOperationalInternal":{"tmp":"tmp/runtime_1.0.0-beta.4_1777442715607_0.9500475778305908","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-beta.5":{"name":"@fluojs/runtime","version":"1.0.0-beta.5","keywords":["fluo","runtime","bootstrap","application","module-graph","orchestration"],"license":"MIT","_id":"@fluojs/runtime@1.0.0-beta.5","maintainers":[{"name":"ayden94","email":"wpfekdml@naver.com"}],"homepage":"https://github.com/fluojs/fluo#readme","bugs":{"url":"https://github.com/fluojs/fluo/issues"},"dist":{"shasum":"2d0c6211d7582c86090201d86cee5366cf570c5c","tarball":"https://registry.npmjs.org/@fluojs/runtime/-/runtime-1.0.0-beta.5.tgz","fileCount":109,"integrity":"sha512-J3/k1qo22WjlGiugIblhOPntPH7PGeH1TfHyeotbhW4x32ScfiIzYhtx54wSKE3nXrG+Quiig/zPGIKlZqE1yA==","signatures":[{"sig":"MEYCIQCfNjySsBfjhvrvOcwYK2we4ZqaDHS15rMwr2xDadfHkQIhAJoYdPmGhmEA1F24hm9bHd+H9QvJHJRngkGL9PY4qUzq","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@fluojs%2fruntime@1.0.0-beta.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":259899},"main":"./dist/index.js","type":"module","_from":"file:fluojs-runtime-1.0.0-beta.5.tgz","types":"./dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./web":{"types":"./dist/web.d.ts","import":"./dist/web.js"},"./node":{"types":"./dist/node.d.ts","import":"./dist/node.js"},"./internal":{"types":"./dist/internal.d.ts","import":"./dist/internal.js"},"./internal-node":{"types":"./dist/internal-node.d.ts","import":"./dist/internal-node.js"},"./internal/http-adapter":{"types":"./dist/internal-http-adapter.d.ts","import":"./dist/internal-http-adapter.js"},"./internal/request-response-factory":{"types":"./dist/internal-request-response-factory.d.ts","import":"./dist/internal-request-response-factory.js"}},"private":false,"scripts":{"test":"pnpm exec vitest run -c vitest.config.ts","build":"pnpm exec babel src --extensions .ts --ignore 'src/**/*.test.ts' --out-dir dist --config-file ../../tooling/babel/babel.config.cjs && pnpm exec tsc -p tsconfig.build.json","prebuild":"node ../../tooling/scripts/clean-dist.mjs","typecheck":"pnpm exec tsc -p tsconfig.json --noEmit","test:watch":"pnpm exec vitest -c vitest.config.ts"},"_npmUser":{"name":"ayden94","email":"wpfekdml@naver.com"},"_resolved":"/tmp/9fde887633857209305716aae19268a0/fluojs-runtime-1.0.0-beta.5.tgz","_integrity":"sha512-J3/k1qo22WjlGiugIblhOPntPH7PGeH1TfHyeotbhW4x32ScfiIzYhtx54wSKE3nXrG+Quiig/zPGIKlZqE1yA==","repository":{"url":"git+https://github.com/fluojs/fluo.git","type":"git","directory":"packages/runtime"},"_npmVersion":"10.8.2","description":"Application bootstrap and runtime orchestration — module graph compilation, DI wiring, and diagnostics export for Fluo.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"@fluojs/di":"^1.0.0-beta.5","@fluojs/core":"^1.0.0-beta.2","@fluojs/http":"^1.0.0-beta.4","@fluojs/config":"^1.0.0-beta.3"},"publishConfig":{"access":"public"},"typesVersions":{"*":{"internal-node":["./dist/internal-node.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^3.2.4","@fluojs/serialization":"^1.0.0-beta.3"},"_npmOperationalInternal":{"tmp":"tmp/runtime_1.0.0-beta.5_1777466600754_0.5878446623049836","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-beta.6":{"name":"@fluojs/runtime","version":"1.0.0-beta.6","keywords":["fluo","runtime","bootstrap","application","module-graph","orchestration"],"license":"MIT","_id":"@fluojs/runtime@1.0.0-beta.6","maintainers":[{"name":"ayden94","email":"wpfekdml@naver.com"}],"homepage":"https://github.com/fluojs/fluo#readme","bugs":{"url":"https://github.com/fluojs/fluo/issues"},"dist":{"shasum":"2672e5dc10858bc480a8d16541b672dd4eab408d","tarball":"https://registry.npmjs.org/@fluojs/runtime/-/runtime-1.0.0-beta.6.tgz","fileCount":109,"integrity":"sha512-x/DjNFM1xfaUcGnrlJpR1r2iJCPlF2XcYYV1oLLbcjKMLcOkIvc5fEZEzQZ9MVYz2VbK5uJlVc7mIYiypou9Gg==","signatures":[{"sig":"MEUCIAUvlLkfjw2oyksChXjlmlSwO0xu6H+fokGtZSaE7eM0AiEAkS8/gxk7Om7Np4I0X/P6lHwgwKEXd4m6cQH/0uprN+8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@fluojs%2fruntime@1.0.0-beta.6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":260456},"main":"./dist/index.js","type":"module","_from":"file:fluojs-runtime-1.0.0-beta.6.tgz","types":"./dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./web":{"types":"./dist/web.d.ts","import":"./dist/web.js"},"./node":{"types":"./dist/node.d.ts","import":"./dist/node.js"},"./internal":{"types":"./dist/internal.d.ts","import":"./dist/internal.js"},"./internal-node":{"types":"./dist/internal-node.d.ts","import":"./dist/internal-node.js"},"./internal/http-adapter":{"types":"./dist/internal-http-adapter.d.ts","import":"./dist/internal-http-adapter.js"},"./internal/request-response-factory":{"types":"./dist/internal-request-response-factory.d.ts","import":"./dist/internal-request-response-factory.js"}},"private":false,"scripts":{"test":"pnpm exec vitest run -c vitest.config.ts","build":"pnpm exec babel src --extensions .ts --ignore 'src/**/*.test.ts' --out-dir dist --config-file ../../tooling/babel/babel.config.cjs && pnpm exec tsc -p tsconfig.build.json","prebuild":"node ../../tooling/scripts/clean-dist.mjs","typecheck":"pnpm exec tsc -p tsconfig.json --noEmit","test:watch":"pnpm exec vitest -c vitest.config.ts"},"_npmUser":{"name":"ayden94","email":"wpfekdml@naver.com"},"_resolved":"/tmp/84682469d9720ba50193b4c601d320b1/fluojs-runtime-1.0.0-beta.6.tgz","_integrity":"sha512-x/DjNFM1xfaUcGnrlJpR1r2iJCPlF2XcYYV1oLLbcjKMLcOkIvc5fEZEzQZ9MVYz2VbK5uJlVc7mIYiypou9Gg==","repository":{"url":"git+https://github.com/fluojs/fluo.git","type":"git","directory":"packages/runtime"},"_npmVersion":"10.8.2","description":"Application bootstrap and runtime orchestration — module graph compilation, DI wiring, and diagnostics export for Fluo.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"@fluojs/di":"^1.0.0-beta.5","@fluojs/core":"^1.0.0-beta.2","@fluojs/http":"^1.0.0-beta.4","@fluojs/config":"^1.0.0-beta.3"},"publishConfig":{"access":"public"},"typesVersions":{"*":{"internal-node":["./dist/internal-node.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^3.2.4","@fluojs/serialization":"^1.0.0-beta.3"},"_npmOperationalInternal":{"tmp":"tmp/runtime_1.0.0-beta.6_1777519390244_0.25326041924976606","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-beta.7":{"name":"@fluojs/runtime","version":"1.0.0-beta.7","keywords":["fluo","runtime","bootstrap","application","module-graph","orchestration"],"license":"MIT","_id":"@fluojs/runtime@1.0.0-beta.7","maintainers":[{"name":"ayden94","email":"wpfekdml@naver.com"}],"homepage":"https://github.com/fluojs/fluo#readme","bugs":{"url":"https://github.com/fluojs/fluo/issues"},"dist":{"shasum":"dc272d0594a7afdd9c9b97cd3b391e1ebb24b4f9","tarball":"https://registry.npmjs.org/@fluojs/runtime/-/runtime-1.0.0-beta.7.tgz","fileCount":109,"integrity":"sha512-VDfVqQqeZ7fL7ZC6L69Eq93nc5KsHoBR8gCaO6lvknsEHSNduQLXnzhb+E0XWYJMIWNCOykFF8elVrctaciX7Q==","signatures":[{"sig":"MEYCIQDW9YaROjMwmkqjqv9szgRWCwRx2Zr7vCF9boGlDbL7MwIhAIz5pNbIktxQVtWBKCmdTCedXBUkxMwnUSLX0fH82Y5g","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@fluojs%2fruntime@1.0.0-beta.7","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":275202},"main":"./dist/index.js","type":"module","_from":"file:fluojs-runtime-1.0.0-beta.7.tgz","types":"./dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./web":{"types":"./dist/web.d.ts","import":"./dist/web.js"},"./node":{"types":"./dist/node.d.ts","import":"./dist/node.js"},"./internal":{"types":"./dist/internal.d.ts","import":"./dist/internal.js"},"./internal-node":{"types":"./dist/internal-node.d.ts","import":"./dist/internal-node.js"},"./internal/http-adapter":{"types":"./dist/internal-http-adapter.d.ts","import":"./dist/internal-http-adapter.js"},"./internal/request-response-factory":{"types":"./dist/internal-request-response-factory.d.ts","import":"./dist/internal-request-response-factory.js"}},"private":false,"scripts":{"test":"pnpm exec vitest run -c vitest.config.ts","build":"pnpm exec babel src --extensions .ts --ignore 'src/**/*.test.ts' --out-dir dist --config-file ../../tooling/babel/babel.config.cjs && pnpm exec tsc -p tsconfig.build.json","prebuild":"node ../../tooling/scripts/clean-dist.mjs","typecheck":"pnpm exec tsc -p tsconfig.json --noEmit","test:watch":"pnpm exec vitest -c vitest.config.ts"},"_npmUser":{"name":"ayden94","email":"wpfekdml@naver.com"},"_resolved":"/tmp/0f24038a013342459b3289e2cbffdd2a/fluojs-runtime-1.0.0-beta.7.tgz","_integrity":"sha512-VDfVqQqeZ7fL7ZC6L69Eq93nc5KsHoBR8gCaO6lvknsEHSNduQLXnzhb+E0XWYJMIWNCOykFF8elVrctaciX7Q==","repository":{"url":"git+https://github.com/fluojs/fluo.git","type":"git","directory":"packages/runtime"},"_npmVersion":"10.8.2","description":"Application bootstrap and runtime orchestration — module graph compilation, DI wiring, and diagnostics export for Fluo.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"@fluojs/di":"^1.0.0-beta.5","@fluojs/core":"^1.0.0-beta.2","@fluojs/http":"^1.0.0-beta.5","@fluojs/config":"^1.0.0-beta.3"},"publishConfig":{"access":"public"},"typesVersions":{"*":{"internal-node":["./dist/internal-node.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^3.2.4","@fluojs/serialization":"^1.0.0-beta.3"},"_npmOperationalInternal":{"tmp":"tmp/runtime_1.0.0-beta.7_1777533804657_0.5494718865580359","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-beta.8":{"name":"@fluojs/runtime","version":"1.0.0-beta.8","keywords":["fluo","runtime","bootstrap","application","module-graph","orchestration"],"license":"MIT","_id":"@fluojs/runtime@1.0.0-beta.8","maintainers":[{"name":"ayden94","email":"wpfekdml@naver.com"}],"homepage":"https://github.com/fluojs/fluo#readme","bugs":{"url":"https://github.com/fluojs/fluo/issues"},"dist":{"shasum":"8d856a1d059a48a4dd86e551bc607509e79c1d88","tarball":"https://registry.npmjs.org/@fluojs/runtime/-/runtime-1.0.0-beta.8.tgz","fileCount":109,"integrity":"sha512-CqlvULASjNvmSetxpCDfEl9XwPHplQnUGZqQZsXRhTHEwLbHHYv3aP6lveglWjyxVmceh14sAvV/lnlO7z9M/w==","signatures":[{"sig":"MEQCID/PsUmZMjp+FZIx0ONAWpDjeF8OmmEpQjkUegsgsfJ3AiA/6fnqKHL163l2dKzhj5k1SCqeoiYQbPUcXT9afecOUQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@fluojs%2fruntime@1.0.0-beta.8","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":277807},"main":"./dist/index.js","type":"module","_from":"file:fluojs-runtime-1.0.0-beta.8.tgz","types":"./dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./web":{"types":"./dist/web.d.ts","import":"./dist/web.js"},"./node":{"types":"./dist/node.d.ts","import":"./dist/node.js"},"./internal":{"types":"./dist/internal.d.ts","import":"./dist/internal.js"},"./internal-node":{"types":"./dist/internal-node.d.ts","import":"./dist/internal-node.js"},"./internal/http-adapter":{"types":"./dist/internal-http-adapter.d.ts","import":"./dist/internal-http-adapter.js"},"./internal/request-response-factory":{"types":"./dist/internal-request-response-factory.d.ts","import":"./dist/internal-request-response-factory.js"}},"private":false,"scripts":{"test":"pnpm exec vitest run -c vitest.config.ts","build":"pnpm exec babel src --extensions .ts --ignore 'src/**/*.test.ts' --out-dir dist --config-file ../../tooling/babel/babel.config.cjs && pnpm exec tsc -p tsconfig.build.json","prebuild":"node ../../tooling/scripts/clean-dist.mjs","typecheck":"pnpm exec tsc -p tsconfig.json --noEmit","test:watch":"pnpm exec vitest -c vitest.config.ts"},"_npmUser":{"name":"ayden94","email":"wpfekdml@naver.com"},"_resolved":"/tmp/be9c4b233c1b51f09f517358fb73232b/fluojs-runtime-1.0.0-beta.8.tgz","_integrity":"sha512-CqlvULASjNvmSetxpCDfEl9XwPHplQnUGZqQZsXRhTHEwLbHHYv3aP6lveglWjyxVmceh14sAvV/lnlO7z9M/w==","repository":{"url":"git+https://github.com/fluojs/fluo.git","type":"git","directory":"packages/runtime"},"_npmVersion":"10.8.2","description":"Application bootstrap and runtime orchestration — module graph compilation, DI wiring, and diagnostics export for Fluo.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"@fluojs/di":"^1.0.0-beta.5","@fluojs/core":"^1.0.0-beta.2","@fluojs/http":"^1.0.0-beta.6","@fluojs/config":"^1.0.0-beta.3"},"publishConfig":{"access":"public"},"typesVersions":{"*":{"internal-node":["./dist/internal-node.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^3.2.4","@fluojs/serialization":"^1.0.0-beta.3"},"_npmOperationalInternal":{"tmp":"tmp/runtime_1.0.0-beta.8_1777560874136_0.7172378513921662","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-beta.9":{"name":"@fluojs/runtime","version":"1.0.0-beta.9","keywords":["fluo","runtime","bootstrap","application","module-graph","orchestration"],"license":"MIT","_id":"@fluojs/runtime@1.0.0-beta.9","maintainers":[{"name":"ayden94","email":"wpfekdml@naver.com"}],"homepage":"https://github.com/fluojs/fluo#readme","bugs":{"url":"https://github.com/fluojs/fluo/issues"},"dist":{"shasum":"16762e512179469e4fb5547bac474635844d6cc1","tarball":"https://registry.npmjs.org/@fluojs/runtime/-/runtime-1.0.0-beta.9.tgz","fileCount":109,"integrity":"sha512-WtSWY/XJQr/z/DS9nzHwaG27Ad75zcJoopFBVQ3VeO6OoB4HQyRmd326Wi9dUBa58fEuFMW23u9J9xDsJtY5og==","signatures":[{"sig":"MEUCIQCfzPBSquwZa2GLefikdtQG6XDVhkUwUQIi7XDitP6wlAIgM+NuPag1f0dE2eWk9lqJt6+7Qv8SOTAEDM5AwEygLPM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@fluojs%2fruntime@1.0.0-beta.9","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":294505},"main":"./dist/index.js","type":"module","_from":"file:fluojs-runtime-1.0.0-beta.9.tgz","types":"./dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./web":{"types":"./dist/web.d.ts","import":"./dist/web.js"},"./node":{"types":"./dist/node.d.ts","import":"./dist/node.js"},"./internal":{"types":"./dist/internal.d.ts","import":"./dist/internal.js"},"./internal-node":{"types":"./dist/internal-node.d.ts","import":"./dist/internal-node.js"},"./internal/http-adapter":{"types":"./dist/internal-http-adapter.d.ts","import":"./dist/internal-http-adapter.js"},"./internal/request-response-factory":{"types":"./dist/internal-request-response-factory.d.ts","import":"./dist/internal-request-response-factory.js"}},"private":false,"scripts":{"test":"pnpm exec vitest run -c vitest.config.ts","build":"pnpm exec babel src --extensions .ts --ignore 'src/**/*.test.ts' --out-dir dist --config-file ../../tooling/babel/babel.config.cjs && pnpm exec tsc -p tsconfig.build.json","prebuild":"node ../../tooling/scripts/clean-dist.mjs","typecheck":"pnpm exec tsc -p tsconfig.json --noEmit","test:watch":"pnpm exec vitest -c vitest.config.ts"},"_npmUser":{"name":"ayden94","email":"wpfekdml@naver.com"},"_resolved":"/tmp/422b420dd4c5cb7fed799f7eaa5d9c3f/fluojs-runtime-1.0.0-beta.9.tgz","_integrity":"sha512-WtSWY/XJQr/z/DS9nzHwaG27Ad75zcJoopFBVQ3VeO6OoB4HQyRmd326Wi9dUBa58fEuFMW23u9J9xDsJtY5og==","repository":{"url":"git+https://github.com/fluojs/fluo.git","type":"git","directory":"packages/runtime"},"_npmVersion":"10.8.2","description":"Application bootstrap and runtime orchestration — module graph compilation, DI wiring, and diagnostics export for Fluo.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"@fluojs/di":"^1.0.0-beta.6","@fluojs/core":"^1.0.0-beta.3","@fluojs/http":"^1.0.0-beta.9","@fluojs/config":"^1.0.0-beta.5"},"publishConfig":{"access":"public"},"typesVersions":{"*":{"internal-node":["./dist/internal-node.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^3.2.4","@fluojs/serialization":"^1.0.0-beta.4"},"_npmOperationalInternal":{"tmp":"tmp/runtime_1.0.0-beta.9_1777772860513_0.7646834295545075","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-beta.10":{"name":"@fluojs/runtime","version":"1.0.0-beta.10","keywords":["fluo","runtime","bootstrap","application","module-graph","orchestration"],"license":"MIT","_id":"@fluojs/runtime@1.0.0-beta.10","maintainers":[{"name":"ayden94","email":"wpfekdml@naver.com"}],"homepage":"https://github.com/fluojs/fluo#readme","bugs":{"url":"https://github.com/fluojs/fluo/issues"},"dist":{"shasum":"47a008ca67f6e642d96621e94e959e06f8a56e58","tarball":"https://registry.npmjs.org/@fluojs/runtime/-/runtime-1.0.0-beta.10.tgz","fileCount":109,"integrity":"sha512-hT6YWuZAXqK0hq8xZdKXuA4qrUqCsnmLX/Gg/jIfdV9gZoLyTyw+B2aJotHHD2bWZ0HujJdBRAm+VahN4cfBLQ==","signatures":[{"sig":"MEUCIBd1b0jrln5oFaKTzsXWq1eKxxbIiaYPxg3mStAS4jdiAiEAmgF8LgbhG4QBtS8G1KSgLocrARfdMCOvPjNwtzsn/fc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@fluojs%2fruntime@1.0.0-beta.10","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":299314},"main":"./dist/index.js","type":"module","_from":"file:fluojs-runtime-1.0.0-beta.10.tgz","types":"./dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./web":{"types":"./dist/web.d.ts","import":"./dist/web.js"},"./node":{"types":"./dist/node.d.ts","import":"./dist/node.js"},"./internal":{"types":"./dist/internal.d.ts","import":"./dist/internal.js"},"./internal-node":{"types":"./dist/internal-node.d.ts","import":"./dist/internal-node.js"},"./internal/http-adapter":{"types":"./dist/internal-http-adapter.d.ts","import":"./dist/internal-http-adapter.js"},"./internal/request-response-factory":{"types":"./dist/internal-request-response-factory.d.ts","import":"./dist/internal-request-response-factory.js"}},"private":false,"scripts":{"test":"pnpm exec vitest run -c vitest.config.ts","build":"pnpm exec babel src --extensions .ts --ignore 'src/**/*.test.ts' --out-dir dist --config-file ../../tooling/babel/babel.config.cjs && pnpm exec tsc -p tsconfig.build.json","prebuild":"node ../../tooling/scripts/clean-dist.mjs","typecheck":"pnpm exec tsc -p tsconfig.json --noEmit","test:watch":"pnpm exec vitest -c vitest.config.ts"},"_npmUser":{"name":"ayden94","email":"wpfekdml@naver.com"},"_resolved":"/tmp/682e67d9c2d3c274038cb95cab6533dc/fluojs-runtime-1.0.0-beta.10.tgz","_integrity":"sha512-hT6YWuZAXqK0hq8xZdKXuA4qrUqCsnmLX/Gg/jIfdV9gZoLyTyw+B2aJotHHD2bWZ0HujJdBRAm+VahN4cfBLQ==","repository":{"url":"git+https://github.com/fluojs/fluo.git","type":"git","directory":"packages/runtime"},"_npmVersion":"10.8.2","description":"Application bootstrap and runtime orchestration — module graph compilation, DI wiring, and diagnostics export for Fluo.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"@fluojs/di":"^1.0.0-beta.6","@fluojs/core":"^1.0.0-beta.3","@fluojs/http":"^1.0.0-beta.9","@fluojs/config":"^1.0.0-beta.6"},"publishConfig":{"access":"public"},"typesVersions":{"*":{"internal-node":["./dist/internal-node.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^3.2.4","@fluojs/serialization":"^1.0.0-beta.4"},"_npmOperationalInternal":{"tmp":"tmp/runtime_1.0.0-beta.10_1777801636207_0.19043271785172866","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-beta.11":{"name":"@fluojs/runtime","version":"1.0.0-beta.11","keywords":["fluo","runtime","bootstrap","application","module-graph","orchestration"],"license":"MIT","_id":"@fluojs/runtime@1.0.0-beta.11","maintainers":[{"name":"ayden94","email":"wpfekdml@naver.com"}],"homepage":"https://github.com/fluojs/fluo#readme","bugs":{"url":"https://github.com/fluojs/fluo/issues"},"dist":{"shasum":"4d3335f4ea06d8d6f7fd0113b7b40c6d12084914","tarball":"https://registry.npmjs.org/@fluojs/runtime/-/runtime-1.0.0-beta.11.tgz","fileCount":109,"integrity":"sha512-ZslTAkwp3ugGBIA9SuOxnlqYUr569OdYgDk6KWfbSYBJ9pm635x50DEAjLLMG7IZF63cn6+qFLg1koRPZLwjgg==","signatures":[{"sig":"MEQCIB1NU6r2u/VhrBYb6myayngTHjnp4leGC/NaLJVU+wg5AiBUBz+x9I4oHvTcEkkI9IAxrHmJ3McwRaKpjV/GA+/DZg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@fluojs%2fruntime@1.0.0-beta.11","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":303860},"main":"./dist/index.js","type":"module","_from":"file:fluojs-runtime-1.0.0-beta.11.tgz","types":"./dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./web":{"types":"./dist/web.d.ts","import":"./dist/web.js"},"./node":{"types":"./dist/node.d.ts","import":"./dist/node.js"},"./internal":{"types":"./dist/internal.d.ts","import":"./dist/internal.js"},"./internal-node":{"types":"./dist/internal-node.d.ts","import":"./dist/internal-node.js"},"./internal/http-adapter":{"types":"./dist/internal-http-adapter.d.ts","import":"./dist/internal-http-adapter.js"},"./internal/request-response-factory":{"types":"./dist/internal-request-response-factory.d.ts","import":"./dist/internal-request-response-factory.js"}},"private":false,"scripts":{"test":"pnpm exec vitest run -c vitest.config.ts","build":"pnpm exec babel src --extensions .ts --ignore 'src/**/*.test.ts' --out-dir dist --config-file ../../tooling/babel/babel.config.cjs && pnpm exec tsc -p tsconfig.build.json","prebuild":"node ../../tooling/scripts/clean-dist.mjs","typecheck":"pnpm exec tsc -p tsconfig.json --noEmit","test:watch":"pnpm exec vitest -c vitest.config.ts"},"_npmUser":{"name":"ayden94","email":"wpfekdml@naver.com"},"_resolved":"/tmp/174d8b8b072d2794e0fb6bca4cc9372e/fluojs-runtime-1.0.0-beta.11.tgz","_integrity":"sha512-ZslTAkwp3ugGBIA9SuOxnlqYUr569OdYgDk6KWfbSYBJ9pm635x50DEAjLLMG7IZF63cn6+qFLg1koRPZLwjgg==","repository":{"url":"git+https://github.com/fluojs/fluo.git","type":"git","directory":"packages/runtime"},"_npmVersion":"10.8.2","description":"Application bootstrap and runtime orchestration — module graph compilation, DI wiring, and diagnostics export for Fluo.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"@fluojs/di":"^1.0.0-beta.6","@fluojs/core":"^1.0.0-beta.4","@fluojs/http":"^1.0.0-beta.10","@fluojs/config":"^1.0.0-beta.6"},"publishConfig":{"access":"public"},"typesVersions":{"*":{"internal-node":["./dist/internal-node.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^3.2.4","@fluojs/serialization":"^1.0.0-beta.5"},"_npmOperationalInternal":{"tmp":"tmp/runtime_1.0.0-beta.11_1777866905183_0.9022637420687254","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-beta.12":{"name":"@fluojs/runtime","version":"1.0.0-beta.12","keywords":["fluo","runtime","bootstrap","application","module-graph","orchestration"],"license":"MIT","_id":"@fluojs/runtime@1.0.0-beta.12","maintainers":[{"name":"ayden94","email":"wpfekdml@naver.com"}],"homepage":"https://github.com/fluojs/fluo#readme","bugs":{"url":"https://github.com/fluojs/fluo/issues"},"dist":{"shasum":"5b673551f91f675cb72bb21e18de34c3c0521571","tarball":"https://registry.npmjs.org/@fluojs/runtime/-/runtime-1.0.0-beta.12.tgz","fileCount":115,"integrity":"sha512-4ei3nNgsVRKsRyOsUXi16v/XZg8eyH/ky+bQnRF3FydBY9ye5qaK2iP3xnpqJl5nGWADwJ6k+JVBP4OQ99vpDw==","signatures":[{"sig":"MEUCIFPtZXY/KoexADK/hy16RDT9M4ZF6FM7PDFbseTHwPJ1AiEA/BilJnwSDOUPAOT7y4Iepm5yoeJtMgrUcpN0etjuj/E=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@fluojs%2fruntime@1.0.0-beta.12","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":321246},"main":"./dist/index.js","type":"module","_from":"file:fluojs-runtime-1.0.0-beta.12.tgz","types":"./dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./web":{"types":"./dist/web.d.ts","import":"./dist/web.js"},"./node":{"types":"./dist/node.d.ts","import":"./dist/node.js"},"./internal":{"types":"./dist/internal.d.ts","import":"./dist/internal.js"},"./internal-node":{"types":"./dist/internal-node.d.ts","import":"./dist/internal-node.js"},"./internal/http-adapter":{"types":"./dist/internal-http-adapter.d.ts","import":"./dist/internal-http-adapter.js"},"./internal/request-response-factory":{"types":"./dist/internal-request-response-factory.d.ts","import":"./dist/internal-request-response-factory.js"}},"private":false,"scripts":{"test":"pnpm exec vitest run -c vitest.config.ts","build":"pnpm exec babel src --extensions .ts --ignore 'src/**/*.test.ts' --out-dir dist --config-file ../../tooling/babel/babel.config.cjs && pnpm exec tsc -p tsconfig.build.json","prebuild":"node ../../tooling/scripts/clean-dist.mjs","typecheck":"pnpm exec tsc -p tsconfig.json --noEmit","test:watch":"pnpm exec vitest -c vitest.config.ts"},"_npmUser":{"name":"ayden94","email":"wpfekdml@naver.com"},"_resolved":"/tmp/b95c8abb9649a9ec99b90a0a6fbc0ea8/fluojs-runtime-1.0.0-beta.12.tgz","_integrity":"sha512-4ei3nNgsVRKsRyOsUXi16v/XZg8eyH/ky+bQnRF3FydBY9ye5qaK2iP3xnpqJl5nGWADwJ6k+JVBP4OQ99vpDw==","repository":{"url":"git+https://github.com/fluojs/fluo.git","type":"git","directory":"packages/runtime"},"_npmVersion":"10.8.2","description":"Application bootstrap and runtime orchestration — module graph compilation, DI wiring, and diagnostics export for Fluo.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"@fluojs/di":"^1.0.0-beta.7","@fluojs/core":"^1.0.0-beta.5","@fluojs/http":"^1.0.0-beta.10","@fluojs/config":"^1.0.0-beta.8"},"publishConfig":{"access":"public"},"typesVersions":{"*":{"internal-node":["./dist/internal-node.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^3.2.4","@fluojs/serialization":"^1.0.0-beta.6"},"_npmOperationalInternal":{"tmp":"tmp/runtime_1.0.0-beta.12_1778380064508_0.597266841712434","host":"s3://npm-registry-packages-npm-production"}},"1.0.0":{"name":"@fluojs/runtime","version":"1.0.0","keywords":["fluo","runtime","bootstrap","application","module-graph","orchestration"],"license":"MIT","_id":"@fluojs/runtime@1.0.0","maintainers":[{"name":"ayden94","email":"wpfekdml@naver.com"}],"homepage":"https://github.com/fluojs/fluo#readme","bugs":{"url":"https://github.com/fluojs/fluo/issues"},"dist":{"shasum":"cd7059f135f0156cf7bfb892bc64653b872b1045","tarball":"https://registry.npmjs.org/@fluojs/runtime/-/runtime-1.0.0.tgz","fileCount":115,"integrity":"sha512-CJkfsrudmWR0DsnYxTS5BCqnvx2Jxro1pn+gMfB5Ov6IOH1KNA+05EzNpQMQllKxzK6S41LTZ7YNQDOpWsisrQ==","signatures":[{"sig":"MEYCIQCCf6n9oEA9ERDknZh5GKtLt493UtkhKaxQWHm9UW8M9AIhAMM1+lenN2K3gDVFdWoqT0OUzPesxEX2NVhwj+Spty3Z","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@fluojs%2fruntime@1.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":323249},"main":"./dist/index.js","type":"module","_from":"file:fluojs-runtime-1.0.0.tgz","types":"./dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./web":{"types":"./dist/web.d.ts","import":"./dist/web.js"},"./node":{"types":"./dist/node.d.ts","import":"./dist/node.js"},"./internal":{"types":"./dist/internal.d.ts","import":"./dist/internal.js"},"./internal-node":{"types":"./dist/internal-node.d.ts","import":"./dist/internal-node.js"},"./internal/http-adapter":{"types":"./dist/internal-http-adapter.d.ts","import":"./dist/internal-http-adapter.js"},"./internal/request-response-factory":{"types":"./dist/internal-request-response-factory.d.ts","import":"./dist/internal-request-response-factory.js"}},"private":false,"scripts":{"test":"pnpm exec vitest run -c vitest.config.ts","build":"pnpm exec babel src --extensions .ts --ignore 'src/**/*.test.ts' --out-dir dist --config-file ../../tooling/babel/babel.config.cjs && pnpm exec tsc -p tsconfig.build.json","prebuild":"node ../../tooling/scripts/clean-dist.mjs","typecheck":"pnpm exec tsc -p tsconfig.json --noEmit","test:watch":"pnpm exec vitest -c vitest.config.ts"},"_npmUser":{"name":"ayden94","email":"wpfekdml@naver.com"},"_resolved":"/tmp/2fc4f6f47f2b73d57e584736250a4940/fluojs-runtime-1.0.0.tgz","_integrity":"sha512-CJkfsrudmWR0DsnYxTS5BCqnvx2Jxro1pn+gMfB5Ov6IOH1KNA+05EzNpQMQllKxzK6S41LTZ7YNQDOpWsisrQ==","repository":{"url":"git+https://github.com/fluojs/fluo.git","type":"git","directory":"packages/runtime"},"_npmVersion":"10.8.2","description":"Application bootstrap and runtime orchestration — module graph compilation, DI wiring, and diagnostics export for Fluo.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"@fluojs/di":"^1.0.0","@fluojs/core":"^1.0.0","@fluojs/http":"^1.0.0","@fluojs/config":"^1.0.0"},"publishConfig":{"access":"public"},"typesVersions":{"*":{"internal-node":["./dist/internal-node.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^3.2.4","@fluojs/serialization":"^1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/runtime_1.0.0_1778596775997_0.13010033384607644","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@fluojs/runtime","version":"1.0.1","keywords":["fluo","runtime","bootstrap","application","module-graph","orchestration"],"license":"MIT","_id":"@fluojs/runtime@1.0.1","maintainers":[{"name":"ayden94","email":"wpfekdml@naver.com"}],"homepage":"https://github.com/fluojs/fluo#readme","bugs":{"url":"https://github.com/fluojs/fluo/issues"},"dist":{"shasum":"090242bdd01558299fd9b8c604110804d3a860a2","tarball":"https://registry.npmjs.org/@fluojs/runtime/-/runtime-1.0.1.tgz","fileCount":115,"integrity":"sha512-inLX6/PZQvg6ihJO6dODj9MrjPinemJU8TojWvcSzy6vOt7l1QhU7EpiAlsGwnj69Hg7+BzXlz8rze+uHtrYYg==","signatures":[{"sig":"MEUCIDUpZQYd1IyNXEdYm6PpuUwUc1B1+zYaCy5WLbpn6GNlAiEAm1SFlqko/uhAjXEI+0CI45t0Wu9vfx3QOJrIKk+53J8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@fluojs%2fruntime@1.0.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":325018},"main":"./dist/index.js","type":"module","_from":"file:fluojs-runtime-1.0.1.tgz","types":"./dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./web":{"types":"./dist/web.d.ts","import":"./dist/web.js"},"./node":{"types":"./dist/node.d.ts","import":"./dist/node.js"},"./internal":{"types":"./dist/internal.d.ts","import":"./dist/internal.js"},"./internal-node":{"types":"./dist/internal-node.d.ts","import":"./dist/internal-node.js"},"./internal/http-adapter":{"types":"./dist/internal-http-adapter.d.ts","import":"./dist/internal-http-adapter.js"},"./internal/request-response-factory":{"types":"./dist/internal-request-response-factory.d.ts","import":"./dist/internal-request-response-factory.js"}},"private":false,"scripts":{"test":"pnpm exec vitest run -c vitest.config.ts","build":"pnpm exec babel src --extensions .ts --ignore 'src/**/*.test.ts' --out-dir dist --config-file ../../tooling/babel/babel.config.cjs && pnpm exec tsc -p tsconfig.build.json","prebuild":"node ../../tooling/scripts/clean-dist.mjs","typecheck":"pnpm exec tsc -p tsconfig.json --noEmit","test:watch":"pnpm exec vitest -c vitest.config.ts"},"_npmUser":{"name":"ayden94","email":"wpfekdml@naver.com"},"_resolved":"/tmp/66ca9493f24dd6b3d85443a740e630b0/fluojs-runtime-1.0.1.tgz","_integrity":"sha512-inLX6/PZQvg6ihJO6dODj9MrjPinemJU8TojWvcSzy6vOt7l1QhU7EpiAlsGwnj69Hg7+BzXlz8rze+uHtrYYg==","repository":{"url":"git+https://github.com/fluojs/fluo.git","type":"git","directory":"packages/runtime"},"_npmVersion":"10.8.2","description":"Application bootstrap and runtime orchestration — module graph compilation, DI wiring, and diagnostics export for Fluo.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"@fluojs/di":"^1.0.1","@fluojs/core":"^1.0.1","@fluojs/http":"^1.0.0","@fluojs/config":"^1.0.1"},"publishConfig":{"access":"public"},"typesVersions":{"*":{"internal-node":["./dist/internal-node.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^3.2.4","@fluojs/serialization":"^1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/runtime_1.0.1_1778676690119_0.31416484549633394","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@fluojs/runtime","version":"1.1.0","keywords":["fluo","runtime","bootstrap","application","module-graph","orchestration"],"license":"MIT","_id":"@fluojs/runtime@1.1.0","maintainers":[{"name":"ayden94","email":"wpfekdml@naver.com"}],"homepage":"https://github.com/fluojs/fluo#readme","bugs":{"url":"https://github.com/fluojs/fluo/issues"},"dist":{"shasum":"b604bf7a66bf2ec2bdc67fefbf3815a372cba993","tarball":"https://registry.npmjs.org/@fluojs/runtime/-/runtime-1.1.0.tgz","fileCount":115,"integrity":"sha512-d71pwn+mqEXPqRLh705KkCq4I0r78fKEhRyYG35c7UvaZTANqpkL7EMyT92Ii7/ZksjEM88YRV7pC4bzfUsjMg==","signatures":[{"sig":"MEUCIQCr7udSEX1YgMVwiRmMd9AXotX3IT8EzNedLu1yw2SRiQIgIoOlUwvajjNpRiAjyDyCJHr7MAgXIfFEt5aguAy28LY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@fluojs%2fruntime@1.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":325825},"main":"./dist/index.js","type":"module","_from":"file:fluojs-runtime-1.1.0.tgz","types":"./dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./web":{"types":"./dist/web.d.ts","import":"./dist/web.js"},"./node":{"types":"./dist/node.d.ts","import":"./dist/node.js"},"./internal":{"types":"./dist/internal.d.ts","import":"./dist/internal.js"},"./internal-node":{"types":"./dist/internal-node.d.ts","import":"./dist/internal-node.js"},"./internal/http-adapter":{"types":"./dist/internal-http-adapter.d.ts","import":"./dist/internal-http-adapter.js"},"./internal/request-response-factory":{"types":"./dist/internal-request-response-factory.d.ts","import":"./dist/internal-request-response-factory.js"}},"private":false,"scripts":{"test":"pnpm exec vitest run -c vitest.config.ts","build":"pnpm exec babel src --extensions .ts --ignore 'src/**/*.test.ts' --out-dir dist --config-file ../../tooling/babel/babel.config.cjs && pnpm exec tsc -p tsconfig.build.json","prebuild":"node ../../tooling/scripts/clean-dist.mjs","typecheck":"pnpm exec tsc -p tsconfig.json --noEmit","test:watch":"pnpm exec vitest -c vitest.config.ts"},"_npmUser":{"name":"ayden94","email":"wpfekdml@naver.com"},"_resolved":"/tmp/228ebfb14f29a8e35868fa2b73fe6351/fluojs-runtime-1.1.0.tgz","_integrity":"sha512-d71pwn+mqEXPqRLh705KkCq4I0r78fKEhRyYG35c7UvaZTANqpkL7EMyT92Ii7/ZksjEM88YRV7pC4bzfUsjMg==","repository":{"url":"git+https://github.com/fluojs/fluo.git","type":"git","directory":"packages/runtime"},"_npmVersion":"10.8.2","description":"Application bootstrap and runtime orchestration — module graph compilation, DI wiring, and diagnostics export for Fluo.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"@fluojs/di":"^1.0.2","@fluojs/core":"^1.0.2","@fluojs/http":"^1.0.0","@fluojs/config":"^1.0.2"},"publishConfig":{"access":"public"},"typesVersions":{"*":{"internal-node":["./dist/internal-node.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^3.2.4","@fluojs/serialization":"^1.0.2"},"_npmOperationalInternal":{"tmp":"tmp/runtime_1.1.0_1778818828094_0.45340756802566107","host":"s3://npm-registry-packages-npm-production"}},"1.1.1":{"name":"@fluojs/runtime","version":"1.1.1","keywords":["fluo","runtime","bootstrap","application","module-graph","orchestration"],"license":"MIT","_id":"@fluojs/runtime@1.1.1","maintainers":[{"name":"ayden94","email":"wpfekdml@naver.com"}],"homepage":"https://github.com/fluojs/fluo#readme","bugs":{"url":"https://github.com/fluojs/fluo/issues"},"dist":{"shasum":"b58835fd1ae0ede5b1a136e75954dbb278388572","tarball":"https://registry.npmjs.org/@fluojs/runtime/-/runtime-1.1.1.tgz","fileCount":115,"integrity":"sha512-pZVs2qgdQiAE9LKUHT0sr/Zbm3Nnlik967779RSBBU3z88NVk7BFUfOtd1GIeHQ7Vbq/DO6SXEIqSVA23NatOw==","signatures":[{"sig":"MEYCIQCIEv9GELdq/IN8K3sXEQfKv9wz2tYp/Q/QA+lRbVRnjwIhANBtV2Cw4zny6CkFTch2ni9EaM9HlffunnZ7JuAQ0iuc","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@fluojs%2fruntime@1.1.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":327632},"main":"./dist/index.js","type":"module","_from":"file:fluojs-runtime-1.1.1.tgz","types":"./dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./web":{"types":"./dist/web.d.ts","import":"./dist/web.js"},"./node":{"types":"./dist/node.d.ts","import":"./dist/node.js"},"./internal":{"types":"./dist/internal.d.ts","import":"./dist/internal.js"},"./internal-node":{"types":"./dist/internal-node.d.ts","import":"./dist/internal-node.js"},"./internal/http-adapter":{"types":"./dist/internal-http-adapter.d.ts","import":"./dist/internal-http-adapter.js"},"./internal/request-response-factory":{"types":"./dist/internal-request-response-factory.d.ts","import":"./dist/internal-request-response-factory.js"}},"private":false,"scripts":{"test":"pnpm exec vitest run -c vitest.config.ts","build":"pnpm exec babel src --extensions .ts --ignore 'src/**/*.test.ts' --out-dir dist --config-file ../../tooling/babel/babel.config.cjs && pnpm exec tsc -p tsconfig.build.json","prebuild":"node ../../tooling/scripts/clean-dist.mjs","typecheck":"pnpm exec tsc -p tsconfig.json --noEmit","test:watch":"pnpm exec vitest -c vitest.config.ts"},"_npmUser":{"name":"ayden94","email":"wpfekdml@naver.com"},"_resolved":"/tmp/d827a690fcf84b188f6b670e95c8a997/fluojs-runtime-1.1.1.tgz","_integrity":"sha512-pZVs2qgdQiAE9LKUHT0sr/Zbm3Nnlik967779RSBBU3z88NVk7BFUfOtd1GIeHQ7Vbq/DO6SXEIqSVA23NatOw==","repository":{"url":"git+https://github.com/fluojs/fluo.git","type":"git","directory":"packages/runtime"},"_npmVersion":"10.8.2","description":"Application bootstrap and runtime orchestration — module graph compilation, DI wiring, and diagnostics export for Fluo.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"@fluojs/di":"^1.0.3","@fluojs/core":"^1.0.3","@fluojs/http":"^1.1.0","@fluojs/config":"^1.0.2"},"publishConfig":{"access":"public"},"typesVersions":{"*":{"internal-node":["./dist/internal-node.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^3.2.4","@fluojs/serialization":"^1.0.3"},"_npmOperationalInternal":{"tmp":"tmp/runtime_1.1.1_1778985918146_0.9541065449155546","host":"s3://npm-registry-packages-npm-production"}},"1.1.2":{"name":"@fluojs/runtime","version":"1.1.2","keywords":["fluo","runtime","bootstrap","application","module-graph","orchestration"],"license":"MIT","_id":"@fluojs/runtime@1.1.2","maintainers":[{"name":"ayden94","email":"wpfekdml@naver.com"}],"homepage":"https://github.com/fluojs/fluo#readme","bugs":{"url":"https://github.com/fluojs/fluo/issues"},"dist":{"shasum":"f49df3df882fa4b117d5204a4f75eaa219d9a2e6","tarball":"https://registry.npmjs.org/@fluojs/runtime/-/runtime-1.1.2.tgz","fileCount":118,"integrity":"sha512-wELS7MCB81Mm3OM2FnCV9t9Y6WOHzGTmM35RKUL3PRXIRcWVDPh3x5twnPNslsg01xcpABOpfGkaGExPyRe9Mw==","signatures":[{"sig":"MEQCIEvL+3UnXgUv19mLX0G+k/xHjLqP2i5SvaaP3bf9oqBMAiBl4apiKzu9PWw2goeHnAH0rAF5HRREBV5YqOuoZynJIQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@fluojs%2fruntime@1.1.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":329366},"main":"./dist/index.js","type":"module","_from":"file:fluojs-runtime-1.1.2.tgz","types":"./dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./web":{"types":"./dist/web.d.ts","import":"./dist/web.js"},"./node":{"types":"./dist/node.d.ts","import":"./dist/node.js"},"./internal":{"types":"./dist/internal.d.ts","import":"./dist/internal.js"},"./internal-node":{"types":"./dist/internal-node.d.ts","import":"./dist/internal-node.js"},"./internal/http-adapter":{"types":"./dist/internal-http-adapter.d.ts","import":"./dist/internal-http-adapter.js"},"./internal/request-response-factory":{"types":"./dist/internal-request-response-factory.d.ts","import":"./dist/internal-request-response-factory.js"}},"private":false,"scripts":{"test":"pnpm exec vitest run -c vitest.config.ts","build":"pnpm exec babel src --extensions .ts --ignore 'src/**/*.test.ts' --out-dir dist --config-file ../../tooling/babel/babel.config.cjs && pnpm exec tsc -p tsconfig.build.json","prebuild":"node ../../tooling/scripts/clean-dist.mjs","typecheck":"pnpm exec tsc -p tsconfig.json --noEmit","test:watch":"pnpm exec vitest -c vitest.config.ts"},"_npmUser":{"name":"ayden94","email":"wpfekdml@naver.com"},"_resolved":"/tmp/1b329122c1a8ac05f0d027271c9d9cfc/fluojs-runtime-1.1.2.tgz","_integrity":"sha512-wELS7MCB81Mm3OM2FnCV9t9Y6WOHzGTmM35RKUL3PRXIRcWVDPh3x5twnPNslsg01xcpABOpfGkaGExPyRe9Mw==","repository":{"url":"git+https://github.com/fluojs/fluo.git","type":"git","directory":"packages/runtime"},"_npmVersion":"10.8.2","description":"Application bootstrap and runtime orchestration — module graph compilation, DI wiring, and diagnostics export for Fluo.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"@fluojs/di":"^1.0.3","@fluojs/core":"^1.0.3","@fluojs/http":"^1.1.0","@fluojs/config":"^1.0.2"},"publishConfig":{"access":"public"},"typesVersions":{"*":{"internal-node":["./dist/internal-node.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^3.2.4","@fluojs/serialization":"^1.0.4"},"_npmOperationalInternal":{"tmp":"tmp/runtime_1.1.2_1779938785622_0.9379935733778524","host":"s3://npm-registry-packages-npm-production"}},"1.1.3":{"name":"@fluojs/runtime","version":"1.1.3","keywords":["fluo","runtime","bootstrap","application","module-graph","orchestration"],"license":"MIT","_id":"@fluojs/runtime@1.1.3","maintainers":[{"name":"ayden94","email":"wpfekdml@naver.com"}],"homepage":"https://github.com/fluojs/fluo#readme","bugs":{"url":"https://github.com/fluojs/fluo/issues"},"dist":{"shasum":"8c81ec9cdeeddca9ff5a6bd551c7ea980b9b7b5e","tarball":"https://registry.npmjs.org/@fluojs/runtime/-/runtime-1.1.3.tgz","fileCount":130,"integrity":"sha512-1cY2rAbxOuWB7AibpOpGnJUn/j55pnvFbb2FGL5iSIzTFQlaEfxiUPFZeRyAQ1Gax2YNU5WQ1zjnFWylV3bLUw==","signatures":[{"sig":"MEUCICAQ3x8C/W7SP23RCxc0/tlvvfHBeYGkCEQ4YzmsW46HAiEAoOG3IIbr3EzOpfRXQNFcNTK8kAwXMsW5sNSRXaOjNZ8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@fluojs%2fruntime@1.1.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":373667},"main":"./dist/index.js","type":"module","_from":"file:fluojs-runtime-1.1.3.tgz","types":"./dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./web":{"types":"./dist/web.d.ts","import":"./dist/web.js"},"./node":{"types":"./dist/node.d.ts","import":"./dist/node.js"},"./internal":{"types":"./dist/internal.d.ts","import":"./dist/internal.js"},"./internal-node":{"types":"./dist/internal-node.d.ts","import":"./dist/internal-node.js"},"./internal/http-adapter":{"types":"./dist/internal-http-adapter.d.ts","import":"./dist/internal-http-adapter.js"},"./internal/request-response-factory":{"types":"./dist/internal-request-response-factory.d.ts","import":"./dist/internal-request-response-factory.js"}},"private":false,"scripts":{"test":"pnpm exec vitest run -c vitest.config.ts","build":"pnpm exec babel src --extensions .ts --ignore 'src/**/*.test.ts' --out-dir dist --config-file ../../tooling/babel/babel.config.cjs && pnpm exec tsc -p tsconfig.build.json","prebuild":"node ../../tooling/scripts/clean-dist.mjs","typecheck":"pnpm exec tsc -p tsconfig.json --noEmit","test:watch":"pnpm exec vitest -c vitest.config.ts"},"_npmUser":{"name":"ayden94","email":"wpfekdml@naver.com"},"_resolved":"/tmp/97d27a9f772dbda1246b84fecaed480b/fluojs-runtime-1.1.3.tgz","_integrity":"sha512-1cY2rAbxOuWB7AibpOpGnJUn/j55pnvFbb2FGL5iSIzTFQlaEfxiUPFZeRyAQ1Gax2YNU5WQ1zjnFWylV3bLUw==","repository":{"url":"git+https://github.com/fluojs/fluo.git","type":"git","directory":"packages/runtime"},"_npmVersion":"10.8.2","description":"Application bootstrap and runtime orchestration — module graph compilation, DI wiring, and diagnostics export for Fluo.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"@fluojs/di":"^1.0.3","@fluojs/core":"^1.0.3","@fluojs/http":"^1.1.0","@fluojs/config":"^1.0.2"},"publishConfig":{"access":"public"},"typesVersions":{"*":{"internal-node":["./dist/internal-node.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^3.2.4","@fluojs/serialization":"^1.0.4"},"_npmOperationalInternal":{"tmp":"tmp/runtime_1.1.3_1779942352526_0.695711715125203","host":"s3://npm-registry-packages-npm-production"}},"1.1.4":{"name":"@fluojs/runtime","version":"1.1.4","keywords":["fluo","runtime","bootstrap","application","module-graph","orchestration"],"license":"MIT","_id":"@fluojs/runtime@1.1.4","maintainers":[{"name":"ayden94","email":"wpfekdml@naver.com"}],"homepage":"https://github.com/fluojs/fluo#readme","bugs":{"url":"https://github.com/fluojs/fluo/issues"},"dist":{"shasum":"5e67a85aa117513e4158cedd46abd5f5d79f7203","tarball":"https://registry.npmjs.org/@fluojs/runtime/-/runtime-1.1.4.tgz","fileCount":130,"integrity":"sha512-NUP2U+9TxkMXtqAEMnqWSeje3oxRxqj5b7tQi+YfH1TNRNuk9e8yR7eyy2KJmcz0wDf8wp3AzC68X7NFunKWNQ==","signatures":[{"sig":"MEYCIQDAp8kqR3jgJtskFdypXnKWTypfzkW14VRwzHwYrs22TgIhAMDXLQ5xEnbt4OGYCOFZbOvbhcEFm7IOp/vM2vu7cykR","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@fluojs%2fruntime@1.1.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":373854},"main":"./dist/index.js","type":"module","_from":"file:fluojs-runtime-1.1.4.tgz","types":"./dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./web":{"types":"./dist/web.d.ts","import":"./dist/web.js"},"./node":{"types":"./dist/node.d.ts","import":"./dist/node.js"},"./internal":{"types":"./dist/internal.d.ts","import":"./dist/internal.js"},"./internal-node":{"types":"./dist/internal-node.d.ts","import":"./dist/internal-node.js"},"./internal/http-adapter":{"types":"./dist/internal-http-adapter.d.ts","import":"./dist/internal-http-adapter.js"},"./internal/request-response-factory":{"types":"./dist/internal-request-response-factory.d.ts","import":"./dist/internal-request-response-factory.js"}},"private":false,"scripts":{"test":"pnpm exec vitest run -c vitest.config.ts","build":"pnpm exec babel src --extensions .ts --ignore 'src/**/*.test.ts' --out-dir dist --config-file ../../tooling/babel/babel.config.cjs && pnpm exec tsc -p tsconfig.build.json","prebuild":"node ../../tooling/scripts/clean-dist.mjs","typecheck":"pnpm exec tsc -p tsconfig.json --noEmit","test:watch":"pnpm exec vitest -c vitest.config.ts"},"_npmUser":{"name":"ayden94","email":"wpfekdml@naver.com"},"_resolved":"/tmp/688f35c277c9c9414f38e556bb6e9102/fluojs-runtime-1.1.4.tgz","_integrity":"sha512-NUP2U+9TxkMXtqAEMnqWSeje3oxRxqj5b7tQi+YfH1TNRNuk9e8yR7eyy2KJmcz0wDf8wp3AzC68X7NFunKWNQ==","repository":{"url":"git+https://github.com/fluojs/fluo.git","type":"git","directory":"packages/runtime"},"_npmVersion":"10.8.2","description":"Application bootstrap and runtime orchestration — module graph compilation, DI wiring, and diagnostics export for Fluo.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"@fluojs/di":"^1.0.3","@fluojs/core":"^1.0.3","@fluojs/http":"^1.1.0","@fluojs/config":"^1.0.2"},"publishConfig":{"access":"public"},"typesVersions":{"*":{"internal-node":["./dist/internal-node.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^3.2.4","@fluojs/serialization":"^1.0.4"},"_npmOperationalInternal":{"tmp":"tmp/runtime_1.1.4_1779946371929_0.5653251318696972","host":"s3://npm-registry-packages-npm-production"}},"1.1.5":{"name":"@fluojs/runtime","version":"1.1.5","keywords":["fluo","runtime","bootstrap","application","module-graph","orchestration"],"license":"MIT","_id":"@fluojs/runtime@1.1.5","maintainers":[{"name":"ayden94","email":"wpfekdml@naver.com"}],"homepage":"https://github.com/fluojs/fluo#readme","bugs":{"url":"https://github.com/fluojs/fluo/issues"},"dist":{"shasum":"3b0cdc3185c0ccacf4a8e66fea38e0c376b96b18","tarball":"https://registry.npmjs.org/@fluojs/runtime/-/runtime-1.1.5.tgz","fileCount":130,"integrity":"sha512-6DCVAaOucRXhxNan/x7XJJHr06UBrusXPWwuuyp3xVEdVhjzHF3ZpzNtZTdPC3a47Ayy3NifWK4tF460U3qIKw==","signatures":[{"sig":"MEYCIQCwaUoJXnAM7cIyxqxsLCcT3JF/fSXynOf8vv9VdPDUGQIhAOrzmIiSbLu8J5KE77tt2wBX42kt8bdfnFEKIViW9Dfs","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@fluojs%2fruntime@1.1.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":373964},"main":"./dist/index.js","type":"module","_from":"file:fluojs-runtime-1.1.5.tgz","types":"./dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./web":{"types":"./dist/web.d.ts","import":"./dist/web.js"},"./node":{"types":"./dist/node.d.ts","import":"./dist/node.js"},"./internal":{"types":"./dist/internal.d.ts","import":"./dist/internal.js"},"./internal-node":{"types":"./dist/internal-node.d.ts","import":"./dist/internal-node.js"},"./internal/http-adapter":{"types":"./dist/internal-http-adapter.d.ts","import":"./dist/internal-http-adapter.js"},"./internal/request-response-factory":{"types":"./dist/internal-request-response-factory.d.ts","import":"./dist/internal-request-response-factory.js"}},"private":false,"scripts":{"test":"pnpm exec vitest run -c vitest.config.ts","build":"pnpm exec babel src --extensions .ts --ignore 'src/**/*.test.ts' --out-dir dist --config-file ../../tooling/babel/babel.config.cjs && pnpm exec tsc -p tsconfig.build.json","prebuild":"node ../../tooling/scripts/clean-dist.mjs","typecheck":"pnpm exec tsc -p tsconfig.json --noEmit","test:watch":"pnpm exec vitest -c vitest.config.ts"},"_npmUser":{"name":"ayden94","email":"wpfekdml@naver.com"},"_resolved":"/tmp/017963403208bc6152145a7d14f9be10/fluojs-runtime-1.1.5.tgz","_integrity":"sha512-6DCVAaOucRXhxNan/x7XJJHr06UBrusXPWwuuyp3xVEdVhjzHF3ZpzNtZTdPC3a47Ayy3NifWK4tF460U3qIKw==","repository":{"url":"git+https://github.com/fluojs/fluo.git","type":"git","directory":"packages/runtime"},"_npmVersion":"10.8.2","description":"Application bootstrap and runtime orchestration — module graph compilation, DI wiring, and diagnostics export for Fluo.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"@fluojs/di":"^1.0.3","@fluojs/core":"^1.0.3","@fluojs/http":"^1.1.0","@fluojs/config":"^1.0.2"},"publishConfig":{"access":"public"},"typesVersions":{"*":{"internal-node":["./dist/internal-node.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^3.2.4","@fluojs/serialization":"^1.0.4"},"_npmOperationalInternal":{"tmp":"tmp/runtime_1.1.5_1779953820184_0.5327800803985765","host":"s3://npm-registry-packages-npm-production"}},"1.1.6":{"name":"@fluojs/runtime","version":"1.1.6","keywords":["fluo","runtime","bootstrap","application","module-graph","orchestration"],"license":"MIT","_id":"@fluojs/runtime@1.1.6","maintainers":[{"name":"ayden94","email":"wpfekdml@naver.com"}],"homepage":"https://github.com/fluojs/fluo#readme","bugs":{"url":"https://github.com/fluojs/fluo/issues"},"dist":{"shasum":"a7788dfbdee253a75f3fef46a8e55a3cf41275a8","tarball":"https://registry.npmjs.org/@fluojs/runtime/-/runtime-1.1.6.tgz","fileCount":130,"integrity":"sha512-OllIqBlRxdeY0d/kJ1JrZAJ58WWLTukBijl6PKuVWeXVWRh4BFaRQzPJ0BPDa0laksZG4CfpIQGJcVdfJF9HRQ==","signatures":[{"sig":"MEUCIQDZ5evet7mNu4YXOIsKoNd4AsmbdNuCBFPAUQlZUSJB8gIgYZ3/s0/vNvYcNke6grL3N8Twwy4taxErogrqEXKeZNA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@fluojs%2fruntime@1.1.6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":374096},"main":"./dist/index.js","type":"module","_from":"file:fluojs-runtime-1.1.6.tgz","types":"./dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./web":{"types":"./dist/web.d.ts","import":"./dist/web.js"},"./node":{"types":"./dist/node.d.ts","import":"./dist/node.js"},"./internal":{"types":"./dist/internal.d.ts","import":"./dist/internal.js"},"./internal-node":{"types":"./dist/internal-node.d.ts","import":"./dist/internal-node.js"},"./internal/http-adapter":{"types":"./dist/internal-http-adapter.d.ts","import":"./dist/internal-http-adapter.js"},"./internal/request-response-factory":{"types":"./dist/internal-request-response-factory.d.ts","import":"./dist/internal-request-response-factory.js"}},"private":false,"scripts":{"test":"pnpm exec vitest run -c vitest.config.ts","build":"pnpm exec babel src --extensions .ts --ignore 'src/**/*.test.ts' --out-dir dist --config-file ../../tooling/babel/babel.config.cjs && pnpm exec tsc -p tsconfig.build.json","prebuild":"node ../../tooling/scripts/clean-dist.mjs","typecheck":"pnpm exec tsc -p tsconfig.json --noEmit","test:watch":"pnpm exec vitest -c vitest.config.ts"},"_npmUser":{"name":"ayden94","email":"wpfekdml@naver.com"},"_resolved":"/tmp/ab9e5009d16902bcdc8d84bbb973f48b/fluojs-runtime-1.1.6.tgz","_integrity":"sha512-OllIqBlRxdeY0d/kJ1JrZAJ58WWLTukBijl6PKuVWeXVWRh4BFaRQzPJ0BPDa0laksZG4CfpIQGJcVdfJF9HRQ==","repository":{"url":"git+https://github.com/fluojs/fluo.git","type":"git","directory":"packages/runtime"},"_npmVersion":"10.8.2","description":"Application bootstrap and runtime orchestration — module graph compilation, DI wiring, and diagnostics export for Fluo.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"@fluojs/di":"^1.1.0","@fluojs/core":"^1.0.3","@fluojs/http":"^1.1.0","@fluojs/config":"^1.0.2"},"publishConfig":{"access":"public"},"typesVersions":{"*":{"internal-node":["./dist/internal-node.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^3.2.4","@fluojs/serialization":"^1.0.4"},"_npmOperationalInternal":{"tmp":"tmp/runtime_1.1.6_1780220735156_0.24190271693926113","host":"s3://npm-registry-packages-npm-production"}},"1.1.7":{"name":"@fluojs/runtime","version":"1.1.7","keywords":["fluo","runtime","bootstrap","application","module-graph","orchestration"],"license":"MIT","_id":"@fluojs/runtime@1.1.7","maintainers":[{"name":"ayden94","email":"wpfekdml@naver.com"}],"homepage":"https://github.com/fluojs/fluo#readme","bugs":{"url":"https://github.com/fluojs/fluo/issues"},"dist":{"shasum":"46b054e1d50da30b2efaf0135562ab2e5264398c","tarball":"https://registry.npmjs.org/@fluojs/runtime/-/runtime-1.1.7.tgz","fileCount":130,"integrity":"sha512-31B9Qjs4pnWPHilS+oqmy8Z1ijjCaRvZmsqbl5McYF8DHrWe1rgpu+fTXWI45JyNthkzPEAGDpT6hImVGs9igA==","signatures":[{"sig":"MEYCIQDDTLO8qADsWUbbkehR7igIgbz2YiuMBbIYXM3Ba50GIQIhAMfinXevlId4Hl5v7uv4i0szQnSef2X2lL6IN3q+ZW/8","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@fluojs%2fruntime@1.1.7","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":374217},"main":"./dist/index.js","type":"module","_from":"file:fluojs-runtime-1.1.7.tgz","types":"./dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./web":{"types":"./dist/web.d.ts","import":"./dist/web.js"},"./node":{"types":"./dist/node.d.ts","import":"./dist/node.js"},"./internal":{"types":"./dist/internal.d.ts","import":"./dist/internal.js"},"./internal-node":{"types":"./dist/internal-node.d.ts","import":"./dist/internal-node.js"},"./internal/http-adapter":{"types":"./dist/internal-http-adapter.d.ts","import":"./dist/internal-http-adapter.js"},"./internal/request-response-factory":{"types":"./dist/internal-request-response-factory.d.ts","import":"./dist/internal-request-response-factory.js"}},"private":false,"scripts":{"test":"pnpm exec vitest run -c vitest.config.ts","build":"pnpm exec babel src --extensions .ts --ignore 'src/**/*.test.ts' --out-dir dist --config-file ../../tooling/babel/babel.config.cjs && pnpm exec tsc -p tsconfig.build.json","prebuild":"node ../../tooling/scripts/clean-dist.mjs","typecheck":"pnpm exec tsc -p tsconfig.json --noEmit","test:watch":"pnpm exec vitest -c vitest.config.ts"},"_npmUser":{"name":"ayden94","email":"wpfekdml@naver.com"},"_resolved":"/tmp/0ef20490ccff84e424f3088a0bcfa0ff/fluojs-runtime-1.1.7.tgz","_integrity":"sha512-31B9Qjs4pnWPHilS+oqmy8Z1ijjCaRvZmsqbl5McYF8DHrWe1rgpu+fTXWI45JyNthkzPEAGDpT6hImVGs9igA==","repository":{"url":"git+https://github.com/fluojs/fluo.git","type":"git","directory":"packages/runtime"},"_npmVersion":"10.8.2","description":"Application bootstrap and runtime orchestration — module graph compilation, DI wiring, and diagnostics export for Fluo.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"@fluojs/di":"^1.1.0","@fluojs/core":"^1.0.3","@fluojs/http":"^1.1.1","@fluojs/config":"^1.0.3"},"publishConfig":{"access":"public"},"typesVersions":{"*":{"internal-node":["./dist/internal-node.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^3.2.4","@fluojs/serialization":"^1.0.4"},"_npmOperationalInternal":{"tmp":"tmp/runtime_1.1.7_1780322724576_0.391555026579282","host":"s3://npm-registry-packages-npm-production"}},"1.1.8":{"name":"@fluojs/runtime","version":"1.1.8","keywords":["fluo","runtime","bootstrap","application","module-graph","orchestration"],"license":"MIT","_id":"@fluojs/runtime@1.1.8","maintainers":[{"name":"ayden94","email":"wpfekdml@naver.com"}],"homepage":"https://github.com/fluojs/fluo#readme","bugs":{"url":"https://github.com/fluojs/fluo/issues"},"dist":{"shasum":"db7f9231e2d89eddf4cbdac3103075aa59eb7240","tarball":"https://registry.npmjs.org/@fluojs/runtime/-/runtime-1.1.8.tgz","fileCount":130,"integrity":"sha512-xQwYJqshh2Bl8/H3jb1sTyFP5IsgSrpwy+uqxwfJd8q0d9WV4mHZ0viZFwXyQ5p+QttoS/B163zd+i6UUCS1kg==","signatures":[{"sig":"MEUCIQCiJuvHaEryq4hxMeuVSN+MsUDlhtma9mbN/xsbIKOZBwIgf1lJ4NoxBVTW3r2MRJljVHLdE8bJRAJ9H/sWJauVf60=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@fluojs%2fruntime@1.1.8","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":378036},"main":"./dist/index.js","type":"module","_from":"file:fluojs-runtime-1.1.8.tgz","types":"./dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./web":{"types":"./dist/web.d.ts","import":"./dist/web.js"},"./node":{"types":"./dist/node.d.ts","import":"./dist/node.js"},"./internal":{"types":"./dist/internal.d.ts","import":"./dist/internal.js"},"./internal-node":{"types":"./dist/internal-node.d.ts","import":"./dist/internal-node.js"},"./internal/http-adapter":{"types":"./dist/internal-http-adapter.d.ts","import":"./dist/internal-http-adapter.js"},"./internal/request-response-factory":{"types":"./dist/internal-request-response-factory.d.ts","import":"./dist/internal-request-response-factory.js"}},"private":false,"scripts":{"test":"pnpm exec vitest run -c vitest.config.ts","build":"pnpm exec babel src --extensions .ts --ignore 'src/**/*.test.ts' --out-dir dist --config-file ../../tooling/babel/babel.config.cjs && pnpm exec tsc -p tsconfig.build.json","prebuild":"node ../../tooling/scripts/clean-dist.mjs","typecheck":"pnpm exec tsc -p tsconfig.json --noEmit","test:watch":"pnpm exec vitest -c vitest.config.ts"},"_npmUser":{"name":"ayden94","email":"wpfekdml@naver.com"},"_resolved":"/tmp/c944f9808723f18524334195973d479d/fluojs-runtime-1.1.8.tgz","_integrity":"sha512-xQwYJqshh2Bl8/H3jb1sTyFP5IsgSrpwy+uqxwfJd8q0d9WV4mHZ0viZFwXyQ5p+QttoS/B163zd+i6UUCS1kg==","repository":{"url":"git+https://github.com/fluojs/fluo.git","type":"git","directory":"packages/runtime"},"_npmVersion":"10.8.2","description":"Application bootstrap and runtime orchestration — module graph compilation, DI wiring, and diagnostics export for Fluo.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"@fluojs/di":"^1.1.0","@fluojs/core":"^1.0.3","@fluojs/http":"^1.1.2","@fluojs/config":"^1.0.3"},"publishConfig":{"access":"public"},"typesVersions":{"*":{"internal-node":["./dist/internal-node.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^3.2.4","@fluojs/serialization":"^1.0.4"},"_npmOperationalInternal":{"tmp":"tmp/runtime_1.1.8_1781318563963_0.4232834876793503","host":"s3://npm-registry-packages-npm-production"}},"2.0.1":{"name":"@fluojs/runtime","version":"2.0.1","keywords":["fluo","runtime","bootstrap","application","module-graph","orchestration"],"license":"MIT","_id":"@fluojs/runtime@2.0.1","maintainers":[{"name":"ayden94","email":"wpfekdml@naver.com"}],"homepage":"https://github.com/fluojs/fluo#readme","bugs":{"url":"https://github.com/fluojs/fluo/issues"},"dist":{"shasum":"27a07b935893184b89b7121f906ef6ac8b963ebf","tarball":"https://registry.npmjs.org/@fluojs/runtime/-/runtime-2.0.1.tgz","fileCount":130,"integrity":"sha512-nEfmYiTZn6s0b4CA7lnXknqrOgW6LxQKfT91dy9GnC1kOVJ9enNYTbZf0v2AMuOvueiejcD/t87VZzabiy7buA==","signatures":[{"sig":"MEQCICpAQfrIpzAl92u9XZQy0lXzhg5ssDRwC3GyPWhJawjiAiBW9O7t7UqscwXntV3cTi0VbtGM1lsfX2z8PoRAjeVLjQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@fluojs%2fruntime@2.0.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":386295},"main":"./dist/index.js","type":"module","_from":"file:fluojs-runtime-2.0.1.tgz","types":"./dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./web":{"types":"./dist/web.d.ts","import":"./dist/web.js"},"./node":{"types":"./dist/node.d.ts","import":"./dist/node.js"},"./internal":{"types":"./dist/internal.d.ts","import":"./dist/internal.js"},"./internal-node":{"types":"./dist/internal-node.d.ts","import":"./dist/internal-node.js"},"./internal/http-adapter":{"types":"./dist/internal-http-adapter.d.ts","import":"./dist/internal-http-adapter.js"},"./internal/request-response-factory":{"types":"./dist/internal-request-response-factory.d.ts","import":"./dist/internal-request-response-factory.js"}},"private":false,"scripts":{"test":"pnpm exec vitest run -c vitest.config.ts","build":"pnpm exec babel src --extensions .ts --ignore 'src/**/*.test.ts' --out-dir dist --config-file ../../tooling/babel/babel.config.cjs && pnpm exec tsc -p tsconfig.build.json","prebuild":"node ../../tooling/scripts/clean-dist.mjs","typecheck":"pnpm exec tsc -p tsconfig.json --noEmit","test:watch":"pnpm exec vitest -c vitest.config.ts"},"_npmUser":{"name":"ayden94","email":"wpfekdml@naver.com"},"_resolved":"/tmp/df4d0c08500e9b3593b4e1cbb0ab7d44/fluojs-runtime-2.0.1.tgz","_integrity":"sha512-nEfmYiTZn6s0b4CA7lnXknqrOgW6LxQKfT91dy9GnC1kOVJ9enNYTbZf0v2AMuOvueiejcD/t87VZzabiy7buA==","repository":{"url":"git+https://github.com/fluojs/fluo.git","type":"git","directory":"packages/runtime"},"_npmVersion":"10.8.2","description":"Application bootstrap and runtime orchestration — module graph compilation, DI wiring, and diagnostics export for Fluo.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"@fluojs/di":"^2.0.0","@fluojs/core":"^1.1.0","@fluojs/http":"^2.0.1","@fluojs/config":"^1.0.4"},"publishConfig":{"access":"public"},"typesVersions":{"*":{"internal-node":["./dist/internal-node.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^3.2.4","@fluojs/serialization":"^1.0.5"},"_npmOperationalInternal":{"tmp":"tmp/runtime_2.0.1_1783993625735_0.9474727067012554","host":"s3://npm-registry-packages-npm-production"}},"3.0.0":{"name":"@fluojs/runtime","version":"3.0.0","keywords":["fluo","runtime","bootstrap","application","module-graph","orchestration"],"license":"MIT","_id":"@fluojs/runtime@3.0.0","maintainers":[{"name":"ayden94","email":"wpfekdml@naver.com"}],"homepage":"https://github.com/fluojs/fluo#readme","bugs":{"url":"https://github.com/fluojs/fluo/issues"},"dist":{"shasum":"289ed489dda5402c1cb2e02920b0ab4904dcb999","tarball":"https://registry.npmjs.org/@fluojs/runtime/-/runtime-3.0.0.tgz","fileCount":118,"integrity":"sha512-WaPCnKU4byJiktZVWI/32ekecd3o4jMw8BTF4sIB34qFGg8iItS7OMcrAMdotv9N5nLNDH6CYjSzukTKPjIoEQ==","signatures":[{"sig":"MEYCIQCFrCjJXCczOG8hGCWMnL03LxSXbGlQ1oCT5DqckqTV1wIhAN5xI6f5cZ3g/+8Qc9ZQxCat77tfN1AXroA3t09PTeQy","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@fluojs%2fruntime@3.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":427494},"main":"./dist/index.js","type":"module","_from":"file:fluojs-runtime-3.0.0.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./web":{"types":"./dist/web.d.ts","import":"./dist/web.js"},"./devtools":{"types":"./dist/devtools/index.d.ts","import":"./dist/devtools/index.js"},"./internal":{"types":"./dist/internal.d.ts","import":"./dist/internal.js"},"./internal/http-adapter":{"types":"./dist/internal-http-adapter.d.ts","import":"./dist/internal-http-adapter.js"},"./internal/request-response-factory":{"types":"./dist/internal-request-response-factory.d.ts","import":"./dist/internal-request-response-factory.js"}},"private":false,"scripts":{"test":"pnpm exec vitest run -c vitest.config.ts","build":"pnpm exec babel src --extensions .ts --ignore 'src/**/*.test.ts' --out-dir dist --config-file ../../tooling/babel/babel.config.cjs && pnpm exec tsc -p tsconfig.build.json","prebuild":"node ../../tooling/scripts/clean-dist.mjs","typecheck":"pnpm exec tsc -p tsconfig.json --noEmit","test:watch":"pnpm exec vitest -c vitest.config.ts"},"_npmUser":{"name":"ayden94","email":"wpfekdml@naver.com"},"_resolved":"/tmp/7207a73da5c4b37e886b9208f84bd1bc/fluojs-runtime-3.0.0.tgz","_integrity":"sha512-WaPCnKU4byJiktZVWI/32ekecd3o4jMw8BTF4sIB34qFGg8iItS7OMcrAMdotv9N5nLNDH6CYjSzukTKPjIoEQ==","repository":{"url":"git+https://github.com/fluojs/fluo.git","type":"git","directory":"packages/runtime"},"_npmVersion":"11.19.0","description":"Application bootstrap and runtime orchestration — module graph compilation, DI wiring, and diagnostics export for Fluo.","directories":{},"_nodeVersion":"24.20.0","dependencies":{"@fluojs/di":"^3.0.0","@fluojs/core":"^2.0.0","@fluojs/http":"^3.0.0","@fluojs/studio":"^2.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.11","@fluojs/serialization":"^2.0.0"},"_npmOperationalInternal":{"tmp":"tmp/runtime_3.0.0_1788755770337_0.5396353558020228","host":"s3://npm-registry-packages-npm-production"}},"3.1.0":{"name":"@fluojs/runtime","version":"3.1.0","keywords":["fluo","runtime","bootstrap","application","module-graph","orchestration"],"license":"MIT","_id":"@fluojs/runtime@3.1.0","maintainers":[{"name":"ayden94","email":"wpfekdml@naver.com"}],"homepage":"https://github.com/fluojs/fluo#readme","bugs":{"url":"https://github.com/fluojs/fluo/issues"},"dist":{"shasum":"06545a916cf48df67eb29f074bb85dc6cff170d2","tarball":"https://registry.npmjs.org/@fluojs/runtime/-/runtime-3.1.0.tgz","fileCount":118,"integrity":"sha512-djoh/nhiDmbjOlInTPNV56L9n7d2M3xE3irUSvgWpvn2dh2MlSDZ1b4NkjX00pAnTES0lS8AceFHNBDvgHpisw==","signatures":[{"sig":"MEYCIQC6A3ZhFNLnbyKzxd2RsCXuQewb6VqH/Bu4EDTzCCdOWgIhALPmdQogdLQlWeVHIJt/IXnH1hhDYCluvdur4U7RxyPS","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@fluojs%2fruntime@3.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":439140},"main":"./dist/index.js","type":"module","_from":"file:fluojs-runtime-3.1.0.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./web":{"types":"./dist/web.d.ts","import":"./dist/web.js"},"./devtools":{"types":"./dist/devtools/index.d.ts","import":"./dist/devtools/index.js"},"./internal":{"types":"./dist/internal.d.ts","import":"./dist/internal.js"},"./internal/http-adapter":{"types":"./dist/internal-http-adapter.d.ts","import":"./dist/internal-http-adapter.js"},"./internal/request-response-factory":{"types":"./dist/internal-request-response-factory.d.ts","import":"./dist/internal-request-response-factory.js"}},"private":false,"scripts":{"test":"pnpm exec vitest run -c vitest.config.ts","build":"pnpm exec babel src --extensions .ts --ignore 'src/**/*.test.ts' --out-dir dist --config-file ../../tooling/babel/babel.config.cjs && pnpm exec tsc -p tsconfig.build.json","prebuild":"node ../../tooling/scripts/clean-dist.mjs","typecheck":"pnpm exec tsc -p tsconfig.json --noEmit","test:watch":"pnpm exec vitest -c vitest.config.ts"},"_npmUser":{"name":"ayden94","email":"wpfekdml@naver.com"},"_resolved":"/tmp/b5910d2f16fba07f8f101f7da8d4adc3/fluojs-runtime-3.1.0.tgz","_integrity":"sha512-djoh/nhiDmbjOlInTPNV56L9n7d2M3xE3irUSvgWpvn2dh2MlSDZ1b4NkjX00pAnTES0lS8AceFHNBDvgHpisw==","repository":{"url":"git+https://github.com/fluojs/fluo.git","type":"git","directory":"packages/runtime"},"_npmVersion":"11.19.0","description":"Application bootstrap and runtime orchestration — module graph compilation, DI wiring, and diagnostics export for Fluo.","directories":{},"_nodeVersion":"24.20.0","dependencies":{"@fluojs/di":"^3.1.0","@fluojs/core":"^2.1.0","@fluojs/http":"^3.1.0","@fluojs/studio":"^2.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.11","@fluojs/serialization":"^2.0.0"},"_npmOperationalInternal":{"tmp":"tmp/runtime_3.1.0_1788911286364_0.0480415975501749","host":"s3://npm-registry-packages-npm-production"}},"3.1.1":{"name":"@fluojs/runtime","version":"3.1.1","keywords":["fluo","runtime","bootstrap","application","module-graph","orchestration"],"license":"MIT","_id":"@fluojs/runtime@3.1.1","maintainers":[{"name":"ayden94","email":"wpfekdml@naver.com"}],"homepage":"https://github.com/fluojs/fluo#readme","bugs":{"url":"https://github.com/fluojs/fluo/issues"},"dist":{"shasum":"c52372053e32b0b948a3d5733545dbb7dbe1f49a","tarball":"https://registry.npmjs.org/@fluojs/runtime/-/runtime-3.1.1.tgz","fileCount":121,"integrity":"sha512-VB57bMxHB1xSCbiVgi84Z2e5BUa3/MZ4h6N1GHU5n7mNZusrKLjKYR4sfvMTJrZN8EA5daHSeJ0UJlzTzCLehQ==","signatures":[{"sig":"MEUCIQCG5MPTN4f+ZRT37Jilt37gyjFiphIw5ns5M34DNBJoXwIgP9ndly5xszVThYphdSTv5L94KCyruSU2wyUhNqZsYdk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQDtybXN7cg8+4OlTzHYm9hYjIkY/UqW7bZh01vYqcM52gIhAOT/mqN6BGymYzGutIYQkHgKUTJ96AC7kkhPY/N7dOLD","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@fluojs%2fruntime@3.1.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":440780},"main":"./dist/index.js","type":"module","_from":"file:fluojs-runtime-3.1.1.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./web":{"types":"./dist/web.d.ts","import":"./dist/web.js"},"./devtools":{"types":"./dist/devtools/index.d.ts","import":"./dist/devtools/index.js"},"./internal":{"types":"./dist/internal.d.ts","import":"./dist/internal.js"},"./internal/http-adapter":{"types":"./dist/internal-http-adapter.d.ts","import":"./dist/internal-http-adapter.js"},"./internal/request-response-factory":{"types":"./dist/internal-request-response-factory.d.ts","import":"./dist/internal-request-response-factory.js"}},"private":false,"scripts":{"test":"pnpm exec vitest run -c vitest.config.ts","build":"pnpm exec babel src --extensions .ts --ignore 'src/**/*.test.ts','src/test-support/**/*.ts' --out-dir dist --config-file ../../tooling/babel/babel.config.cjs && pnpm exec tsc -p tsconfig.build.json","prebuild":"node ../../tooling/scripts/clean-dist.mjs","typecheck":"pnpm exec tsc -p tsconfig.json --noEmit","test:watch":"pnpm exec vitest -c vitest.config.ts"},"_npmUser":{"name":"ayden94","email":"wpfekdml@naver.com"},"_resolved":"/tmp/5011a4c36d6442c3d00a70bd08354efa/fluojs-runtime-3.1.1.tgz","_integrity":"sha512-VB57bMxHB1xSCbiVgi84Z2e5BUa3/MZ4h6N1GHU5n7mNZusrKLjKYR4sfvMTJrZN8EA5daHSeJ0UJlzTzCLehQ==","repository":{"url":"git+https://github.com/fluojs/fluo.git","type":"git","directory":"packages/runtime"},"_npmVersion":"11.19.0","description":"Application bootstrap and runtime orchestration — module graph compilation, DI wiring, and diagnostics export for Fluo.","directories":{},"_nodeVersion":"24.20.0","dependencies":{"@fluojs/di":"^3.1.1","@fluojs/core":"^2.1.1","@fluojs/http":"^3.1.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.11","@fluojs/studio":"^2.0.1","@fluojs/serialization":"^2.0.0"},"_npmOperationalInternal":{"tmp":"tmp/runtime_3.1.1_1789896245743_0.4830639768715115","host":"s3://npm-registry-packages-npm-production"}},"3.1.2":{"_id":"@fluojs/runtime@3.1.2","bugs":{"url":"https://github.com/fluojs/fluo/issues"},"dist":{"shasum":"bcf206a1f084c93a37f665e942e6bc0b99c584a8","tarball":"https://registry.npmjs.org/@fluojs/runtime/-/runtime-3.1.2.tgz","fileCount":121,"integrity":"sha512-JtGmX2h+vdIzwkhEfolNjxRtcZl+lMCrxuJJ9h+AbDhwQ0DcV8f15xi8y1Z4UHYv/QJ39L1smF8fzWTzX5INPQ==","signatures":[{"sig":"MEUCIQDs/N/ybX9caRfKbww6rUG/vE5zWij2u7QqLmEoVx/coAIgS5DlfILT1vKujE+zUE5Jk3Rg1YxYXUCRTTZuyyzN558=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCICu7F34lSdad/R5W65tR5Lt3M3DqDOCj70EzBZfaAqQcAiAWH87Cuh4vPnC8ULvGzZNswoxvZjNH9J1vhzpWkptegQ=="}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@fluojs%2fruntime@3.1.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":449617},"main":"./dist/index.js","name":"@fluojs/runtime","type":"module","_from":"file:fluojs-runtime-3.1.2.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./web":{"types":"./dist/web.d.ts","import":"./dist/web.js"},"./devtools":{"types":"./dist/devtools/index.d.ts","import":"./dist/devtools/index.js"},"./internal":{"types":"./dist/internal.d.ts","import":"./dist/internal.js"},"./internal/http-adapter":{"types":"./dist/internal-http-adapter.d.ts","import":"./dist/internal-http-adapter.js"},"./internal/request-response-factory":{"types":"./dist/internal-request-response-factory.d.ts","import":"./dist/internal-request-response-factory.js"}},"license":"MIT","private":false,"scripts":{"test":"pnpm exec vitest run -c vitest.config.ts","build":"pnpm exec babel src --extensions .ts --ignore 'src/**/*.test.ts','src/test-support/**/*.ts' --out-dir dist --config-file ../../tooling/babel/babel.config.cjs && pnpm exec tsc -p tsconfig.build.json","prebuild":"node ../../tooling/scripts/clean-dist.mjs","typecheck":"pnpm exec tsc -p tsconfig.json --noEmit","test:watch":"pnpm exec vitest -c vitest.config.ts"},"version":"3.1.2","_npmUser":{"name":"ayden94","email":"wpfekdml@naver.com"},"homepage":"https://github.com/fluojs/fluo#readme","keywords":["fluo","runtime","bootstrap","application","module-graph","orchestration"],"_resolved":"/tmp/ec13a3c29e931e2808008671fd369f0f/fluojs-runtime-3.1.2.tgz","_integrity":"sha512-JtGmX2h+vdIzwkhEfolNjxRtcZl+lMCrxuJJ9h+AbDhwQ0DcV8f15xi8y1Z4UHYv/QJ39L1smF8fzWTzX5INPQ==","repository":{"url":"git+https://github.com/fluojs/fluo.git","type":"git","directory":"packages/runtime"},"_npmVersion":"11.19.0","description":"Application bootstrap and runtime orchestration — module graph compilation, DI wiring, and diagnostics export for Fluo.","directories":{},"maintainers":[{"name":"ayden94","email":"wpfekdml@naver.com"}],"_nodeVersion":"24.21.0","dependencies":{"@fluojs/di":"^3.1.2","@fluojs/core":"^2.1.2","@fluojs/http":"^3.1.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.11","@fluojs/studio":"^2.0.1","@fluojs/serialization":"^2.0.0"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/runtime_3.1.2_1790431563962_0.11371455847836165"}}},"time":{"created":"2026-04-24T15:03:49.915Z","modified":"2026-09-26T14:06:04.396Z","1.0.0-beta.1":"2026-04-24T15:03:50.128Z","1.0.0-beta.2":"2026-04-27T08:52:26.355Z","1.0.0-beta.3":"2026-04-28T10:05:08.240Z","1.0.0-beta.4":"2026-04-29T06:05:15.877Z","1.0.0-beta.5":"2026-04-29T12:43:21.033Z","1.0.0-beta.6":"2026-04-30T03:23:10.395Z","1.0.0-beta.7":"2026-04-30T07:23:24.798Z","1.0.0-beta.8":"2026-04-30T14:54:34.285Z","1.0.0-beta.9":"2026-05-03T01:47:40.734Z","1.0.0-beta.10":"2026-05-03T09:47:16.373Z","1.0.0-beta.11":"2026-05-04T03:55:05.357Z","1.0.0-beta.12":"2026-05-10T02:27:44.684Z","1.0.0":"2026-05-12T14:39:36.259Z","1.0.1":"2026-05-13T12:51:30.406Z","1.1.0":"2026-05-15T04:20:28.272Z","1.1.1":"2026-05-17T02:45:18.311Z","1.1.2":"2026-05-28T03:26:25.785Z","1.1.3":"2026-05-28T04:25:52.678Z","1.1.4":"2026-05-28T05:32:52.100Z","1.1.5":"2026-05-28T07:37:00.362Z","1.1.6":"2026-05-31T09:45:35.402Z","1.1.7":"2026-06-01T14:05:24.768Z","1.1.8":"2026-06-13T02:42:44.103Z","2.0.1":"2026-07-14T01:47:05.881Z","3.0.0":"2026-09-07T04:36:10.498Z","3.1.0":"2026-09-08T23:48:06.524Z","3.1.1":"2026-09-20T09:24:05.829Z","3.1.2":"2026-09-26T14:06:04.057Z"},"bugs":{"url":"https://github.com/fluojs/fluo/issues"},"license":"MIT","homepage":"https://github.com/fluojs/fluo#readme","keywords":["fluo","runtime","bootstrap","application","module-graph","orchestration"],"repository":{"url":"git+https://github.com/fluojs/fluo.git","type":"git","directory":"packages/runtime"},"description":"Application bootstrap and runtime orchestration — module graph compilation, DI wiring, and diagnostics export for Fluo.","maintainers":[{"name":"ayden94","email":"wpfekdml@naver.com"}],"readme":"# @fluojs/runtime\n\n<p><strong><kbd>English</kbd></strong> <a href=\"./README.ko.md\"><kbd>한국어</kbd></a></p>\n\nThe assembly layer that compiles a module graph and wires DI and HTTP into a runnable application shell.\n\nPreparing for the coordinated Node 24 release? Follow the [consumer migration guide](../../docs/getting-started/migrate-node24.md) before upgrading packages.\n\n## Table of Contents\n\n- [Installation](#installation)\n- [When to Use](#when-to-use)\n- [Quick Start](#quick-start)\n- [Common Patterns](#common-patterns)\n- [Node Static Asset Source](#node-static-asset-source)\n- [Behavioral Contracts](#behavioral-contracts)\n- [Public API Overview](#public-api-overview)\n- [Related Packages](#related-packages)\n- [Example Sources](#example-sources)\n\n## Installation\n\n```bash\nnpm install @fluojs/runtime\n```\n\nThe published package intentionally declares no package-wide `engines.node`: its root, `./web`, and runtime-neutral internal seams contain no eager Node builtin imports and are shared by Node, Bun, Deno, Cloudflare Workers, and other Web-standard hosts. Node listener, filesystem, logger, compression, and process-signal responsibilities live in `@fluojs/platform-nodejs`, which declares the verified Node engine range.\n\n## Node Static Asset Source\n\n`@fluojs/http` owns portable static middleware and representation-selection contracts. `@fluojs/platform-nodejs` exports `createNodeFileSystemAssetSource(...)`, its Node filesystem `StaticAssetSource` implementation: it validates the root directory during configuration, keeps lexical and realpath resolution inside that root (including symlink checks), and can select `.br` or `.gz` siblings. For each selected regular-file representation, it opens the verified file, eagerly copies the entire file into an immutable byte snapshot, and closes its `FileHandle` before response writing. Its returned `source()` replays only that snapshot and never reopens or lazily streams the pathname; application owners therefore bound memory by the selected whole-file size, and `size` plus the strong `ETag` describe those exact bytes. Raw Node, Express, and Fastify adapters share this portable middleware/source seam and preserve the selected representation boundary rather than applying adapter-specific re-encoding. This Node-only helper is intentionally absent from `@fluojs/runtime/web`; Web and edge deployments must provide an application-owned source.\n\n## When to Use\n\nUse this package when you need to:\n- **Bootstrap a fluo application**: Convert your modules into a running HTTP server or microservice.\n- **Orchestrate DI and Lifecycle**: Manage module-graph compilation, provider wiring, and application hooks (`onModuleInit`, `onApplicationBootstrap`).\n- **Create Standalone Contexts**: Run CLI tasks, scripts, or workers that need DI but not an HTTP server.\n- **Diagnostic Inspection**: Produce machine-readable platform snapshots, compiled route catalogs, and diagnostic issues for CLI export while leaving graph viewing and Mermaid presentation to Studio.\n\n## Quick Start\n\n### Minimal HTTP Application\n\nThe `FluoFactory` is the primary entrypoint for creating applications.\n\n```typescript\nimport { Module } from '@fluojs/core';\nimport { Controller, Get } from '@fluojs/http';\nimport { FluoFactory } from '@fluojs/runtime';\nimport { NodeHttpApplicationAdapter } from '@fluojs/platform-nodejs';\n\n@Controller('/')\nclass AppController {\n  @Get()\n  index() {\n    return { hello: 'world' };\n  }\n}\n\n@Module({\n  controllers: [AppController],\n})\nclass AppModule { }\n\n// Create and start the application\nconst app = await FluoFactory.create(AppModule, {\n  adapter: NodeHttpApplicationAdapter.create({ port: 3000 }),\n});\n\nawait app.listen();\n```\n\nThe `@Get()` above uses the empty relative path, so the controller serves GET `/`.\nWith `@Controller('cats')` it would serve `/cats`, not bypass the prefix. An empty\n`@Module()` can also bootstrap and close without inventing providers.\n\n## Common Patterns\n\n### Canonical HTTP Factory\n\nUse `FluoFactory.create(AppModule, { adapter })` → `app.listen()` → `app.close()` as the only HTTP creation path. `logger` registers the exact supplied object as `APPLICATION_LOGGER`; omission selects the portable console logger. Factory composes configured CORS → global prefix/exclusions → default security headers → caller middleware; module middleware follows route matching. CORS/prefix default off, security headers default on, and `securityHeaders: false` opts out.\n\nReadiness/listen/startup-log/host-registration failures clean acquired resources through `close('bootstrap-failed')` and preserve the initiating error. Create a new app to start again. Optional `shutdownRegistration` is supplied by the host and runs only after listen. Omission or close before listen installs no signals. Node callers can supply `createNodeShutdownSignalRegistration()` from `@fluojs/platform-nodejs`.\n\nSignal unregistration is attempted once and never skips runtime teardown on failure. Concurrent and later closes share its failure, aggregating with other teardown failures. Once runtime resources close, `state` is `closed` even if signal unregistration failed. `app.get(PublicToken<T>)` infers `Promise<T>` and checks admission around asynchronous resolution. Use `app.dispatch()` for ordinary requests; direct `container` and `dispatcher` access remains a low-level integration surface without that same gate.\n\nSee the [HTTP Factory migration](../../docs/getting-started/migrate-http-factory.md) and [lifecycle contract](../../docs/architecture/lifecycle-and-shutdown.md).\n\n### Health endpoint middleware\n\n`HealthModule.forRoot()` accepts class-based `endpointMiddleware` for its generated health and readiness routes. Middleware resolves through DI, runs in declaration order, and applies to both normalized endpoints under an optional custom `path`; omitting it preserves the default behavior.\n\n```typescript\nHealthModule.forRoot({\n  endpointMiddleware: [HealthProbeAuthMiddleware],\n  path: '/internal/',\n});\n```\n\nThis configuration applies `HealthProbeAuthMiddleware` to `/internal/health` and `/internal/ready`, not to unrelated application routes.\n\n### Streaming multipart consumption\n\nUse `parseMultipartStream(...)` from `@fluojs/runtime/web` for a standalone raw `Request` or\nrequest-like body when large uploaded files must not be materialized as `Uint8Array` values. The\nexisting `parseMultipart(...)` API remains the explicit buffered mode. Select exactly one mode for\na request: buffered and streaming parsing of the same body reject with\n`MultipartBodyConsumedError`.\n\n```typescript\nimport {\n  parseMultipartStream,\n  type MultipartFilePart,\n} from '@fluojs/runtime/web';\n\nfor await (const part of parseMultipartStream(request, {\n  maxFieldSize: 1 * 1024 * 1024,\n  maxFields: 20,\n  maxFiles: 4,\n  maxFileSize: 20 * 1024 * 1024,\n  maxHeaderSize: 8 * 1024,\n  maxTotalSize: 25 * 1024 * 1024,\n})) {\n  if (part.kind === 'field') {\n    continue; // part.name and part.value\n  }\n\n  const file: MultipartFilePart = part;\n  await store(file.stream); // finish or cancel before reading the next part\n}\n```\n\nFor Node.js, Express, Fastify, and Web application dispatch, opt in at application bootstrap with\n`multipart.strategy: 'stream'`. The route receives the same `AsyncIterable<MultipartPart>` through\n`RequestContext.request.body`; adapter dispatch creates the iterator but does not pull or buffer it\nbefore the route consumes it.\n\n```typescript\nimport { FluoFactory } from '@fluojs/runtime';\nimport { createConsoleApplicationLogger, NodeHttpApplicationAdapter } from '@fluojs/platform-nodejs';\nconst app = await FluoFactory.create(AppModule, {\n  adapter: NodeHttpApplicationAdapter.create({\n    multipart: {\n      strategy: 'stream',\n      maxTotalSize: 25 * 1024 * 1024,\n    },\n  }),\n  logger: createConsoleApplicationLogger(),\n});\n\n@Controller('/uploads')\nclass UploadController {\n  @Post('/')\n  async upload(_input: undefined, context: RequestContext) {\n    for await (const part of context.request.body as AsyncIterable<MultipartPart>) {\n      // Consume each file stream before advancing to the next part.\n    }\n  }\n}\n```\n\nStreaming mode applies bounded field and header defaults. Buffered `parseMultipart(...)` preserves\nits prior acceptance behavior for fields and headers unless `maxFieldSize`, `maxFields`, or\n`maxHeaderSize` is explicitly configured.\n\n`MultipartFilePart.stream` is a Web `ReadableStream<Uint8Array>` with parser-driven\nbackpressure: a file body is yielded before the complete request arrives, and the next request\nchunk is read only when the active file stream needs it. File-stream cancellation, request abort,\nparser failures, and every size/count/header limit cancel the active source and release the parser.\nThe parser accepts native Fetch `Request` values plus native async-iterable Node/Express/Fastify\nrequest streams (directly or as `MultipartRequestLike` wrappers); it never exposes adapter-native\nmultipart objects or temporary-file APIs.\n\n### Optional Early Hints capability\n\nThe runtime preserves the adapter-owned optional `context.response.earlyHints` capability without making it part of the required response method surface. Node.js, Express, and Fastify responses provide the writer; Web-standard response factories omit it so Bun, Deno, Workers, and custom Fetch hosts are detectable as unsupported before use. Early writes remain independent from final status, headers, body, and commit ownership. See the [`@fluojs/http` Early Hints contract](../http/README.md#early-hints).\n\n### Conditional request bootstrap\n\nRuntime bootstrap accepts the `conditionalRequest` option from `@fluojs/http`. Its resolver returns explicit representation existence plus optional validators; it runs after middleware and guards, before interceptors and controller invocation. See the [`@fluojs/http` Conditional Requests contract](../http/README.md#conditional-requests) for the resolver shape, RFC 9110 precedence, and `HEAD` rules.\n\n### Access log observers\n\nPass `createAccessLogObserver(...)` through the bootstrap `observers` option to route portable request lifecycle records to application-owned structured logging. The observer preserves the dispatcher lifecycle for native adapters by selecting the complete fallback path; see the [`@fluojs/http` Access logging contract](../http/README.md#access-logging) for trusted client identity and header allowlist requirements.\n\n\n### HTTP binder composition\n\n**Scope and inputs:** `BootstrapApplicationOptions` and `CreateApplicationOptions`\naccept `binder?: (defaultBinder: Binder) => Binder`. Import bootstrap APIs from\n`@fluojs/runtime` and the `Binder` contract and `StandardSchemaBinder` from\n`@fluojs/http`. Omission preserves the existing default HTTP binding pipeline.\n`CreateApplicationContextOptions` excludes `binder`: pure DI contexts do not\ncreate an HTTP dispatcher.\n\nThe synchronous factory runs once per HTTP application bootstrap, when runtime\nassembles the dispatcher, not once per request. It receives the default binder\nalready configured with global `converters`. Delegate ordinary DTOs to that\nbinder rather than constructing an unrelated default and losing those settings.\nThe returned binder is reused by the application's dispatcher.\n\nThis bootstrap fragment assumes an existing `AppModule` with registered\ncontrollers; see the [complete schema route example](../http/README.md#standard-schema-output-binding).\n\n```typescript\nimport { StandardSchemaBinder } from '@fluojs/http';\nimport { NodeHttpApplicationAdapter } from '@fluojs/platform-nodejs';\nimport { FluoFactory } from '@fluojs/runtime';\nimport { AppModule } from './app.js';\n\nconst app = await FluoFactory.create(AppModule, {\n  adapter: NodeHttpApplicationAdapter.create({ host: '127.0.0.1', port: 3000 }),\n  binder: (defaultBinder) => new StandardSchemaBinder(defaultBinder),\n});\nawait app.listen();\n```\n\n`FluoFactory.create(AppModule, options)` accepts the same\nfactory. Existing `converters` can be supplied alongside `binder`; they continue\nto run through the fallback for ordinary DTOs. Schema tokens instead use their\nschema's conversion/default rules. Do not pass a binder instance or an async\nfactory where this callback is expected.\n\n**Failures and ownership:** a result without a callable `bind` method rejects\nbootstrap with `TypeError`; factory exceptions propagate through existing\nbootstrap-failure cleanup. Runtime wires the binder but does not add a binder\ndisposal hook. Application-owned external resources still need their normal\nlifecycle registration. The host owns shutdown and calls `app.close()`; the\nfragment above does not register process signals. This option changes neither\nnative body parsing nor HEAD behavior. HTTP owns projection, validation errors,\nand request order; see its [input policy contract](../http/README.md#explicit-input-policies).\n\n**Evidence:** `src/types.ts`, `src/bootstrap.ts`, and\n`../testing/src/input-materialization.e2e.test.ts` are the option, composition,\nand application-boundary regression locations.\n\n### Application Context (No HTTP)\n\nFor background workers or scripts, use `createApplicationContext` to skip HTTP setup.\n\n```typescript\nimport { FluoFactory } from '@fluojs/runtime';\n\nconst context = await FluoFactory.createApplicationContext(AppModule);\n\n// Resolve a service directly from the container\nconst userService = await context.get(UserService);\nawait userService.doWork();\n\nawait context.close();\n```\n\n### Migrating PlatformShell Lifecycle Overlap\n\n`RuntimePlatformShell.start()` and `stop()` are strictly exclusive. While either transition is active, every overlapping `start()` or `stop()` call returns an immediately rejected promise with `PlatformLifecycleConflictError`, code `PLATFORM_LIFECYCLE_CONFLICT`, and `activeOperation` / `requestedOperation` on both the error and its structured `meta`. `isPlatformLifecycleConflictError(...)` validates those fields and the versioned runtime owner contract across compatible duplicate copies. The shell never shares, queues, or coalesces overlapping work. Sequential calls made after settlement remain idempotent, and failed transitions release the exclusive gate so callers can retry explicitly.\n\nIn `@fluojs/runtime` 2.x, overlapping `start()` calls could start the same components more than once, and `stop()` called during an in-flight startup could return before startup settled and leave resources running. When upgrading, give one application boundary ownership of each lifecycle transition. If another path can overlap, catch `PlatformLifecycleConflictError`, wait for the boundary-owned transition to settle, and retry explicitly only if the desired state is still required. Do not recreate a hidden queue around callback reentry; component lifecycle callbacks receive the same immediate conflict after synchronous code or arbitrary `await` boundaries.\n\n### Migrating NestJS Lifecycle Hooks\n\nThe public runtime lifecycle contract has four hooks: startup runs `onModuleInit()` and then `onApplicationBootstrap()`, while shutdown runs `onModuleDestroy()` and then `onApplicationShutdown(signal?)` in reverse lifecycle-instance order. Each eligible singleton `multi: true` contribution is a distinct lifecycle instance: startup follows contribution order and shutdown reverses it. NestJS `beforeApplicationShutdown` is unsupported and is not probed or invoked by fluo.\n\nMove shutdown preparation into the documented phase that owns it. Use `onModuleDestroy()` for module-resource teardown that must finish before the application-wide signal phase, or `onApplicationShutdown(signal?)` for signal-aware application cleanup. `@fluojs/runtime` provides no `beforeApplicationShutdown` compatibility shim, alias, fallback, or additional runtime hook.\n\nNestJS `app.enableShutdownHooks()` is not an implicit default. On Node, opt into `SIGINT`/`SIGTERM` with `FluoFactory.create(AppModule, { adapter, shutdownRegistration: createNodeShutdownSignalRegistration() })`. Fetch hosts do not install Node signals; the host calls `app.close(signal?)`.\n\nLifecycle hooks are not the listener-close or connection-drain phase. During `app.close(signal?)`, fluo runs the shutdown hooks before `adapter.close(signal?)`; migrated cleanup that requires a closed listener or completed adapter drain belongs at the adapter or host shutdown boundary after close, not in a same-named lifecycle hook.\n\n### Studio Devtools Bridge\n\n`@fluojs/runtime` can publish live Studio snapshots and request traces without reading `process.env` directly. `fluo dev --studio` remains the default Node path: the CLI starts the sidecar, creates tokenized Studio config, and injects it before the app imports runtime. Runtime reads those injected fields once, validates the HTTP(S) endpoint, and keeps a frozen private snapshot, so later mutation of the legacy process-global cannot change instrumentation inputs.\n\nPackage integrations can instead import `StudioDevtoolsRuntime` and its transport contracts from `@fluojs/runtime/devtools`, then pass a host-owned bridge through `studioDevtools` to `FluoFactory.create(...)`, or `FluoFactory.createApplicationContext(...)`. An explicit bridge takes precedence over CLI injection and needs no process-global mutation:\n\n```typescript\nimport { FluoFactory } from '@fluojs/runtime';\nimport { StudioDevtoolsRuntime } from '@fluojs/runtime/devtools';\n\nconst studioDevtools = new StudioDevtoolsRuntime({\n  appId: 'my-bun-app',\n  runtime: 'bun',\n  transport: { publish: (event) => hostStudioTransport.send(event) },\n});\n\nconst app = await FluoFactory.create(AppModule, { studioDevtools });\n```\n\nThis package publishes a transport-neutral seam, not Bun, Deno, or Cloudflare Workers sidecar implementations. A non-Node host is live-Studio supported only when its owner supplies a bridge and executable host integration evidence; otherwise use the inspect/static artifact path. Live route descriptors include the exact `graphNodeId` of their route node; Runtime retains the existing node-ID format while Studio consumes this explicit correlation instead of reproducing it. Request traces intentionally omit bodies, cookies, and full headers, and runtime strips query strings/fragments from the trace `url` before publishing events so local tokens are not copied into Studio event history. Failed-request events use only the fixed `Request failed` message and never include raw exception text, names, stacks, causes, or stringified values.\n\n### Global Exception Filters\n\nHandle cross-cutting errors by registering filters during bootstrap.\n\n```typescript\nimport { FluoFactory, type ExceptionFilterHandler } from '@fluojs/runtime';\n\nclass GlobalErrorFilter implements ExceptionFilterHandler {\n  async catch(error, { response }) {\n    console.error('Caught error:', error);\n    response.setStatus(500);\n    void response.send({ error: 'Internal Server Error' });\n    return true; // Mark as handled\n  }\n}\n\nconst app = await FluoFactory.create(AppModule, {\n  adapter: NodeHttpApplicationAdapter.create({ port: 3000 }),\n  filters: [new GlobalErrorFilter()],\n});\n```\n\n### Content negotiation\n\n`FluoFactory.create(...)` accepts `contentNegotiation` and forward\nit unchanged to the HTTP dispatcher. Configure formatters once at the application boundary and use\n`@Produces(...)` on routes to select their allowed representations:\n\n```typescript\nimport { Controller, Get, Produces } from '@fluojs/http';\nimport { FluoFactory } from '@fluojs/runtime';\n\n@Controller('/reports')\nclass ReportController {\n  @Produces('application/json', 'text/plain')\n  @Get('/')\n  getReport() {\n    return { ok: true };\n  }\n}\n\nconst app = await FluoFactory.create(AppModule, {\n  contentNegotiation: {\n    defaultMediaType: 'application/json',\n    formatters: [\n      { mediaType: 'application/json', format: JSON.stringify },\n      { mediaType: 'text/plain', format: (value) => `plain:${JSON.stringify(value)}` },\n    ],\n  },\n});\n```\n\nRuntime does not parse `Accept` or own response policy. `@fluojs/http` applies the documented\nquality, wildcard, suffix, default, malformed-input, and 406 semantics and emits canonical\n`Vary: Accept` for every successful formatter selection. Standalone application contexts do not\ncreate an HTTP dispatcher, so they do not use this option. See the\n[HTTP package contract](../http#content-negotiation).\n\n### Optional HTML Error Representations\n\n`FluoFactory.create(...)` accepts `CreateApplicationOptions.errorRepresentation`,\ninherited from `BootstrapApplicationOptions.errorRepresentation`, and passes it\nunchanged to the HTTP dispatcher. Register an application-owned provider when negotiated browser\nrequests should receive complete HTML error or not-found documents while JSON remains canonical:\n\n```typescript\nfunction escapeHtml(value: string): string {\n  return value\n    .replaceAll('&', '&amp;')\n    .replaceAll('<', '&lt;')\n    .replaceAll('>', '&gt;')\n    .replaceAll('\"', '&quot;')\n    .replaceAll(\"'\", '&#39;');\n}\n\nconst app = await FluoFactory.create(AppModule, {\n  adapter: NodeHttpApplicationAdapter.create({ port: 3000 }),\n  errorRepresentation: {\n    html: {\n      render({ json }) {\n        return `<!doctype html><main>${json.error.status}: ${escapeHtml(json.error.message)}</main>`;\n      },\n    },\n  },\n});\n```\n\nRuntime only wires this option. `@fluojs/http` owns error classification, `Accept` negotiation,\nrequest scope, response status and headers, `HEAD`, abort, commit, and canonical JSON fallback.\nThe returned string or bytes are trusted application HTML: runtime does not escape or sanitize\nrequest-derived or error-derived values, so the provider must do so before interpolation.\nStandalone application contexts do not use the option because they do not create an HTTP dispatcher.\nSee the [HTTP package contract](../http#http-error-representations).\n\n### Framework-Managed and Handler-Owned Responses\n\nThe normal request path is framework-managed: a handler returns a value, interceptors may transform it, and the runtime response writer commits it. This is the path where `@fluojs/serialization` can apply `SerializerInterceptor` to a returned DTO.\n\nAdvanced handlers can instead take response ownership by calling `RequestContext.response.send(...)`, `redirect(...)`, or a manual streaming helper. Once that response is committed, `SerializerInterceptor`, when present, bypasses serialization and returns the value it received from `next.handle()` unchanged. This does not freeze the chain result: other interceptors may still transform it. Independently, the dispatcher sees the committed response and skips a second success-response write, so it does not write the final interceptor-chain result. Direct response code must therefore produce the final safe payload before committing; a serializer cannot reshape it afterward.\n\n### Module Composition\n\nfluo uses a strict module graph. Modules must explicitly `export` providers to make them available to `importing` modules.\n\n```typescript\n@Module({\n  providers: [DatabaseService],\n  exports: [DatabaseService], // Make it available outside\n})\nclass DatabaseModule {}\n\n@Module({\n  imports: [DatabaseModule],\nproviders: [UsersService], // UsersService can inject DatabaseService\n})\nclass UsersModule {}\n```\n\n## Behavioral Contracts\n\n- Framework-owned runtime injection tokens use stable same-realm identities, so compatible duplicate copies can register and consume the same application-owned container, adapter, platform-shell, cleanup, compiled-module, provider-set, and bootstrap-readiness contracts. This does not globalize application state or change service constructor-token identity.\n- Runtime lifecycle remains a four-hook contract. Startup completes the provider-ordered `onModuleInit()` phase before `onApplicationBootstrap()`; shutdown reverses lifecycle-instance order for `onModuleDestroy()` and then `onApplicationShutdown(signal?)`. Every eligible singleton `multi: true` contribution participates as its own instance in contribution order. NestJS `beforeApplicationShutdown` is unsupported and has no compatibility shim.\n- Request body parsing enforces `maxBodySize` while bytes are still streaming for both Web-standard and Node-backed requests. Oversized Web bodies settle as HTTP 413 without waiting for stream cancellation, and cancellation failures do not mask that response, including on the default cloned-body path where the original request remains unread.\n- `preferNativeJsonBodyReader` remains accepted by `@fluojs/runtime/web` as a deprecated adapter compatibility option, but it no longer changes parsing. Web JSON bodies always use the bounded streaming reader so native whole-body reads cannot bypass `maxBodySize`.\n- On `@fluojs/platform-nodejs`, Node request body parsing normalizes the primary `content-type` media type before JSON and multipart detection, so mixed-case JSON and multipart headers preserve the documented parser behavior.\n- Node-backed and Web-standard request wrappers snapshot cheap request metadata before body parsing, then materialize `body`/`rawBody` once at the dispatch boundary so userland continues to observe synchronous parsed values.\n- Node-backed cookies/query values and Web-standard headers are snapshotted when the request wrapper is created, then lazily normalized and memoized per request; later upstream object mutations do not change the `FrameworkRequest` view.\n- Node-backed request context IDs prefer `x-request-id` and fall back to `x-correlation-id` when `x-request-id` is absent, so error responses and request-aware integrations keep the upstream correlation identifier.\n- `ApplicationContext.get()` and `Application.get()` memoize only direct root singleton class/factory provider lookups known at bootstrap, while preserving alias, request, transient, post-close, multi-provider, and `container.override()` resolution semantics.\n- `multi: true` provider tokens are not context-cache memoized: each `get()` call delegates to DI so the container can assemble a fresh contribution array while still reusing each contribution according to its own provider scope.\n- When `duplicateProviderPolicy` is `warn` or `ignore`, context-cache eligibility and lifecycle hook execution are based on the effective winning provider selected by bootstrap; stale losing providers do not seed cache entries or lifecycle hooks.\n- Module graph compilation validates runtime and `@Module(...)` provider declarations through DI's canonical normalization before cache-key generation or visibility traversal. Malformed `inject` values, dependency wrappers/tokens, and scopes therefore fail with `InvalidProviderError` instead of leaking traversal-specific errors.\n- If application or context bootstrap fails after runtime resources or lifecycle instances have been created, fluo resets readiness, runs registered runtime cleanup callbacks, invokes shutdown hooks for instances resolved so far with `bootstrap-failed`, disposes the container, logs cleanup failures, and rethrows the original bootstrap error.\n- `Application.listen()` and microservice `listen()` are serialized with shutdown: overlapping startup calls share the same in-flight startup, shutdown waits for in-flight startup to settle, and a startup that races with shutdown cannot transition the shell back to `ready` after close begins. The public `Application.state` contract remains `bootstrapped` or `ready` while teardown is pending and changes to `closed` only after teardown completes successfully. Independently, starting application or context close synchronously closes a terminal operation gate: `Application.get()`, `ApplicationContext.get()`, `connectMicroservice()`, `startAllMicroservices()`, and application `listen()` reject while teardown is pending and stay rejected after a failed close attempt. Provider lookups admitted immediately before close recheck that gate after asynchronous resolution and cannot return a stale value after shutdown starts. A later `close()` skips completed runtime teardown phases and re-enters incomplete adapter or lifecycle-hook stages according to their own retry contracts. Container-managed `onDestroy()` hooks are terminal best-effort cleanup: every materialized hook is attempted on the first container disposal, failed hooks are retried by a later explicit application or context `close()`, and hooks that completed successfully are never run again. Once microservice close starts, a terminal ingress gate rejects new `send()` and `emit()` calls before runtime or transport handoff, including while `listen()` is still pending and after a failed close attempt.\n- `Application.dispatch()` uses that same synchronous terminal admission gate. A direct dispatch started after `Application.close()` begins rejects before entering the HTTP dispatcher, including while teardown is pending, after a failed close, and after successful close. A dispatch admitted before the gate closes remains dispatcher-owned and is not retroactively cancelled by close.\n- `@fluojs/platform-nodejs` owns each pending raw Node listen operation and its `EADDRINUSE` retry timer. Calling adapter `close()` while startup is retrying cancels the retry, waits for the pending listen to settle, and prevents the listener from binding after shutdown reports completion.\n- Factory post-listen `shutdownRegistration` failure closes the created application with `bootstrap-failed` and rejects with the original registration failure independently of cleanup errors. The Node host callback rolls back partially installed handlers.\n- Shutdown signal unregistration failures do not skip application close: `app.close()` always continues through adapter shutdown, lifecycle hooks, runtime cleanup callbacks, and container disposal; if close otherwise succeeds it rejects with the unregistration error, and if close also fails it rejects with an aggregate containing both failures.\n- Connected microservices are owned children of their parent `Application`: `startAllMicroservices()` starts them sequentially and rolls back already-started children with `bootstrap-failed` if a later child fails, while `Application.close(signal)` closes connected children before parent lifecycle hooks, adapter shutdown, and container disposal.\n- `FluoFactory.createMicroservice()` preserves the original bootstrap/runtime-resolution error when cleanup fails and logs cleanup failures separately.\n- Bootstrap resolves independent singleton lifecycle providers concurrently, then runs lifecycle hooks in deterministic provider order.\n- Multipart parsing rejects payloads when the cumulative body size exceeds the configured `multipart.maxTotalSize`; runtime adapters default that limit to `maxBodySize` unless you override it.\n- `@fluojs/runtime/web` multipart parsing uses Web-standard `TextEncoder` and `Uint8Array` primitives without requiring the Node.js `Buffer` global. Uploaded file `buffer` values are `Uint8Array`; Node-only consumers can convert them explicitly with `Buffer.from(file.buffer)` at their application boundary.\n- `@fluojs/runtime/web` exposes two mutually exclusive multipart consumption modes: `parseMultipart(...)` buffers fields and files, while `parseMultipartStream(...)` yields discriminated field/file parts and never materializes complete file payloads. Streaming mode enforces per-field, per-file, total-size, field-count, file-count, and header limits while bytes are read; abort, cancellation, and parser failures cancel the active source. A body selected by either mode rejects a second buffered or streaming selection with `MultipartBodyConsumedError`.\n- `NodeHttpApplicationAdapter.create(...)` accepts `maxBodySize` only as a non-negative integer byte count and fail fast during adapter creation/bootstrap when the value is invalid.\n- Response stream backpressure helpers settle `waitForDrain()` on `drain`, `close`, or `error` so streaming writers do not hang on dead connections.\n- HTTP application bootstrap passes an optional application-owned `errorRepresentation.html` provider to the dispatcher without taking representation ownership. Canonical JSON remains the default; HTTP keeps classification, negotiation, status/header, `HEAD`, abort, commit, and fallback semantics.\n- HTTP response writing is single-owner: framework-managed handler results may be transformed by interceptors before the runtime commits them. Once a handler or response helper commits `RequestContext.response`, the dispatcher skips a second success-response write. `SerializerInterceptor` bypasses serialization and returns the value it received from `next.handle()` unchanged, while other interceptors may still transform the chain result.\n- Runtime health modules report `/ready` as `starting` with HTTP 503 until bootstrap marks them ready, and they return to `starting` as soon as application/context shutdown begins, including failed shutdown attempts.\n- Runtime health module readiness checks receive the current `RequestContext`, allowing public integrations to resolve runtime-exposed status providers without importing internal runtime tokens.\n- Signal-driven shutdown helpers preserve bounded drain semantics, log timeout/failure conditions, and set `process.exitCode` when shutdown does not finish cleanly, but they leave final process termination ownership to the surrounding host runtime.\n- Platform snapshot and diagnostic issue production stay in runtime; graph viewing, filtering presentation, and Mermaid rendering are Studio-owned contracts consumed by CLI and automation callers.\n- Compiled route inspection is a one-way projection from `HandlerDescriptor` values. Effective method, path, version, params, module, controller, and handler fields are copied into frozen entries; ordinary routes use `kind: 'http'`, while runtime-aware integrations can publish a more specific marker such as `react-page`. Route inspection never participates in matching, conflict detection, or dispatch and does not retain request body, cookie, header, query-value, or other request-private data.\n- Legacy route-inspection markers written by compatible same-realm integration copies remain discoverable by runtime inspection copies. The marker stays an immutable projection detail and does not change route matching, conflict detection, dispatch, or request-private data ownership.\n- Runtime-connected Studio instrumentation accepts either an explicit host-owned `studioDevtools` bridge or the default CLI-injected Node config, never direct `process.env` reads. The documented `@fluojs/runtime/devtools` subpath exposes transport-neutral bridge contracts so package integrations do not need private imports or process-global mutation. Explicit bridges take precedence; CLI config is captured once into a validated, frozen private snapshot and remains the no-op fallback when neither bridge nor valid config is present.\n- Studio request traces omit request/response bodies, cookies, and full headers; the trace `url` is sanitized to path-only form before publish so query tokens and fragments are not retained in local Studio event history.\n- Platform component snapshots are runtime-owned contract payloads: each component reports `readiness`, `health`, dependency ids, telemetry tags, diagnostic issues, and resource ownership through `ownership.ownsResources` / `ownership.externallyManaged`. Runtime preserves those ownership flags in shell snapshots so adapters and package integrations can distinguish resources fluo must stop from externally managed resources the host owns.\n- Runtime retains distinct lifecycle diagnostics from validation, start, rollback, and stop. Failures produced by repeatable `ready()`, `health()`, and `snapshot()` probes are bounded to the latest failure for each component and probe phase, so long-running polling cannot grow `PlatformShellSnapshot.diagnostics` without bound while the latest cause remains visible.\n- `RuntimePlatformShell.start()` and `stop()` enforce one strictly exclusive lifecycle transition. Every overlapping operation, including a same-operation call or callback reentry after arbitrary awaits, receives an immediate `PlatformLifecycleConflictError` rejection instead of shared or queued work. The active transition is published before component work begins, failed transitions release it by identity, and explicit retry after settlement preserves sequential idempotency, dependency ordering, private startup rollback, and cleanup retry behavior.\n- Module graph compile-result caching is opt-in through `moduleGraphCache: true`; its process-local cache retains at most 100 least-recently-used successful snapshots, keys entries by root module identity, runtime providers, validation tokens, module replacement pairs, core metadata versions, and the compile algorithm version, and returns isolated graph copies so caller mutations cannot poison later bootstraps. Hosts that need application-owned lifetime control can pass `new ModuleGraphCompileCache(maxEntries)` instead and call `dispose()` during application teardown.\n- `moduleReplacements` is a low-level testing seam on `bootstrapModule(...)` / `BootstrapModuleOptions`. It compiles replacement module metadata while preserving the original logical module identity, rejects replacement cycles through the normal module graph validation path, and does not mutate source module metadata.\n- `raceWithAbort(fn, signal)` always removes its abort listener once `fn` settles, including when `fn` throws synchronously before returning a promise. The synchronous throw is converted into a settled rejection so the cleanup-dependent `finally` flow still runs and the listener is not leaked across repeated failed operations.\n\n## Public API Overview\n\n- `FluoFactory`: Class-based runtime bootstrap facade with explicit static access.\n- `Application`: Extends `ApplicationContext` with `listen()`, `dispatch()`, and `state`.\n- `ApplicationContext`: Provides `get<T>(token)`, `close()`, and access to `container`, `modules`, and bootstrap diagnostics.\n- `LifecycleHooks`: Convenience union covering `OnModuleInit`, `OnApplicationBootstrap`, `OnModuleDestroy`, and `OnApplicationShutdown`.\n- `MicroserviceRuntime`: Transport contract resolved by `FluoFactory.createMicroservice(...)`. Implementations expose `listen()`, optional `send()`/`emit()`, and an optional `close(signal?)`. The optional `markShutdownStarted()` hook is invoked synchronously when the owning shell begins shutdown so implementations can close their own ingress gate before any awaited cleanup, keeping new `send()`/`emit()`/`listen()` attempts rejected even while a racing `listen()` is still settling.\n- `HealthModule.forRoot(options)`: Runtime-owned `/health` and `/ready` module facade whose readiness marker follows bootstrap and shutdown lifecycle transitions. It returns a `RuntimeHealthModule` so first-party runtime-aware packages can register `ReadinessCheck` functions without importing internal runtime seams.\n- `RuntimeHealthModule`: Module class contract returned by `HealthModule.forRoot(...)`, including `addReadinessCheck(...)`, `markReady()`, and `markStarting()`.\n- `ReadinessCheck`: Function type used by runtime health modules. Checks receive the `/ready` request context and return a boolean or promise.\n- `defineModule(cls, metadata)`: Programmatic module definition helper.\n- `CreateApplicationOptions`: Accepts `logger`, middleware policies, optional host `shutdownRegistration`, and HTTP dispatcher options. `BootstrapApplicationOptions` remains an existing integration type, not another creation function.\n- `@fluojs/runtime/devtools`: Package-integration subpath for `StudioDevtoolsRuntime`, its transport contracts, and live Studio event contracts. Pass the created bridge as `studioDevtools` during application or context bootstrap.\n- `bootstrapModule(...)`: Lower-level module graph bootstrap helper. Its `BootstrapModuleOptions` include `moduleGraphCache` for opt-in compile-result caching and `moduleReplacements` / `ModuleReplacementMap` for testing-only module replacement compilation that keeps authored module identities stable.\n- `ModuleGraphCompileCache`: Bounded caller-owned module graph compile cache. Pass an instance as `moduleGraphCache` and call `dispose()` when its application or host lifetime ends.\n- `createBootstrapTimingDiagnostics(...)`, `createRuntimeDiagnosticsGraph(...)`: Runtime-owned diagnostics snapshot helpers for CLI/support tooling. They produce machine-readable data; Studio owns viewer parsing, graph presentation, and Mermaid rendering.\n- `createRuntimeRouteInspection(...)`, `createRuntimeRouteCatalog(...)`, and `createRuntimeInspectionSnapshot(...)`: Runtime-owned immutable projections that add effective compiled route diagnostics to platform snapshots without changing HTTP route behavior.\n- `RuntimeRouteInspection` and `RuntimeInspectionSnapshot`: Serializable read-only route and inspect artifact contracts. `RuntimeRouteInspection.params` contains parameter names only, never request values.\n- `PlatformShell`, `PlatformComponent`, `PlatformShellSnapshot`, `PlatformSnapshot`, `PlatformDiagnosticIssue`, and related platform report types: Public lifecycle diagnostics and resource-ownership contracts used by runtime-aware packages. `RuntimePlatformShell` preserves component-provided ownership and emits validation/readiness/health diagnostics without requiring consumers to import internal runtime tokens.\n- `PlatformLifecycleOperation`, `PlatformLifecycleConflictError`: Root-exported lifecycle conflict contracts. The error uses code `PLATFORM_LIFECYCLE_CONFLICT` and exposes matching `activeOperation` / `requestedOperation` fields and structured metadata.\n- `createRequestAbortContext(...)`, `trackActiveRequestTransaction(...)`, `untrackActiveRequestTransaction(...)`: Request abort and active transaction helpers used by runtime-aware integrations.\n- `UploadedFile`: Runtime-neutral multipart file descriptor whose in-memory `buffer` payload is a Web-standard `Uint8Array`.\n- `MultipartFieldPart`, `MultipartFilePart`, `MultipartPart`, and `MultipartBodyConsumedError`: Typed streaming multipart contracts. `MultipartFilePart.stream` is single-consumer and must settle before iteration requests the following part.\n\n## Runtime-Specific Entry Points\n\nUse `@fluojs/platform-nodejs` for Node-host responsibilities and `@fluojs/runtime/web` for portable Web-standard helpers. Runtime's published `internal*` subpaths remain runtime-neutral package-integration seams for first-party adapters and runtime-aware packages.\n\nMigration is direct and intentionally has no compatibility shim:\n\n| Removed import | Replacement |\n| :--- | :--- |\n| `@fluojs/runtime/node` | `@fluojs/platform-nodejs` |\n| `@fluojs/runtime/internal-node` | `@fluojs/platform-nodejs/internal` |\n\nUse the supported Node adapter, logger, filesystem, and shutdown registration exports at the replacement entrypoint. Duplicate Nodejs aliases and platform bootstrap/run exports are removed.\n\n| Subpath | Purpose |\n| :--- | :--- |\n| `@fluojs/platform-nodejs` | Supported Node.js entrypoint for logger factories, the concrete Node adapter, and shutdown signal registration. |\n| `@fluojs/runtime/web` | Shared Web-standard request/response utilities for Bun, Deno, and Cloudflare Workers, including `createWebRequestResponseFactory`, `dispatchWebRequest`, `createWebFrameworkRequest`, buffered `parseMultipart`, and streaming `parseMultipartStream`. |\n| `@fluojs/runtime/internal` | Internal package-integration seam for runtime wiring tokens, runtime-owned metadata and route-inspection helpers, plus `defineModule(...)` and `createRuntimeRouteInspection(...)` for first-party runtime-neutral integrations that must align with compiled runtime descriptors. |\n| `@fluojs/platform-nodejs/internal` | Node-only internal seam for adapter/runtime plumbing; prefer `@fluojs/platform-nodejs` in application code. |\n| `@fluojs/runtime/internal/http-adapter` | Internal HTTP adapter seam for platform packages. |\n| `@fluojs/runtime/internal/request-response-factory` | Internal request/response factory seam for platform packages. |\n\n### Node-Specific Package (`@fluojs/platform-nodejs`)\n\nLogger factories, `createNodeFileSystemAssetSource({ root, precompressed })` for eager immutable Node/Express/Fastify static asset snapshots, and other supported Node-only helpers are **not** on the portable runtime root. Import them from the Node platform package:\n\n```typescript\nimport {\n  createConsoleApplicationLogger,\n  createJsonApplicationLogger,\n  createNodeFileSystemAssetSource,\n  NodeHttpApplicationAdapter,\n  type NodeFileSystemAssetPrecompression,\n  type NodeFileSystemAssetSourceOptions,\n} from '@fluojs/platform-nodejs';\n```\n\n```typescript\nconst adapter = NodeHttpApplicationAdapter.create({\n  port: 3000,\n  maxBodySize: 1_048_576,\n});\n```\n\nFor the public Node runtime surface, `maxBodySize`, `retryDelayMs`, `retryLimit`, and `shutdownTimeoutMs` are number-only non-negative integers. Values such as `'1mb'`, fractional retry counts, or negative shutdown timeouts are rejected immediately during adapter creation instead of being coerced later. Node request context IDs prefer `x-request-id`; when it is absent, `x-correlation-id` is used as the request ID fallback for runtime error responses and request-aware integrations.\n\n- `createConsoleApplicationLogger()`: Colorized console logger using `process.stdout`/`process.stderr`. The default remains the pretty format. Pass `{ mode: 'minimal' }` for concise `[fluo] LEVEL [context] message` lines, `{ mode: 'silent' }` to suppress runtime logger output, `{ level: 'warn' }` or another threshold to filter lower-severity messages, and `{ color: false }` when you need deterministic non-colored output.\n- `createJsonApplicationLogger()`: Structured JSON logger using `process.stdout`/`process.stderr`.\n- `createNodeFileSystemAssetSource(options)`: Node-only filesystem implementation of the `@fluojs/http` `StaticAssetSource` contract. `NodeFileSystemAssetSourceOptions` names its `{ root, precompressed }` boundary and `NodeFileSystemAssetPrecompression` selects `.br` / `.gz` siblings. Each accepted representation is securely opened, eagerly copied into an immutable in-memory byte snapshot, and its `FileHandle` is closed before middleware response writing. The returned `source()` only replays that snapshot; it never reopens the pathname. Application owners therefore bound memory by the selected asset size, while `size` and the strong `ETag` describe those exact snapshot bytes.\n- `NodeHttpApplicationAdapter.create()`: Raw Node `http`/`https` adapter factory for adapter-first runtime setup. The helper normalizes the primary Node request `content-type` before JSON/multipart detection and accepts `maxBodySize`, `retryDelayMs`, `retryLimit`, and `shutdownTimeoutMs` only as non-negative integers.\n- `createNodeShutdownSignalRegistration(...)`, `defaultNodeShutdownSignals()`, `registerShutdownSignals(...)`: Node-owned signal APIs. Supply the registration callback to Factory; lower-level host integrations can register directly.\n\nRuntime app logging is separate from CLI lifecycle reporting. Configure `ApplicationLogger` when you want to change logs emitted by the application/runtime itself:\n\n```typescript\nimport { createConsoleApplicationLogger, createJsonApplicationLogger } from '@fluojs/platform-nodejs';\n\nconst minimalLogger = createConsoleApplicationLogger({ mode: 'minimal', level: 'warn' });\nconst jsonLogger = createJsonApplicationLogger();\n```\n\nUse CLI reporter flags such as `fluo dev --verbose` when you need raw child-process output from the development command instead.\n\n### Node Compression Failure Migration\n\n**Breaking change:** When response compression fails before a Node response commits,\n`FrameworkResponse.send()` rejects. Adapter integrations must await that promise and handle the\nrejection; they must not swallow it or assume that an uncompressed success response was sent.\n\nFor dispatcher-managed requests, the runtime recovers by writing its JSON 500 envelope. The\nadapter removes a `Content-Type` it assigned for the failed body so the envelope uses\n`application/json`; an explicit `Content-Type` set by application code remains unchanged.\nConsumers that relied on a fulfilled `send()` or a stale adapter-assigned `text/plain` or\n`application/octet-stream` header must handle the rejection or fallback explicitly and set any\nrequired application-owned header themselves.\n\nLower-level Node compression internals stay behind the `@fluojs/platform-nodejs/internal` seam rather than the public `@fluojs/platform-nodejs` contract.\n\n### Runtime Cleanup Callbacks\n\nProviders that receive the internal `RUNTIME_CLEANUP_REGISTRATION` token may register cleanup\ncallbacks that return `void` or `Promise<void>`. Runtime close and bootstrap-failure cleanup run\nthe callbacks in registration order and await each one before entering later cleanup phases.\nFailures do not prevent later callbacks from running: `close()` aggregates cleanup failures and\nleaves that incomplete phase eligible for an explicit retry, while bootstrap preserves its original\nfailure and reports cleanup failures through `ApplicationLogger`.\n\n## Related Packages\n\n- [@fluojs/core](../core): Core decorators and metadata system.\n- [@fluojs/di](../di): Dependency injection container implementation.\n- [@fluojs/http](../http): HTTP routing, controllers, and dispatcher.\n- [@fluojs/serialization](../serialization): Decorator-aware shaping for framework-managed, uncommitted HTTP handler results.\n- [@fluojs/platform-nodejs](../platform-nodejs): Official Node.js HTTP adapter.\n- [@fluojs/studio](../studio): Viewer, filtering, and rendering helpers for runtime-produced snapshots and diagnostic issues.\n\n## Example Sources\n\n- [examples/minimal](../../examples/minimal): Smallest possible bootstrap.\n- [examples/realworld-api](../../examples/realworld-api): Full application with complex module wiring.\n- [packages/runtime/src/bootstrap.test.ts](./src/bootstrap.test.ts): Behavioral tests for bootstrap phases.\n\n## Bounded Body Parsing\n\nThe HTTP-owned `BodyParser` policy is available as `bodyParser` on\n`CreateWebRequestResponseFactoryOptions` and `DispatchWebRequestOptions` from\n`@fluojs/runtime/web`, and as the final optional argument of\n`createWebFrameworkRequest(request, signal, multipart, maxBodySize, rawBody, bodyParser)`.\nA supplied dispatch `factory` owns its parsing configuration and takes precedence.\n\n```typescript\nimport { createWebRequestResponseFactory } from '@fluojs/runtime/web';\n\nconst factory = createWebRequestResponseFactory({\n  bodyParser: 'text',\n  maxBodySize: 1_048_576,\n  rawBody: true,\n});\n```\n\nThe default remains MIME-based parsing with a 1 MiB limit. The factory creates a\ncheap metadata snapshot and materializes the body once at dispatch, before HTTP\nmiddleware/guards. Text/custom policies retain bounded UTF-8 decoding and exact\nraw bytes without header changes; they use the creation-time Content-Length.\nDefault behavior is unchanged. Web helpers read a clone by default, leaving the\noriginal readable; Next deliberately sets `consumeOriginalBody: true`, avoiding\nany Request reconstruction or clone workaround. Host-parsed bodies supplied by\nother factories/adapters are not routed through this Web parser.\n\nFor callback/default delegation, empty/absent bodies, abort cooperation,\nauthentication order, and adapter capabilities, see the\n[HTTP parser contract](../http/README.md#bounded-body-parser-policy).\nEvidence: `src/web-body-parser.test.ts`, `src/web-body-limit.test.ts`, and the\n[Next production example](../platform-nextjs/e2e/fixture/backend.ts).\n## Compatible framework service copies\n\n`compileModuleGraph()` accepts a caller-owned `ModuleGraphCompileCache` from a compatible same-realm runtime copy only after validating its complete versioned owner capability. Cache snapshots remain cloned, LRU and size remain owned by that cache, and disposal is observed through its original methods.\n\nModule exports remain authoritative when a designated service class comes from a compatible package copy; this behavior does not make unexported providers visible.\n","readmeFilename":"README.md"}