{"_id":"express-file-cluster","_rev":"36-ec50a90020207aa256e918ac6059c779","name":"express-file-cluster","dist-tags":{"latest":"0.3.15"},"versions":{"0.1.0":{"name":"express-file-cluster","version":"0.1.0","license":"MIT","_id":"express-file-cluster@0.1.0","maintainers":[{"name":"prashantadhikari","email":"prashantadhikareeey.dev@gmail.com"}],"bin":{"efc":"dist/cli/index.js"},"dist":{"shasum":"c1916a4e32c6925e730d1214a784d609c9a9c94c","tarball":"https://registry.npmjs.org/express-file-cluster/-/express-file-cluster-0.1.0.tgz","fileCount":53,"integrity":"sha512-7FtNsVkv9YNPBN43cRvKKWfjiLR3eqvK3EVDP1yQl/AGVXeGBploMemO/z7eKtUWGEjwtZKJsV1KCEVeyw3Y7A==","signatures":[{"sig":"MEQCIBDSmvQAzrDy/v0EOGnKAYvW7tJZWk0uyeQxGFHTefOGAiBWnWBPG5Togy6zyInze/nOuXal0FoC+KSCWqO4sGYwaA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":242559},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./auth":{"types":"./dist/auth/index.d.ts","import":"./dist/auth/index.js","require":"./dist/auth/index.cjs"},"./tasks":{"types":"./dist/tasks/index.d.ts","import":"./dist/tasks/index.js","require":"./dist/tasks/index.cjs"}},"gitHead":"90524dbbdc453a93bae6a3e5a9c67e259a926cc4","scripts":{"dev":"tsup --watch","build":"tsup","typecheck":"tsc --noEmit"},"_npmUser":{"name":"prashantadhikari","email":"prashantadhikareeey.dev@gmail.com"},"_npmVersion":"11.6.1","description":"Enterprise-grade, zero-boilerplate backend framework with file-based routing and multi-core clustering","directories":{},"_nodeVersion":"24.10.0","dependencies":{"chalk":"^5.3.0","express":"^4.19.0","chokidar":"^4.0.0","commander":"^12.0.0","jsonwebtoken":"^9.0.0","cookie-parser":"^1.4.6"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.2.0","bullmq":"^5.79.1","vitest":"^2.0.0","mongoose":"^9.7.2","typescript":"^5.5.0","@types/node":"^22.0.0","@types/express":"^4.17.21","@types/jsonwebtoken":"^9.0.6","@types/cookie-parser":"^1.4.7"},"peerDependencies":{"bullmq":">=5.0.0","mongoose":">=8.0.0"},"peerDependenciesMeta":{"bullmq":{"optional":true},"mongoose":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/express-file-cluster_0.1.0_1782165741561_0.9726515775581257","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"express-file-cluster","version":"0.1.1","license":"MIT","_id":"express-file-cluster@0.1.1","maintainers":[{"name":"prashantadhikari","email":"prashantadhikareeey.dev@gmail.com"}],"bin":{"efc":"dist/cli/index.js"},"dist":{"shasum":"cff14d142b0cac938c746f885f5019b1e32e9120","tarball":"https://registry.npmjs.org/express-file-cluster/-/express-file-cluster-0.1.1.tgz","fileCount":53,"integrity":"sha512-wWhHDbM8qFwXqvicI4hd4O/5hG/bGB8mewEpkfJ5L104QJeAs6bjQtkpHdgm55dJR1qaTQs3XsFAx8PvYnBEPA==","signatures":[{"sig":"MEQCIA0xHv+BCn04EJvWvGnI9Ee24zb5VASKaVoIy6eEMXU9AiASIZmZtu/Yv/UYR/JVzr5cqKpGmItiQQFkeqiEQNmW3A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":249994},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./auth":{"types":"./dist/auth/index.d.ts","import":"./dist/auth/index.js","require":"./dist/auth/index.cjs"},"./tasks":{"types":"./dist/tasks/index.d.ts","import":"./dist/tasks/index.js","require":"./dist/tasks/index.cjs"}},"gitHead":"f3e41925e35a1b7f0e27e93fb8ece32c57ef88c5","scripts":{"dev":"tsup --watch","build":"tsup","typecheck":"tsc --noEmit"},"_npmUser":{"name":"prashantadhikari","email":"prashantadhikareeey.dev@gmail.com"},"_npmVersion":"11.6.1","description":"Enterprise-grade, zero-boilerplate backend framework with file-based routing and multi-core clustering","directories":{},"_nodeVersion":"24.10.0","dependencies":{"cors":"^2.8.6","chalk":"^5.3.0","dotenv":"^17.4.2","express":"^4.19.0","chokidar":"^4.0.0","commander":"^12.0.0","jsonwebtoken":"^9.0.0","cookie-parser":"^1.4.6"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.2.0","bullmq":"^5.79.1","vitest":"^2.0.0","mongoose":"^9.7.2","typescript":"^5.5.0","@types/cors":"^2.8.19","@types/node":"^22.0.0","@types/express":"^4.17.21","@types/jsonwebtoken":"^9.0.6","@types/cookie-parser":"^1.4.7"},"peerDependencies":{"bullmq":">=5.0.0","mongoose":">=8.0.0"},"peerDependenciesMeta":{"bullmq":{"optional":true},"mongoose":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/express-file-cluster_0.1.1_1782167650419_0.04236638831006645","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"express-file-cluster","version":"0.1.2","license":"MIT","_id":"express-file-cluster@0.1.2","maintainers":[{"name":"prashantadhikari","email":"prashantadhikareeey.dev@gmail.com"}],"bin":{"efc":"dist/cli/index.js"},"dist":{"shasum":"41dff3d21b1a3ede66de87b4e5dfed4edca74c76","tarball":"https://registry.npmjs.org/express-file-cluster/-/express-file-cluster-0.1.2.tgz","fileCount":53,"integrity":"sha512-N+DyCtvrnYWa/Joh1kEG7U2l9fnw0VjlYhAWm04q+eEfmRXOKzj3mmjOnNSbDAbrAx5YHFOFLojI7XplClpDAQ==","signatures":[{"sig":"MEUCIG/eB+vSmNQyUYlc8g1pjZJ2IiIC8W7YMM9roCi642gZAiEAoFCdKwad8WqNYX3cv1sF6rIWnF1zoLKCQGC2wiSJVlw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":252294},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./auth":{"types":"./dist/auth/index.d.ts","import":"./dist/auth/index.js","require":"./dist/auth/index.cjs"},"./tasks":{"types":"./dist/tasks/index.d.ts","import":"./dist/tasks/index.js","require":"./dist/tasks/index.cjs"}},"gitHead":"e253b32f4220da9b5e77e7e2b7906e4a71d48ec4","scripts":{"dev":"tsup --watch","build":"tsup","typecheck":"tsc --noEmit"},"_npmUser":{"name":"prashantadhikari","email":"prashantadhikareeey.dev@gmail.com"},"_npmVersion":"11.6.1","description":"Enterprise-grade, zero-boilerplate backend framework with file-based routing and multi-core clustering","directories":{},"_nodeVersion":"24.10.0","dependencies":{"cors":"^2.8.6","chalk":"^5.3.0","dotenv":"^17.4.2","express":"^4.19.0","chokidar":"^4.0.0","commander":"^12.0.0","jsonwebtoken":"^9.0.0","cookie-parser":"^1.4.6"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.2.0","bullmq":"^5.79.1","vitest":"^2.0.0","mongoose":"^9.7.2","typescript":"^5.5.0","@types/cors":"^2.8.19","@types/node":"^22.0.0","@types/express":"^4.17.21","@types/jsonwebtoken":"^9.0.6","@types/cookie-parser":"^1.4.7"},"peerDependencies":{"bullmq":">=5.0.0","mongoose":">=8.0.0"},"peerDependenciesMeta":{"bullmq":{"optional":true},"mongoose":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/express-file-cluster_0.1.2_1782168657362_0.626256209991098","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"express-file-cluster","version":"0.1.3","license":"MIT","_id":"express-file-cluster@0.1.3","maintainers":[{"name":"prashantadhikari","email":"prashantadhikareeey.dev@gmail.com"}],"bin":{"efc":"dist/cli/index.js"},"dist":{"shasum":"2f4d4df2ad382a9b6d22923577308682e906eeab","tarball":"https://registry.npmjs.org/express-file-cluster/-/express-file-cluster-0.1.3.tgz","fileCount":54,"integrity":"sha512-tjXo1X7EhoPcvsL+gtotjbYqnhBZ3fnaV4/kEPfo8X8I3H4my5a5AZrOOtDYvmLq1QVoZmbASraD7Hor3U7ccA==","signatures":[{"sig":"MEQCICHm66/knlXSkAw2xeivkOvUFCiwdI9mP6fKldX/yKJbAiBgt296Jm+Bq8F6jgOHUtUNYtyk1NLG/UEJhOJjrxLDfg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":265779},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./auth":{"types":"./dist/auth/index.d.ts","import":"./dist/auth/index.js","require":"./dist/auth/index.cjs"},"./tasks":{"types":"./dist/tasks/index.d.ts","import":"./dist/tasks/index.js","require":"./dist/tasks/index.cjs"}},"gitHead":"9baafa7a1ada31265566badc02848f73d60d88e8","scripts":{"dev":"tsup --watch","build":"tsup","typecheck":"tsc --noEmit"},"_npmUser":{"name":"prashantadhikari","email":"prashantadhikareeey.dev@gmail.com"},"_npmVersion":"11.6.1","description":"Enterprise-grade, zero-boilerplate backend framework with file-based routing and multi-core clustering","directories":{},"_nodeVersion":"24.10.0","dependencies":{"cors":"^2.8.6","chalk":"^5.3.0","dotenv":"^17.4.2","express":"^4.19.0","chokidar":"^4.0.0","commander":"^12.0.0","jsonwebtoken":"^9.0.0","cookie-parser":"^1.4.6"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.2.0","bullmq":"^5.79.1","vitest":"^2.0.0","mongoose":"^9.7.2","supertest":"^7.2.2","typescript":"^5.5.0","@types/cors":"^2.8.19","@types/node":"^22.0.0","@types/express":"^4.17.21","@types/supertest":"^7.2.0","@types/jsonwebtoken":"^9.0.6","@types/cookie-parser":"^1.4.7"},"peerDependencies":{"bullmq":">=5.0.0","mongoose":">=8.0.0"},"peerDependenciesMeta":{"bullmq":{"optional":true},"mongoose":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/express-file-cluster_0.1.3_1782170030791_0.7349277000368761","host":"s3://npm-registry-packages-npm-production"}},"0.1.4":{"name":"express-file-cluster","version":"0.1.4","license":"MIT","_id":"express-file-cluster@0.1.4","maintainers":[{"name":"prashantadhikari","email":"prashantadhikareeey.dev@gmail.com"}],"bin":{"efc":"dist/cli/index.js"},"dist":{"shasum":"a068aff5bb909c232db5d0cc60e2273d9bca15dd","tarball":"https://registry.npmjs.org/express-file-cluster/-/express-file-cluster-0.1.4.tgz","fileCount":54,"integrity":"sha512-7g6vgomZZKt1WeRHbt8Y2iaz84uj6J8Ewx4y8K6j1pctVLhYbUd8QmTi1lEW9RuXmhLreIaR5s7YdaqDnCmnFQ==","signatures":[{"sig":"MEUCIQDSRcfg33paCmJc20RMG/1Zh9jTj4N2e5Ag5WaRW7IyxwIgcCZgVX46YPUQFdFE7TZI4IRdD/2w99v9tfTenE0mxuE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":272464},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./auth":{"types":"./dist/auth/index.d.ts","import":"./dist/auth/index.js","require":"./dist/auth/index.cjs"},"./tasks":{"types":"./dist/tasks/index.d.ts","import":"./dist/tasks/index.js","require":"./dist/tasks/index.cjs"}},"gitHead":"f51e92d623db3e0721c896ac9677cee37783ba20","scripts":{"dev":"tsup --watch","build":"tsup","typecheck":"tsc --noEmit"},"_npmUser":{"name":"prashantadhikari","email":"prashantadhikareeey.dev@gmail.com"},"_npmVersion":"10.8.2","description":"Enterprise-grade, zero-boilerplate backend framework with file-based routing and multi-core clustering","directories":{},"_nodeVersion":"20.20.2","dependencies":{"cors":"^2.8.6","chalk":"^5.3.0","dotenv":"^17.4.2","express":"^4.19.0","chokidar":"^4.0.0","commander":"^12.0.0","jsonwebtoken":"^9.0.0","cookie-parser":"^1.4.6"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.2.0","bullmq":"^5.79.1","vitest":"^2.0.0","mongoose":"^9.7.2","supertest":"^7.2.2","typescript":"^5.5.0","@types/cors":"^2.8.19","@types/node":"^22.0.0","@types/express":"^4.17.21","@types/supertest":"^7.2.0","@types/jsonwebtoken":"^9.0.6","@types/cookie-parser":"^1.4.7"},"peerDependencies":{"bullmq":">=5.0.0","mongoose":">=8.0.0"},"peerDependenciesMeta":{"bullmq":{"optional":true},"mongoose":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/express-file-cluster_0.1.4_1782173673976_0.1554481730982027","host":"s3://npm-registry-packages-npm-production"}},"0.1.5":{"name":"express-file-cluster","version":"0.1.5","license":"MIT","_id":"express-file-cluster@0.1.5","maintainers":[{"name":"prashantadhikari","email":"prashantadhikareeey.dev@gmail.com"}],"bin":{"efc":"dist/cli/index.js"},"dist":{"shasum":"94b7092d319e9f41ba6a4eb16ab2d5ee16acc3c6","tarball":"https://registry.npmjs.org/express-file-cluster/-/express-file-cluster-0.1.5.tgz","fileCount":27,"integrity":"sha512-klohgqZSxRyi659Qvo0bgc2Jgg7GRlcG+Ol7w6FydssLb46sVykAZ9AFdVxBBUN2Qoi1tPwdONRvXndbsK2P+g==","signatures":[{"sig":"MEQCIDFnrbh3tP2oHoHLS22fDxilqKy3LJgRIy4pQQYbTwDGAiB+HNI11o4O/MR2OLk6pG1J14hDBhJyBZbsYrwHx7yZ9w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":219400},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./auth":{"types":"./dist/auth/index.d.ts","import":"./dist/auth/index.js","require":"./dist/auth/index.cjs"},"./tasks":{"types":"./dist/tasks/index.d.ts","import":"./dist/tasks/index.js","require":"./dist/tasks/index.cjs"}},"gitHead":"f017ebbbf865d953e179151ad7d6c7bbe0742262","scripts":{"dev":"tsup --watch","build":"tsup","typecheck":"tsc --noEmit"},"_npmUser":{"name":"prashantadhikari","email":"prashantadhikareeey.dev@gmail.com"},"_npmVersion":"10.8.2","description":"Enterprise-grade, zero-boilerplate backend framework with file-based routing and multi-core clustering","directories":{},"_nodeVersion":"20.20.2","dependencies":{"cors":"^2.8.6","chalk":"^5.3.0","dotenv":"^17.4.2","express":"^4.19.0","chokidar":"^4.0.0","commander":"^12.0.0","jsonwebtoken":"^9.0.0","cookie-parser":"^1.4.6"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.2.0","bullmq":"^5.79.1","vitest":"^2.0.0","mongoose":"^9.7.2","supertest":"^7.2.2","typescript":"^5.5.0","@types/cors":"^2.8.19","@types/node":"^22.0.0","@types/express":"^4.17.21","@types/supertest":"^7.2.0","@types/jsonwebtoken":"^9.0.6","@types/cookie-parser":"^1.4.7"},"peerDependencies":{"bullmq":">=5.0.0","mongoose":">=8.0.0"},"peerDependenciesMeta":{"bullmq":{"optional":true},"mongoose":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/express-file-cluster_0.1.5_1782174020914_0.920618971973943","host":"s3://npm-registry-packages-npm-production"}},"0.1.6":{"name":"express-file-cluster","version":"0.1.6","license":"MIT","_id":"express-file-cluster@0.1.6","maintainers":[{"name":"prashantadhikari","email":"prashantadhikareeey.dev@gmail.com"}],"bin":{"efc":"dist/cli/index.js"},"dist":{"shasum":"9f2d8f823c49603396c635bf1f64d27295946f76","tarball":"https://registry.npmjs.org/express-file-cluster/-/express-file-cluster-0.1.6.tgz","fileCount":27,"integrity":"sha512-Iv0hfDxsxNfNZbWE3sP7PyWrlUiKT/+sB+ND2ah6vJwrq4V4mot85aGE2fddld6O5bXjH7u5DWHiBHwoiseqIw==","signatures":[{"sig":"MEQCID+F6MGgDOJyn+3x7Nns8g2MbV9eNu94Y5EzgpTgsX0XAiBwljel4sBQEWkKY3mnN00KqYlfK6tlCIFMtnUF/ySfTg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":222277},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./auth":{"types":"./dist/auth/index.d.ts","import":"./dist/auth/index.js","require":"./dist/auth/index.cjs"},"./tasks":{"types":"./dist/tasks/index.d.ts","import":"./dist/tasks/index.js","require":"./dist/tasks/index.cjs"}},"gitHead":"44fa9f2a1fa4472ae0783e75b75c46b1898debe5","scripts":{"dev":"tsup --watch","build":"tsup","typecheck":"tsc --noEmit"},"_npmUser":{"name":"prashantadhikari","email":"prashantadhikareeey.dev@gmail.com"},"_npmVersion":"10.8.2","description":"Enterprise-grade, zero-boilerplate backend framework with file-based routing and multi-core clustering","directories":{},"_nodeVersion":"20.20.2","dependencies":{"cors":"^2.8.6","chalk":"^5.3.0","dotenv":"^17.4.2","express":"^4.19.0","chokidar":"^4.0.0","commander":"^12.0.0","jsonwebtoken":"^9.0.0","cookie-parser":"^1.4.6"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.2.0","bullmq":"^5.79.1","vitest":"^2.0.0","mongoose":"^9.7.2","supertest":"^7.2.2","typescript":"^5.5.0","@types/cors":"^2.8.19","@types/node":"^22.0.0","@types/express":"^4.17.21","@types/supertest":"^7.2.0","@types/jsonwebtoken":"^9.0.6","@types/cookie-parser":"^1.4.7"},"peerDependencies":{"bullmq":">=5.0.0","mongoose":">=8.0.0"},"peerDependenciesMeta":{"bullmq":{"optional":true},"mongoose":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/express-file-cluster_0.1.6_1782176341830_0.7028494315443312","host":"s3://npm-registry-packages-npm-production"}},"0.1.8":{"name":"express-file-cluster","version":"0.1.8","license":"MIT","_id":"express-file-cluster@0.1.8","maintainers":[{"name":"prashantadhikari","email":"prashantadhikareeey.dev@gmail.com"}],"bin":{"efc":"dist/cli/index.js"},"dist":{"shasum":"9ff1d85f4d0e1c1c9dd485750306cfc24373617f","tarball":"https://registry.npmjs.org/express-file-cluster/-/express-file-cluster-0.1.8.tgz","fileCount":39,"integrity":"sha512-nUuld3fRAPMpZDW0kwBf/o6GOh5s4Ma1jzxIcV9P2L8qr/m8xDKRrJu6LsbM3oYnuzh9os6bTi/YUqPN+s0txw==","signatures":[{"sig":"MEUCIGRWYLmuU0dqe6Pmt8DWDmnWJa0HfLrhNs3dHS4ixW9QAiEA+sjYxMdKdiK5qvW1VmMGcuPy1uJxswcxMKeITl/7Hdg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":200661},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./auth":{"types":"./dist/auth/index.d.ts","import":"./dist/auth/index.js","require":"./dist/auth/index.cjs"},"./tasks":{"types":"./dist/tasks/index.d.ts","import":"./dist/tasks/index.js","require":"./dist/tasks/index.cjs"}},"gitHead":"dc7e35c5a5439af7194161ed257a74432a922935","scripts":{"dev":"tsup --watch","build":"tsup","typecheck":"tsc --noEmit"},"_npmUser":{"name":"prashantadhikari","email":"prashantadhikareeey.dev@gmail.com"},"_npmVersion":"10.8.2","description":"Enterprise-grade, zero-boilerplate backend framework with file-based routing and multi-core clustering","directories":{},"_nodeVersion":"20.20.2","dependencies":{"cors":"^2.8.6","chalk":"^5.3.0","dotenv":"^17.4.2","express":"^4.19.0","chokidar":"^4.0.0","commander":"^12.0.0","jsonwebtoken":"^9.0.0","cookie-parser":"^1.4.6"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.2.0","bullmq":"^5.79.1","vitest":"^2.0.0","mongoose":"^9.7.2","supertest":"^7.2.2","typescript":"^5.5.0","@types/cors":"^2.8.19","@types/node":"^22.0.0","@types/express":"^4.17.21","@types/supertest":"^7.2.0","@types/jsonwebtoken":"^9.0.6","@types/cookie-parser":"^1.4.7"},"peerDependencies":{"bullmq":">=5.0.0","mongoose":">=8.0.0"},"peerDependenciesMeta":{"bullmq":{"optional":true},"mongoose":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/express-file-cluster_0.1.8_1782178972946_0.056801419343612825","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"express-file-cluster","version":"0.2.0","license":"MIT","_id":"express-file-cluster@0.2.0","maintainers":[{"name":"prashantadhikari","email":"prashantadhikareeey.dev@gmail.com"}],"bin":{"efc":"dist/cli/index.js"},"dist":{"shasum":"26fdb7c285ddb77b2887935540de6d9ede7944a0","tarball":"https://registry.npmjs.org/express-file-cluster/-/express-file-cluster-0.2.0.tgz","fileCount":39,"integrity":"sha512-nZI6GbuNVz8HN56vae7fpyw6jyEUWu2qdRDjvDUz34QhyqodiygxrvHL2zOd6T7M25lPg8Eigh/j5PJkR+3KqA==","signatures":[{"sig":"MEQCICI1/aF7XsdJD5bh5DifCgc+boGUNZjhv7Cw39aTIQpLAiAztTuNjKU/HY+Ygb1kvNDRN1DEQMx6Tg5WDvG2dwhuxg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":201979},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./auth":{"types":"./dist/auth/index.d.ts","import":"./dist/auth/index.js","require":"./dist/auth/index.cjs"},"./tasks":{"types":"./dist/tasks/index.d.ts","import":"./dist/tasks/index.js","require":"./dist/tasks/index.cjs"}},"gitHead":"2e794e2e7683b36303c9c6b8c2682f3cdee14cb0","scripts":{"dev":"tsup --watch","build":"tsup","typecheck":"tsc --noEmit"},"_npmUser":{"name":"prashantadhikari","email":"prashantadhikareeey.dev@gmail.com"},"_npmVersion":"10.8.2","description":"Enterprise-grade, zero-boilerplate backend framework with file-based routing and multi-core clustering","directories":{},"_nodeVersion":"20.20.2","dependencies":{"cors":"^2.8.6","jose":"^6.2.3","express":"^4.19.0","chokidar":"^4.0.0","commander":"^12.0.0","picocolors":"^1.1.1","cookie-parser":"^1.4.6"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.2.0","bullmq":"^5.79.1","vitest":"^2.0.0","mongoose":"^9.7.2","supertest":"^7.2.2","typescript":"^5.5.0","@types/cors":"^2.8.19","@types/node":"^22.0.0","@types/express":"^4.17.21","@types/supertest":"^7.2.0","@types/cookie-parser":"^1.4.7"},"peerDependencies":{"bullmq":">=5.0.0","mongoose":">=8.0.0"},"peerDependenciesMeta":{"bullmq":{"optional":true},"mongoose":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/express-file-cluster_0.2.0_1782228313071_0.7364169699132488","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"express-file-cluster","version":"0.2.1","license":"MIT","_id":"express-file-cluster@0.2.1","maintainers":[{"name":"prashantadhikari","email":"prashantadhikareeey.dev@gmail.com"}],"bin":{"efc":"dist/cli/index.js"},"dist":{"shasum":"61d1d58b6e09a5a12551366bec9ecdbaf4577a73","tarball":"https://registry.npmjs.org/express-file-cluster/-/express-file-cluster-0.2.1.tgz","fileCount":40,"integrity":"sha512-D/bO0Z2vJY6LoOdgVfLEWFPDRs5nD0cq7Tb40oMCPX7airUppPV88CrsnycIXOzEOP+Ny9RXARk0ocPBaOWXUA==","signatures":[{"sig":"MEUCIQDJLOlioDdLqI+GQJdGplVsP4ubn9Nt1rCzgefzb6EdwgIgXPDsYx1XXgD+pW/P/kiOfEPPshsu3pYviyTNvorUbkE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":213273},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./auth":{"types":"./dist/auth/index.d.ts","import":"./dist/auth/index.js","require":"./dist/auth/index.cjs"},"./tasks":{"types":"./dist/tasks/index.d.ts","import":"./dist/tasks/index.js","require":"./dist/tasks/index.cjs"}},"gitHead":"900076058f8825a6fa71c357e246f3fb50fc82ef","scripts":{"dev":"tsup --watch","build":"tsup","typecheck":"tsc --noEmit"},"_npmUser":{"name":"prashantadhikari","email":"prashantadhikareeey.dev@gmail.com"},"_npmVersion":"10.8.2","description":"Enterprise-grade, zero-boilerplate backend framework with file-based routing and multi-core clustering","directories":{},"_nodeVersion":"20.20.2","dependencies":{"cors":"^2.8.6","jose":"^6.2.3","express":"^4.19.0","chokidar":"^4.0.0","commander":"^12.0.0","picocolors":"^1.1.1","cookie-parser":"^1.4.6"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.2.0","bullmq":"^5.79.1","vitest":"^2.0.0","mongoose":"^9.7.2","supertest":"^7.2.2","typescript":"^5.5.0","@types/cors":"^2.8.19","@types/node":"^22.0.0","@types/express":"^4.17.21","@types/supertest":"^7.2.0","@types/cookie-parser":"^1.4.7"},"peerDependencies":{"bullmq":">=5.0.0","mongoose":">=8.0.0"},"peerDependenciesMeta":{"bullmq":{"optional":true},"mongoose":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/express-file-cluster_0.2.1_1782229972971_0.1315599858756502","host":"s3://npm-registry-packages-npm-production"}},"0.2.2":{"name":"express-file-cluster","version":"0.2.2","license":"MIT","_id":"express-file-cluster@0.2.2","maintainers":[{"name":"prashantadhikari","email":"prashantadhikareeey.dev@gmail.com"}],"bin":{"efc":"dist/cli/index.js"},"dist":{"shasum":"cfef9a42e6fb7a5dc9df02647e1f5cd2876f1208","tarball":"https://registry.npmjs.org/express-file-cluster/-/express-file-cluster-0.2.2.tgz","fileCount":40,"integrity":"sha512-mRl0eNxTwYv2OO4oxM978R29yA6DiyUXIlCSPHOxIPDCPp+qsN7Wy9j8O0NOwQOpQddSmJ9YpfYCNigzhUxFvQ==","signatures":[{"sig":"MEUCIEgiJHQjTcTrNq/jT0e/4gh6y03Wolp8CF0qcgV265UHAiEAjvkyQglxKVYERVBYvLP/T2tFdsAjAj4eTopvRIBXtuI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":214507},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./auth":{"types":"./dist/auth/index.d.ts","import":"./dist/auth/index.js","require":"./dist/auth/index.cjs"},"./tasks":{"types":"./dist/tasks/index.d.ts","import":"./dist/tasks/index.js","require":"./dist/tasks/index.cjs"}},"gitHead":"fec55cbea882a2fe53331fd7f4497e8e8295812f","scripts":{"dev":"tsup --watch","build":"tsup","typecheck":"tsc --noEmit"},"_npmUser":{"name":"prashantadhikari","email":"prashantadhikareeey.dev@gmail.com"},"_npmVersion":"10.8.2","description":"Enterprise-grade, zero-boilerplate backend framework with file-based routing and multi-core clustering","directories":{},"_nodeVersion":"20.20.2","dependencies":{"cors":"^2.8.6","jose":"^6.2.3","express":"^4.19.0","chokidar":"^4.0.0","commander":"^12.0.0","picocolors":"^1.1.1","cookie-parser":"^1.4.6"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.2.0","bullmq":"^5.79.1","vitest":"^4.1.9","mongoose":"^9.7.2","supertest":"^7.2.2","typescript":"^5.5.0","@types/cors":"^2.8.19","@types/node":"^22.0.0","@types/express":"^4.17.21","@types/supertest":"^7.2.0","@types/cookie-parser":"^1.4.7"},"peerDependencies":{"bullmq":">=5.0.0","mongoose":">=8.0.0"},"peerDependenciesMeta":{"bullmq":{"optional":true},"mongoose":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/express-file-cluster_0.2.2_1782288741972_0.5618933468706073","host":"s3://npm-registry-packages-npm-production"}},"0.2.3":{"name":"express-file-cluster","version":"0.2.3","license":"MIT","_id":"express-file-cluster@0.2.3","maintainers":[{"name":"prashantadhikari","email":"prashantadhikareeey.dev@gmail.com"}],"bin":{"efc":"dist/cli/index.js"},"dist":{"shasum":"23d546f67f9f0fe13a9cbc5084c52df3062cf268","tarball":"https://registry.npmjs.org/express-file-cluster/-/express-file-cluster-0.2.3.tgz","fileCount":40,"integrity":"sha512-PCixr4VWHjVqrEK92iYZaH40+EjWkBsBEO9awJEo5hw4YlSFcGJpxWmyxPTTYtArvIxz+FgncXPEybIfwwnnzA==","signatures":[{"sig":"MEYCIQDm7Ur0KiGjVo/o6KXqQJA2xbihD0GJyCsFrL2z7w+aIAIhAN2EW1aJiZKzVXOxVD8k5emjJ1n1QurMefpkibyLtZ0+","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":333611},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./auth":{"types":"./dist/auth/index.d.ts","import":"./dist/auth/index.js","require":"./dist/auth/index.cjs"},"./tasks":{"types":"./dist/tasks/index.d.ts","import":"./dist/tasks/index.js","require":"./dist/tasks/index.cjs"}},"gitHead":"c150fb5258d9718b4a152edda0d88b953a416c61","scripts":{"dev":"tsup --watch","build":"tsup","typecheck":"tsc --noEmit"},"_npmUser":{"name":"prashantadhikari","email":"prashantadhikareeey.dev@gmail.com"},"_npmVersion":"10.8.2","description":"Enterprise-grade, zero-boilerplate backend framework with file-based routing and multi-core clustering","directories":{},"_nodeVersion":"20.20.2","dependencies":{"cors":"^2.8.6","jose":"^6.2.3","express":"^4.19.0","chokidar":"^4.0.0","commander":"^12.0.0","picocolors":"^1.1.1","cookie-parser":"^1.4.6"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.2.0","bullmq":"^5.79.1","vitest":"^4.1.9","mongoose":"^9.7.2","supertest":"^7.2.2","typescript":"^5.5.0","@types/cors":"^2.8.19","@types/node":"^22.0.0","@types/express":"^4.17.21","@types/supertest":"^7.2.0","@types/cookie-parser":"^1.4.7"},"peerDependencies":{"bullmq":">=5.0.0","mongoose":">=8.0.0"},"peerDependenciesMeta":{"bullmq":{"optional":true},"mongoose":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/express-file-cluster_0.2.3_1782412070510_0.056170230933207055","host":"s3://npm-registry-packages-npm-production"}},"0.2.4":{"name":"express-file-cluster","version":"0.2.4","license":"MIT","_id":"express-file-cluster@0.2.4","maintainers":[{"name":"prashantadhikari","email":"prashantadhikareeey.dev@gmail.com"}],"bin":{"efc":"dist/cli/index.js"},"dist":{"shasum":"57f382b8d6f047487caadd1e3854dba35d5c97a6","tarball":"https://registry.npmjs.org/express-file-cluster/-/express-file-cluster-0.2.4.tgz","fileCount":40,"integrity":"sha512-UgJBL4tPtGZ9ii623i/GUSIuMYKIUuE/+Hvan72W7yMGHTNYPjgWgByca/+F/ZFuX57j/dmdWkRDwDYlcSRsrg==","signatures":[{"sig":"MEUCIQDxv+JlCrxUOf2RRAvx2F6WZ6SZq91aRFF/3rr2IlAO7QIgH5uHBIBmTd7ogLMEOGYOnVZwx0jc5uLjMmJHbARjZZo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":334274},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./auth":{"types":"./dist/auth/index.d.ts","import":"./dist/auth/index.js","require":"./dist/auth/index.cjs"},"./tasks":{"types":"./dist/tasks/index.d.ts","import":"./dist/tasks/index.js","require":"./dist/tasks/index.cjs"}},"gitHead":"2403a72707468c29ca59e247b685f5832eb0c196","scripts":{"dev":"tsup --watch","build":"tsup","typecheck":"tsc --noEmit"},"_npmUser":{"name":"prashantadhikari","email":"prashantadhikareeey.dev@gmail.com"},"_npmVersion":"10.8.2","description":"Enterprise-grade, zero-boilerplate backend framework with file-based routing and multi-core clustering","directories":{},"_nodeVersion":"20.20.2","dependencies":{"cors":"^2.8.6","jose":"^6.2.3","express":"^4.19.0","chokidar":"^4.0.0","commander":"^12.0.0","picocolors":"^1.1.1","cookie-parser":"^1.4.6"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.2.0","bullmq":"^5.79.1","vitest":"^4.1.9","mongoose":"^9.7.2","supertest":"^7.2.2","typescript":"^5.5.0","@types/cors":"^2.8.19","@types/node":"^22.0.0","@types/express":"^4.17.21","@types/supertest":"^7.2.0","@types/cookie-parser":"^1.4.7"},"peerDependencies":{"bullmq":">=5.0.0","mongoose":">=8.0.0"},"peerDependenciesMeta":{"bullmq":{"optional":true},"mongoose":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/express-file-cluster_0.2.4_1782442182647_0.8756346664328363","host":"s3://npm-registry-packages-npm-production"}},"0.2.5":{"name":"express-file-cluster","version":"0.2.5","license":"MIT","_id":"express-file-cluster@0.2.5","maintainers":[{"name":"prashantadhikari","email":"prashantadhikareeey.dev@gmail.com"}],"bin":{"efc":"dist/cli/index.js"},"dist":{"shasum":"25ee4e7b428a7c486587809308a1d4c4b0a6e3b9","tarball":"https://registry.npmjs.org/express-file-cluster/-/express-file-cluster-0.2.5.tgz","fileCount":40,"integrity":"sha512-eXvM2yGKhGi/W/pR/KBAur0Aha5KQNEHNlESplDMfoGZu/YGoyVFeqaCqY7QkHs+47K95GP8mIw4M2v3XowZxw==","signatures":[{"sig":"MEUCIDwdzC4SUmvVwZjsotZqyASFggUZPzKU3/u7s3aRnsYHAiEAzlIzwOwjUH6XQd3icsIHGe8iqA60epPl3tQmiB+jNag=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":334274},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./auth":{"types":"./dist/auth/index.d.ts","import":"./dist/auth/index.js","require":"./dist/auth/index.cjs"},"./tasks":{"types":"./dist/tasks/index.d.ts","import":"./dist/tasks/index.js","require":"./dist/tasks/index.cjs"}},"gitHead":"553fb0c00a9a6c0e29f0d85d9ff8950b0eb3b023","scripts":{"dev":"tsup --watch","build":"tsup","typecheck":"tsc --noEmit"},"_npmUser":{"name":"prashantadhikari","email":"prashantadhikareeey.dev@gmail.com"},"_npmVersion":"10.8.2","description":"Enterprise-grade, zero-boilerplate backend framework with file-based routing and multi-core clustering","directories":{},"_nodeVersion":"20.20.2","dependencies":{"cors":"^2.8.6","jose":"^6.2.3","express":"^4.19.0","chokidar":"^4.0.0","commander":"^12.0.0","picocolors":"^1.1.1","cookie-parser":"^1.4.6"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.2.0","bullmq":"^5.79.1","vitest":"^4.1.9","mongoose":"^9.7.2","supertest":"^7.2.2","typescript":"^5.5.0","@types/cors":"^2.8.19","@types/node":"^22.0.0","@types/express":"^4.17.21","@types/supertest":"^7.2.0","@types/cookie-parser":"^1.4.7"},"peerDependencies":{"bullmq":">=5.0.0","mongoose":">=8.0.0"},"peerDependenciesMeta":{"bullmq":{"optional":true},"mongoose":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/express-file-cluster_0.2.5_1782442753584_0.006089679876163379","host":"s3://npm-registry-packages-npm-production"}},"0.2.6":{"name":"express-file-cluster","version":"0.2.6","license":"MIT","_id":"express-file-cluster@0.2.6","maintainers":[{"name":"prashantadhikari","email":"prashantadhikareeey.dev@gmail.com"}],"bin":{"efc":"dist/cli/index.js"},"dist":{"shasum":"83cf35bf2b0541baf3e2c49d8b3f0392f92db55b","tarball":"https://registry.npmjs.org/express-file-cluster/-/express-file-cluster-0.2.6.tgz","fileCount":40,"integrity":"sha512-bASEiSHgeZefyePEiLfsvpL3v18GMSvL4r2qNIdhdFGZOkkFlEdxiYvkU6SlmlHlXfrF2kRRh+qr6ZhpmQ+aHg==","signatures":[{"sig":"MEYCIQCABoft2fMDkyweOXLm6OBDeGy2TimewXWAuFnFHOiBbAIhALN/QcIRdzDNaCxpZtCZ7jNqeklhIeOHgHZlVnA3VRAx","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":334274},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./auth":{"types":"./dist/auth/index.d.ts","import":"./dist/auth/index.js","require":"./dist/auth/index.cjs"},"./tasks":{"types":"./dist/tasks/index.d.ts","import":"./dist/tasks/index.js","require":"./dist/tasks/index.cjs"}},"gitHead":"0fe926381aae80e88fdf250a6a14031b2c2140d3","scripts":{"dev":"tsup --watch","build":"tsup","typecheck":"tsc --noEmit"},"_npmUser":{"name":"prashantadhikari","email":"prashantadhikareeey.dev@gmail.com"},"_npmVersion":"10.8.2","description":"Enterprise-grade, zero-boilerplate backend framework with file-based routing and multi-core clustering","directories":{},"_nodeVersion":"20.20.2","dependencies":{"cors":"^2.8.6","jose":"^6.2.3","express":"^4.19.0","chokidar":"^4.0.0","commander":"^12.0.0","picocolors":"^1.1.1","cookie-parser":"^1.4.6"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.2.0","bullmq":"^5.79.1","vitest":"^4.1.9","mongoose":"^9.7.2","supertest":"^7.2.2","typescript":"^5.5.0","@types/cors":"^2.8.19","@types/node":"^22.0.0","@types/express":"^4.17.21","@types/supertest":"^7.2.0","@types/cookie-parser":"^1.4.7"},"peerDependencies":{"bullmq":">=5.0.0","mongoose":">=8.0.0"},"peerDependenciesMeta":{"bullmq":{"optional":true},"mongoose":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/express-file-cluster_0.2.6_1782470675424_0.4292564980539315","host":"s3://npm-registry-packages-npm-production"}},"0.2.7":{"name":"express-file-cluster","version":"0.2.7","license":"MIT","_id":"express-file-cluster@0.2.7","maintainers":[{"name":"prashantadhikari","email":"prashantadhikareeey.dev@gmail.com"}],"bin":{"efc":"dist/cli/index.js"},"dist":{"shasum":"a8007f82e093d11cdbba81626b0f5e9571ecccc7","tarball":"https://registry.npmjs.org/express-file-cluster/-/express-file-cluster-0.2.7.tgz","fileCount":40,"integrity":"sha512-SJPZchC/wc6jebKSz0JawOtNDCGscRoyPWdqxhFvEphqasOg+PDHw50f8d2q8zz7fHCjCz4CA0qmeZjy85gV+w==","signatures":[{"sig":"MEQCIFZ8iFkMXO5dcKHsMsLeT8HxU5ReJJq2xYhkJWEy48Q8AiBDi3zrDVg4H+Kye2/BaQXLOSrKLf1795Si/FnMIcfcgw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":338422},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./auth":{"types":"./dist/auth/index.d.ts","import":"./dist/auth/index.js","require":"./dist/auth/index.cjs"},"./tasks":{"types":"./dist/tasks/index.d.ts","import":"./dist/tasks/index.js","require":"./dist/tasks/index.cjs"}},"gitHead":"eda00c3b9b5a5ea2f77b91e23ec86915084b9610","scripts":{"dev":"tsup --watch","build":"tsup","typecheck":"tsc --noEmit"},"_npmUser":{"name":"prashantadhikari","email":"prashantadhikareeey.dev@gmail.com"},"_npmVersion":"10.8.2","description":"Enterprise-grade, zero-boilerplate backend framework with file-based routing and multi-core clustering","directories":{},"_nodeVersion":"20.20.2","dependencies":{"cors":"^2.8.6","jose":"^6.2.3","express":"^4.19.0","chokidar":"^4.0.0","commander":"^12.0.0","picocolors":"^1.1.1","cookie-parser":"^1.4.6"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.2.0","bullmq":"^5.79.1","vitest":"^4.1.9","mongoose":"^9.7.2","supertest":"^7.2.2","typescript":"^5.5.0","@types/cors":"^2.8.19","@types/node":"^22.0.0","@types/express":"^4.17.21","@types/supertest":"^7.2.0","@types/cookie-parser":"^1.4.7"},"peerDependencies":{"bullmq":">=5.0.0","mongoose":">=8.0.0"},"peerDependenciesMeta":{"bullmq":{"optional":true},"mongoose":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/express-file-cluster_0.2.7_1782490654179_0.969323364209999","host":"s3://npm-registry-packages-npm-production"}},"0.2.8":{"name":"express-file-cluster","version":"0.2.8","license":"MIT","_id":"express-file-cluster@0.2.8","maintainers":[{"name":"prashantadhikari","email":"prashantadhikareeey.dev@gmail.com"}],"bin":{"efc":"dist/cli/index.js"},"dist":{"shasum":"cfd55b3234b8faf4e27e174e7dcbe56fa53ebc9a","tarball":"https://registry.npmjs.org/express-file-cluster/-/express-file-cluster-0.2.8.tgz","fileCount":40,"integrity":"sha512-wfFLnprjiYds2Y2l7KAxUgkC/TegigsKrO86Dm013PfsFnSoArRB+U7HtjBNhY/DoPWuVtOqcD7q2Vfwn/nPPA==","signatures":[{"sig":"MEYCIQDUad+M0yFUNhpNTrpL/G/9hBInASpFkcmIdwY7BKzo2gIhAKHnxLW2znwAgjsrl2qGAHDnjONkQNFSlHKVrOuWno6t","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":338422},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./auth":{"types":"./dist/auth/index.d.ts","import":"./dist/auth/index.js","require":"./dist/auth/index.cjs"},"./tasks":{"types":"./dist/tasks/index.d.ts","import":"./dist/tasks/index.js","require":"./dist/tasks/index.cjs"}},"gitHead":"c1a36a2d48a03c06d963a81164e7be1b47312db3","scripts":{"dev":"tsup --watch","build":"tsup","typecheck":"tsc --noEmit"},"_npmUser":{"name":"prashantadhikari","email":"prashantadhikareeey.dev@gmail.com"},"_npmVersion":"10.8.2","description":"Enterprise-grade, zero-boilerplate backend framework with file-based routing and multi-core clustering","directories":{},"_nodeVersion":"20.20.2","dependencies":{"cors":"^2.8.6","jose":"^6.2.3","express":"^4.19.0","chokidar":"^4.0.0","commander":"^12.0.0","picocolors":"^1.1.1","cookie-parser":"^1.4.6"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.2.0","bullmq":"^5.79.1","vitest":"^4.1.9","mongoose":"^9.7.2","supertest":"^7.2.2","typescript":"^5.5.0","@types/cors":"^2.8.19","@types/node":"^22.0.0","@types/express":"^4.17.21","@types/supertest":"^7.2.0","@types/cookie-parser":"^1.4.7"},"peerDependencies":{"bullmq":">=5.0.0","mongoose":">=8.0.0"},"peerDependenciesMeta":{"bullmq":{"optional":true},"mongoose":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/express-file-cluster_0.2.8_1782751702859_0.18391447515655668","host":"s3://npm-registry-packages-npm-production"}},"0.2.9":{"name":"express-file-cluster","version":"0.2.9","license":"MIT","_id":"express-file-cluster@0.2.9","maintainers":[{"name":"prashantadhikari","email":"prashantadhikareeey.dev@gmail.com"}],"bin":{"efc":"dist/cli/index.js"},"dist":{"shasum":"88c312f35d23d30475e050dac5d3c4d2f4569c67","tarball":"https://registry.npmjs.org/express-file-cluster/-/express-file-cluster-0.2.9.tgz","fileCount":40,"integrity":"sha512-Z90e1kbdvBGCbieOSgNwKc1JCrw8S0h7ohYImCLZVUIgL9gPnitVUiYrJE8GcLisBHogOViyU8LuHgS0y0dd7w==","signatures":[{"sig":"MEQCIET7/2wFxT7MGdmdbF+gStcb7gcpdNIODDLQvaI3C/7VAiAWYD4YekhyLAfbbsWfz/DG3AejA4vT8TSrJQE0beIbbQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":338422},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./auth":{"types":"./dist/auth/index.d.ts","import":"./dist/auth/index.js","require":"./dist/auth/index.cjs"},"./tasks":{"types":"./dist/tasks/index.d.ts","import":"./dist/tasks/index.js","require":"./dist/tasks/index.cjs"}},"gitHead":"3917c7d709a4a9bc16bd2f1b48c98e8a47684e2d","scripts":{"dev":"tsup --watch","build":"tsup","typecheck":"tsc --noEmit"},"_npmUser":{"name":"prashantadhikari","email":"prashantadhikareeey.dev@gmail.com"},"_npmVersion":"10.8.2","description":"Enterprise-grade, zero-boilerplate backend framework with file-based routing and multi-core clustering","directories":{},"_nodeVersion":"20.20.2","dependencies":{"cors":"^2.8.6","jose":"^6.2.3","express":"^4.19.0","chokidar":"^4.0.0","commander":"^12.0.0","picocolors":"^1.1.1","cookie-parser":"^1.4.6"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.2.0","bullmq":"^5.79.1","vitest":"^4.1.9","mongoose":"^9.7.2","supertest":"^7.2.2","typescript":"^5.5.0","@types/cors":"^2.8.19","@types/node":"^22.0.0","@types/express":"^4.17.21","@types/supertest":"^7.2.0","@types/cookie-parser":"^1.4.7"},"peerDependencies":{"bullmq":">=5.0.0","mongoose":">=8.0.0"},"peerDependenciesMeta":{"bullmq":{"optional":true},"mongoose":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/express-file-cluster_0.2.9_1782976864748_0.1738935805771229","host":"s3://npm-registry-packages-npm-production"}},"0.2.10":{"name":"express-file-cluster","version":"0.2.10","license":"MIT","_id":"express-file-cluster@0.2.10","maintainers":[{"name":"prashantadhikari","email":"prashantadhikareeey.dev@gmail.com"}],"bin":{"efc":"dist/cli/index.js"},"dist":{"shasum":"3457083f5065f1bf8437f936136b64e8a089a7b1","tarball":"https://registry.npmjs.org/express-file-cluster/-/express-file-cluster-0.2.10.tgz","fileCount":40,"integrity":"sha512-+e59VzTUS0Xaw40T3edFgeTkYPDtE/fexhI5TNJctG5ir+/sA5u0QIkK1id3v0r+OLvNMTwMfBwswIKrI3qfKQ==","signatures":[{"sig":"MEUCIHZMYV/3oDE35KghDPfDC9fp0Ba2qiLuTR99MkhLjwscAiEA1RmOhzoSoIzo/P2cpF24c5yWqRlPzTNogZNzKq0q8U0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":338423},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./auth":{"types":"./dist/auth/index.d.ts","import":"./dist/auth/index.js","require":"./dist/auth/index.cjs"},"./tasks":{"types":"./dist/tasks/index.d.ts","import":"./dist/tasks/index.js","require":"./dist/tasks/index.cjs"}},"gitHead":"b6a62d94cc6555d13abe4ce30e5bcfbdf160a4f3","scripts":{"dev":"tsup --watch","build":"tsup","typecheck":"tsc --noEmit"},"_npmUser":{"name":"prashantadhikari","email":"prashantadhikareeey.dev@gmail.com"},"_npmVersion":"10.8.2","description":"Enterprise-grade, zero-boilerplate backend framework with file-based routing and multi-core clustering","directories":{},"_nodeVersion":"20.20.2","dependencies":{"cors":"^2.8.6","jose":"^6.2.3","express":"^4.19.0","chokidar":"^4.0.0","commander":"^12.0.0","picocolors":"^1.1.1","cookie-parser":"^1.4.6"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.2.0","bullmq":"^5.79.1","vitest":"^4.1.9","mongoose":"^9.7.2","supertest":"^7.2.2","typescript":"^5.5.0","@types/cors":"^2.8.19","@types/node":"^22.0.0","@types/express":"^4.17.21","@types/supertest":"^7.2.0","@types/cookie-parser":"^1.4.7"},"peerDependencies":{"bullmq":">=5.0.0","mongoose":">=8.0.0"},"peerDependenciesMeta":{"bullmq":{"optional":true},"mongoose":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/express-file-cluster_0.2.10_1782979900155_0.6954591520107891","host":"s3://npm-registry-packages-npm-production"}},"0.2.11":{"name":"express-file-cluster","version":"0.2.11","license":"MIT","_id":"express-file-cluster@0.2.11","maintainers":[{"name":"prashantadhikari","email":"prashantadhikareeey.dev@gmail.com"}],"bin":{"efc":"dist/cli/index.js"},"dist":{"shasum":"e3efd12a45532c07eadd53367be5522dfe31edd3","tarball":"https://registry.npmjs.org/express-file-cluster/-/express-file-cluster-0.2.11.tgz","fileCount":40,"integrity":"sha512-GgnAZ2J/tplkQOcpbkjUb0AvfLwFhEJR6PJRHbywfE4+HTB15ZvEvv8JfDWjC/IRdK4qTazenZRBJiJHDBn3+g==","signatures":[{"sig":"MEUCIQDOb4Gl75A7y+O7hxFFAHwPBH2wtzjkTaW/MnZbCCN29gIgS4O18MFyMgSDSR1j4+MwVvXSraCahMukUjNdg0MzQ3g=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":343723},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./auth":{"types":"./dist/auth/index.d.ts","import":"./dist/auth/index.js","require":"./dist/auth/index.cjs"},"./tasks":{"types":"./dist/tasks/index.d.ts","import":"./dist/tasks/index.js","require":"./dist/tasks/index.cjs"}},"gitHead":"8848d4ce74031a60e791dd1edf12853a0e19b2aa","scripts":{"dev":"tsup --watch","build":"tsup","typecheck":"tsc --noEmit"},"_npmUser":{"name":"prashantadhikari","email":"prashantadhikareeey.dev@gmail.com"},"_npmVersion":"10.8.2","description":"Enterprise-grade, zero-boilerplate backend framework with file-based routing and multi-core clustering","directories":{},"_nodeVersion":"20.20.2","dependencies":{"cors":"^2.8.6","jose":"^6.2.3","express":"^4.19.0","chokidar":"^4.0.0","commander":"^12.0.0","picocolors":"^1.1.1","cookie-parser":"^1.4.6"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.2.0","bullmq":"^5.79.1","vitest":"^4.1.9","mongoose":"^9.7.2","supertest":"^7.2.2","typescript":"^5.5.0","@types/cors":"^2.8.19","@types/node":"^22.0.0","@types/express":"^4.17.21","@types/supertest":"^7.2.0","@types/cookie-parser":"^1.4.7"},"peerDependencies":{"bullmq":">=5.0.0","mongoose":">=8.0.0"},"peerDependenciesMeta":{"bullmq":{"optional":true},"mongoose":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/express-file-cluster_0.2.11_1782986606528_0.5546469313510067","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"express-file-cluster","version":"0.3.0","license":"MIT","_id":"express-file-cluster@0.3.0","maintainers":[{"name":"prashantadhikari","email":"prashantadhikareeey.dev@gmail.com"}],"bin":{"efc":"dist/cli/index.js"},"dist":{"shasum":"7e5bff273dbfebd04f689ccad8067e4c6345df5e","tarball":"https://registry.npmjs.org/express-file-cluster/-/express-file-cluster-0.3.0.tgz","fileCount":40,"integrity":"sha512-/ul64DPe5T/xR7Lh4Ua2xXF6QwTST2Gmc8kd/JeYVZfBjKbc9PtgIlh3381RX63GipFl4hrY4JsT+agUt/oDtw==","signatures":[{"sig":"MEQCIF/HMyHVmqLYXZUvqoGTFhWfTWhCJbyJYM9VowLT/jpXAiB9buA2QKEhS2rfqn8tE3OMh6fQirTvXFhd0Ybnrnwc0g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":349376},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./auth":{"types":"./dist/auth/index.d.ts","import":"./dist/auth/index.js","require":"./dist/auth/index.cjs"},"./tasks":{"types":"./dist/tasks/index.d.ts","import":"./dist/tasks/index.js","require":"./dist/tasks/index.cjs"}},"gitHead":"5925ee05974d935665eea169ff8e2daa66d42754","scripts":{"dev":"tsup --watch","build":"tsup","typecheck":"tsc --noEmit"},"_npmUser":{"name":"prashantadhikari","email":"prashantadhikareeey.dev@gmail.com"},"_npmVersion":"10.8.2","description":"Enterprise-grade, zero-boilerplate backend framework with file-based routing and multi-core clustering","directories":{},"_nodeVersion":"20.20.2","dependencies":{"cors":"^2.8.6","jose":"^6.2.3","express":"^4.19.0","chokidar":"^4.0.0","commander":"^12.0.0","picocolors":"^1.1.1","cookie-parser":"^1.4.6"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.2.0","bullmq":"^5.79.1","vitest":"^4.1.9","mongoose":"^9.7.2","supertest":"^7.2.2","typescript":"^5.5.0","@types/cors":"^2.8.19","@types/node":"^22.0.0","@types/express":"^4.17.21","@types/supertest":"^7.2.0","@types/cookie-parser":"^1.4.7"},"peerDependencies":{"bullmq":">=5.0.0","mongoose":">=8.0.0"},"peerDependenciesMeta":{"bullmq":{"optional":true},"mongoose":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/express-file-cluster_0.3.0_1782989994107_0.8510515424094875","host":"s3://npm-registry-packages-npm-production"}},"0.3.1":{"name":"express-file-cluster","version":"0.3.1","license":"MIT","_id":"express-file-cluster@0.3.1","maintainers":[{"name":"prashantadhikari","email":"prashantadhikareeey.dev@gmail.com"}],"bin":{"efc":"dist/cli/index.js"},"dist":{"shasum":"ac81f5c22a4629a312505933806caf4bc89d03c3","tarball":"https://registry.npmjs.org/express-file-cluster/-/express-file-cluster-0.3.1.tgz","fileCount":40,"integrity":"sha512-ti5JHX1SkaTj3AawohnHyD8iIrts+tC9BwhqaWYK8660t1iyNyTExVrUTLH6+4teZ0LvdyxwDhxry+4nTYZ2nQ==","signatures":[{"sig":"MEQCIBb+4tkJYzItHQ1OathWMWWtfO3ERxyvJT7xIwQDrTCmAiAWPXsNXcbtlN4XjXab1ViyVGUGSU0wtHFV4qJ5VCzA5g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":349432},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./auth":{"types":"./dist/auth/index.d.ts","import":"./dist/auth/index.js","require":"./dist/auth/index.cjs"},"./tasks":{"types":"./dist/tasks/index.d.ts","import":"./dist/tasks/index.js","require":"./dist/tasks/index.cjs"}},"gitHead":"5925ee05974d935665eea169ff8e2daa66d42754","scripts":{"dev":"tsup --watch","build":"tsup","typecheck":"tsc --noEmit"},"_npmUser":{"name":"prashantadhikari","email":"prashantadhikareeey.dev@gmail.com"},"_npmVersion":"11.16.0","description":"Enterprise-grade, zero-boilerplate backend framework with file-based routing and multi-core clustering","directories":{},"_nodeVersion":"26.3.1","dependencies":{"cors":"^2.8.6","jose":"^6.2.3","express":"^4.19.0","chokidar":"^4.0.0","commander":"^12.0.0","picocolors":"^1.1.1","cookie-parser":"^1.4.6"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.2.0","bullmq":"^5.79.1","vitest":"^4.1.9","mongoose":"^9.7.2","supertest":"^7.2.2","typescript":"^5.5.0","@types/cors":"^2.8.19","@types/node":"^22.0.0","@types/express":"^4.17.21","@types/supertest":"^7.2.0","@types/cookie-parser":"^1.4.7"},"peerDependencies":{"bullmq":">=5.0.0","mongoose":">=8.0.0"},"peerDependenciesMeta":{"bullmq":{"optional":true},"mongoose":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/express-file-cluster_0.3.1_1782991066296_0.3647955171033641","host":"s3://npm-registry-packages-npm-production"}},"0.3.2":{"name":"express-file-cluster","version":"0.3.2","license":"MIT","_id":"express-file-cluster@0.3.2","maintainers":[{"name":"prashantadhikari","email":"prashantadhikareeey.dev@gmail.com"}],"bin":{"efc":"dist/cli/index.js"},"dist":{"shasum":"a0cd749b11e8575b3bf6fa53334993d25ac6e8e5","tarball":"https://registry.npmjs.org/express-file-cluster/-/express-file-cluster-0.3.2.tgz","fileCount":40,"integrity":"sha512-NgXmAnaN8tYM4V4tW5+4HNvOgcBICvtiu9DpDvGgTFA2bcgHwNZbPI4uqWKEErinz/6zcnZKDp9ba5ZdRVIBlw==","signatures":[{"sig":"MEUCIQDkVZQK9vqPcXzxnHreEkBEkaU30RTW9h0Zsvj7YthVjAIgJpOGEgHl2TumpA1hPEXiXkaWfHFdd8mBY9RxeegHlG4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":349374},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./auth":{"types":"./dist/auth/index.d.ts","import":"./dist/auth/index.js","require":"./dist/auth/index.cjs"},"./tasks":{"types":"./dist/tasks/index.d.ts","import":"./dist/tasks/index.js","require":"./dist/tasks/index.cjs"}},"gitHead":"558e7a156b4469124890a9fec6c8167c92fe3c51","scripts":{"dev":"tsup --watch","build":"tsup","typecheck":"tsc --noEmit"},"_npmUser":{"name":"prashantadhikari","email":"prashantadhikareeey.dev@gmail.com"},"_npmVersion":"10.8.2","description":"Enterprise-grade, zero-boilerplate backend framework with file-based routing and multi-core clustering","directories":{},"_nodeVersion":"20.20.2","dependencies":{"cors":"^2.8.6","jose":"^6.2.3","express":"^4.19.0","chokidar":"^4.0.0","commander":"^12.0.0","picocolors":"^1.1.1","cookie-parser":"^1.4.6"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.2.0","bullmq":"^5.79.1","vitest":"^4.1.9","mongoose":"^9.7.2","supertest":"^7.2.2","typescript":"^5.5.0","@types/cors":"^2.8.19","@types/node":"^22.0.0","@types/express":"^4.17.21","@types/supertest":"^7.2.0","@types/cookie-parser":"^1.4.7"},"peerDependencies":{"bullmq":">=5.0.0","mongoose":">=8.0.0"},"peerDependenciesMeta":{"bullmq":{"optional":true},"mongoose":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/express-file-cluster_0.3.2_1782991125568_0.33417326880115894","host":"s3://npm-registry-packages-npm-production"}},"0.3.3":{"name":"express-file-cluster","version":"0.3.3","license":"MIT","_id":"express-file-cluster@0.3.3","maintainers":[{"name":"prashantadhikari","email":"prashantadhikareeey.dev@gmail.com"}],"bin":{"efc":"dist/cli/index.js"},"dist":{"shasum":"eeda7462c1596b50576b232a41e12ad572c822d7","tarball":"https://registry.npmjs.org/express-file-cluster/-/express-file-cluster-0.3.3.tgz","fileCount":40,"integrity":"sha512-1viAyLiaS6WOzTsSOKaCpFoLi3qjSCHPzejBGiBHnx1m4Be7qE6M9p0sZ3BBywbJ2k3879vphwSi5jIzKpd8Ow==","signatures":[{"sig":"MEYCIQCQSJZYV38CRfDqOFzJf9MKHue7YtuBN62KgNCB+9uSDwIhAOprdSI4mhXZDAZXhxqF/WECVlCyBbSvTGMRcCkMAQaA","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":349374},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./auth":{"types":"./dist/auth/index.d.ts","import":"./dist/auth/index.js","require":"./dist/auth/index.cjs"},"./tasks":{"types":"./dist/tasks/index.d.ts","import":"./dist/tasks/index.js","require":"./dist/tasks/index.cjs"}},"gitHead":"ba32d622ff0356ae5ab7f208a04e3e7a69aa68fb","scripts":{"dev":"tsup --watch","build":"tsup","typecheck":"tsc --noEmit"},"_npmUser":{"name":"prashantadhikari","email":"prashantadhikareeey.dev@gmail.com"},"_npmVersion":"10.8.2","description":"Enterprise-grade, zero-boilerplate backend framework with file-based routing and multi-core clustering","directories":{},"_nodeVersion":"20.20.2","dependencies":{"cors":"^2.8.6","jose":"^6.2.3","express":"^4.19.0","chokidar":"^4.0.0","commander":"^12.0.0","picocolors":"^1.1.1","cookie-parser":"^1.4.6"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.2.0","bullmq":"^5.79.1","vitest":"^4.1.9","mongoose":"^9.7.2","supertest":"^7.2.2","typescript":"^5.5.0","@types/cors":"^2.8.19","@types/node":"^22.0.0","@types/express":"^4.17.21","@types/supertest":"^7.2.0","@types/cookie-parser":"^1.4.7"},"peerDependencies":{"bullmq":">=5.0.0","mongoose":">=8.0.0"},"peerDependenciesMeta":{"bullmq":{"optional":true},"mongoose":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/express-file-cluster_0.3.3_1782991916207_0.20373102692757206","host":"s3://npm-registry-packages-npm-production"}},"0.3.4":{"name":"express-file-cluster","version":"0.3.4","license":"MIT","_id":"express-file-cluster@0.3.4","maintainers":[{"name":"prashantadhikari","email":"prashantadhikareeey.dev@gmail.com"}],"bin":{"efc":"dist/cli/index.js"},"dist":{"shasum":"05abe81d1675c2eb2e53c35d7d40b45357329a79","tarball":"https://registry.npmjs.org/express-file-cluster/-/express-file-cluster-0.3.4.tgz","fileCount":40,"integrity":"sha512-2cbXByTTR31h4Yow/sc11a3jZ+eq6TB+jfMGPhy8yrgB1hRZ7lmr8tAhszajG3tBlXIX3y8Y7mykW93aj/JThA==","signatures":[{"sig":"MEQCIEXKmOYA0aIjOd+2vHRefrt66oDqdhvDQWhJjh6cRqZXAiAWdNXR6qvl4q7PwVL1roYhUFbdsaic1Ry32gmHExQpWw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":349402},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./auth":{"types":"./dist/auth/index.d.ts","import":"./dist/auth/index.js","require":"./dist/auth/index.cjs"},"./tasks":{"types":"./dist/tasks/index.d.ts","import":"./dist/tasks/index.js","require":"./dist/tasks/index.cjs"}},"gitHead":"b45141ff44383630271af96ea3bf12c92723e30c","scripts":{"dev":"tsup --watch","build":"tsup","typecheck":"tsc --noEmit"},"_npmUser":{"name":"prashantadhikari","email":"prashantadhikareeey.dev@gmail.com"},"_npmVersion":"10.8.2","description":"Enterprise-grade, zero-boilerplate backend framework with file-based routing and multi-core clustering","directories":{},"_nodeVersion":"20.20.2","dependencies":{"cors":"^2.8.6","jose":"^6.2.3","chokidar":"^4.0.0","commander":"^12.0.0","picocolors":"^1.1.1","cookie-parser":"^1.4.6"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.2.0","bullmq":"^5.79.1","vitest":"^4.1.9","mongoose":"^9.7.2","supertest":"^7.2.2","typescript":"^5.5.0","@types/cors":"^2.8.19","@types/node":"^22.0.0","@types/express":"^4.17.21","@types/supertest":"^7.2.0","@types/cookie-parser":"^1.4.7"},"peerDependencies":{"bullmq":">=5.0.0","express":"^4.19.0","mongoose":">=8.0.0"},"peerDependenciesMeta":{"bullmq":{"optional":true},"mongoose":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/express-file-cluster_0.3.4_1783336386742_0.47906322909104704","host":"s3://npm-registry-packages-npm-production"}},"0.3.5":{"name":"express-file-cluster","version":"0.3.5","license":"MIT","_id":"express-file-cluster@0.3.5","maintainers":[{"name":"prashantadhikari","email":"prashantadhikareeey.dev@gmail.com"}],"bin":{"efc":"dist/cli/index.js"},"dist":{"shasum":"67bc9c45c9bd09d8167690d0c4bed4ff9ac724da","tarball":"https://registry.npmjs.org/express-file-cluster/-/express-file-cluster-0.3.5.tgz","fileCount":40,"integrity":"sha512-xDrHrM8lRXK1+Q2eNMxutlCE6tiv8zv3iedzZ8Y51uulW3K2i7AIbFjoFv3yA6G5y1oDUtO7/8cifQDILwJFdQ==","signatures":[{"sig":"MEQCIBwqqWht3sdtYZaFP5PpAmmaBGXDGoryxdqP+y49TgzpAiBTkYhv3HkqJ1MHZ81WC/v9yARXeWwG93KXATxe2cSSzw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":352767},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./auth":{"types":"./dist/auth/index.d.ts","import":"./dist/auth/index.js","require":"./dist/auth/index.cjs"},"./tasks":{"types":"./dist/tasks/index.d.ts","import":"./dist/tasks/index.js","require":"./dist/tasks/index.cjs"}},"gitHead":"cfa9e8ed05defd1ab80cb22deba3a9a74f278ef8","scripts":{"dev":"tsup --watch","build":"tsup","typecheck":"tsc --noEmit"},"_npmUser":{"name":"prashantadhikari","email":"prashantadhikareeey.dev@gmail.com"},"_npmVersion":"10.8.2","description":"Enterprise-grade, zero-boilerplate backend framework with file-based routing and multi-core clustering","directories":{},"_nodeVersion":"20.20.2","dependencies":{"cors":"^2.8.6","jose":"^6.2.3","chokidar":"^4.0.0","commander":"^12.0.0","picocolors":"^1.1.1","cookie-parser":"^1.4.6"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.2.0","bullmq":"^5.79.1","vitest":"^4.1.9","mongoose":"^9.7.2","supertest":"^7.2.2","typescript":"^5.5.0","@types/cors":"^2.8.19","@types/node":"^22.0.0","@types/express":"^4.17.21","@types/supertest":"^7.2.0","@types/cookie-parser":"^1.4.7"},"peerDependencies":{"bullmq":">=5.0.0","express":"^4.19.0","mongoose":">=8.0.0"},"peerDependenciesMeta":{"bullmq":{"optional":true},"mongoose":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/express-file-cluster_0.3.5_1783712198969_0.7073176187538399","host":"s3://npm-registry-packages-npm-production"}},"0.3.6":{"name":"express-file-cluster","version":"0.3.6","license":"MIT","_id":"express-file-cluster@0.3.6","maintainers":[{"name":"prashantadhikari","email":"prashantadhikareeey.dev@gmail.com"}],"bin":{"efc":"dist/cli/index.js"},"dist":{"shasum":"b42e9b55387890ca13c2ec6cba4f060591f252b8","tarball":"https://registry.npmjs.org/express-file-cluster/-/express-file-cluster-0.3.6.tgz","fileCount":40,"integrity":"sha512-wHaarYYVO4gTqZiC98P6te8M1X7uU48QT4Z6FzEJVhK/TGF23v81WS9XV56qD4Tqbezk5Xc5PydrBHWDV0ArOA==","signatures":[{"sig":"MEYCIQCcPS/FzGNm9OLgjPdKCd9n99lmRlnB5AO4axJuZfh7pQIhALIHREDQvmqpH4BDm9RAhM+KOo22MNu+ShcotnDTd5Vl","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":366333},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./auth":{"types":"./dist/auth/index.d.ts","import":"./dist/auth/index.js","require":"./dist/auth/index.cjs"},"./tasks":{"types":"./dist/tasks/index.d.ts","import":"./dist/tasks/index.js","require":"./dist/tasks/index.cjs"}},"gitHead":"c9ff4a2674435c8dc602adf12a8dbd2210e37220","scripts":{"dev":"tsup --watch","build":"tsup","typecheck":"tsc --noEmit"},"_npmUser":{"name":"prashantadhikari","email":"prashantadhikareeey.dev@gmail.com"},"_npmVersion":"10.8.2","description":"Enterprise-grade, zero-boilerplate backend framework with file-based routing and multi-core clustering","directories":{},"_nodeVersion":"20.20.2","dependencies":{"cors":"^2.8.6","jose":"^6.2.3","chokidar":"^4.0.0","commander":"^12.0.0","picocolors":"^1.1.1","cookie-parser":"^1.4.6"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.2.0","bullmq":"^5.79.1","vitest":"^4.1.9","mongoose":"^9.7.2","supertest":"^7.2.2","typescript":"^5.5.0","@types/cors":"^2.8.19","@types/node":"^22.0.0","@types/express":"^4.17.21","@types/supertest":"^7.2.0","@types/cookie-parser":"^1.4.7"},"peerDependencies":{"bullmq":">=5.0.0","express":"^4.19.0","mongoose":">=8.0.0"},"peerDependenciesMeta":{"bullmq":{"optional":true},"mongoose":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/express-file-cluster_0.3.6_1784014672674_0.10123576410739088","host":"s3://npm-registry-packages-npm-production"}},"0.3.7":{"name":"express-file-cluster","version":"0.3.7","license":"MIT","_id":"express-file-cluster@0.3.7","maintainers":[{"name":"prashantadhikari","email":"prashantadhikareeey.dev@gmail.com"}],"bin":{"efc":"dist/cli/index.js"},"dist":{"shasum":"30eb98012d84df852de604545d52e5137789ae40","tarball":"https://registry.npmjs.org/express-file-cluster/-/express-file-cluster-0.3.7.tgz","fileCount":40,"integrity":"sha512-IgVdb0T15oW7Fx0UZog5iol/183AYHJQOljfNrVdu9VyCLzJC+oHeOsOKD95afzTFB5te/If3QZmMqWlqRI61g==","signatures":[{"sig":"MEQCIEOCGkYkIwck03+0uEhk7WCZryJLkpaWnjlX4ULF8Xq+AiAhuFT0t77HdWIIAFCGcI86F2ub8gJQ24oCiJ2XFHbcrA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":371606},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./auth":{"types":"./dist/auth/index.d.ts","import":"./dist/auth/index.js","require":"./dist/auth/index.cjs"},"./tasks":{"types":"./dist/tasks/index.d.ts","import":"./dist/tasks/index.js","require":"./dist/tasks/index.cjs"}},"gitHead":"53ca4ae6cb8449da27310c2af4e563458ab0db1f","scripts":{"dev":"tsup --watch","build":"tsup","typecheck":"tsc --noEmit"},"_npmUser":{"name":"prashantadhikari","email":"prashantadhikareeey.dev@gmail.com"},"_npmVersion":"10.8.2","description":"Enterprise-grade, zero-boilerplate backend framework with file-based routing and multi-core clustering","directories":{},"_nodeVersion":"20.20.2","dependencies":{"cors":"^2.8.6","jose":"^6.2.3","chokidar":"^4.0.0","commander":"^12.0.0","picocolors":"^1.1.1","cookie-parser":"^1.4.6"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.2.0","bullmq":"^5.79.1","vitest":"^4.1.9","mongoose":"^9.7.2","supertest":"^7.2.2","typescript":"^5.5.0","@types/cors":"^2.8.19","@types/node":"^22.0.0","@types/express":"^4.17.21","@types/supertest":"^7.2.0","@types/cookie-parser":"^1.4.7"},"peerDependencies":{"bullmq":">=5.0.0","express":"^4.19.0","mongoose":">=8.0.0"},"peerDependenciesMeta":{"bullmq":{"optional":true},"mongoose":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/express-file-cluster_0.3.7_1784383711082_0.5911095535222675","host":"s3://npm-registry-packages-npm-production"}},"0.3.8":{"name":"express-file-cluster","version":"0.3.8","license":"MIT","_id":"express-file-cluster@0.3.8","maintainers":[{"name":"prashantadhikari","email":"prashantadhikareeey.dev@gmail.com"}],"bin":{"efc":"dist/cli/index.js"},"dist":{"shasum":"ae64e4f1c08464be379cf612d0b8632aee110a9e","tarball":"https://registry.npmjs.org/express-file-cluster/-/express-file-cluster-0.3.8.tgz","fileCount":40,"integrity":"sha512-0nCLZNmJXbCO2cS2hYYETe8VtXQuCLslIyO99DT/kb4kCog7a6bhBOqxG5r7gc/49ndOhOap82DTjOLB6kV3Sg==","signatures":[{"sig":"MEUCIQCBV1YSwGemxXA3eW7x2i0agnvg81s1buPppUaKSy1hdAIgfZGCMbkNE7OwiH0creRZDWu58h/Qizmke/CaRTPabg8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":379844},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./auth":{"types":"./dist/auth/index.d.ts","import":"./dist/auth/index.js","require":"./dist/auth/index.cjs"},"./tasks":{"types":"./dist/tasks/index.d.ts","import":"./dist/tasks/index.js","require":"./dist/tasks/index.cjs"}},"gitHead":"09bfc9325cda61ab06e71da1b4b3c71c4ff63639","scripts":{"dev":"tsup --watch","build":"tsup","typecheck":"tsc --noEmit"},"_npmUser":{"name":"prashantadhikari","email":"prashantadhikareeey.dev@gmail.com"},"_npmVersion":"10.8.2","description":"Enterprise-grade, zero-boilerplate backend framework with file-based routing and multi-core clustering","directories":{},"_nodeVersion":"20.20.2","dependencies":{"cors":"^2.8.6","jose":"^6.2.3","chokidar":"^4.0.0","commander":"^12.0.0","picocolors":"^1.1.1","cookie-parser":"^1.4.6"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.2.0","bullmq":"^5.79.1","vitest":"^4.1.9","mongoose":"^9.7.2","supertest":"^7.2.2","typescript":"^5.5.0","@types/cors":"^2.8.19","@types/node":"^22.0.0","@types/express":"^4.17.21","@types/supertest":"^7.2.0","@types/cookie-parser":"^1.4.7"},"peerDependencies":{"bullmq":">=5.0.0","express":"^4.19.0","mongoose":">=8.0.0"},"peerDependenciesMeta":{"bullmq":{"optional":true},"mongoose":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/express-file-cluster_0.3.8_1784383937640_0.9196178609742294","host":"s3://npm-registry-packages-npm-production"}},"0.3.9":{"name":"express-file-cluster","version":"0.3.9","license":"MIT","_id":"express-file-cluster@0.3.9","maintainers":[{"name":"prashantadhikari","email":"prashantadhikareeey.dev@gmail.com"}],"bin":{"efc":"dist/cli/index.js"},"dist":{"shasum":"0456ac6877d80529e8bb0b8fe6a1932f93fa761a","tarball":"https://registry.npmjs.org/express-file-cluster/-/express-file-cluster-0.3.9.tgz","fileCount":40,"integrity":"sha512-o3YFiwTsm/2o3kwQb0hssfLTDTvQS3NRAlZgKiBpMjyzGBlgQ+fG8xZyTcdRO/v7hIGr7plUkXu+Z5KzUZAO8g==","signatures":[{"sig":"MEQCIDNSgafGizAtITBkzjebpvW/hV02orqqCo5N9QK8TmF+AiBoFNYCESTQce95npeERDhtKKE4omy42ezQ+tf3n3LDFw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":381745},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./auth":{"types":"./dist/auth/index.d.ts","import":"./dist/auth/index.js","require":"./dist/auth/index.cjs"},"./tasks":{"types":"./dist/tasks/index.d.ts","import":"./dist/tasks/index.js","require":"./dist/tasks/index.cjs"}},"gitHead":"c3a23008c58974b2673220c2be063f142fdef087","scripts":{"dev":"tsup --watch","build":"tsup","typecheck":"tsc --noEmit"},"_npmUser":{"name":"prashantadhikari","email":"prashantadhikareeey.dev@gmail.com"},"_npmVersion":"10.8.2","description":"Enterprise-grade, zero-boilerplate backend framework with file-based routing and multi-core clustering","directories":{},"_nodeVersion":"20.20.2","dependencies":{"cors":"^2.8.6","jose":"^6.2.3","chokidar":"^4.0.0","commander":"^12.0.0","picocolors":"^1.1.1","cookie-parser":"^1.4.6"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.2.0","bullmq":"^5.79.1","vitest":"^4.1.9","mongoose":"^9.7.2","supertest":"^7.2.2","typescript":"^5.5.0","@types/cors":"^2.8.19","@types/node":"^22.0.0","@types/express":"^4.17.21","@types/supertest":"^7.2.0","@types/cookie-parser":"^1.4.7"},"peerDependencies":{"bullmq":">=5.0.0","express":"^4.19.0","mongoose":">=8.0.0"},"peerDependenciesMeta":{"bullmq":{"optional":true},"mongoose":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/express-file-cluster_0.3.9_1784384761914_0.47079447467885926","host":"s3://npm-registry-packages-npm-production"}},"0.3.10":{"name":"express-file-cluster","version":"0.3.10","license":"MIT","_id":"express-file-cluster@0.3.10","maintainers":[{"name":"prashantadhikari","email":"prashantadhikareeey.dev@gmail.com"}],"bin":{"efc":"dist/cli/index.js"},"dist":{"shasum":"d50b1d97a16b0eea8bf54c0371dd8347eb4232c1","tarball":"https://registry.npmjs.org/express-file-cluster/-/express-file-cluster-0.3.10.tgz","fileCount":40,"integrity":"sha512-tgStsQTCggLIh6ONeD5TJtC9MrqmHpY2kyBwe/wnh8bwHv4KGWav+X+KxBFMYZyM9ybEepx+Wxk7Eatd6NfDjg==","signatures":[{"sig":"MEUCIQCdIVbCpVtw7tBsCSljkMxIXSGG14rFZVc5PfFWtgliZgIgLqmsiyiBEAU+8vaLhWq+OtK/yIK5drRCCbDP8MLSkn4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":381760},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./auth":{"types":"./dist/auth/index.d.ts","import":"./dist/auth/index.js","require":"./dist/auth/index.cjs"},"./tasks":{"types":"./dist/tasks/index.d.ts","import":"./dist/tasks/index.js","require":"./dist/tasks/index.cjs"}},"gitHead":"773376882fa4c7fb389e924b02c66dd9f4b39d63","scripts":{"dev":"tsup --watch","build":"tsup","typecheck":"tsc --noEmit"},"_npmUser":{"name":"prashantadhikari","email":"prashantadhikareeey.dev@gmail.com"},"_npmVersion":"10.8.2","description":"Enterprise-grade, zero-boilerplate backend framework with file-based routing and multi-core clustering","directories":{},"_nodeVersion":"20.20.2","dependencies":{"cors":"^2.8.6","jose":"^6.2.3","chokidar":"^4.0.0","commander":"^12.0.0","picocolors":"^1.1.1","cookie-parser":"^1.4.6"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.2.0","bullmq":"^5.79.1","vitest":"^4.1.9","mongoose":"^9.7.2","supertest":"^7.2.2","typescript":"^5.5.0","@types/cors":"^2.8.19","@types/node":"^22.0.0","@types/express":"^4.17.21","@types/supertest":"^7.2.0","@types/cookie-parser":"^1.4.7"},"peerDependencies":{"bullmq":">=5.0.0","express":"^4.19.0","mongoose":">=8.0.0"},"peerDependenciesMeta":{"bullmq":{"optional":true},"mongoose":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/express-file-cluster_0.3.10_1784385559219_0.1199406750387666","host":"s3://npm-registry-packages-npm-production"}},"0.3.11":{"name":"express-file-cluster","version":"0.3.11","license":"MIT","_id":"express-file-cluster@0.3.11","maintainers":[{"name":"prashantadhikari","email":"prashantadhikareeey.dev@gmail.com"}],"bin":{"efc":"dist/cli/index.js"},"dist":{"shasum":"aeb280728ae77fc0aaef9234f7510f090415a80d","tarball":"https://registry.npmjs.org/express-file-cluster/-/express-file-cluster-0.3.11.tgz","fileCount":40,"integrity":"sha512-8NPbk/ZmRnNnitLeErBdvZqA9QGYwTGToEevNoL96CtXxz5ZK3pdfvSKf/6L5X+BceEU4BybhIIlH1qr0WxZyw==","signatures":[{"sig":"MEUCIFrDVvdZ6OTY0Jy0re99tmifb/JbP6sIAzpoiq70GtvRAiEAkOSd49T5JMGbvSIosNA2KnNHyQ0YIOJfQtLHdB4rN9g=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":381739},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./auth":{"types":"./dist/auth/index.d.ts","import":"./dist/auth/index.js","require":"./dist/auth/index.cjs"},"./tasks":{"types":"./dist/tasks/index.d.ts","import":"./dist/tasks/index.js","require":"./dist/tasks/index.cjs"}},"gitHead":"3734be7ad01d4be4bb1d4d988998f4401b051dda","scripts":{"dev":"tsup --watch","build":"tsup","typecheck":"tsc --noEmit"},"_npmUser":{"name":"prashantadhikari","email":"prashantadhikareeey.dev@gmail.com"},"_npmVersion":"10.8.2","description":"Enterprise-grade, zero-boilerplate backend framework with file-based routing and multi-core clustering","directories":{},"_nodeVersion":"20.20.2","dependencies":{"cors":"^2.8.6","jose":"^6.2.3","chokidar":"^4.0.0","commander":"^12.0.0","picocolors":"^1.1.1","cookie-parser":"^1.4.6"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.2.0","bullmq":"^5.79.1","vitest":"^4.1.9","mongoose":"^9.7.2","supertest":"^7.2.2","typescript":"^5.5.0","@types/cors":"^2.8.19","@types/node":"^22.0.0","@types/express":"^4.17.21","@types/supertest":"^7.2.0","@types/cookie-parser":"^1.4.7"},"peerDependencies":{"bullmq":">=5.0.0","express":"^4.19.0","mongoose":">=8.0.0"},"peerDependenciesMeta":{"bullmq":{"optional":true},"mongoose":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/express-file-cluster_0.3.11_1784386262494_0.8094579380030777","host":"s3://npm-registry-packages-npm-production"}},"0.3.12":{"name":"express-file-cluster","version":"0.3.12","license":"MIT","_id":"express-file-cluster@0.3.12","maintainers":[{"name":"prashantadhikari","email":"prashantadhikareeey.dev@gmail.com"}],"bin":{"efc":"dist/cli/index.js"},"dist":{"shasum":"34e7f7c23396bb48ac92975101d983f9deae0a36","tarball":"https://registry.npmjs.org/express-file-cluster/-/express-file-cluster-0.3.12.tgz","fileCount":40,"integrity":"sha512-nDMhQF89jgthzc9M8ZSLTWBqwc300Frd4I2LqgrE0m4ZgG1JeFvnhSGNHGqQNebzOlagjIxnBiU6G/vz2odyzA==","signatures":[{"sig":"MEUCIQDeftzE21vc+CRU1b63K/ZtVWV7dFV8oHNQhLpa6jAz3wIgKGI2xDww6LKTtd7S3iSGCctFzd1dmXF6Np17P43elWc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":381739},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./auth":{"types":"./dist/auth/index.d.ts","import":"./dist/auth/index.js","require":"./dist/auth/index.cjs"},"./tasks":{"types":"./dist/tasks/index.d.ts","import":"./dist/tasks/index.js","require":"./dist/tasks/index.cjs"}},"gitHead":"7a8840f34e66f5d9919d005ad069d08b48a6d9bb","scripts":{"dev":"tsup --watch","build":"tsup","typecheck":"tsc --noEmit"},"_npmUser":{"name":"prashantadhikari","email":"prashantadhikareeey.dev@gmail.com"},"_npmVersion":"10.8.2","description":"Enterprise-grade, zero-boilerplate backend framework with file-based routing and multi-core clustering","directories":{},"_nodeVersion":"20.20.2","dependencies":{"cors":"^2.8.6","jose":"^6.2.3","chokidar":"^4.0.0","commander":"^12.0.0","picocolors":"^1.1.1","cookie-parser":"^1.4.6"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.2.0","bullmq":"^5.79.1","vitest":"^4.1.9","mongoose":"^9.7.2","supertest":"^7.2.2","typescript":"^5.5.0","@types/cors":"^2.8.19","@types/node":"^22.0.0","@types/express":"^4.17.21","@types/supertest":"^7.2.0","@types/cookie-parser":"^1.4.7"},"peerDependencies":{"bullmq":">=5.0.0","express":"^4.19.0","mongoose":">=8.0.0"},"peerDependenciesMeta":{"bullmq":{"optional":true},"mongoose":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/express-file-cluster_0.3.12_1784387381381_0.40577972673899043","host":"s3://npm-registry-packages-npm-production"}},"0.3.13":{"name":"express-file-cluster","version":"0.3.13","license":"MIT","_id":"express-file-cluster@0.3.13","maintainers":[{"name":"prashantadhikari","email":"prashantadhikareeey.dev@gmail.com"}],"bin":{"efc":"dist/cli/index.js"},"dist":{"shasum":"332b8a0edf32ef91f4ff3327ee4b798f08a5726e","tarball":"https://registry.npmjs.org/express-file-cluster/-/express-file-cluster-0.3.13.tgz","fileCount":40,"integrity":"sha512-KKzK5XJpOrLRAxWiLsBhO7KuMh3oJKmnEfluaUiRqEfR/iRY6k0/dGcM8+qgMCS9wmPNewuwF4hf8CxrzkHZig==","signatures":[{"sig":"MEYCIQCmfXV+zTYcgqB8gBCSMN8ObreQf0/Ai0fL3Zs6uoNxIwIhAL7gaBE0CuXbnfNrOaJpfccG1zdXsYina6/E+MisXrcR","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":381739},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./auth":{"types":"./dist/auth/index.d.ts","import":"./dist/auth/index.js","require":"./dist/auth/index.cjs"},"./tasks":{"types":"./dist/tasks/index.d.ts","import":"./dist/tasks/index.js","require":"./dist/tasks/index.cjs"}},"gitHead":"9f568227330d24ef5e52a9abfe815264b1ddafb2","scripts":{"dev":"tsup --watch","build":"tsup","typecheck":"tsc --noEmit"},"_npmUser":{"name":"prashantadhikari","email":"prashantadhikareeey.dev@gmail.com"},"_npmVersion":"10.8.2","description":"Enterprise-grade, zero-boilerplate backend framework with file-based routing and multi-core clustering","directories":{},"_nodeVersion":"20.20.2","dependencies":{"cors":"^2.8.6","jose":"^6.2.3","chokidar":"^4.0.0","commander":"^12.0.0","picocolors":"^1.1.1","cookie-parser":"^1.4.6"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.2.0","bullmq":"^5.79.1","vitest":"^4.1.9","mongoose":"^9.7.2","supertest":"^7.2.2","typescript":"^5.5.0","@types/cors":"^2.8.19","@types/node":"^22.0.0","@types/express":"^4.17.21","@types/supertest":"^7.2.0","@types/cookie-parser":"^1.4.7"},"peerDependencies":{"bullmq":">=5.0.0","express":"^4.19.0","mongoose":">=8.0.0"},"peerDependenciesMeta":{"bullmq":{"optional":true},"mongoose":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/express-file-cluster_0.3.13_1784391551062_0.7579993823342448","host":"s3://npm-registry-packages-npm-production"}},"0.3.14":{"name":"express-file-cluster","version":"0.3.14","license":"MIT","_id":"express-file-cluster@0.3.14","maintainers":[{"name":"prashantadhikari","email":"prashantadhikareeey.dev@gmail.com"}],"bin":{"efc":"dist/cli/index.js"},"dist":{"shasum":"24054fc4bbb860eb0aadd29281b19e520872808e","tarball":"https://registry.npmjs.org/express-file-cluster/-/express-file-cluster-0.3.14.tgz","fileCount":40,"integrity":"sha512-+ANwUFhLkMHILJXdChuV1GP0h9xWrAf5GKD8xbdBTpH/ScUxaUkIeU2RLtbb8KLYYw4n2wThSJNxQBAGoS8sKg==","signatures":[{"sig":"MEUCIBfJfeBSEibRJN8sHCe6AAvWiXP6qJipX+YC29BnRu0fAiEAsEe7Nni219dm4gDKunm+FWSB6joGD5xw0sq+rJuRVVs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":412717},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./auth":{"types":"./dist/auth/index.d.ts","import":"./dist/auth/index.js","require":"./dist/auth/index.cjs"},"./tasks":{"types":"./dist/tasks/index.d.ts","import":"./dist/tasks/index.js","require":"./dist/tasks/index.cjs"}},"gitHead":"6558a562bce9ebeda9e34d63f848e1936e8dc9de","scripts":{"dev":"tsup --watch","build":"tsup","typecheck":"tsc --noEmit"},"_npmUser":{"name":"prashantadhikari","email":"prashantadhikareeey.dev@gmail.com"},"_npmVersion":"10.8.2","description":"Enterprise-grade, zero-boilerplate backend framework with file-based routing and multi-core clustering","directories":{},"_nodeVersion":"20.20.2","dependencies":{"cors":"^2.8.6","jose":"^6.2.3","chokidar":"^4.0.0","commander":"^12.0.0","picocolors":"^1.1.1","cookie-parser":"^1.4.6"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.2.0","bullmq":"^5.79.1","vitest":"^4.1.9","mongoose":"^9.7.2","supertest":"^7.2.2","typescript":"^5.5.0","@types/cors":"^2.8.19","@types/node":"^22.0.0","@types/express":"^4.17.21","@types/supertest":"^7.2.0","@types/cookie-parser":"^1.4.7"},"peerDependencies":{"bullmq":">=5.0.0","express":"^4.19.0","mongoose":">=8.0.0"},"peerDependenciesMeta":{"bullmq":{"optional":true},"mongoose":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/express-file-cluster_0.3.14_1784441807361_0.6065309195555084","host":"s3://npm-registry-packages-npm-production"}},"0.3.15":{"name":"express-file-cluster","version":"0.3.15","description":"Enterprise-grade, zero-boilerplate backend framework with file-based routing and multi-core clustering","license":"MIT","type":"module","main":"./dist/index.cjs","module":"./dist/index.js","types":"./dist/index.d.ts","bin":{"efc":"dist/cli/index.js"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./auth":{"types":"./dist/auth/index.d.ts","import":"./dist/auth/index.js","require":"./dist/auth/index.cjs"},"./tasks":{"types":"./dist/tasks/index.d.ts","import":"./dist/tasks/index.js","require":"./dist/tasks/index.cjs"}},"scripts":{"build":"tsup","dev":"tsup --watch","typecheck":"tsc --noEmit"},"dependencies":{"chokidar":"^4.0.0","commander":"^12.0.0","cookie-parser":"^1.4.6","cors":"^2.8.6","jose":"^6.2.3","picocolors":"^1.1.1"},"devDependencies":{"@types/cookie-parser":"^1.4.7","@types/cors":"^2.8.19","@types/express":"^4.17.21","@types/node":"^22.0.0","@types/supertest":"^7.2.0","bullmq":"^5.79.1","mongoose":"^9.7.2","supertest":"^7.2.2","tsup":"^8.2.0","typescript":"^5.5.0","vitest":"^4.1.9"},"peerDependencies":{"bullmq":">=5.0.0","express":"^4.19.0","mongoose":">=8.0.0"},"peerDependenciesMeta":{"bullmq":{"optional":true},"mongoose":{"optional":true}},"engines":{"node":">=18.0.0"},"_id":"express-file-cluster@0.3.15","gitHead":"0c38f251f414e4c74aab140d8c9ddd27f355dd9b","_nodeVersion":"20.20.2","_npmVersion":"10.8.2","dist":{"integrity":"sha512-Vn9aEdquBkC+YRKu7W0+yfOa2jJynhVIltO41zC16wznp/o5/yB3QqO0VJR/AyzpyykL5PlrIalyiOHvC470yA==","shasum":"8dccdede1c54d5e4446c9e7068b7bd0c8f9278cc","tarball":"https://registry.npmjs.org/express-file-cluster/-/express-file-cluster-0.3.15.tgz","fileCount":40,"unpackedSize":417849,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIGrxmuAGxhDl9u1MV6Sy+bCcPF6a2hU1NTFFLuL/HhH2AiA/F3PvdAuvXYmQ2omAHv1kM4rZQIwNV0aJa8nM9IS3Hw=="}]},"_npmUser":{"name":"prashantadhikari","email":"prashantadhikareeey.dev@gmail.com"},"directories":{},"maintainers":[{"name":"prashantadhikari","email":"prashantadhikareeey.dev@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/express-file-cluster_0.3.15_1784447440442_0.28280433305170827"},"_hasShrinkwrap":false}},"time":{"created":"2026-06-22T22:02:21.484Z","modified":"2026-07-19T07:50:40.781Z","0.1.0":"2026-06-22T22:02:21.710Z","0.1.1":"2026-06-22T22:34:10.595Z","0.1.2":"2026-06-22T22:50:57.498Z","0.1.3":"2026-06-22T23:13:50.950Z","0.1.4":"2026-06-23T00:14:34.108Z","0.1.5":"2026-06-23T00:20:21.063Z","0.1.6":"2026-06-23T00:59:01.975Z","0.1.8":"2026-06-23T01:42:53.089Z","0.2.0":"2026-06-23T15:25:13.222Z","0.2.1":"2026-06-23T15:52:53.145Z","0.2.2":"2026-06-24T08:12:22.112Z","0.2.3":"2026-06-25T18:27:50.649Z","0.2.4":"2026-06-26T02:49:42.780Z","0.2.5":"2026-06-26T02:59:13.708Z","0.2.6":"2026-06-26T10:44:35.597Z","0.2.7":"2026-06-26T16:17:34.327Z","0.2.8":"2026-06-29T16:48:23.047Z","0.2.9":"2026-07-02T07:21:04.910Z","0.2.10":"2026-07-02T08:11:40.309Z","0.2.11":"2026-07-02T10:03:26.706Z","0.3.0":"2026-07-02T10:59:54.263Z","0.3.1":"2026-07-02T11:17:46.433Z","0.3.2":"2026-07-02T11:18:45.710Z","0.3.3":"2026-07-02T11:31:56.340Z","0.3.4":"2026-07-06T11:13:06.879Z","0.3.5":"2026-07-10T19:36:39.174Z","0.3.6":"2026-07-14T07:37:52.806Z","0.3.7":"2026-07-18T14:08:31.259Z","0.3.8":"2026-07-18T14:12:17.800Z","0.3.9":"2026-07-18T14:26:02.092Z","0.3.10":"2026-07-18T14:39:19.361Z","0.3.11":"2026-07-18T14:51:02.653Z","0.3.12":"2026-07-18T15:09:41.513Z","0.3.13":"2026-07-18T16:19:11.194Z","0.3.14":"2026-07-19T06:16:47.500Z","0.3.15":"2026-07-19T07:50:40.635Z"},"license":"MIT","description":"Enterprise-grade, zero-boilerplate backend framework with file-based routing and multi-core clustering","maintainers":[{"name":"prashantadhikari","email":"prashantadhikareeey.dev@gmail.com"}],"readme":"# express-file-cluster &nbsp;·&nbsp; `efc`\n\n**File-based routing. Multi-core clustering. Background tasks. Zero boilerplate.**\n\nEFC is an opinionated backend framework built on Express. Drop files in `src/api/` and they become routes. Every CPU core serves traffic automatically. Heavy work goes to a queue-backed task subsystem so requests stay fast.\n\n> **Status: v0.3.14 (Beta).** The router, clustering, auth, MongoDB adapter, and BullMQ task queue backend are all implemented.\n\n---\n\n## Why EFC\n\nMost Express apps grow the same way: a working prototype, then a maze of `router.get(...)` calls spread across files, a clustering setup copy-pasted from a blog post, and background jobs bolted on as an afterthought. EFC collapses all of that into conventions:\n\n| Problem | EFC's answer |\n|---|---|\n| Route registration ceremony | The file tree **is** the route tree |\n| Single-threaded Node under load | Auto-detected CPU count → worker processes |\n| Blocking work on the request path | `enqueue()` ships it to a queue; respond immediately |\n| Wiring auth, DB, and middleware by hand | `ignite()` — one call bootstraps everything |\n| Scattered model definitions | `defineModel()` — typed CRUD with zero ORM ceremony |\n| Per-request user context in nested calls | `AsyncLocalStorage`-backed `getCurrentUser()` |\n\n---\n\n## Quick Start\n\n```bash\nnpx create-efc-app my-api\ncd my-api\nefc start dev\n```\n\nThe interactive scaffolder asks for language, database, auth strategy, and whether you want clustering and background tasks — then writes the boilerplate, generates a `.env` with a real `JWT_SECRET`, and runs `npm install`.\n\n---\n\n## Project Structure\n\n```\nmy-api/\n├── src/\n│   ├── api/                      # Every file here is a route\n│   │   ├── health.ts             # GET /health\n│   │   ├── users/\n│   │   │   ├── index.ts          # GET /users  •  POST /users\n│   │   │   └── [id].ts           # GET /users/:id  •  DELETE /users/:id\n│   │   └── posts/\n│   │       └── [slug]/\n│   │           └── comments.ts   # GET /posts/:slug/comments\n│   ├── tasks/                    # Background jobs\n│   │   ├── SendEmail.ts\n│   │   └── ResizeImage.ts\n│   ├── model/                    # Engine-agnostic models\n│   │   └── User.ts\n│   └── index.ts                  # Framework entry point\n├── efc.config.ts\n├── .env                          # Gitignored — JWT_SECRET auto-filled\n└── .env.example\n```\n\n`src/api` and `src/tasks` are resolved by convention — they are **not** `ignite()` options. EFC probes `src/api`/`src/tasks`, then `<cwd>/api`/`<cwd>/tasks`, then `dist/api`/`dist/tasks`. You only need a different layout if you're doing something unusual.\n\nRouting rules:\n\n| File | URL |\n|---|---|\n| `api/health.ts` | `/health` |\n| `api/users/index.ts` | `/users` |\n| `api/users/[id].ts` | `/users/:id` |\n| `api/posts/[slug]/comments.ts` | `/posts/:slug/comments` |\n\n---\n\n## Route Handlers\n\nExport uppercase HTTP method names. Anything not exported returns **405 Method Not Allowed** automatically.\n\n```ts\n// src/api/users/index.ts\nimport type { Request, Response } from 'express';\nimport { User } from '../../model/User.js';\n\nexport const GET = async (req: Request, res: Response) => {\n  const users = await User.find();\n  res.json(users);\n};\n\nexport const POST = async (req: Request, res: Response) => {\n  const user = await User.create(req.body);\n  res.status(201).json({ id: user.id });\n};\n```\n\n```ts\n// src/api/users/[id].ts\nimport type { Request, Response } from 'express';\nimport { User } from '../../model/User.js';\nimport { HttpError } from 'express-file-cluster';\n\nexport const GET = async (req: Request, res: Response) => {\n  const user = await User.findById(req.params.id);\n  if (!user) throw new HttpError(404, 'User not found');\n  res.json(user);\n};\n\nexport const DELETE = async (req: Request, res: Response) => {\n  await User.delete(req.params.id);\n  res.status(204).send();\n};\n```\n\n---\n\n## Middleware\n\nThree tiers, each with a clear scope:\n\n```ts\n// 1. Global — applies to every request\nignite({ globalMiddlewares: [rateLimiter()] });\n\n// 2. Route-level — applies to every handler in this file\nexport const middlewares = [requireAuth];\n\n// 3. Handler-level — applies to one handler via compose()\nimport { compose } from 'express-file-cluster';\n\nexport const POST = compose(\n  validateBody(CreateUserSchema),\n  async (req, res) => { /* req.body is validated */ },\n);\n```\n\n---\n\n## Database\n\n### `defineModel(name, schema, options?)`\n\nDeclare a typed model with a schema. EFC compiles it to a Mongoose model and wraps it in a clean CRUD surface.\n\n```ts\n// src/model/User.ts\nimport { defineModel } from 'express-file-cluster';\n\ninterface UserDocument {\n  name: string;\n  email: string;\n  role: 'admin' | 'user';\n  verifyToken: string;\n  createdAt?: Date;\n}\n\nexport const User = defineModel<UserDocument>('User', {\n  name:        { type: 'string', required: true },\n  email:       { type: 'string', required: true, unique: true },\n  role:        { type: 'string', enum: ['admin', 'user'], default: 'user' },\n  verifyToken: { type: 'string', default: '$uuid' },   // fresh UUID per document\n});\n```\n\n### Schema default operator codes\n\nInstead of a literal or a raw function, `default` also accepts a sentinel string — resolved to a fresh per-document value at schema-compile time, never baked in once:\n\n| Code | Resolves to |\n|---|---|\n| `'$now'` | `new Date()` |\n| `'$uuid'` | `crypto.randomUUID()` |\n| `'$objectId'` | fresh Mongoose `ObjectId` |\n| `'$timestamp'` | `Date.now()` (number) |\n| `'$shortId'` | random 16-char base64url string |\n| `'$currentUser'` | full JWT payload from the in-flight request |\n| `'$currentUser.<key>'` | single field from that payload (e.g. `'$currentUser.id'`) |\n\nAny other value is used as-is — only these exact strings are special-cased.\n\n### Auto-increment (`sequence`)\n\n```ts\nexport const Order = defineModel<OrderDocument>('Order', {\n  orderNumber: { type: 'number', sequence: true, required: true },\n  // sequence: 'global.orders' — explicit key to share a counter across models\n});\n```\n\n`sequence` is a field option, not a `default` code — an auto-increment needs an async read-modify-write against a counters collection, but `default` resolves synchronously. It's assigned atomically in a `pre('validate')` hook, before `required` validation runs, so the field can be both `required: true` and auto-filled. Top-level fields only.\n\n### Timestamps control\n\n```ts\n// Disable Mongoose's automatic createdAt/updatedAt (default: on)\nexport const Role = defineModel<RoleDocument>('Role', schema, {\n  timestamps: false,\n});\n\n// Or rename them\nexport const Audit = defineModel<AuditDocument>('Audit', schema, {\n  timestamps: { createdAt: 'created_at', updatedAt: false },\n});\n```\n\n### CRUD surface\n\n```ts\nawait User.find({ role: 'admin' });            // find all matching\nawait User.findById('66a1...');                // by _id\nawait User.findOne({ email: 'a@b.com' });      // first match\nawait User.create({ name: 'Alice', ... });     // insert\nawait User.update('66a1...', { name: 'Bob' }); // findOneAndUpdate\nawait User.delete('66a1...');                  // remove\nawait User.count({ role: 'user' });            // count matching\n```\n\nPopulate references:\n\n```ts\nawait Post.find({}, { populate: 'author' });\nawait Post.findById(id, { populate: ['author', 'comments.user'] });\n```\n\n---\n\n## Background Tasks\n\nTasks run off the request path — respond immediately, let the queue handle the work.\n\n```ts\n// src/tasks/SendEmail.ts\nimport { defineTask } from 'express-file-cluster/tasks';\n\ninterface Payload { to: string; subject: string; body: string }\n\nexport default defineTask<Payload>(async (payload) => {\n  await mailer.send(payload);\n});\n```\n\n```ts\n// src/tasks/ResizeImage.ts — CPU-bound: runs in a worker_threads thread\nimport { defineTask } from 'express-file-cluster/tasks';\n\nexport default defineTask<{ key: string; width: number }>(\n  { thread: true },\n  async ({ key, width }) => {\n    const buf = await sharp(await download(key)).resize(width).toBuffer();\n    await upload(`${key}@${width}`, buf);\n  },\n);\n```\n\n```ts\n// Trigger from a route handler\nimport { enqueue } from 'express-file-cluster/tasks';\n\nexport const POST = async (req, res) => {\n  const user = await User.create(req.body);\n  await enqueue('SendEmail', { to: user.email, subject: 'Welcome!', body: '...' });\n  res.status(202).json({ id: user.id, queued: true });\n};\n```\n\nTask options:\n\n| Option | Default | Description |\n|---|---|---|\n| `thread` | `false` | Run in a `worker_threads` thread (CPU-bound work) |\n| `retries` | `3` | Retry attempts before dead-lettering |\n| `backoff` | `'exponential'` | Delay strategy between retries |\n| `concurrency` | `tasks.concurrency` | Parallel jobs for this task |\n| `schedule` | — | Cron expression (accepted, not executed yet — planned) |\n\n> `enqueue()` fails fast on an unknown task name, but currently has no timeout of its own if the queue backend (Redis) is unreachable — wrap it yourself if you need one.\n\n---\n\n## Authentication\n\n### `http-only` (recommended for SSR/SSG)\n\nTokens stored in `HttpOnly + Secure + SameSite=Strict` cookies.\n\n```ts\nimport { issueToken, revokeToken, requireAuth } from 'express-file-cluster/auth';\n\n// src/api/auth/login.ts\nexport const POST = async (req, res) => {\n  const user = await verifyCredentials(req.body);\n  issueToken(res, { sub: user.id, role: user.role });\n  res.json({ message: 'Logged in' });\n};\n\n// Protect a route\nexport const middlewares = [requireAuth];\n```\n\n### `localStorage` (SPA-friendly)\n\nToken returned in body; client attaches `Authorization: Bearer <token>`.\n\n```ts\nimport { signToken } from 'express-file-cluster/auth';\n\nexport const POST = async (req, res) => {\n  const token = signToken({ sub: user.id });\n  res.json({ token });\n};\n```\n\n### Role-gating and request context\n\n```ts\n// Role-gated route\nexport const middlewares = [requireAuth('admin')];\n\n// getCurrentUser() reads the same verified JWT payload from anywhere in the\n// async call chain — not just where `req` is in scope. This is also what\n// powers the '$currentUser' / '$currentUser.<key>' defineModel default codes.\nimport { getCurrentUser } from 'express-file-cluster/auth';\n\nconst user = getCurrentUser(); // Record<string, unknown> | undefined\n```\n\n---\n\n## Bootstrapper\n\nEvery runtime value (`PORT`, `DATABASE_URL`, `JWT_SECRET`, `CORS_ORIGINS`, ...) is read from `process.env` explicitly, once, in `efc.config.ts` — `ignite()` itself never touches `process.env` (`NODE_ENV` is the sole exception).\n\n```ts\n// efc.config.ts\nimport type { EFCConfig } from 'express-file-cluster';\n\nconst corsOrigins = process.env.CORS_ORIGINS\n  ? process.env.CORS_ORIGINS.split(',').map((o) => o.trim()).filter(Boolean)\n  : undefined;\n\nconst config: EFCConfig = {\n  port: process.env.PORT ? Number(process.env.PORT) : undefined,\n  databaseUrl: process.env.DATABASE_URL,\n  jwtSecret: process.env.JWT_SECRET,\n  cors: corsOrigins ? { origin: corsOrigins } : true,\n  authStrategy: 'http-only',\n  tasks: { backend: 'bullmq', concurrency: 5, redisUrl: process.env.REDIS_URL },\n};\n\nexport default config;\n```\n\n```ts\n// src/index.ts\nimport { ignite, gracefulShutdown } from 'express-file-cluster';\nimport config from '../efc.config.js';\n\nignite({\n  ...config,\n}).then(gracefulShutdown).catch(console.error);\n```\n\n> Don't hardcode `cluster: true` here. `ignite()`'s own default (`NODE_ENV === 'production'`)\n> already gives clustering in prod and a single process in dev — an explicit boolean always\n> wins over that default, so `cluster: true` would cluster in dev too. Only pass `cluster`\n> to force one way regardless of `NODE_ENV`.\n\n### `ignite()` options\n\n| Option | Type | Default | Description |\n|---|---|---|---|\n| `port` | `number` | `3000` | HTTP listen port |\n| `basePath` | `string` | `'/v1/api'` | URL prefix for all routes |\n| `database` | `'mongodb' \\| 'postgresql'` | auto-detected from `databaseUrl` | Database engine |\n| `databaseUrl` | `string` | — | Connection string — not read from env automatically, pass it explicitly |\n| `authStrategy` | `'http-only' \\| 'localStorage'` | `'http-only'` | Token delivery |\n| `jwtSecret` | `string` | — | JWT signing secret — not read from env automatically, pass it explicitly |\n| `jwtExpiresIn` | `string` | `'7d'` | Token lifetime |\n| `cookieDomain` | `string` | — | Cookie domain (`http-only` only) |\n| `cluster` | `boolean` | `true` in prod, `false` in dev | Enable multi-core clustering |\n| `workers` | `number` | `os.cpus().length` | Worker count override |\n| `tasks` | `TaskConfig \\| false` | `false` | Background task runtime |\n| `cors` | `boolean \\| CorsConfig` | `true` | CORS — pass `origin` explicitly, not auto-read from env |\n| `requestTimeout` | `number` | — | Request timeout in ms (408 on exceed) |\n| `globalMiddlewares` | `RequestHandler[]` | `[]` | Applied to every route |\n| `dashboard` | `boolean` | `true` in dev | Dev route dashboard at `/` |\n| `onWorkerReady` | `(id) => void` | — | Called when a worker boots |\n| `onWorkerCrash` | `(id, code) => void` | — | Called before respawn |\n| `onError` | `ErrorRequestHandler` | built-in | Override global error handler |\n\n---\n\n## CLI Reference\n\n```bash\n# Development\nefc start dev         # Hot-reload single process (tsx --watch), .env re-read on every restart\n\n# Production\nefc build prod        # Type-check + compile to dist/ (tsup, dual CJS/ESM)\nefc start prod        # Run dist/ with clustering enabled\n\n# Tests\nefc run tests         # Vitest  (--watch, --coverage passthrough)\n\n# Code generation\nefc generate route users/[id]       # → src/api/users/[id].ts\nefc generate task ProcessPayment    # → src/tasks/ProcessPayment.ts\nefc generate middleware authorize   # → src/middlewares/authorize.ts\n\n# Diagnostics\nefc routes            # Print resolved route table (path → file → methods)\nefc tasks             # List registered background tasks\nefc doctor            # Validate project setup, package.json/tsconfig, .env vars\n```\n\n---\n\n## Clustering Architecture\n\n```\n              Master Process\n         ┌────────────────────┐\n         │  fork × N workers  │\n         │  respawn on crash   │\n         └──┬──────┬──────┬───┘\n            │      │      │\n       Worker 1  Worker 2  Worker N\n       Pre-Flight lifecycle per worker:\n         1. Connect database\n         2. Configure auth\n         3. Scan tasksDir → register tasks\n         4. Start BullMQ backend\n         5. Scan apiDir → build route map\n         6. Mount routes on Express\n         7. Listen (OS round-robins connections)\n```\n\nCPU-bound tasks fan out further into `worker_threads` — the request loop stays unblocked at every layer.\n\n---\n\n## Error Handling\n\n```ts\nimport { HttpError } from 'express-file-cluster';\n\n// Throw from any handler — caught and formatted automatically\nexport const GET = async (req, res) => {\n  const user = await User.findById(req.params.id);\n  if (!user) throw new HttpError(404, 'User not found');\n  res.json(user);\n};\n\n// Override the global handler\nignite({\n  onError: (err, req, res, next) => {\n    logger.error(err);\n    res.status(err.statusCode ?? 500).json({ error: err.message });\n  },\n});\n```\n\n---\n\n## Environment Variables\n\n`create-efc-app` generates `.env` (gitignored, `JWT_SECRET` pre-filled) and `.env.example` (committed, documented). EFC **does not** auto-load any of these — read them yourself in `efc.config.ts` and pass them to `ignite()`.\n\n| Variable | Required | Description |\n|---|---|---|\n| `PORT` | No (default `3000`) | HTTP listen port |\n| `NODE_ENV` | No | `development \\| production \\| test` — the only env var EFC reads directly |\n| `DATABASE_URL` | If using a database | MongoDB or PostgreSQL connection string |\n| `JWT_SECRET` | If using auth | JWT signing key — auto-generated by scaffolder |\n| `JWT_EXPIRES_IN` | No (default `7d`) | Token lifetime |\n| `COOKIE_DOMAIN` | No | Cookie domain for `http-only` auth |\n| `REDIS_URL` | If using BullMQ | Redis connection for the task queue |\n| `CORS_ORIGINS` | No | Comma-separated allowed origins — e.g. `http://localhost:3000,https://myapp.com` |\n\n## License\n\nMIT © 2026 EFC Contributors\n","readmeFilename":"README.md"}