{"_id":"@orchestr-sh/orchestr","_rev":"46-8c504ff53062163a07ed2e370d06710a","name":"@orchestr-sh/orchestr","dist-tags":{"latest":"1.11.2"},"versions":{"1.0.1":{"name":"@orchestr-sh/orchestr","version":"1.0.1","keywords":["laravel","framework","typescript","nodejs","mvc","ioc","dependency-injection","routing","middleware","service-container","eloquent","backend","web-framework"],"author":{"name":"Sam Street","email":"samstreet.dev@gmail.com"},"license":"MIT","_id":"@orchestr-sh/orchestr@1.0.1","maintainers":[{"name":"samstreet","email":"samstreet.dev@gmail.com"}],"homepage":"https://github.com/orchestr-sh/orchestr#readme","bugs":{"url":"https://github.com/orchestr-sh/orchestr/issues"},"dist":{"shasum":"e55cd00c9288fced341a086856014c0677303917","tarball":"https://registry.npmjs.org/@orchestr-sh/orchestr/-/orchestr-1.0.1.tgz","fileCount":55,"integrity":"sha512-Y7vUwq45KqatlWg6xz/iYmWZsmQTLlpYPFcnUYCacxog3pEUV1dolS0Mw1P7be+2AW8Sl/DcopyMeyOHPPtzfQ==","signatures":[{"sig":"MEQCICk+QQXtS+baj9YuC9i9rFICkwbE5ygffP4T9sjqujhgAiB0JEkctN6jdnrvc3dDW7L1Cjnvtl6Dz45JfmR5MYCipA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":120502},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"4833cfa2f31b64bea69c375c6dc927cf9e19abe4","scripts":{"dev":"tsx watch examples/basic-app/server.ts","build":"tsc","example:basic":"tsx examples/basic-app/server.ts","prepublishOnly":"npm run build"},"_npmUser":{"name":"samstreet","email":"samstreet.dev@gmail.com"},"repository":{"url":"git+https://github.com/orchestr-sh/orchestr.git","type":"git"},"_npmVersion":"10.9.4","description":"A 1:1 Laravel replica in TypeScript - Brings Laravel's elegant syntax and architecture to Node.js","directories":{},"_nodeVersion":"22.21.1","dependencies":{"reflect-metadata":"^0.2.2"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","typescript":"^5.7.3","@types/node":"^22.10.5"},"peerDependencies":{"typescript":">=5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/orchestr_1.0.1_1769797691806_0.1835136916193012","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@orchestr-sh/orchestr","version":"1.1.0","keywords":["laravel","framework","typescript","nodejs","mvc","ioc","dependency-injection","routing","middleware","service-container","eloquent","backend","web-framework"],"author":{"name":"Sam Street","email":"samstreet.dev@gmail.com"},"license":"MIT","_id":"@orchestr-sh/orchestr@1.1.0","maintainers":[{"name":"samstreet","email":"samstreet.dev@gmail.com"}],"homepage":"https://github.com/orchestr-sh/orchestr#readme","bugs":{"url":"https://github.com/orchestr-sh/orchestr/issues"},"dist":{"shasum":"0a0f9652c6d4005c9dd517a470113883416f174a","tarball":"https://registry.npmjs.org/@orchestr-sh/orchestr/-/orchestr-1.1.0.tgz","fileCount":143,"integrity":"sha512-jZQsraa86p9Anels/5rmmokVdexQxXNAo2M0aFs/WCJYoa1jjkz5Uhy6iDyrpnkH5kHtBYhAyeIaJQSfKrtHUw==","signatures":[{"sig":"MEUCIQD9WCvTN6wJul9cO3NrKSBN5YgqF5GjLZ6P67Ron1nkmwIgLdIzctgIk7tHSTSNDZp6ae2isCBQzxLLkbuSAwkoUto=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":395033},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"cba5b6cbb5309ed6aac1353a9b6d562be722c5ac","scripts":{"dev":"tsx watch examples/basic-app/server.ts","build":"tsc","example:basic":"tsx examples/basic-app/server.ts","prepublishOnly":"npm run build"},"_npmUser":{"name":"samstreet","email":"samstreet.dev@gmail.com"},"repository":{"url":"git+https://github.com/orchestr-sh/orchestr.git","type":"git"},"_npmVersion":"10.9.4","description":"A 1:1 Laravel replica in TypeScript - Brings Laravel's elegant syntax and architecture to Node.js","directories":{},"_nodeVersion":"22.21.1","dependencies":{"drizzle-orm":"^0.30.0","reflect-metadata":"^0.2.2"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","typescript":"^5.7.3","@types/node":"^22.10.5","@types/better-sqlite3":"^7.6.9"},"peerDependencies":{"typescript":">=5.0.0","drizzle-orm":">=0.30.0"},"optionalDependencies":{"mysql2":"^3.9.0","postgres":"^3.4.3","better-sqlite3":"^9.4.0"},"_npmOperationalInternal":{"tmp":"tmp/orchestr_1.1.0_1769961487493_0.6243162065462944","host":"s3://npm-registry-packages-npm-production"}},"1.1.1":{"name":"@orchestr-sh/orchestr","version":"1.1.1","keywords":["laravel","framework","typescript","nodejs","mvc","ioc","dependency-injection","routing","middleware","service-container","eloquent","backend","web-framework"],"author":{"name":"Sam Street","email":"samstreet.dev@gmail.com"},"license":"MIT","_id":"@orchestr-sh/orchestr@1.1.1","maintainers":[{"name":"samstreet","email":"samstreet.dev@gmail.com"}],"homepage":"https://github.com/orchestr-sh/orchestr#readme","bugs":{"url":"https://github.com/orchestr-sh/orchestr/issues"},"dist":{"shasum":"284ae9c2d700253870ea1d9126f4397e7e23c453","tarball":"https://registry.npmjs.org/@orchestr-sh/orchestr/-/orchestr-1.1.1.tgz","fileCount":143,"integrity":"sha512-A3XKVUpdihpAcJJRBUi0miuc4wNvN1hKW7VHeo9qIMx6vTT/+TmtbYvIpM1eiAlBAXM1SH8sy8J4kbWGPBlywg==","signatures":[{"sig":"MEQCIAPZ4X/TEvLM+iWkCrHP8hicPmpWnFaMcqqoiZyYJJFZAiALQ6s+JjQBcUHTe8IW1nTt4+fAX6a7z32zVDa31PUIag==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":395071},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"adba50bc39aa826c4c37c8387b2a6657f090e54b","scripts":{"dev":"tsx watch examples/basic-app/server.ts","build":"tsc","example:basic":"tsx examples/basic-app/server.ts","prepublishOnly":"npm run build"},"_npmUser":{"name":"samstreet","email":"samstreet.dev@gmail.com"},"repository":{"url":"git+https://github.com/orchestr-sh/orchestr.git","type":"git"},"_npmVersion":"10.9.4","description":"A 1:1 Laravel replica in TypeScript - Brings Laravel's elegant syntax and architecture to Node.js","directories":{},"_nodeVersion":"22.21.1","dependencies":{"drizzle-orm":"^0.30.0","reflect-metadata":"^0.2.2"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","typescript":"^5.7.3","@types/node":"^22.10.5","@types/better-sqlite3":"^7.6.9"},"peerDependencies":{"typescript":">=5.0.0","drizzle-orm":">=0.30.0"},"optionalDependencies":{"mysql2":"^3.9.0","postgres":"^3.4.3","better-sqlite3":"^9.4.0"},"_npmOperationalInternal":{"tmp":"tmp/orchestr_1.1.1_1769962391021_0.30941826055605803","host":"s3://npm-registry-packages-npm-production"}},"1.2.0":{"name":"@orchestr-sh/orchestr","version":"1.2.0","keywords":["laravel","framework","typescript","nodejs","mvc","ioc","dependency-injection","routing","middleware","service-container","eloquent","backend","web-framework"],"author":{"name":"Sam Street","email":"samstreet.dev@gmail.com"},"license":"MIT","_id":"@orchestr-sh/orchestr@1.2.0","maintainers":[{"name":"samstreet","email":"samstreet.dev@gmail.com"}],"homepage":"https://github.com/orchestr-sh/orchestr#readme","bugs":{"url":"https://github.com/orchestr-sh/orchestr/issues"},"dist":{"shasum":"5db576a421f71eb854874e1bb4846f2b89db23e4","tarball":"https://registry.npmjs.org/@orchestr-sh/orchestr/-/orchestr-1.2.0.tgz","fileCount":147,"integrity":"sha512-wW+zvzVE24xM9fA+iEZyTCPk6gYcFODKCRwNsYNoY36d9GiGBidzYsWGRXlsU/IKMHtnEWzujmbLczhbnr4KuA==","signatures":[{"sig":"MEUCIQDYfO+bIxecmFjPpb7vchyJtMNHCYd6d8n4Zs7NjXCALQIgQz0pAEzFdnkuGzMvAkWP7wHhqEyD5Wlnq4BjfWxF4f4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":412190},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"87b07c753405d6ff5ca64bd0bc084998777fd5ba","scripts":{"dev":"tsx watch examples/basic-app/server.ts","build":"tsc","example:basic":"tsx examples/basic-app/server.ts","prepublishOnly":"npm run build"},"_npmUser":{"name":"samstreet","email":"samstreet.dev@gmail.com"},"repository":{"url":"git+https://github.com/orchestr-sh/orchestr.git","type":"git"},"_npmVersion":"10.9.4","description":"A 1:1 Laravel replica in TypeScript - Brings Laravel's elegant syntax and architecture to Node.js","directories":{},"_nodeVersion":"22.21.1","dependencies":{"drizzle-orm":"^0.30.0","reflect-metadata":"^0.2.2"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","typescript":"^5.7.3","@types/node":"^22.10.5","@types/better-sqlite3":"^7.6.9"},"peerDependencies":{"typescript":">=5.0.0","drizzle-orm":">=0.30.0"},"optionalDependencies":{"mysql2":"^3.9.0","postgres":"^3.4.3","better-sqlite3":"^9.4.0"},"_npmOperationalInternal":{"tmp":"tmp/orchestr_1.2.0_1769964445294_0.24171645479480386","host":"s3://npm-registry-packages-npm-production"}},"1.2.1":{"name":"@orchestr-sh/orchestr","version":"1.2.1","keywords":["laravel","framework","typescript","nodejs","mvc","ioc","dependency-injection","routing","middleware","service-container","eloquent","backend","web-framework"],"author":{"name":"Sam Street","email":"samstreet.dev@gmail.com"},"license":"MIT","_id":"@orchestr-sh/orchestr@1.2.1","maintainers":[{"name":"samstreet","email":"samstreet.dev@gmail.com"}],"homepage":"https://github.com/orchestr-sh/orchestr#readme","bugs":{"url":"https://github.com/orchestr-sh/orchestr/issues"},"dist":{"shasum":"97ce458d523541ccdfe3c0f28af9cd8f9dc80c76","tarball":"https://registry.npmjs.org/@orchestr-sh/orchestr/-/orchestr-1.2.1.tgz","fileCount":123,"integrity":"sha512-ZbZK/dXTFrI8xpsUiAzbqFs1Y2I1QO20GhLbrwprpl3LjBGAmCuiiAtOdMS0pIzBcSdUeBb8C1AfBCe0hg2AsA==","signatures":[{"sig":"MEUCIHSQp0oiecrDkVwyTmPgTeumfTmaekPf/n1hg9GHtP3pAiEAysU1+dIk62KlXbOw+CcZp3zhJeW2xcoq6oo8+W7r9u4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":337726},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"714998367c4fa0708adbf9d0db850e8a9dfa0a79","scripts":{"dev":"tsx watch examples/basic-app/server.ts","build":"tsc","example:basic":"tsx examples/basic-app/server.ts","prepublishOnly":"npm run build"},"_npmUser":{"name":"samstreet","email":"samstreet.dev@gmail.com"},"repository":{"url":"git+https://github.com/orchestr-sh/orchestr.git","type":"git"},"_npmVersion":"10.9.4","description":"A 1:1 Laravel replica in TypeScript - Brings Laravel's elegant syntax and architecture to Node.js","directories":{},"_nodeVersion":"22.21.1","dependencies":{"drizzle-orm":"^0.30.0","reflect-metadata":"^0.2.2"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","typescript":"^5.7.3","@types/node":"^22.10.5","@types/better-sqlite3":"^7.6.9"},"peerDependencies":{"typescript":">=5.0.0","drizzle-orm":">=0.30.0"},"optionalDependencies":{"mysql2":"^3.9.0","postgres":"^3.4.3","better-sqlite3":"^9.4.0"},"_npmOperationalInternal":{"tmp":"tmp/orchestr_1.2.1_1770031504982_0.1002337527600996","host":"s3://npm-registry-packages-npm-production"}},"1.3.0":{"name":"@orchestr-sh/orchestr","version":"1.3.0","keywords":["laravel","framework","typescript","nodejs","mvc","ioc","dependency-injection","routing","middleware","service-container","eloquent","backend","web-framework"],"author":{"name":"Sam Street","email":"samstreet.dev@gmail.com"},"license":"MIT","_id":"@orchestr-sh/orchestr@1.3.0","maintainers":[{"name":"samstreet","email":"samstreet.dev@gmail.com"}],"homepage":"https://github.com/orchestr-sh/orchestr#readme","bugs":{"url":"https://github.com/orchestr-sh/orchestr/issues"},"dist":{"shasum":"965ecf4cb11402c9c5c4b81c101536fb803c7b1b","tarball":"https://registry.npmjs.org/@orchestr-sh/orchestr/-/orchestr-1.3.0.tgz","fileCount":127,"integrity":"sha512-c9hDQDx3BcL617Vfm79EfZtG74kxHbWzCyhWtHw3eW64KEBAgiRNheX5u54skYUu5GjGIK6m/4fr6AkXVQJ8uA==","signatures":[{"sig":"MEYCIQCDHN3CQvJRDf5nbdcluDGIS12TvPqlFWFcll+a4k/W6gIhAKkDpzuvccBzumMF3fLyxJE20Ly+GYJWB9KQqSgOkqxS","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":341911},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"60c183995e0150e51447a3e162d6a3b9299b75a2","scripts":{"dev":"tsx watch examples/basic-app/server.ts","build":"tsc","example:basic":"tsx examples/basic-app/server.ts","prepublishOnly":"npm run build"},"_npmUser":{"name":"samstreet","email":"samstreet.dev@gmail.com"},"repository":{"url":"git+https://github.com/orchestr-sh/orchestr.git","type":"git"},"_npmVersion":"10.9.4","description":"A 1:1 Laravel replica in TypeScript - Brings Laravel's elegant syntax and architecture to Node.js","directories":{},"_nodeVersion":"22.21.1","dependencies":{"drizzle-orm":"^0.30.0","reflect-metadata":"^0.2.2"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","typescript":"^5.7.3","@types/node":"^22.10.5","@types/better-sqlite3":"^7.6.9"},"peerDependencies":{"typescript":">=5.0.0","drizzle-orm":">=0.30.0"},"optionalDependencies":{"mysql2":"^3.9.0","postgres":"^3.4.3","better-sqlite3":"^9.4.0"},"_npmOperationalInternal":{"tmp":"tmp/orchestr_1.3.0_1770036558949_0.4676565173171865","host":"s3://npm-registry-packages-npm-production"}},"1.4.0":{"name":"@orchestr-sh/orchestr","version":"1.4.0","keywords":["laravel","framework","typescript","nodejs","mvc","ioc","dependency-injection","routing","middleware","service-container","eloquent","backend","web-framework"],"author":{"name":"Sam Street","email":"samstreet.dev@gmail.com"},"license":"MIT","_id":"@orchestr-sh/orchestr@1.4.0","maintainers":[{"name":"samstreet","email":"samstreet.dev@gmail.com"}],"homepage":"https://github.com/orchestr-sh/orchestr#readme","bugs":{"url":"https://github.com/orchestr-sh/orchestr/issues"},"dist":{"shasum":"5cca8cbefad642a0dd93bdca23bf00cb089ef6cd","tarball":"https://registry.npmjs.org/@orchestr-sh/orchestr/-/orchestr-1.4.0.tgz","fileCount":151,"integrity":"sha512-oNgodj0BBqwn/Yd2NfSyMH0e1fGoUOhothn/qqiBEXhVBg+m+wj6okGlipEZIlFs8vK1ws0NV92DneOgBQ7F4w==","signatures":[{"sig":"MEUCIQC3gZx1swDA0tf5ql6QcsN/adsCKbKsGDdGZyCc1xC+1AIgOjtyV+b1h8QLDywruyjE+k5fLM3Fmezyl7pOB0Acg84=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":422655},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"7646417e04b999c2fed1c262b661c617198e520b","scripts":{"dev":"tsx watch examples/basic-app/server.ts","build":"tsc","example:basic":"tsx examples/basic-app/server.ts","prepublishOnly":"npm run build"},"_npmUser":{"name":"samstreet","email":"samstreet.dev@gmail.com"},"repository":{"url":"git+https://github.com/orchestr-sh/orchestr.git","type":"git"},"_npmVersion":"10.9.4","description":"A 1:1 Laravel replica in TypeScript - Brings Laravel's elegant syntax and architecture to Node.js","directories":{},"_nodeVersion":"22.21.1","dependencies":{"drizzle-orm":"^0.30.0","reflect-metadata":"^0.2.2"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","typescript":"^5.7.3","@types/node":"^22.10.5","@types/better-sqlite3":"^7.6.9"},"peerDependencies":{"typescript":">=5.0.0","drizzle-orm":">=0.30.0"},"optionalDependencies":{"mysql2":"^3.9.0","postgres":"^3.4.3","better-sqlite3":"^9.4.0"},"_npmOperationalInternal":{"tmp":"tmp/orchestr_1.4.0_1770230028579_0.7103507866162189","host":"s3://npm-registry-packages-npm-production"}},"1.4.2":{"name":"@orchestr-sh/orchestr","version":"1.4.2","keywords":["laravel","framework","typescript","nodejs","mvc","ioc","dependency-injection","routing","middleware","service-container","eloquent","backend","web-framework"],"author":{"name":"Sam Street","email":"samstreet.dev@gmail.com"},"license":"MIT","_id":"@orchestr-sh/orchestr@1.4.2","maintainers":[{"name":"samstreet","email":"samstreet.dev@gmail.com"}],"homepage":"https://github.com/orchestr-sh/orchestr#readme","bugs":{"url":"https://github.com/orchestr-sh/orchestr/issues"},"dist":{"shasum":"e330c1221037e987ee9782637c71fad61b866b3c","tarball":"https://registry.npmjs.org/@orchestr-sh/orchestr/-/orchestr-1.4.2.tgz","fileCount":163,"integrity":"sha512-Ax/F8EXM3EeJuFdizIz+QLSge54EHcFUAAyl6l8/YlHhUIHOOELM7LzxO394HpgN3Mr2twpTReGri5aSHhZFeA==","signatures":[{"sig":"MEQCIC5gJVmLaDDm6Qg64Pk5MxiuX+TQWoaUvAZenYRWojiWAiAujH3ozCnN+4XMOkxjejnJOyVZDSGlQ+GhqHW3olXvNg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":467999},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"e076e991228c113a21d5c0f26177a68556ed5eb6","scripts":{"dev":"tsx watch examples/basic-app/server.ts","build":"tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"samstreet","email":"samstreet.dev@gmail.com"},"repository":{"url":"git+https://github.com/orchestr-sh/orchestr.git","type":"git"},"_npmVersion":"10.9.4","description":"A 1:1 Laravel replica in TypeScript - Brings Laravel's elegant syntax and architecture to Node.js","directories":{},"_nodeVersion":"22.21.1","dependencies":{"drizzle-orm":"^0.30.0","reflect-metadata":"^0.2.2"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","typescript":"^5.7.3","@types/node":"^22.10.5","@types/better-sqlite3":"^7.6.9"},"peerDependencies":{"typescript":">=5.0.0","drizzle-orm":">=0.30.0"},"optionalDependencies":{"mysql2":"^3.9.0","postgres":"^3.4.3","better-sqlite3":"^9.4.0"},"_npmOperationalInternal":{"tmp":"tmp/orchestr_1.4.2_1770300230402_0.9399006766612799","host":"s3://npm-registry-packages-npm-production"}},"1.4.3":{"name":"@orchestr-sh/orchestr","version":"1.4.3","keywords":["laravel","framework","typescript","nodejs","mvc","ioc","dependency-injection","routing","middleware","service-container","eloquent","backend","web-framework"],"author":{"name":"Sam Street","email":"samstreet.dev@gmail.com"},"license":"MIT","_id":"@orchestr-sh/orchestr@1.4.3","maintainers":[{"name":"samstreet","email":"samstreet.dev@gmail.com"}],"homepage":"https://github.com/orchestr-sh/orchestr#readme","bugs":{"url":"https://github.com/orchestr-sh/orchestr/issues"},"dist":{"shasum":"a99d38cefe6b53ae5e5aa58a92dae58f4fa68f72","tarball":"https://registry.npmjs.org/@orchestr-sh/orchestr/-/orchestr-1.4.3.tgz","fileCount":163,"integrity":"sha512-vXcoy6GUWK4tTvp/oeRfjPow203QAt1/ood/0yPPYoKiQ9SKJQ+UHjFGaTiSJU1F7rBtvHrF4WsmOgc1yGW4PA==","signatures":[{"sig":"MEQCIFDEBzLVSuVPlTSxl+HHy74iIlya31zKyRL02Gk6O0hTAiA5rDsE9U5egY0eBsFCBQREDC83TW1XG0YQVNp1jFlXhA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":471948},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"ea1b3a5826e6447c8a1e8d88759adee86fed29a4","scripts":{"dev":"tsx watch examples/basic-app/server.ts","build":"tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"samstreet","email":"samstreet.dev@gmail.com"},"repository":{"url":"git+https://github.com/orchestr-sh/orchestr.git","type":"git"},"_npmVersion":"10.9.4","description":"A 1:1 Laravel replica in TypeScript - Brings Laravel's elegant syntax and architecture to Node.js","directories":{},"_nodeVersion":"22.21.1","dependencies":{"drizzle-orm":"^0.30.0","reflect-metadata":"^0.2.2"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","typescript":"^5.7.3","@types/node":"^22.10.5","@types/better-sqlite3":"^7.6.9"},"peerDependencies":{"typescript":">=5.0.0","drizzle-orm":">=0.30.0"},"optionalDependencies":{"mysql2":"^3.9.0","postgres":"^3.4.3","better-sqlite3":"^9.4.0"},"_npmOperationalInternal":{"tmp":"tmp/orchestr_1.4.3_1770313591459_0.5579718220484304","host":"s3://npm-registry-packages-npm-production"}},"1.4.4":{"name":"@orchestr-sh/orchestr","version":"1.4.4","keywords":["laravel","framework","typescript","nodejs","mvc","ioc","dependency-injection","routing","middleware","service-container","eloquent","backend","web-framework"],"author":{"name":"Sam Street","email":"samstreet.dev@gmail.com"},"license":"MIT","_id":"@orchestr-sh/orchestr@1.4.4","maintainers":[{"name":"samstreet","email":"samstreet.dev@gmail.com"}],"homepage":"https://github.com/orchestr-sh/orchestr#readme","bugs":{"url":"https://github.com/orchestr-sh/orchestr/issues"},"dist":{"shasum":"8f9d67c0d4e0a9e109e1f31ac6d12b4f464845f7","tarball":"https://registry.npmjs.org/@orchestr-sh/orchestr/-/orchestr-1.4.4.tgz","fileCount":167,"integrity":"sha512-VQQHkrGFWOlajeWm4Xg17LNdF0hHbv1931WKAdIye9uV4MAVW6cqalwyCbVngveaZOmHCVjU0yQE98NyP5bFMQ==","signatures":[{"sig":"MEUCIQDsuCyQYkVOXdTVjaen8MABjm9a8+oO3jZ5VXc65ColgAIgaHizI5PJCPxThU3TQjsVpLM2gNcX8RiVb3PxHp2u1TI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":474469},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"7f74c1dcd0aabd23b3c9992399eb80e21b61b32c","scripts":{"dev":"tsx watch examples/basic-app/server.ts","build":"tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"samstreet","email":"samstreet.dev@gmail.com"},"repository":{"url":"git+https://github.com/orchestr-sh/orchestr.git","type":"git"},"_npmVersion":"10.9.4","description":"A 1:1 Laravel replica in TypeScript - Brings Laravel's elegant syntax and architecture to Node.js","directories":{},"_nodeVersion":"22.21.1","dependencies":{"drizzle-orm":"^0.30.0","reflect-metadata":"^0.2.2"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","typescript":"^5.7.3","@types/node":"^22.10.5","@types/better-sqlite3":"^7.6.9"},"peerDependencies":{"typescript":">=5.0.0","drizzle-orm":">=0.30.0"},"optionalDependencies":{"mysql2":"^3.9.0","postgres":"^3.4.3","better-sqlite3":"^9.4.0"},"_npmOperationalInternal":{"tmp":"tmp/orchestr_1.4.4_1770314542424_0.5631109818488051","host":"s3://npm-registry-packages-npm-production"}},"1.5.0":{"name":"@orchestr-sh/orchestr","version":"1.5.0","keywords":["laravel","framework","typescript","nodejs","mvc","ioc","dependency-injection","routing","middleware","service-container","eloquent","backend","web-framework"],"author":{"name":"Sam Street","email":"samstreet.dev@gmail.com"},"license":"MIT","_id":"@orchestr-sh/orchestr@1.5.0","maintainers":[{"name":"samstreet","email":"samstreet.dev@gmail.com"}],"homepage":"https://github.com/orchestr-sh/orchestr#readme","bugs":{"url":"https://github.com/orchestr-sh/orchestr/issues"},"dist":{"shasum":"afce537b928a05cc19b100ae1bc722625be7e304","tarball":"https://registry.npmjs.org/@orchestr-sh/orchestr/-/orchestr-1.5.0.tgz","fileCount":179,"integrity":"sha512-wa5PVKTMkD6YUyAkifdMuSZUPrt7h1c3UyQZPP2mJSLy7QCxbC2GeQ0j5qBxPIwIMqZtR2AxFJq2L7jx5pLJjQ==","signatures":[{"sig":"MEUCIQCWdcz2NQQ4uWdgRtIyGDg1jxsIUMUlRaKt90vDxsdp3wIgIpe46dwgrpdwMBATIxl72dpXYOo4AjxDpAEoqx3td9U=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":496726},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"f0b5eafb0d4bde407f3b7f439b792a4e114012f4","scripts":{"dev":"tsx watch examples/basic-app/server.ts","build":"tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"samstreet","email":"samstreet.dev@gmail.com"},"repository":{"url":"git+https://github.com/orchestr-sh/orchestr.git","type":"git"},"_npmVersion":"10.9.4","description":"A 1:1 Laravel replica in TypeScript - Brings Laravel's elegant syntax and architecture to Node.js","directories":{},"_nodeVersion":"22.21.1","dependencies":{"drizzle-orm":"^0.30.0","reflect-metadata":"^0.2.2"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","typescript":"^5.7.3","@types/node":"^22.10.5","@types/better-sqlite3":"^7.6.9"},"peerDependencies":{"typescript":">=5.0.0","drizzle-orm":">=0.30.0"},"optionalDependencies":{"mysql2":"^3.9.0","postgres":"^3.4.3","better-sqlite3":"^9.4.0"},"_npmOperationalInternal":{"tmp":"tmp/orchestr_1.5.0_1770333360227_0.8465567078241694","host":"s3://npm-registry-packages-npm-production"}},"1.5.1":{"name":"@orchestr-sh/orchestr","version":"1.5.1","keywords":["laravel","framework","typescript","nodejs","mvc","ioc","dependency-injection","routing","middleware","service-container","eloquent","backend","web-framework"],"author":{"name":"Sam Street","email":"samstreet.dev@gmail.com"},"license":"MIT","_id":"@orchestr-sh/orchestr@1.5.1","maintainers":[{"name":"samstreet","email":"samstreet.dev@gmail.com"}],"homepage":"https://github.com/orchestr-sh/orchestr#readme","bugs":{"url":"https://github.com/orchestr-sh/orchestr/issues"},"dist":{"shasum":"ebf566a28b7a50aba8941171acd1ebefccfa0689","tarball":"https://registry.npmjs.org/@orchestr-sh/orchestr/-/orchestr-1.5.1.tgz","fileCount":179,"integrity":"sha512-UPLw/TxKInzxtaPC94Du8BqRIa6YuVIm7wh7YHIZduY3QzJVVOKKFOOds2YHUIYiKsM0ZZvMdFZQJQZ8MNivgw==","signatures":[{"sig":"MEUCIC78A0Nr5kox4KEWlLozDc2xacSJzi6kvdISCVVJ6fJCAiEAlaDKbAisieMLFk2cYJF7c9SxadaHvWPD6O9DFj8NvJY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":500161},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"d61e1e4874045e7e287156a1e8bb110c4846867e","scripts":{"dev":"tsx watch examples/basic-app/server.ts","build":"tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"samstreet","email":"samstreet.dev@gmail.com"},"repository":{"url":"git+https://github.com/orchestr-sh/orchestr.git","type":"git"},"_npmVersion":"10.9.4","description":"A 1:1 Laravel replica in TypeScript - Brings Laravel's elegant syntax and architecture to Node.js","directories":{},"_nodeVersion":"22.21.1","dependencies":{"drizzle-orm":"^0.30.0","reflect-metadata":"^0.2.2"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","typescript":"^5.7.3","@types/node":"^22.10.5","@types/better-sqlite3":"^7.6.9"},"peerDependencies":{"typescript":">=5.0.0","drizzle-orm":">=0.30.0"},"optionalDependencies":{"mysql2":"^3.9.0","postgres":"^3.4.3","better-sqlite3":"^9.4.0"},"_npmOperationalInternal":{"tmp":"tmp/orchestr_1.5.1_1770395928469_0.5562448787201266","host":"s3://npm-registry-packages-npm-production"}},"1.5.2":{"name":"@orchestr-sh/orchestr","version":"1.5.2","keywords":["laravel","framework","typescript","nodejs","mvc","ioc","dependency-injection","routing","middleware","service-container","eloquent","backend","web-framework"],"author":{"name":"Sam Street","email":"samstreet.dev@gmail.com"},"license":"MIT","_id":"@orchestr-sh/orchestr@1.5.2","maintainers":[{"name":"samstreet","email":"samstreet.dev@gmail.com"}],"homepage":"https://github.com/orchestr-sh/orchestr#readme","bugs":{"url":"https://github.com/orchestr-sh/orchestr/issues"},"dist":{"shasum":"2e3b95e6e548f77e4d187e920987305c0bbba70e","tarball":"https://registry.npmjs.org/@orchestr-sh/orchestr/-/orchestr-1.5.2.tgz","fileCount":179,"integrity":"sha512-hrZ7U56ua4972NCPyEAtrWMRGV0FC/qfK5BDRd7eO6SJuqTpV5HDmt3sf4gJUO6lhkHiks7VJsNJ0Onsazwbxg==","signatures":[{"sig":"MEUCIQDcoCD5B0yDCK7/WJBAop3up0tdzt5iktMVkJ8uUVc2EgIgSbg9yfCITck01bgoKP6DPlDKYYkO63JGm2rSmDs6i3w=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":501358},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"2b18eb5762124883222a6cc9854381511932a85e","scripts":{"dev":"tsx watch examples/basic-app/server.ts","build":"tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"samstreet","email":"samstreet.dev@gmail.com"},"repository":{"url":"git+https://github.com/orchestr-sh/orchestr.git","type":"git"},"_npmVersion":"10.9.4","description":"A 1:1 Laravel replica in TypeScript - Brings Laravel's elegant syntax and architecture to Node.js","directories":{},"_nodeVersion":"22.21.1","dependencies":{"drizzle-orm":"^0.30.0","reflect-metadata":"^0.2.2"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","typescript":"^5.7.3","@types/node":"^22.10.5","@types/better-sqlite3":"^7.6.9"},"peerDependencies":{"typescript":">=5.0.0","drizzle-orm":">=0.30.0"},"optionalDependencies":{"mysql2":"^3.9.0","postgres":"^3.4.3","better-sqlite3":"^9.4.0"},"_npmOperationalInternal":{"tmp":"tmp/orchestr_1.5.2_1770397123884_0.49993706267628957","host":"s3://npm-registry-packages-npm-production"}},"1.5.3":{"name":"@orchestr-sh/orchestr","version":"1.5.3","keywords":["laravel","framework","typescript","nodejs","mvc","ioc","dependency-injection","routing","middleware","service-container","eloquent","backend","web-framework"],"author":{"name":"Sam Street","email":"samstreet.dev@gmail.com"},"license":"MIT","_id":"@orchestr-sh/orchestr@1.5.3","maintainers":[{"name":"samstreet","email":"samstreet.dev@gmail.com"}],"homepage":"https://github.com/orchestr-sh/orchestr#readme","bugs":{"url":"https://github.com/orchestr-sh/orchestr/issues"},"dist":{"shasum":"fa118c1ae75cae6568145c2a3920ce68cc58a688","tarball":"https://registry.npmjs.org/@orchestr-sh/orchestr/-/orchestr-1.5.3.tgz","fileCount":183,"integrity":"sha512-sl54FeZ0jM2P8XiGC/2lG9sXY1NLCp7A380KyiJ+mH/BZe5piA2HyZmOaUz1PXgiweHx8Kv1qAV1UB0lVhfR7g==","signatures":[{"sig":"MEYCIQDAz8HRd7vptTS6rAytNUF7Bb+aKL8hGwjOlQiCXg1BAgIhAOBu1MEj7+HSbamsxsnm/MpQw/rI2fotoO6psGW113g8","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":551577},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"6c8242ab0b50dc760021e0a9be62e30b9ee28048","scripts":{"dev":"tsx watch examples/basic-app/server.ts","build":"tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"samstreet","email":"samstreet.dev@gmail.com"},"repository":{"url":"git+https://github.com/orchestr-sh/orchestr.git","type":"git"},"_npmVersion":"10.9.4","description":"A 1:1 Laravel replica in TypeScript - Brings Laravel's elegant syntax and architecture to Node.js","directories":{},"_nodeVersion":"22.21.1","dependencies":{"drizzle-orm":"^0.30.0","reflect-metadata":"^0.2.2"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","typescript":"^5.7.3","@types/node":"^22.10.5","@types/better-sqlite3":"^7.6.9"},"peerDependencies":{"typescript":">=5.0.0","drizzle-orm":">=0.30.0"},"optionalDependencies":{"mysql2":"^3.9.0","postgres":"^3.4.3","better-sqlite3":"^9.4.0"},"_npmOperationalInternal":{"tmp":"tmp/orchestr_1.5.3_1770493186324_0.2353438692446801","host":"s3://npm-registry-packages-npm-production"}},"1.5.4":{"name":"@orchestr-sh/orchestr","version":"1.5.4","keywords":["laravel","framework","typescript","nodejs","mvc","ioc","dependency-injection","routing","middleware","service-container","eloquent","backend","web-framework"],"author":{"name":"Sam Street","email":"samstreet.dev@gmail.com"},"license":"MIT","_id":"@orchestr-sh/orchestr@1.5.4","maintainers":[{"name":"samstreet","email":"samstreet.dev@gmail.com"}],"homepage":"https://github.com/orchestr-sh/orchestr#readme","bugs":{"url":"https://github.com/orchestr-sh/orchestr/issues"},"dist":{"shasum":"003ffc237dd3c06ec52a7e0871e9220d8508fc4e","tarball":"https://registry.npmjs.org/@orchestr-sh/orchestr/-/orchestr-1.5.4.tgz","fileCount":183,"integrity":"sha512-5CH6py4gmebuPCWcrIHG67j1iqbsMkiSIWeZ2kXl8+c+T6yYHSNi0Q0Xu+4HtNDcG9CNyGouzPK4pQANgilOPg==","signatures":[{"sig":"MEYCIQDOkvuKwE9H3Xr5LoLiIpVGUPbPEo6doJpoQwmzlGHxxAIhANzGbm2iEbLMojQ3OytyMMf6iYzXtIFeIJ2y6WGH4tW9","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":551763},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"424dbf32796f29861f9cb501b0a750889fda62ab","scripts":{"dev":"tsx watch examples/basic-app/server.ts","build":"tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"samstreet","email":"samstreet.dev@gmail.com"},"repository":{"url":"git+https://github.com/orchestr-sh/orchestr.git","type":"git"},"_npmVersion":"10.9.4","description":"A 1:1 Laravel replica in TypeScript - Brings Laravel's elegant syntax and architecture to Node.js","directories":{},"_nodeVersion":"22.21.1","dependencies":{"drizzle-orm":"^0.30.0","reflect-metadata":"^0.2.2"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","typescript":"^5.7.3","@types/node":"^22.10.5","@types/better-sqlite3":"^7.6.9"},"peerDependencies":{"typescript":">=5.0.0","drizzle-orm":">=0.30.0"},"optionalDependencies":{"mysql2":"^3.9.0","postgres":"^3.4.3","better-sqlite3":"^9.4.0"},"_npmOperationalInternal":{"tmp":"tmp/orchestr_1.5.4_1770644282760_0.1711289986798048","host":"s3://npm-registry-packages-npm-production"}},"1.5.5":{"name":"@orchestr-sh/orchestr","version":"1.5.5","keywords":["laravel","framework","typescript","nodejs","mvc","ioc","dependency-injection","routing","middleware","service-container","eloquent","backend","web-framework"],"author":{"name":"Sam Street","email":"samstreet.dev@gmail.com"},"license":"MIT","_id":"@orchestr-sh/orchestr@1.5.5","maintainers":[{"name":"samstreet","email":"samstreet.dev@gmail.com"}],"homepage":"https://github.com/orchestr-sh/orchestr#readme","bugs":{"url":"https://github.com/orchestr-sh/orchestr/issues"},"dist":{"shasum":"9b8907b8798379e362e06e8a673d5ea2f892138f","tarball":"https://registry.npmjs.org/@orchestr-sh/orchestr/-/orchestr-1.5.5.tgz","fileCount":183,"integrity":"sha512-0MufQjRWZI84Mf+MWQwxmUNK89EsIV1CZ75YE+4y/KLEQwn5jLgwnXB5Yqn+09AtqFbNjboT4wUJuQakroyqPQ==","signatures":[{"sig":"MEUCIQDbORzN00SUJ3fQgUtCcGZIXBVA4LRnNiOf7wQtjUpjMwIgWJ0Icevri6I4x/KpaX7PmfX/HuzoS4mVAvTZ+eLQGxM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":553389},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"08c1e7494c8a59fde11778d20918eee0e3fdf8f0","scripts":{"dev":"tsx watch examples/basic-app/server.ts","build":"tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"samstreet","email":"samstreet.dev@gmail.com"},"repository":{"url":"git+https://github.com/orchestr-sh/orchestr.git","type":"git"},"_npmVersion":"10.9.4","description":"A 1:1 Laravel replica in TypeScript - Brings Laravel's elegant syntax and architecture to Node.js","directories":{},"_nodeVersion":"22.21.1","dependencies":{"drizzle-orm":"^0.30.0","reflect-metadata":"^0.2.2"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","typescript":"^5.7.3","@types/node":"^22.10.5","@types/better-sqlite3":"^7.6.9"},"peerDependencies":{"typescript":">=5.0.0","drizzle-orm":">=0.30.0"},"optionalDependencies":{"mysql2":"^3.9.0","postgres":"^3.4.3","better-sqlite3":"^9.4.0"},"_npmOperationalInternal":{"tmp":"tmp/orchestr_1.5.5_1770644811853_0.8828115736382318","host":"s3://npm-registry-packages-npm-production"}},"1.5.6":{"name":"@orchestr-sh/orchestr","version":"1.5.6","keywords":["laravel","framework","typescript","nodejs","mvc","ioc","dependency-injection","routing","middleware","service-container","eloquent","backend","web-framework"],"author":{"name":"Sam Street","email":"samstreet.dev@gmail.com"},"license":"MIT","_id":"@orchestr-sh/orchestr@1.5.6","maintainers":[{"name":"samstreet","email":"samstreet.dev@gmail.com"}],"homepage":"https://github.com/orchestr-sh/orchestr#readme","bugs":{"url":"https://github.com/orchestr-sh/orchestr/issues"},"dist":{"shasum":"8d4fb573edc1b05a80910d19375c497b978c0206","tarball":"https://registry.npmjs.org/@orchestr-sh/orchestr/-/orchestr-1.5.6.tgz","fileCount":183,"integrity":"sha512-nQsyyb9UGfeUEHEVWC0cKEw9HkujSnd/PCvTJ2g5ELp94sV4qEA0TRl53UtT4Fz9ANzAS3fnSGUdpE5lNUQkzw==","signatures":[{"sig":"MEUCIQDg7tpHh4SPW/cj/q07hZMfk0md6WEbOuDJqPrApm0kNgIgZvmYwfb+Fp8JWLzGuZJ1ee2gY/5vGo5DIY/bVb0rBQM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":554590},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"bdb1ccc5941fec094697d36b98276dbc73bed02f","scripts":{"dev":"tsx watch examples/basic-app/server.ts","build":"tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"samstreet","email":"samstreet.dev@gmail.com"},"repository":{"url":"git+https://github.com/orchestr-sh/orchestr.git","type":"git"},"_npmVersion":"10.9.4","description":"A 1:1 Laravel replica in TypeScript - Brings Laravel's elegant syntax and architecture to Node.js","directories":{},"_nodeVersion":"22.21.1","dependencies":{"drizzle-orm":"^0.30.0","reflect-metadata":"^0.2.2"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","typescript":"^5.7.3","@types/node":"^22.10.5","@types/better-sqlite3":"^7.6.9"},"peerDependencies":{"typescript":">=5.0.0","drizzle-orm":">=0.30.0"},"optionalDependencies":{"mysql2":"^3.9.0","postgres":"^3.4.3","better-sqlite3":"^9.4.0"},"_npmOperationalInternal":{"tmp":"tmp/orchestr_1.5.6_1770645292686_0.2513405205779682","host":"s3://npm-registry-packages-npm-production"}},"1.5.7":{"name":"@orchestr-sh/orchestr","version":"1.5.7","keywords":["laravel","framework","typescript","nodejs","mvc","ioc","dependency-injection","routing","middleware","service-container","eloquent","backend","web-framework"],"author":{"name":"Sam Street","email":"samstreet.dev@gmail.com"},"license":"MIT","_id":"@orchestr-sh/orchestr@1.5.7","maintainers":[{"name":"samstreet","email":"samstreet.dev@gmail.com"}],"homepage":"https://github.com/orchestr-sh/orchestr#readme","bugs":{"url":"https://github.com/orchestr-sh/orchestr/issues"},"dist":{"shasum":"de19b5910664905ffea5a40df36ba394fc986330","tarball":"https://registry.npmjs.org/@orchestr-sh/orchestr/-/orchestr-1.5.7.tgz","fileCount":187,"integrity":"sha512-WemjkInzTbUHfHsmbZ0FTWbFB5euPR/LOchJzChMYtmQ5AICeN6hWTWUEurwDXqa/3TWg6sb+IDRuZMoGwzIPQ==","signatures":[{"sig":"MEUCIHIpiNIdJdM8u2J/HUWA+eYgkMPKmPSM54y2J+U/sDueAiEAxq/VYdlNMy6Um7WopfNgFkNvsLWLGw4ycRcyTZh+2zM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":562594},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"49c7698c8a369fcdc101b4310ed2f56f0db72080","scripts":{"dev":"tsx watch examples/basic-app/server.ts","build":"tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"samstreet","email":"samstreet.dev@gmail.com"},"repository":{"url":"git+https://github.com/orchestr-sh/orchestr.git","type":"git"},"_npmVersion":"10.9.4","description":"A 1:1 Laravel replica in TypeScript - Brings Laravel's elegant syntax and architecture to Node.js","directories":{},"_nodeVersion":"22.21.1","dependencies":{"drizzle-orm":"^0.30.0","reflect-metadata":"^0.2.2"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","typescript":"^5.7.3","@types/node":"^22.10.5","@types/better-sqlite3":"^7.6.9"},"peerDependencies":{"typescript":">=5.0.0","drizzle-orm":">=0.30.0"},"optionalDependencies":{"mysql2":"^3.9.0","postgres":"^3.4.3","better-sqlite3":"^9.4.0"},"_npmOperationalInternal":{"tmp":"tmp/orchestr_1.5.7_1770656953446_0.64929024535806","host":"s3://npm-registry-packages-npm-production"}},"1.5.8":{"name":"@orchestr-sh/orchestr","version":"1.5.8","keywords":["laravel","framework","typescript","nodejs","mvc","ioc","dependency-injection","routing","middleware","service-container","eloquent","backend","web-framework"],"author":{"name":"Sam Street","email":"samstreet.dev@gmail.com"},"license":"MIT","_id":"@orchestr-sh/orchestr@1.5.8","maintainers":[{"name":"samstreet","email":"samstreet.dev@gmail.com"}],"homepage":"https://github.com/orchestr-sh/orchestr#readme","bugs":{"url":"https://github.com/orchestr-sh/orchestr/issues"},"dist":{"shasum":"f6e1b9e2d16d675a7f0d4c2797ab6690b50c49f8","tarball":"https://registry.npmjs.org/@orchestr-sh/orchestr/-/orchestr-1.5.8.tgz","fileCount":187,"integrity":"sha512-1IUTgppgq+XStjubHVsh+S4j1w5fRtAH7QpxMyKNFpaxq0V5tctHg8zJmqkVxEMjM6/UR3/I30w9LX1i3hYGsg==","signatures":[{"sig":"MEUCIEofWlBS1RW/4SVAabqrima5mhkFTS175cC14kxMxlaqAiEA6MZsahYk4T3SQI7ZV/6eFGtb8yqPdO2CyBHlVoLSaCg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":565051},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"51dfd32aa7117ecd0bd417b9adbdb1a43d808559","scripts":{"dev":"tsx watch examples/basic-app/server.ts","build":"tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"samstreet","email":"samstreet.dev@gmail.com"},"repository":{"url":"git+https://github.com/orchestr-sh/orchestr.git","type":"git"},"_npmVersion":"10.9.4","description":"A 1:1 Laravel replica in TypeScript - Brings Laravel's elegant syntax and architecture to Node.js","directories":{},"_nodeVersion":"22.21.1","dependencies":{"drizzle-orm":"^0.30.0","reflect-metadata":"^0.2.2"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","typescript":"^5.7.3","@types/node":"^22.10.5","@types/better-sqlite3":"^7.6.9"},"peerDependencies":{"typescript":">=5.0.0","drizzle-orm":">=0.30.0"},"optionalDependencies":{"mysql2":"^3.9.0","postgres":"^3.4.3","better-sqlite3":"^9.4.0"},"_npmOperationalInternal":{"tmp":"tmp/orchestr_1.5.8_1770657539409_0.1851553939433186","host":"s3://npm-registry-packages-npm-production"}},"1.5.9":{"name":"@orchestr-sh/orchestr","version":"1.5.9","keywords":["laravel","framework","typescript","nodejs","mvc","ioc","dependency-injection","routing","middleware","service-container","eloquent","backend","web-framework"],"author":{"name":"Sam Street","email":"samstreet.dev@gmail.com"},"license":"MIT","_id":"@orchestr-sh/orchestr@1.5.9","maintainers":[{"name":"samstreet","email":"samstreet.dev@gmail.com"}],"homepage":"https://github.com/orchestr-sh/orchestr#readme","bugs":{"url":"https://github.com/orchestr-sh/orchestr/issues"},"dist":{"shasum":"c11cb40143d50868fa65c31fc203336e21864bcb","tarball":"https://registry.npmjs.org/@orchestr-sh/orchestr/-/orchestr-1.5.9.tgz","fileCount":187,"integrity":"sha512-wM04vV+/9vuhKUTJepI/0bfhaNeOltC5Tk8Emz2Z22aT5+6+xjpL9VEUzZ36HQ0XQ4+GcKYvB00m2LbNtHBbkg==","signatures":[{"sig":"MEUCIQCPY+CojWZj1pZoS3bpYoF8pt7wrAwbTg5+LjxAens9lwIgUfFbfBiQaAcWN5jNICyPifoAJqw9ZsycFbPiS5lfKOY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":565488},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"c74e9ac5c26031a917d04d816d13c3aaf97cded4","scripts":{"dev":"tsx watch examples/basic-app/server.ts","build":"tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"samstreet","email":"samstreet.dev@gmail.com"},"repository":{"url":"git+https://github.com/orchestr-sh/orchestr.git","type":"git"},"_npmVersion":"10.9.4","description":"A 1:1 Laravel replica in TypeScript - Brings Laravel's elegant syntax and architecture to Node.js","directories":{},"_nodeVersion":"22.21.1","dependencies":{"drizzle-orm":"^0.30.0","reflect-metadata":"^0.2.2"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","typescript":"^5.7.3","@types/node":"^22.10.5","@types/better-sqlite3":"^7.6.9"},"peerDependencies":{"typescript":">=5.0.0","drizzle-orm":">=0.30.0"},"optionalDependencies":{"mysql2":"^3.9.0","postgres":"^3.4.3","better-sqlite3":"^9.4.0"},"_npmOperationalInternal":{"tmp":"tmp/orchestr_1.5.9_1770658301137_0.8548452584972106","host":"s3://npm-registry-packages-npm-production"}},"1.5.10":{"name":"@orchestr-sh/orchestr","version":"1.5.10","keywords":["laravel","framework","typescript","nodejs","mvc","ioc","dependency-injection","routing","middleware","service-container","eloquent","backend","web-framework"],"author":{"name":"Sam Street","email":"samstreet.dev@gmail.com"},"license":"MIT","_id":"@orchestr-sh/orchestr@1.5.10","maintainers":[{"name":"samstreet","email":"samstreet.dev@gmail.com"}],"homepage":"https://github.com/orchestr-sh/orchestr#readme","bugs":{"url":"https://github.com/orchestr-sh/orchestr/issues"},"dist":{"shasum":"997514e09401a9183ec808b1381dd57f8e45da79","tarball":"https://registry.npmjs.org/@orchestr-sh/orchestr/-/orchestr-1.5.10.tgz","fileCount":191,"integrity":"sha512-5Oe1cdgKOlBjMNY+Akvg69mutyrBRqO9+hjOEk79ajDpRxcgfDZ6DLeUWzFN4gDuOSx3BtTR0jckYQZVDxz8UQ==","signatures":[{"sig":"MEYCIQCD4G/+CgLi7HtJnjPIn5YwqfRuQ9809OGWbY5IioHhzwIhAPi7vfP1RQ3hAWwr4ZHJ33AewMaKa6aQv9IFox0PAKey","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":585012},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"90b53481777f9d66f5d47d52bc8e6fae97b41c15","scripts":{"dev":"tsx watch examples/basic-app/server.ts","build":"tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"samstreet","email":"samstreet.dev@gmail.com"},"repository":{"url":"git+https://github.com/orchestr-sh/orchestr.git","type":"git"},"_npmVersion":"10.9.4","description":"A 1:1 Laravel replica in TypeScript - Brings Laravel's elegant syntax and architecture to Node.js","directories":{},"_nodeVersion":"22.21.1","dependencies":{"drizzle-orm":"^0.30.0","reflect-metadata":"^0.2.2"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","typescript":"^5.7.3","@types/node":"^22.10.5","@types/better-sqlite3":"^7.6.9"},"peerDependencies":{"typescript":">=5.0.0","drizzle-orm":">=0.30.0"},"optionalDependencies":{"mysql2":"^3.9.0","postgres":"^3.4.3","better-sqlite3":"^9.4.0"},"_npmOperationalInternal":{"tmp":"tmp/orchestr_1.5.10_1770896375073_0.9810905435575756","host":"s3://npm-registry-packages-npm-production"}},"1.5.11":{"name":"@orchestr-sh/orchestr","version":"1.5.11","keywords":["laravel","framework","typescript","nodejs","mvc","ioc","dependency-injection","routing","middleware","service-container","eloquent","backend","web-framework"],"author":{"name":"Sam Street","email":"samstreet.dev@gmail.com"},"license":"MIT","_id":"@orchestr-sh/orchestr@1.5.11","maintainers":[{"name":"samstreet","email":"samstreet.dev@gmail.com"}],"homepage":"https://github.com/orchestr-sh/orchestr#readme","bugs":{"url":"https://github.com/orchestr-sh/orchestr/issues"},"dist":{"shasum":"302bc04d92507600905123636ed91f553c652ab8","tarball":"https://registry.npmjs.org/@orchestr-sh/orchestr/-/orchestr-1.5.11.tgz","fileCount":215,"integrity":"sha512-IaLJxYEd65HfUbwxWM5eW0/RuExNmEhYpS99JMuKExuAKgOqKn2qDfeCCVk613j+lNvN75uK0wA1vRwh2gWsZw==","signatures":[{"sig":"MEYCIQCeug5rGqD9IeW+CfUbWoD5o4PNQqmwuyrqQ6wP4VIzlQIhANdexF5QPKdijFn0dTMAau97wKf6UZV7W4ER3l4uayOc","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":649311},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"00101abb931b3a03719408d4e4cdc116be9e7943","scripts":{"dev":"tsx watch examples/basic-app/server.ts","build":"tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"samstreet","email":"samstreet.dev@gmail.com"},"repository":{"url":"git+https://github.com/orchestr-sh/orchestr.git","type":"git"},"_npmVersion":"10.9.4","description":"A 1:1 Laravel replica in TypeScript - Brings Laravel's elegant syntax and architecture to Node.js","directories":{},"_nodeVersion":"22.21.1","dependencies":{"drizzle-orm":"^0.30.0","reflect-metadata":"^0.2.2"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","typescript":"^5.7.3","@types/node":"^22.10.5","@types/better-sqlite3":"^7.6.9"},"peerDependencies":{"typescript":">=5.0.0","drizzle-orm":">=0.30.0"},"optionalDependencies":{"mysql2":"^3.9.0","postgres":"^3.4.3","better-sqlite3":"^9.4.0"},"_npmOperationalInternal":{"tmp":"tmp/orchestr_1.5.11_1770899395329_0.8281648934205057","host":"s3://npm-registry-packages-npm-production"}},"1.6.0":{"name":"@orchestr-sh/orchestr","version":"1.6.0","keywords":["laravel","framework","typescript","nodejs","mvc","ioc","dependency-injection","routing","middleware","service-container","eloquent","backend","web-framework"],"author":{"name":"Sam Street","email":"samstreet.dev@gmail.com"},"license":"MIT","_id":"@orchestr-sh/orchestr@1.6.0","maintainers":[{"name":"samstreet","email":"samstreet.dev@gmail.com"}],"homepage":"https://github.com/orchestr-sh/orchestr#readme","bugs":{"url":"https://github.com/orchestr-sh/orchestr/issues"},"bin":{"orchestr":"dist/Console/orchestr.js"},"dist":{"shasum":"fa5b58b3af2e105977d23c8afd5511efdc17ab3a","tarball":"https://registry.npmjs.org/@orchestr-sh/orchestr/-/orchestr-1.6.0.tgz","fileCount":303,"integrity":"sha512-v551CNOofNqItHyFOkxp08e+gjJ43IQC3Xr3p1RQ+BF1wF+o8nCDevUevYh4SIR0BR6EbvfdjEuoLl+/XCzO2Q==","signatures":[{"sig":"MEQCICm3J28aiMci++RYZhMVuPO8+LwOSY0jQSFTPg6iuHlNAiAdvaokzU0r4RtHaFz0VUBehKSab+HyJW2GTHuXCckB3A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":839032},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"99bb646d85b3f106148816419341f6f37d0c531b","scripts":{"dev":"tsx watch examples/basic-app/server.ts","build":"tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"samstreet","email":"samstreet.dev@gmail.com"},"repository":{"url":"git+https://github.com/orchestr-sh/orchestr.git","type":"git"},"_npmVersion":"10.9.4","description":"A 1:1 Laravel replica in TypeScript - Brings Laravel's elegant syntax and architecture to Node.js","directories":{},"_nodeVersion":"22.21.1","dependencies":{"drizzle-orm":"^0.30.0","reflect-metadata":"^0.2.2"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","typescript":"^5.7.3","@types/node":"^22.10.5","@types/better-sqlite3":"^7.6.9"},"peerDependencies":{"typescript":">=5.0.0","drizzle-orm":">=0.30.0"},"optionalDependencies":{"mysql2":"^3.9.0","postgres":"^3.4.3","better-sqlite3":"^9.4.0"},"_npmOperationalInternal":{"tmp":"tmp/orchestr_1.6.0_1770915046848_0.140547921272677","host":"s3://npm-registry-packages-npm-production"}},"1.6.1":{"name":"@orchestr-sh/orchestr","version":"1.6.1","keywords":["laravel","framework","typescript","nodejs","mvc","ioc","dependency-injection","routing","middleware","service-container","eloquent","backend","web-framework"],"author":{"name":"Sam Street","email":"samstreet.dev@gmail.com"},"license":"MIT","_id":"@orchestr-sh/orchestr@1.6.1","maintainers":[{"name":"samstreet","email":"samstreet.dev@gmail.com"}],"homepage":"https://github.com/orchestr-sh/orchestr#readme","bugs":{"url":"https://github.com/orchestr-sh/orchestr/issues"},"bin":{"orchestr":"dist/Console/orchestr.js"},"dist":{"shasum":"b388d683aff98bec0e7fbac474b8f1eb870acbba","tarball":"https://registry.npmjs.org/@orchestr-sh/orchestr/-/orchestr-1.6.1.tgz","fileCount":303,"integrity":"sha512-EemWovs5jwj0Y2A0FL4MPbwPYt0c5VLhTvVOj60QG/eurjFmToF9nBBbRQwNBwC61sHdQgbCgDxwTWlbupu/kg==","signatures":[{"sig":"MEUCIQCd3lnI91ePsEXlBx5X95JOirP5G6LpTSSrQyEa0FYZOAIgRbLNu5s6HJJmljxMzpyVkVSMTGeTtmv+FdI8vSTao5w=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":839290},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"ba3ee03ea6a9706c011e7c772432880524a75002","scripts":{"dev":"tsx watch examples/basic-app/server.ts","lint":"eslint 'src/**/*.ts'","build":"tsc","format":"prettier --write 'src/**/*.ts'","prepare":"husky","lint:fix":"eslint 'src/**/*.ts' --fix","format:check":"prettier --check 'src/**/*.ts'","prepublishOnly":"npm run build"},"_npmUser":{"name":"samstreet","email":"samstreet.dev@gmail.com"},"repository":{"url":"git+https://github.com/orchestr-sh/orchestr.git","type":"git"},"_npmVersion":"10.9.4","description":"A 1:1 Laravel replica in TypeScript - Brings Laravel's elegant syntax and architecture to Node.js","directories":{},"lint-staged":{"*.ts":["eslint --fix","prettier --write"]},"_nodeVersion":"22.21.1","dependencies":{"drizzle-orm":">=0.30.0","reflect-metadata":"^0.2.2"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","husky":"^9.1.7","eslint":"^9.39.2","prettier":"^3.8.1","@eslint/js":"^10.0.1","typescript":"^5.7.3","@types/node":"^22.10.5","lint-staged":"^16.2.7","typescript-eslint":"^8.55.0","@types/better-sqlite3":"^7.6.9","eslint-config-prettier":"^10.1.8","eslint-plugin-prettier":"^5.5.5","@typescript-eslint/parser":"^8.55.0","@typescript-eslint/eslint-plugin":"^8.55.0"},"peerDependencies":{"typescript":">=5.0.0","drizzle-orm":">=0.30.0"},"optionalDependencies":{"mysql2":"^3.9.0","postgres":"^3.4.3","better-sqlite3":"^9.4.0"},"_npmOperationalInternal":{"tmp":"tmp/orchestr_1.6.1_1770916463616_0.3887212189489546","host":"s3://npm-registry-packages-npm-production"}},"1.7.0":{"name":"@orchestr-sh/orchestr","version":"1.7.0","keywords":["laravel","framework","typescript","nodejs","mvc","ioc","dependency-injection","routing","middleware","service-container","eloquent","backend","web-framework"],"author":{"name":"Sam Street","email":"samstreet.dev@gmail.com"},"license":"MIT","_id":"@orchestr-sh/orchestr@1.7.0","maintainers":[{"name":"samstreet","email":"samstreet.dev@gmail.com"}],"homepage":"https://github.com/orchestr-sh/orchestr#readme","bugs":{"url":"https://github.com/orchestr-sh/orchestr/issues"},"bin":{"orchestr":"dist/Console/orchestr.js"},"dist":{"shasum":"62ef2ffa650c21f62b265d8affdaad916ca9337b","tarball":"https://registry.npmjs.org/@orchestr-sh/orchestr/-/orchestr-1.7.0.tgz","fileCount":443,"integrity":"sha512-IVLn9fgJnLvslSEIlY0VAnfS3LLcUQ8as4lUKWgnknSyCi6WMXGxkXjGNwJtKJCSkDClN21tnNy1n+XF9cXOag==","signatures":[{"sig":"MEUCIENvFvl1syLgR7iTpBLRAQWx+MCHkJcI7sABMmhhBHeHAiEA6JWNXm89SBGdgv+7ixuoMY7kBHH0ccdMopklO3SKoBk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1138968},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"291f920bf6fae1f52ec3bd9c561e0ca693a9a31f","scripts":{"dev":"tsx watch examples/basic-app/server.ts","lint":"eslint 'src/**/*.ts'","build":"tsc","format":"prettier --write 'src/**/*.ts'","prepare":"husky","lint:fix":"eslint 'src/**/*.ts' --fix","format:check":"prettier --check 'src/**/*.ts'","prepublishOnly":"npm run build"},"_npmUser":{"name":"samstreet","email":"samstreet.dev@gmail.com"},"repository":{"url":"git+https://github.com/orchestr-sh/orchestr.git","type":"git"},"_npmVersion":"10.9.4","description":"A 1:1 Laravel replica in TypeScript - Brings Laravel's elegant syntax and architecture to Node.js","directories":{},"lint-staged":{"*.ts":["eslint --fix","prettier --write"]},"_nodeVersion":"22.21.1","dependencies":{"drizzle-orm":">=0.30.0","reflect-metadata":"^0.2.2"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","husky":"^9.1.7","eslint":"^9.39.2","prettier":"^3.8.1","@eslint/js":"^10.0.1","typescript":"^5.7.3","@types/node":"^22.10.5","lint-staged":"^16.2.7","typescript-eslint":"^8.55.0","@types/better-sqlite3":"^7.6.9","eslint-config-prettier":"^10.1.8","eslint-plugin-prettier":"^5.5.5","@typescript-eslint/parser":"^8.55.0","@typescript-eslint/eslint-plugin":"^8.55.0"},"peerDependencies":{"typescript":">=5.0.0","drizzle-orm":">=0.30.0"},"optionalDependencies":{"mysql2":"^3.9.0","postgres":"^3.4.3","better-sqlite3":"^9.4.0"},"_npmOperationalInternal":{"tmp":"tmp/orchestr_1.7.0_1771167701700_0.22633679881308155","host":"s3://npm-registry-packages-npm-production"}},"1.7.1":{"name":"@orchestr-sh/orchestr","version":"1.7.1","keywords":["laravel","framework","typescript","nodejs","mvc","ioc","dependency-injection","routing","middleware","service-container","eloquent","backend","web-framework"],"author":{"name":"Sam Street","email":"samstreet.dev@gmail.com"},"license":"MIT","_id":"@orchestr-sh/orchestr@1.7.1","maintainers":[{"name":"samstreet","email":"samstreet.dev@gmail.com"}],"homepage":"https://github.com/orchestr-sh/orchestr#readme","bugs":{"url":"https://github.com/orchestr-sh/orchestr/issues"},"bin":{"orchestr":"dist/Console/orchestr.js"},"dist":{"shasum":"aa3c2f27f01fd731222408ca24910a5612fc069e","tarball":"https://registry.npmjs.org/@orchestr-sh/orchestr/-/orchestr-1.7.1.tgz","fileCount":443,"integrity":"sha512-vuCMumYbMLZ/sbvt0VhkKUGHY9xjzfkfQaFfAtLd5jzi9HHeYrrxA9O7JAQEv8v5ioPLvLRFLqt8gg3DSpigNw==","signatures":[{"sig":"MEQCIFFSwrW7M35cGNoAUOJB92qB5ZvZvweZASpuzEEZAf+GAiBp2qfMjTAJpKL5ZLMzhD/NnYpLNlHJ8Q7xqDkR/NcRkQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1140260},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"5b6838d6a60d5bb2e0885aad4723aff3e3696b1f","scripts":{"dev":"tsx watch examples/basic-app/server.ts","lint":"eslint 'src/**/*.ts'","build":"tsc","format":"prettier --write 'src/**/*.ts'","prepare":"husky","lint:fix":"eslint 'src/**/*.ts' --fix","format:check":"prettier --check 'src/**/*.ts'","prepublishOnly":"npm run build"},"_npmUser":{"name":"samstreet","email":"samstreet.dev@gmail.com"},"repository":{"url":"git+https://github.com/orchestr-sh/orchestr.git","type":"git"},"_npmVersion":"10.9.4","description":"A 1:1 Laravel replica in TypeScript - Brings Laravel's elegant syntax and architecture to Node.js","directories":{},"lint-staged":{"*.ts":["eslint --fix","prettier --write"]},"_nodeVersion":"22.21.1","dependencies":{"drizzle-orm":">=0.30.0","reflect-metadata":"^0.2.2"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","husky":"^9.1.7","eslint":"^9.39.2","prettier":"^3.8.1","@eslint/js":"^10.0.1","typescript":"^5.7.3","@types/node":"^22.10.5","lint-staged":"^16.2.7","typescript-eslint":"^8.55.0","@types/better-sqlite3":"^7.6.9","eslint-config-prettier":"^10.1.8","eslint-plugin-prettier":"^5.5.5","@typescript-eslint/parser":"^8.55.0","@typescript-eslint/eslint-plugin":"^8.55.0"},"peerDependencies":{"typescript":">=5.0.0","drizzle-orm":">=0.30.0"},"optionalDependencies":{"mysql2":"^3.9.0","postgres":"^3.4.3","better-sqlite3":"^9.4.0"},"_npmOperationalInternal":{"tmp":"tmp/orchestr_1.7.1_1771170155493_0.8037864624468924","host":"s3://npm-registry-packages-npm-production"}},"1.7.2":{"name":"@orchestr-sh/orchestr","version":"1.7.2","keywords":["laravel","framework","typescript","nodejs","mvc","ioc","dependency-injection","routing","middleware","service-container","eloquent","backend","web-framework"],"author":{"name":"Sam Street","email":"samstreet.dev@gmail.com"},"license":"MIT","_id":"@orchestr-sh/orchestr@1.7.2","maintainers":[{"name":"samstreet","email":"samstreet.dev@gmail.com"}],"homepage":"https://github.com/orchestr-sh/orchestr#readme","bugs":{"url":"https://github.com/orchestr-sh/orchestr/issues"},"bin":{"orchestr":"dist/Console/orchestr.js"},"dist":{"shasum":"ed07e8b84dda0c7e3a9747f99926336a5de0e372","tarball":"https://registry.npmjs.org/@orchestr-sh/orchestr/-/orchestr-1.7.2.tgz","fileCount":447,"integrity":"sha512-p21B9J45mtlIV4yqLLMH7Mt81W7XSj/6DcTOGlhyNAfr0j5SyAT5cICd1POybG28y4l36Ref6Fe+7gGxqUps0g==","signatures":[{"sig":"MEUCIDRJRN3dIHOtWm1PK5X6s60byRNiOUXBOl1yYSzqPD/1AiEA65R3o4YPfOd95S2Zd9QiZxsDfqzklDywfqQb61wjcAw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1147018},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./Events":{"types":"./dist/Events/index.d.ts","import":"./dist/Events/index.js","require":"./dist/Events/index.js"},"./Facades":{"types":"./dist/Facades/index.d.ts","import":"./dist/Facades/index.js","require":"./dist/Facades/index.js"}},"gitHead":"4d735e9bc68165222096c3902b3fd9de41536bc5","scripts":{"dev":"tsx watch examples/basic-app/server.ts","lint":"eslint 'src/**/*.ts'","build":"tsc","format":"prettier --write 'src/**/*.ts'","prepare":"husky","lint:fix":"eslint 'src/**/*.ts' --fix","format:check":"prettier --check 'src/**/*.ts'","prepublishOnly":"npm run build"},"_npmUser":{"name":"samstreet","email":"samstreet.dev@gmail.com"},"repository":{"url":"git+https://github.com/orchestr-sh/orchestr.git","type":"git"},"_npmVersion":"10.9.4","description":"A 1:1 Laravel replica in TypeScript - Brings Laravel's elegant syntax and architecture to Node.js","directories":{},"lint-staged":{"*.ts":["eslint --fix","prettier --write"]},"_nodeVersion":"22.21.1","dependencies":{"drizzle-orm":">=0.30.0","reflect-metadata":"^0.2.2"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","husky":"^9.1.7","eslint":"^9.39.2","prettier":"^3.8.1","@eslint/js":"^10.0.1","typescript":"^5.7.3","@types/node":"^22.10.5","lint-staged":"^16.2.7","typescript-eslint":"^8.55.0","@types/better-sqlite3":"^7.6.9","eslint-config-prettier":"^10.1.8","eslint-plugin-prettier":"^5.5.5","@typescript-eslint/parser":"^8.55.0","@typescript-eslint/eslint-plugin":"^8.55.0"},"peerDependencies":{"typescript":">=5.0.0","drizzle-orm":">=0.30.0"},"optionalDependencies":{"mysql2":"^3.9.0","postgres":"^3.4.3","better-sqlite3":"^9.4.0"},"_npmOperationalInternal":{"tmp":"tmp/orchestr_1.7.2_1771170595339_0.613385864117399","host":"s3://npm-registry-packages-npm-production"}},"1.7.3":{"name":"@orchestr-sh/orchestr","version":"1.7.3","keywords":["laravel","framework","typescript","nodejs","mvc","ioc","dependency-injection","routing","middleware","service-container","eloquent","backend","web-framework"],"author":{"name":"Sam Street","email":"samstreet.dev@gmail.com"},"license":"MIT","_id":"@orchestr-sh/orchestr@1.7.3","maintainers":[{"name":"samstreet","email":"samstreet.dev@gmail.com"}],"homepage":"https://github.com/orchestr-sh/orchestr#readme","bugs":{"url":"https://github.com/orchestr-sh/orchestr/issues"},"bin":{"orchestr":"dist/Console/orchestr.js"},"dist":{"shasum":"725afc18665a8731b4b441524d41b0db9736d40d","tarball":"https://registry.npmjs.org/@orchestr-sh/orchestr/-/orchestr-1.7.3.tgz","fileCount":447,"integrity":"sha512-y+rJvRUrPg0gu+QrfKnjUE5QshhJXWxF3MJK5+cyanjqPF4+jE/03WPwyIy5YNfmm/UcAPog8at0oIDl72+69w==","signatures":[{"sig":"MEYCIQDqJ8e9Bt1kllH1U8OBK5uD7Y1izyiUyYj+QoI1r2fesgIhAMnlmSFCbv5smLMezfZ97FDSnXhBSzEPzEM6RpShYzS2","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1148625},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./Events":{"types":"./dist/Events/index.d.ts","import":"./dist/Events/index.js","require":"./dist/Events/index.js"},"./Facades":{"types":"./dist/Facades/index.d.ts","import":"./dist/Facades/index.js","require":"./dist/Facades/index.js"}},"gitHead":"1267acf92d7ef5b8ad8d6ac06ec101752f27c5ba","scripts":{"dev":"tsx watch examples/basic-app/server.ts","lint":"eslint 'src/**/*.ts'","build":"tsc","format":"prettier --write 'src/**/*.ts'","prepare":"husky","lint:fix":"eslint 'src/**/*.ts' --fix","format:check":"prettier --check 'src/**/*.ts'","prepublishOnly":"npm run build"},"_npmUser":{"name":"samstreet","email":"samstreet.dev@gmail.com"},"repository":{"url":"git+https://github.com/orchestr-sh/orchestr.git","type":"git"},"_npmVersion":"10.9.4","description":"A 1:1 Laravel replica in TypeScript - Brings Laravel's elegant syntax and architecture to Node.js","directories":{},"lint-staged":{"*.ts":["eslint --fix","prettier --write"]},"_nodeVersion":"22.21.1","dependencies":{"drizzle-orm":">=0.30.0","reflect-metadata":"^0.2.2"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","husky":"^9.1.7","eslint":"^9.39.2","prettier":"^3.8.1","@eslint/js":"^10.0.1","typescript":"^5.7.3","@types/node":"^22.10.5","lint-staged":"^16.2.7","typescript-eslint":"^8.55.0","@types/better-sqlite3":"^7.6.9","eslint-config-prettier":"^10.1.8","eslint-plugin-prettier":"^5.5.5","@typescript-eslint/parser":"^8.55.0","@typescript-eslint/eslint-plugin":"^8.55.0"},"peerDependencies":{"typescript":">=5.0.0","drizzle-orm":">=0.30.0"},"optionalDependencies":{"mysql2":"^3.9.0","postgres":"^3.4.3","better-sqlite3":"^9.4.0"},"_npmOperationalInternal":{"tmp":"tmp/orchestr_1.7.3_1771172106030_0.654384655641228","host":"s3://npm-registry-packages-npm-production"}},"1.7.4":{"name":"@orchestr-sh/orchestr","version":"1.7.4","keywords":["laravel","framework","typescript","nodejs","mvc","ioc","dependency-injection","routing","middleware","service-container","eloquent","backend","web-framework"],"author":{"name":"Sam Street","email":"samstreet.dev@gmail.com"},"license":"MIT","_id":"@orchestr-sh/orchestr@1.7.4","maintainers":[{"name":"samstreet","email":"samstreet.dev@gmail.com"}],"homepage":"https://github.com/orchestr-sh/orchestr#readme","bugs":{"url":"https://github.com/orchestr-sh/orchestr/issues"},"bin":{"orchestr":"dist/Console/orchestr.js"},"dist":{"shasum":"e7700a91aa00e24aa7342c8b7099c148dfe4da99","tarball":"https://registry.npmjs.org/@orchestr-sh/orchestr/-/orchestr-1.7.4.tgz","fileCount":447,"integrity":"sha512-rY33FnelowM4YwFItyozEZ7TJ3YR0Js4apnydIcGL3qndh7fnG5hbk/2WTu6BnaO+LI/PCE1jePI3P3I/tmi/g==","signatures":[{"sig":"MEUCIQDKs5wyHgnIOhcvO1/pG8zZrMHcZheBn9vM8y27xqnZaQIgeTJuGliwFhbER2EOD1SZhmhDHnu0AxwkxKa+URYfhnU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1149397},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./Events":{"types":"./dist/Events/index.d.ts","import":"./dist/Events/index.js","require":"./dist/Events/index.js"},"./Facades":{"types":"./dist/Facades/index.d.ts","import":"./dist/Facades/index.js","require":"./dist/Facades/index.js"}},"gitHead":"9928f965ce9b94505cf5843d00ffccde997e64b3","scripts":{"dev":"tsx watch examples/basic-app/server.ts","lint":"eslint 'src/**/*.ts'","build":"tsc","format":"prettier --write 'src/**/*.ts'","prepare":"husky","lint:fix":"eslint 'src/**/*.ts' --fix","format:check":"prettier --check 'src/**/*.ts'","prepublishOnly":"npm run build"},"_npmUser":{"name":"samstreet","email":"samstreet.dev@gmail.com"},"repository":{"url":"git+https://github.com/orchestr-sh/orchestr.git","type":"git"},"_npmVersion":"10.9.4","description":"A 1:1 Laravel replica in TypeScript - Brings Laravel's elegant syntax and architecture to Node.js","directories":{},"lint-staged":{"*.ts":["eslint --fix","prettier --write"]},"_nodeVersion":"22.21.1","dependencies":{"drizzle-orm":">=0.30.0","reflect-metadata":"^0.2.2"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","husky":"^9.1.7","eslint":"^9.39.2","prettier":"^3.8.1","@eslint/js":"^10.0.1","typescript":"^5.7.3","@types/node":"^22.10.5","lint-staged":"^16.2.7","typescript-eslint":"^8.55.0","@types/better-sqlite3":"^7.6.9","eslint-config-prettier":"^10.1.8","eslint-plugin-prettier":"^5.5.5","@typescript-eslint/parser":"^8.55.0","@typescript-eslint/eslint-plugin":"^8.55.0"},"peerDependencies":{"typescript":">=5.0.0","drizzle-orm":">=0.30.0"},"optionalDependencies":{"mysql2":"^3.9.0","postgres":"^3.4.3","better-sqlite3":"^9.4.0"},"_npmOperationalInternal":{"tmp":"tmp/orchestr_1.7.4_1771173156585_0.08318587845369096","host":"s3://npm-registry-packages-npm-production"}},"1.8.0":{"name":"@orchestr-sh/orchestr","version":"1.8.0","keywords":["laravel","framework","typescript","nodejs","mvc","ioc","dependency-injection","routing","middleware","service-container","eloquent","backend","web-framework"],"author":{"name":"Sam Street","email":"samstreet.dev@gmail.com"},"license":"MIT","_id":"@orchestr-sh/orchestr@1.8.0","maintainers":[{"name":"samstreet","email":"samstreet.dev@gmail.com"}],"homepage":"https://github.com/orchestr-sh/orchestr#readme","bugs":{"url":"https://github.com/orchestr-sh/orchestr/issues"},"bin":{"orchestr":"dist/Console/orchestr.js"},"dist":{"shasum":"820e1da80ffdf9bade04b6b39c8b12bc91e8f7e9","tarball":"https://registry.npmjs.org/@orchestr-sh/orchestr/-/orchestr-1.8.0.tgz","fileCount":651,"integrity":"sha512-+6+F1UDTvpOCDfns1xlCa+IUmOyRbyHQYo87sny5xOtk8O0RyUQqQXYe8ZSbHeYr3HAtTXMB5AvR3yMewiaQ9Q==","signatures":[{"sig":"MEQCIH2e2DFGIy13TX1xUeT7vc2xKCpLgAPNBEvfJVWZyCm4AiApU3wcJeSuv4WyTY2teOeRnUvDcCu+g/ujAr6v3x9qcw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1462545},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./Events":{"types":"./dist/Events/index.d.ts","import":"./dist/Events/index.js","require":"./dist/Events/index.js"},"./Facades":{"types":"./dist/Facades/index.d.ts","import":"./dist/Facades/index.js","require":"./dist/Facades/index.js"}},"gitHead":"03584958578f8cb05867c36385b6dd6e6e1a266f","scripts":{"dev":"tsx watch examples/basic-app/server.ts","lint":"eslint 'src/**/*.ts'","build":"tsc","format":"prettier --write 'src/**/*.ts'","prepare":"husky","lint:fix":"eslint 'src/**/*.ts' --fix","format:check":"prettier --check 'src/**/*.ts'","prepublishOnly":"npm run build"},"_npmUser":{"name":"samstreet","email":"samstreet.dev@gmail.com"},"repository":{"url":"git+https://github.com/orchestr-sh/orchestr.git","type":"git"},"_npmVersion":"10.9.4","description":"A 1:1 Laravel replica in TypeScript - Brings Laravel's elegant syntax and architecture to Node.js","directories":{},"lint-staged":{"*.ts":["eslint --fix","prettier --write"]},"_nodeVersion":"22.21.1","dependencies":{"drizzle-orm":">=0.30.0","reflect-metadata":"^0.2.2"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","husky":"^9.1.7","eslint":"^9.39.2","prettier":"^3.8.1","@eslint/js":"^10.0.1","typescript":"^5.7.3","@types/node":"^22.10.5","lint-staged":"^16.2.7","typescript-eslint":"^8.55.0","@types/better-sqlite3":"^7.6.9","eslint-config-prettier":"^10.1.8","eslint-plugin-prettier":"^5.5.5","@typescript-eslint/parser":"^8.55.0","@typescript-eslint/eslint-plugin":"^8.55.0"},"peerDependencies":{"typescript":">=5.0.0","drizzle-orm":">=0.30.0"},"optionalDependencies":{"mysql2":"^3.9.0","postgres":"^3.4.3","better-sqlite3":"^9.4.0"},"_npmOperationalInternal":{"tmp":"tmp/orchestr_1.8.0_1771255206650_0.9043951553884655","host":"s3://npm-registry-packages-npm-production"}},"1.9.1":{"name":"@orchestr-sh/orchestr","version":"1.9.1","keywords":["laravel","framework","typescript","nodejs","mvc","ioc","dependency-injection","routing","middleware","service-container","eloquent","backend","web-framework"],"author":{"name":"Sam Street","email":"samstreet.dev@gmail.com"},"license":"MIT","_id":"@orchestr-sh/orchestr@1.9.1","maintainers":[{"name":"samstreet","email":"samstreet.dev@gmail.com"}],"homepage":"https://github.com/orchestr-sh/orchestr#readme","bugs":{"url":"https://github.com/orchestr-sh/orchestr/issues"},"bin":{"orchestr":"dist/Console/orchestr.js"},"dist":{"shasum":"2a4bb11299ba2a9dd2078aeb74ce2f1463436a64","tarball":"https://registry.npmjs.org/@orchestr-sh/orchestr/-/orchestr-1.9.1.tgz","fileCount":767,"integrity":"sha512-qV7ku319CK9XdpLrmBNVtQuRE4seDGPHWM/06BMuXgvW6V1yPHz2taL3CvU6uujb2qrCbMczatAd9C8faqdI7A==","signatures":[{"sig":"MEUCIBn71UXEk0kBPSBmCzmCqdisJhopAhLvghLAjk+aZezBAiEA2Pd6SlhxVYEdPp8EbVD3kiF1cxei5gRLejL7nTiYWmM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1637178},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./Events":{"types":"./dist/Events/index.d.ts","import":"./dist/Events/index.js","require":"./dist/Events/index.js"},"./Facades":{"types":"./dist/Facades/index.d.ts","import":"./dist/Facades/index.js","require":"./dist/Facades/index.js"}},"gitHead":"93a58756b565c257eb6cafca8c60817608488c5a","scripts":{"dev":"tsx watch examples/basic-app/server.ts","lint":"eslint 'src/**/*.ts'","build":"tsc","format":"prettier --write 'src/**/*.ts'","prepare":"husky","lint:fix":"eslint 'src/**/*.ts' --fix","format:check":"prettier --check 'src/**/*.ts'","prepublishOnly":"npm run build"},"_npmUser":{"name":"samstreet","email":"samstreet.dev@gmail.com"},"repository":{"url":"git+https://github.com/orchestr-sh/orchestr.git","type":"git"},"_npmVersion":"10.9.4","description":"A 1:1 Laravel replica in TypeScript - Brings Laravel's elegant syntax and architecture to Node.js","directories":{},"lint-staged":{"*.ts":["eslint --fix","prettier --write"]},"_nodeVersion":"22.21.1","dependencies":{"drizzle-orm":">=0.30.0","reflect-metadata":"^0.2.2"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","husky":"^9.1.7","eslint":"^9.39.2","prettier":"^3.8.1","@eslint/js":"^10.0.1","typescript":"^5.7.3","@types/node":"^22.10.5","lint-staged":"^16.2.7","typescript-eslint":"^8.55.0","@types/better-sqlite3":"^7.6.9","eslint-config-prettier":"^10.1.8","eslint-plugin-prettier":"^5.5.5","@typescript-eslint/parser":"^8.55.0","@typescript-eslint/eslint-plugin":"^8.55.0"},"peerDependencies":{"typescript":">=5.0.0","drizzle-orm":">=0.30.0"},"optionalDependencies":{"mysql2":"^3.9.0","postgres":"^3.4.3","better-sqlite3":"^9.4.0"},"_npmOperationalInternal":{"tmp":"tmp/orchestr_1.9.1_1771256669276_0.6779615240385546","host":"s3://npm-registry-packages-npm-production"}},"1.9.2":{"name":"@orchestr-sh/orchestr","version":"1.9.2","keywords":["laravel","framework","typescript","nodejs","mvc","ioc","dependency-injection","routing","middleware","service-container","eloquent","backend","web-framework"],"author":{"name":"Sam Street","email":"samstreet.dev@gmail.com"},"license":"MIT","_id":"@orchestr-sh/orchestr@1.9.2","maintainers":[{"name":"samstreet","email":"samstreet.dev@gmail.com"}],"homepage":"https://github.com/orchestr-sh/orchestr#readme","bugs":{"url":"https://github.com/orchestr-sh/orchestr/issues"},"bin":{"orchestr":"dist/Console/orchestr.js"},"dist":{"shasum":"d7ea1cc7385cbe647d34d381a524aa2085be01e0","tarball":"https://registry.npmjs.org/@orchestr-sh/orchestr/-/orchestr-1.9.2.tgz","fileCount":799,"integrity":"sha512-CnBmhvZ9JuJFRY0M5XFcerUNBUvRzWlTZn4oRZ6CBztw28rLJoGB+XFTZbR0Q3oKuRSCT3jxtlgG//dpluxy/w==","signatures":[{"sig":"MEQCIESoolM6qkHo9hl60aipFaJlTtiLYrYHqn+l1hbwPKCvAiA+G1UqngSxoLjdqeN3gGgpskyVltBOx1LuHQGcBdoHyw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1706164},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./Events":{"types":"./dist/Events/index.d.ts","import":"./dist/Events/index.js","require":"./dist/Events/index.js"},"./Facades":{"types":"./dist/Facades/index.d.ts","import":"./dist/Facades/index.js","require":"./dist/Facades/index.js"}},"gitHead":"4d4359e3b10ae5a0d205492edfcade7a4883824f","scripts":{"dev":"tsx watch examples/basic-app/server.ts","lint":"eslint 'src/**/*.ts'","build":"tsc","format":"prettier --write 'src/**/*.ts'","prepare":"husky","lint:fix":"eslint 'src/**/*.ts' --fix","format:check":"prettier --check 'src/**/*.ts'","prepublishOnly":"npm run build"},"_npmUser":{"name":"samstreet","email":"samstreet.dev@gmail.com"},"repository":{"url":"git+https://github.com/orchestr-sh/orchestr.git","type":"git"},"_npmVersion":"10.9.4","description":"A 1:1 Laravel replica in TypeScript - Brings Laravel's elegant syntax and architecture to Node.js","directories":{},"lint-staged":{"*.ts":["eslint --fix","prettier --write"]},"_nodeVersion":"22.21.1","dependencies":{"drizzle-orm":">=0.30.0","reflect-metadata":"^0.2.2"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","husky":"^9.1.7","eslint":"^9.39.2","prettier":"^3.8.1","@eslint/js":"^10.0.1","typescript":"^5.7.3","@types/node":"^22.10.5","lint-staged":"^16.2.7","typescript-eslint":"^8.55.0","@types/better-sqlite3":"^7.6.9","eslint-config-prettier":"^10.1.8","eslint-plugin-prettier":"^5.5.5","@typescript-eslint/parser":"^8.55.0","@typescript-eslint/eslint-plugin":"^8.55.0"},"peerDependencies":{"typescript":">=5.0.0","drizzle-orm":">=0.30.0"},"optionalDependencies":{"mysql2":"^3.9.0","postgres":"^3.4.3","better-sqlite3":"^9.4.0"},"_npmOperationalInternal":{"tmp":"tmp/orchestr_1.9.2_1771431681027_0.32158532703753084","host":"s3://npm-registry-packages-npm-production"}},"1.9.3":{"name":"@orchestr-sh/orchestr","version":"1.9.3","keywords":["laravel","framework","typescript","nodejs","mvc","ioc","dependency-injection","routing","middleware","service-container","eloquent","backend","web-framework"],"author":{"name":"Sam Street","email":"samstreet.dev@gmail.com"},"license":"MIT","_id":"@orchestr-sh/orchestr@1.9.3","maintainers":[{"name":"samstreet","email":"samstreet.dev@gmail.com"}],"homepage":"https://github.com/orchestr-sh/orchestr#readme","bugs":{"url":"https://github.com/orchestr-sh/orchestr/issues"},"bin":{"orchestr":"dist/Console/orchestr.js"},"dist":{"shasum":"6188cc068978160cdd5855470d18b71327623d0d","tarball":"https://registry.npmjs.org/@orchestr-sh/orchestr/-/orchestr-1.9.3.tgz","fileCount":799,"integrity":"sha512-Emf2paToXflmvQF9RBvsOQTe9GKqL7ZKHbPhpiwmDd7zlyQiYlw2Wo7blErr9S6SZrHDpqWktc4x0wufUiUs4g==","signatures":[{"sig":"MEYCIQCygtvN8D9g90tDR0yOM3vN7017xv6XD2VLRsyDpSxNKwIhAKlrRQ9AzFaQB1TDnDsy1ffQtHwgZIvIHz8axZFzLjvi","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1706327},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./Events":{"types":"./dist/Events/index.d.ts","import":"./dist/Events/index.js","require":"./dist/Events/index.js"},"./Facades":{"types":"./dist/Facades/index.d.ts","import":"./dist/Facades/index.js","require":"./dist/Facades/index.js"}},"gitHead":"cdd831ead29f066193a6c02ee672d538b7749a78","scripts":{"dev":"tsx watch examples/basic-app/server.ts","lint":"eslint 'src/**/*.ts'","test":"vitest run","build":"tsc","format":"prettier --write 'src/**/*.ts'","prepare":"husky","lint:fix":"eslint 'src/**/*.ts' --fix","test:watch":"vitest","format:check":"prettier --check 'src/**/*.ts'","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"samstreet","email":"samstreet.dev@gmail.com"},"repository":{"url":"git+https://github.com/orchestr-sh/orchestr.git","type":"git"},"_npmVersion":"10.9.4","description":"A 1:1 Laravel replica in TypeScript - Brings Laravel's elegant syntax and architecture to Node.js","directories":{},"lint-staged":{"*.ts":["eslint --fix","prettier --write"]},"_nodeVersion":"22.21.1","dependencies":{"drizzle-orm":">=0.30.0","reflect-metadata":"^0.2.2"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","husky":"^9.1.7","eslint":"^9.39.2","vitest":"^4.0.18","prettier":"^3.8.1","@eslint/js":"^10.0.1","typescript":"^5.7.3","@types/node":"^22.10.5","lint-staged":"^16.2.7","typescript-eslint":"^8.55.0","@vitest/coverage-v8":"^4.0.18","@types/better-sqlite3":"^7.6.9","eslint-config-prettier":"^10.1.8","eslint-plugin-prettier":"^5.5.5","@typescript-eslint/parser":"^8.55.0","@typescript-eslint/eslint-plugin":"^8.55.0"},"peerDependencies":{"typescript":">=5.0.0","drizzle-orm":">=0.30.0"},"optionalDependencies":{"mysql2":"^3.9.0","postgres":"^3.4.3","better-sqlite3":"^9.4.0"},"_npmOperationalInternal":{"tmp":"tmp/orchestr_1.9.3_1771523690332_0.8900634698597587","host":"s3://npm-registry-packages-npm-production"}},"1.9.4":{"name":"@orchestr-sh/orchestr","version":"1.9.4","keywords":["laravel","framework","typescript","nodejs","mvc","ioc","dependency-injection","routing","middleware","service-container","eloquent","backend","web-framework"],"author":{"name":"Sam Street","email":"samstreet.dev@gmail.com"},"license":"MIT","_id":"@orchestr-sh/orchestr@1.9.4","maintainers":[{"name":"samstreet","email":"samstreet.dev@gmail.com"}],"homepage":"https://github.com/orchestr-sh/orchestr#readme","bugs":{"url":"https://github.com/orchestr-sh/orchestr/issues"},"bin":{"orchestr":"dist/Console/orchestr.js"},"dist":{"shasum":"6c6647c166cacf55125cd408842d9eae13691ce1","tarball":"https://registry.npmjs.org/@orchestr-sh/orchestr/-/orchestr-1.9.4.tgz","fileCount":799,"integrity":"sha512-9FGP2B6dcO03kFapt7XwcCIjegOO7B6FLPVEf809In5qLHrf36GAFBPsVft2hwkekXIMu7jJ2NyaNnLjgYUQfA==","signatures":[{"sig":"MEQCIAj448w7YzKC4HoxdeEG5/dhezYMtNKnhuRDlbTbgsmxAiAt2kIpfwUWH7XwMHR7W7MhvXjLrIy31aX8fFkxliWD0A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1708950},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./Events":{"types":"./dist/Events/index.d.ts","import":"./dist/Events/index.js","require":"./dist/Events/index.js"},"./Facades":{"types":"./dist/Facades/index.d.ts","import":"./dist/Facades/index.js","require":"./dist/Facades/index.js"}},"gitHead":"255eea1bd212dc57c2e910f9efe3499fee98b503","scripts":{"dev":"tsx watch examples/basic-app/server.ts","lint":"eslint 'src/**/*.ts'","test":"vitest run","build":"tsc","format":"prettier --write 'src/**/*.ts'","prepare":"husky","lint:fix":"eslint 'src/**/*.ts' --fix","test:watch":"vitest","format:check":"prettier --check 'src/**/*.ts'","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"samstreet","email":"samstreet.dev@gmail.com"},"repository":{"url":"git+https://github.com/orchestr-sh/orchestr.git","type":"git"},"_npmVersion":"10.9.4","description":"A 1:1 Laravel replica in TypeScript - Brings Laravel's elegant syntax and architecture to Node.js","directories":{},"lint-staged":{"*.ts":["eslint --fix","prettier --write"]},"_nodeVersion":"22.21.1","dependencies":{"drizzle-orm":">=0.30.0","reflect-metadata":"^0.2.2"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","husky":"^9.1.7","eslint":"^9.39.2","vitest":"^4.0.18","prettier":"^3.8.1","@eslint/js":"^10.0.1","typescript":"^5.7.3","@types/node":"^22.10.5","lint-staged":"^16.2.7","typescript-eslint":"^8.55.0","@vitest/coverage-v8":"^4.0.18","@types/better-sqlite3":"^7.6.9","eslint-config-prettier":"^10.1.8","eslint-plugin-prettier":"^5.5.5","@typescript-eslint/parser":"^8.55.0","@typescript-eslint/eslint-plugin":"^8.55.0"},"peerDependencies":{"typescript":">=5.0.0","drizzle-orm":">=0.30.0"},"optionalDependencies":{"mysql2":"^3.9.0","postgres":"^3.4.3","better-sqlite3":"^9.4.0"},"_npmOperationalInternal":{"tmp":"tmp/orchestr_1.9.4_1771603665256_0.7340611611987864","host":"s3://npm-registry-packages-npm-production"}},"1.9.6":{"name":"@orchestr-sh/orchestr","version":"1.9.6","keywords":["laravel","framework","typescript","nodejs","mvc","ioc","dependency-injection","routing","middleware","service-container","eloquent","backend","web-framework"],"author":{"name":"Sam Street","email":"samstreet.dev@gmail.com"},"license":"MIT","_id":"@orchestr-sh/orchestr@1.9.6","maintainers":[{"name":"samstreet","email":"samstreet.dev@gmail.com"}],"homepage":"https://github.com/orchestr-sh/orchestr#readme","bugs":{"url":"https://github.com/orchestr-sh/orchestr/issues"},"bin":{"orchestr":"dist/Console/orchestr.js"},"dist":{"shasum":"b6526e7e952fd8cdbd7b7c1748b28e0cb6351b16","tarball":"https://registry.npmjs.org/@orchestr-sh/orchestr/-/orchestr-1.9.6.tgz","fileCount":803,"integrity":"sha512-cpL3yJpgcC+2/rn1wogoKJfS891qrHyQAcaTL0Tr+0piTZrsxbxp5LhMSO543j6Vpk/HHrLhfezAxgeRUNQFww==","signatures":[{"sig":"MEYCIQCw3sRSjPa9O6B03YiqoCVpJa26O/JVPi9o8Sj7JKb+ewIhAORmYHTugs5h7nlBQ3rDz3HDBtPjzxxqE5+6ho2rrn6j","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1722740},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=22.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./Events":{"types":"./dist/Events/index.d.ts","import":"./dist/Events/index.js","require":"./dist/Events/index.js"},"./Facades":{"types":"./dist/Facades/index.d.ts","import":"./dist/Facades/index.js","require":"./dist/Facades/index.js"}},"gitHead":"6035660b9fffb274ec2423effee8cfc8d7680f20","scripts":{"dev":"tsx watch examples/basic-app/server.ts","lint":"oxlint 'src/**/*.ts' --type-aware --fix && prettier --write 'src/**/*.ts'","test":"vitest run","build":"tsc && tsc-alias","format":"prettier --write 'src/**/*.ts'","prepare":"husky","test:lint":"oxlint 'src/**/*.ts' --type-aware && prettier --check 'src/**/*.ts'","test:types":"oxlint 'src/**/*.ts' --type-aware --type-check","test:watch":"vitest","format:check":"prettier --check 'src/**/*.ts'","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"samstreet","email":"samstreet.dev@gmail.com"},"repository":{"url":"git+https://github.com/orchestr-sh/orchestr.git","type":"git"},"_npmVersion":"10.9.4","description":"A 1:1 Laravel replica in TypeScript - Brings Laravel's elegant syntax and architecture to Node.js","directories":{},"lint-staged":{"*.ts":["oxlint --type-aware --fix","prettier --write"]},"_nodeVersion":"22.21.1","dependencies":{"drizzle-orm":">=0.30.0","reflect-metadata":"^0.2.2"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","husky":"^9.1.7","oxlint":"^1.49.0","vitest":"^4.0.18","prettier":"^3.8.1","tsc-alias":"^1.8.16","typescript":"^5.7.3","@types/node":"^22.10.5","lint-staged":"^16.2.7","oxlint-tsgolint":"^0.14.2","@vitest/coverage-v8":"^4.0.18","@types/better-sqlite3":"^7.6.9"},"peerDependencies":{"typescript":">=5.0.0","drizzle-orm":">=0.30.0"},"optionalDependencies":{"mysql2":"^3.9.0","postgres":"^3.4.3","better-sqlite3":"^9.4.0"},"_npmOperationalInternal":{"tmp":"tmp/orchestr_1.9.6_1772099530589_0.7777266940273091","host":"s3://npm-registry-packages-npm-production"}},"1.9.7":{"name":"@orchestr-sh/orchestr","version":"1.9.7","keywords":["laravel","framework","typescript","nodejs","mvc","ioc","dependency-injection","routing","middleware","service-container","eloquent","backend","web-framework"],"author":{"name":"Sam Street","email":"samstreet.dev@gmail.com"},"license":"MIT","_id":"@orchestr-sh/orchestr@1.9.7","maintainers":[{"name":"samstreet","email":"samstreet.dev@gmail.com"}],"homepage":"https://github.com/orchestr-sh/orchestr#readme","bugs":{"url":"https://github.com/orchestr-sh/orchestr/issues"},"bin":{"orchestr":"dist/Console/orchestr.js"},"dist":{"shasum":"d5af47d26fa7637bf67bc2e201ef1b0592eced09","tarball":"https://registry.npmjs.org/@orchestr-sh/orchestr/-/orchestr-1.9.7.tgz","fileCount":867,"integrity":"sha512-MlQQ/kF98c5kFfCDaCxlfxsNBNOh5tNfHlwgcSLYI0oVm+xzJuycjYVbXDcSApDPWn3GBeV1TWY2v5RTI29EkA==","signatures":[{"sig":"MEYCIQCjEhFeqV5NtzO7BTnkArgaUT8uhjaPhOKhgjmiv9slggIhAMjsbbo2odJfTixgZjTheRLC6N5nOIccVfIB9+B/xlVK","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1852550},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=22.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./Events":{"types":"./dist/Events/index.d.ts","import":"./dist/Events/index.js","require":"./dist/Events/index.js"},"./Facades":{"types":"./dist/Facades/index.d.ts","import":"./dist/Facades/index.js","require":"./dist/Facades/index.js"}},"gitHead":"2b3ced011a20707274fd90d6fc479016e83a73dd","scripts":{"dev":"tsx watch examples/basic-app/server.ts","lint":"oxlint 'src/**/*.ts' --type-aware --fix && prettier --write 'src/**/*.ts'","test":"vitest run","build":"tsc && tsc-alias","format":"prettier --write 'src/**/*.ts'","prepare":"husky","test:lint":"oxlint 'src/**/*.ts' --type-aware && prettier --check 'src/**/*.ts'","test:types":"oxlint 'src/**/*.ts' --type-aware --type-check","test:watch":"vitest","format:check":"prettier --check 'src/**/*.ts'","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"samstreet","email":"samstreet.dev@gmail.com"},"repository":{"url":"git+https://github.com/orchestr-sh/orchestr.git","type":"git"},"_npmVersion":"10.9.4","description":"A 1:1 Laravel replica in TypeScript - Brings Laravel's elegant syntax and architecture to Node.js","directories":{},"lint-staged":{"*.ts":["oxlint --type-aware --fix","prettier --write"]},"_nodeVersion":"22.21.1","dependencies":{"drizzle-orm":">=0.30.0","reflect-metadata":"^0.2.2"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","husky":"^9.1.7","oxlint":"^1.49.0","vitest":"^4.0.18","prettier":"^3.8.1","tsc-alias":"^1.8.16","typescript":"^5.7.3","@types/node":"^22.10.5","lint-staged":"^16.2.7","oxlint-tsgolint":"^0.14.2","@vitest/coverage-v8":"^4.0.18","@types/better-sqlite3":"^7.6.9"},"peerDependencies":{"typescript":">=5.0.0","drizzle-orm":">=0.30.0"},"optionalDependencies":{"mysql2":"^3.9.0","postgres":"^3.4.3","better-sqlite3":"^9.4.0"},"_npmOperationalInternal":{"tmp":"tmp/orchestr_1.9.7_1772637237126_0.16822649934000622","host":"s3://npm-registry-packages-npm-production"}},"1.9.8":{"name":"@orchestr-sh/orchestr","version":"1.9.8","keywords":["laravel","framework","typescript","nodejs","mvc","ioc","dependency-injection","routing","middleware","service-container","eloquent","backend","web-framework"],"author":{"name":"Sam Street","email":"samstreet.dev@gmail.com"},"license":"MIT","_id":"@orchestr-sh/orchestr@1.9.8","maintainers":[{"name":"samstreet","email":"samstreet.dev@gmail.com"}],"homepage":"https://github.com/orchestr-sh/orchestr#readme","bugs":{"url":"https://github.com/orchestr-sh/orchestr/issues"},"bin":{"orchestr":"dist/Console/orchestr.js"},"dist":{"shasum":"9039dd82822133e83c98f69cfebd7252b1ac5164","tarball":"https://registry.npmjs.org/@orchestr-sh/orchestr/-/orchestr-1.9.8.tgz","fileCount":867,"integrity":"sha512-bQZblqdZt2MkjvBUjsB40HYozK0FopACEnQCz7E5ovOxUgK8SwNrAYT780519PxClG0+sW00e0UTEu3YK4ZjaA==","signatures":[{"sig":"MEUCIF/eWM17cdwirYni18io/c/ljfYk/pp8XySR3hZ3jQYyAiEAqMIN8NZ6XkdxL9cbE9nLDeb1LMt0mEmpEYmU6HoPePo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1852576},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=22.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./Events":{"types":"./dist/Events/index.d.ts","import":"./dist/Events/index.js","require":"./dist/Events/index.js"},"./Facades":{"types":"./dist/Facades/index.d.ts","import":"./dist/Facades/index.js","require":"./dist/Facades/index.js"}},"gitHead":"13b8632def2feefed97a28f5d5b418ea13a580b8","scripts":{"dev":"tsx watch examples/basic-app/server.ts","lint":"oxlint 'src/**/*.ts' --type-aware --fix && prettier --write 'src/**/*.ts'","test":"vitest run","build":"tsc && tsc-alias","format":"prettier --write 'src/**/*.ts'","prepare":"husky","test:lint":"oxlint 'src/**/*.ts' --type-aware && prettier --check 'src/**/*.ts'","test:types":"oxlint 'src/**/*.ts' --type-aware --type-check","test:watch":"vitest","format:check":"prettier --check 'src/**/*.ts'","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"samstreet","email":"samstreet.dev@gmail.com"},"repository":{"url":"git+https://github.com/orchestr-sh/orchestr.git","type":"git"},"_npmVersion":"10.9.4","description":"A 1:1 Laravel replica in TypeScript - Brings Laravel's elegant syntax and architecture to Node.js","directories":{},"lint-staged":{"*.ts":["oxlint --type-aware --fix","prettier --write"]},"_nodeVersion":"22.21.1","dependencies":{"drizzle-orm":">=0.30.0","reflect-metadata":"^0.2.2"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","husky":"^9.1.7","oxlint":"^1.49.0","vitest":"^4.0.18","prettier":"^3.8.1","tsc-alias":"^1.8.16","typescript":"^5.7.3","@types/node":"^22.10.5","lint-staged":"^16.2.7","oxlint-tsgolint":"^0.14.2","@vitest/coverage-v8":"^4.0.18","@types/better-sqlite3":"^7.6.9"},"peerDependencies":{"typescript":">=5.0.0","drizzle-orm":">=0.30.0"},"optionalDependencies":{"mysql2":"^3.9.0","postgres":"^3.4.3","better-sqlite3":"^9.4.0"},"_npmOperationalInternal":{"tmp":"tmp/orchestr_1.9.8_1772657103028_0.4490225899647575","host":"s3://npm-registry-packages-npm-production"}},"1.9.9":{"name":"@orchestr-sh/orchestr","version":"1.9.9","keywords":["laravel","framework","typescript","nodejs","mvc","ioc","dependency-injection","routing","middleware","service-container","eloquent","backend","web-framework"],"author":{"name":"Sam Street","email":"samstreet.dev@gmail.com"},"license":"MIT","_id":"@orchestr-sh/orchestr@1.9.9","maintainers":[{"name":"samstreet","email":"samstreet.dev@gmail.com"}],"homepage":"https://github.com/orchestr-sh/orchestr#readme","bugs":{"url":"https://github.com/orchestr-sh/orchestr/issues"},"bin":{"orchestr":"dist/Console/orchestr.js"},"dist":{"shasum":"742bc6e3fa54a9708584e930edfa0d873308e99e","tarball":"https://registry.npmjs.org/@orchestr-sh/orchestr/-/orchestr-1.9.9.tgz","fileCount":867,"integrity":"sha512-cTZLmCqP51DgVmOzBtqH2SFcCTjQ9pZNYyLmIJ0p909TQ4OTsHdFcWOfF8xsNa4MYliS5Ey4H7Ns73YTPbZ5Vg==","signatures":[{"sig":"MEQCIHPY77gmHh1UXPSvBrGLhoS4rOCja0mH2ITofcdg+AsFAiARDY7PWe2FAmiHMb4xC1ZSmit4sr662uZqfvLvHKPZsQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1852616},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=22.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./Events":{"types":"./dist/Events/index.d.ts","import":"./dist/Events/index.js","require":"./dist/Events/index.js"},"./Facades":{"types":"./dist/Facades/index.d.ts","import":"./dist/Facades/index.js","require":"./dist/Facades/index.js"}},"gitHead":"c67b3c8341cc3ee30606a7fd6c7686920ed826b1","scripts":{"dev":"tsx watch examples/basic-app/server.ts","lint":"oxlint 'src/**/*.ts' --type-aware --fix && prettier --write 'src/**/*.ts'","test":"vitest run","build":"tsc && tsc-alias","format":"prettier --write 'src/**/*.ts'","prepare":"husky","test:lint":"oxlint 'src/**/*.ts' --type-aware && prettier --check 'src/**/*.ts'","test:types":"oxlint 'src/**/*.ts' --type-aware --type-check","test:watch":"vitest","format:check":"prettier --check 'src/**/*.ts'","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"samstreet","email":"samstreet.dev@gmail.com"},"repository":{"url":"git+https://github.com/orchestr-sh/orchestr.git","type":"git"},"_npmVersion":"10.9.4","description":"A 1:1 Laravel replica in TypeScript - Brings Laravel's elegant syntax and architecture to Node.js","directories":{},"lint-staged":{"*.ts":["oxlint --type-aware --fix","prettier --write"]},"_nodeVersion":"22.21.1","dependencies":{"drizzle-orm":">=0.30.0","reflect-metadata":"^0.2.2"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","husky":"^9.1.7","oxlint":"^1.49.0","vitest":"^4.0.18","prettier":"^3.8.1","tsc-alias":"^1.8.16","typescript":"^5.7.3","@types/node":"^22.10.5","lint-staged":"^16.2.7","oxlint-tsgolint":"^0.14.2","@vitest/coverage-v8":"^4.0.18","@types/better-sqlite3":"^7.6.9"},"peerDependencies":{"typescript":">=5.0.0","drizzle-orm":">=0.30.0"},"optionalDependencies":{"mysql2":"^3.9.0","postgres":"^3.4.3","better-sqlite3":"^9.4.0"},"_npmOperationalInternal":{"tmp":"tmp/orchestr_1.9.9_1772657943288_0.9468801217246945","host":"s3://npm-registry-packages-npm-production"}},"1.9.10":{"name":"@orchestr-sh/orchestr","version":"1.9.10","keywords":["laravel","framework","typescript","nodejs","mvc","ioc","dependency-injection","routing","middleware","service-container","eloquent","backend","web-framework"],"author":{"name":"Sam Street","email":"samstreet.dev@gmail.com"},"license":"MIT","_id":"@orchestr-sh/orchestr@1.9.10","maintainers":[{"name":"samstreet","email":"samstreet.dev@gmail.com"}],"homepage":"https://github.com/orchestr-sh/orchestr#readme","bugs":{"url":"https://github.com/orchestr-sh/orchestr/issues"},"bin":{"orchestr":"dist/Console/orchestr.js"},"dist":{"shasum":"ff272d76f1c90de26200f9e9f442fde8ee9af5dd","tarball":"https://registry.npmjs.org/@orchestr-sh/orchestr/-/orchestr-1.9.10.tgz","fileCount":867,"integrity":"sha512-5xsws7199rOW3CL62YJ4OnHd26EfYLmE4KnTs7fP6vNmw184Nijo6sJXJDcMQ+cvbJ0aGXpipjLIh4pNMKVaMg==","signatures":[{"sig":"MEUCIAjaHO1KRbENLVHcEMx46YX9GLScGyovnWkYzXNG/stQAiEAs7tG56QKKmmH2Nr0By47zJ2eoCn7LflHx+PfnVm2NjU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1852656},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=22.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./Events":{"types":"./dist/Events/index.d.ts","import":"./dist/Events/index.js","require":"./dist/Events/index.js"},"./Facades":{"types":"./dist/Facades/index.d.ts","import":"./dist/Facades/index.js","require":"./dist/Facades/index.js"}},"gitHead":"6183ebd5b52309c2bdc42e59a97db42ce8adadc3","scripts":{"dev":"tsx watch examples/basic-app/server.ts","lint":"oxlint 'src/**/*.ts' --type-aware --fix && prettier --write 'src/**/*.ts'","test":"vitest run","build":"tsc && tsc-alias","format":"prettier --write 'src/**/*.ts'","prepare":"husky","test:lint":"oxlint 'src/**/*.ts' --type-aware && prettier --check 'src/**/*.ts'","test:types":"oxlint 'src/**/*.ts' --type-aware --type-check","test:watch":"vitest","format:check":"prettier --check 'src/**/*.ts'","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"samstreet","email":"samstreet.dev@gmail.com"},"repository":{"url":"git+https://github.com/orchestr-sh/orchestr.git","type":"git"},"_npmVersion":"10.9.4","description":"A 1:1 Laravel replica in TypeScript - Brings Laravel's elegant syntax and architecture to Node.js","directories":{},"lint-staged":{"*.ts":["oxlint --type-aware --fix","prettier --write"]},"_nodeVersion":"22.21.1","dependencies":{"drizzle-orm":">=0.30.0","reflect-metadata":"^0.2.2"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","husky":"^9.1.7","oxlint":"^1.49.0","vitest":"^4.0.18","prettier":"^3.8.1","tsc-alias":"^1.8.16","typescript":"^5.7.3","@types/node":"^22.10.5","lint-staged":"^16.2.7","oxlint-tsgolint":"^0.14.2","@vitest/coverage-v8":"^4.0.18","@types/better-sqlite3":"^7.6.9"},"peerDependencies":{"typescript":">=5.0.0","drizzle-orm":">=0.30.0"},"optionalDependencies":{"mysql2":"^3.9.0","postgres":"^3.4.3","better-sqlite3":"^9.4.0"},"_npmOperationalInternal":{"tmp":"tmp/orchestr_1.9.10_1772659804356_0.620500248872007","host":"s3://npm-registry-packages-npm-production"}},"1.9.12":{"name":"@orchestr-sh/orchestr","version":"1.9.12","keywords":["laravel","framework","typescript","nodejs","mvc","ioc","dependency-injection","routing","middleware","service-container","eloquent","backend","web-framework"],"author":{"name":"Sam Street","email":"samstreet.dev@gmail.com"},"license":"MIT","_id":"@orchestr-sh/orchestr@1.9.12","maintainers":[{"name":"samstreet","email":"samstreet.dev@gmail.com"}],"homepage":"https://github.com/orchestr-sh/orchestr#readme","bugs":{"url":"https://github.com/orchestr-sh/orchestr/issues"},"bin":{"orchestr":"dist/Console/orchestr.js"},"dist":{"shasum":"deaaaea973cde62bad7d15cd53e387615b13e3bb","tarball":"https://registry.npmjs.org/@orchestr-sh/orchestr/-/orchestr-1.9.12.tgz","fileCount":867,"integrity":"sha512-1IcNTboWztKXryVDVVExQJdPkfym+Z2tC5n1ttKhqnFU6tP1l0KfOsxWme+ZL46mUW+IfdG0OHwvUj29ZlfiTQ==","signatures":[{"sig":"MEUCICPsJa0G3lLyg3X+TtCQ4Gv2oVgvXxwkA1Ru4lEu475KAiEAjoJFkBDZdVdLr5X56bQgcYVKGtEIRqtBKtYdCNPaI6o=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1852656},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=22.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./Events":{"types":"./dist/Events/index.d.ts","import":"./dist/Events/index.js","require":"./dist/Events/index.js"},"./Facades":{"types":"./dist/Facades/index.d.ts","import":"./dist/Facades/index.js","require":"./dist/Facades/index.js"}},"gitHead":"14efa855eaa4c952bbcdb240fdf079bae65df48c","scripts":{"dev":"tsx watch examples/basic-app/server.ts","lint":"oxlint 'src/**/*.ts' --type-aware --fix && prettier --write 'src/**/*.ts'","test":"vitest run","build":"tsc && tsc-alias","format":"prettier --write 'src/**/*.ts'","prepare":"husky","test:lint":"oxlint 'src/**/*.ts' --type-aware && prettier --check 'src/**/*.ts'","test:types":"oxlint 'src/**/*.ts' --type-aware --type-check","test:watch":"vitest","format:check":"prettier --check 'src/**/*.ts'","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"samstreet","email":"samstreet.dev@gmail.com"},"repository":{"url":"git+https://github.com/orchestr-sh/orchestr.git","type":"git"},"_npmVersion":"11.9.0","description":"A 1:1 Laravel replica in TypeScript - Brings Laravel's elegant syntax and architecture to Node.js","directories":{},"lint-staged":{"*.ts":["oxlint --type-aware --fix","prettier --write"]},"_nodeVersion":"24.14.0","dependencies":{"drizzle-orm":">=0.30.0","reflect-metadata":"^0.2.2"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","husky":"^9.1.7","oxlint":"^1.49.0","vitest":"^4.0.18","prettier":"^3.8.1","tsc-alias":"^1.8.16","typescript":"^5.7.3","@types/node":"^22.10.5","lint-staged":"^16.2.7","oxlint-tsgolint":"^0.14.2","@vitest/coverage-v8":"^4.0.18","@types/better-sqlite3":"^7.6.9"},"peerDependencies":{"typescript":">=5.0.0","drizzle-orm":">=0.30.0"},"optionalDependencies":{"mysql2":"^3.9.0","postgres":"^3.4.3","better-sqlite3":"^9.4.0"},"_npmOperationalInternal":{"tmp":"tmp/orchestr_1.9.12_1772997399280_0.13671995827799766","host":"s3://npm-registry-packages-npm-production"}},"1.9.13":{"name":"@orchestr-sh/orchestr","version":"1.9.13","keywords":["laravel","framework","typescript","nodejs","mvc","ioc","dependency-injection","routing","middleware","service-container","eloquent","backend","web-framework"],"author":{"name":"Sam Street","email":"samstreet.dev@gmail.com"},"license":"MIT","_id":"@orchestr-sh/orchestr@1.9.13","maintainers":[{"name":"samstreet","email":"samstreet.dev@gmail.com"}],"homepage":"https://github.com/orchestr-sh/orchestr#readme","bugs":{"url":"https://github.com/orchestr-sh/orchestr/issues"},"bin":{"orchestr":"dist/Console/orchestr.js"},"dist":{"shasum":"5d15712478fa0d5ae7d0100173759fe0d9424fbf","tarball":"https://registry.npmjs.org/@orchestr-sh/orchestr/-/orchestr-1.9.13.tgz","fileCount":867,"integrity":"sha512-0tNsa+yX3xYxGYl3SOYJKmam1kljeh1kNvKb6CYt31Oc3MAObFq/ycT5mYe7PS+K+B6lEu401kmvvwaCaojM3Q==","signatures":[{"sig":"MEQCIBdl9/zmbz2ITAq9aCcB2hrp29/1E1+fG9gY35EuRMCeAiBcJhswH8STVKKm+m5q0Q1jRti5qUPbgRuLeD2R8TYz2w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1860021},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=22.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./Events":{"types":"./dist/Events/index.d.ts","import":"./dist/Events/index.js","require":"./dist/Events/index.js"},"./Facades":{"types":"./dist/Facades/index.d.ts","import":"./dist/Facades/index.js","require":"./dist/Facades/index.js"}},"gitHead":"1f1f8acd944f3f4fe3d9aec6faf22f13649b019c","scripts":{"dev":"tsx watch examples/basic-app/server.ts","lint":"oxlint 'src/**/*.ts' --type-aware --fix && prettier --write 'src/**/*.ts'","test":"vitest run","build":"tsc && tsc-alias","format":"prettier --write 'src/**/*.ts'","prepare":"husky","test:lint":"oxlint 'src/**/*.ts' --type-aware && prettier --check 'src/**/*.ts'","test:types":"oxlint 'src/**/*.ts' --type-aware --type-check","test:watch":"vitest","format:check":"prettier --check 'src/**/*.ts'","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"samstreet","email":"samstreet.dev@gmail.com"},"repository":{"url":"git+https://github.com/orchestr-sh/orchestr.git","type":"git"},"_npmVersion":"10.9.4","description":"A 1:1 Laravel replica in TypeScript - Brings Laravel's elegant syntax and architecture to Node.js","directories":{},"lint-staged":{"*.ts":["oxlint --type-aware --fix","prettier --write"]},"_nodeVersion":"22.21.1","dependencies":{"drizzle-orm":">=0.30.0","reflect-metadata":"^0.2.2"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","husky":"^9.1.7","oxlint":"^1.51.0","vitest":"^4.0.18","prettier":"^3.8.1","tsc-alias":"^1.8.16","typescript":"^5.7.3","@types/node":"^22.10.5","lint-staged":"^16.2.7","oxlint-tsgolint":"^0.16.0","@vitest/coverage-v8":"^4.0.18","@types/better-sqlite3":"^7.6.9"},"peerDependencies":{"typescript":">=5.0.0","drizzle-orm":">=0.30.0"},"optionalDependencies":{"mysql2":"^3.9.0","postgres":"^3.4.3","better-sqlite3":"^9.4.0"},"_npmOperationalInternal":{"tmp":"tmp/orchestr_1.9.13_1773000301561_0.5476074201257237","host":"s3://npm-registry-packages-npm-production"}},"1.9.15":{"name":"@orchestr-sh/orchestr","version":"1.9.15","keywords":["laravel","framework","typescript","nodejs","mvc","ioc","dependency-injection","routing","middleware","service-container","eloquent","backend","web-framework"],"author":{"name":"Sam Street","email":"samstreet.dev@gmail.com"},"license":"MIT","_id":"@orchestr-sh/orchestr@1.9.15","maintainers":[{"name":"samstreet","email":"samstreet.dev@gmail.com"}],"homepage":"https://github.com/orchestr-sh/orchestr#readme","bugs":{"url":"https://github.com/orchestr-sh/orchestr/issues"},"bin":{"orchestr":"dist/Console/orchestr.js"},"dist":{"shasum":"adab7e8fd944511c527642805b3f70e0b223dfed","tarball":"https://registry.npmjs.org/@orchestr-sh/orchestr/-/orchestr-1.9.15.tgz","fileCount":867,"integrity":"sha512-1RBrMETFUXiNyk9GgZDnxP25yAibVqcJ4eSluKilbcVooKJr6bNyYdi2TjSIpkpYXjIqBw3aXxu+ckzOvubpQQ==","signatures":[{"sig":"MEUCIDE4z+nzCFQZW+vPPbSVIEbo67WtJ1ntAsVZn+80vD5zAiEAmZojMEalHUgbnpdqsPY16lOXLRivn6i4m+c1kmM+l3E=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1862021},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=22.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./Events":{"types":"./dist/Events/index.d.ts","import":"./dist/Events/index.js","require":"./dist/Events/index.js"},"./Facades":{"types":"./dist/Facades/index.d.ts","import":"./dist/Facades/index.js","require":"./dist/Facades/index.js"}},"gitHead":"8be42ea468a351f97f2708f64b5b06e3eba2e77d","scripts":{"dev":"tsx watch examples/basic-app/server.ts","lint":"oxlint 'src/**/*.ts' --type-aware --fix && prettier --write 'src/**/*.ts'","test":"vitest run","build":"tsc && tsc-alias","format":"prettier --write 'src/**/*.ts'","prepare":"husky","test:lint":"oxlint 'src/**/*.ts' --type-aware && prettier --check 'src/**/*.ts'","test:types":"oxlint 'src/**/*.ts' --type-aware --type-check","test:watch":"vitest","format:check":"prettier --check 'src/**/*.ts'","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"samstreet","email":"samstreet.dev@gmail.com"},"repository":{"url":"git+https://github.com/orchestr-sh/orchestr.git","type":"git"},"_npmVersion":"11.9.0","description":"A 1:1 Laravel replica in TypeScript - Brings Laravel's elegant syntax and architecture to Node.js","directories":{},"lint-staged":{"*.ts":["oxlint --type-aware --fix","prettier --write"]},"_nodeVersion":"24.14.0","dependencies":{"drizzle-orm":">=0.30.0","reflect-metadata":"^0.2.2"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","husky":"^9.1.7","oxlint":"^1.51.0","vitest":"^4.0.18","prettier":"^3.8.1","tsc-alias":"^1.8.16","typescript":"^5.7.3","@types/node":"^22.10.5","lint-staged":"^16.2.7","oxlint-tsgolint":"^0.16.0","@vitest/coverage-v8":"^4.0.18","@types/better-sqlite3":"^7.6.9"},"peerDependencies":{"typescript":">=5.0.0","drizzle-orm":">=0.30.0"},"optionalDependencies":{"mysql2":"^3.9.0","postgres":"^3.4.3","better-sqlite3":"^9.4.0"},"_npmOperationalInternal":{"tmp":"tmp/orchestr_1.9.15_1773001589983_0.5127004149540557","host":"s3://npm-registry-packages-npm-production"}},"1.10.0":{"name":"@orchestr-sh/orchestr","version":"1.10.0","keywords":["laravel","framework","typescript","nodejs","mvc","ioc","dependency-injection","routing","middleware","service-container","eloquent","backend","web-framework"],"author":{"name":"Sam Street","email":"samstreet.dev@gmail.com"},"license":"MIT","_id":"@orchestr-sh/orchestr@1.10.0","maintainers":[{"name":"samstreet","email":"samstreet.dev@gmail.com"}],"homepage":"https://github.com/orchestr-sh/orchestr#readme","bugs":{"url":"https://github.com/orchestr-sh/orchestr/issues"},"bin":{"orchestr":"dist/Console/orchestr.js"},"dist":{"shasum":"991d82410f94e6b3d98ef3ffe3801ef9fa259378","tarball":"https://registry.npmjs.org/@orchestr-sh/orchestr/-/orchestr-1.10.0.tgz","fileCount":963,"integrity":"sha512-qZb7EYMdbAJSDxnO46j6J/xVlhObFH9bYt/HS86NMzSKNynfcNRsUGavvap/T+r9phSOYqQvZo9Vr0qYLx5EMA==","signatures":[{"sig":"MEYCIQDpq6v9Py9xEiRlQEWQvY1AvOv3MwsxAWbVgK8/UohTTwIhALQUK9igR7De4LnQhPbkD5y/hqpnndbCFAC1P9V5SyXD","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2007963},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=22.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./Events":{"types":"./dist/Events/index.d.ts","import":"./dist/Events/index.js","require":"./dist/Events/index.js"},"./Facades":{"types":"./dist/Facades/index.d.ts","import":"./dist/Facades/index.js","require":"./dist/Facades/index.js"}},"gitHead":"4303fe347037b1297b88843016ee5f50e105f23d","scripts":{"dev":"tsx watch examples/basic-app/server.ts","lint":"oxlint 'src/**/*.ts' --type-aware --fix && prettier --write 'src/**/*.ts'","test":"vitest run","build":"tsc && tsc-alias","format":"prettier --write 'src/**/*.ts'","prepare":"husky","test:lint":"oxlint 'src/**/*.ts' --type-aware && prettier --check 'src/**/*.ts'","test:types":"oxlint 'src/**/*.ts' --type-aware --type-check","test:watch":"vitest","format:check":"prettier --check 'src/**/*.ts'","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"samstreet","email":"samstreet.dev@gmail.com"},"repository":{"url":"git+https://github.com/orchestr-sh/orchestr.git","type":"git"},"_npmVersion":"11.9.0","description":"A 1:1 Laravel replica in TypeScript - Brings Laravel's elegant syntax and architecture to Node.js","directories":{},"lint-staged":{"*.ts":["oxlint --type-aware --fix","prettier --write"]},"_nodeVersion":"24.14.0","dependencies":{"drizzle-orm":">=0.30.0","reflect-metadata":"^0.2.2"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","husky":"^9.1.7","oxlint":"^1.51.0","vitest":"^4.0.18","prettier":"^3.8.1","tsc-alias":"^1.8.16","typescript":"^5.7.3","@types/node":"^22.10.5","lint-staged":"^16.2.7","oxlint-tsgolint":"^0.16.0","@vitest/coverage-v8":"^4.0.18","@types/better-sqlite3":"^7.6.9"},"peerDependencies":{"typescript":">=5.0.0","drizzle-orm":">=0.30.0"},"optionalDependencies":{"mysql2":"^3.9.0","postgres":"^3.4.3","better-sqlite3":"^9.4.0"},"_npmOperationalInternal":{"tmp":"tmp/orchestr_1.10.0_1773144381479_0.3322853918790234","host":"s3://npm-registry-packages-npm-production"}},"1.11.0":{"name":"@orchestr-sh/orchestr","version":"1.11.0","keywords":["laravel","framework","typescript","nodejs","mvc","ioc","dependency-injection","routing","middleware","service-container","eloquent","backend","web-framework"],"author":{"name":"Sam Street","email":"samstreet.dev@gmail.com"},"license":"MIT","_id":"@orchestr-sh/orchestr@1.11.0","maintainers":[{"name":"samstreet","email":"samstreet.dev@gmail.com"}],"homepage":"https://github.com/orchestr-sh/orchestr#readme","bugs":{"url":"https://github.com/orchestr-sh/orchestr/issues"},"bin":{"orchestr":"dist/Console/orchestr.js"},"dist":{"shasum":"8d352893fb761b7e931cd46f69f4844cc381f6e3","tarball":"https://registry.npmjs.org/@orchestr-sh/orchestr/-/orchestr-1.11.0.tgz","fileCount":1360,"integrity":"sha512-uxxaDK0MF0fFF5raOhHt4FiGG6ZPhQcyxIH/4G5kMm2A3nPXgljBRZhfIzeu+HsoX/aRx5fIkm5mK/UIcfiLKg==","signatures":[{"sig":"MEUCICSd4X4/dX65UgpDBqVn4hgUwdBsRf1IBirxWl9oVWLfAiEA1a3cdFm9AfZCp+E3idR8UpxdVUfxmU+fQEgFiT5G8kk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@orchestr-sh%2forchestr@1.11.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2408165},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=22.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.cjs"},"./Events":{"types":"./dist/Events/index.d.ts","import":"./dist/Events/index.mjs","require":"./dist/Events/index.cjs"},"./Facades":{"types":"./dist/Facades/index.d.ts","import":"./dist/Facades/index.mjs","require":"./dist/Facades/index.cjs"}},"gitHead":"083a235635b33dc0a97dc7b7e61161ee868f316a","release":{"plugins":["@semantic-release/commit-analyzer","@semantic-release/release-notes-generator",["@semantic-release/changelog",{"changelogFile":"CHANGELOG.md"}],"@semantic-release/npm",["@semantic-release/github",{"assets":["dist","docs","package.json","package-lock.json","CODE_OF_CONDUCT.md","CHANGELOG.md","CONTRIBUTING.md","LICENSE","README.md"]}]],"branches":["main"]},"scripts":{"dev":"tsx watch examples/basic-app/server.ts","lint":"oxlint 'src/**/*.ts' --type-aware --fix && oxfmt --write 'src/**/*.ts'","test":"vitest run","build":"tsdown --format esm --format cjs","format":"oxfmt --write 'src/**/*.ts'","prepare":"husky","test:lint":"oxlint 'src/**/*.ts' --type-aware && oxfmt --check 'src/**/*.ts'","test:types":"oxlint 'src/**/*.ts' --type-aware --type-check","test:watch":"vitest","format:check":"oxfmt --check 'src/**/*.ts'","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:25d9bed6-ed03-4d2a-9d29-23756f35f7af"}},"commitlint":{"extends":["@commitlint/config-conventional"]},"repository":{"url":"git+https://github.com/orchestr-sh/orchestr.git","type":"git"},"_npmVersion":"11.12.1","description":"A 1:1 Laravel replica in TypeScript - Brings Laravel's elegant syntax and architecture to Node.js","directories":{},"lint-staged":{"*.ts":["oxlint --type-aware --fix","oxfmt --write"]},"_nodeVersion":"24.14.1","dependencies":{"drizzle-orm":">=0.30.0","reflect-metadata":"^0.2.2"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","husky":"^9.1.7","oxfmt":"^0.43.0","oxlint":"^1.58.0","tsdown":"^0.21.7","vitest":"^4.1.2","typescript":"^6.0.2","@types/node":"^25.5.0","lint-staged":"^16.4.0","@commitlint/cli":"^20.4.4","oxlint-tsgolint":"^0.19.0","@vitest/coverage-v8":"^4.1.2","@types/better-sqlite3":"^7.6.13","@commitlint/config-conventional":"^20.4.4"},"peerDependencies":{"typescript":">=5.0.0","drizzle-orm":">=0.30.0"},"optionalDependencies":{"mysql2":"^3.9.0","postgres":"^3.4.3","better-sqlite3":"^9.4.0"},"_npmOperationalInternal":{"tmp":"tmp/orchestr_1.11.0_1775423526972_0.4068596997452494","host":"s3://npm-registry-packages-npm-production"}},"1.11.1":{"name":"@orchestr-sh/orchestr","version":"1.11.1","keywords":["laravel","framework","typescript","nodejs","mvc","ioc","dependency-injection","routing","middleware","service-container","eloquent","backend","web-framework"],"author":{"name":"Sam Street","email":"samstreet.dev@gmail.com"},"license":"MIT","_id":"@orchestr-sh/orchestr@1.11.1","maintainers":[{"name":"samstreet","email":"samstreet.dev@gmail.com"}],"homepage":"https://github.com/orchestr-sh/orchestr#readme","bugs":{"url":"https://github.com/orchestr-sh/orchestr/issues"},"bin":{"orchestr":"dist/Console/orchestr.mjs"},"dist":{"shasum":"51123635000033f9eb13a9233c0bf42777a9246a","tarball":"https://registry.npmjs.org/@orchestr-sh/orchestr/-/orchestr-1.11.1.tgz","fileCount":1379,"integrity":"sha512-a8QLSzjOnslNuvJbbnG8OWvkHPoN7dYuYSxUAVh3w52g8vwEDWVwEdrdHD70IpTyeI9auEBCnsfHVhc7w1hUww==","signatures":[{"sig":"MEYCIQDcj/wO/MKLASDHnaLmlMkfA71LJJAPUBS3MhWsnPQyxAIhAP8SXzr7xTV2mr4i3t2U4UZZOEpZkY2Z1TzWg96VcjnH","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@orchestr-sh%2forchestr@1.11.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2444241},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=22.14.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.cjs"},"./Events":{"types":"./dist/Events/index.d.ts","import":"./dist/Events/index.mjs","require":"./dist/Events/index.cjs"},"./Facades":{"types":"./dist/Facades/index.d.ts","import":"./dist/Facades/index.mjs","require":"./dist/Facades/index.cjs"}},"gitHead":"59dd1bcedc853c767c108966892f720d734e364a","release":{"plugins":[["@semantic-release/commit-analyzer",{"releaseRules":[{"type":"build","release":"patch"},{"type":"ci","release":"patch"},{"type":"chore","release":"patch"},{"type":"docs","release":"patch"},{"type":"refactor","release":"patch"},{"type":"style","release":"patch"},{"type":"test","release":"patch"}]}],"@semantic-release/release-notes-generator",["@semantic-release/changelog",{"changelogFile":"CHANGELOG.md"}],"@semantic-release/npm",["@semantic-release/git",{"assets":["package.json","package-lock.json","CHANGELOG.md"],"message":"chore(version): release ${nextRelease.version} [skip ci]"}],"@semantic-release/github"],"branches":["main"]},"scripts":{"dev":"tsx watch examples/basic-app/server.ts","lint":"oxlint 'src/**/*.ts' --type-aware --fix && oxfmt --write 'src/**/*.ts'","test":"vitest run","build":"tsdown --format esm --format cjs","format":"oxfmt --write 'src/**/*.ts'","prepare":"husky","test:lint":"oxlint 'src/**/*.ts' --type-aware && oxfmt --check 'src/**/*.ts'","test:types":"oxlint 'src/**/*.ts' --type-aware --type-check","test:watch":"vitest","format:check":"oxfmt --check 'src/**/*.ts'","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:25d9bed6-ed03-4d2a-9d29-23756f35f7af"}},"commitlint":{"extends":["@commitlint/config-conventional"]},"repository":{"url":"git+https://github.com/orchestr-sh/orchestr.git","type":"git"},"_npmVersion":"11.12.1","description":"A 1:1 Laravel replica in TypeScript - Brings Laravel's elegant syntax and architecture to Node.js","directories":{},"lint-staged":{"*.ts":["oxlint --type-aware --fix","oxfmt --write"]},"_nodeVersion":"24.14.1","dependencies":{"drizzle-orm":">=0.30.0","reflect-metadata":"^0.2.2"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","husky":"^9.1.7","oxfmt":"^0.44.0","oxlint":"^1.59.0","tsdown":"^0.21.7","vitest":"^4.1.2","typescript":"^6.0.2","@types/node":"^25.5.0","lint-staged":"^16.4.0","@commitlint/cli":"^20.4.4","oxlint-tsgolint":"^0.20.0","@vitest/coverage-v8":"^4.1.2","@types/better-sqlite3":"^7.6.13","@commitlint/config-conventional":"^20.4.4"},"peerDependencies":{"typescript":">=5.0.0","drizzle-orm":">=0.30.0"},"optionalDependencies":{"mysql2":"^3.9.0","postgres":"^3.4.3","better-sqlite3":"^9.4.0"},"_npmOperationalInternal":{"tmp":"tmp/orchestr_1.11.1_1775564137599_0.12666467713758744","host":"s3://npm-registry-packages-npm-production"}},"1.11.2":{"name":"@orchestr-sh/orchestr","type":"module","version":"1.11.2","description":"A 1:1 Laravel replica in TypeScript - Brings Laravel's elegant syntax and architecture to Node.js","main":"./dist/index.cjs","module":"./dist/index.mjs","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.cjs"},"./Facades":{"types":"./dist/Facades/index.d.ts","import":"./dist/Facades/index.mjs","require":"./dist/Facades/index.cjs"},"./Events":{"types":"./dist/Events/index.d.ts","import":"./dist/Events/index.mjs","require":"./dist/Events/index.cjs"}},"bin":{"orchestr":"dist/Console/orchestr.mjs"},"release":{"branches":["main"],"plugins":[["@semantic-release/commit-analyzer",{"releaseRules":[{"type":"build","release":"patch"},{"type":"ci","release":"patch"},{"type":"chore","release":"patch"},{"type":"docs","release":"patch"},{"type":"refactor","release":"patch"},{"type":"style","release":"patch"},{"type":"test","release":"patch"}]}],"@semantic-release/release-notes-generator",["@semantic-release/changelog",{"changelogFile":"CHANGELOG.md"}],"@semantic-release/npm",["@semantic-release/git",{"assets":["package.json","package-lock.json","CHANGELOG.md"],"message":"chore(version): release ${nextRelease.version} [skip ci]"}],"@semantic-release/github"]},"commitlint":{"extends":["@commitlint/config-conventional"]},"scripts":{"build":"tsdown --format esm --format cjs","prepublishOnly":"npm run build","dev":"tsx watch examples/basic-app/server.ts","prepare":"husky","lint":"oxlint --type-aware --fix src && oxfmt --write src","format":"oxfmt --write src","format:check":"oxfmt --check src","test":"vitest run","test:lint":"oxlint --type-aware src && oxfmt --check src","test:types":"oxlint --type-aware --type-check src","test:watch":"vitest","test:coverage":"vitest run --coverage"},"lint-staged":{"*.ts":["oxlint --type-aware --fix","oxfmt --write"]},"keywords":["laravel","framework","typescript","nodejs","mvc","ioc","dependency-injection","routing","middleware","service-container","eloquent","backend","web-framework"],"author":{"name":"Sam Street","email":"samstreet.dev@gmail.com"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/orchestr-sh/orchestr.git"},"bugs":{"url":"https://github.com/orchestr-sh/orchestr/issues"},"homepage":"https://github.com/orchestr-sh/orchestr#readme","engines":{"node":"^22.18.0 || >=24.0.0"},"dependencies":{"drizzle-orm":">=0.30.0","reflect-metadata":"^0.2.2"},"devDependencies":{"@commitlint/cli":"^20.5.3","@commitlint/config-conventional":"^20.5.3","@types/better-sqlite3":"^7.6.13","@types/node":"^25.6.2","@vitest/coverage-v8":"^4.1.5","husky":"^9.1.7","lint-staged":"^17.0.2","oxfmt":"^0.48.0","oxlint":"^1.63.0","oxlint-tsgolint":"^0.22.1","tsdown":"^0.22.0","tsx":"^4.21.0","typescript":"^6.0.2","vitest":"^4.1.5"},"peerDependencies":{"drizzle-orm":">=0.30.0","typescript":">=5.0.0"},"optionalDependencies":{"better-sqlite3":"^9.4.0","mysql2":"^3.9.0","postgres":"^3.4.3"},"gitHead":"35d64e8ac2af0a450f420bb4c097a3b9295db5fe","_id":"@orchestr-sh/orchestr@1.11.2","_nodeVersion":"24.14.1","_npmVersion":"11.14.0","dist":{"integrity":"sha512-3PtZoiGwWpQ7W5XR3rhpse9K7kT1Oeln8GAPJVpdHiEo2o6pxUuLBEMaz0gPzklpfKXRH2BiaG3NP6hp1JL+Xg==","shasum":"a98d81bf007a58a028089a0250d69d11f9387ffe","tarball":"https://registry.npmjs.org/@orchestr-sh/orchestr/-/orchestr-1.11.2.tgz","fileCount":1379,"unpackedSize":2446766,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@orchestr-sh%2forchestr@1.11.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIEyI6eqkxIHR3mrcEP0z92iEL2LHRU76CGIDTq6uvHitAiEAtct4H0pqEAJob2azuTEOXcPidSlYL/iU/ejI8WDivLU="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:25d9bed6-ed03-4d2a-9d29-23756f35f7af"}},"directories":{},"maintainers":[{"name":"samstreet","email":"samstreet.dev@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/orchestr_1.11.2_1778228888717_0.19288761687442335"},"_hasShrinkwrap":false}},"time":{"created":"2026-01-30T18:28:11.666Z","modified":"2026-05-08T08:28:09.212Z","1.0.1":"2026-01-30T18:28:11.959Z","1.1.0":"2026-02-01T15:58:07.646Z","1.1.1":"2026-02-01T16:13:11.210Z","1.2.0":"2026-02-01T16:47:25.493Z","1.2.1":"2026-02-02T11:25:05.161Z","1.3.0":"2026-02-02T12:49:19.132Z","1.4.0":"2026-02-04T18:33:48.732Z","1.4.2":"2026-02-05T14:03:50.575Z","1.4.3":"2026-02-05T17:46:31.611Z","1.4.4":"2026-02-05T18:02:22.634Z","1.5.0":"2026-02-05T23:16:00.994Z","1.5.1":"2026-02-06T16:38:48.655Z","1.5.2":"2026-02-06T16:58:44.044Z","1.5.3":"2026-02-07T19:39:46.485Z","1.5.4":"2026-02-09T13:38:02.915Z","1.5.5":"2026-02-09T13:46:52.001Z","1.5.6":"2026-02-09T13:54:52.860Z","1.5.7":"2026-02-09T17:09:13.617Z","1.5.8":"2026-02-09T17:18:59.572Z","1.5.9":"2026-02-09T17:31:41.336Z","1.5.10":"2026-02-12T11:39:35.214Z","1.5.11":"2026-02-12T12:29:55.490Z","1.6.0":"2026-02-12T16:50:47.014Z","1.6.1":"2026-02-12T17:14:23.856Z","1.7.0":"2026-02-15T15:01:41.851Z","1.7.1":"2026-02-15T15:42:35.685Z","1.7.2":"2026-02-15T15:49:55.513Z","1.7.3":"2026-02-15T16:15:06.230Z","1.7.4":"2026-02-15T16:32:36.837Z","1.8.0":"2026-02-16T15:20:06.853Z","1.9.1":"2026-02-16T15:44:29.500Z","1.9.2":"2026-02-18T16:21:21.244Z","1.9.3":"2026-02-19T17:54:50.516Z","1.9.4":"2026-02-20T16:07:45.549Z","1.9.6":"2026-02-26T09:52:10.839Z","1.9.7":"2026-03-04T15:13:57.318Z","1.9.8":"2026-03-04T20:45:03.236Z","1.9.9":"2026-03-04T20:59:03.526Z","1.9.10":"2026-03-04T21:30:04.702Z","1.9.12":"2026-03-08T19:16:39.431Z","1.9.13":"2026-03-08T20:05:01.707Z","1.9.15":"2026-03-08T20:26:30.239Z","1.10.0":"2026-03-10T12:06:21.650Z","1.11.0":"2026-04-05T21:12:07.170Z","1.11.1":"2026-04-07T12:15:37.788Z","1.11.2":"2026-05-08T08:28:08.955Z"},"bugs":{"url":"https://github.com/orchestr-sh/orchestr/issues"},"author":{"name":"Sam Street","email":"samstreet.dev@gmail.com"},"license":"MIT","homepage":"https://github.com/orchestr-sh/orchestr#readme","keywords":["laravel","framework","typescript","nodejs","mvc","ioc","dependency-injection","routing","middleware","service-container","eloquent","backend","web-framework"],"repository":{"type":"git","url":"git+https://github.com/orchestr-sh/orchestr.git"},"description":"A 1:1 Laravel replica in TypeScript - Brings Laravel's elegant syntax and architecture to Node.js","maintainers":[{"name":"samstreet","email":"samstreet.dev@gmail.com"}],"readme":"# Orchestr\n\nA Laravel-inspired ORM and framework for TypeScript. Write elegant backend applications with ActiveRecord models (called Ensembles), relationships, query building, and more.\n\n## Installation\n\n```bash\nnpm install @orchestr-sh/orchestr reflect-metadata drizzle-orm\nnpm install better-sqlite3 # or your preferred database driver\n```\n\n### CLI Setup\n\nAfter installation, the `orchestr` command will be available in your project via `npx`:\n\n```bash\n# Run orchestr commands\nnpx orchestr make:event UserRegistered\nnpx orchestr make:controller UserController\nnpx orchestr make:migration create_users_table\nnpx orchestr migrate\n\n# Or add to package.json scripts for convenience\n{\n  \"scripts\": {\n    \"orchestr\": \"orchestr\"\n  }\n}\n\n# Then run with npm\nnpm run orchestr make:event UserRegistered\n```\n\nFor global installation (optional):\n\n```bash\nnpm install -g @orchestr-sh/orchestr\n\n# Now use orchestr directly\norchestr make:event UserRegistered\norchestr migrate\n```\n\n## Quick Start\n\n```typescript\nimport 'reflect-metadata';\nimport { Application, Kernel, ConfigServiceProvider, Route } from '@orchestr-sh/orchestr';\n\nconst app = new Application(process.cwd());\n\n// Configure database\napp.register(new ConfigServiceProvider(app, {\n  database: {\n    default: 'sqlite',\n    connections: {\n      sqlite: {\n        adapter: 'drizzle',\n        driver: 'sqlite',\n        database: './database.db',\n      },\n    },\n  },\n}));\n\nawait app.boot();\n\n// Define routes\nRoute.get('/', async (req, res) => {\n  return res.json({ message: 'Welcome to Orchestr!' });\n});\n\n// Start server\nconst kernel = new Kernel(app);\nkernel.listen(3000);\n```\n\n## Models (Ensembles)\n\nEnsembles are ActiveRecord models with a fluent API for querying and relationships.\n\n```typescript\nimport { Ensemble } from '@orchestr-sh/orchestr';\n\nexport class User extends Ensemble {\n  protected table = 'users';\n  static fillable = ['name', 'email', 'password'];\n  protected hidden = ['password'];\n}\n\n// Query\nconst users = await User.query().where('active', true).get();\nconst user = await User.find(1);\n\n// Create\nconst user = await User.create({ name: 'John', email: 'john@example.com' });\n\n// Update\nuser.name = 'Jane';\nawait user.save();\n\n// Delete\nawait user.delete();\n```\n\n### Mass Assignment (fillable / guarded)\n\nEnsembles protect against mass-assignment vulnerabilities the same way Laravel does. You declare which attributes are safe to fill in bulk by setting `fillable`, or which attributes are blocked by setting `guarded`.\n\n#### Recommended: static properties\n\nDeclare `fillable` and `guarded` as `static` class properties. This is the cleanest approach because static properties exist on the class itself before any constructor runs, so the values are always available when `fill()` is called during construction.\n\n```typescript\nexport class User extends Ensemble {\n  static fillable = ['name', 'email', 'password'];\n}\n\nexport class Post extends Ensemble {\n  static guarded = ['id', 'user_id'];\n}\n\n// No constructor needed – mass assignment works immediately\nconst user = await User.create({ name: 'Alice', email: 'alice@example.com' });\n```\n\nSetting `static guarded = []` makes all attributes mass-assignable (equivalent to Laravel's \"unguarded\" model):\n\n```typescript\nexport class LogEntry extends Ensemble {\n  static guarded = [];\n}\n```\n\n#### Legacy / fallback: instance properties\n\nBefore static properties were supported, the workaround was to declare `protected fillable` as an instance field initialiser and then call `this.fill()` manually in the constructor after `super()` had already run:\n\n```typescript\n// Only needed if you cannot use static properties for some reason.\nexport class User extends Ensemble {\n  protected fillable = ['name', 'email', 'password'];\n\n  constructor(attributes: Record<string, any> = {}, fromDatabase = false) {\n    super({}, fromDatabase); // pass empty attrs to super so fill() runs before fillable is set\n    this.fill(attributes);   // re-run fill now that this.fillable is initialised\n  }\n}\n```\n\nThis pattern still works but is more verbose. Prefer `static fillable` / `static guarded` for all new models.\n\n#### How resolution works\n\nWhen `isFillable()` is called, the lookup order is:\n\n1. **`static fillable` on the concrete class** — checked first via `Object.prototype.hasOwnProperty`. If the subclass has defined its own static property it is used as the authoritative allow-list.\n2. **`this.fillable` (instance property)** — the fallback for models that use the constructor-override pattern or that inherit the base class default (`[]`).\n\nThe same two-step lookup applies to `guarded`. Models that define neither property behave identically to before: the base-class default of `guarded = ['*']` blocks all mass assignment.\n\n## Querying\n\nFluent query builder with chainable methods.\n\n```typescript\nimport { DB } from '@orchestr-sh/orchestr';\n\n// Query builder\nconst users = await DB.table('users')\n  .where('votes', '>', 100)\n  .orderBy('created_at', 'desc')\n  .limit(10)\n  .get();\n\n// Using models\nconst posts = await Post.query()\n  .where('published', true)\n  .with('author')\n  .get();\n\n// Aggregates\nconst count = await Post.query().count();\nconst avg = await Post.query().avg('views');\n```\n\n## Relationships\n\n### Standard Relationships\n\n```typescript\nimport { Ensemble, HasMany, BelongsTo, DynamicRelation } from '@orchestr-sh/orchestr';\n\nexport class User extends Ensemble {\n  protected table = 'users';\n\n  @DynamicRelation\n  posts(): HasMany<Post, User> {\n    return this.hasMany(Post);\n  }\n}\n\nexport class Post extends Ensemble {\n  protected table = 'posts';\n\n  @DynamicRelation\n  user(): BelongsTo<User, this> {\n    return this.belongsTo(User);\n  }\n}\n\n// Use relationships\nconst user = await User.find(1);\nconst posts = await user.posts().get(); // Query builder\nconst posts = await user.posts; // Direct access (via @DynamicRelation)\n\n// Eager loading\nconst users = await User.query().with('posts').get();\n\n// Nested eager loading\nconst posts = await Post.query().with('user.posts').get();\n```\n\n### Many-to-Many\n\n```typescript\nimport { Ensemble, BelongsToMany, DynamicRelation } from '@orchestr-sh/orchestr';\n\nexport class User extends Ensemble {\n  @DynamicRelation\n  roles(): BelongsToMany<Role, User> {\n    return this.belongsToMany(Role, 'role_user')\n      .withPivot('expires_at')\n      .withTimestamps();\n  }\n}\n\n// Attach/Detach\nawait user.roles().attach([1, 2, 3]);\nawait user.roles().detach([1]);\n\n// Sync (detach all, attach new)\nawait user.roles().sync([1, 2, 3]);\n\n// Query pivot\nconst activeRoles = await user.roles()\n  .wherePivot('expires_at', '>', new Date())\n  .get();\n```\n\n### Polymorphic Relationships\n\n```typescript\nimport { Ensemble, MorphMany, MorphTo, DynamicRelation } from '@orchestr-sh/orchestr';\n\nexport class Post extends Ensemble {\n  @DynamicRelation\n  comments(): MorphMany<Comment, Post> {\n    return this.morphMany(Comment, 'commentable');\n  }\n}\n\nexport class Video extends Ensemble {\n  @DynamicRelation\n  comments(): MorphMany<Comment, Video> {\n    return this.morphMany(Comment, 'commentable');\n  }\n}\n\nexport class Comment extends Ensemble {\n  @DynamicRelation\n  commentable(): MorphTo<Post | Video> {\n    return this.morphTo('commentable');\n  }\n}\n\n// Use polymorphic relations\nconst post = await Post.find(1);\nconst comments = await post.comments;\n\nconst comment = await Comment.find(1);\nconst parent = await comment.commentable; // Returns Post or Video\n```\n\n## @DynamicRelation Decorator\n\nThe `@DynamicRelation` decorator enables dual-mode access to relationships:\n\n```typescript\nexport class User extends Ensemble {\n  @DynamicRelation\n  posts(): HasMany<Post, User> {\n    return this.hasMany(Post);\n  }\n}\n\nconst user = await User.find(1);\n\n// Method syntax (returns query builder)\nconst query = user.posts();\nconst recentPosts = await query.where('created_at', '>', yesterday).get();\n\n// Property syntax (returns results directly)\nconst allPosts = await user.posts;\n```\n\nWithout `@DynamicRelation`, you must always call the method: `user.posts().get()`.\n\n## Migrations\n\nLaravel-style migrations with a fluent Schema builder.\n\n```bash\n# Create a migration\nnpx orchestr make:migration create_users_table --create=users\n\n# Run migrations\nnpx orchestr migrate\n\n# Rollback last batch\nnpx orchestr migrate:rollback\n\n# Rollback all migrations\nnpx orchestr migrate:reset\n\n# Drop all tables and re-run migrations (fresh start)\nnpx orchestr migrate:fresh\n\n# Rollback and re-run all migrations (uses migration tracking)\nnpx orchestr migrate:refresh\n\n# Check migration status\nnpx orchestr migrate:status\n```\n\n> **Note:** `migrate:fresh` drops all tables in the database and re-runs all migrations from scratch, giving you a completely clean slate. Use this for development/testing when you want to start over. `migrate:refresh` is more conservative—it only rolls back and re-runs migrations that the framework knows about. `migrate:reset` rolls back migrations without re-running them.\n\n### Creating Tables\n\n```typescript\nimport { Migration, Schema } from '@orchestr-sh/orchestr';\n\nexport default class extends Migration {\n  async up(schema: Schema): Promise<void> {\n    await schema.create('users', (table) => {\n      table.id();\n      table.string('name');\n      table.string('email').unique();\n      table.string('password');\n      table.rememberToken();\n      table.timestamps();\n    });\n  }\n\n  async down(schema: Schema): Promise<void> {\n    await schema.dropIfExists('users');\n  }\n}\n```\n\n### Column Types\n\n```typescript\ntable.id()                          // Auto-incrementing big integer\ntable.string('name', 255)           // VARCHAR\ntable.text('bio')                   // TEXT\ntable.integer('votes')              // INTEGER\ntable.bigInteger('amount')          // BIGINT\ntable.decimal('price', 8, 2)        // DECIMAL\ntable.boolean('active')             // BOOLEAN\ntable.date('birth_date')            // DATE\ntable.datetime('published_at')      // DATETIME\ntable.timestamp('created_at')       // TIMESTAMP\ntable.timestamps()                  // created_at & updated_at\ntable.json('metadata')              // JSON\ntable.uuid('identifier')            // UUID\ntable.enum('status', ['draft', 'published'])\n```\n\n### Column Modifiers\n\n```typescript\ntable.string('email').nullable()\ntable.string('email').unique()\ntable.string('email').default('guest@example.com')\ntable.integer('votes').unsigned()\ntable.string('email').index()\n```\n\n### Foreign Keys\n\n```typescript\ntable.bigInteger('user_id').unsigned();\ntable.foreign('user_id').references('id').on('users').onDelete('cascade');\n```\n\n## Seeders\n\nPopulate your database with test or initial data.\n\n```bash\n# Create a seeder\nnpx orchestr make:seeder UserSeeder\n\n# Run all seeders (runs DatabaseSeeder)\nnpx orchestr db:seed\n\n# Run a specific seeder\nnpx orchestr db:seed --class=UserSeeder\n```\n\n### Creating Seeders\n\n```typescript\nimport { Seeder } from '@orchestr-sh/orchestr';\n\nexport default class UserSeeder extends Seeder {\n  async run(): Promise<void> {\n    await this.connection?.table('users').insert([\n      { name: 'John Doe', email: 'john@example.com' },\n      { name: 'Jane Smith', email: 'jane@example.com' },\n    ]);\n  }\n}\n```\n\n### DatabaseSeeder Pattern\n\n```typescript\nimport { Seeder } from '@orchestr-sh/orchestr';\nimport UserSeeder from './UserSeeder';\nimport PostSeeder from './PostSeeder';\n\nexport default class DatabaseSeeder extends Seeder {\n  async run(): Promise<void> {\n    await this.call(UserSeeder);\n    await this.call(PostSeeder);\n\n    // Or call multiple seeders at once\n    await this.callMany([UserSeeder, PostSeeder]);\n  }\n}\n```\n\n## Events and Listeners\n\nLaravel-style event system with listeners, subscribers, and automatic discovery.\n\n### Creating Events\n\nEvents are simple classes that hold data about something that happened in your application.\n\n```typescript\nimport { Event } from '@orchestr-sh/orchestr';\n\nexport class UserRegistered extends Event {\n  constructor(public readonly user: User) {\n    super();\n  }\n}\n\n// Create via command\nnpx orchestr make:event UserRegistered\n```\n\n### Creating Listeners\n\nListeners handle events with a `handle` method.\n\n```typescript\nexport class SendWelcomeEmail {\n  handle(event: UserRegistered): void {\n    // Send welcome email to event.user\n  }\n}\n\n// Create via command\nnpx orchestr make:listener SendWelcomeEmail --event=UserRegistered\nnpx orchestr make:listener ProcessOrder --queued  // For queued listeners\n```\n\n### Registering Events and Listeners\n\nRegister in your `EventServiceProvider`:\n\n```typescript\nimport { EventServiceProvider } from '@orchestr-sh/orchestr';\n\nexport class AppEventServiceProvider extends EventServiceProvider {\n  protected listen = {\n    'UserRegistered': [\n      'SendWelcomeEmail',\n      'CreateUserProfile',\n    ],\n    'OrderPlaced': 'SendOrderConfirmation',\n  };\n}\n```\n\nOr use the Event facade to register listeners dynamically:\n\n```typescript\nimport { Event } from '@orchestr-sh/orchestr';\n\n// Class-based listener\nEvent.listen(UserRegistered, SendWelcomeEmail);\n\n// Closure listener\nEvent.listen(UserRegistered, (event) => {\n  console.log(`User registered: ${event.user.email}`);\n});\n\n// Multiple events\nEvent.listen(['UserRegistered', 'UserUpdated'], LogUserActivity);\n\n// Wildcard listeners\nEvent.listen('user.*', (event) => {\n  // Handles user.registered, user.updated, etc.\n});\n```\n\n### Dispatching Events\n\n```typescript\nimport { Event } from '@orchestr-sh/orchestr';\n\n// Dispatch via facade\nEvent.dispatch(new UserRegistered(user));\n\n// Static dispatch on event class\nUserRegistered.dispatch(user);\n\n// Conditional dispatch\nUserRegistered.dispatchIf(user.isActive, user);\nUserRegistered.dispatchUnless(user.isAdmin, user);\n\n// Dispatch until first non-null response (halting)\nconst result = UserRegistered.until(user);\nif (result === false) {\n  // Listener vetoed the operation\n}\n\n// Queue events for later\nEvent.push('user.registered', [user]);\nEvent.flush('user.registered'); // Dispatch all queued\n```\n\n### Event Subscribers\n\nSubscribers listen to multiple events in a single class:\n\n```typescript\nimport { EventSubscriber, Dispatcher } from '@orchestr-sh/orchestr';\n\nexport class UserEventSubscriber implements EventSubscriber {\n  subscribe(events: Dispatcher): void {\n    events.listen('UserRegistered', this.onRegistered.bind(this));\n    events.listen('UserUpdated', this.onUpdated.bind(this));\n    events.listen('user.*', this.logActivity.bind(this));\n  }\n\n  onRegistered(event: UserRegistered): void {\n    // Handle registration\n  }\n\n  onUpdated(event: UserUpdated): void {\n    // Handle update\n  }\n\n  logActivity(event: any): void {\n    // Log any user activity\n  }\n}\n\n// Register in EventServiceProvider\nprotected subscribe = [\n  'UserEventSubscriber',\n];\n```\n\n### Model Events\n\nEnsemble models automatically dispatch lifecycle events:\n\n```typescript\nimport { Event, ModelCreated, ModelUpdated, ModelDeleting } from '@orchestr-sh/orchestr';\n\n// Listen to model events\nEvent.listen(ModelCreated, (event) => {\n  console.log('Model created:', event.model);\n});\n\nEvent.listen(ModelDeleting, (event) => {\n  // Prevent deletion by returning false\n  if (event.model.isProtected) {\n    return false;\n  }\n});\n\n// Listen to specific model events using wildcards\nEvent.listen('User.*', (event) => {\n  // Handles all User model events\n});\n```\n\nAvailable model events:\n- `ModelRetrieved` - After a model is retrieved from database\n- `ModelCreating` - Before a model is created (can halt)\n- `ModelCreated` - After a model is created\n- `ModelUpdating` - Before a model is updated (can halt)\n- `ModelUpdated` - After a model is updated\n- `ModelSaving` - Before a model is saved (can halt)\n- `ModelSaved` - After a model is saved\n- `ModelDeleting` - Before a model is deleted (can halt)\n- `ModelDeleted` - After a model is deleted\n\n### Testing Events\n\nUse `Event.fake()` to test event dispatching:\n\n```typescript\nimport { Event } from '@orchestr-sh/orchestr';\n\n// Fake all events\nEvent.fake();\n\n// Your code that dispatches events\nawait userService.register(userData);\n\n// Assert events were dispatched\nEvent.assertDispatched(UserRegistered);\nEvent.assertDispatched(UserRegistered, (event) => {\n  return event.user.email === 'test@example.com';\n});\nEvent.assertDispatchedTimes(UserRegistered, 2);\nEvent.assertNotDispatched(UserDeleted);\nEvent.assertNothingDispatched();\n\n// Fake specific events only\nEvent.fake([UserRegistered, OrderPlaced]);\n\n// Fake all except specific events\nEvent.fakeExcept([UserDeleted]);\n\n// Scoped faking\nconst [result, fake] = await Event.fakeFor(async (fake) => {\n  await someService.createUser();\n  return 'done';\n});\nfake.assertDispatched(UserRegistered);\n```\n\n### Console Commands\n\n```bash\n# Create event\norchestr make:event UserRegistered\norchestr make:event OrderPlaced\n\n# Create listener\norchestr make:listener SendWelcomeEmail\norchestr make:listener SendWelcomeEmail --event=UserRegistered\norchestr make:listener ProcessOrder --queued\n\n# Create controller\norchestr make:controller UserController\norchestr make:controller Api/UserController --path=app/Http/Controllers\n```\n\n## Controllers\n\nCreate a new controller with the CLI:\n\n```bash\nnpx orchestr make:controller UserController\nnpx orchestr make:controller Api/UserController --path=app/Http/Controllers  # Custom path\n```\n\nThe command creates a controller class extending the base `Controller` and creates `app/Http/Controllers/Controller.ts` if it does not exist.\n\n```typescript\nimport { Controller, Injectable, ValidateRequest } from '@orchestr-sh/orchestr';\n\n@Injectable()\nexport class UserController extends Controller {\n  constructor(private service: UserService) {\n    super();\n  }\n\n  @ValidateRequest()\n  async index(req: GetUsersRequest, res: any) {\n    const users = await User.query().with('posts').get();\n    return res.json({ data: users });\n  }\n\n  async show(req: any, res: any) {\n    const user = await User.find(req.routeParam('id'));\n    if (!user) return res.status(404).json({ error: 'Not found' });\n    return res.json({ data: user });\n  }\n}\n\n// Register route\nRoute.get('/users', [UserController, 'index']);\nRoute.get('/users/:id', [UserController, 'show']);\n```\n\n## FormRequest Validation\n\n```typescript\nimport { FormRequest, ValidationRules } from '@orchestr-sh/orchestr';\n\nexport class StoreUserRequest extends FormRequest {\n  protected authorize(): boolean {\n    return true; // Add authorization logic\n  }\n\n  protected rules(): ValidationRules {\n    return {\n      name: 'required|string|min:3',\n      email: 'required|email',\n      password: 'required|min:8',\n    };\n  }\n}\n\n// Use with @ValidateRequest decorator\n@Injectable()\nexport class UserController extends Controller {\n  @ValidateRequest()\n  async store(req: StoreUserRequest, res: any) {\n    const validated = req.validated();\n    const user = await User.create(validated);\n    return res.status(201).json({ data: user });\n  }\n}\n```\n\n## Configuration\n\n### Database Setup\n\n```typescript\nimport { DatabaseServiceProvider, DatabaseManager, DrizzleAdapter } from '@orchestr-sh/orchestr';\n\nexport class DatabaseServiceProvider extends ServiceProvider {\n  register(): void {\n    this.app.singleton('db', () => {\n      const config = this.app.make('config').get('database');\n      const manager = new DatabaseManager(config);\n      manager.registerAdapter('drizzle', (config) => new DrizzleAdapter(config));\n      return manager;\n    });\n  }\n\n  async boot(): Promise<void> {\n    const db = this.app.make('db');\n    await db.connection().connect();\n    Ensemble.setConnectionResolver(db);\n  }\n}\n\n// Register in your app\napp.register(DatabaseServiceProvider);\n```\n\n### Service Providers\n\n```typescript\nimport { ServiceProvider } from '@orchestr-sh/orchestr';\n\nexport class AppServiceProvider extends ServiceProvider {\n  register(): void {\n    this.app.singleton('myService', () => new MyService());\n  }\n\n  async boot(): Promise<void> {\n    // Bootstrap code\n  }\n}\n```\n\n## API Reference\n\n### Ensemble Methods\n\n```typescript\n// Query\nUser.query()              // Get query builder\nUser.find(id)             // Find by primary key\nUser.findOrFail(id)       // Find or throw error\nUser.all()                // Get all records\nUser.create(data)         // Create and save\n\n// Instance methods\nuser.save()               // Save changes\nuser.delete()             // Delete record\nuser.refresh()            // Reload from database\nuser.load('posts')        // Lazy load relationship\nuser.toObject()           // Convert to plain object\n```\n\n### Query Builder Methods\n\n```typescript\n.where(column, value)\n.where(column, operator, value)\n.orWhere(column, value)\n.whereIn(column, array)\n.whereBetween(column, [min, max])\n.whereNull(column)\n.orderBy(column, direction)\n.limit(number)\n.offset(number)\n.join(table, first, operator, second)\n.groupBy(column)\n.having(column, operator, value)\n.select(columns)\n.count()\n.sum(column)\n.avg(column)\n.min(column)\n.max(column)\n```\n\n### Schema Methods\n\n```typescript\nschema.create(table, callback)      // Create new table\nschema.table(table, callback)       // Modify existing table\nschema.drop(table)                  // Drop table\nschema.dropIfExists(table)          // Drop table if exists\nschema.rename(from, to)             // Rename table\nschema.hasTable(table)              // Check if table exists\nschema.hasColumn(table, column)     // Check if column exists\n```\n\n### Blueprint Column Types\n\n```typescript\ntable.id()                          // Auto-increment big integer\ntable.increments(column)            // Auto-increment integer\ntable.bigIncrements(column)         // Auto-increment big integer\ntable.string(column, length)        // VARCHAR\ntable.text(column)                  // TEXT\ntable.mediumText(column)            // MEDIUMTEXT\ntable.longText(column)              // LONGTEXT\ntable.integer(column)               // INTEGER\ntable.bigInteger(column)            // BIGINT\ntable.smallInteger(column)          // SMALLINT\ntable.tinyInteger(column)           // TINYINT\ntable.decimal(column, precision, scale)\ntable.float(column, precision, scale)\ntable.double(column, precision, scale)\ntable.boolean(column)               // BOOLEAN\ntable.date(column)                  // DATE\ntable.datetime(column, precision)   // DATETIME\ntable.timestamp(column, precision)  // TIMESTAMP\ntable.timestamps(precision)         // created_at & updated_at\ntable.json(column)                  // JSON\ntable.jsonb(column)                 // JSONB\ntable.uuid(column)                  // UUID\ntable.enum(column, values)          // ENUM\ntable.binary(column)                // BINARY\ntable.rememberToken()               // remember_token VARCHAR(100)\ntable.softDeletes(column)           // deleted_at timestamp\n```\n\n### Relationship Methods\n\n```typescript\n// HasOne, HasMany, BelongsTo\n.get()                    // Execute query\n.first()                  // Get first result\n.create(data)             // Create related model\n.where(column, value)     // Add constraint\n\n// BelongsToMany\n.attach(ids)              // Attach related models\n.detach(ids)              // Detach related models\n.sync(ids)                // Sync relationships\n.toggle(ids)              // Toggle relationships\n.wherePivot(column, value) // Query pivot table\n.updateExistingPivot(id, data) // Update pivot data\n\n// All relationships\n.with('relation')         // Eager load\n.with(['relation1', 'relation2'])\n.with({ relation: (q) => q.where(...) })\n```\n\n### Available Relationships\n\n- `HasOne` - One-to-one\n- `HasMany` - One-to-many\n- `BelongsTo` - Inverse of HasOne/HasMany\n- `BelongsToMany` - Many-to-many\n- `MorphOne` - Polymorphic one-to-one\n- `MorphMany` - Polymorphic one-to-many\n- `MorphTo` - Inverse of MorphOne/MorphMany\n- `MorphToMany` - Polymorphic many-to-many\n- `MorphedByMany` - Inverse of MorphToMany\n\n### CLI Commands\n\nAll commands should be run with `npx orchestr` (or just `orchestr` if installed globally):\n\n```bash\n# Migrations\nnpx orchestr make:migration <name>          # Create migration\nnpx orchestr make:migration <name> --create=<table>  # Create table migration\nnpx orchestr make:migration <name> --table=<table>   # Update table migration\nnpx orchestr migrate                        # Run migrations\nnpx orchestr migrate:rollback               # Rollback last batch\nnpx orchestr migrate:reset                  # Rollback all migrations\nnpx orchestr migrate:refresh                # Reset and re-run migrations\nnpx orchestr migrate:fresh                  # Drop all tables and migrate\nnpx orchestr migrate:status                 # Show migration status\n\n# Seeders\nnpx orchestr make:seeder <name>             # Create seeder\nnpx orchestr db:seed                        # Run DatabaseSeeder\nnpx orchestr db:seed --class=<name>         # Run specific seeder\n\n# Events & Listeners\nnpx orchestr make:event <name>              # Create event\nnpx orchestr make:listener <name>           # Create listener\nnpx orchestr make:listener <name> --event=<EventName>  # Create listener for event\nnpx orchestr make:listener <name> --queued  # Create queued listener\nnpx orchestr event:list                     # List all registered events\nnpx orchestr event:cache                    # Cache discovered events\nnpx orchestr event:clear                    # Clear event cache\n\n# Controllers\nnpx orchestr make:controller <name>         # Create controller (app/Http/Controllers)\nnpx orchestr make:controller <name> --path=<path>  # Create controller in custom directory\n\n# Queue - Jobs\nnpx orchestr make:job <name>                # Create job class\nnpx orchestr make:job <name> --sync         # Create synchronous job\n\n# Queue - Workers\nnpx orchestr queue:work [connection]        # Start queue worker daemon\nnpx orchestr queue:work --once              # Process single job and exit\nnpx orchestr queue:work --queue=high,default  # Process specific queues\nnpx orchestr queue:work --tries=3           # Set max attempts\nnpx orchestr queue:work --timeout=90        # Set job timeout\nnpx orchestr queue:work --sleep=3           # Seconds between checks\nnpx orchestr queue:work --max-jobs=1000     # Stop after N jobs\nnpx orchestr queue:work --max-time=3600     # Stop after N seconds\nnpx orchestr queue:work --memory=128        # Memory limit in MB\nnpx orchestr queue:work --rest=0            # Rest between jobs (ms)\nnpx orchestr queue:work --stop-when-empty   # Stop when queue is empty\nnpx orchestr queue:restart                  # Gracefully restart all workers\n\n# Queue - Failed Jobs\nnpx orchestr queue:failed                   # List all failed jobs\nnpx orchestr queue:retry <id>               # Retry specific failed job\nnpx orchestr queue:retry all                # Retry all failed jobs\nnpx orchestr queue:forget <id>              # Delete failed job by ID\nnpx orchestr queue:flush                    # Delete all failed jobs\nnpx orchestr queue:prune-failed --hours=48  # Prune failed jobs older than N hours\n\n# Queue - Monitoring\nnpx orchestr queue:monitor <queue> --max=100  # Alert if queue exceeds size\nnpx orchestr queue:clear [connection] --queue=default  # Clear queue\n\n# Queue - Database Setup\nnpx orchestr queue:table                    # Create jobs table migration\nnpx orchestr queue:failed-table             # Create failed_jobs table migration\nnpx orchestr queue:batches-table            # Create job_batches table migration\nnpx orchestr queue:prune-batches --hours=24 # Prune batches older than N hours\n\n# Cache\nnpx orchestr cache:clear [--store=redis]    # Clear all cache or specific store\nnpx orchestr cache:forget <key> [--store=redis]  # Forget specific cache key\nnpx orchestr cache:table                    # Create cache table migration\n\n# Views\nnpx orchestr make:view <name>               # Create view template\n```\n\n## Queue System\n\nOrchestr provides a powerful queue system for deferring time-intensive tasks. Jobs can be pushed to various drivers (sync, database), retried on failure, organized into chains and batches, and monitored through a comprehensive CLI.\n\n### Configuration\n\nCreate a queue configuration in your application:\n\n```typescript\nimport { QueueServiceProvider } from '@orchestr-sh/orchestr';\n\napp.register(new QueueServiceProvider(app));\n\n// Configure in ConfigServiceProvider\n{\n  queue: {\n    default: 'database',\n    connections: {\n      sync: {\n        driver: 'sync',\n      },\n      database: {\n        driver: 'database',\n        table: 'jobs',\n        queue: 'default',\n        retry_after: 90,\n        after_commit: false,\n      },\n    },\n    failed: {\n      driver: 'database',\n      database: 'sqlite',\n      table: 'failed_jobs',\n    },\n    batching: {\n      database: 'sqlite',\n      table: 'job_batches',\n    },\n  },\n}\n```\n\n### Creating Jobs\n\nJobs are classes that extend the `Job` base class:\n\n```typescript\nimport { Job } from '@orchestr-sh/orchestr';\n\nexport class ProcessPodcast extends Job {\n  public tries = 5;\n  public timeout = 120;\n  public backoff = [10, 30, 60];\n\n  constructor(public podcastId: number) {\n    super();\n  }\n\n  async handle(): Promise<void> {\n    // Process the podcast\n    const podcast = await Podcast.find(this.podcastId);\n    await podcast.process();\n  }\n\n  async failed(error: Error): Promise<void> {\n    // Handle job failure\n    console.error(`Failed to process podcast ${this.podcastId}:`, error);\n  }\n}\n\n// Create via CLI\nnpx orchestr make:job ProcessPodcast\nnpx orchestr make:job SendEmail --sync  // Synchronous job\n```\n\n### Dispatching Jobs\n\n```typescript\n// Basic dispatch\nawait ProcessPodcast.dispatch(podcastId);\n\n// Fluent dispatch API\nawait ProcessPodcast.dispatch(podcastId)\n  .onQueue('high-priority')\n  .onConnection('redis')\n  .delay(60)\n  .tries(3)\n  .timeout(300)\n  .backoff([30, 60, 120]);\n\n// Conditional dispatch\nawait ProcessPodcast.dispatchIf(podcast.needsProcessing, podcastId);\nawait ProcessPodcast.dispatchUnless(podcast.isProcessed, podcastId);\n\n// Synchronous dispatch (runs immediately)\nawait ProcessPodcast.dispatchSync(podcastId);\n\n// Using Queue/Bus facades\nimport { Queue, Bus } from '@orchestr-sh/orchestr';\n\nawait Queue.push(new ProcessPodcast(podcastId));\nawait Queue.pushOn('high-priority', new ProcessPodcast(podcastId));\nawait Queue.later(60, new ProcessPodcast(podcastId));\n\nawait Bus.dispatch(new ProcessPodcast(podcastId));\nawait Bus.dispatchSync(new ProcessPodcast(podcastId));\n```\n\n### Job Middleware\n\nMiddleware can be applied to jobs for rate limiting, preventing overlaps, and throttling exceptions:\n\n```typescript\nimport { RateLimited, WithoutOverlapping, ThrottlesExceptions } from '@orchestr-sh/orchestr';\n\nexport class ProcessPodcast extends Job {\n  constructor(public podcastId: number) {\n    super();\n  }\n\n  middleware() {\n    return [\n      // Allow 10 jobs per minute\n      new RateLimited('podcasts', 10, 60).releaseAfter(30),\n\n      // Prevent overlapping jobs for the same podcast\n      new WithoutOverlapping(this.podcastId)\n        .releaseAfter(10)\n        .expireAfter(300),\n\n      // Throttle on too many exceptions\n      new ThrottlesExceptions(5, 10).backoff(5),\n    ];\n  }\n\n  async handle(): Promise<void> {\n    // Process podcast\n  }\n}\n```\n\n### Job Chaining\n\nExecute jobs sequentially - if one fails, the chain stops:\n\n```typescript\nimport { Bus } from '@orchestr-sh/orchestr';\n\nawait Bus.chain([\n  new ProcessPodcast(podcastId),\n  new OptimizePodcast(podcastId),\n  new PublishPodcast(podcastId),\n  new NotifySubscribers(podcastId),\n])\n  .onQueue('processing')\n  .onConnection('redis')\n  .delay(300)\n  .catch((error) => {\n    console.error('Chain failed:', error);\n  })\n  .dispatch();\n```\n\n### Job Batching\n\nExecute jobs concurrently with progress tracking:\n\n```typescript\nimport { Bus } from '@orchestr-sh/orchestr';\n\nconst batch = await Bus.batch([\n  new ImportRow(1),\n  new ImportRow(2),\n  new ImportRow(3),\n  new ImportRow(4),\n])\n  .name('CSV Import')\n  .then((batch) => {\n    console.log('All imports complete!');\n  })\n  .catch((batch, error) => {\n    console.error('A job failed:', error);\n  })\n  .finally((batch) => {\n    console.log(`Processed ${batch.processedJobs}/${batch.totalJobs} jobs`);\n  })\n  .allowFailures()\n  .onQueue('imports')\n  .dispatch();\n\n// Check batch progress\nconsole.log(`Progress: ${batch.progress()}%`);\nconsole.log(`Pending: ${batch.pendingJobs}`);\nconsole.log(`Failed: ${batch.failedJobs}`);\n```\n\n### Running Workers\n\nProcess queued jobs with the worker daemon:\n\n```bash\n# Start a worker\nnpx orchestr queue:work\n\n# Specify connection and queue\nnpx orchestr queue:work database --queue=high-priority,default\n\n# Worker options\nnpx orchestr queue:work database \\\n  --queue=high,default \\\n  --tries=3 \\\n  --timeout=90 \\\n  --sleep=3 \\\n  --max-jobs=1000 \\\n  --max-time=3600 \\\n  --memory=128 \\\n  --rest=0\n\n# Process a single job (--once)\nnpx orchestr queue:work --once\n\n# Stop when queue is empty\nnpx orchestr queue:work --stop-when-empty\n\n# Restart all workers gracefully\nnpx orchestr queue:restart\n```\n\n### Failed Jobs\n\nManage failed jobs through the CLI or programmatically:\n\n```bash\n# List all failed jobs\nnpx orchestr queue:failed\n\n# Retry a specific failed job\nnpx orchestr queue:retry 5\n\n# Retry all failed jobs\nnpx orchestr queue:retry all\n\n# Forget (delete) a failed job\nnpx orchestr queue:forget 5\n\n# Flush all failed jobs\nnpx orchestr queue:flush\n\n# Prune failed jobs older than 48 hours\nnpx orchestr queue:prune-failed --hours=48\n```\n\n### Queue Monitoring\n\n```bash\n# Monitor queue for jobs exceeding thresholds\nnpx orchestr queue:monitor database:default --max=100\n\n# Clear all jobs from a queue\nnpx orchestr queue:clear database --queue=default\n```\n\n### Database Setup\n\n```bash\n# Create queue tables migration\nnpx orchestr queue:table\n\n# Create failed jobs table migration\nnpx orchestr queue:failed-table\n\n# Create job batches table migration\nnpx orchestr queue:batches-table\n\n# Run migrations\nnpx orchestr migrate\n```\n\n### Job Events\n\nRegister callbacks for job lifecycle events:\n\n```typescript\nimport { Queue } from '@orchestr-sh/orchestr';\n\n// Before job processing\nQueue.before((connectionName, job) => {\n  console.log(`Processing: ${job.displayName()}`);\n});\n\n// After job processing\nQueue.after((connectionName, job) => {\n  console.log(`Completed: ${job.displayName()}`);\n});\n\n// When a job fails\nQueue.failing((connectionName, job, error) => {\n  console.error(`Failed: ${job.displayName()}`, error);\n});\n\n// On each worker loop iteration\nQueue.looping(() => {\n  // Perform maintenance tasks\n});\n```\n\n### Custom Queue Drivers\n\nExtend the queue system with custom drivers:\n\n```typescript\nimport { QueueDriver } from '@orchestr-sh/orchestr';\n\nclass RedisDriver implements QueueDriver {\n  async push(job: Job, queue?: string): Promise<string> {\n    // Push job to Redis\n  }\n\n  async pop(queue?: string): Promise<QueueDriverJob | null> {\n    // Pop job from Redis\n  }\n\n  // Implement other methods...\n}\n\n// Register the driver\nconst manager = app.make<QueueManager>('queue');\nmanager.registerDriver('redis', (config) => new RedisDriver(config));\n```\n\n## Cache System\n\nOrchestr provides a flexible caching system with multiple drivers, tags, locks, and stale-while-revalidate support.\n\n### Configuration\n\nConfigure cache stores in your application:\n\n```typescript\nimport { CacheServiceProvider } from '@orchestr-sh/orchestr';\n\napp.register(new CacheServiceProvider(app));\n\n// Configure in ConfigServiceProvider\n{\n  cache: {\n    default: 'file',\n    prefix: 'app_cache_',\n    stores: {\n      array: {\n        driver: 'array',\n        serialize: false,\n      },\n      file: {\n        driver: 'file',\n        path: 'storage/framework/cache/data',\n      },\n      database: {\n        driver: 'database',\n        connection: null,\n        table: 'cache',\n      },\n      null: {\n        driver: 'null',\n      },\n    },\n  },\n}\n```\n\n### Basic Usage\n\n```typescript\nimport { Cache } from '@orchestr-sh/orchestr';\n\n// Store items\nawait Cache.put('key', 'value', 3600); // TTL in seconds\nawait Cache.put('key', 'value', new Date('2024-12-31')); // TTL as Date\nawait Cache.forever('key', 'value'); // Store forever\n\n// Retrieve items\nconst value = await Cache.get('key');\nconst value = await Cache.get('key', 'default value');\nconst value = await Cache.get('key', () => 'computed default');\n\n// Multiple items\nawait Cache.putMany({ key1: 'value1', key2: 'value2' }, 3600);\nconst values = await Cache.many(['key1', 'key2']);\n\n// Check existence\nif (await Cache.has('key')) {\n  // Key exists\n}\n\nif (await Cache.missing('key')) {\n  // Key does not exist\n}\n\n// Remove items\nawait Cache.forget('key');\nawait Cache.flush(); // Clear all cache\n\n// Retrieve and delete\nconst value = await Cache.pull('key', 'default');\n```\n\n### Remember Pattern\n\nCache the result of expensive operations:\n\n```typescript\n// Cache for 1 hour if not exists\nconst user = await Cache.remember('user:1', 3600, async () => {\n  return await User.find(1);\n});\n\n// Cache forever if not exists\nconst settings = await Cache.rememberForever('settings', async () => {\n  return await fetchSettings();\n});\n\n// Add only if key doesn't exist\nawait Cache.add('key', 'value', 3600);\n```\n\n### Flexible Caching (Stale-While-Revalidate)\n\nServe stale content while revalidating in the background:\n\n```typescript\n// Fresh for 30s, stale for up to 300s\nconst data = await Cache.flexible('api:data', [30, 300], async () => {\n  return await fetchFromAPI();\n});\n\n// First 30 seconds: serves fresh data\n// After 30 seconds: serves stale data, triggers background refresh\n// After 300 seconds: fetches fresh data synchronously\n```\n\n### Incrementing and Decrementing\n\n```typescript\n// Increment\nawait Cache.increment('views'); // +1\nawait Cache.increment('views', 5); // +5\n\n// Decrement\nawait Cache.decrement('views'); // -1\nawait Cache.decrement('views', 3); // -3\n```\n\n### Multiple Stores\n\nSwitch between different cache stores:\n\n```typescript\n// Use specific store\nawait Cache.store('redis').put('key', 'value', 3600);\nawait Cache.store('file').put('key', 'value', 3600);\nawait Cache.store('database').put('key', 'value', 3600);\n\n// Chain operations\nconst value = await Cache.store('redis').remember('expensive', 3600, async () => {\n  return await computeExpensiveValue();\n});\n```\n\n### Cache Tags\n\nGroup related cache entries for easy invalidation:\n\n```typescript\n// Store tagged items\nawait Cache.tags(['people', 'artists']).put('John', johnData, 3600);\nawait Cache.tags(['people', 'authors']).put('Anne', anneData, 3600);\nawait Cache.tags('products').put('product:1', productData, 3600);\n\n// Retrieve tagged items\nconst john = await Cache.tags(['people', 'artists']).get('John');\n\n// Flush by tag (removes all tagged entries)\nawait Cache.tags('people').flush(); // Removes John and Anne\nawait Cache.tags(['people', 'artists']).flush();\n\n// Remember with tags\nconst user = await Cache.tags(['users', 'premium']).remember('user:1', 3600, async () => {\n  return await User.find(1);\n});\n```\n\n### Cache Locks\n\nAtomic locks for preventing race conditions:\n\n```typescript\n// Basic lock usage\nconst lock = Cache.lock('processing', 120);\n\nif (await lock.get()) {\n  try {\n    // Critical section\n    await processExpensiveOperation();\n  } finally {\n    await lock.release();\n  }\n}\n\n// Auto-release with callback\nawait Cache.lock('processing', 120).get(async () => {\n  // Lock is automatically released after callback\n  await processExpensiveOperation();\n});\n\n// Block until lock is acquired\ntry {\n  await Cache.lock('processing', 120).block(10, async () => {\n    // Wait up to 10 seconds for lock\n    await processExpensiveOperation();\n  });\n} catch (error) {\n  // LockTimeoutException after 10 seconds\n}\n\n// Check lock ownership\nconst lock = Cache.lock('processing', 120);\nawait lock.get();\n\nif (await lock.isOwnedByCurrentProcess()) {\n  await lock.release();\n}\n\n// Force release (ignores ownership)\nawait lock.forceRelease();\n```\n\n### Database Setup\n\n```bash\n# Create cache table migration\nnpx orchestr cache:table\n\n# Run migration\nnpx orchestr migrate\n```\n\n### Cache Commands\n\n```bash\n# Clear all cache\nnpx orchestr cache:clear\n\n# Clear specific store\nnpx orchestr cache:clear --store=redis\n\n# Forget a specific key\nnpx orchestr cache:forget key-name\n\n# Forget from specific store\nnpx orchestr cache:forget key-name --store=redis\n```\n\n### Custom Cache Drivers\n\nCreate custom cache drivers for Redis, Memcached, etc.:\n\n```typescript\nimport { Store } from '@orchestr-sh/orchestr';\n\nclass RedisStore implements Store {\n  async get(key: string): Promise<any> {\n    // Get from Redis\n  }\n\n  async put(key: string, value: any, seconds: number): Promise<boolean> {\n    // Put to Redis\n  }\n\n  // Implement other methods...\n}\n\n// Register the driver\nconst manager = app.make<CacheManager>('cache');\nmanager.registerDriver('redis', (config) => new RedisStore(config));\n```\n\n### Repository Methods\n\nThe cache repository provides these methods:\n\n```typescript\n// Basic operations\nawait Cache.get(key, defaultValue?)\nawait Cache.many(keys)\nawait Cache.put(key, value, ttl?)\nawait Cache.putMany(values, ttl?)\nawait Cache.forever(key, value)\nawait Cache.forget(key)\nawait Cache.flush()\n\n// High-level operations\nawait Cache.has(key)\nawait Cache.missing(key)\nawait Cache.pull(key, defaultValue?)\nawait Cache.add(key, value, ttl?)\nawait Cache.remember(key, ttl, callback)\nawait Cache.rememberForever(key, callback)\nawait Cache.flexible(key, [freshTtl, staleTtl], callback)\n\n// Numeric operations\nawait Cache.increment(key, value?)\nawait Cache.decrement(key, value?)\n\n// Tags and locks\nCache.tags(names)\nCache.lock(name, seconds?, owner?)\nCache.restoreLock(name, owner)\n\n// Store operations\nCache.store(name?)\nCache.getPrefix()\n```\n\n## View System\n\nOrchestr includes a view system for rendering HTML templates, mirroring Laravel's Blade. Views are stored in `resources/views/` and use dot-notation for resolution (e.g., `'layouts.app'` resolves to `resources/views/layouts/app.html`).\n\n### Configuration\n\n```typescript\nimport { ViewServiceProvider } from '@orchestr-sh/orchestr';\n\napp.register(new ViewServiceProvider(app));\n\n// Configure in ConfigServiceProvider\n{\n  view: {\n    paths: ['resources/views'],\n    extensions: ['.html', '.orchestr.html'],\n  },\n}\n```\n\n### Basic Usage\n\nReturn views directly from route handlers using the `view()` helper:\n\n```typescript\nimport { Route, view } from '@orchestr-sh/orchestr';\n\nRoute.get('/', () => {\n  return view('welcome', { name: 'World' });\n});\n```\n\n### View Facade\n\n```typescript\nimport { View } from '@orchestr-sh/orchestr';\n\n// Create a view instance\nconst v = View.make('welcome', { name: 'World' });\nconst html = await v.render();\n\n// Check if a view exists\nif (View.exists('emails.invoice')) {\n  // ...\n}\n\n// Share data with all views\nView.share('appName', 'My App');\n```\n\n### Chaining Data\n\n```typescript\nconst v = view('welcome')\n  .with('name', 'John')\n  .with({ role: 'admin', active: true });\n```\n\n### Template Syntax\n\n**Output:**\n\n```html\n{{ variable }}              <!-- HTML-escaped (XSS-safe) -->\n{!! variable !!}            <!-- Raw/unescaped output -->\n```\n\n**Conditionals:**\n\n```html\n@if(user.isAdmin)\n  <p>Welcome, admin!</p>\n@elseif(user.isMember)\n  <p>Welcome, member!</p>\n@else\n  <p>Welcome, guest!</p>\n@endif\n```\n\n**Loops:**\n\n```html\n@foreach(users as user)\n  <li>{{ user.name }}</li>\n@endforeach\n```\n\n**Includes:**\n\n```html\n@include('partials.nav')\n@include('partials.alert', { type: 'success' })\n```\n\n### Layouts\n\nDefine a layout file (`resources/views/layouts/app.html`):\n\n```html\n<!DOCTYPE html>\n<html>\n<head>\n  <title>@yield('title', 'My App')</title>\n</head>\n<body>\n  @yield('content')\n</body>\n</html>\n```\n\nExtend it from a child template (`resources/views/welcome.html`):\n\n```html\n@extends('layouts.app')\n\n@section('title')Welcome@endsection\n\n@section('content')\n  <h1>Hello, {{ name }}!</h1>\n@endsection\n```\n\n### Response Integration\n\n```typescript\n// From a route handler\nRoute.get('/', (req, res) => {\n  return res.view('welcome', { name: 'World' });\n});\n```\n\n### View Commands\n\n```bash\n# Create a new view template\nnpx orchestr make:view welcome\nnpx orchestr make:view emails.invoice    # Creates resources/views/emails/invoice.html\n```\n\n## Features\n\n- ✅ Service Container & Dependency Injection\n- ✅ Configuration System\n- ✅ HTTP Router & Middleware\n- ✅ Controllers with DI\n- ✅ FormRequest Validation\n- ✅ Query Builder\n- ✅ Ensemble ORM (ActiveRecord)\n- ✅ Relationships (Standard + Polymorphic)\n- ✅ Eager/Lazy Loading\n- ✅ Migrations with Schema Builder\n- ✅ Database Seeders\n- ✅ Events & Listeners\n- ✅ Event Subscribers\n- ✅ Model Lifecycle Events\n- ✅ Event Testing (Fakes & Assertions)\n- ✅ Queue System (Jobs, Chains, Batches, Workers)\n- ✅ Cache System (Tags, Locks, Flexible Caching)\n- ✅ View System (Templates, Layouts, Directives)\n- ✅ Soft Deletes\n- ✅ Attribute Casting\n- ✅ Timestamps\n- ✅ @DynamicRelation Decorator\n\n## License\n\nMIT\n\n---\n\nBuilt with TypeScript. Inspired by Laravel.\n","readmeFilename":"README.md"}