{"_id":"nextrush","_rev":"38-dcfa3ba0fd9383746be80094e7a4d98e","name":"nextrush","dist-tags":{"beta":"4.0.0-beta.2","latest":"4.0.2"},"versions":{"1.1.1":{"name":"nextrush","version":"1.1.1","keywords":["typescript","http","server","framework","express","lightweight","backend","routing","api","fast","modern","zero-dependencies","web-framework","nodejs","rest-api","clean-architecture","dependency-injection","testable","middleware","performance"],"author":{"url":"https://github.com/0xTanzim","name":"Tanzim Hossain","email":"tanzimhossain2@gmail.com"},"license":"MIT","_id":"nextrush@1.1.1","maintainers":[{"name":"tanzimhossain2","email":"tanzimhossain2@gmail.com"}],"homepage":"https://github.com/0xTanzim/nextrush#readme","bugs":{"url":"https://github.com/0xTanzim/nextrush/issues"},"dist":{"shasum":"b89c55ed18ace9bd977f1238c5516326e451b6f0","tarball":"https://registry.npmjs.org/nextrush/-/nextrush-1.1.1.tgz","fileCount":178,"integrity":"sha512-FEvu1TqIFCCA+TQZII0OOA19Pm4OGvwdT2tr2+BRsvULqz2FvZWHpJeklPf98/Lq4dnTKzxkAqgZaEIZQtLdLQ==","signatures":[{"sig":"MEUCIDcWOfuJGUdwqc7GMw6OClQEm0RWFTJwCsm0lj0+XCaqAiEAtzxyvAx/QUztO9eyfGK8/2SKqMH/6k2HcXOdKJAFJvs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":249900},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"npm":">=8.0.0","node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js","require":"./dist/index.js"},"./package.json":"./package.json"},"gitHead":"e0e0124e66dbabbec80301e76593aef2ebdc08d2","scripts":{"dev":"ts-node-dev --respawn --transpile-only examples/express-style.ts","lint":"echo \"Add linting here\"","test":"echo \"Error: no test specified\" && exit 1","build":"tsc","clean":"rm -rf dist","start":"node dist/index.js","format":"echo \"Add formatting here\"","prepare":"npm run build","prebuild":"npm run clean","validate":"node scripts/validate-package.js","example:basic":"ts-node examples/basic-usage.ts","prepublishOnly":"npm run build && npm run validate","example:express":"node examples/simple-express.js","example:typescript":"ts-node examples/typescript-example.ts"},"_npmUser":{"name":"tanzimhossain2","email":"tanzimhossain2@gmail.com"},"repository":{"url":"git+https://github.com/0xTanzim/nextrush.git","type":"git"},"_npmVersion":"11.4.2","description":"A modern, fast HTTP server framework for Node.js with Express-compatible API, TypeScript-first design, and clean architecture. Zero dependencies, maximum performance, familiar syntax.","directories":{},"_nodeVersion":"24.4.0","publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"ts-node":"^10.9.0","typescript":"^5.0.0","@types/node":"^20.0.0","ts-node-dev":"^2.0.0"},"_npmOperationalInternal":{"tmp":"tmp/nextrush_1.1.1_1752440080769_0.10083548101181017","host":"s3://npm-registry-packages-npm-production"}},"1.5.0":{"name":"nextrush","version":"1.5.0","keywords":["learning-project","educational","first-npm-package","typescript","http","server","framework","express-compatible","plugins","zero-dependencies","modular","student-project","backend","routing","api","fast","modern","zero-dependencies","web-framework","nodejs","rest-api","clean-architecture","dependency-injection","testable","middleware","performance","runtime-plugins"],"author":{"url":"https://github.com/0xTanzim","name":"Tanzim Hossain","email":"tanzimhossain2@gmail.com"},"license":"MIT","_id":"nextrush@1.5.0","maintainers":[{"name":"0xtanzim","email":"tanzimhossain2@gmail.com"}],"homepage":"https://github.com/0xTanzim/nextrush#readme","bugs":{"url":"https://github.com/0xTanzim/nextrush/issues"},"dist":{"shasum":"800b60df905de08e85610daa6dfa867ae07f76c4","tarball":"https://registry.npmjs.org/nextrush/-/nextrush-1.5.0.tgz","fileCount":6,"integrity":"sha512-OCIJSgebZL6/9m+O4VfDlKhxCjiDf2lBE+TscKYrcSE+bxkPYu87BqfeWQg87Dkw3y8n6fJco0W9tGej0mIr4A==","signatures":[{"sig":"MEQCIDPMdw+XujnYKfPA2WlEKT6tU/ZTWBx38aYWI4HKYndfAiAqn1dOc4t/5T0v6/6rAEHM/OAxmVzpjRtD7MckN8RaXQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1032316},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","engines":{"npm":">=8.0.0","node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","default":"./dist/index.js","require":"./dist/index.js"},"./package.json":"./package.json"},"gitHead":"3327279b97c9a2a3cdebd7e4a1306c9d6f8fe967","scripts":{"dev":"ts-node-dev --respawn --transpile-only examples/index.ts","lint":"echo \"Add linting here\"","test":"echo \"Error: no test specified\" && exit 1","build":"tsup --config tsup.optimized.config.ts","clean":"rm -rf dist","start":"node dist/index.js","format":"echo \"Add formatting here\"","example":"ts-node examples/production-example.ts","prepare":"npm run build","prebuild":"npm run clean","validate":"node scripts/validate-package.js","build:dev":"NODE_ENV=development tsup --config tsup.config.ts --watch","start:dev":"ts-node-dev --respawn --transpile-only examples/index.ts","build:prod":"NODE_ENV=production tsup --config tsup.optimized.config.ts --minify","build:watch":"tsup --config tsup.optimized.config.ts --watch","demo:plugins":"ts-node examples/plugin-system-demo.ts","test:plugins":"ts-node src/examples/template/template.test.ts","docs:generate":"typedoc --out docs/api src/index.ts","prepublishOnly":"npm run build:prod && npm run validate","validate:architecture":"ts-node scripts/validate-architecture.ts"},"_npmUser":{"name":"0xtanzim","email":"tanzimhossain2@gmail.com"},"repository":{"url":"git+https://github.com/0xTanzim/nextrush.git","type":"git"},"_npmVersion":"11.4.2","description":"🎓 LEARNING PROJECT: My first attempt at building a Node.js web framework with Express-compatible API. Educational purposes only - NOT recommended for production use. Features TypeScript, zero dependencies, and plugin architecture.","directories":{},"_nodeVersion":"24.4.1","publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.0","ts-node":"^10.9.2","typedoc":"^0.25.0","typescript":"^5.0.0","@types/node":"^20.0.0","ts-node-dev":"^2.0.0"},"_npmOperationalInternal":{"tmp":"tmp/nextrush_1.5.0_1753299339112_0.4613766210327126","host":"s3://npm-registry-packages-npm-production"}},"2.0.0":{"name":"nextrush","version":"2.0.0","keywords":["web-framework","typescript","nodejs","http-server","api-framework","zero-dependencies","koa-style","fastify-style","type-safe","high-performance","async-middleware","modern","fast","clean-architecture","websocket","cqrs","event-sourcing","validation","security","template-engine","dependency-injection","enterprise","production-ready"],"author":{"url":"https://github.com/0xTanzim","name":"Tanzim Hossain","email":"tanzimhossain2@gmail.com"},"license":"MIT","_id":"nextrush@2.0.0","maintainers":[{"name":"0xtanzim","email":"tanzimhossain2@gmail.com"}],"homepage":"https://github.com/0xTanzim/nextrush#readme","bugs":{"url":"https://github.com/0xTanzim/nextrush/issues"},"dist":{"shasum":"43d43487917a8a2aac583684ee3a2ad290921341","tarball":"https://registry.npmjs.org/nextrush/-/nextrush-2.0.0.tgz","fileCount":9,"integrity":"sha512-mJXyUGBZiimvWKUCuplsPeXP6XfF7l7go4m2Z9ky0QvNJo/xsg7OxuWlB7fzfyR0JP+m61kk0vJpNu2RZhrelw==","signatures":[{"sig":"MEUCIQC4CX68d+dQ9yVM3rAu4vP2Qc/kJ7pqQ+ARqt2Oqp19LgIgHd9s8ei5aFj1M80MENHHRfMLWa4BwQ7E6be0RO9g1ms=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2141671},"main":"dist/index.js","_from":"file:nextrush-2.0.0.tgz","types":"dist/index.d.ts","module":"dist/index.mjs","engines":{"node":">=18.0.0","pnpm":">=9.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","default":"./dist/index.js","require":"./dist/index.js"},"./package.json":"./package.json"},"scripts":{"act":"act","dev":"tsx watch src/examples/basic-server.ts","tsc":"tsc --noEmit","lint":"eslint src --ext .ts,.tsx","test":"vitest run src/tests/unit","build":"tsup --config tsup.config.ts","clean":"rm -rf dist","start":"node dist/index.js","format":"prettier --write \"src/**/*.{ts,tsx,js,jsx,json,md}\"","act:dry":"act --dryrun","test:ui":"vitest --ui","act:list":"act -l","lint:fix":"eslint src --ext .ts,.tsx --fix","prebuild":"npm run clean","test:all":"vitest run","test:e2e":"vitest run src/tests/e2e","validate":"npm run lint && npm run format:check && npm run type-check && npm run test","test:file":"node scripts/test-file.js","test:unit":"vitest run src/tests/unit","build:prod":"NODE_ENV=production tsup --config tsup.config.ts --minify","docs:serve":"npx serve docsx/api","test:watch":"vitest --watch src/tests/unit","type-check":"tsc --noEmit","bench:quick":"node performance/scripts/quick-bench.js","build:watch":"tsup --config tsup.config.ts --watch","format:check":"prettier --check \"src/**/*.{ts,tsx,js,jsx,json,md}\"","docs:generate":"typedoc --out docsx/api src/index.ts","test:coverage":"vitest --coverage src/tests/unit","test:integration":"vitest run src/tests/integration"},"_npmUser":{"name":"0xtanzim","email":"tanzimhossain2@gmail.com"},"_resolved":"/tmp/c9a94c755d1d350120ac4a5ab6826b5c/nextrush-2.0.0.tgz","_integrity":"sha512-mJXyUGBZiimvWKUCuplsPeXP6XfF7l7go4m2Z9ky0QvNJo/xsg7OxuWlB7fzfyR0JP+m61kk0vJpNu2RZhrelw==","repository":{"url":"git+https://github.com/0xTanzim/nextrush.git","type":"git"},"_npmVersion":"11.5.1","description":"🚀 NextRush v2 - Enterprise-grade Node.js framework with built-in security, validation, WebSocket, templates, events (CQRS), logging, and DI. 13,261 RPS, zero dependencies, full TypeScript support.","directories":{},"_nodeVersion":"24.7.0","publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"ws":"^8.18.3","tsx":"^4.20.3","tsup":"^8.5.0","eslint":"^9.32.0","vitest":"^3.2.4","globals":"^16.4.0","typedoc":"^0.28.9","prettier":"^3.6.2","@types/ws":"^8.18.1","@vitest/ui":"^3.2.4","typescript":"^5.8.3","@types/node":"^24.1.0","eslint-plugin-n":"^17.21.3","@vitest/coverage-v8":"^3.2.4","eslint-config-prettier":"^10.1.8","eslint-plugin-prettier":"^5.5.3","@typescript-eslint/parser":"^8.38.0","@typescript-eslint/eslint-plugin":"^8.38.0"},"_npmOperationalInternal":{"tmp":"tmp/nextrush_2.0.0_1759298847860_0.7615398901897816","host":"s3://npm-registry-packages-npm-production"}},"2.0.1":{"name":"nextrush","version":"2.0.1","keywords":["web-framework","typescript","nodejs","http-server","api-framework","zero-dependencies","koa-style","fastify-style","type-safe","high-performance","async-middleware","modern","fast","clean-architecture","websocket","cqrs","event-sourcing","validation","security","template-engine","dependency-injection","enterprise","production-ready"],"author":{"url":"https://github.com/0xTanzim","name":"Tanzim Hossain","email":"tanzimhossain2@gmail.com"},"license":"MIT","_id":"nextrush@2.0.1","maintainers":[{"name":"0xtanzim","email":"tanzimhossain2@gmail.com"}],"homepage":"https://github.com/0xTanzim/nextrush#readme","bugs":{"url":"https://github.com/0xTanzim/nextrush/issues"},"dist":{"shasum":"edd9dcdaed56a798b98223d4b55043e52de41a04","tarball":"https://registry.npmjs.org/nextrush/-/nextrush-2.0.1.tgz","fileCount":9,"integrity":"sha512-jPvs/v5VcrhTYvy3hDrY7cBqkbbr+pCJQkj4D7V/LvS5YFCTc46kj45AKXJfSd90IDXyUWo91WqWVitCP5upUw==","signatures":[{"sig":"MEQCIGYHCpg7kwC0GiT4MzfhzOl/a66Q8ehKXMwti/RggRCYAiA1QKXvFPBF7u1IzmSh7pexyFxTSsxwM9CY/f0pMCQa2Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2187256},"main":"dist/index.js","_from":"file:nextrush-2.0.01.tgz","types":"dist/index.d.ts","module":"dist/index.mjs","engines":{"node":">=18.0.0","pnpm":">=9.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","default":"./dist/index.js","require":"./dist/index.js"},"./package.json":"./package.json"},"scripts":{"act":"act","dev":"tsx watch src/examples/basic-server.ts","tsc":"tsc --noEmit","lint":"eslint src --ext .ts,.tsx","test":"vitest run src/tests/unit","build":"tsup --config tsup.config.ts","clean":"rm -rf dist","start":"node dist/index.js","format":"prettier --write \"src/**/*.{ts,tsx,js,jsx,json,md}\"","act:dry":"act --dryrun","test:ui":"vitest --ui","act:list":"act -l","lint:fix":"eslint src --ext .ts,.tsx --fix","prebuild":"npm run clean","test:all":"vitest run","test:e2e":"vitest run src/tests/e2e","validate":"npm run lint && npm run format:check && npm run type-check && npm run test","test:file":"node scripts/test-file.js","test:unit":"vitest run src/tests/unit","build:prod":"NODE_ENV=production tsup --config tsup.config.ts --minify","docs:serve":"npx serve docsx/api","test:watch":"vitest --watch src/tests/unit","type-check":"tsc --noEmit --project tsconfig.build.json","bench:quick":"node performance/scripts/quick-bench.js","build:watch":"tsup --config tsup.config.ts --watch","format:check":"prettier --check \"src/**/*.{ts,tsx,js,jsx,json,md}\"","docs:generate":"typedoc --out docsx/api src/index.ts","test:coverage":"vitest --coverage src/tests/unit","test:integration":"vitest run src/tests/integration","validate:publish":"npm run lint && npm run format:check && npm run type-check"},"_npmUser":{"name":"0xtanzim","email":"tanzimhossain2@gmail.com"},"_resolved":"/tmp/86d021a6259117d1763835116553db4b/nextrush-2.0.01.tgz","_integrity":"sha512-jPvs/v5VcrhTYvy3hDrY7cBqkbbr+pCJQkj4D7V/LvS5YFCTc46kj45AKXJfSd90IDXyUWo91WqWVitCP5upUw==","repository":{"url":"git+https://github.com/0xTanzim/nextrush.git","type":"git"},"_npmVersion":"11.6.0","description":"🚀 NextRush v2 - Enterprise-grade Node.js framework with built-in security, validation, WebSocket, templates, events (CQRS), logging, and DI. 13,261 RPS, zero dependencies, full TypeScript support.","directories":{},"_nodeVersion":"24.9.0","publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"ws":"^8.18.3","tsx":"^4.20.3","tsup":"^8.5.0","eslint":"^9.32.0","vitest":"^3.2.4","globals":"^16.4.0","typedoc":"^0.28.9","prettier":"^3.6.2","@types/ws":"^8.18.1","@vitest/ui":"^3.2.4","typescript":"^5.8.3","@types/node":"^24.1.0","eslint-plugin-n":"^17.21.3","@vitest/coverage-v8":"^3.2.4","eslint-config-prettier":"^10.1.8","eslint-plugin-prettier":"^5.5.3","@typescript-eslint/parser":"^8.38.0","@typescript-eslint/eslint-plugin":"^8.38.0"},"_npmOperationalInternal":{"tmp":"tmp/nextrush_2.0.1_1759491511174_0.5770832836034439","host":"s3://npm-registry-packages-npm-production"}},"3.0.0":{"name":"nextrush","version":"3.0.0","keywords":["framework","web","http","server","minimal","fast","typescript","nodejs","backend","api","rest"],"author":{"url":"https://github.com/0xTanzim","name":"Tanzim Hossain","email":"tanzimhossain2@gmail.com"},"license":"MIT","_id":"nextrush@3.0.0","maintainers":[{"name":"0xtanzim","email":"tanzimhossain2@gmail.com"}],"homepage":"https://nextrush.dev","bugs":{"url":"https://github.com/0xTanzim/nextrush/issues"},"dist":{"shasum":"803e2844c154ad106089a9b38273b12b44d986e2","tarball":"https://registry.npmjs.org/nextrush/-/nextrush-3.0.0.tgz","fileCount":9,"integrity":"sha512-Vga4T0eAK0+pz5iF1VpmNNop+UvLvCpPjddIgnDfF8gGAWgT7kjayz1AMCNRCDiujgNNMxur/zo89bO2j9vZhQ==","signatures":[{"sig":"MEUCIQCwnVp/aYrmQCliXY0QjbyvhQYaPn57PiVZ60joUNK2KQIgHG1pmDdILIaKySaDsf66Hrd6SJpxhoctowqNYGQfMqg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":26115},"main":"./dist/index.js","type":"module","_from":"file:nextrush-3.0.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=22.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./class":{"types":"./dist/class.d.ts","import":"./dist/class.js"}},"scripts":{"test":"vitest run","build":"tsup","clean":"rm -rf dist","typecheck":"tsc --noEmit","test:watch":"vitest","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"0xtanzim","email":"tanzimhossain2@gmail.com"},"_resolved":"/tmp/b74c550a9ed4244fe88660f50c866674/nextrush-3.0.0.tgz","_integrity":"sha512-Vga4T0eAK0+pz5iF1VpmNNop+UvLvCpPjddIgnDfF8gGAWgT7kjayz1AMCNRCDiujgNNMxur/zo89bO2j9vZhQ==","repository":{"url":"git+https://github.com/0xTanzim/nextrush.git","type":"git","directory":"packages/nextrush"},"_npmVersion":"10.9.7","description":"Minimal, modular, blazing fast Node.js framework","directories":{},"sideEffects":["./dist/class.js"],"_nodeVersion":"22.22.2","dependencies":{"@nextrush/di":"3.0.0","@nextrush/core":"3.0.0","@nextrush/types":"3.0.0","@nextrush/errors":"3.0.0","@nextrush/router":"3.0.0","reflect-metadata":"^0.2.2","@nextrush/decorators":"3.0.0","@nextrush/controllers":"3.0.0","@nextrush/adapter-node":"3.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","vitest":"^4.1.4","typescript":"^6.0.2","@nextrush/cors":"3.0.0","@nextrush/helmet":"3.0.0","@nextrush/body-parser":"3.0.0","@nextrush/compression":"3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/nextrush_3.0.0_1777189734595_0.6451165695572865","host":"s3://npm-registry-packages-npm-production"}},"3.0.5":{"name":"nextrush","version":"3.0.5","keywords":["framework","web","http","server","minimal","fast","typescript","nodejs","backend","api","rest"],"author":{"url":"https://github.com/0xTanzim","name":"Tanzim Hossain","email":"tanzimhossain2@gmail.com"},"license":"MIT","_id":"nextrush@3.0.5","maintainers":[{"name":"0xtanzim","email":"tanzimhossain2@gmail.com"}],"homepage":"https://github.com/0xTanzim/nextRush/tree/main/packages/nextrush#readme","bugs":{"url":"https://github.com/0xTanzim/nextRush/issues"},"bin":{"nextrush":"bin/nextrush.js"},"dist":{"shasum":"e1d0e7e5cfb603bb45723cb7eed4b81ca4ee1ba9","tarball":"https://registry.npmjs.org/nextrush/-/nextrush-3.0.5.tgz","fileCount":9,"integrity":"sha512-MfqHgijEVB9i47z7w0J+nRKQRm3jB+hDBGEV37aFPATe9y12FgUmNakSozMKGHfJmE2bj2894oS6HNxfIWJF7g==","signatures":[{"sig":"MEUCIQDObXeyWwIasdwgUgqfvf1orb2L16UhTrdtIe9mK8FKWgIgZH3JQFhbX0A/W5G8wsS6pjzj1vToUNspPs+zLGwvEaw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":26591},"main":"./dist/index.js","type":"module","_from":"file:nextrush-3.0.5.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=22.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./class":{"types":"./dist/class.d.ts","import":"./dist/class.js"}},"scripts":{"test":"vitest run","build":"tsup","clean":"rm -rf dist","typecheck":"tsc --noEmit","test:watch":"vitest","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"0xtanzim","email":"tanzimhossain2@gmail.com"},"_resolved":"/tmp/6914ec195382f5fd7d0b88412241da0c/nextrush-3.0.5.tgz","_integrity":"sha512-MfqHgijEVB9i47z7w0J+nRKQRm3jB+hDBGEV37aFPATe9y12FgUmNakSozMKGHfJmE2bj2894oS6HNxfIWJF7g==","repository":{"url":"git+https://github.com/0xTanzim/nextRush.git","type":"git","directory":"packages/nextrush"},"_npmVersion":"11.11.0","description":"Minimal, modular, blazing fast Node.js framework","directories":{},"sideEffects":["./dist/class.js"],"_nodeVersion":"24.14.1","dependencies":{"@nextrush/di":"3.0.5","@nextrush/dev":"3.0.5","@nextrush/core":"3.0.5","@nextrush/types":"3.0.5","@nextrush/errors":"3.0.5","@nextrush/router":"3.0.5","reflect-metadata":"^0.2.2","@nextrush/decorators":"3.0.5","@nextrush/controllers":"3.0.5","@nextrush/adapter-node":"3.0.5"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","vitest":"^4.1.4","typescript":"^6.0.2","@nextrush/cors":"3.0.5","@nextrush/helmet":"3.0.5","@nextrush/body-parser":"3.0.5","@nextrush/compression":"3.0.5"},"_npmOperationalInternal":{"tmp":"tmp/nextrush_3.0.5_1777347406730_0.8806733799715978","host":"s3://npm-registry-packages-npm-production"}},"3.0.7":{"name":"nextrush","version":"3.0.7","keywords":["framework","web","http","server","minimal","fast","typescript","nodejs","backend","api","rest"],"author":{"url":"https://github.com/0xTanzim","name":"Tanzim Hossain","email":"tanzimhossain2@gmail.com"},"license":"MIT","_id":"nextrush@3.0.7","maintainers":[{"name":"0xtanzim","email":"tanzimhossain2@gmail.com"}],"homepage":"https://github.com/0xTanzim/nextRush/tree/main/packages/nextrush#readme","bugs":{"url":"https://github.com/0xTanzim/nextRush/issues"},"dist":{"shasum":"d34fc018a84b6bc33b87be8628de12978a29661c","tarball":"https://registry.npmjs.org/nextrush/-/nextrush-3.0.7.tgz","fileCount":11,"integrity":"sha512-InxVoVyin2IhsrvwBxkiegbwifIwTtIxO265SdTZBQdv/2PRA2cCUeJGw4b6RdLaULe+OF/ds5yO/AP+FzrrPw==","signatures":[{"sig":"MEQCIFgkD+Mo/BFrDZFkmqS8feLE1+0D5Bc42gb7UN4fafPlAiBuq8m5tlcObgvPJprw7TrWMGvgOnCc4BeRD7acsukdew==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":28341},"main":"./dist/index.js","type":"module","_from":"file:nextrush-3.0.7.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=22.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./class":{"types":"./dist/class.d.ts","import":"./dist/class.js"}},"scripts":{"test":"vitest run","build":"tsup","clean":"rm -rf dist","typecheck":"tsc --noEmit","test:watch":"vitest","postinstall":"node scripts/postinstall.js","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"0xtanzim","email":"tanzimhossain2@gmail.com"},"_resolved":"/tmp/21fb04adb1a0d64c8becda0c7450b2d8/nextrush-3.0.7.tgz","_integrity":"sha512-InxVoVyin2IhsrvwBxkiegbwifIwTtIxO265SdTZBQdv/2PRA2cCUeJGw4b6RdLaULe+OF/ds5yO/AP+FzrrPw==","repository":{"url":"git+https://github.com/0xTanzim/nextRush.git","type":"git","directory":"packages/nextrush"},"_npmVersion":"11.13.0","description":"Minimal, modular, blazing fast Node.js framework","directories":{},"sideEffects":["./dist/class.js"],"_nodeVersion":"24.16.0","dependencies":{"@nextrush/di":"3.0.7","@nextrush/core":"3.0.7","@nextrush/types":"3.0.7","@nextrush/errors":"3.0.7","@nextrush/router":"3.0.7","reflect-metadata":"^0.2.2","@nextrush/decorators":"3.0.7","@nextrush/controllers":"3.0.7","@nextrush/adapter-node":"3.0.7"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","vitest":"^4.1.4","typescript":"^6.0.2","@nextrush/cors":"3.0.5","@nextrush/helmet":"3.0.5","@nextrush/body-parser":"3.0.5","@nextrush/compression":"3.0.5"},"_npmOperationalInternal":{"tmp":"tmp/nextrush_3.0.7_1781055138457_0.9945112808457757","host":"s3://npm-registry-packages-npm-production"}},"4.0.0-beta.0":{"name":"nextrush","version":"4.0.0-beta.0","keywords":["framework","web","http","server","minimal","fast","typescript","nodejs","backend","api","rest"],"author":{"url":"https://github.com/0xTanzim","name":"Tanzim Hossain","email":"tanzimhossain2@gmail.com"},"license":"MIT","_id":"nextrush@4.0.0-beta.0","maintainers":[{"name":"0xtanzim","email":"tanzimhossain2@gmail.com"}],"homepage":"https://github.com/0xTanzim/nextRush/tree/main/packages/nextrush#readme","bugs":{"url":"https://github.com/0xTanzim/nextRush/issues"},"bin":{"nextrush":"bin/nextrush.js"},"dist":{"shasum":"debe428d2f79d3158377e40f27d088a718ff4259","tarball":"https://registry.npmjs.org/nextrush/-/nextrush-4.0.0-beta.0.tgz","fileCount":15,"integrity":"sha512-Yatp2ne1+QxTg4FcxrZ3GjzAEAvwx58uNKnNaMJ2NEItPAggElzhAIPuKwZ+bmFnr98Cp71DuXkobejfJv9reQ==","signatures":[{"sig":"MEUCIQCyjZHdgl417/3ebMWhXmVcaEDqegbJaU8ijKa0JnRUOQIgAICoedmMNEqmUlLGqeO1Z+UiE8H2krjblqGc+RGV8Jk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":80334},"main":"./dist/index.js","type":"module","_from":"file:nextrush-4.0.0-beta.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=22.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./class":{"types":"./dist/class.d.ts","import":"./dist/class.js"}},"scripts":{"test":"vitest run","build":"tsup","clean":"rm -rf dist","typecheck":"tsc --noEmit","test:watch":"vitest","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"0xtanzim","email":"tanzimhossain2@gmail.com"},"_resolved":"/tmp/f4a0559dfb600a13092364ddd7f4756f/nextrush-4.0.0-beta.0.tgz","_integrity":"sha512-Yatp2ne1+QxTg4FcxrZ3GjzAEAvwx58uNKnNaMJ2NEItPAggElzhAIPuKwZ+bmFnr98Cp71DuXkobejfJv9reQ==","repository":{"url":"git+https://github.com/0xTanzim/nextRush.git","type":"git","directory":"packages/nextrush"},"_npmVersion":"11.17.0","description":"Minimal, modular, blazing fast Node.js framework","directories":{},"sideEffects":["./dist/class.js"],"_nodeVersion":"26.4.0","dependencies":{"@nextrush/core":"4.0.0-beta.0","@nextrush/types":"4.0.0-beta.0","@nextrush/errors":"4.0.0-beta.0","@nextrush/router":"4.0.0-beta.0","@nextrush/adapter-node":"4.0.0-beta.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"tsup":"^8.5.1","vitest":"^4.1.10","typescript":"^6.0.3","@nextrush/di":"4.0.0-beta.0","@nextrush/cors":"4.0.0-beta.0","@nextrush/class":"1.0.0-beta.0","@nextrush/helmet":"4.0.0-beta.0","reflect-metadata":"^0.2.2","@nextrush/body-parser":"4.0.0-beta.0","@nextrush/compression":"3.0.5"},"peerDependencies":{"@nextrush/di":"4.0.0-beta.0","@nextrush/class":"1.0.0-beta.0","reflect-metadata":"^0.2.2"},"peerDependenciesMeta":{"@nextrush/di":{"optional":true},"@nextrush/class":{"optional":true},"reflect-metadata":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/nextrush_4.0.0-beta.0_1784893341043_0.7006484282195582","host":"s3://npm-registry-packages-npm-production"}},"4.0.0-beta.1":{"name":"nextrush","version":"4.0.0-beta.1","keywords":["framework","web","http","server","minimal","fast","typescript","nodejs","backend","api","rest"],"author":{"url":"https://github.com/0xTanzim","name":"Tanzim Hossain","email":"tanzimhossain2@gmail.com"},"license":"MIT","_id":"nextrush@4.0.0-beta.1","maintainers":[{"name":"0xtanzim","email":"tanzimhossain2@gmail.com"}],"homepage":"https://github.com/0xTanzim/nextRush/tree/main/packages/nextrush#readme","bugs":{"url":"https://github.com/0xTanzim/nextRush/issues"},"bin":{"nextrush":"bin/nextrush.js"},"dist":{"shasum":"94528a43c6b08f9b4a84aefceb04c9fc9c30fe7b","tarball":"https://registry.npmjs.org/nextrush/-/nextrush-4.0.0-beta.1.tgz","fileCount":18,"integrity":"sha512-UaCyyrk9YisnmgxNQJ5rcTu3RLz8l1ZJlIu52a5sbcAliFu/0sabvBEDRBqNq36AubgpNV0EuqjCpchn1TZ0+w==","signatures":[{"sig":"MEUCIAygTs6wPjRerKEkc9JzKMcVJOm/u3N7jw2CazKD59SwAiEAj+j5K9pEwrmfKPDA/+5u0NAxgeKYLdEJdJh9G4wHlnE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":82221},"main":"./dist/index.js","type":"module","_from":"file:nextrush-4.0.0-beta.1.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=22.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./class":{"types":"./dist/class.d.ts","import":"./dist/class.js"},"./nextjs":{"types":"./dist/nextjs.d.ts","import":"./dist/nextjs.js"}},"scripts":{"test":"vitest run","build":"tsup","clean":"rm -rf dist","typecheck":"tsc --noEmit","test:watch":"vitest","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"0xtanzim","email":"tanzimhossain2@gmail.com"},"_resolved":"/tmp/a4a69f4ecd1cbc697401abac9c38f1f5/nextrush-4.0.0-beta.1.tgz","_integrity":"sha512-UaCyyrk9YisnmgxNQJ5rcTu3RLz8l1ZJlIu52a5sbcAliFu/0sabvBEDRBqNq36AubgpNV0EuqjCpchn1TZ0+w==","repository":{"url":"git+https://github.com/0xTanzim/nextRush.git","type":"git","directory":"packages/nextrush"},"_npmVersion":"11.17.0","description":"Minimal, modular, blazing fast Node.js framework","directories":{},"sideEffects":["./dist/class.js"],"_nodeVersion":"26.5.1","dependencies":{"@nextrush/core":"4.0.0-beta.1","@nextrush/types":"4.0.0-beta.1","@nextrush/errors":"4.0.0-beta.1","@nextrush/router":"4.0.0-beta.1","@nextrush/adapter-node":"4.0.0-beta.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"tsup":"^8.5.1","vitest":"^4.1.10","typescript":"^6.0.3","@nextrush/di":"4.0.0-beta.1","@nextrush/cors":"4.0.0-beta.0","@nextrush/class":"1.0.0-beta.1","@nextrush/helmet":"4.0.0-beta.0","reflect-metadata":"^0.2.2","@nextrush/body-parser":"4.0.0-beta.0","@nextrush/compression":"3.0.5","@nextrush/adapter-nextjs":"1.0.0-beta.0"},"peerDependencies":{"@nextrush/di":"4.0.0-beta.1","@nextrush/class":"1.0.0-beta.1","reflect-metadata":"^0.2.2","@nextrush/adapter-nextjs":"1.0.0-beta.0"},"peerDependenciesMeta":{"@nextrush/di":{"optional":true},"@nextrush/class":{"optional":true},"reflect-metadata":{"optional":true},"@nextrush/adapter-nextjs":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/nextrush_4.0.0-beta.1_1785586408889_0.48508561329255895","host":"s3://npm-registry-packages-npm-production"}},"4.0.0-beta.2":{"name":"nextrush","version":"4.0.0-beta.2","keywords":["framework","web","http","server","minimal","fast","typescript","nodejs","backend","api","rest"],"author":{"url":"https://github.com/0xTanzim","name":"Tanzim Hossain","email":"tanzimhossain2@gmail.com"},"license":"MIT","_id":"nextrush@4.0.0-beta.2","maintainers":[{"name":"0xtanzim","email":"tanzimhossain2@gmail.com"}],"homepage":"https://github.com/0xTanzim/nextRush/tree/main/packages/nextrush#readme","bugs":{"url":"https://github.com/0xTanzim/nextRush/issues"},"bin":{"nextrush":"bin/nextrush.js"},"dist":{"shasum":"9422fbd5f4b37b582c28e215ebb4b4f5282fbf6a","tarball":"https://registry.npmjs.org/nextrush/-/nextrush-4.0.0-beta.2.tgz","fileCount":18,"integrity":"sha512-L/OchBlL3o1d8Osg92aaSFCRjnoCKKmn/T8PSSOPp8FEXS0hMc54YHSq6J20Pdi428GTyYqF+mnbEtcLLJWSIw==","signatures":[{"sig":"MEYCIQDPUDO0xdwFHbIY5htucHGi51lYUz5ymBZFnMe0dQhA2gIhAKWGFGAJ7HTfMTkew31MuI5yEhdlzVu83KpzGO3Hn5MR","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":82228},"main":"./dist/index.js","type":"module","_from":"file:nextrush-4.0.0-beta.2.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=22.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./class":{"types":"./dist/class.d.ts","import":"./dist/class.js"},"./nextjs":{"types":"./dist/nextjs.d.ts","import":"./dist/nextjs.js"}},"scripts":{"test":"vitest run","build":"tsup","clean":"rm -rf dist","typecheck":"tsc --noEmit","test:watch":"vitest","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"0xtanzim","email":"tanzimhossain2@gmail.com"},"_resolved":"/tmp/2ea5e8a5c162fb9b28f954553e04decf/nextrush-4.0.0-beta.2.tgz","_integrity":"sha512-L/OchBlL3o1d8Osg92aaSFCRjnoCKKmn/T8PSSOPp8FEXS0hMc54YHSq6J20Pdi428GTyYqF+mnbEtcLLJWSIw==","repository":{"url":"git+https://github.com/0xTanzim/nextRush.git","type":"git","directory":"packages/nextrush"},"_npmVersion":"11.17.0","description":"Minimal, modular, blazing fast Node.js framework","directories":{},"sideEffects":["./dist/class.js"],"_nodeVersion":"26.5.1","dependencies":{"@nextrush/core":"4.0.0-beta.2","@nextrush/types":"4.0.0-beta.2","@nextrush/errors":"4.0.0-beta.2","@nextrush/router":"4.0.0-beta.2","@nextrush/adapter-node":"4.0.0-beta.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"tsup":"^8.5.1","vitest":"^4.1.10","typescript":"^6.0.3","@nextrush/di":"4.0.0-beta.2","@nextrush/cors":"4.0.0-beta.1","@nextrush/class":"1.0.0-beta.2","@nextrush/helmet":"4.0.0-beta.1","reflect-metadata":"^0.2.2","@nextrush/body-parser":"4.0.0-beta.1","@nextrush/compression":"3.0.6-beta.0","@nextrush/adapter-nextjs":"1.0.0-beta.1"},"peerDependencies":{"@nextrush/di":"4.0.0-beta.2","@nextrush/class":"1.0.0-beta.2","reflect-metadata":"^0.2.2","@nextrush/adapter-nextjs":"1.0.0-beta.1"},"peerDependenciesMeta":{"@nextrush/di":{"optional":true},"@nextrush/class":{"optional":true},"reflect-metadata":{"optional":true},"@nextrush/adapter-nextjs":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/nextrush_4.0.0-beta.2_1785589181346_0.19692817233362514","host":"s3://npm-registry-packages-npm-production"}},"4.0.0":{"name":"nextrush","version":"4.0.0","keywords":["framework","web","http","server","minimal","fast","typescript","nodejs","backend","api","rest"],"author":{"url":"https://github.com/0xTanzim","name":"Tanzim Hossain","email":"tanzimhossain2@gmail.com"},"license":"MIT","_id":"nextrush@4.0.0","maintainers":[{"name":"0xtanzim","email":"tanzimhossain2@gmail.com"}],"homepage":"https://github.com/0xTanzim/nextRush/tree/main/packages/nextrush#readme","bugs":{"url":"https://github.com/0xTanzim/nextRush/issues"},"bin":{"nextrush":"bin/nextrush.js"},"dist":{"shasum":"098f93c6b4c9e6587c98280ebbf179ade96d365d","tarball":"https://registry.npmjs.org/nextrush/-/nextrush-4.0.0.tgz","fileCount":18,"integrity":"sha512-eaHzB5YnidFJanBo1RMrsKzH0xXO9KfcddjXGg7KU6KNrDBxD9wbQKO4waSklQfpHxdv+Sl0PIu+6Gys2htiXA==","signatures":[{"sig":"MEUCIQDOkGOfYFlSH1XSH5I2cStXzLpmJpNCw+sJP9DvgfZpGAIgV9V+k6gXyEjb12U6bhkwFpFjRmx9AGOd9Mwvk7xlk4I=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":82116},"main":"./dist/index.js","type":"module","_from":"file:nextrush-4.0.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=22.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./class":{"types":"./dist/class.d.ts","import":"./dist/class.js"},"./nextjs":{"types":"./dist/nextjs.d.ts","import":"./dist/nextjs.js"}},"scripts":{"test":"vitest run","build":"tsup","clean":"rm -rf dist","typecheck":"tsc --noEmit","test:watch":"vitest","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"0xtanzim","email":"tanzimhossain2@gmail.com"},"_resolved":"/tmp/cd2e391319dd194421380abb0a769e0a/nextrush-4.0.0.tgz","_integrity":"sha512-eaHzB5YnidFJanBo1RMrsKzH0xXO9KfcddjXGg7KU6KNrDBxD9wbQKO4waSklQfpHxdv+Sl0PIu+6Gys2htiXA==","repository":{"url":"git+https://github.com/0xTanzim/nextRush.git","type":"git","directory":"packages/nextrush"},"_npmVersion":"11.17.0","description":"Minimal, modular, blazing fast Node.js framework","directories":{},"sideEffects":["./dist/class.js"],"_nodeVersion":"26.5.1","dependencies":{"@nextrush/core":"4.0.0","@nextrush/types":"4.0.0","@nextrush/errors":"4.0.0","@nextrush/router":"4.0.0","@nextrush/adapter-node":"4.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","vitest":"^4.1.10","typescript":"^6.0.3","@nextrush/di":"4.0.0","@nextrush/cors":"4.0.0","@nextrush/class":"1.0.0","@nextrush/helmet":"4.0.0","reflect-metadata":"^0.2.2","@nextrush/body-parser":"4.0.0","@nextrush/compression":"3.0.6","@nextrush/adapter-nextjs":"1.0.0"},"peerDependencies":{"@nextrush/di":"4.0.0","@nextrush/class":"1.0.0","reflect-metadata":"^0.2.2","@nextrush/adapter-nextjs":"1.0.0"},"peerDependenciesMeta":{"@nextrush/di":{"optional":true},"@nextrush/class":{"optional":true},"reflect-metadata":{"optional":true},"@nextrush/adapter-nextjs":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/nextrush_4.0.0_1785591026417_0.227803002940838","host":"s3://npm-registry-packages-npm-production"}},"4.0.1":{"name":"nextrush","version":"4.0.1","keywords":["framework","web","http","server","minimal","fast","typescript","nodejs","backend","api","rest"],"author":{"url":"https://github.com/0xTanzim","name":"Tanzim Hossain","email":"tanzimhossain2@gmail.com"},"license":"MIT","_id":"nextrush@4.0.1","maintainers":[{"name":"0xtanzim","email":"tanzimhossain2@gmail.com"}],"homepage":"https://github.com/0xTanzim/nextRush/tree/main/packages/nextrush#readme","bugs":{"url":"https://github.com/0xTanzim/nextRush/issues"},"bin":{"nextrush":"bin/nextrush.js"},"dist":{"shasum":"cd70e195d4d45a07170c2532c3a6d1bca599a353","tarball":"https://registry.npmjs.org/nextrush/-/nextrush-4.0.1.tgz","fileCount":18,"integrity":"sha512-sln6H0qqcdwcAsxVWk7+CWTRXucTiKz3aItnMoyiJa+A+TRpiZUOoqKb41vj0zu0ubDBRM/qX+g784JU1qXK8g==","signatures":[{"sig":"MEUCIQCal1IwBAME4Nnc1+uugqM5rhCiksSLSbey8U5xhys9uwIgJY0TyfHf3ceiOiNNJFrc2nbdwwyD3AR6D/grXyuHjMM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":82946},"main":"./dist/index.js","type":"module","_from":"file:nextrush-4.0.1.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=22.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./class":{"types":"./dist/class.d.ts","import":"./dist/class.js"},"./nextjs":{"types":"./dist/nextjs.d.ts","import":"./dist/nextjs.js"}},"scripts":{"test":"vitest run","build":"tsup","clean":"rm -rf dist","typecheck":"tsc --noEmit","test:watch":"vitest","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"0xtanzim","email":"tanzimhossain2@gmail.com"},"_resolved":"/tmp/040a81eff683648e945a14c93d25f1fb/nextrush-4.0.1.tgz","_integrity":"sha512-sln6H0qqcdwcAsxVWk7+CWTRXucTiKz3aItnMoyiJa+A+TRpiZUOoqKb41vj0zu0ubDBRM/qX+g784JU1qXK8g==","repository":{"url":"git+https://github.com/0xTanzim/nextRush.git","type":"git","directory":"packages/nextrush"},"_npmVersion":"11.16.0","description":"Minimal, modular, blazing fast Node.js framework","directories":{},"sideEffects":["./dist/class.js"],"_nodeVersion":"24.18.0","dependencies":{"@nextrush/core":"4.0.1","@nextrush/types":"4.0.1","@nextrush/errors":"4.0.1","@nextrush/router":"4.0.1","@nextrush/adapter-node":"4.0.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","vitest":"^4.1.10","typescript":"^6.0.3","@nextrush/di":"4.0.1","@nextrush/cors":"4.0.0","@nextrush/class":"1.0.1","@nextrush/helmet":"4.0.0","reflect-metadata":"^0.2.2","@nextrush/body-parser":"4.0.0","@nextrush/compression":"3.0.6","@nextrush/adapter-nextjs":"1.0.0"},"peerDependencies":{"@nextrush/di":"4.0.1","@nextrush/class":"1.0.1","reflect-metadata":"^0.2.2","@nextrush/adapter-nextjs":"1.0.0"},"peerDependenciesMeta":{"@nextrush/di":{"optional":true},"@nextrush/class":{"optional":true},"reflect-metadata":{"optional":true},"@nextrush/adapter-nextjs":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/nextrush_4.0.1_1785644504407_0.35839329479507454","host":"s3://npm-registry-packages-npm-production"}},"4.0.2":{"name":"nextrush","version":"4.0.2","description":"Minimal, modular, blazing fast Node.js framework","type":"module","main":"./dist/index.js","module":"./dist/index.js","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./class":{"types":"./dist/class.d.ts","import":"./dist/class.js"},"./nextjs":{"types":"./dist/nextjs.d.ts","import":"./dist/nextjs.js"}},"bin":{"nextrush":"./bin/nextrush.js"},"keywords":["framework","web","http","server","minimal","fast","typescript","nodejs","backend","api","rest"],"author":{"name":"Tanzim Hossain","email":"tanzimhossain2@gmail.com","url":"https://github.com/0xTanzim"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/0xTanzim/nextRush.git","directory":"packages/nextrush"},"homepage":"https://github.com/0xTanzim/nextRush/tree/main/packages/nextrush#readme","bugs":{"url":"https://github.com/0xTanzim/nextRush/issues"},"engines":{"node":">=22.0.0"},"publishConfig":{"access":"public"},"sideEffects":["./dist/class.js"],"dependencies":{"@nextrush/adapter-node":"4.0.2","@nextrush/core":"4.0.2","@nextrush/errors":"4.0.2","@nextrush/router":"4.0.2","@nextrush/types":"4.0.2"},"peerDependencies":{"reflect-metadata":"^0.2.2","@nextrush/adapter-nextjs":"1.0.1","@nextrush/class":"1.0.2","@nextrush/di":"4.0.2"},"peerDependenciesMeta":{"@nextrush/adapter-nextjs":{"optional":true},"@nextrush/class":{"optional":true},"@nextrush/di":{"optional":true},"reflect-metadata":{"optional":true}},"devDependencies":{"reflect-metadata":"^0.2.2","tsup":"^8.5.1","typescript":"~6.0.3","vitest":"^4.1.10","@nextrush/adapter-nextjs":"1.0.1","@nextrush/body-parser":"4.0.1","@nextrush/class":"1.0.2","@nextrush/compression":"3.0.7","@nextrush/cors":"4.0.1","@nextrush/di":"4.0.2","@nextrush/helmet":"4.0.1"},"scripts":{"build":"tsup","clean":"rm -rf dist","typecheck":"tsc --noEmit","test":"vitest run","test:watch":"vitest","test:coverage":"vitest run --coverage"},"_nodeVersion":"24.19.0","_id":"nextrush@4.0.2","dist":{"integrity":"sha512-lz4nfMffeTD/Ri8AmaB3vv7YhAUAqaaZfdFx9gGtT4cUd+jox94q7O4kKCWr1dOir0ITMj3hLPSUZYBoxXc6vQ==","shasum":"7cd22a010b252b4484e02d89b0cb862bb98aeb69","tarball":"https://registry.npmjs.org/nextrush/-/nextrush-4.0.2.tgz","fileCount":18,"unpackedSize":82946,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQCXbHRjK0/hC5IeBiAS8ShXfyj4BERn03+1tu9kYsh+3QIhAJi/OPH41aRqHKwYyPUFAFiXV41kMWNUN+46fV7PoyzE"}]},"_npmUser":{"name":"0xtanzim","email":"tanzimhossain2@gmail.com"},"directories":{},"maintainers":[{"name":"0xtanzim","email":"tanzimhossain2@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/nextrush_4.0.2_1788244958281_0.8604510257972944"},"_hasShrinkwrap":false}},"time":{"created":"2025-07-13T18:30:02.027Z","modified":"2026-09-01T06:42:38.630Z","1.1.0":"2025-07-13T18:30:02.264Z","1.1.1":"2025-07-13T20:54:40.957Z","1.2.1":"2025-07-16T02:44:38.139Z","1.2.0":"2025-07-16T13:48:45.754Z","1.3.0":"2025-07-20T17:51:49.177Z","1.3.1":"2025-07-20T18:22:54.455Z","1.3.3":"2025-07-20T18:37:27.451Z","1.4.0":"2025-07-20T19:33:55.444Z","1.4.1":"2025-07-20T20:17:34.739Z","1.4.2":"2025-07-20T20:31:44.289Z","1.5.0":"2025-07-23T19:35:39.359Z","2.0.0":"2025-10-01T06:07:28.129Z","2.0.1":"2025-10-03T11:38:31.401Z","3.0.0":"2026-04-26T07:48:54.730Z","3.0.1":"2026-04-26T11:15:10.547Z","3.0.3":"2026-04-28T02:22:54.446Z","3.0.5":"2026-04-28T03:36:46.865Z","3.0.6":"2026-05-01T17:57:11.128Z","3.0.7":"2026-06-10T01:32:18.605Z","4.0.0-beta.0":"2026-07-24T11:42:21.183Z","4.0.0-beta.1":"2026-08-01T12:13:29.044Z","4.0.0-beta.2":"2026-08-01T12:59:41.518Z","4.0.0":"2026-08-01T13:30:26.564Z","4.0.1":"2026-08-02T04:21:44.548Z","4.0.2":"2026-09-01T06:42:38.470Z"},"bugs":{"url":"https://github.com/0xTanzim/nextRush/issues"},"author":{"name":"Tanzim Hossain","email":"tanzimhossain2@gmail.com","url":"https://github.com/0xTanzim"},"license":"MIT","homepage":"https://github.com/0xTanzim/nextRush/tree/main/packages/nextrush#readme","keywords":["framework","web","http","server","minimal","fast","typescript","nodejs","backend","api","rest"],"repository":{"type":"git","url":"git+https://github.com/0xTanzim/nextRush.git","directory":"packages/nextrush"},"description":"Minimal, modular, blazing fast Node.js framework","maintainers":[{"name":"0xtanzim","email":"tanzimhossain2@gmail.com"}],"readme":"# nextrush\n\n> The meta package - install this one to build a NextRush app: `createApp`, `createRouter`, `listen`, HTTP errors, and the shared types, plus an opt-in `nextrush/class` subpath for decorators and DI.\n\n[![npm version](https://img.shields.io/npm/v/nextrush.svg)](https://www.npmjs.com/package/nextrush)\n[![downloads](https://img.shields.io/npm/dm/nextrush.svg)](https://www.npmjs.com/package/nextrush)\n[![bundle size](https://img.shields.io/bundlephobia/minzip/nextrush.svg)](https://bundlephobia.com/package/nextrush)\n[![types](https://img.shields.io/npm/types/nextrush.svg)](https://www.npmjs.com/package/nextrush)\n[![ESM only](https://img.shields.io/badge/module-ESM--only-blue.svg)](https://nodejs.org/api/esm.html)\n[![license](https://img.shields.io/npm/l/nextrush.svg)](https://github.com/0xTanzim/nextRush/blob/main/LICENSE)\n\n|  |  |\n| --- | --- |\n| **Purpose** | The single entry point for building a NextRush app - re-exports `createApp`, `createRouter`, `listen`, HTTP errors, and the shared types; `nextrush/class` adds decorators and DI as an explicit, separate install |\n| **Package type** | Core (meta package) |\n| **Status** | Stable [x] |\n| **Included in `nextrush`?** | This *is* `nextrush` - the package everything else in the ecosystem re-exports through |\n| **Support tier** | Public - core (stable, semver-guarded) - see [ADR-0005](https://github.com/0xTanzim/nextRush/blob/main/docs/adr/ADR-0005-package-tiers-sealed-surface-deprecation.md) |\n| **Maintenance** | Active |\n| **Runtime** | Node.js (via `@nextrush/adapter-node`) - other runtimes via their own adapter, imported directly |\n| **Requires** | Node `>=22`, ESM-only, TypeScript `>=5.x` |\n| **Introduced** | `v3.0.0` |\n\n## Highlights\n\n- [x] **Zero runtime dependencies on the functional path** - `createApp`/`createRouter`/`listen` pull in no third-party package\n- [x] **`@nextrush/class`, `@nextrush/di`, and `reflect-metadata` are optional peers** - a plain `pnpm add nextrush` never resolves them onto disk\n- [x] **ESM-only**, tree-shakable; only the `nextrush/class` subpath carries a side effect (`reflect-metadata`'s global patch)\n- **Bundle:** the functional entry re-exports five workspace packages with no added weight of its own\n\n<details>\n<summary><strong>Table of contents</strong></summary>\n\n[The problem](#the-problem) | [When to use](#when-to-use) | [Installation](#installation) | [Quick start](#quick-start) | [Capabilities](#capabilities) | [Mental model](#mental-model) | [Common tasks](#common-tasks) | [API overview](#api-overview) | [Options](#options) | [Compatibility](#compatibility) | [Troubleshooting](#troubleshooting) | [FAQ](#faq) | [Package relationships](#package-relationships) | [Architecture](#architecture) | [Resources](#resources)\n\n</details>\n\n---\n\n## The problem\n\nNextRush is deliberately split into ~35 independent packages - a router, a core engine, an adapter per runtime, a class/DI runtime, and dozens of middleware/extension packages - so that each piece can version, test, and ship on its own. That is good for the packages and bad for a first-time user: nobody wants to work out that `createApp` lives in `@nextrush/core` but needs a router from `@nextrush/router` wired in by hand, and an HTTP server from `@nextrush/adapter-node` on top, before a single request can be served.\n\n```ts\n// TODAY, without the meta package - wiring the pieces by hand:\nimport { createApp } from '@nextrush/core';\nimport { createRouter } from '@nextrush/router';\nimport { listen } from '@nextrush/adapter-node';\n\nconst app = createApp({ router: createRouter() }); // router is NOT wired in for you here\nlisten(app, 8080);\n```\n\n`nextrush` is that wiring, done once, correctly: its own `createApp` injects a router so `app.get(...)` works immediately, and its barrel re-exports exactly the symbols a functional app needs - nothing from the class/DI stack, so a functional-only install stays as small as the \"zero-dependency core\" claim promises.\n\n## When to use\n\n**Use `nextrush` if:**\n\n- You're building a NextRush application - this is the entry point every quick-start example uses\n- You want `createApp` to come with a router already attached, so route shortcuts (`app.get`, `app.post`, ...) work without extra setup\n- You want the class-based API (`@Controller`, `@Service`, DI) available behind one additional, explicit install (`nextrush/class`), never bundled into the functional path\n\n**Reach for something else if:**\n\n- You're building your own meta-package, adapter, or runtime on top of NextRush and need the raw, router-agnostic `Application` - use [`@nextrush/core`](../core) directly\n- You need only route matching, with no application/lifecycle layer - use [`@nextrush/router`](../router) directly\n- You're targeting Bun, Deno, or an edge runtime - `nextrush`'s `listen`/`serve` come from `@nextrush/adapter-node`; import the matching `@nextrush/adapter-{bun,deno,edge}` directly for other runtimes\n\n---\n\n## Installation\n\n```bash\npnpm add nextrush\n# npm i nextrush | yarn add nextrush | bun add nextrush\n```\n\nThis resolves only the functional core and its five workspace dependencies (`@nextrush/core`,\n`@nextrush/router`, `@nextrush/adapter-node`, `@nextrush/errors`, `@nextrush/types`) - no class\nruntime, no DI container, no `reflect-metadata`. See [Compatibility](#compatibility) for the\nexact dependency footprint by usage path.\n\n> [!NOTE]\n> Scaffolding a new project? `pnpm create nextrush my-api` sets up `nextrush` (and, for\n> class-based/full templates, `@nextrush/class`) for you - see\n> [Scaffold a project](#scaffold-a-project) below.\n\n### Two intentional install steps: Runtime and Development Toolkit\n\n`nextrush` is the **runtime** - everything you need to *serve* requests. The dev server, production\nbuilds, and code generators live in a separate **development toolkit**, `@nextrush/dev`, installed\nas a dev dependency. This split is deliberate (nothing dev-only ships to production), not a missing\nbundle:\n\n```bash\npnpm add nextrush          # 1. Runtime - build and serve your app\npnpm add -D @nextrush/dev  # 2. Development Toolkit - `nextrush dev` / `build` / `generate`\n```\n\nThe `nextrush` command is provided by the runtime itself, so it always resolves. If you run\n`nextrush dev` before installing the toolkit, it doesn't fail with a raw \"command not found\" - it\nprints the exact install command for your package manager and a one-line description of what the\ntoolkit provides. `pnpm create nextrush` adds both steps for you.\n\n## Quick start\n\n```ts\nimport { createApp, createRouter, listen } from 'nextrush';\n\nconst app = createApp();\nconst router = createRouter();\n\nrouter.get('/', (ctx) => {\n  ctx.json({ message: 'Hello NextRush!' });\n});\n\napp.route('/', router);\n\nlisten(app, 8080);\n```\n\n`createApp()` here wraps `@nextrush/core`'s `createApp` and injects a default router, so\n`app.get(...)` also works without the explicit `createRouter()` step above - the two forms are\nequivalent; this one shows the router as its own object because most real apps mount several\nfeature routers with `app.route(prefix, router)`.\n\n## Capabilities\n\n**Application & routing**\n- **`createApp` / `Application`** - an `@nextrush/core` application with a router pre-wired\n- **`createRouter` / `Router` / `endpoint`** - the segment-trie router and its route-metadata marker\n- **`compose`** - the Koa-style middleware composer, re-exported standalone\n\n**Server**\n- **`listen` / `serve` / `createHandler`** - start an HTTP server on Node.js via `@nextrush/adapter-node`\n\n**Errors**\n- **The full `HttpError` hierarchy** - `BadRequestError`, `NotFoundError`, `UnauthorizedError`, and every other 4xx/5xx class\n- **`createError` / `isHttpError` / `errorHandler` / `notFoundHandler`** - error factories and middleware\n- **`ERROR_CODES` / `codeForStatus` / `ValidationError`** - the central error-code registry\n\n**Types & constants**\n- **`Context`, `Middleware`, `Next`, `Extension`, `ExtensionContext`, `RouteHandler`, `RouteDefinition`, `RouteMetadata`, `HttpMethod`** - the shared contracts every NextRush package builds on\n- **`HttpStatus`, `ContentType`** - HTTP constants\n\n**Class-based (opt-in, via `nextrush/class`)**\n- **Decorators, DI, controllers, modules, guards, interceptors, filters** - see [Class-based controllers](#class-based-controllers)\n\n**Developer experience**\n- **Fully typed, zero `any`** - every re-export carries its source package's exact types\n- **Actionable failure on a missing peer** - importing `nextrush/class` without its peers installed throws a message naming the exact install command, not an opaque resolution error\n\n## Mental model\n\n`nextrush` is a **barrel with one behavioral addition**: its root entry re-exports the functional stack as-is, except `createApp`, which wraps `@nextrush/core`'s version to inject a default router. The `nextrush/class` subpath is a second, independent barrel that dynamically loads the optional class/DI peers and re-exports their runtime values by assignment - so a resolution failure there produces an actionable error instead of crashing at import time.\n\n```text\n'nextrush'         ---> re-exports @nextrush/{core,router,adapter-node,errors,types}\n                          (createApp wraps @nextrush/core's, injecting a default router)\n\n'nextrush/class'   ---> dynamically imports reflect-metadata + @nextrush/di + @nextrush/class\n                          (only if you import this subpath - never loaded by the root entry)\n```\n\n**Rule:** importing `nextrush` never touches the class/DI stack. Importing `nextrush/class` is\nthe one and only place that stack gets loaded - and only if you've installed its peers.\n\n> [!TIP]\n> The exports-map routing between the two entries, and the dynamic-import/re-export-by-assignment\n> mechanism behind `nextrush/class`, are diagrammed in [`ARCHITECTURE.md`](./ARCHITECTURE.md).\n\n---\n\n## Common tasks\n\n### Build a functional app\n\n```ts\nimport { createApp, createRouter, listen } from 'nextrush';\n\nconst app = createApp();\nconst users = createRouter();\n\nusers.get('/', (ctx) => ctx.json([]));\nusers.get('/:id', (ctx) => ctx.json({ id: ctx.params.id }));\n\napp.route('/users', users); // Hono-style composition - mount a feature router at a prefix\n\nlisten(app, 8080);\n```\n\n### Add middleware\n\n```bash\npnpm add @nextrush/cors @nextrush/body-parser\n```\n\n```ts\nimport { createApp, listen } from 'nextrush';\nimport { cors } from '@nextrush/cors';\nimport { json } from '@nextrush/body-parser';\n\nconst app = createApp();\n\napp.use(cors());\napp.use(json());\n\napp.post('/api/users', (ctx) => {\n  const { name, email } = ctx.body as { name: string; email: string };\n  ctx.status = 201;\n  ctx.json({ id: Date.now(), name, email });\n});\n\nlisten(app, 8080);\n```\n\n### Handle errors\n\n```ts\nimport { NotFoundError, BadRequestError } from 'nextrush';\n\napp.get('/users/:id', async (ctx) => {\n  const user = await db.findUser(ctx.params.id);\n  if (!user) throw new NotFoundError('User not found');\n  ctx.json(user);\n});\n```\n\nAny `HttpError` subclass thrown from a handler is caught by `@nextrush/core`'s default error\npath and serialized through the same contract as `errorHandler()` - no manual `try`/`catch`\nneeded around individual routes.\n\n### Scaffold a project\n\n```bash\npnpm create nextrush my-api\ncd my-api && pnpm dev\n```\n\nThe `create nextrush` form (with a space) installs the `create-nextrush` package - you can also\nuse `npx create-nextrush@latest` or `pnpm dlx create-nextrush@latest`. The interactive\nscaffolder lets you choose functional, class-based, or full style, a middleware preset, and a\nruntime target; class-based and full templates add `@nextrush/class` to your `package.json`\nautomatically. See the\n[create-nextrush docs](https://github.com/0xTanzim/nextRush/tree/main/packages/create-nextrush#usage).\n\n## Class-Based Controllers\n\nClass-based APIs (decorators, DI, controllers) live behind the `nextrush/class` subpath, an\nexplicit, optional install:\n\n```bash\npnpm add nextrush @nextrush/class\n```\n\n```ts\nimport { createApp, listen } from 'nextrush';\nimport { Controller, Get, Service, registerControllers } from 'nextrush/class';\n\n@Service()\nclass GreetService {\n  greet() {\n    return { message: 'Hello!' };\n  }\n}\n\n@Controller('/api')\nclass HelloController {\n  constructor(private svc: GreetService) {}\n\n  @Get()\n  hello() {\n    return this.svc.greet();\n  }\n}\n\nconst app = createApp();\nawait registerControllers(app, { root: './src' });\nawait listen(app, 8080);\n```\n\nThe `nextrush/class` entry auto-imports `reflect-metadata`, so decorators and DI work with no\nextra setup once `@nextrush/class` is installed. `registerControllers` is a **registrar**, not a\nplugin - call and `await` it directly; it reads `app.router` and `app.container` (both injected\nby `nextrush`'s `createApp()`) and must resolve before `listen()`/`serve()` starts the server.\n\n> [!IMPORTANT]\n> `experimentalDecorators` and `emitDecoratorMetadata` must be enabled in `tsconfig.json` when\n> using `nextrush/class`. `create-nextrush` turns them **on** for class-based and full templates\n> and **omits** them for functional (routes-only) projects, where they are unnecessary.\n\n## API overview\n\nThe sealed public surface (ADR-0005), by entry point.\n\n### `nextrush` (root entry)\n\n| Export | From | Since | Stability | Description |\n| ------ | ---- | ----- | --------- | ----------- |\n| `createApp` | wraps `@nextrush/core` | `3.0.0` | Stable [x] | Creates an `Application` with a default router pre-wired. |\n| `Application`, `compose` | `@nextrush/core` | `3.0.0` | Stable [x] | The application class and the middleware composer. |\n| `Router`, `createRouter`, `endpoint` | `@nextrush/router` | `3.0.0` | Stable [x] | Segment-trie router and its route-metadata marker. |\n| `createHandler`, `listen`, `serve` | `@nextrush/adapter-node` | `3.0.0` | Stable [x] | Start an HTTP server on Node.js. |\n| `HttpError`, `NextRushError`, and every 4xx/5xx class | `@nextrush/errors` | `3.0.0` | Stable [x] | `BadRequestError`, `NotFoundError`, `UnauthorizedError`, `ForbiddenError`, `ConflictError`, `MethodNotAllowedError`, `UnprocessableEntityError`, `TooManyRequestsError`, `InternalServerError`, `NotImplementedError`, `BadGatewayError`, `ServiceUnavailableError`, `GatewayTimeoutError`. |\n| `createError`, `isHttpError`, `errorHandler`, `notFoundHandler` | `@nextrush/errors` | `3.0.0` | Stable [x] | Error factory and middleware. |\n| `ERROR_CODES`, `codeForStatus`, `ValidationError` | `@nextrush/errors` | `3.1.0` | Stable [x] | The central error-code registry and validation error type. |\n| `ContentType`, `HttpStatus` | `@nextrush/types` | `3.0.0` | Stable [x] | HTTP constants. |\n| `type ApplicationOptions`, `ComposedMiddleware` | `@nextrush/core` | `3.0.0` | Stable [x] | Application-level contracts. |\n| `type RouterOptions` | `@nextrush/router` | `3.0.0` | Stable [x] | Router configuration. |\n| `type ServeOptions`, `ServerInstance` | `@nextrush/adapter-node` | `3.0.0` | Stable [x] | Server-start contracts. |\n| `type ErrorHandlerOptions`, `HttpErrorOptions`, `ValidationIssue` | `@nextrush/errors` | `3.0.0` | Stable [x] | Error-handling contracts. |\n| `type Context`, `Extension`, `ExtensionContext`, `HttpMethod`, `HttpStatusCode`, `Middleware`, `Next`, `RouteHandler`, `RouteDefinition`, `RouteMetadata`, `Runtime` | `@nextrush/types` | `3.0.0` | Stable [x] | The shared contracts every NextRush package builds on. |\n\nThis runtime surface is locked by `src/__tests__/public-surface.test.ts`; if this table ever\nclaims an export that test doesn't list, that's a documentation bug - please file an issue.\n\n### `nextrush/class` (opt-in subpath)\n\n| Export | From | Since | Stability | Description |\n| ------ | ---- | ----- | --------- | ----------- |\n| `Controller`, `Get`, `Post`, `Put`, `Patch`, `Delete`, `Head`, `Options`, `All` | `@nextrush/class` | `3.0.0` | Stable [x] | Class and route decorators. |\n| `Body`, `Param`, `Query`, `Header`, `Ctx`, `Req`, `Res`, `createCustomParamDecorator` | `@nextrush/class` | `3.0.0` | Stable [x] | Parameter-binding decorators. |\n| `HttpCode`, `Redirect`, `SetHeader` | `@nextrush/class` | `3.0.0` | Stable [x] | Response decorators. |\n| `UseGuard`, `UseInterceptor`, `Catch`, `UseFilter` | `@nextrush/class` | `3.0.0` | Stable [x] | Guards, interceptors, exception filters. |\n| `isOnInit`, `isOnShutdown` | `@nextrush/class` | `3.0.0` | Stable [x] | Lifecycle-hook type guards. |\n| `Module`, `getModuleMetadata`, `isModule`, `registerModule` | `@nextrush/class` | `3.1.0` | Stable [x] | Module composition and registration. |\n| `registerControllers` | `@nextrush/class` | `3.0.0` | Stable [x] | Registrar - discovers and wires controllers into an app. |\n| `Config`, `container`, `createContainer`, `delay`, `inject`, `Injectable`, `Optional`, `Repository`, `Service` | `@nextrush/di` | `3.0.0` | Stable [x] | The DI container surface. |\n| `type ClassProvider`, `ConfigOptions`, `Container`, `FactoryProvider`, `Provider`, `Scope`, `ServiceOptions`, `Token`, `ValueProvider` | `@nextrush/di` | `3.0.0` | Stable [x] | DI contracts. |\n| `type BodyOptions`, `CanActivate`, `ControllerMetadata`, `ControllerOptions`, `ControllerRouteMetadata`, `CustomParamExtractor`, `ExceptionFilter`, `GuardContext`, `GuardFn`, `HeaderOptions`, `Interceptor`, `ModuleMetadata`, `ModuleOptions`, `ModuleProvider`, `ModuleProviderConfig`, `ParamMetadata`, `ParamOptions`, `ParamSource`, `QueryOptions`, `RouteOptions`, `TransformFn`, `OnInit`, `OnShutdown`, `ControllersOptions`, `ModuleRegistrationOptions` | `@nextrush/class` | `3.0.0`-`3.1.0` | Stable [x] | Class-runtime contracts. |\n| `type RouteMetadata` (from `@nextrush/class`) | `@nextrush/class` | `3.0.0` | Deprecated | Superseded by `ControllerRouteMetadata`; removed in the next major. |\n\nLoading `nextrush/class` requires `@nextrush/class`, `@nextrush/di`, and `reflect-metadata` to be\ninstalled - see [Compatibility](#compatibility).\n\n## Options\n\n`createApp(options?)` re-exports `@nextrush/core`'s `ApplicationOptions` unchanged - see\n[`@nextrush/core`'s Options](../core#options) for the full table. There is no configuration\nspecific to the meta package itself: it adds one behavior (a default router injected into\n`options.router` when you don't pass one) and no new option.\n\n## Compatibility\n\n**Requirements**\n\n| Requirement | Version |\n| ----------- | ------- |\n| NextRush | `3.x` |\n| Node.js | `>=22` |\n| TypeScript | `>=5.x` |\n\n**Runtimes**\n\n| Runtime | Supported | Notes |\n| ------- | --------- | ----- |\n| Node.js `>=22` | [x] | Via `@nextrush/adapter-node`; ESM-only |\n| Bun / Deno / Edge | Not via this package | Import `@nextrush/core` + `@nextrush/router` + the matching `@nextrush/adapter-{bun,deno,edge}` directly - `nextrush`'s `listen`/`serve` are Node-specific |\n\n**Dependency footprint by usage path**\n\n| Usage path | Entry point | Install | Runtime dependencies |\n| ---------- | ----------- | ------- | --------------------- |\n| Functional core | `createApp`, `createRouter`, `listen` from `nextrush` | `pnpm add nextrush` | `@nextrush/core`, `@nextrush/router`, `@nextrush/adapter-node`, `@nextrush/errors`, `@nextrush/types` (all hard `dependencies`) |\n| Class-based / DI | `nextrush/class` | `pnpm add nextrush @nextrush/class` | Adds `@nextrush/class`, `@nextrush/di` (wraps `tsyringe@^4.10.0`), `reflect-metadata@^0.2.2` |\n\n`@nextrush/class`, `@nextrush/di`, and `reflect-metadata` are declared as **optional\n`peerDependencies`** in `package.json` (`peerDependenciesMeta.<name>.optional: true`) - a\nfunctional-only `pnpm add nextrush` never resolves any of the three onto disk. If you import\n`nextrush/class` without installing the peers, the import throws an actionable error naming the\nexact install command instead of an opaque module-resolution failure.\n\n`@nextrush/stream` and `@nextrush/runtime` ship transitively through `@nextrush/adapter-node`'s\nown dependencies - they are present once `nextrush` is installed, but are not re-exported from\n`nextrush` directly. Add either as a direct dependency of your own project only if you import its\nAPI yourself rather than through the adapter.\n\n**Integration**\n- **Peer dependencies:** `@nextrush/class`, `@nextrush/di`, `reflect-metadata` - all optional, needed only for `nextrush/class`.\n- **Works with:** every `@nextrush/*` middleware and extension package (installed separately - see the [package catalog](https://0xtanzim.github.io/nextRush/docs/resources/package-catalog)).\n- **Incompatible with:** none.\n\n> [!IMPORTANT]\n> NextRush is **ESM-only, permanently** - no CommonJS build. On Node `>=22`, CommonJS consumers\n> can `require()` this ESM package natively. See the\n> [Module Format Policy](https://github.com/0xTanzim/nextRush#module-format-policy).\n\n---\n\n## Troubleshooting\n\n<details>\n<summary><strong><code>Cannot find module '@nextrush/class'</code> when importing <code>nextrush/class</code></strong></summary>\n\n**Cause:** `@nextrush/class`, `@nextrush/di`, and `reflect-metadata` are optional peer\ndependencies - a plain `pnpm add nextrush` never installs them. **Fix:** install the peer\nexplicitly:\n\n```bash\npnpm add @nextrush/class reflect-metadata\n```\n\n</details>\n\n<details>\n<summary><strong>Decorators throw or metadata is missing at runtime</strong></summary>\n\n**Cause:** `experimentalDecorators` and/or `emitDecoratorMetadata` are not enabled in\n`tsconfig.json`. **Fix:** enable both - `create-nextrush` does this automatically for\nclass-based/full templates:\n\n```json\n{\n  \"compilerOptions\": {\n    \"experimentalDecorators\": true,\n    \"emitDecoratorMetadata\": true\n  }\n}\n```\n\n</details>\n\n<details>\n<summary><strong><code>app.get(...)</code> throws <code>No router configured</code></strong></summary>\n\n**Cause:** you're calling `@nextrush/core`'s own `createApp()` (router-agnostic by design)\ninstead of `nextrush`'s. **Fix:** import `createApp` from `nextrush`, which injects a router:\n\n```ts\nimport { createApp } from 'nextrush'; // injects a router; app.get works\n```\n\n</details>\n\n## FAQ\n\n**Can I skip the meta package and use `@nextrush/core` / `@nextrush/router` / `@nextrush/adapter-node` directly?**\nYes - see [Direct package usage](#direct-package-usage) below. `nextrush` only adds the pre-wired router and the convenience barrel; nothing it re-exports is otherwise inaccessible.\n\n**Why ESM-only?**\nSee the [Module Format Policy](https://github.com/0xTanzim/nextRush#module-format-policy).\n\n**Does it work on Bun / Deno / Edge?**\nNot through `nextrush` itself - its `listen`/`serve` come from `@nextrush/adapter-node`. For other runtimes, import `@nextrush/core` + `@nextrush/router` + the matching `@nextrush/adapter-{bun,deno,edge}` directly; the functional API is otherwise identical, and parity across adapters is enforced by the conformance suite.\n\n**Why are `@nextrush/class` and `@nextrush/di` peer dependencies instead of regular dependencies?**\nSo a functional-only install never downloads or resolves the class/DI stack (and its `tsyringe`/`reflect-metadata` supply-chain surface) - see [ADR-0009](https://github.com/0xTanzim/nextRush/blob/main/docs/adr/ADR-0009-framework-composition-and-functional-install-boundary.md).\n\n---\n\n## Direct Package Usage\n\nFor maximum control, skip the meta package's convenience wrapping:\n\n```ts\nimport { createApp } from '@nextrush/core';\nimport { createRouter } from '@nextrush/router';\nimport { listen } from '@nextrush/adapter-node';\nimport { cors } from '@nextrush/cors';\n```\n\n`@nextrush/core`'s `createApp` does not inject a router - pass one explicitly\n(`createApp({ router: createRouter() })`) if you take this path.\n\n## Package relationships\n\n```text\n                 depends on            @nextrush/core, @nextrush/router, @nextrush/adapter-node\nnextrush -------------------------->   @nextrush/errors, @nextrush/types\n                 optional peer          @nextrush/class, @nextrush/di, reflect-metadata\n                 usually used next      @nextrush/cors, @nextrush/body-parser, any middleware/extension\n```\n\n- **Depends on:** [`@nextrush/core`](../core), [`@nextrush/router`](../router), [`@nextrush/adapter-node`](../adapters/node), [`@nextrush/errors`](../errors), [`@nextrush/types`](../types) - hard dependencies, resolved on every install.\n- **Optional peer:** [`@nextrush/class`](../class), [`@nextrush/di`](../di), `reflect-metadata` - resolved only if you install them, for `nextrush/class`.\n- **Often used with:** [`create-nextrush`](https://github.com/0xTanzim/nextRush/tree/main/packages/create-nextrush) - scaffolds a project that already depends on `nextrush` correctly configured.\n- **Usually used next:** any middleware package (`@nextrush/cors`, `@nextrush/body-parser`, `@nextrush/helmet`, ...) - see the [package catalog](https://0xtanzim.github.io/nextRush/docs/resources/package-catalog).\n- **Alternative:** [`@nextrush/core`](../core) directly, if you're building your own meta-package or adapter and don't want the pre-wired router.\n\n## Architecture\n\nMaintaining or contributing to this package? The internal design - the exports-map routing\nbetween the root entry and the `nextrush/class` subpath, the dynamic-import/re-export-by-\nassignment mechanism that turns a missing optional peer into an actionable error, the single-DI-\ninstance guarantee, and the decisions and trade-offs behind them (with diagrams) - is in\n**[`ARCHITECTURE.md`](./ARCHITECTURE.md)**. Design history:\n[RFC-020 - framework composition integrity](https://github.com/0xTanzim/nextRush/tree/main/docs/RFC/framework-composition/020-framework-composition-integrity.md),\n[ADR-0009](https://github.com/0xTanzim/nextRush/blob/main/docs/adr/ADR-0009-framework-composition-and-functional-install-boundary.md).\n\n## Resources\n\n- **Learn** - [Documentation](https://0xtanzim.github.io/nextRush/docs) | [Getting started](https://0xtanzim.github.io/nextRush/docs/getting-started) | [Architecture](./ARCHITECTURE.md) | [RFCs](https://github.com/0xTanzim/nextRush/tree/main/docs/RFC)\n- **Changelog** - [CHANGELOG.md](./CHANGELOG.md)\n- **Migration** - [Framework composition migration guide](https://github.com/0xTanzim/nextRush/blob/main/docs/guides/migration-framework-composition.md)\n- **Examples** - [create-nextrush templates](https://github.com/0xTanzim/nextRush/tree/main/packages/create-nextrush)\n- **Report an issue** - [GitHub Issues](https://github.com/0xTanzim/nextRush/issues)\n- **Contribute** - [CONTRIBUTING.md](https://github.com/0xTanzim/nextRush/blob/main/CONTRIBUTING.md)\n\n---\n\nMIT (c) [Tanzim Hossain](https://github.com/0xTanzim)\n","readmeFilename":""}