{"_id":"arckode-framework","_rev":"30-dac983662bcb0a942da14eae1599391c","name":"arckode-framework","dist-tags":{"latest":"1.6.3"},"versions":{"1.0.0":{"name":"arckode-framework","version":"1.0.0","keywords":["framework","modular","SOLID","ai","bun","typescript","clean-architecture","composition-root","api","arckode"],"license":"MIT","_id":"arckode-framework@1.0.0","maintainers":[{"name":"arckode1","email":"elavatar255@gmail.com"}],"homepage":"https://gitlab.com/underworf/nexus-framework#readme","bugs":{"url":"https://gitlab.com/underworf/nexus-framework/issues"},"bin":{"arckode":"bin/arckode.js"},"dist":{"shasum":"f3d077716379eee6fdf0752f2f585787baa8867c","tarball":"https://registry.npmjs.org/arckode-framework/-/arckode-framework-1.0.0.tgz","fileCount":52,"integrity":"sha512-QLKh52ZisC5oit1Wyr1OGR3W8GoEwp4qlOZ/w4LbU3SD+YctQRf3ET1U8BZmWCQSjauoYOyKbkBoTqRkvJHYjg==","signatures":[{"sig":"MEYCIQCtsbxCSSLEtL+V8tnZQrsd0S59Gbxvn/mDbK51OwQ6JAIhAJd03MevrwEFNflE0aO7ufCLz3+iOY2s7YP5UuQ6wVSp","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":383895},"main":"./kernel/framework.ts","type":"module","engines":{"bun":">=1.0.0"},"exports":{".":"./kernel/framework.ts","./ws":"./modules/ws/index.ts","./events":"./modules/events/index.ts","./static":"./kernel/static.ts","./testing":"./kernel/testing.ts","./middlewares":"./kernel/middlewares.ts","./adapters/jwt":"./adapters/jwt.ts","./modules/mail":"./modules/mail/index.ts","./modules/queue":"./modules/queue/index.ts","./adapters/mysql":"./adapters/mysql.ts","./adapters/sqlite":"./adapters/sqlite.ts","./modules/storage":"./modules/storage/index.ts","./adapters/postgres":"./adapters/postgres.ts","./adapters/redis-cache":"./adapters/redis-cache.ts"},"gitHead":"cdc0ceee92a993d57c4d872f725ed007c86259d6","scripts":{"test":"bun test","arckode":"bun run cli/index.ts","typecheck":"bunx tsc --noEmit","test:watch":"bun test --watch","test:coverage":"bun test --coverage","analyze:framework":"bun run cli/index.ts analyze"},"_npmUser":{"name":"arckode1","email":"elavatar255@gmail.com"},"repository":{"url":"git+https://gitlab.com/underworf/nexus-framework.git","type":"git"},"_npmVersion":"11.11.0","description":"AI-first TypeScript/Bun framework. Modular, SOLID, zero magic. The AI reads the composition root and knows everything.","directories":{},"_nodeVersion":"24.14.1","dependencies":{"jsonwebtoken":"^9.0.0"},"_hasShrinkwrap":false,"devDependencies":{"@types/pg":"^8.11.0","bun-types":"^1.3.14","typescript":"^5.6.0","@types/nodemailer":"^6.4.0","@types/jsonwebtoken":"^9.0.7","@types/better-sqlite3":"^7.6.12"},"peerDependencies":{"pg":">=8.0.0","redis":">=4.0.0","mysql2":">=3.0.0","nodemailer":">=6.0.0","better-sqlite3":">=11.0.0"},"peerDependenciesMeta":{"pg":{"optional":true},"redis":{"optional":true},"mysql2":{"optional":true},"nodemailer":{"optional":true},"better-sqlite3":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/arckode-framework_1.0.0_1779422085645_0.2544876527194271","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"arckode-framework","version":"1.0.1","keywords":["framework","modular","SOLID","ai","bun","typescript","clean-architecture","composition-root","api","arckode"],"license":"MIT","_id":"arckode-framework@1.0.1","maintainers":[{"name":"arckode1","email":"elavatar255@gmail.com"}],"homepage":"https://gitlab.com/underworf/nexus-framework#readme","bugs":{"url":"https://gitlab.com/underworf/nexus-framework/issues"},"bin":{"arckode":"bin/arckode.js"},"dist":{"shasum":"46d8a66eb9fae89fc7428b060d183e72664cfa30","tarball":"https://registry.npmjs.org/arckode-framework/-/arckode-framework-1.0.1.tgz","fileCount":44,"integrity":"sha512-cyKjvQdjC5iHt1bW+lJNNkCPWch1cjhJs++bONVI9BS73oAsJxzLbUYHLjNlCDHq4nUu/mmLMd/4SAac54+sGA==","signatures":[{"sig":"MEYCIQCmKozVrEmI8MPdfBR3c6X+I/MWv7L7lo62rVMBIynf0wIhAM8fM6ShbjUvkPE4GSs6OZASirRRobA6X1F6OQdWDwcb","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":317214},"main":"./kernel/framework.ts","type":"module","engines":{"bun":">=1.0.0"},"exports":{".":"./kernel/framework.ts","./ws":"./modules/ws/index.ts","./events":"./modules/events/index.ts","./static":"./kernel/static.ts","./testing":"./kernel/testing.ts","./middlewares":"./kernel/middlewares.ts","./adapters/jwt":"./adapters/jwt.ts","./modules/mail":"./modules/mail/index.ts","./modules/queue":"./modules/queue/index.ts","./adapters/mysql":"./adapters/mysql.ts","./adapters/sqlite":"./adapters/sqlite.ts","./modules/storage":"./modules/storage/index.ts","./adapters/postgres":"./adapters/postgres.ts","./adapters/redis-cache":"./adapters/redis-cache.ts"},"gitHead":"1209874aae350db83f96d7e9c8e6c24708f9ae6b","scripts":{"test":"bun test","arckode":"bun run cli/index.ts","typecheck":"bunx tsc --noEmit","test:watch":"bun test --watch","test:coverage":"bun test --coverage","analyze:framework":"bun run cli/index.ts analyze"},"_npmUser":{"name":"arckode1","email":"elavatar255@gmail.com"},"repository":{"url":"git+https://gitlab.com/underworf/nexus-framework.git","type":"git"},"_npmVersion":"11.11.0","description":"AI-first TypeScript/Bun framework. Modular, SOLID, zero magic. The AI reads the composition root and knows everything.","directories":{},"_nodeVersion":"24.14.1","dependencies":{"jsonwebtoken":"^9.0.0"},"_hasShrinkwrap":false,"devDependencies":{"@types/pg":"^8.11.0","bun-types":"^1.3.14","typescript":"^5.6.0","@types/nodemailer":"^6.4.0","@types/jsonwebtoken":"^9.0.7","@types/better-sqlite3":"^7.6.12"},"peerDependencies":{"pg":">=8.0.0","redis":">=4.0.0","mysql2":">=3.0.0","nodemailer":">=6.0.0","better-sqlite3":">=11.0.0"},"peerDependenciesMeta":{"pg":{"optional":true},"redis":{"optional":true},"mysql2":{"optional":true},"nodemailer":{"optional":true},"better-sqlite3":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/arckode-framework_1.0.1_1779422347324_0.08414761028432172","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"arckode-framework","version":"1.0.2","keywords":["framework","modular","SOLID","ai","bun","typescript","clean-architecture","composition-root","api","arckode"],"license":"MIT","_id":"arckode-framework@1.0.2","maintainers":[{"name":"arckode1","email":"elavatar255@gmail.com"}],"homepage":"https://gitlab.com/underworf/nexus-framework#readme","bugs":{"url":"https://gitlab.com/underworf/nexus-framework/issues"},"bin":{"arckode":"bin/arckode.js"},"dist":{"shasum":"f450f510d41df88e3ce60267c0fc70c34acd6003","tarball":"https://registry.npmjs.org/arckode-framework/-/arckode-framework-1.0.2.tgz","fileCount":44,"integrity":"sha512-UPRLjkIOeA6dQwEJhd1BILrjsqjd2uST7X4EcFbHpcg5BvoKKjDPYdcCcuck5vgRAEsrAOxAiTV37cnFne+GBA==","signatures":[{"sig":"MEYCIQD/sZneBO0pjZTrQ5CHDxEsGs6lP7pLdjnXHTmTOKvpugIhAJ8rGMTgvSnmH20JX4Y+0mmw9mKhmUf5fISsAyK0KFNh","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":318855},"main":"./kernel/framework.ts","type":"module","engines":{"bun":">=1.0.0"},"exports":{".":"./kernel/framework.ts","./ws":"./modules/ws/index.ts","./events":"./modules/events/index.ts","./static":"./kernel/static.ts","./testing":"./kernel/testing.ts","./middlewares":"./kernel/middlewares.ts","./adapters/jwt":"./adapters/jwt.ts","./modules/mail":"./modules/mail/index.ts","./modules/queue":"./modules/queue/index.ts","./adapters/mysql":"./adapters/mysql.ts","./adapters/sqlite":"./adapters/sqlite.ts","./modules/storage":"./modules/storage/index.ts","./adapters/postgres":"./adapters/postgres.ts","./adapters/redis-cache":"./adapters/redis-cache.ts"},"gitHead":"1209874aae350db83f96d7e9c8e6c24708f9ae6b","scripts":{"test":"bun test","arckode":"bun run cli/index.ts","typecheck":"bunx tsc --noEmit","test:watch":"bun test --watch","test:coverage":"bun test --coverage","analyze:framework":"bun run cli/index.ts analyze"},"_npmUser":{"name":"arckode1","email":"elavatar255@gmail.com"},"repository":{"url":"git+https://gitlab.com/underworf/nexus-framework.git","type":"git"},"_npmVersion":"11.11.0","description":"AI-first TypeScript/Bun framework. Modular, SOLID, zero magic. The AI reads the composition root and knows everything.","directories":{},"_nodeVersion":"24.14.1","dependencies":{"jsonwebtoken":"^9.0.0"},"_hasShrinkwrap":false,"devDependencies":{"@types/pg":"^8.11.0","bun-types":"^1.3.14","typescript":"^5.6.0","@types/nodemailer":"^6.4.0","@types/jsonwebtoken":"^9.0.7","@types/better-sqlite3":"^7.6.12"},"peerDependencies":{"pg":">=8.0.0","redis":">=4.0.0","mysql2":">=3.0.0","nodemailer":">=6.0.0","better-sqlite3":">=11.0.0"},"peerDependenciesMeta":{"pg":{"optional":true},"redis":{"optional":true},"mysql2":{"optional":true},"nodemailer":{"optional":true},"better-sqlite3":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/arckode-framework_1.0.2_1779426117831_0.10789398524114868","host":"s3://npm-registry-packages-npm-production"}},"1.0.3":{"name":"arckode-framework","version":"1.0.3","keywords":["framework","modular","SOLID","ai","bun","typescript","clean-architecture","composition-root","api","arckode"],"license":"MIT","_id":"arckode-framework@1.0.3","maintainers":[{"name":"arckode1","email":"elavatar255@gmail.com"}],"homepage":"https://gitlab.com/underworf/nexus-framework#readme","bugs":{"url":"https://gitlab.com/underworf/nexus-framework/issues"},"bin":{"arckode":"bin/arckode.js"},"dist":{"shasum":"dacf25ce54bb80e37c14e68bb4abb2274ca37251","tarball":"https://registry.npmjs.org/arckode-framework/-/arckode-framework-1.0.3.tgz","fileCount":44,"integrity":"sha512-fqSOIA0H4sdHmYBlC1vnGXLIMRnDbRh7RZoa94r+eQry7OLMVKFBn+Kwsxj7ks+NhOclAP79BSJTvo2XQ55WaA==","signatures":[{"sig":"MEUCIQCVvtTmiLrY4k5yq+bEYK1NTVg7LDsCB29mP8vOpSdGSgIgeAgIhTA/dzfu4nzaZ9SaX7Kw5UDSN+jIdt/WakghC3g=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":318855},"main":"./kernel/framework.ts","type":"module","engines":{"bun":">=1.0.0"},"exports":{".":"./kernel/framework.ts","./ws":"./modules/ws/index.ts","./events":"./modules/events/index.ts","./static":"./kernel/static.ts","./testing":"./kernel/testing.ts","./middlewares":"./kernel/middlewares.ts","./adapters/jwt":"./adapters/jwt.ts","./modules/mail":"./modules/mail/index.ts","./modules/queue":"./modules/queue/index.ts","./adapters/mysql":"./adapters/mysql.ts","./adapters/sqlite":"./adapters/sqlite.ts","./modules/storage":"./modules/storage/index.ts","./adapters/postgres":"./adapters/postgres.ts","./adapters/redis-cache":"./adapters/redis-cache.ts"},"gitHead":"0eaa3278c2f077da97a47a0e54dbe98a11b191b7","scripts":{"test":"bun test","arckode":"bun run cli/index.ts","typecheck":"bunx tsc --noEmit","test:watch":"bun test --watch","test:coverage":"bun test --coverage","analyze:framework":"bun run cli/index.ts analyze"},"_npmUser":{"name":"arckode1","email":"elavatar255@gmail.com"},"repository":{"url":"git+https://gitlab.com/underworf/nexus-framework.git","type":"git"},"_npmVersion":"11.11.0","description":"AI-first TypeScript/Bun framework. Modular, SOLID, zero magic. The AI reads the composition root and knows everything.","directories":{},"_nodeVersion":"24.14.1","dependencies":{"jsonwebtoken":"^9.0.0"},"_hasShrinkwrap":false,"devDependencies":{"@types/pg":"^8.11.0","bun-types":"^1.3.14","typescript":"^5.6.0","@types/nodemailer":"^6.4.0","@types/jsonwebtoken":"^9.0.7","@types/better-sqlite3":"^7.6.12"},"peerDependencies":{"pg":">=8.0.0","redis":">=4.0.0","mysql2":">=3.0.0","nodemailer":">=6.0.0","better-sqlite3":">=11.0.0"},"peerDependenciesMeta":{"pg":{"optional":true},"redis":{"optional":true},"mysql2":{"optional":true},"nodemailer":{"optional":true},"better-sqlite3":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/arckode-framework_1.0.3_1779426269613_0.0006615887741581172","host":"s3://npm-registry-packages-npm-production"}},"1.0.4":{"name":"arckode-framework","version":"1.0.4","keywords":["framework","modular","SOLID","ai","bun","typescript","clean-architecture","composition-root","api","arckode"],"license":"MIT","_id":"arckode-framework@1.0.4","maintainers":[{"name":"arckode1","email":"elavatar255@gmail.com"}],"homepage":"https://gitlab.com/underworf/nexus-framework#readme","bugs":{"url":"https://gitlab.com/underworf/nexus-framework/issues"},"bin":{"arckode":"bin/arckode.js"},"dist":{"shasum":"04f6bb111719d376bbd7ece35b86453b59731dd1","tarball":"https://registry.npmjs.org/arckode-framework/-/arckode-framework-1.0.4.tgz","fileCount":44,"integrity":"sha512-RGk8sdVQUIsPt4bTT1nGlPfPbjBgxJj/t4A7MjiCD0X+2jJYgVNMTC2GbjfWql2wFhIdyQo1BZvU17DA1zAs1w==","signatures":[{"sig":"MEUCIQD04IXlAfM/GsRVnh4ikqYZS2GhQ5me1mLrxe5pVI8xEAIgOHTJiuBPPsASYB7y5JezSr8YnWG+KO3PNVIWJ01fyHY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":318908},"main":"./kernel/framework.ts","type":"module","engines":{"bun":">=1.0.0"},"exports":{".":"./kernel/framework.ts","./ws":"./modules/ws/index.ts","./events":"./modules/events/index.ts","./static":"./kernel/static.ts","./testing":"./kernel/testing.ts","./middlewares":"./kernel/middlewares.ts","./adapters/jwt":"./adapters/jwt.ts","./modules/mail":"./modules/mail/index.ts","./modules/queue":"./modules/queue/index.ts","./adapters/mysql":"./adapters/mysql.ts","./adapters/sqlite":"./adapters/sqlite.ts","./modules/storage":"./modules/storage/index.ts","./adapters/postgres":"./adapters/postgres.ts","./adapters/redis-cache":"./adapters/redis-cache.ts"},"gitHead":"7ba4c1e91fa3a52046b6ad655750c55b292435b3","scripts":{"test":"bun test","arckode":"bun run cli/index.ts","typecheck":"bunx tsc --noEmit","test:watch":"bun test --watch","test:coverage":"bun test --coverage","analyze:framework":"bun run cli/index.ts analyze"},"_npmUser":{"name":"arckode1","email":"elavatar255@gmail.com"},"repository":{"url":"git+https://gitlab.com/underworf/nexus-framework.git","type":"git"},"_npmVersion":"11.11.0","description":"AI-first TypeScript/Bun framework. Modular, SOLID, zero magic. The AI reads the composition root and knows everything.","directories":{},"_nodeVersion":"24.14.1","dependencies":{"jsonwebtoken":"^9.0.0"},"_hasShrinkwrap":false,"devDependencies":{"@types/pg":"^8.11.0","bun-types":"^1.3.14","typescript":"^5.6.0","@types/nodemailer":"^6.4.0","@types/jsonwebtoken":"^9.0.7","@types/better-sqlite3":"^7.6.12"},"peerDependencies":{"pg":">=8.0.0","redis":">=4.0.0","mysql2":">=3.0.0","nodemailer":">=6.0.0","better-sqlite3":">=11.0.0"},"peerDependenciesMeta":{"pg":{"optional":true},"redis":{"optional":true},"mysql2":{"optional":true},"nodemailer":{"optional":true},"better-sqlite3":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/arckode-framework_1.0.4_1779426609779_0.905560613629971","host":"s3://npm-registry-packages-npm-production"}},"1.0.5":{"name":"arckode-framework","version":"1.0.5","keywords":["framework","modular","SOLID","ai","bun","typescript","clean-architecture","composition-root","api","arckode"],"license":"MIT","_id":"arckode-framework@1.0.5","maintainers":[{"name":"arckode1","email":"elavatar255@gmail.com"}],"homepage":"https://gitlab.com/underworf/nexus-framework#readme","bugs":{"url":"https://gitlab.com/underworf/nexus-framework/issues"},"bin":{"arckode":"bin/arckode.js"},"dist":{"shasum":"0fb05addc0799ba07d68c8599e2e6b19b197421c","tarball":"https://registry.npmjs.org/arckode-framework/-/arckode-framework-1.0.5.tgz","fileCount":44,"integrity":"sha512-hF9mX6c4GVusawPmNP+Luq2wxvbNsfCQZEAgw/J4kMqbfRIf4kUH3bo5uLSQmvstQwohXKs28Th1KQM25zWFEQ==","signatures":[{"sig":"MEUCIFb+AqBeULibRtCLB7rElZy5m/fei0DG62D0OKVAopOLAiEAuo2yOb9DQyXfQZEAt50/eSv9ZetmIz1FkGxupwfVVf4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":319304},"main":"./kernel/framework.ts","type":"module","engines":{"bun":">=1.0.0"},"exports":{".":"./kernel/framework.ts","./ws":"./modules/ws/index.ts","./events":"./modules/events/index.ts","./static":"./kernel/static.ts","./testing":"./kernel/testing.ts","./middlewares":"./kernel/middlewares.ts","./adapters/jwt":"./adapters/jwt.ts","./modules/mail":"./modules/mail/index.ts","./modules/queue":"./modules/queue/index.ts","./adapters/mysql":"./adapters/mysql.ts","./adapters/sqlite":"./adapters/sqlite.ts","./modules/storage":"./modules/storage/index.ts","./adapters/postgres":"./adapters/postgres.ts","./adapters/redis-cache":"./adapters/redis-cache.ts"},"gitHead":"7ba4c1e91fa3a52046b6ad655750c55b292435b3","scripts":{"test":"bun test","arckode":"bun run cli/index.ts","typecheck":"bunx tsc --noEmit","test:watch":"bun test --watch","test:coverage":"bun test --coverage","analyze:framework":"bun run cli/index.ts analyze"},"_npmUser":{"name":"arckode1","email":"elavatar255@gmail.com"},"repository":{"url":"git+https://gitlab.com/underworf/nexus-framework.git","type":"git"},"_npmVersion":"11.11.0","description":"AI-first TypeScript/Bun framework. Modular, SOLID, zero magic. The AI reads the composition root and knows everything.","directories":{},"_nodeVersion":"24.14.1","dependencies":{"jsonwebtoken":"^9.0.0","arckode-framework":"^1.0.3"},"_hasShrinkwrap":false,"devDependencies":{"@types/pg":"^8.11.0","bun-types":"^1.3.14","typescript":"^5.6.0","@types/nodemailer":"^6.4.0","@types/jsonwebtoken":"^9.0.7","@types/better-sqlite3":"^7.6.12"},"peerDependencies":{"pg":">=8.0.0","redis":">=4.0.0","mysql2":">=3.0.0","nodemailer":">=6.0.0","better-sqlite3":">=11.0.0"},"peerDependenciesMeta":{"pg":{"optional":true},"redis":{"optional":true},"mysql2":{"optional":true},"nodemailer":{"optional":true},"better-sqlite3":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/arckode-framework_1.0.5_1779426966309_0.1767400772362966","host":"s3://npm-registry-packages-npm-production"}},"1.0.6":{"name":"arckode-framework","version":"1.0.6","keywords":["framework","modular","SOLID","ai","bun","typescript","clean-architecture","composition-root","api","arckode"],"license":"MIT","_id":"arckode-framework@1.0.6","maintainers":[{"name":"arckode1","email":"elavatar255@gmail.com"}],"homepage":"https://gitlab.com/underworf/nexus-framework#readme","bugs":{"url":"https://gitlab.com/underworf/nexus-framework/issues"},"bin":{"arckode":"bin/arckode.js"},"dist":{"shasum":"f43f743664c05265aba80631fe7223432005ee9a","tarball":"https://registry.npmjs.org/arckode-framework/-/arckode-framework-1.0.6.tgz","fileCount":44,"integrity":"sha512-Cqe3WfVpWx1eYUK5cFSfEmQJ2ArHbcw0UOo0emyMInk4vs78kdgoSFCDEdJJv8u71T561ad8o3hyKcgHc+i80w==","signatures":[{"sig":"MEQCIGUUUQ2MJueUjdeXkLDKRJ4VfdThfbGcs4gxcxzKXfzCAiASEmKUZDUKOFDVX56Kj1eZI4JjYMwa/7ehFtjRqsecAQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":320680},"main":"./kernel/framework.ts","type":"module","engines":{"bun":">=1.0.0"},"exports":{".":"./kernel/framework.ts","./ws":"./modules/ws/index.ts","./events":"./modules/events/index.ts","./static":"./kernel/static.ts","./testing":"./kernel/testing.ts","./middlewares":"./kernel/middlewares.ts","./adapters/jwt":"./adapters/jwt.ts","./modules/mail":"./modules/mail/index.ts","./modules/queue":"./modules/queue/index.ts","./adapters/mysql":"./adapters/mysql.ts","./adapters/sqlite":"./adapters/sqlite.ts","./modules/storage":"./modules/storage/index.ts","./adapters/postgres":"./adapters/postgres.ts","./adapters/redis-cache":"./adapters/redis-cache.ts"},"gitHead":"7ba4c1e91fa3a52046b6ad655750c55b292435b3","scripts":{"test":"bun test","arckode":"bun run cli/index.ts","typecheck":"bunx tsc --noEmit","test:watch":"bun test --watch","test:coverage":"bun test --coverage","analyze:framework":"bun run cli/index.ts analyze"},"_npmUser":{"name":"arckode1","email":"elavatar255@gmail.com"},"repository":{"url":"git+https://gitlab.com/underworf/nexus-framework.git","type":"git"},"_npmVersion":"11.11.0","description":"AI-first TypeScript/Bun framework. Modular, SOLID, zero magic. The AI reads the composition root and knows everything.","directories":{},"_nodeVersion":"24.14.1","dependencies":{"jsonwebtoken":"^9.0.0","arckode-framework":"^1.0.3"},"_hasShrinkwrap":false,"devDependencies":{"@types/pg":"^8.11.0","bun-types":"^1.3.14","typescript":"^5.6.0","@types/nodemailer":"^6.4.0","@types/jsonwebtoken":"^9.0.7","@types/better-sqlite3":"^7.6.12"},"peerDependencies":{"pg":">=8.0.0","redis":">=4.0.0","mysql2":">=3.0.0","nodemailer":">=6.0.0","better-sqlite3":">=11.0.0"},"peerDependenciesMeta":{"pg":{"optional":true},"redis":{"optional":true},"mysql2":{"optional":true},"nodemailer":{"optional":true},"better-sqlite3":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/arckode-framework_1.0.6_1779427426849_0.2572049731954984","host":"s3://npm-registry-packages-npm-production"}},"1.0.7":{"name":"arckode-framework","version":"1.0.7","keywords":["framework","modular","SOLID","ai","bun","typescript","clean-architecture","composition-root","api","arckode"],"license":"MIT","_id":"arckode-framework@1.0.7","maintainers":[{"name":"arckode1","email":"elavatar255@gmail.com"}],"homepage":"https://gitlab.com/underworf/nexus-framework#readme","bugs":{"url":"https://gitlab.com/underworf/nexus-framework/issues"},"bin":{"arckode":"bin/arckode.js"},"dist":{"shasum":"110d790bc72ccfc04dcfb7248f4f7a49e1b81031","tarball":"https://registry.npmjs.org/arckode-framework/-/arckode-framework-1.0.7.tgz","fileCount":44,"integrity":"sha512-9GzCtu1GT1U9gfAX/3ER0phjpKD/w31Jdw1vaMwA56onnTMAyfeQPg06VNtkzeToCv9mj3JUmK0PRm61O7EBew==","signatures":[{"sig":"MEQCIAk2C6VejGFLddV9LjOw5Myy8YSDIHoHHfaxVl8yaTS+AiAA7pKlAyd1kxY6+WJo1fT+3+OOhucmUbQtYzwOqn33KA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":321927},"main":"./kernel/framework.ts","type":"module","engines":{"bun":">=1.0.0"},"exports":{".":"./kernel/framework.ts","./ws":"./modules/ws/index.ts","./events":"./modules/events/index.ts","./static":"./kernel/static.ts","./testing":"./kernel/testing.ts","./middlewares":"./kernel/middlewares.ts","./adapters/jwt":"./adapters/jwt.ts","./modules/mail":"./modules/mail/index.ts","./modules/queue":"./modules/queue/index.ts","./adapters/mysql":"./adapters/mysql.ts","./adapters/sqlite":"./adapters/sqlite.ts","./modules/storage":"./modules/storage/index.ts","./adapters/postgres":"./adapters/postgres.ts","./adapters/redis-cache":"./adapters/redis-cache.ts"},"gitHead":"7ba4c1e91fa3a52046b6ad655750c55b292435b3","scripts":{"test":"bun test","arckode":"bun run cli/index.ts","typecheck":"bunx tsc --noEmit","test:watch":"bun test --watch","test:coverage":"bun test --coverage","analyze:framework":"bun run cli/index.ts analyze"},"_npmUser":{"name":"arckode1","email":"elavatar255@gmail.com"},"repository":{"url":"git+https://gitlab.com/underworf/nexus-framework.git","type":"git"},"_npmVersion":"11.11.0","description":"AI-first TypeScript/Bun framework. Modular, SOLID, zero magic. The AI reads the composition root and knows everything.","directories":{},"_nodeVersion":"24.14.1","dependencies":{"jsonwebtoken":"^9.0.0","arckode-framework":"^1.0.3"},"_hasShrinkwrap":false,"devDependencies":{"@types/pg":"^8.11.0","bun-types":"^1.3.14","typescript":"^5.6.0","@types/nodemailer":"^6.4.0","@types/jsonwebtoken":"^9.0.7","@types/better-sqlite3":"^7.6.12"},"peerDependencies":{"pg":">=8.0.0","redis":">=4.0.0","mysql2":">=3.0.0","nodemailer":">=6.0.0","better-sqlite3":">=11.0.0"},"peerDependenciesMeta":{"pg":{"optional":true},"redis":{"optional":true},"mysql2":{"optional":true},"nodemailer":{"optional":true},"better-sqlite3":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/arckode-framework_1.0.7_1779427777413_0.8370635154290349","host":"s3://npm-registry-packages-npm-production"}},"1.0.8":{"name":"arckode-framework","version":"1.0.8","keywords":["framework","modular","SOLID","ai","bun","typescript","clean-architecture","composition-root","api","arckode"],"license":"MIT","_id":"arckode-framework@1.0.8","maintainers":[{"name":"arckode1","email":"elavatar255@gmail.com"}],"homepage":"https://gitlab.com/underworf/nexus-framework#readme","bugs":{"url":"https://gitlab.com/underworf/nexus-framework/issues"},"bin":{"arckode":"bin/arckode.js"},"dist":{"shasum":"4fdd08a73144099f4203e17bc5cccf6b9610ccdd","tarball":"https://registry.npmjs.org/arckode-framework/-/arckode-framework-1.0.8.tgz","fileCount":44,"integrity":"sha512-pQw5iRJhpY5Xo4DnqdXYnBFvrClAjPyO/7cnVB9r6/QaglhjzbfXyWDdbLkKmBZp3/dhgYk8F7r1ekRZMZopdg==","signatures":[{"sig":"MEUCIAp63Fxrss1qERiatLeRuPrsKnhPSrAtYGoRLprDXssmAiEAxx5AGJ6umS86mkBNEI1ILU6IKfK6B5xBSr41CB3+yE0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":322471},"main":"./kernel/framework.ts","type":"module","engines":{"bun":">=1.0.0"},"exports":{".":"./kernel/framework.ts","./ws":"./modules/ws/index.ts","./events":"./modules/events/index.ts","./static":"./kernel/static.ts","./testing":"./kernel/testing.ts","./middlewares":"./kernel/middlewares.ts","./adapters/jwt":"./adapters/jwt.ts","./modules/mail":"./modules/mail/index.ts","./modules/queue":"./modules/queue/index.ts","./adapters/mysql":"./adapters/mysql.ts","./adapters/sqlite":"./adapters/sqlite.ts","./modules/storage":"./modules/storage/index.ts","./adapters/postgres":"./adapters/postgres.ts","./adapters/redis-cache":"./adapters/redis-cache.ts"},"gitHead":"7ba4c1e91fa3a52046b6ad655750c55b292435b3","scripts":{"test":"bun test","arckode":"bun run cli/index.ts","typecheck":"bunx tsc --noEmit","test:watch":"bun test --watch","test:coverage":"bun test --coverage","analyze:framework":"bun run cli/index.ts analyze"},"_npmUser":{"name":"arckode1","email":"elavatar255@gmail.com"},"repository":{"url":"git+https://gitlab.com/underworf/nexus-framework.git","type":"git"},"_npmVersion":"11.11.0","description":"AI-first TypeScript/Bun framework. Modular, SOLID, zero magic. The AI reads the composition root and knows everything.","directories":{},"_nodeVersion":"24.14.1","dependencies":{"jsonwebtoken":"^9.0.0","arckode-framework":"^1.0.3"},"_hasShrinkwrap":false,"devDependencies":{"@types/pg":"^8.11.0","bun-types":"^1.3.14","typescript":"^5.6.0","@types/nodemailer":"^6.4.0","@types/jsonwebtoken":"^9.0.7","@types/better-sqlite3":"^7.6.12"},"peerDependencies":{"pg":">=8.0.0","redis":">=4.0.0","mysql2":">=3.0.0","nodemailer":">=6.0.0","better-sqlite3":">=11.0.0"},"peerDependenciesMeta":{"pg":{"optional":true},"redis":{"optional":true},"mysql2":{"optional":true},"nodemailer":{"optional":true},"better-sqlite3":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/arckode-framework_1.0.8_1779427939407_0.5477608181541869","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"arckode-framework","version":"1.1.0","keywords":["framework","modular","SOLID","ai","bun","typescript","clean-architecture","composition-root","api","arckode"],"license":"MIT","_id":"arckode-framework@1.1.0","maintainers":[{"name":"arckode1","email":"elavatar255@gmail.com"}],"homepage":"https://gitlab.com/underworf/nexus-framework#readme","bugs":{"url":"https://gitlab.com/underworf/nexus-framework/issues"},"bin":{"arckode":"bin/arckode.js"},"dist":{"shasum":"817758efea9af8b0a7d94011299c3f4984dadaf0","tarball":"https://registry.npmjs.org/arckode-framework/-/arckode-framework-1.1.0.tgz","fileCount":45,"integrity":"sha512-Uc+Jr4mASWd92o2WgcoLDR4BPlZhdZE6z/EC4C3/qvYLGhoNID0T09ftQbHB8xNvDCWXZuOvfY2sc8r3CTHH0Q==","signatures":[{"sig":"MEUCIQDm90RXb0aBcsC1G0UtqvYQvv+WLauXfoFtuqK/AdKsiAIgXERxYXxiZM4BxuPESnJdEYWyuxC1aFd/LjXugAOJydc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":343661},"main":"./kernel/framework.ts","type":"module","engines":{"bun":">=1.0.0"},"exports":{".":"./kernel/framework.ts","./ws":"./modules/ws/index.ts","./events":"./modules/events/index.ts","./static":"./kernel/static.ts","./testing":"./kernel/testing.ts","./middlewares":"./kernel/middlewares.ts","./adapters/jwt":"./adapters/jwt.ts","./modules/mail":"./modules/mail/index.ts","./modules/queue":"./modules/queue/index.ts","./adapters/mysql":"./adapters/mysql.ts","./adapters/sqlite":"./adapters/sqlite.ts","./modules/storage":"./modules/storage/index.ts","./adapters/postgres":"./adapters/postgres.ts","./adapters/redis-cache":"./adapters/redis-cache.ts"},"gitHead":"7ba4c1e91fa3a52046b6ad655750c55b292435b3","scripts":{"test":"bun test","arckode":"bun run cli/index.ts","typecheck":"bunx tsc --noEmit","test:watch":"bun test --watch","test:coverage":"bun test --coverage","analyze:framework":"bun run cli/index.ts analyze"},"_npmUser":{"name":"arckode1","email":"elavatar255@gmail.com"},"repository":{"url":"git+https://gitlab.com/underworf/nexus-framework.git","type":"git"},"_npmVersion":"11.11.0","description":"AI-first TypeScript/Bun framework. Modular, SOLID, zero magic. The AI reads the composition root and knows everything.","directories":{},"_nodeVersion":"24.14.1","dependencies":{"jsonwebtoken":"^9.0.0"},"_hasShrinkwrap":false,"devDependencies":{"pg":"^8.0.0","@types/pg":"^8.11.0","bun-types":"^1.3.14","typescript":"^5.6.0","@types/nodemailer":"^6.4.0","@types/jsonwebtoken":"^9.0.7","@types/better-sqlite3":"^7.6.12"},"peerDependencies":{"pg":"^8.0.0","redis":">=4.0.0","mysql2":">=3.0.0","nodemailer":">=6.0.0","better-sqlite3":">=11.0.0"},"peerDependenciesMeta":{"pg":{"optional":true},"redis":{"optional":true},"mysql2":{"optional":true},"nodemailer":{"optional":true},"better-sqlite3":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/arckode-framework_1.1.0_1779475656621_0.4620386990836147","host":"s3://npm-registry-packages-npm-production"}},"1.1.1":{"name":"arckode-framework","version":"1.1.1","keywords":["framework","modular","SOLID","ai","bun","typescript","clean-architecture","composition-root","api","arckode"],"license":"MIT","_id":"arckode-framework@1.1.1","maintainers":[{"name":"arckode1","email":"elavatar255@gmail.com"}],"homepage":"https://gitlab.com/underworf/nexus-framework#readme","bugs":{"url":"https://gitlab.com/underworf/nexus-framework/issues"},"bin":{"arckode":"bin/arckode.js"},"dist":{"shasum":"4997ce80da0a2558bfc6774a6ae9eabe4ac9ae83","tarball":"https://registry.npmjs.org/arckode-framework/-/arckode-framework-1.1.1.tgz","fileCount":45,"integrity":"sha512-rBXe2PBcCIIeWdjKPIG18Fk8JHITjojWRAX9E2jtQLrCJrtXHkBvSLj19mkTG1djudMor4oy8AhTx1fgPhrjBA==","signatures":[{"sig":"MEUCIG+uQ108xE9SELKhwCSO+AjP9RNnxP6L9torW8zD/JByAiEAij1GoQ0oXJwyUNTJqRMBNmsFgG2iK1PcH1idw38DzTI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":345634},"main":"./kernel/framework.ts","type":"module","engines":{"bun":">=1.0.0"},"exports":{".":"./kernel/framework.ts","./ws":"./modules/ws/index.ts","./events":"./modules/events/index.ts","./static":"./kernel/static.ts","./testing":"./kernel/testing.ts","./middlewares":"./kernel/middlewares.ts","./adapters/jwt":"./adapters/jwt.ts","./modules/mail":"./modules/mail/index.ts","./modules/queue":"./modules/queue/index.ts","./adapters/mysql":"./adapters/mysql.ts","./adapters/sqlite":"./adapters/sqlite.ts","./modules/storage":"./modules/storage/index.ts","./adapters/postgres":"./adapters/postgres.ts","./adapters/redis-cache":"./adapters/redis-cache.ts"},"gitHead":"11fced16be17b4d20c9dc55bbb1e1a2c08a744d4","scripts":{"test":"bun test","arckode":"bun run cli/index.ts","typecheck":"bunx tsc --noEmit","test:watch":"bun test --watch","test:coverage":"bun test --coverage","analyze:framework":"bun run cli/index.ts analyze"},"_npmUser":{"name":"arckode1","email":"elavatar255@gmail.com"},"repository":{"url":"git+https://gitlab.com/underworf/nexus-framework.git","type":"git"},"_npmVersion":"11.11.0","description":"AI-first TypeScript/Bun framework. Modular, SOLID, zero magic. The AI reads the composition root and knows everything.","directories":{},"_nodeVersion":"24.14.1","dependencies":{"jsonwebtoken":"^9.0.0"},"_hasShrinkwrap":false,"devDependencies":{"pg":"^8.0.0","@types/pg":"^8.11.0","bun-types":"^1.3.14","typescript":"^5.6.0","@types/nodemailer":"^6.4.0","@types/jsonwebtoken":"^9.0.7","@types/better-sqlite3":"^7.6.12"},"peerDependencies":{"pg":"^8.0.0","redis":">=4.0.0","mysql2":">=3.0.0","nodemailer":">=6.0.0","better-sqlite3":">=11.0.0"},"peerDependenciesMeta":{"pg":{"optional":true},"redis":{"optional":true},"mysql2":{"optional":true},"nodemailer":{"optional":true},"better-sqlite3":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/arckode-framework_1.1.1_1779481946088_0.11308977364004247","host":"s3://npm-registry-packages-npm-production"}},"1.1.2":{"name":"arckode-framework","version":"1.1.2","keywords":["framework","modular","SOLID","ai","bun","typescript","clean-architecture","composition-root","api","arckode"],"license":"MIT","_id":"arckode-framework@1.1.2","maintainers":[{"name":"arckode1","email":"elavatar255@gmail.com"}],"homepage":"https://gitlab.com/underworf/nexus-framework#readme","bugs":{"url":"https://gitlab.com/underworf/nexus-framework/issues"},"bin":{"arckode":"bin/arckode.js"},"dist":{"shasum":"70198c8b0250fed388755b0c1f181505f3b542e0","tarball":"https://registry.npmjs.org/arckode-framework/-/arckode-framework-1.1.2.tgz","fileCount":45,"integrity":"sha512-hoI7ZknQjQyTD3zLp7qEVo3/8JGOCreraNrsBDMWELxE2QWwhVSjdeK00pOy05QpUMtG1TD+lbhZ9k3n32/mKg==","signatures":[{"sig":"MEUCID3YZbsC9yHTVfqv906uPtn4UqtEWpuqjtl5XM/uG+UQAiEAnmfItLBeSuEhLVf8ymxVEjdmHWWdZlan35CcifWmYH0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":346204},"main":"./kernel/framework.ts","type":"module","engines":{"bun":">=1.0.0"},"exports":{".":"./kernel/framework.ts","./ws":"./modules/ws/index.ts","./events":"./modules/events/index.ts","./static":"./kernel/static.ts","./testing":"./kernel/testing.ts","./middlewares":"./kernel/middlewares.ts","./adapters/jwt":"./adapters/jwt.ts","./modules/mail":"./modules/mail/index.ts","./modules/queue":"./modules/queue/index.ts","./adapters/mysql":"./adapters/mysql.ts","./adapters/sqlite":"./adapters/sqlite.ts","./modules/storage":"./modules/storage/index.ts","./adapters/postgres":"./adapters/postgres.ts","./adapters/redis-cache":"./adapters/redis-cache.ts"},"gitHead":"11fced16be17b4d20c9dc55bbb1e1a2c08a744d4","scripts":{"test":"bun test","arckode":"bun run cli/index.ts","typecheck":"bunx tsc --noEmit","test:watch":"bun test --watch","test:coverage":"bun test --coverage","analyze:framework":"bun run cli/index.ts analyze"},"_npmUser":{"name":"arckode1","email":"elavatar255@gmail.com"},"repository":{"url":"git+https://gitlab.com/underworf/nexus-framework.git","type":"git"},"_npmVersion":"11.11.0","description":"AI-first TypeScript/Bun framework. Modular, SOLID, zero magic. The AI reads the composition root and knows everything.","directories":{},"_nodeVersion":"24.14.1","dependencies":{"jsonwebtoken":"^9.0.0"},"_hasShrinkwrap":false,"devDependencies":{"pg":"^8.0.0","@types/pg":"^8.11.0","bun-types":"^1.3.14","typescript":"^5.6.0","@types/nodemailer":"^6.4.0","@types/jsonwebtoken":"^9.0.7"},"peerDependencies":{"pg":"^8.0.0","redis":">=4.0.0","mysql2":">=3.0.0","nodemailer":">=6.0.0"},"peerDependenciesMeta":{"pg":{"optional":true},"redis":{"optional":true},"mysql2":{"optional":true},"nodemailer":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/arckode-framework_1.1.2_1779485152868_0.27937815086019624","host":"s3://npm-registry-packages-npm-production"}},"1.2.0":{"name":"arckode-framework","version":"1.2.0","keywords":["framework","modular","SOLID","ai","bun","typescript","clean-architecture","composition-root","api","arckode"],"license":"MIT","_id":"arckode-framework@1.2.0","maintainers":[{"name":"arckode1","email":"elavatar255@gmail.com"}],"homepage":"https://gitlab.com/underworf/nexus-framework#readme","bugs":{"url":"https://gitlab.com/underworf/nexus-framework/issues"},"bin":{"arckode":"bin/arckode.js"},"dist":{"shasum":"4cb2fcbbf45fb5bad3af0ce47167c849d7457a25","tarball":"https://registry.npmjs.org/arckode-framework/-/arckode-framework-1.2.0.tgz","fileCount":45,"integrity":"sha512-m/NGgFP3gaJlkykGANKIa0a/OYwjmCvpzdVv/q1TbovdXpN262JtZ6LvotyH0Izk/dzCkNjgfUI4cyJ/hIByqA==","signatures":[{"sig":"MEYCIQCAWwNxBZn4Wvgnu33Gq19jle3fLsY8ttA9vwaitNg76QIhAJG37deDDn7OaLuhMhrygZqkaDOMwSHnQvBfRq/k9zZW","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":348369},"main":"./kernel/framework.ts","type":"module","engines":{"bun":">=1.0.0"},"exports":{".":"./kernel/framework.ts","./ws":"./modules/ws/index.ts","./events":"./modules/events/index.ts","./static":"./kernel/static.ts","./testing":"./kernel/testing.ts","./middlewares":"./kernel/middlewares.ts","./adapters/jwt":"./adapters/jwt.ts","./modules/mail":"./modules/mail/index.ts","./modules/queue":"./modules/queue/index.ts","./adapters/mysql":"./adapters/mysql.ts","./adapters/sqlite":"./adapters/sqlite.ts","./modules/storage":"./modules/storage/index.ts","./adapters/postgres":"./adapters/postgres.ts","./adapters/redis-cache":"./adapters/redis-cache.ts"},"gitHead":"552906965103020d091706188b66f469fa780bf2","scripts":{"test":"bun test","arckode":"bun run cli/index.ts","typecheck":"bunx tsc --noEmit","test:watch":"bun test --watch","test:coverage":"bun test --coverage","analyze:framework":"bun run cli/index.ts analyze"},"_npmUser":{"name":"arckode1","email":"elavatar255@gmail.com"},"repository":{"url":"git+https://gitlab.com/underworf/nexus-framework.git","type":"git"},"_npmVersion":"11.11.0","description":"AI-first TypeScript/Bun framework. Modular, SOLID, zero magic. The AI reads the composition root and knows everything.","directories":{},"_nodeVersion":"24.14.1","dependencies":{"jsonwebtoken":"^9.0.0"},"_hasShrinkwrap":false,"devDependencies":{"pg":"^8.0.0","redis":">=4.0.0","@types/pg":"^8.11.0","bun-types":"^1.3.14","typescript":"^5.6.0","@types/nodemailer":"^6.4.0","@types/jsonwebtoken":"^9.0.7"},"peerDependencies":{"pg":"^8.0.0","redis":"","mysql2":">=3.0.0","nodemailer":">=6.0.0"},"peerDependenciesMeta":{"pg":{"optional":true},"redis":{"optional":true},"mysql2":{"optional":true},"nodemailer":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/arckode-framework_1.2.0_1779559446157_0.4308403750961156","host":"s3://npm-registry-packages-npm-production"}},"1.2.1":{"name":"arckode-framework","version":"1.2.1","keywords":["framework","modular","SOLID","ai","bun","typescript","clean-architecture","composition-root","api","arckode"],"license":"MIT","_id":"arckode-framework@1.2.1","maintainers":[{"name":"arckode1","email":"elavatar255@gmail.com"}],"homepage":"https://gitlab.com/underworf/nexus-framework#readme","bugs":{"url":"https://gitlab.com/underworf/nexus-framework/issues"},"bin":{"arckode":"bin/arckode.js"},"dist":{"shasum":"8c06f0750de4611675cb8c5236ccdbf99f4417cf","tarball":"https://registry.npmjs.org/arckode-framework/-/arckode-framework-1.2.1.tgz","fileCount":45,"integrity":"sha512-+g8ZLuz9Ai9bjX2JofUuOVqKcIHNIukiutjX7cvWKRy/HW2vQ0p4s0kQ7x5x67WDKOfTxP7kyhHlgVpYMyoNVw==","signatures":[{"sig":"MEYCIQCdP2dXTfgz6yba/9A8AAgqTaNC7tPsbyTonEPM405dDwIhAOK2aJFuA47cRSbmNwX+Pk9SjuqTXJmXB/9DgCUe50jq","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":348383},"main":"./kernel/framework.ts","type":"module","engines":{"bun":">=1.0.0"},"exports":{".":"./kernel/framework.ts","./ws":"./modules/ws/index.ts","./events":"./modules/events/index.ts","./static":"./kernel/static.ts","./testing":"./kernel/testing.ts","./middlewares":"./kernel/middlewares.ts","./adapters/jwt":"./adapters/jwt.ts","./modules/mail":"./modules/mail/index.ts","./modules/queue":"./modules/queue/index.ts","./adapters/mysql":"./adapters/mysql.ts","./adapters/sqlite":"./adapters/sqlite.ts","./modules/storage":"./modules/storage/index.ts","./adapters/postgres":"./adapters/postgres.ts","./adapters/redis-cache":"./adapters/redis-cache.ts"},"gitHead":"552906965103020d091706188b66f469fa780bf2","scripts":{"test":"bun test","arckode":"bun run cli/index.ts","typecheck":"bunx tsc --noEmit","test:watch":"bun test --watch","test:coverage":"bun test --coverage","analyze:framework":"bun run cli/index.ts analyze"},"_npmUser":{"name":"arckode1","email":"elavatar255@gmail.com"},"repository":{"url":"git+https://gitlab.com/underworf/nexus-framework.git","type":"git"},"_npmVersion":"11.11.0","description":"AI-first TypeScript/Bun framework. Modular, SOLID, zero magic. The AI reads the composition root and knows everything.","directories":{},"_nodeVersion":"24.14.1","dependencies":{"jsonwebtoken":"^9.0.0"},"_hasShrinkwrap":false,"devDependencies":{"pg":"^8.0.0","redis":">=4.0.0","@types/pg":"^8.11.0","bun-types":"^1.3.14","typescript":"^5.6.0","@types/nodemailer":"^6.4.0","@types/jsonwebtoken":"^9.0.7"},"peerDependencies":{"pg":"^8.0.0","redis":"","mysql2":">=3.0.0","nodemailer":">=6.0.0"},"peerDependenciesMeta":{"pg":{"optional":true},"redis":{"optional":true},"mysql2":{"optional":true},"nodemailer":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/arckode-framework_1.2.1_1779586480536_0.9595192536927624","host":"s3://npm-registry-packages-npm-production"}},"1.2.2":{"name":"arckode-framework","version":"1.2.2","keywords":["framework","modular","SOLID","ai","bun","typescript","clean-architecture","composition-root","api","arckode"],"license":"MIT","_id":"arckode-framework@1.2.2","maintainers":[{"name":"arckode1","email":"elavatar255@gmail.com"}],"homepage":"https://gitlab.com/underworf/nexus-framework#readme","bugs":{"url":"https://gitlab.com/underworf/nexus-framework/issues"},"bin":{"arckode":"bin/arckode.js"},"dist":{"shasum":"bc86e96939fb0d53cfc4f296ee202f8ba817bc6c","tarball":"https://registry.npmjs.org/arckode-framework/-/arckode-framework-1.2.2.tgz","fileCount":45,"integrity":"sha512-mpqkUzaui/62z1Nk63tJ7kwb1exyjK/Z9r2Fv/ZBk4kDluPqFU52Ie4cJHxXSHd31xKuFqS4RV3XRF8LdMZPNA==","signatures":[{"sig":"MEUCIEgelN1OQVO02NMgcO6swq+ybmGQLyJgl7E43LMRm3QkAiEA4P3He+s3Jft9a3I5ovFjMfqaRcIgeRYVILKmVWeZSDA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":348407},"main":"./kernel/framework.ts","type":"module","engines":{"bun":">=1.0.0"},"exports":{".":"./kernel/framework.ts","./ws":"./modules/ws/index.ts","./events":"./modules/events/index.ts","./static":"./kernel/static.ts","./testing":"./kernel/testing.ts","./middlewares":"./kernel/middlewares.ts","./adapters/jwt":"./adapters/jwt.ts","./modules/mail":"./modules/mail/index.ts","./modules/queue":"./modules/queue/index.ts","./adapters/mysql":"./adapters/mysql.ts","./adapters/sqlite":"./adapters/sqlite.ts","./modules/storage":"./modules/storage/index.ts","./adapters/postgres":"./adapters/postgres.ts","./adapters/redis-cache":"./adapters/redis-cache.ts"},"gitHead":"70a211fd00c334173f43eb0ee47ee2e7300f1fd8","scripts":{"test":"bun test","arckode":"bun run cli/index.ts","typecheck":"bunx tsc --noEmit","test:watch":"bun test --watch","test:coverage":"bun test --coverage","analyze:framework":"bun run cli/index.ts analyze"},"_npmUser":{"name":"arckode1","email":"elavatar255@gmail.com"},"repository":{"url":"git+https://gitlab.com/underworf/nexus-framework.git","type":"git"},"_npmVersion":"11.11.0","description":"AI-first TypeScript/Bun framework. Modular, SOLID, zero magic. The AI reads the composition root and knows everything.","directories":{},"_nodeVersion":"24.14.1","dependencies":{"jsonwebtoken":"^9.0.0"},"_hasShrinkwrap":false,"devDependencies":{"pg":"^8.0.0","redis":">=4.0.0","@types/pg":"^8.11.0","bun-types":"^1.3.14","typescript":"^5.6.0","@types/nodemailer":"^6.4.0","@types/jsonwebtoken":"^9.0.7"},"peerDependencies":{"pg":"^8.0.0","redis":"","mysql2":">=3.0.0","nodemailer":">=6.0.0"},"peerDependenciesMeta":{"pg":{"optional":true},"redis":{"optional":true},"mysql2":{"optional":true},"nodemailer":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/arckode-framework_1.2.2_1779653919510_0.3982756880767433","host":"s3://npm-registry-packages-npm-production"}},"1.2.3":{"name":"arckode-framework","version":"1.2.3","keywords":["framework","modular","SOLID","ai","bun","typescript","clean-architecture","composition-root","api","arckode"],"license":"MIT","_id":"arckode-framework@1.2.3","maintainers":[{"name":"arckode1","email":"elavatar255@gmail.com"}],"homepage":"https://gitlab.com/underworf/nexus-framework#readme","bugs":{"url":"https://gitlab.com/underworf/nexus-framework/issues"},"bin":{"arckode":"bin/arckode.js"},"dist":{"shasum":"0aaefc1f82fcc5a9cabb53dbd5cb847ef391fb34","tarball":"https://registry.npmjs.org/arckode-framework/-/arckode-framework-1.2.3.tgz","fileCount":45,"integrity":"sha512-sWzNDLJmtUGpTM8EbuBLUDJo7Ujl845XE/Y3rpHDkGEyvZkm/luCWq51nZpLhVz9cklVRNRedO/fb1ILbZ/Cjw==","signatures":[{"sig":"MEYCIQCSUqXh4fw+a+KcKkxdPNB2xd+QiqjMmn0HdoeZSB5cIAIhAMuqDUrb3gjtOYwghF+msOWperlvN64/C90i8jIXkX1T","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":351002},"main":"./kernel/framework.ts","type":"module","engines":{"bun":">=1.0.0"},"exports":{".":"./kernel/framework.ts","./ws":"./modules/ws/index.ts","./events":"./modules/events/index.ts","./static":"./kernel/static.ts","./testing":"./kernel/testing.ts","./middlewares":"./kernel/middlewares.ts","./adapters/jwt":"./adapters/jwt.ts","./modules/mail":"./modules/mail/index.ts","./modules/queue":"./modules/queue/index.ts","./adapters/mysql":"./adapters/mysql.ts","./adapters/sqlite":"./adapters/sqlite.ts","./modules/storage":"./modules/storage/index.ts","./adapters/postgres":"./adapters/postgres.ts","./adapters/redis-cache":"./adapters/redis-cache.ts"},"gitHead":"70a211fd00c334173f43eb0ee47ee2e7300f1fd8","scripts":{"test":"bun test","arckode":"bun run cli/index.ts","typecheck":"bunx tsc --noEmit","test:watch":"bun test --watch","test:coverage":"bun test --coverage","analyze:framework":"bun run cli/index.ts analyze"},"_npmUser":{"name":"arckode1","email":"elavatar255@gmail.com"},"repository":{"url":"git+https://gitlab.com/underworf/nexus-framework.git","type":"git"},"_npmVersion":"11.11.0","description":"AI-first TypeScript/Bun framework. Modular, SOLID, zero magic. The AI reads the composition root and knows everything.","directories":{},"_nodeVersion":"24.14.1","dependencies":{"jsonwebtoken":"^9.0.0"},"_hasShrinkwrap":false,"devDependencies":{"pg":"^8.0.0","redis":">=4.0.0","@types/pg":"^8.11.0","bun-types":"^1.3.14","typescript":"^5.6.0","@types/nodemailer":"^6.4.0","@types/jsonwebtoken":"^9.0.7"},"peerDependencies":{"pg":"^8.0.0","redis":"","mysql2":">=3.0.0","nodemailer":">=6.0.0"},"peerDependenciesMeta":{"pg":{"optional":true},"redis":{"optional":true},"mysql2":{"optional":true},"nodemailer":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/arckode-framework_1.2.3_1779684256410_0.03219858341884496","host":"s3://npm-registry-packages-npm-production"}},"1.3.0":{"name":"arckode-framework","version":"1.3.0","keywords":["framework","modular","SOLID","ai","bun","typescript","clean-architecture","composition-root","api","arckode"],"license":"MIT","_id":"arckode-framework@1.3.0","maintainers":[{"name":"arckode1","email":"elavatar255@gmail.com"}],"homepage":"https://gitlab.com/underworf/nexus-framework#readme","bugs":{"url":"https://gitlab.com/underworf/nexus-framework/issues"},"bin":{"arckode":"bin/arckode.js"},"dist":{"shasum":"0c5cb5085dac4f27d4c87d68376654fec4750385","tarball":"https://registry.npmjs.org/arckode-framework/-/arckode-framework-1.3.0.tgz","fileCount":45,"integrity":"sha512-KPomn60xdQsxuprrUPJFBp8dddHap8ckjIzB59yAOHIja3FtMw2c0SGStvaoqra1b+sVP0CgD+3BxETgEesWRQ==","signatures":[{"sig":"MEQCIEmG79WY7MYqMlHwfUKaylHAOn0ADKyUzbNT2t2yUm9tAiBq4XmfNASVeV6fSvQBTZ5R8GCaGHbe++ImxZW+/fUjLw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":354318},"main":"./kernel/framework.ts","type":"module","engines":{"bun":">=1.0.0"},"exports":{".":"./kernel/framework.ts","./ws":"./modules/ws/index.ts","./events":"./modules/events/index.ts","./static":"./kernel/static.ts","./testing":"./kernel/testing.ts","./middlewares":"./kernel/middlewares.ts","./adapters/jwt":"./adapters/jwt.ts","./modules/mail":"./modules/mail/index.ts","./modules/queue":"./modules/queue/index.ts","./adapters/mysql":"./adapters/mysql.ts","./adapters/sqlite":"./adapters/sqlite.ts","./modules/storage":"./modules/storage/index.ts","./adapters/postgres":"./adapters/postgres.ts","./adapters/redis-cache":"./adapters/redis-cache.ts"},"gitHead":"61c9f450bf12d315b7960d3b003900f29d1a9a91","scripts":{"test":"bun test","arckode":"bun run cli/index.ts","typecheck":"bunx tsc --noEmit","test:watch":"bun test --watch","test:coverage":"bun test --coverage","analyze:framework":"bun run cli/index.ts analyze"},"_npmUser":{"name":"arckode1","email":"elavatar255@gmail.com"},"repository":{"url":"git+https://gitlab.com/underworf/nexus-framework.git","type":"git"},"_npmVersion":"11.11.0","description":"AI-first TypeScript/Bun framework. Modular, SOLID, zero magic. The AI reads the composition root and knows everything.","directories":{},"_nodeVersion":"24.14.1","dependencies":{"jsonwebtoken":"^9.0.0"},"_hasShrinkwrap":false,"devDependencies":{"pg":"^8.0.0","redis":">=4.0.0","@types/pg":"^8.11.0","bun-types":"^1.3.14","typescript":"^5.6.0","@types/nodemailer":"^6.4.0","@types/jsonwebtoken":"^9.0.7"},"peerDependencies":{"pg":"^8.0.0","redis":"","mysql2":">=3.0.0","nodemailer":">=6.0.0"},"peerDependenciesMeta":{"pg":{"optional":true},"redis":{"optional":true},"mysql2":{"optional":true},"nodemailer":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/arckode-framework_1.3.0_1779733435334_0.2773658425874168","host":"s3://npm-registry-packages-npm-production"}},"1.3.1":{"name":"arckode-framework","version":"1.3.1","keywords":["framework","modular","SOLID","ai","bun","typescript","clean-architecture","composition-root","api","arckode"],"license":"MIT","_id":"arckode-framework@1.3.1","maintainers":[{"name":"arckode1","email":"elavatar255@gmail.com"}],"homepage":"https://gitlab.com/underworf/nexus-framework#readme","bugs":{"url":"https://gitlab.com/underworf/nexus-framework/issues"},"bin":{"arckode":"bin/arckode.js"},"dist":{"shasum":"eb594e4bd4d9fca453aa044f0e5db05089dbf764","tarball":"https://registry.npmjs.org/arckode-framework/-/arckode-framework-1.3.1.tgz","fileCount":45,"integrity":"sha512-Jyu4RJFTRya2sIkqWrdUxCrWAyLQ050htp+KFKIvuWocYyj/3eT2wRloJscK4T4uEGH0rYWktVZoRbwa695Awg==","signatures":[{"sig":"MEYCIQD51TFguIZsSSeMgLWcGe9OG96pe10eTxuUVfKp3zktOgIhANwgjNxa+Ou/wciHHNicESAKnkMABE56IRAdsDa3/pkw","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":355848},"main":"./kernel/framework.ts","type":"module","engines":{"bun":">=1.0.0"},"exports":{".":"./kernel/framework.ts","./ws":"./modules/ws/index.ts","./events":"./modules/events/index.ts","./static":"./kernel/static.ts","./testing":"./kernel/testing.ts","./middlewares":"./kernel/middlewares.ts","./adapters/jwt":"./adapters/jwt.ts","./modules/mail":"./modules/mail/index.ts","./modules/queue":"./modules/queue/index.ts","./adapters/mysql":"./adapters/mysql.ts","./adapters/sqlite":"./adapters/sqlite.ts","./modules/storage":"./modules/storage/index.ts","./adapters/postgres":"./adapters/postgres.ts","./adapters/redis-cache":"./adapters/redis-cache.ts","./modules/storage/local-adapter":"./modules/storage/local-adapter.ts"},"gitHead":"a2847d5393be6d98448f8bb0d4fb34d803c3cf7d","scripts":{"test":"bun test","arckode":"bun run cli/index.ts","typecheck":"bunx tsc --noEmit","test:watch":"bun test --watch","test:coverage":"bun test --coverage","analyze:framework":"bun run cli/index.ts analyze"},"_npmUser":{"name":"arckode1","email":"elavatar255@gmail.com"},"repository":{"url":"git+https://gitlab.com/underworf/nexus-framework.git","type":"git"},"_npmVersion":"11.11.0","description":"AI-first TypeScript/Bun framework. Modular, SOLID, zero magic. The AI reads the composition root and knows everything.","directories":{},"_nodeVersion":"24.14.1","dependencies":{"jsonwebtoken":"^9.0.0"},"_hasShrinkwrap":false,"devDependencies":{"pg":"^8.0.0","redis":">=4.0.0","@types/pg":"^8.11.0","bun-types":"^1.3.14","typescript":"^5.6.0","@types/nodemailer":"^6.4.0","@types/jsonwebtoken":"^9.0.7"},"peerDependencies":{"pg":"^8.0.0","redis":"","mysql2":">=3.0.0","nodemailer":">=6.0.0"},"peerDependenciesMeta":{"pg":{"optional":true},"redis":{"optional":true},"mysql2":{"optional":true},"nodemailer":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/arckode-framework_1.3.1_1779733557839_0.6636093898516835","host":"s3://npm-registry-packages-npm-production"}},"1.3.2":{"name":"arckode-framework","version":"1.3.2","keywords":["framework","modular","SOLID","ai","bun","typescript","clean-architecture","composition-root","api","arckode"],"license":"MIT","_id":"arckode-framework@1.3.2","maintainers":[{"name":"arckode1","email":"elavatar255@gmail.com"}],"homepage":"https://gitlab.com/underworf/nexus-framework#readme","bugs":{"url":"https://gitlab.com/underworf/nexus-framework/issues"},"bin":{"arckode":"bin/arckode.js"},"dist":{"shasum":"eadc01e1f8c4395ed821b1823545989924a2fc92","tarball":"https://registry.npmjs.org/arckode-framework/-/arckode-framework-1.3.2.tgz","fileCount":45,"integrity":"sha512-HV1eoU1ba2B+/n32WAxN/WpkfL4RG9I2uy+LRsrvmlYZVZKMpOPGa+fO7CudLEQTaXkvvPmi2B9ARitXBnw2gg==","signatures":[{"sig":"MEUCIQD5xlyBTV5mrSzVc3FMcaJGnYz8b1uyE01XYJJM9UKIDgIge9ylmE27xdglxcwgru3g8FJ5Rf1tbujkJIl5dSM5EHc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":357522},"main":"./kernel/framework.ts","type":"module","engines":{"bun":">=1.0.0"},"exports":{".":"./kernel/framework.ts","./ws":"./modules/ws/index.ts","./events":"./modules/events/index.ts","./static":"./kernel/static.ts","./testing":"./kernel/testing.ts","./middlewares":"./kernel/middlewares.ts","./adapters/jwt":"./adapters/jwt.ts","./modules/mail":"./modules/mail/index.ts","./modules/queue":"./modules/queue/index.ts","./adapters/mysql":"./adapters/mysql.ts","./adapters/sqlite":"./adapters/sqlite.ts","./modules/storage":"./modules/storage/index.ts","./adapters/postgres":"./adapters/postgres.ts","./adapters/redis-cache":"./adapters/redis-cache.ts","./modules/storage/local-adapter":"./modules/storage/local-adapter.ts"},"gitHead":"a2847d5393be6d98448f8bb0d4fb34d803c3cf7d","scripts":{"test":"bun test","arckode":"bun run cli/index.ts","typecheck":"bunx tsc --noEmit","test:watch":"bun test --watch","test:coverage":"bun test --coverage","analyze:framework":"bun run cli/index.ts analyze"},"_npmUser":{"name":"arckode1","email":"elavatar255@gmail.com"},"repository":{"url":"git+https://gitlab.com/underworf/nexus-framework.git","type":"git"},"_npmVersion":"11.11.0","description":"AI-first TypeScript/Bun framework. Modular, SOLID, zero magic. The AI reads the composition root and knows everything.","directories":{},"_nodeVersion":"24.14.1","dependencies":{"jsonwebtoken":"^9.0.0"},"_hasShrinkwrap":false,"devDependencies":{"pg":"^8.0.0","redis":">=4.0.0","@types/pg":"^8.11.0","bun-types":"^1.3.14","typescript":"^5.6.0","@types/nodemailer":"^6.4.0","@types/jsonwebtoken":"^9.0.7"},"peerDependencies":{"pg":"^8.0.0","redis":"","mysql2":">=3.0.0","nodemailer":">=6.0.0"},"peerDependenciesMeta":{"pg":{"optional":true},"redis":{"optional":true},"mysql2":{"optional":true},"nodemailer":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/arckode-framework_1.3.2_1780115918186_0.26036408654800836","host":"s3://npm-registry-packages-npm-production"}},"1.4.0":{"name":"arckode-framework","version":"1.4.0","keywords":["framework","modular","SOLID","ai","bun","typescript","clean-architecture","composition-root","api","arckode"],"license":"MIT","_id":"arckode-framework@1.4.0","maintainers":[{"name":"arckode1","email":"elavatar255@gmail.com"}],"homepage":"https://gitlab.com/underworf/nexus-framework#readme","bugs":{"url":"https://gitlab.com/underworf/nexus-framework/issues"},"bin":{"arckode":"bin/arckode.js"},"dist":{"shasum":"450c661479a6caf8da9c5648d37108730b019a20","tarball":"https://registry.npmjs.org/arckode-framework/-/arckode-framework-1.4.0.tgz","fileCount":81,"integrity":"sha512-2O2FQXMw7FqrbiJlp3cPYAa1k8SF0aAoyc3PzsT3zBwTvWygCsSLmjErSyz6f4Nje2z9NCxBnc05+DrXjTZ1wg==","signatures":[{"sig":"MEUCIFY6OKMxfwBy3zPYqAutgRVIi+KZCXke4+kUSKQDJn0AAiEAioxe07yiWoGbsW27sFJDU9Nd3YRNh8k3DeHRkbCqllU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":295167},"main":"./kernel/framework.ts","type":"module","engines":{"bun":">=1.0.0"},"exports":{".":"./kernel/framework.ts","./ws":"./modules/ws/index.ts","./events":"./modules/events/index.ts","./static":"./kernel/static.ts","./testing":"./kernel/testing.ts","./middlewares":"./kernel/middlewares.ts","./adapters/jwt":"./adapters/jwt.ts","./modules/mail":"./modules/mail/index.ts","./modules/queue":"./modules/queue/index.ts","./adapters/mysql":"./adapters/mysql.ts","./adapters/sqlite":"./adapters/sqlite.ts","./modules/storage":"./modules/storage/index.ts","./adapters/postgres":"./adapters/postgres.ts","./adapters/redis-cache":"./adapters/redis-cache.ts","./cli/commands/db-seed":"./cli/commands/db-seed.ts","./cli/commands/db-migrate":"./cli/commands/db-migrate.ts","./modules/storage/local-adapter":"./modules/storage/local-adapter.ts"},"gitHead":"ee1344270d32c62c66329f7f5888d65310c3ca0a","scripts":{"test":"bun test","arckode":"bun run cli/index.ts","typecheck":"bunx tsc --noEmit","test:watch":"bun test --watch","test:coverage":"bun test --coverage","analyze:framework":"bun run cli/index.ts analyze"},"_npmUser":{"name":"arckode1","email":"elavatar255@gmail.com"},"repository":{"url":"git+https://gitlab.com/underworf/nexus-framework.git","type":"git"},"_npmVersion":"11.11.0","description":"AI-first TypeScript/Bun framework. Modular, SOLID, zero magic. The AI reads the composition root and knows everything.","directories":{},"_nodeVersion":"24.14.1","dependencies":{"jsonwebtoken":"^9.0.0"},"_hasShrinkwrap":false,"devDependencies":{"pg":"^8.0.0","redis":">=4.0.0","@types/pg":"^8.11.0","bun-types":"^1.3.14","typescript":"^5.6.0","@types/nodemailer":"^6.4.0","@types/jsonwebtoken":"^9.0.7"},"peerDependencies":{"pg":"^8.0.0","redis":"","mysql2":">=3.0.0","nodemailer":">=6.0.0"},"peerDependenciesMeta":{"pg":{"optional":true},"redis":{"optional":true},"mysql2":{"optional":true},"nodemailer":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/arckode-framework_1.4.0_1780243768217_0.4586912886570915","host":"s3://npm-registry-packages-npm-production"}},"1.4.1":{"name":"arckode-framework","version":"1.4.1","keywords":["framework","modular","SOLID","ai","bun","typescript","clean-architecture","composition-root","api","arckode"],"license":"MIT","_id":"arckode-framework@1.4.1","maintainers":[{"name":"arckode1","email":"elavatar255@gmail.com"}],"homepage":"https://gitlab.com/underworf/nexus-framework#readme","bugs":{"url":"https://gitlab.com/underworf/nexus-framework/issues"},"bin":{"arckode":"bin/arckode.js"},"dist":{"shasum":"adab9cb7cb0b5d0997bf9799e9bddeb139218220","tarball":"https://registry.npmjs.org/arckode-framework/-/arckode-framework-1.4.1.tgz","fileCount":81,"integrity":"sha512-BNEf1WNiLrUQa0Lkg46s/5TajODmbdoJWm5wHhXLBF/SYf03vu0+XBwHfMmGYYqI6q0jcuDW2Qu0TiBCofZicA==","signatures":[{"sig":"MEYCIQCsZHT6K5x71XpLeaoLZNV/ARtmOKHdUlhdtTKlOHMjbgIhAKy96I0nG3bj8PdVVqIDkwcHSllUM5pR2allel0S59Ww","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":295167},"main":"./kernel/framework.ts","type":"module","engines":{"bun":">=1.0.0"},"exports":{".":"./kernel/framework.ts","./ws":"./modules/ws/index.ts","./events":"./modules/events/index.ts","./static":"./kernel/static.ts","./testing":"./kernel/testing.ts","./middlewares":"./kernel/middlewares.ts","./adapters/jwt":"./adapters/jwt.ts","./modules/mail":"./modules/mail/index.ts","./modules/queue":"./modules/queue/index.ts","./adapters/mysql":"./adapters/mysql.ts","./adapters/sqlite":"./adapters/sqlite.ts","./modules/storage":"./modules/storage/index.ts","./adapters/postgres":"./adapters/postgres.ts","./adapters/redis-cache":"./adapters/redis-cache.ts","./cli/commands/db-seed":"./cli/commands/db-seed.ts","./cli/commands/db-migrate":"./cli/commands/db-migrate.ts","./modules/storage/local-adapter":"./modules/storage/local-adapter.ts"},"gitHead":"246f6ad17ffd26ab758900c055a175e25de14d5f","scripts":{"test":"bun test","arckode":"bun run cli/index.ts","typecheck":"bunx tsc --noEmit","test:watch":"bun test --watch","test:coverage":"bun test --coverage","analyze:framework":"bun run cli/index.ts analyze"},"_npmUser":{"name":"arckode1","email":"elavatar255@gmail.com"},"repository":{"url":"git+https://gitlab.com/underworf/nexus-framework.git","type":"git"},"_npmVersion":"11.11.0","description":"AI-first TypeScript/Bun framework. Modular, SOLID, zero magic. The AI reads the composition root and knows everything.","directories":{},"_nodeVersion":"24.14.1","dependencies":{"jsonwebtoken":"^9.0.0"},"_hasShrinkwrap":false,"devDependencies":{"pg":"^8.0.0","redis":">=4.0.0","@types/pg":"^8.11.0","bun-types":"^1.3.14","typescript":"^5.6.0","@types/nodemailer":"^6.4.0","@types/jsonwebtoken":"^9.0.7"},"peerDependencies":{"pg":"^8.0.0","redis":"","mysql2":">=3.0.0","nodemailer":">=6.0.0"},"peerDependenciesMeta":{"pg":{"optional":true},"redis":{"optional":true},"mysql2":{"optional":true},"nodemailer":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/arckode-framework_1.4.1_1780244019370_0.42121521260175654","host":"s3://npm-registry-packages-npm-production"}},"1.4.2":{"name":"arckode-framework","version":"1.4.2","keywords":["framework","modular","SOLID","ai","bun","typescript","clean-architecture","composition-root","api","arckode"],"license":"MIT","_id":"arckode-framework@1.4.2","maintainers":[{"name":"arckode1","email":"elavatar255@gmail.com"}],"homepage":"https://gitlab.com/underworf/nexus-framework#readme","bugs":{"url":"https://gitlab.com/underworf/nexus-framework/issues"},"bin":{"arckode":"bin/arckode.js"},"dist":{"shasum":"d7d27886af8710d3e087da44372d1fc9bfe0f453","tarball":"https://registry.npmjs.org/arckode-framework/-/arckode-framework-1.4.2.tgz","fileCount":81,"integrity":"sha512-hsCJD5J/McsRjS+BkJF8Qa74ObB78bzfG3zkJwt3ykvJVBMlu2Plw3vSSvtZl0qzCC+5RYjFLvFMCij1j/zfDA==","signatures":[{"sig":"MEYCIQCJRhVMNghbzkZ/WDQ/gD6+khCBA9ZsmKd2jkhDyUeQAwIhAKsi6SXQCIsjMsbSe2HsMEuc5swNLZdTanPJppFeCRIA","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":296071},"main":"./kernel/framework.ts","type":"module","engines":{"bun":">=1.0.0"},"exports":{".":"./kernel/framework.ts","./ws":"./modules/ws/index.ts","./events":"./modules/events/index.ts","./static":"./kernel/static.ts","./testing":"./kernel/testing.ts","./middlewares":"./kernel/middlewares.ts","./adapters/jwt":"./adapters/jwt.ts","./modules/mail":"./modules/mail/index.ts","./modules/queue":"./modules/queue/index.ts","./adapters/mysql":"./adapters/mysql.ts","./adapters/sqlite":"./adapters/sqlite.ts","./modules/storage":"./modules/storage/index.ts","./adapters/postgres":"./adapters/postgres.ts","./adapters/redis-cache":"./adapters/redis-cache.ts","./cli/commands/db-seed":"./cli/commands/db-seed.ts","./cli/commands/db-migrate":"./cli/commands/db-migrate.ts","./modules/storage/local-adapter":"./modules/storage/local-adapter.ts"},"gitHead":"246f6ad17ffd26ab758900c055a175e25de14d5f","scripts":{"test":"bun test","arckode":"bun run cli/index.ts","typecheck":"bunx tsc --noEmit","test:watch":"bun test --watch","test:coverage":"bun test --coverage","analyze:framework":"bun run cli/index.ts analyze"},"_npmUser":{"name":"arckode1","email":"elavatar255@gmail.com"},"repository":{"url":"git+https://gitlab.com/underworf/nexus-framework.git","type":"git"},"_npmVersion":"11.11.0","description":"AI-first TypeScript/Bun framework. Modular, SOLID, zero magic. The AI reads the composition root and knows everything.","directories":{},"_nodeVersion":"24.14.1","dependencies":{"jsonwebtoken":"^9.0.0"},"_hasShrinkwrap":false,"devDependencies":{"pg":"^8.0.0","redis":">=4.0.0","@types/pg":"^8.11.0","bun-types":"^1.3.14","typescript":"^5.6.0","@types/nodemailer":"^6.4.0","@types/jsonwebtoken":"^9.0.7"},"peerDependencies":{"pg":"^8.0.0","redis":"","mysql2":">=3.0.0","nodemailer":">=6.0.0"},"peerDependenciesMeta":{"pg":{"optional":true},"redis":{"optional":true},"mysql2":{"optional":true},"nodemailer":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/arckode-framework_1.4.2_1780285345097_0.0062654291649815175","host":"s3://npm-registry-packages-npm-production"}},"1.4.3":{"name":"arckode-framework","version":"1.4.3","keywords":["framework","modular","SOLID","ai","bun","typescript","clean-architecture","composition-root","api","arckode"],"license":"MIT","_id":"arckode-framework@1.4.3","maintainers":[{"name":"arckode1","email":"elavatar255@gmail.com"}],"homepage":"https://gitlab.com/underworf/nexus-framework#readme","bugs":{"url":"https://gitlab.com/underworf/nexus-framework/issues"},"bin":{"arckode":"bin/arckode.js"},"dist":{"shasum":"d792b9a082aa8d5c008534bd72165c1641ba64de","tarball":"https://registry.npmjs.org/arckode-framework/-/arckode-framework-1.4.3.tgz","fileCount":81,"integrity":"sha512-psnjZEJH5azg2QjcXTsaxmRvJHzNg7uccSp3VaHn4swdUo9ZguAqVBCUI47D46sSVWwt1s31isBP6x2pYU9npA==","signatures":[{"sig":"MEQCIBbZDedW84fqORjp+dAKYQN8u+P7tu0TJ688rLR1jxEjAiBIZsnEeNcc2yHQ4PfS6sI60otlK6osyqDENuU8EcGtmg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":296093},"main":"./kernel/framework.ts","type":"module","engines":{"bun":">=1.0.0"},"exports":{".":"./kernel/framework.ts","./ws":"./modules/ws/index.ts","./events":"./modules/events/index.ts","./static":"./kernel/static.ts","./testing":"./kernel/testing.ts","./middlewares":"./kernel/middlewares.ts","./adapters/jwt":"./adapters/jwt.ts","./modules/mail":"./modules/mail/index.ts","./modules/queue":"./modules/queue/index.ts","./adapters/mysql":"./adapters/mysql.ts","./adapters/sqlite":"./adapters/sqlite.ts","./modules/storage":"./modules/storage/index.ts","./adapters/postgres":"./adapters/postgres.ts","./adapters/redis-cache":"./adapters/redis-cache.ts","./cli/commands/db-seed":"./cli/commands/db-seed.ts","./cli/commands/db-migrate":"./cli/commands/db-migrate.ts","./modules/storage/local-adapter":"./modules/storage/local-adapter.ts"},"gitHead":"ad8de0222ba9940d30a9bb6a6f4958035b12c06b","scripts":{"test":"bun test","arckode":"bun run cli/index.ts","typecheck":"bunx tsc --noEmit","test:watch":"bun test --watch","test:coverage":"bun test --coverage","analyze:framework":"bun run cli/index.ts analyze"},"_npmUser":{"name":"arckode1","email":"elavatar255@gmail.com"},"repository":{"url":"git+https://gitlab.com/underworf/nexus-framework.git","type":"git"},"_npmVersion":"11.11.0","description":"AI-first TypeScript/Bun framework. Modular, SOLID, zero magic. The AI reads the composition root and knows everything.","directories":{},"_nodeVersion":"24.14.1","dependencies":{"jsonwebtoken":"^9.0.0"},"_hasShrinkwrap":false,"devDependencies":{"pg":"^8.0.0","redis":">=4.0.0","@types/pg":"^8.11.0","bun-types":"^1.3.14","typescript":"^5.6.0","@types/nodemailer":"^6.4.0","@types/jsonwebtoken":"^9.0.7"},"peerDependencies":{"pg":"^8.0.0","redis":"","mysql2":">=3.0.0","nodemailer":">=6.0.0"},"peerDependenciesMeta":{"pg":{"optional":true},"redis":{"optional":true},"mysql2":{"optional":true},"nodemailer":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/arckode-framework_1.4.3_1780285465153_0.4935813725443223","host":"s3://npm-registry-packages-npm-production"}},"1.4.4":{"name":"arckode-framework","version":"1.4.4","keywords":["framework","modular","SOLID","ai","bun","typescript","clean-architecture","composition-root","api","arckode"],"license":"MIT","_id":"arckode-framework@1.4.4","maintainers":[{"name":"arckode1","email":"elavatar255@gmail.com"}],"homepage":"https://gitlab.com/underworf/nexus-framework#readme","bugs":{"url":"https://gitlab.com/underworf/nexus-framework/issues"},"bin":{"arckode":"bin/arckode.js"},"dist":{"shasum":"25f32557e177ccbb640ef98f611f8eb4d8651efa","tarball":"https://registry.npmjs.org/arckode-framework/-/arckode-framework-1.4.4.tgz","fileCount":81,"integrity":"sha512-Rlhk8+yrDPEW0tfVPasIKAqNfiUb/Z3EQYAnkOilWsTGbK7mWiKoJd0iZBii1jdtXlFxpWydVYYh4OjOvUXasA==","signatures":[{"sig":"MEYCIQC/ff4OO7s1pTbw++mBQyaDOONg1D3S4twDfH+C+qY0UgIhAMm+E7sqmOY76QictFvjYYPDxEG/+5PWs1Oi6OO/k5TR","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":315174},"main":"./kernel/framework.ts","type":"module","engines":{"bun":">=1.0.0"},"exports":{".":"./kernel/framework.ts","./ws":"./modules/ws/index.ts","./events":"./modules/events/index.ts","./static":"./kernel/static.ts","./testing":"./kernel/testing.ts","./middlewares":"./kernel/middlewares.ts","./adapters/jwt":"./adapters/jwt.ts","./modules/mail":"./modules/mail/index.ts","./modules/queue":"./modules/queue/index.ts","./adapters/mysql":"./adapters/mysql.ts","./adapters/sqlite":"./adapters/sqlite.ts","./modules/storage":"./modules/storage/index.ts","./adapters/postgres":"./adapters/postgres.ts","./adapters/redis-cache":"./adapters/redis-cache.ts","./cli/commands/db-seed":"./cli/commands/db-seed.ts","./cli/commands/db-migrate":"./cli/commands/db-migrate.ts","./modules/storage/local-adapter":"./modules/storage/local-adapter.ts"},"gitHead":"5b6ff72df29f1a65e797cae3f86d9d47822d56c8","scripts":{"test":"bun test","arckode":"bun run cli/index.ts","typecheck":"bunx tsc --noEmit","test:watch":"bun test --watch","test:coverage":"bun test --coverage","analyze:framework":"bun run cli/index.ts analyze"},"_npmUser":{"name":"arckode1","email":"elavatar255@gmail.com"},"repository":{"url":"git+https://gitlab.com/underworf/nexus-framework.git","type":"git"},"_npmVersion":"11.11.0","description":"AI-first TypeScript/Bun framework. Modular, SOLID, zero magic. The AI reads the composition root and knows everything.","directories":{},"_nodeVersion":"24.14.1","dependencies":{"jsonwebtoken":"^9.0.0"},"_hasShrinkwrap":false,"devDependencies":{"pg":"^8.0.0","redis":">=4.0.0","@types/pg":"^8.11.0","bun-types":"^1.3.14","typescript":"^5.6.0","@types/nodemailer":"^6.4.0","@types/jsonwebtoken":"^9.0.7"},"peerDependencies":{"pg":"^8.0.0","redis":"","mysql2":">=3.0.0","nodemailer":">=6.0.0"},"peerDependenciesMeta":{"pg":{"optional":true},"redis":{"optional":true},"mysql2":{"optional":true},"nodemailer":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/arckode-framework_1.4.4_1782094515345_0.20909124481043895","host":"s3://npm-registry-packages-npm-production"}},"1.4.5":{"name":"arckode-framework","version":"1.4.5","keywords":["framework","modular","SOLID","ai","bun","typescript","clean-architecture","composition-root","api","arckode"],"license":"MIT","_id":"arckode-framework@1.4.5","maintainers":[{"name":"arckode1","email":"elavatar255@gmail.com"}],"homepage":"https://gitlab.com/underworf/nexus-framework#readme","bugs":{"url":"https://gitlab.com/underworf/nexus-framework/issues"},"bin":{"arckode":"bin/arckode.js"},"dist":{"shasum":"55a34be8a4dc262f03e4e2aa1d359bb9c4a0a553","tarball":"https://registry.npmjs.org/arckode-framework/-/arckode-framework-1.4.5.tgz","fileCount":81,"integrity":"sha512-jOtz67otRdNc4IPm6jgS8xGhcgj6uWHBPrx/rMRLZK3TSZqFk2ehy8Y33w0crEH0NMNrZ8Hj64BJCBTi0dGY0A==","signatures":[{"sig":"MEUCIQC5bZj41GLfr4KIe50wXPvBPlHj6I4ksFIcbZsNqA8K3wIgdkwX54vfbTwjD/XjHXI+y0ltX/VY2mwB7Z0yV0O6zSc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":318489},"main":"./kernel/framework.ts","type":"module","engines":{"bun":">=1.0.0"},"exports":{".":"./kernel/framework.ts","./ws":"./modules/ws/index.ts","./events":"./modules/events/index.ts","./static":"./kernel/static.ts","./testing":"./kernel/testing.ts","./middlewares":"./kernel/middlewares.ts","./adapters/jwt":"./adapters/jwt.ts","./modules/mail":"./modules/mail/index.ts","./modules/queue":"./modules/queue/index.ts","./adapters/mysql":"./adapters/mysql.ts","./adapters/sqlite":"./adapters/sqlite.ts","./modules/storage":"./modules/storage/index.ts","./adapters/postgres":"./adapters/postgres.ts","./adapters/redis-cache":"./adapters/redis-cache.ts","./cli/commands/db-seed":"./cli/commands/db-seed.ts","./cli/commands/db-migrate":"./cli/commands/db-migrate.ts","./modules/storage/local-adapter":"./modules/storage/local-adapter.ts"},"gitHead":"dc035d9d37c0e555cffc04fcabdbe32ca9bd1642","scripts":{"test":"bun test","arckode":"bun run cli/index.ts","typecheck":"bunx tsc --noEmit","test:watch":"bun test --watch","test:coverage":"bun test --coverage","analyze:framework":"bun run cli/index.ts analyze"},"_npmUser":{"name":"arckode1","email":"elavatar255@gmail.com"},"repository":{"url":"git+https://gitlab.com/underworf/nexus-framework.git","type":"git"},"_npmVersion":"11.11.0","description":"AI-first TypeScript/Bun framework. Modular, SOLID, zero magic. The AI reads the composition root and knows everything.","directories":{},"_nodeVersion":"24.14.1","dependencies":{"jsonwebtoken":"^9.0.0"},"_hasShrinkwrap":false,"devDependencies":{"pg":"^8.0.0","redis":">=4.0.0","@types/pg":"^8.11.0","bun-types":"^1.3.14","typescript":"^5.6.0","@types/nodemailer":"^6.4.0","@types/jsonwebtoken":"^9.0.7"},"peerDependencies":{"pg":"^8.0.0","redis":"","mysql2":">=3.0.0","nodemailer":">=6.0.0"},"peerDependenciesMeta":{"pg":{"optional":true},"redis":{"optional":true},"mysql2":{"optional":true},"nodemailer":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/arckode-framework_1.4.5_1782096742126_0.6080997548111711","host":"s3://npm-registry-packages-npm-production"}},"1.5.0":{"name":"arckode-framework","version":"1.5.0","keywords":["framework","modular","SOLID","ai","bun","typescript","clean-architecture","composition-root","api","arckode"],"license":"MIT","_id":"arckode-framework@1.5.0","maintainers":[{"name":"arckode1","email":"elavatar255@gmail.com"}],"homepage":"https://gitlab.com/underworf/nexus-framework#readme","bugs":{"url":"https://gitlab.com/underworf/nexus-framework/issues"},"bin":{"arckode":"bin/arckode.js"},"dist":{"shasum":"14a9234d6117dab3d7e3867d9cb10e399b8c1dbf","tarball":"https://registry.npmjs.org/arckode-framework/-/arckode-framework-1.5.0.tgz","fileCount":81,"integrity":"sha512-xDyu6xtVguWULBEuSK5w3NA5eyanU+I5zlzqjxsO70vhmc/foV6VT8+FVL+8oYHiRLTbcd0SRCJqC3+Fym79MQ==","signatures":[{"sig":"MEYCIQCyyBB2dGK983TUwA4HuB/WyxdIFh7Mip1r04tyFmPDUwIhAOFaudAxPr5OHvqThCEunIrCwd0QFLi/DSnfVmvgX0nC","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":324052},"main":"./kernel/framework.ts","type":"module","engines":{"bun":">=1.0.0"},"exports":{".":"./kernel/framework.ts","./ws":"./modules/ws/index.ts","./events":"./modules/events/index.ts","./static":"./kernel/static.ts","./testing":"./kernel/testing.ts","./middlewares":"./kernel/middlewares.ts","./adapters/jwt":"./adapters/jwt.ts","./modules/mail":"./modules/mail/index.ts","./modules/queue":"./modules/queue/index.ts","./adapters/mysql":"./adapters/mysql.ts","./adapters/sqlite":"./adapters/sqlite.ts","./modules/storage":"./modules/storage/index.ts","./adapters/postgres":"./adapters/postgres.ts","./adapters/redis-cache":"./adapters/redis-cache.ts","./cli/commands/db-seed":"./cli/commands/db-seed.ts","./cli/commands/db-migrate":"./cli/commands/db-migrate.ts","./modules/storage/local-adapter":"./modules/storage/local-adapter.ts"},"gitHead":"9ff40b95ff6ca6f5ed53a16833740fe6d9a68a74","scripts":{"test":"bun test","arckode":"bun run cli/index.ts","typecheck":"bunx tsc --noEmit","test:watch":"bun test --watch","test:coverage":"bun test --coverage","analyze:framework":"bun run cli/index.ts analyze"},"_npmUser":{"name":"arckode1","email":"elavatar255@gmail.com"},"repository":{"url":"git+https://gitlab.com/underworf/nexus-framework.git","type":"git"},"_npmVersion":"11.11.0","description":"AI-first TypeScript/Bun framework. Modular, SOLID, zero magic. The AI reads the composition root and knows everything.","directories":{},"_nodeVersion":"24.14.1","dependencies":{"jsonwebtoken":"^9.0.0"},"_hasShrinkwrap":false,"devDependencies":{"pg":"^8.0.0","redis":">=4.0.0","@types/pg":"^8.11.0","bun-types":"^1.3.14","typescript":"^5.6.0","@types/nodemailer":"^6.4.0","@types/jsonwebtoken":"^9.0.7"},"peerDependencies":{"pg":"^8.0.0","redis":"","mysql2":">=3.0.0","nodemailer":">=6.0.0"},"peerDependenciesMeta":{"pg":{"optional":true},"redis":{"optional":true},"mysql2":{"optional":true},"nodemailer":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/arckode-framework_1.5.0_1782194347172_0.06644355739613728","host":"s3://npm-registry-packages-npm-production"}},"1.6.0":{"name":"arckode-framework","version":"1.6.0","keywords":["framework","modular","SOLID","ai","bun","typescript","clean-architecture","composition-root","api","arckode"],"license":"MIT","_id":"arckode-framework@1.6.0","maintainers":[{"name":"arckode1","email":"elavatar255@gmail.com"}],"homepage":"https://gitlab.com/underworf/nexus-framework#readme","bugs":{"url":"https://gitlab.com/underworf/nexus-framework/issues"},"bin":{"arckode":"bin/arckode.js"},"dist":{"shasum":"5d4dc2b8b82c9848296c4c4d3f50487845bbbf9f","tarball":"https://registry.npmjs.org/arckode-framework/-/arckode-framework-1.6.0.tgz","fileCount":81,"integrity":"sha512-zD6RgM8xwbvq8Ohv1CPRToBmM0MUSlKdlJe88BMNMuqrCQLYi3/giL2fbrWJJMHmrLIAVK5Hs7Mw3bVoK+uPVg==","signatures":[{"sig":"MEYCIQCsK69dF6nb7lqn4To5AGgkQoqIg/FQScHekvOSNZME4wIhAMwyGFK5LIcV/4awuODMMS9ACscroXhkQVglhphlv3Kk","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":329971},"main":"./kernel/framework.ts","type":"module","engines":{"bun":">=1.0.0"},"exports":{".":"./kernel/framework.ts","./ws":"./modules/ws/index.ts","./events":"./modules/events/index.ts","./static":"./kernel/static.ts","./testing":"./kernel/testing.ts","./middlewares":"./kernel/middlewares.ts","./adapters/jwt":"./adapters/jwt.ts","./modules/mail":"./modules/mail/index.ts","./modules/queue":"./modules/queue/index.ts","./adapters/mysql":"./adapters/mysql.ts","./adapters/sqlite":"./adapters/sqlite.ts","./modules/storage":"./modules/storage/index.ts","./adapters/postgres":"./adapters/postgres.ts","./adapters/redis-cache":"./adapters/redis-cache.ts","./cli/commands/db-seed":"./cli/commands/db-seed.ts","./cli/commands/db-migrate":"./cli/commands/db-migrate.ts","./modules/storage/local-adapter":"./modules/storage/local-adapter.ts"},"gitHead":"a82644fee443adc7a1bfa660455c3430563759e7","scripts":{"test":"bun test","arckode":"bun run cli/index.ts","typecheck":"bunx tsc --noEmit","test:watch":"bun test --watch","test:coverage":"bun test --coverage","analyze:framework":"bun run cli/index.ts analyze"},"_npmUser":{"name":"arckode1","email":"elavatar255@gmail.com"},"repository":{"url":"git+https://gitlab.com/underworf/nexus-framework.git","type":"git"},"_npmVersion":"11.11.0","description":"AI-first TypeScript/Bun framework. Modular, SOLID, zero magic. The AI reads the composition root and knows everything.","directories":{},"_nodeVersion":"24.14.1","dependencies":{"jsonwebtoken":"^9.0.0"},"_hasShrinkwrap":false,"devDependencies":{"pg":"^8.0.0","redis":">=4.0.0","@types/pg":"^8.11.0","bun-types":"^1.3.14","typescript":"^5.6.0","@types/nodemailer":"^6.4.0","@types/jsonwebtoken":"^9.0.7"},"peerDependencies":{"pg":"^8.0.0","redis":"","mysql2":">=3.0.0","nodemailer":">=6.0.0"},"peerDependenciesMeta":{"pg":{"optional":true},"redis":{"optional":true},"mysql2":{"optional":true},"nodemailer":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/arckode-framework_1.6.0_1783179629903_0.46524088632534455","host":"s3://npm-registry-packages-npm-production"}},"1.6.1":{"name":"arckode-framework","version":"1.6.1","keywords":["framework","modular","SOLID","ai","bun","typescript","clean-architecture","composition-root","api","arckode"],"license":"MIT","_id":"arckode-framework@1.6.1","maintainers":[{"name":"arckode1","email":"elavatar255@gmail.com"}],"homepage":"https://gitlab.com/underworf/nexus-framework#readme","bugs":{"url":"https://gitlab.com/underworf/nexus-framework/issues"},"bin":{"arckode":"bin/arckode.js"},"dist":{"shasum":"1b22a5ca845bf2803b8ed82e0ce4e9f78c438cec","tarball":"https://registry.npmjs.org/arckode-framework/-/arckode-framework-1.6.1.tgz","fileCount":81,"integrity":"sha512-3Nswc6d4GHLOx/uPkUFSypzMSVM8CSEeLt4zmic1m6ypZDuDMYQ46I7zoCLaC7scxUt6QGn/rKAgRRtoTZwRNA==","signatures":[{"sig":"MEUCIQCAaMVJO7jY0PiIXyxwl4vS6ptpKkSPUN3N4/LbiG7bWwIga4i9LcE60vnfaQGhRBYsbSe2p5LbCB0hETBTorgo4+Q=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":330175},"main":"./kernel/framework.ts","type":"module","engines":{"bun":">=1.0.0"},"exports":{".":"./kernel/framework.ts","./ws":"./modules/ws/index.ts","./events":"./modules/events/index.ts","./static":"./kernel/static.ts","./testing":"./kernel/testing.ts","./middlewares":"./kernel/middlewares.ts","./adapters/jwt":"./adapters/jwt.ts","./modules/mail":"./modules/mail/index.ts","./modules/queue":"./modules/queue/index.ts","./adapters/mysql":"./adapters/mysql.ts","./adapters/sqlite":"./adapters/sqlite.ts","./modules/storage":"./modules/storage/index.ts","./adapters/postgres":"./adapters/postgres.ts","./adapters/redis-cache":"./adapters/redis-cache.ts","./cli/commands/db-seed":"./cli/commands/db-seed.ts","./cli/commands/db-migrate":"./cli/commands/db-migrate.ts","./modules/storage/local-adapter":"./modules/storage/local-adapter.ts"},"gitHead":"3f31b94e05eacd553a512d350b8f968ee3567800","scripts":{"test":"bun test","arckode":"bun run cli/index.ts","typecheck":"bunx tsc --noEmit","test:watch":"bun test --watch","test:coverage":"bun test --coverage","analyze:framework":"bun run cli/index.ts analyze"},"_npmUser":{"name":"arckode1","email":"elavatar255@gmail.com"},"repository":{"url":"git+https://gitlab.com/underworf/nexus-framework.git","type":"git"},"_npmVersion":"11.11.0","description":"AI-first TypeScript/Bun framework. Modular, SOLID, zero magic. The AI reads the composition root and knows everything.","directories":{},"_nodeVersion":"24.14.1","dependencies":{"jsonwebtoken":"^9.0.0"},"_hasShrinkwrap":false,"devDependencies":{"pg":"^8.0.0","redis":">=4.0.0","@types/pg":"^8.11.0","bun-types":"^1.3.14","typescript":"^5.6.0","@types/nodemailer":"^6.4.0","@types/jsonwebtoken":"^9.0.7"},"peerDependencies":{"pg":"^8.0.0","redis":"","mysql2":">=3.0.0","nodemailer":">=6.0.0"},"peerDependenciesMeta":{"pg":{"optional":true},"redis":{"optional":true},"mysql2":{"optional":true},"nodemailer":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/arckode-framework_1.6.1_1783179934848_0.13088425574647045","host":"s3://npm-registry-packages-npm-production"}},"1.6.2":{"name":"arckode-framework","version":"1.6.2","keywords":["framework","modular","SOLID","ai","bun","typescript","clean-architecture","composition-root","api","arckode"],"license":"MIT","_id":"arckode-framework@1.6.2","maintainers":[{"name":"arckode1","email":"elavatar255@gmail.com"}],"homepage":"https://gitlab.com/underworf/nexus-framework#readme","bugs":{"url":"https://gitlab.com/underworf/nexus-framework/issues"},"bin":{"arckode":"bin/arckode.js"},"dist":{"shasum":"25f459cb07ec896261ac3dc2d84fcd44ac990b63","tarball":"https://registry.npmjs.org/arckode-framework/-/arckode-framework-1.6.2.tgz","fileCount":81,"integrity":"sha512-PJm8ecAjF8fz/nk0+nSsPey/8s1FfZ/ad0ps6hBoOfWUaBx2NjDaGtLRLXesr66A/dd/W+ahnZu2QytRrcgUew==","signatures":[{"sig":"MEYCIQCl6GjS0S28zGeOIwGVEKLdUTiIVM3IsE4qXLFPvuHOQwIhAPKrJFAHdPSNMs4PAZhTe9GAQ2cmPSOkguxIkSB32HYK","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":331141},"main":"./kernel/framework.ts","type":"module","engines":{"bun":">=1.0.0"},"exports":{".":"./kernel/framework.ts","./ws":"./modules/ws/index.ts","./events":"./modules/events/index.ts","./static":"./kernel/static.ts","./testing":"./kernel/testing.ts","./middlewares":"./kernel/middlewares.ts","./adapters/jwt":"./adapters/jwt.ts","./modules/mail":"./modules/mail/index.ts","./modules/queue":"./modules/queue/index.ts","./adapters/mysql":"./adapters/mysql.ts","./adapters/sqlite":"./adapters/sqlite.ts","./modules/storage":"./modules/storage/index.ts","./adapters/postgres":"./adapters/postgres.ts","./adapters/redis-cache":"./adapters/redis-cache.ts","./cli/commands/db-seed":"./cli/commands/db-seed.ts","./cli/commands/db-migrate":"./cli/commands/db-migrate.ts","./modules/storage/local-adapter":"./modules/storage/local-adapter.ts"},"gitHead":"21c613ea7affbcd9294b19aaf79b99f05c0325aa","scripts":{"test":"bun test","arckode":"bun run cli/index.ts","typecheck":"bunx tsc --noEmit","test:watch":"bun test --watch","test:coverage":"bun test --coverage","analyze:framework":"bun run cli/index.ts analyze"},"_npmUser":{"name":"arckode1","email":"elavatar255@gmail.com"},"repository":{"url":"git+https://gitlab.com/underworf/nexus-framework.git","type":"git"},"_npmVersion":"11.11.0","description":"AI-first TypeScript/Bun framework. Modular, SOLID, zero magic. The AI reads the composition root and knows everything.","directories":{},"_nodeVersion":"24.14.1","dependencies":{"jsonwebtoken":"^9.0.0"},"_hasShrinkwrap":false,"devDependencies":{"pg":"^8.0.0","redis":">=4.0.0","@types/pg":"^8.11.0","bun-types":"^1.3.14","typescript":"^5.6.0","@types/nodemailer":"^6.4.0","@types/jsonwebtoken":"^9.0.7"},"peerDependencies":{"pg":"^8.0.0","redis":"","mysql2":">=3.0.0","nodemailer":">=6.0.0"},"peerDependenciesMeta":{"pg":{"optional":true},"redis":{"optional":true},"mysql2":{"optional":true},"nodemailer":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/arckode-framework_1.6.2_1783180378723_0.8646646418486439","host":"s3://npm-registry-packages-npm-production"}},"1.6.3":{"name":"arckode-framework","version":"1.6.3","description":"AI-first TypeScript/Bun framework. Modular, SOLID, zero magic. The AI reads the composition root and knows everything.","type":"module","main":"./kernel/framework.ts","exports":{".":"./kernel/framework.ts","./middlewares":"./kernel/middlewares.ts","./static":"./kernel/static.ts","./events":"./modules/events/index.ts","./ws":"./modules/ws/index.ts","./adapters/sqlite":"./adapters/sqlite.ts","./adapters/jwt":"./adapters/jwt.ts","./adapters/postgres":"./adapters/postgres.ts","./adapters/redis-cache":"./adapters/redis-cache.ts","./adapters/mysql":"./adapters/mysql.ts","./modules/mail":"./modules/mail/index.ts","./modules/storage":"./modules/storage/index.ts","./modules/storage/local-adapter":"./modules/storage/local-adapter.ts","./modules/queue":"./modules/queue/index.ts","./testing":"./kernel/testing.ts","./cli/commands/db-migrate":"./cli/commands/db-migrate.ts","./cli/commands/db-seed":"./cli/commands/db-seed.ts"},"bin":{"arckode":"bin/arckode.js"},"engines":{"bun":">=1.0.0"},"scripts":{"arckode":"bun run cli/index.ts","test":"bun test","test:watch":"bun test --watch","test:coverage":"bun test --coverage","typecheck":"bunx tsc --noEmit","analyze:framework":"bun run cli/index.ts analyze"},"dependencies":{"jsonwebtoken":"^9.0.0"},"peerDependencies":{"mysql2":">=3.0.0","pg":"^8.0.0","redis":"","nodemailer":">=6.0.0"},"peerDependenciesMeta":{"mysql2":{"optional":true},"pg":{"optional":true},"redis":{"optional":true},"nodemailer":{"optional":true}},"devDependencies":{"@types/jsonwebtoken":"^9.0.7","@types/nodemailer":"^6.4.0","@types/pg":"^8.11.0","bun-types":"^1.3.14","pg":"^8.0.0","redis":">=4.0.0","typescript":"^5.6.0"},"keywords":["framework","modular","SOLID","ai","bun","typescript","clean-architecture","composition-root","api","arckode"],"license":"MIT","repository":{"type":"git","url":"git+https://gitlab.com/underworf/nexus-framework.git"},"homepage":"https://gitlab.com/underworf/nexus-framework#readme","gitHead":"6043a0f26300d233b8b19f82a51b865cfba296eb","_id":"arckode-framework@1.6.3","bugs":{"url":"https://gitlab.com/underworf/nexus-framework/issues"},"_nodeVersion":"24.14.1","_npmVersion":"11.11.0","dist":{"integrity":"sha512-EDSHEvmh/S09DkABTOGpE/QFZAVjAmf6DouKHdIotr0P/WM/62JfAnIOT0pac4zi+YI0u+1ix5tQIQJZQcEaIA==","shasum":"1fd2e81a3ab9a7373a8acb4f7255f78e539531de","tarball":"https://registry.npmjs.org/arckode-framework/-/arckode-framework-1.6.3.tgz","fileCount":81,"unpackedSize":333100,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIAYKvzbr1pQqvGzdGqmDQZqe5JcGCdWefp7/XGhBn3t9AiEAli0KSsQg/Otr5VAN4up0bmsh+WxL/6ANuQHllEjBSSA="}]},"_npmUser":{"name":"arckode1","email":"elavatar255@gmail.com"},"directories":{},"maintainers":[{"name":"arckode1","email":"elavatar255@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/arckode-framework_1.6.3_1784074649211_0.33930012157033507"},"_hasShrinkwrap":false}},"time":{"created":"2026-05-22T03:54:45.422Z","modified":"2026-07-15T00:17:29.502Z","1.0.0":"2026-05-22T03:54:45.787Z","1.0.1":"2026-05-22T03:59:07.488Z","1.0.2":"2026-05-22T05:01:58.033Z","1.0.3":"2026-05-22T05:04:29.764Z","1.0.4":"2026-05-22T05:10:09.946Z","1.0.5":"2026-05-22T05:16:06.452Z","1.0.6":"2026-05-22T05:23:47.000Z","1.0.7":"2026-05-22T05:29:37.578Z","1.0.8":"2026-05-22T05:32:19.534Z","1.1.0":"2026-05-22T18:47:36.765Z","1.1.1":"2026-05-22T20:32:26.326Z","1.1.2":"2026-05-22T21:25:53.058Z","1.2.0":"2026-05-23T18:04:06.330Z","1.2.1":"2026-05-24T01:34:40.671Z","1.2.2":"2026-05-24T20:18:39.659Z","1.2.3":"2026-05-25T04:44:16.557Z","1.3.0":"2026-05-25T18:23:55.530Z","1.3.1":"2026-05-25T18:25:57.981Z","1.3.2":"2026-05-30T04:38:38.338Z","1.4.0":"2026-05-31T16:09:28.488Z","1.4.1":"2026-05-31T16:13:39.552Z","1.4.2":"2026-06-01T03:42:25.213Z","1.4.3":"2026-06-01T03:44:25.291Z","1.4.4":"2026-06-22T02:15:15.490Z","1.4.5":"2026-06-22T02:52:22.276Z","1.5.0":"2026-06-23T05:59:07.365Z","1.6.0":"2026-07-04T15:40:30.041Z","1.6.1":"2026-07-04T15:45:34.978Z","1.6.2":"2026-07-04T15:52:58.875Z","1.6.3":"2026-07-15T00:17:29.405Z"},"bugs":{"url":"https://gitlab.com/underworf/nexus-framework/issues"},"license":"MIT","homepage":"https://gitlab.com/underworf/nexus-framework#readme","keywords":["framework","modular","SOLID","ai","bun","typescript","clean-architecture","composition-root","api","arckode"],"repository":{"type":"git","url":"git+https://gitlab.com/underworf/nexus-framework.git"},"description":"AI-first TypeScript/Bun framework. Modular, SOLID, zero magic. The AI reads the composition root and knows everything.","maintainers":[{"name":"arckode1","email":"elavatar255@gmail.com"}],"readme":"# Arckode Framework\n\nFramework TypeScript/Bun para construir APIs modulares. Diseñado desde el principio para trabajar con IA: arquitectura predecible, límites claros, cero magia.\n\n```bash\narckode new mi-api\ncd mi-api && bun install\narckode make:auth\narckode make:module Productos\nbun run dev\n```\n\n---\n\n## Por qué Arckode\n\nLa mayoría de los frameworks están optimizados para que los humanos escriban código. Arckode está optimizado para que **la IA genere código correcto sin supervisión constante**.\n\nLa IA lee el `composition-root.ts` y sabe todo lo que necesita:\n- Qué módulos existen y qué hacen\n- Cómo se conectan entre sí\n- Qué datos maneja cada uno\n- Qué reglas tienen que cumplir\n\nNo hay decoradores, no hay magia de inyección, no hay convenciones implícitas. Todo está explícito en un solo lugar.\n\n---\n\n## Instalación\n\n**Requisito: [Bun](https://bun.sh) >= 1.0**\n\n```bash\n# 1. Instalar el CLI globalmente — una sola vez por máquina\nbun install -g arckode-framework\n\n# 2. Crear tu proyecto\narckode new mi-api\n\n# 3. Entrar al proyecto e instalar dependencias\ncd mi-api && bun install\n\n# 4. Configurar entorno\necho 'JWT_SECRET=cambia-esto-en-produccion' > .env\n\n# 5. Iniciar\nbun run src/composition-root.ts\n```\n\n> El CLI instala `arckode-framework` como dependencia de tu proyecto automáticamente. No necesitás referenciar rutas del framework — todo se importa como `from 'arckode-framework'`.\n\n---\n\n## Inicio rápido\n\n```bash\narckode new mi-api\ncd mi-api && bun install\narckode make:auth           # módulo completo de auth con JWT\narckode make:module Clientes\narckode analyze             # 0 violaciones garantizado\nbun run dev                 # hot reload\n```\n\n---\n\n## Conceptos core\n\n### Módulo\n\nLa unidad básica del sistema. Cada módulo es dueño de sus datos y su lógica. **Nunca importa de otro módulo directamente.**\n\n```\nmodules/productos/\n  index.ts          ← puerta pública (solo exports)\n  types.ts          ← DTOs y ModelDefinition\n  sockets.ts        ← hooks para conectores (opcional)\n  actions/\n    service.ts      ← lógica de negocio\n    controller.ts   ← capa HTTP (sin lógica)\n  validators/\n    schema.ts       ← validación de entrada\n  tests/\n    service.test.ts\n```\n\n```ts\n// modules/productos/index.ts\nexport function ProductosModule() {\n  return createModule({\n    name: 'productos',\n    version: '1.0.0',\n    description: 'Gestión del catálogo de productos',\n    contract: {\n      actions: ['listar', 'crear', 'actualizar', 'eliminar'],\n      events: ['onProductoCreado'],\n      tables: ['productos'],\n    },\n    create({ logger, orm, cache, router }) {\n      const repo = new OrmRepository<ProductoDTO>(orm, 'Producto')\n      const service = new ProductosService(repo, logger.child('productos'), cache)\n      const controller = new ProductosController(service, logger.child('productos'))\n\n      router.get('/productos', (req) => controller.index(req))\n      router.post('/productos', (req) => controller.store(req))\n      router.put('/productos/:id', (req) => controller.update(req))\n      router.delete('/productos/:id', (req) => controller.destroy(req))\n\n      return service  // resolveModule('productos') devuelve esto\n    },\n  })\n}\n```\n\n### RepositoryAdapter\\<T\\>\n\nLos servicios nunca dependen del ORM directamente. Dependen de la interfaz genérica — el ORM concreto se elige en `composition-root.ts`.\n\n```ts\n// ❌ PROHIBIDO — acoplado al ORM, imposible cambiar a MongoDB/Prisma\nclass ProductosService {\n  constructor(private orm: ORM) {}\n  listar() { return this.orm.findMany('Producto') }\n}\n\n// ✅ CORRECTO — desacoplado, testeable, intercambiable\nclass ProductosService {\n  constructor(private repo: RepositoryAdapter<ProductoDTO>) {}\n  listar() { return this.repo.findMany() }\n}\n```\n\n```ts\n// composition-root.ts — se elige la implementación una sola vez\nconst repo = new OrmRepository<ProductoDTO>(orm, 'Producto')  // SQLite/Postgres\n// O mañana:\nconst repo = new MongoProductoRepo(collection)                 // MongoDB\n// El service nunca cambia.\n```\n\n### Connector\n\nEl único puente entre módulos. Solo delegación — nunca lógica de negocio.\n\n```ts\n// connectors/pedido-stock.ts\nexport function conectarPedidoConStock(ctx: ConnectorContext): void {\n  const productos = ctx.resolveModule<ProductosService>('productos')\n\n  ctx.resolveModule('pedidos', {\n    onPedidoCreado: async (pedido) => {\n      await productos.descontarStock(pedido.productoId, pedido.cantidad)\n    },\n  })\n}\n```\n\n### Composition Root\n\nEl único archivo que conoce todo el sistema. La IA lo lee y entiende la arquitectura completa.\n\n```ts\n// src/composition-root.ts\nimport { ConfigStore, ORM, Router, NodeServer, MemoryCache, System, Auth, loadEnv } from 'arckode-framework'\nimport { SqliteAdapter } from 'arckode-framework/adapters/sqlite'\nimport { jwtTokenAdapter } from 'arckode-framework/adapters/jwt'\nimport { ProductoModel } from './modules/productos/types'\nimport { ProductosModule } from './modules/productos'\nimport { PedidosModule } from './modules/pedidos'\nimport { conectarPedidoConStock } from './connectors/pedido-stock'\n\nconst env = await loadEnv()  // carga .env + .env.{NODE_ENV}\n\nconst config = new ConfigStore()\nconfig.define({\n  PORT:       { type: 'number', default: 3000 },\n  DB_PATH:    { type: 'string', default: './data/db.sqlite' },\n  JWT_SECRET: { type: 'string', required: true },\n}).load(env)\n\nconst db = new SqliteAdapter({ path: config.get('DB_PATH') })\nawait db.connect()\nconst orm = new ORM(db)\n\norm.define('Producto', ProductoModel)  // cada módulo es dueño de su ModelDefinition\nawait orm.migrate()\n\nconst system = new System({ config, orm, router, http, cache, auth, ... })\nsystem.addModule(ProductosModule())\nsystem.addModule(PedidosModule())\nsystem.addConnector('pedido-stock', conectarPedidoConStock)\nawait system.start()\n```\n\n---\n\n## CLI — Referencia completa\n\n### Proyectos\n\n| Comando | Descripción |\n|---|---|\n| `arckode new <nombre>` | Crear proyecto backend completo |\n| `arckode new:frontend [nombre]` | Crear frontend Vue 3 + Vite + TypeScript |\n\n### Generadores de backend\n\n| Comando | Descripción |\n|---|---|\n| `arckode make:auth` | Módulo de autenticación completo (login, register, JWT, perfil) |\n| `arckode make:module <Nombre>` | Módulo con service, controller, types, validators, tests |\n| `arckode make:connector <nombre> <mod1> <mod2>` | Conector entre módulos |\n| `arckode make:seed <Nombre>` | Seed de datos |\n| `arckode make:migration <nombre>` | Migración SQL con `up()` y `down()` |\n| `arckode make:helper <nombre>` | Helper puro (sin efectos secundarios) |\n| `arckode make:adapter <Adapter> <Interfaz>` | Adapter de librería externa |\n\n### Generadores de frontend\n\n| Comando | Descripción |\n|---|---|\n| `arckode make:page <Nombre>` | Módulo frontend (API client + composable + página + router) |\n| `arckode generate:api [frontend-path]` | Genera API clients desde módulos del backend |\n\n### Base de datos\n\n| Comando | Descripción |\n|---|---|\n| `arckode db:migrate` | Ejecutar migraciones pendientes (`src/migrations/`) |\n| `arckode db:migrate down` | Revertir la última migración |\n| `arckode db:seed` | Listar seeds disponibles |\n\n### Análisis y diagnóstico\n\n| Comando | Descripción |\n|---|---|\n| `arckode analyze` | Detecta 15+ tipos de violaciones de arquitectura |\n| `arckode routes` | Lista todas las rutas registradas (análisis estático) |\n\n---\n\n## Adapters\n\n### Base de datos\n\n```ts\n// SQLite — desarrollo y apps de baja escala\nimport { SqliteAdapter } from 'arckode-framework/adapters/sqlite'\nconst db = new SqliteAdapter({ path: './data/app.sqlite' })\n\n// PostgreSQL — producción\nimport { PostgresAdapter } from 'arckode-framework/adapters/postgres'\nconst db = new PostgresAdapter({ connectionString: process.env.DATABASE_URL, poolMax: 10 })\n```\n\n### Cache\n\n```ts\n// En memoria — desarrollo (se pierde al reiniciar)\nconst cache = new MemoryCache()\n\n// Redis — producción\nimport { RedisCacheAdapter } from 'arckode-framework/adapters/redis-cache'\nconst cache = new RedisCacheAdapter({ url: process.env.REDIS_URL })\nawait cache.connect()\n```\n\n---\n\n## Módulos opcionales\n\n### Queue\n\n```ts\nimport { QueueService, MemoryQueueAdapter } from 'arckode-framework/queue'\n\nconst queue = new QueueService(new MemoryQueueAdapter())\n\nqueue.register('enviar-email', async (job) => {\n  await mail.send(job.data as EmailData)\n})\n\nawait queue.dispatch('enviar-email', { to: 'user@example.com', subject: 'Bienvenido' })\nawait queue.dispatch('enviar-email', { ... }, { delay: 5000, maxAttempts: 3 })\n```\n\n### Events (pub-sub)\n\n```ts\nimport { EventBus } from 'arckode-framework/events'\n\nconst events = new EventBus()\nevents.on('pedido.creado', async (pedido) => { ... })\nevents.emit('pedido.creado', pedido)\n```\n\n### WebSockets\n\n```ts\nimport { WsServer } from 'arckode-framework/ws'\n\nconst ws = new WsServer()\nws.on('connection', (client) => { client.send({ type: 'welcome' }) })\nws.broadcast({ type: 'stock-bajo', productoId: id })\n```\n\n### Mail\n\n```ts\nimport { MailService } from 'arckode-framework/mail'\nimport { SmtpAdapter } from 'arckode-framework/mail/smtp'\n\nconst mail = new MailService(new SmtpAdapter({ host: 'smtp.gmail.com', port: 587, ... }))\nawait mail.send({ to: 'user@example.com', subject: 'Bienvenido', html: '<p>Hola</p>' })\n```\n\n### Storage\n\n```ts\nimport { StorageService } from 'arckode-framework/modules/storage'\nimport { LocalStorageAdapter } from 'arckode-framework/modules/storage/local-adapter'\n\n// En composition-root.ts\nconst storage = new StorageService(\n  new LocalStorageAdapter('./uploads', '/uploads')\n)\n\n// Subir un archivo\nconst stored = await storage.upload(file, 'avatars')\n// stored.url  → '/uploads/avatars/1234567890-abc.jpg'\n// stored.path → 'avatars/1234567890-abc.jpg'\n```\n\n### File Uploads (multipart/form-data)\n\nEl servidor detecta `Content-Type: multipart/form-data` automáticamente y parsea el body\nsin dependencias externas. Los archivos quedan en `req.files`, los campos de texto en `req.body`.\n\n```ts\nimport type { UploadedFile } from 'arckode-framework'\nimport { ValidationError } from 'arckode-framework'\n\nrouter.post('/avatar', [auth.authenticate()], async (req) => {\n  const file = req.files?.['avatar']\n  if (!file) throw new ValidationError('Se requiere un archivo')\n\n  const stored = await storageService.upload(file, 'avatars')\n  return { status: 200, body: { url: stored.url } }\n})\n```\n\n**Desde el cliente:**\n\n```ts\nconst form = new FormData()\nform.append('avatar', blob, 'photo.jpg')\nawait fetch('/avatar', { method: 'POST', body: form })\n```\n\n**Estructura de `UploadedFile`:**\n\n```ts\ninterface UploadedFile {\n  fieldName: string     // nombre del campo en el form\n  originalName: string  // nombre del archivo enviado\n  buffer: Buffer        // contenido binario\n  mimeType: string      // 'image/jpeg', 'application/pdf', etc.\n  size: number          // bytes\n}\n```\n\n> Combiná con `bodyLimit()` para limitar el tamaño máximo:\n> ```ts\n> router.post('/avatar', [bodyLimit(5 * 1024 * 1024)], handler)  // 5MB máx\n> ```\n\n---\n\n## Middlewares\n\n```ts\nimport { cors, rateLimit, requestLogger, timeout, compression, bodyLimit } from 'arckode-framework/middlewares'\n\n// Globales\nrouter.use(cors({ origins: ['https://miapp.com'] }))\nrouter.use(rateLimit({ windowMs: 60_000, max: 100 }))\nrouter.use(requestLogger(logger))\nrouter.use(compression())\n\n// Por ruta\nrouter.get('/admin', handler, [auth.authenticate('admin'), timeout(3000)])\nrouter.post('/upload', handler, [bodyLimit(10 * 1024 * 1024)])  // 10MB\n```\n\n---\n\n## Auth\n\n```ts\nconst auth = new Auth(jwtTokenAdapter, process.env.JWT_SECRET, logger)\n\n// Crear token\nconst token = await auth.createToken({ id: user.id, role: 'admin' })\n\n// Hashear password (scrypt — sin dependencias externas)\nconst hash = await auth.hashPassword(password)\nconst ok   = await auth.comparePassword(password, hash)\n\n// Proteger rutas\nrouter.get('/perfil', handler, [auth.authenticate()])          // cualquier usuario autenticado\nrouter.get('/admin',  handler, [auth.authenticate('admin')])   // solo admins\nrouter.delete('/users/:id', handler, [auth.authenticate('admin', 'superadmin')])\n```\n\n---\n\n## Variables de entorno\n\n`loadEnv()` carga `.env` base y `.env.{NODE_ENV}` con override por stage. `process.env` siempre tiene prioridad máxima.\n\n```bash\n# .env\nPORT=3000\nDB_PATH=./data/dev.sqlite\nLOG_LEVEL=debug\n\n# .env.production\nDB_PATH=./data/prod.sqlite\nLOG_LEVEL=warn\n```\n\n```bash\nNODE_ENV=production bun run src/composition-root.ts\n# Lee .env → sobrescribe con .env.production → process.env tiene prioridad\n```\n\n---\n\n## Testing\n\n```ts\nimport { createTestClient, createRecordingOrm } from 'arckode-framework/testing'\nimport { OrmRepository } from 'arckode-framework'\n\n// ORM que registra llamadas en memoria — sin base de datos real\nconst orm = createRecordingOrm()\nconst repo = new OrmRepository<ProductoDTO>(orm, 'Producto')\nconst service = new ProductosService(repo, logger, cache)\n\n// Cliente HTTP que hace requests al Router sin levantar un server real\nconst client = createTestClient(router)\n\ntest('listar productos vacío', async () => {\n  const res = await client.get('/productos')\n  expect(res.status).toBe(200)\n  expect(res.body).toEqual([])\n})\n\ntest('crear producto', async () => {\n  const res = await client.post('/productos', {\n    body: { nombre: 'Laptop', precio: 1500, stock: 10 },\n  })\n  expect(res.status).toBe(201)\n  expect(res.body.nombre).toBe('Laptop')\n})\n```\n\n---\n\n## Análisis de arquitectura\n\n```bash\narckode analyze\n```\n\n```\n══════════════════════════════════════════════\n  Arckode — Análisis de Arquitectura\n══════════════════════════════════════════════\n\nVIOLACIONES ENCONTRADAS: 2\n\n[Acoplamiento]\n  ❌ modules/pedidos/actions/service.ts:12\n     Importa directamente de otro módulo (CLAUDE #1)\n     → Usar un conector en /connectors/\n\n[Portabilidad]\n  ❌ modules/clientes/actions/service.ts:8\n     El service inyecta ORM directamente (CLAUDE #18)\n     → Usar RepositoryAdapter<ClienteDTO>\n```\n\n| Categoría | Violations detectadas |\n|---|---|\n| Estructura | `MISSING_INDEX`, `MISSING_TYPES`, `MISSING_SERVICE`, `MISSING_CONTROLLER`, `MISSING_TESTS` |\n| Acoplamiento | `DIRECT_MODULE_IMPORT` |\n| Diseño | `BUSINESS_LOGIC_IN_CONTROLLER`, `CONTROLLER_MISSING_VALIDATION`, `EMPTY_MODULE_DESCRIPTION` |\n| Calidad | `TESTS_WITHOUT_CASES`, `GOD_SERVICE` |\n| Seguridad | `IDOR_RISK`, `HARDCODED_SECRET`, `INSECURE_PASSWORD` |\n| Performance | `N_PLUS_ONE_RISK` |\n| Portabilidad | `SERVICE_DEPENDS_ON_ORM` |\n\n---\n\n## Ejemplos incluidos\n\n| Ejemplo | Descripción |\n|---|---|\n| `examples/ecommerce/` | Productos, pedidos, conector de stock, auth |\n| `examples/completo/` | Auth, productos, pedidos, mail, storage, queue, WebSockets |\n\n---\n\n## Documentación adicional\n\n| Archivo | Contenido |\n|---|---|\n| `CLAUDE.md` | 18 reglas inmutables — el contrato que la IA sigue |\n| `kernel/framework.ts` | Fuente completa del kernel (la IA lo lee entero) |\n| `kernel/testing.ts` | Utilidades de testing |\n| `kernel/middlewares.ts` | Middlewares disponibles |\n\n---\n\n## Cómo funciona la distribución\n\n### Para usuarios del framework\n\n```bash\n# Instalar CLI una vez\nbun install -g arckode-framework\n\n# Crear proyecto — el CLI genera todo: composition-root.ts, CLAUDE.md, .env, package.json\narckode new mi-tienda --db=postgres\n\n# CLAUDE.md se genera automáticamente en tu proyecto con las 18 reglas del framework.\n# La IA lo lee primero antes de escribir cualquier línea de código.\n\n# Actualizar el framework en tu proyecto\nbun update arckode-framework\n```\n\n### Para la IA (flujo de trabajo)\n\nCuando la IA trabaja en un proyecto con Arckode, hace esto en orden:\n\n```\n1. Lee CLAUDE.md         → entiende las 18 reglas que NO puede violar\n2. Lee composition-root.ts → entiende todos los módulos, conectores y dependencias\n3. Corre arckode analyze  → verifica que el estado actual tiene 0 violaciones\n4. Genera código          → siguiendo la estructura exacta del framework\n5. Corre arckode analyze  → verifica que sus cambios no introdujeron violaciones\n6. Corre bun test         → verifica que nada se rompió\n```\n\n### Para el autor del framework (actualizaciones)\n\n```bash\n# 1. Hacer los cambios\n# 2. Correr tests y typecheck\nbun test && bun run typecheck\n\n# 3. Subir la versión en package.json (semver)\n#    1.0.0 → 1.0.1  patch: bugfix\n#    1.0.0 → 1.1.0  minor: feature nueva, retrocompatible\n#    1.0.0 → 2.0.0  major: breaking change\n\n# 4. Publicar\nnpm publish\n\n# Los usuarios actualizan corriendo en su proyecto:\nbun update arckode-framework\n```\n\n---\n\n## Adapters opcionales\n\nArckode solo instala lo que usás. Cada adapter tiene su dependencia peer:\n\n| Adapter | Instalar |\n|---|---|\n| SQLite | `bun add better-sqlite3` |\n| PostgreSQL | `bun add pg` |\n| MySQL | `bun add mysql2` |\n| Redis (cache) | `bun add redis` |\n| Mail (SMTP) | `bun add nodemailer` |\n\nEl framework core (`kernel/framework.ts`) **no depende de ninguna librería externa** — solo de Node.js/Bun nativo.\n\n---\n\n## Licencia\n\nMIT\n","readmeFilename":"README.md"}