{"_id":"@spfn/core","_rev":"204-6bb7869b4140c6a0003b578529e5b8f0","name":"@spfn/core","dist-tags":{"alpha":"0.1.0-alpha.88","latest":"0.3.0-beta.15","beta":"0.3.0-beta.15"},"versions":{"0.1.0-alpha.1":{"name":"@spfn/core","version":"0.1.0-alpha.1","keywords":["spfn","framework","nextjs","hono","typescript","fullstack","backend","file-based-routing","transaction","repository-pattern","drizzle-orm","postgres","redis"],"author":{"name":"Ray Im","email":"rayim@inflike.com"},"license":"MIT","_id":"@spfn/core@0.1.0-alpha.1","maintainers":[{"name":"superfunction","email":"rayim@inflike.com"}],"homepage":"https://github.com/spfn/spfn/tree/main/packages/core#readme","bugs":{"url":"https://github.com/spfn/spfn/issues"},"dist":{"shasum":"986c35fd6be960243de73f680de666df191f98ac","tarball":"https://registry.npmjs.org/@spfn/core/-/core-0.1.0-alpha.1.tgz","fileCount":37,"integrity":"sha512-x8QoSSXMKgTk0DQhXFAAqXMfLyRcdqOo01jbtvGdgqHqwcuwjmIJsnODpTII9BPGOFQ6QD9iTMON+ZaOefNE6A==","signatures":[{"sig":"MEUCIQC9/OYZxgN3M49rFnCYluoq1x+gKb9AYIakXglFYCDZ+wIgNXx0LIXRHGReAmu73M8tDPdwtSx29ncsd/EeoHnzjmI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3469396},"main":"./dist/index.js","type":"module","_from":"file:spfn-core-0.1.0-alpha.1.tgz","types":"./dist/index.d.ts","engines":{"node":">=18.18.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./db":{"types":"./dist/db/index.d.ts","import":"./dist/db/index.js","require":"./dist/db/index.js"},"./route":{"types":"./dist/route/index.d.ts","import":"./dist/route/index.js","require":"./dist/route/index.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","require":"./dist/client/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./codegen":{"types":"./dist/codegen/index.d.ts","import":"./dist/codegen/index.js","require":"./dist/codegen/index.js"},"./scripts":{"types":"./dist/scripts/index.d.ts","import":"./dist/scripts/index.js","require":"./dist/scripts/index.js"}},"scripts":{"dev":"tsup --watch","test":"vitest","build":"tsup","test:db":"dotenv -e .env.test -- vitest src/tests/db","type-check":"tsc --noEmit","test:codegen":"vitest run --config vitest.codegen.config.ts","docker:test:up":"docker compose -f ../../docker-compose.test.yml up -d","generate:client":"node dist/scripts/generate-client.js","docker:test:down":"docker compose -f ../../docker-compose.test.yml down","docker:test:logs":"docker compose -f ../../docker-compose.test.yml logs -f","generate:client:watch":"node dist/scripts/generate-client.js --watch"},"_npmUser":{"name":"superfunction","email":"rayim@inflike.com"},"_resolved":"/private/var/folders/h9/gtg_888n2j196vml9rmlv42h0000gn/T/4dffe6d1bba62cafc7942743ce91ab9d/spfn-core-0.1.0-alpha.1.tgz","_integrity":"sha512-x8QoSSXMKgTk0DQhXFAAqXMfLyRcdqOo01jbtvGdgqHqwcuwjmIJsnODpTII9BPGOFQ6QD9iTMON+ZaOefNE6A==","deprecated":"Bug: workspace:* dependency not resolved. Use @latest or @alpha instead.","repository":{"url":"git+https://github.com/spfn/spfn.git","type":"git","directory":"packages/core"},"_npmVersion":"11.4.2","description":"SPFN Framework Core - File-based routing, transactions, repository pattern","directories":{},"_nodeVersion":"22.11.0","dependencies":{"zod":"^4.1.11","hono":"^4.9.0","pino":"^10.0.0","chalk":"^5.6.2","dotenv":"^17.2.3","chokidar":"^4.0.3","postgres":"^3.4.0","typescript":"^5.3.3","drizzle-orm":"^0.44.6","drizzle-typebox":"^0.1.0","@hono/node-server":"^1.0.0","@sinclair/typebox":"^0.34.0"},"publishConfig":{"tag":"alpha","access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","vitest":"^3.2.4","@types/node":"^20.11.0"},"optionalDependencies":{"ioredis":"^5.4.1"},"_npmOperationalInternal":{"tmp":"tmp/core_0.1.0-alpha.1_1760193966728_0.3501539988782798","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-alpha.2":{"name":"@spfn/core","version":"0.1.0-alpha.2","keywords":["spfn","framework","nextjs","hono","typescript","fullstack","backend","file-based-routing","transaction","repository-pattern","drizzle-orm","postgres","redis"],"author":{"name":"Ray Im","email":"rayim@inflike.com"},"license":"MIT","_id":"@spfn/core@0.1.0-alpha.2","maintainers":[{"name":"superfunction","email":"rayim@inflike.com"}],"homepage":"https://github.com/spfn/spfn/tree/main/packages/core#readme","bugs":{"url":"https://github.com/spfn/spfn/issues"},"dist":{"shasum":"0d28be241c9a0220cfc7b7836cb806920575835e","tarball":"https://registry.npmjs.org/@spfn/core/-/core-0.1.0-alpha.2.tgz","fileCount":37,"integrity":"sha512-0qlzdXvaJoicJ/xjWN46z8gzxOb234nmU/MBMqZl1XKBhe0trsq1+4nmw6CBvkMwDwbacHw7YXJ3b2hVlQeVRQ==","signatures":[{"sig":"MEYCIQCDyyFCLVNMGuS3X3V9BtnToIIeVj2gSPkGJ1hcJHkp2gIhAKZ0iR+LQqGPcsUwSutoRO6klQY3Re0ws+5Gl0ABdqOY","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3477841},"main":"./dist/index.js","type":"module","_from":"file:spfn-core-0.1.0-alpha.2.tgz","types":"./dist/index.d.ts","engines":{"node":">=18.18.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./db":{"types":"./dist/db/index.d.ts","import":"./dist/db/index.js","require":"./dist/db/index.js"},"./route":{"types":"./dist/route/index.d.ts","import":"./dist/route/index.js","require":"./dist/route/index.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","require":"./dist/client/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./codegen":{"types":"./dist/codegen/index.d.ts","import":"./dist/codegen/index.js","require":"./dist/codegen/index.js"},"./scripts":{"types":"./dist/scripts/index.d.ts","import":"./dist/scripts/index.js","require":"./dist/scripts/index.js"}},"scripts":{"dev":"tsup --watch","test":"vitest","build":"tsup","test:db":"dotenv -e .env.test -- vitest src/tests/db","type-check":"tsc --noEmit","test:codegen":"vitest run --config vitest.codegen.config.ts","docker:test:up":"docker compose -f ../../docker-compose.test.yml up -d","generate:client":"node dist/scripts/generate-client.js","docker:test:down":"docker compose -f ../../docker-compose.test.yml down","docker:test:logs":"docker compose -f ../../docker-compose.test.yml logs -f","generate:client:watch":"node dist/scripts/generate-client.js --watch"},"_npmUser":{"name":"superfunction","email":"rayim@inflike.com"},"_resolved":"/private/var/folders/h9/gtg_888n2j196vml9rmlv42h0000gn/T/41f65a0b72abf647b0f92c8fe87ff4d3/spfn-core-0.1.0-alpha.2.tgz","_integrity":"sha512-0qlzdXvaJoicJ/xjWN46z8gzxOb234nmU/MBMqZl1XKBhe0trsq1+4nmw6CBvkMwDwbacHw7YXJ3b2hVlQeVRQ==","deprecated":"Bug: workspace:* dependency not resolved. Use @latest or @alpha instead.","repository":{"url":"git+https://github.com/spfn/spfn.git","type":"git","directory":"packages/core"},"_npmVersion":"11.4.2","description":"SPFN Framework Core - File-based routing, transactions, repository pattern","directories":{},"_nodeVersion":"22.11.0","dependencies":{"zod":"^4.1.11","hono":"^4.9.0","pino":"^10.0.0","chalk":"^5.6.2","dotenv":"^17.2.3","chokidar":"^4.0.3","postgres":"^3.4.0","typescript":"^5.3.3","drizzle-orm":"^0.44.6","drizzle-typebox":"^0.1.0","@hono/node-server":"^1.0.0","@sinclair/typebox":"^0.34.0"},"publishConfig":{"tag":"alpha","access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"tsup":"^8.0.0","vitest":"^3.2.4","@types/node":"^20.11.0"},"optionalDependencies":{"ioredis":"^5.4.1"},"_npmOperationalInternal":{"tmp":"tmp/core_0.1.0-alpha.2_1760196211432_0.9256307306508915","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-alpha.3":{"name":"@spfn/core","version":"0.1.0-alpha.3","keywords":["spfn","nextjs","backend","framework","typescript","type-safe","api","rest-api","crud","database","orm","drizzle-orm","postgres","redis","hono","fullstack","server","scalable","auto-generated","file-based-routing","transaction","repository-pattern"],"author":{"name":"Ray Im","email":"rayim@inflike.com"},"license":"MIT","_id":"@spfn/core@0.1.0-alpha.3","maintainers":[{"name":"superfunction","email":"rayim@inflike.com"}],"homepage":"https://github.com/spfn/spfn/tree/main/packages/core#readme","bugs":{"url":"https://github.com/spfn/spfn/issues"},"dist":{"shasum":"07dea65545667fdc9a12447b632c96d0f13c6b2a","tarball":"https://registry.npmjs.org/@spfn/core/-/core-0.1.0-alpha.3.tgz","fileCount":36,"integrity":"sha512-UDGZeSPMR3d5lM8LdbAwbzvAflXBstWTkQKiX57XdoD+nekaDrC+PJ8Vd9LxiCJ+RdPJba+LjbPA6tRAOWlAeQ==","signatures":[{"sig":"MEQCICPJnFLrAf6pAEw6e6QBry/0Rc3vOf145BWK0DCBUI/HAiAW9v/3bqB+z2M9J+ZEWHmvbTRS4OY8ewSXyEeyUVTudw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spfn%2fcore@0.1.0-alpha.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3477173},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.18.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./db":{"types":"./dist/db/index.d.ts","import":"./dist/db/index.js","require":"./dist/db/index.js"},"./route":{"types":"./dist/route/index.d.ts","import":"./dist/route/index.js","require":"./dist/route/index.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","require":"./dist/client/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./codegen":{"types":"./dist/codegen/index.d.ts","import":"./dist/codegen/index.js","require":"./dist/codegen/index.js"},"./scripts":{"types":"./dist/scripts/index.d.ts","import":"./dist/scripts/index.js","require":"./dist/scripts/index.js"}},"gitHead":"b4876a158f6b92ead0d32f113da9e6d351e063a8","scripts":{"dev":"tsup --watch","test":"vitest","build":"tsup","test:db":"dotenv -e .env.test -- vitest src/tests/db","type-check":"tsc --noEmit","test:codegen":"vitest run --config vitest.codegen.config.ts","docker:test:up":"docker compose -f ../../docker-compose.test.yml up -d","generate:client":"node dist/scripts/generate-client.js","docker:test:down":"docker compose -f ../../docker-compose.test.yml down","docker:test:logs":"docker compose -f ../../docker-compose.test.yml logs -f","generate:client:watch":"node dist/scripts/generate-client.js --watch"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:ac93c5d5-25a0-4325-a62a-9cc8f1028e8a"}},"deprecated":"Bug: workspace:* dependency not resolved. Use @latest or @alpha instead.","repository":{"url":"git+https://github.com/spfn/spfn.git","type":"git","directory":"packages/core"},"_npmVersion":"11.6.2","description":"SPFN Framework Core - File-based routing, transactions, repository pattern","directories":{},"_nodeVersion":"20.19.5","dependencies":{"zod":"^4.1.11","hono":"^4.9.0","pino":"^10.0.0","chalk":"^5.6.2","dotenv":"^17.2.3","chokidar":"^4.0.3","postgres":"^3.4.0","typescript":"^5.3.3","drizzle-orm":"^0.44.6","drizzle-typebox":"^0.1.0","@hono/node-server":"^1.0.0","@sinclair/typebox":"^0.34.0"},"publishConfig":{"tag":"alpha","access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"tsup":"^8.0.0","vitest":"^3.2.4","@types/node":"^20.11.0"},"optionalDependencies":{"ioredis":"^5.4.1"},"_npmOperationalInternal":{"tmp":"tmp/core_0.1.0-alpha.3_1760329946696_0.6342300106658894","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-alpha.4":{"name":"@spfn/core","version":"0.1.0-alpha.4","keywords":["spfn","nextjs","backend","framework","typescript","type-safe","api","rest-api","crud","database","orm","drizzle-orm","postgres","redis","hono","fullstack","server","scalable","auto-generated","file-based-routing","transaction","repository-pattern"],"author":{"name":"Ray Im","email":"rayim@inflike.com"},"license":"MIT","_id":"@spfn/core@0.1.0-alpha.4","maintainers":[{"name":"superfunction","email":"rayim@inflike.com"}],"homepage":"https://github.com/spfn/spfn/tree/main/packages/core#readme","bugs":{"url":"https://github.com/spfn/spfn/issues"},"dist":{"shasum":"fb902c7392770d658e80b61e7bb781c2b6306c04","tarball":"https://registry.npmjs.org/@spfn/core/-/core-0.1.0-alpha.4.tgz","fileCount":36,"integrity":"sha512-nd5oIln0zRhT/ysWrWFZW406X65xeKASkIiPImjDo3wErUHj5T+XL/Ouo06TbTa191uzpLnWnsgM7fmf/aeBhw==","signatures":[{"sig":"MEUCIQCTXDabDXpjN6xCMRsjotJmkgKksQKZN0d09vhvNNMxNQIgeVdLBKlggl5sihmJb0WYgVG8ij9UJw6x2ikHiqAQmCU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spfn%2fcore@0.1.0-alpha.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3477276},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.18.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./db":{"types":"./dist/db/index.d.ts","import":"./dist/db/index.js","require":"./dist/db/index.js"},"./route":{"types":"./dist/route/index.d.ts","import":"./dist/route/index.js","require":"./dist/route/index.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","require":"./dist/client/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./codegen":{"types":"./dist/codegen/index.d.ts","import":"./dist/codegen/index.js","require":"./dist/codegen/index.js"},"./scripts":{"types":"./dist/scripts/index.d.ts","import":"./dist/scripts/index.js","require":"./dist/scripts/index.js"}},"gitHead":"8ea16fd9714f19f04b8901b477859869d52c30e3","scripts":{"dev":"tsup --watch","test":"vitest","build":"tsup","test:db":"dotenv -e .env.test -- vitest src/tests/db","type-check":"tsc --noEmit","test:codegen":"vitest run --config vitest.codegen.config.ts","docker:test:up":"docker compose -f ../../docker-compose.test.yml up -d","generate:client":"node dist/scripts/generate-client.js","docker:test:down":"docker compose -f ../../docker-compose.test.yml down","docker:test:logs":"docker compose -f ../../docker-compose.test.yml logs -f","generate:client:watch":"node dist/scripts/generate-client.js --watch"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:ac93c5d5-25a0-4325-a62a-9cc8f1028e8a"}},"deprecated":"Bug: workspace:* dependency not resolved. Use @latest or @alpha instead.","repository":{"url":"git+https://github.com/spfn/spfn.git","type":"git","directory":"packages/core"},"_npmVersion":"11.6.2","description":"SPFN Framework Core - File-based routing, transactions, repository pattern","directories":{},"_nodeVersion":"20.19.5","dependencies":{"zod":"^4.1.11","hono":"^4.9.0","pino":"^10.0.0","chalk":"^5.6.2","dotenv":"^17.2.3","chokidar":"^4.0.3","postgres":"^3.4.0","typescript":"^5.3.3","drizzle-orm":"^0.44.6","drizzle-typebox":"^0.1.0","@hono/node-server":"^1.0.0","@sinclair/typebox":"^0.34.0"},"publishConfig":{"tag":"alpha","access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"tsup":"^8.0.0","vitest":"^3.2.4","@types/node":"^20.11.0"},"optionalDependencies":{"ioredis":"^5.4.1"},"_npmOperationalInternal":{"tmp":"tmp/core_0.1.0-alpha.4_1760341737768_0.8826843752261613","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-alpha.5":{"name":"@spfn/core","version":"0.1.0-alpha.5","keywords":["spfn","nextjs","backend","framework","typescript","type-safe","api","rest-api","crud","database","orm","drizzle-orm","postgres","redis","hono","fullstack","server","scalable","auto-generated","file-based-routing","transaction","repository-pattern"],"author":{"name":"Ray Im","email":"rayim@inflike.com"},"license":"MIT","_id":"@spfn/core@0.1.0-alpha.5","maintainers":[{"name":"superfunction","email":"rayim@inflike.com"}],"homepage":"https://github.com/spfn/spfn/tree/main/packages/core#readme","bugs":{"url":"https://github.com/spfn/spfn/issues"},"dist":{"shasum":"a85d5200d0e4d4ba5ea5a84e1956af510162f1fe","tarball":"https://registry.npmjs.org/@spfn/core/-/core-0.1.0-alpha.5.tgz","fileCount":37,"integrity":"sha512-gkFbsLp2+bwCWu7QIsP63jPzryKdm8USL6z9f0Y+/aijXhardETqT2GMiAIfI3PP4Brj1vGp1ktZ/yXyW8klvQ==","signatures":[{"sig":"MEQCIHn5YG0BSC2C1ktCM7L2cr9CNwUa8LETEzYZNzY2Mdi6AiAkpOgI8yZh+pJiqM7kJrNhYsGcHVN1aBvPyYQqe+V2ZQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spfn%2fcore@0.1.0-alpha.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3478343},"main":"./dist/index.js","type":"module","_from":"file:spfn-core-0.1.0-alpha.5.tgz","types":"./dist/index.d.ts","engines":{"node":">=18.18.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./db":{"types":"./dist/db/index.d.ts","import":"./dist/db/index.js","require":"./dist/db/index.js"},"./route":{"types":"./dist/route/index.d.ts","import":"./dist/route/index.js","require":"./dist/route/index.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","require":"./dist/client/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./codegen":{"types":"./dist/codegen/index.d.ts","import":"./dist/codegen/index.js","require":"./dist/codegen/index.js"},"./scripts":{"types":"./dist/scripts/index.d.ts","import":"./dist/scripts/index.js","require":"./dist/scripts/index.js"}},"scripts":{"dev":"tsup --watch","test":"vitest","build":"tsup","test:db":"dotenv -e .env.test -- vitest src/tests/db","type-check":"tsc --noEmit","test:codegen":"vitest run --config vitest.codegen.config.ts","docker:test:up":"docker compose -f ../../docker-compose.test.yml up -d","generate:client":"node dist/scripts/generate-client.js","docker:test:down":"docker compose -f ../../docker-compose.test.yml down","docker:test:logs":"docker compose -f ../../docker-compose.test.yml logs -f","generate:client:watch":"node dist/scripts/generate-client.js --watch"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:ac93c5d5-25a0-4325-a62a-9cc8f1028e8a"}},"_resolved":"/tmp/042f1df763d7fa3a4aa1f4b5634ba476/spfn-core-0.1.0-alpha.5.tgz","_integrity":"sha512-gkFbsLp2+bwCWu7QIsP63jPzryKdm8USL6z9f0Y+/aijXhardETqT2GMiAIfI3PP4Brj1vGp1ktZ/yXyW8klvQ==","repository":{"url":"git+https://github.com/spfn/spfn.git","type":"git","directory":"packages/core"},"_npmVersion":"11.6.2","description":"SPFN Framework Core - File-based routing, transactions, repository pattern","directories":{},"_nodeVersion":"20.19.5","dependencies":{"zod":"^4.1.11","hono":"^4.9.0","pino":"^10.0.0","chalk":"^5.6.2","dotenv":"^17.2.3","chokidar":"^4.0.3","postgres":"^3.4.0","typescript":"^5.3.3","drizzle-orm":"^0.44.6","drizzle-typebox":"^0.1.0","@hono/node-server":"^1.0.0","@sinclair/typebox":"^0.34.0"},"publishConfig":{"tag":"alpha","access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"tsup":"^8.0.0","vitest":"^3.2.4","@types/node":"^20.11.0"},"optionalDependencies":{"ioredis":"^5.4.1"},"_npmOperationalInternal":{"tmp":"tmp/core_0.1.0-alpha.5_1760347053749_0.895762666616992","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-alpha.6":{"name":"@spfn/core","version":"0.1.0-alpha.6","keywords":["spfn","nextjs","backend","framework","typescript","type-safe","api","rest-api","crud","database","orm","drizzle-orm","postgres","redis","hono","fullstack","server","scalable","auto-generated","file-based-routing","transaction","repository-pattern"],"author":{"name":"Ray Im","email":"rayim@inflike.com"},"license":"MIT","_id":"@spfn/core@0.1.0-alpha.6","maintainers":[{"name":"superfunction","email":"rayim@inflike.com"}],"homepage":"https://github.com/spfn/spfn/tree/main/packages/core#readme","bugs":{"url":"https://github.com/spfn/spfn/issues"},"dist":{"shasum":"e0a9c53eca517f223b221f11029b924619bbc629","tarball":"https://registry.npmjs.org/@spfn/core/-/core-0.1.0-alpha.6.tgz","fileCount":36,"integrity":"sha512-lkJsCGk1iTFVJgp/FnGXJ0EShkgmKaeA6JhmpP4++KfNoBQX7zd86AousXLleVd8P6tG8j67Nkuau4TSs6WOJw==","signatures":[{"sig":"MEUCIFXDrUS6FUrNOV0Dk+E+he/LckW8k7WwBcKxTXuUpBcMAiEAt7TujSXyS93H1f6Ggdrf3sdInDdG3Mpe2601nq/E0QU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3477276},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.18.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./db":{"types":"./dist/db/index.d.ts","import":"./dist/db/index.js","require":"./dist/db/index.js"},"./route":{"types":"./dist/route/index.d.ts","import":"./dist/route/index.js","require":"./dist/route/index.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","require":"./dist/client/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./codegen":{"types":"./dist/codegen/index.d.ts","import":"./dist/codegen/index.js","require":"./dist/codegen/index.js"},"./scripts":{"types":"./dist/scripts/index.d.ts","import":"./dist/scripts/index.js","require":"./dist/scripts/index.js"}},"gitHead":"3dff36ed1339369b9cdab2f97fc2200a5e9f4d6f","scripts":{"dev":"tsup --watch","test":"vitest","build":"tsup","test:db":"dotenv -e .env.test -- vitest src/tests/db","type-check":"tsc --noEmit","test:codegen":"vitest run --config vitest.codegen.config.ts","docker:test:up":"docker compose -f ../../docker-compose.test.yml up -d","generate:client":"node dist/scripts/generate-client.js","docker:test:down":"docker compose -f ../../docker-compose.test.yml down","docker:test:logs":"docker compose -f ../../docker-compose.test.yml logs -f","generate:client:watch":"node dist/scripts/generate-client.js --watch"},"_npmUser":{"name":"superfunction","email":"rayim@inflike.com"},"repository":{"url":"git+https://github.com/spfn/spfn.git","type":"git","directory":"packages/core"},"_npmVersion":"11.4.2","description":"SPFN Framework Core - File-based routing, transactions, repository pattern","directories":{},"_nodeVersion":"22.11.0","dependencies":{"zod":"^4.1.11","hono":"^4.9.0","pino":"^10.0.0","chalk":"^5.6.2","dotenv":"^17.2.3","chokidar":"^4.0.3","postgres":"^3.4.0","typescript":"^5.3.3","drizzle-orm":"^0.44.6","drizzle-typebox":"^0.1.0","@hono/node-server":"^1.0.0","@sinclair/typebox":"^0.34.0"},"publishConfig":{"tag":"alpha","access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"tsup":"^8.0.0","vitest":"^3.2.4","@types/node":"^20.11.0"},"optionalDependencies":{"ioredis":"^5.4.1"},"_npmOperationalInternal":{"tmp":"tmp/core_0.1.0-alpha.6_1760369762740_0.6243874998482508","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-alpha.7":{"name":"@spfn/core","version":"0.1.0-alpha.7","keywords":["spfn","nextjs","backend","framework","typescript","type-safe","api","rest-api","crud","database","orm","drizzle-orm","postgres","redis","hono","fullstack","server","scalable","auto-generated","file-based-routing","transaction","repository-pattern"],"author":{"name":"Ray Im","email":"rayim@inflike.com"},"license":"MIT","_id":"@spfn/core@0.1.0-alpha.7","maintainers":[{"name":"superfunction","email":"rayim@inflike.com"}],"homepage":"https://github.com/spfn/spfn/tree/main/packages/core#readme","bugs":{"url":"https://github.com/spfn/spfn/issues"},"dist":{"shasum":"ba1814f0f02629b2bbfd0fe47235d8fdd51a75c6","tarball":"https://registry.npmjs.org/@spfn/core/-/core-0.1.0-alpha.7.tgz","fileCount":37,"integrity":"sha512-Up1CMl30FHmii2ioXh+jANovQu4H1SpaaHAxYyqycA6O7DnC72qGg1li9gz4UuJ/0RpK06dSsZYp4975s7rAng==","signatures":[{"sig":"MEUCIQCFLi68I10IN8Ko9hjqNg+ir7z5netcBexHYgTCglKsFgIgYF73KBQtCsD0o40tMNQzEGSowj+ZZ05fLfZQM50+wD4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spfn%2fcore@0.1.0-alpha.7","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1589970},"main":"./dist/index.js","type":"module","_from":"file:spfn-core-0.1.0-alpha.7.tgz","types":"./dist/index.d.ts","engines":{"node":">=18.18.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./db":{"types":"./dist/db/index.d.ts","import":"./dist/db/index.js","require":"./dist/db/index.js"},"./route":{"types":"./dist/route/index.d.ts","import":"./dist/route/index.js","require":"./dist/route/index.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","require":"./dist/client/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./codegen":{"types":"./dist/codegen/index.d.ts","import":"./dist/codegen/index.js","require":"./dist/codegen/index.js"},"./scripts":{"types":"./dist/scripts/index.d.ts","import":"./dist/scripts/index.js","require":"./dist/scripts/index.js"}},"scripts":{"dev":"tsup --watch","test":"vitest","build":"tsup","test:db":"dotenv -e .env.test -- vitest src/tests/db","type-check":"tsc --noEmit","test:codegen":"vitest run --config vitest.codegen.config.ts","docker:test:up":"docker compose -f ../../docker-compose.test.yml up -d","generate:client":"node dist/scripts/generate-client.js","docker:test:down":"docker compose -f ../../docker-compose.test.yml down","docker:test:logs":"docker compose -f ../../docker-compose.test.yml logs -f","generate:client:watch":"node dist/scripts/generate-client.js --watch"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:ac93c5d5-25a0-4325-a62a-9cc8f1028e8a"}},"_resolved":"/tmp/5db1c03580b142c0bb23550a069349a0/spfn-core-0.1.0-alpha.7.tgz","_integrity":"sha512-Up1CMl30FHmii2ioXh+jANovQu4H1SpaaHAxYyqycA6O7DnC72qGg1li9gz4UuJ/0RpK06dSsZYp4975s7rAng==","repository":{"url":"git+https://github.com/spfn/spfn.git","type":"git","directory":"packages/core"},"_npmVersion":"11.6.2","description":"SPFN Framework Core - File-based routing, transactions, repository pattern","directories":{},"_nodeVersion":"20.19.5","dependencies":{"zod":"^4.1.11","hono":"^4.9.0","pino":"^10.0.0","chalk":"^5.6.2","dotenv":"^17.2.3","chokidar":"^4.0.3","postgres":"^3.4.0","typescript":"^5.3.3","drizzle-orm":"^0.44.6","drizzle-typebox":"^0.1.0","@hono/node-server":"^1.0.0","@sinclair/typebox":"^0.34.0"},"publishConfig":{"tag":"alpha","access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"tsup":"^8.0.0","vitest":"^3.2.4","@types/node":"^20.11.0"},"optionalDependencies":{"ioredis":"^5.4.1"},"_npmOperationalInternal":{"tmp":"tmp/core_0.1.0-alpha.7_1760417910188_0.33112635401031465","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-alpha.8":{"name":"@spfn/core","version":"0.1.0-alpha.8","keywords":["spfn","nextjs","backend","framework","typescript","type-safe","api","rest-api","crud","database","orm","drizzle-orm","postgres","redis","hono","fullstack","server","scalable","auto-generated","file-based-routing","transaction","repository-pattern"],"author":{"name":"Ray Im","email":"rayim@inflike.com"},"license":"MIT","_id":"@spfn/core@0.1.0-alpha.8","maintainers":[{"name":"superfunction","email":"rayim@inflike.com"}],"homepage":"https://github.com/spfn/spfn/tree/main/packages/core#readme","bugs":{"url":"https://github.com/spfn/spfn/issues"},"dist":{"shasum":"ff079b0f3d888c5a4ce68ba2ae672128684f5f0a","tarball":"https://registry.npmjs.org/@spfn/core/-/core-0.1.0-alpha.8.tgz","fileCount":37,"integrity":"sha512-rhYAP1dvTXDf8OoUMClj70JjTXRngMo9sN3Vqe/3yh0ToM1Ua0f1Vw78jKu8OIFXVeN5jHJwc/+EWKk2YszvMA==","signatures":[{"sig":"MEYCIQDw/iy/3CcJYjZwSipFFDJ7N0fSLkdV6vHGNkiIxOiWoQIhAOm0UBxUDEEHxQSRA+I+3+ugn6io6OAJ29wAXDNdoSiG","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spfn%2fcore@0.1.0-alpha.8","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1589970},"main":"./dist/index.js","type":"module","_from":"file:spfn-core-0.1.0-alpha.8.tgz","types":"./dist/index.d.ts","engines":{"node":">=18.18.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./db":{"types":"./dist/db/index.d.ts","import":"./dist/db/index.js","require":"./dist/db/index.js"},"./route":{"types":"./dist/route/index.d.ts","import":"./dist/route/index.js","require":"./dist/route/index.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","require":"./dist/client/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./codegen":{"types":"./dist/codegen/index.d.ts","import":"./dist/codegen/index.js","require":"./dist/codegen/index.js"},"./scripts":{"types":"./dist/scripts/index.d.ts","import":"./dist/scripts/index.js","require":"./dist/scripts/index.js"}},"scripts":{"dev":"tsup --watch","test":"vitest","build":"tsup","test:db":"dotenv -e .env.test -- vitest src/tests/db","type-check":"tsc --noEmit","test:codegen":"vitest run --config vitest.codegen.config.ts","docker:test:up":"docker compose -f ../../docker-compose.test.yml up -d","generate:client":"node dist/scripts/generate-client.js","docker:test:down":"docker compose -f ../../docker-compose.test.yml down","docker:test:logs":"docker compose -f ../../docker-compose.test.yml logs -f","generate:client:watch":"node dist/scripts/generate-client.js --watch"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:ac93c5d5-25a0-4325-a62a-9cc8f1028e8a"}},"_resolved":"/tmp/2c79b3891d7008234b93031283d859d0/spfn-core-0.1.0-alpha.8.tgz","_integrity":"sha512-rhYAP1dvTXDf8OoUMClj70JjTXRngMo9sN3Vqe/3yh0ToM1Ua0f1Vw78jKu8OIFXVeN5jHJwc/+EWKk2YszvMA==","repository":{"url":"git+https://github.com/spfn/spfn.git","type":"git","directory":"packages/core"},"_npmVersion":"11.6.2","description":"SPFN Framework Core - File-based routing, transactions, repository pattern","directories":{},"_nodeVersion":"20.19.5","dependencies":{"zod":"^4.1.11","hono":"^4.9.0","pino":"^10.0.0","chalk":"^5.6.2","dotenv":"^17.2.3","chokidar":"^4.0.3","postgres":"^3.4.0","typescript":"^5.3.3","drizzle-orm":"^0.44.6","drizzle-typebox":"^0.1.0","@hono/node-server":"^1.0.0","@sinclair/typebox":"^0.34.0"},"publishConfig":{"tag":"alpha","access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"tsup":"^8.0.0","vitest":"^3.2.4","@types/node":"^20.11.0"},"optionalDependencies":{"ioredis":"^5.4.1"},"_npmOperationalInternal":{"tmp":"tmp/core_0.1.0-alpha.8_1760419486344_0.9609906484180095","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-alpha.11":{"name":"@spfn/core","version":"0.1.0-alpha.11","keywords":["spfn","nextjs","backend","framework","typescript","type-safe","api","rest-api","crud","database","orm","drizzle-orm","postgres","redis","hono","fullstack","server","scalable","auto-generated","file-based-routing","transaction","repository-pattern"],"author":{"name":"Ray Im","email":"rayim@inflike.com"},"license":"MIT","_id":"@spfn/core@0.1.0-alpha.11","maintainers":[{"name":"superfunction","email":"rayim@inflike.com"}],"homepage":"https://github.com/spfn/spfn/tree/main/packages/core#readme","bugs":{"url":"https://github.com/spfn/spfn/issues"},"dist":{"shasum":"d38cd564eba52a2153e28e259551371ec400da39","tarball":"https://registry.npmjs.org/@spfn/core/-/core-0.1.0-alpha.11.tgz","fileCount":37,"integrity":"sha512-70HM0jstkxV+UXb9GN/kVG7EYZxzxAQ/BDwHHn5R9uj6W0Xg1/TBqDCaepmE6rcGm1sN6Kn2YwO9mBnaut5fNw==","signatures":[{"sig":"MEUCIQDoKeOqK3lIYGsPbMaFBZm0/PyLVhexjJ//blZrpihmUQIgZxPD7NiqTea3iTC2bEhMHN3xmbOEXdyGJQ1i6/+httI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spfn%2fcore@0.1.0-alpha.11","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1589971},"main":"./dist/index.js","type":"module","_from":"file:spfn-core-0.1.0-alpha.11.tgz","types":"./dist/index.d.ts","engines":{"node":">=18.18.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./db":{"types":"./dist/db/index.d.ts","import":"./dist/db/index.js","require":"./dist/db/index.js"},"./route":{"types":"./dist/route/index.d.ts","import":"./dist/route/index.js","require":"./dist/route/index.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","require":"./dist/client/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./codegen":{"types":"./dist/codegen/index.d.ts","import":"./dist/codegen/index.js","require":"./dist/codegen/index.js"},"./scripts":{"types":"./dist/scripts/index.d.ts","import":"./dist/scripts/index.js","require":"./dist/scripts/index.js"}},"scripts":{"dev":"tsup --watch","test":"vitest","build":"tsup","test:db":"dotenv -e .env.test -- vitest src/tests/db","type-check":"tsc --noEmit","test:codegen":"vitest run --config vitest.codegen.config.ts","docker:test:up":"docker compose -f ../../docker-compose.test.yml up -d","generate:client":"node dist/scripts/generate-client.js","docker:test:down":"docker compose -f ../../docker-compose.test.yml down","docker:test:logs":"docker compose -f ../../docker-compose.test.yml logs -f","generate:client:watch":"node dist/scripts/generate-client.js --watch"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:ac93c5d5-25a0-4325-a62a-9cc8f1028e8a"}},"_resolved":"/tmp/039ef7506784fe9ea0da30016caf52e3/spfn-core-0.1.0-alpha.11.tgz","_integrity":"sha512-70HM0jstkxV+UXb9GN/kVG7EYZxzxAQ/BDwHHn5R9uj6W0Xg1/TBqDCaepmE6rcGm1sN6Kn2YwO9mBnaut5fNw==","repository":{"url":"git+https://github.com/spfn/spfn.git","type":"git","directory":"packages/core"},"_npmVersion":"11.6.2","description":"SPFN Framework Core - File-based routing, transactions, repository pattern","directories":{},"_nodeVersion":"20.19.5","dependencies":{"zod":"^4.1.11","hono":"^4.9.0","pino":"^10.0.0","chalk":"^5.6.2","dotenv":"^17.2.3","chokidar":"^4.0.3","postgres":"^3.4.0","typescript":"^5.3.3","drizzle-orm":"^0.44.6","drizzle-typebox":"^0.1.0","@hono/node-server":"^1.0.0","@sinclair/typebox":"^0.34.0"},"publishConfig":{"tag":"alpha","access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"tsup":"^8.0.0","vitest":"^3.2.4","@types/node":"^20.11.0"},"optionalDependencies":{"ioredis":"^5.4.1"},"_npmOperationalInternal":{"tmp":"tmp/core_0.1.0-alpha.11_1760426983184_0.7454522745383863","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-alpha.12":{"name":"@spfn/core","version":"0.1.0-alpha.12","keywords":["spfn","nextjs","backend","framework","typescript","type-safe","api","rest-api","crud","database","orm","drizzle-orm","postgres","redis","hono","fullstack","server","scalable","auto-generated","file-based-routing","transaction","repository-pattern"],"author":{"name":"Ray Im","email":"rayim@inflike.com"},"license":"MIT","_id":"@spfn/core@0.1.0-alpha.12","maintainers":[{"name":"superfunction","email":"rayim@inflike.com"}],"homepage":"https://github.com/spfn/spfn/tree/main/packages/core#readme","bugs":{"url":"https://github.com/spfn/spfn/issues"},"dist":{"shasum":"c353cd866f4218fbf726e6d682f1b9507b8eb512","tarball":"https://registry.npmjs.org/@spfn/core/-/core-0.1.0-alpha.12.tgz","fileCount":37,"integrity":"sha512-T2T9liOQ2id5TeJXkB2XVXHPubICXTaCTe7fSKpuVtWWne2AymUNfKYIZ8PFlt0L5x8IoJtGfHMqG686TQHBfg==","signatures":[{"sig":"MEYCIQCRzIl0bBOiX4bC9YhRI6q5AJjZghBJWijecXeTeWMvEgIhALMjCvSV6aehjUZcN/t67uAG7pldJVsPXJJPYsUhS6bU","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spfn%2fcore@0.1.0-alpha.12","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1593821},"main":"./dist/index.js","type":"module","_from":"file:spfn-core-0.1.0-alpha.12.tgz","types":"./dist/index.d.ts","engines":{"node":">=18.18.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./db":{"types":"./dist/db/index.d.ts","import":"./dist/db/index.js","require":"./dist/db/index.js"},"./route":{"types":"./dist/route/index.d.ts","import":"./dist/route/index.js","require":"./dist/route/index.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","require":"./dist/client/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./codegen":{"types":"./dist/codegen/index.d.ts","import":"./dist/codegen/index.js","require":"./dist/codegen/index.js"},"./scripts":{"types":"./dist/scripts/index.d.ts","import":"./dist/scripts/index.js","require":"./dist/scripts/index.js"}},"scripts":{"dev":"tsup --watch","test":"vitest","build":"tsup","test:db":"dotenv -e .env.test -- vitest src/tests/db","type-check":"tsc --noEmit","test:codegen":"vitest run --config vitest.codegen.config.ts","docker:test:up":"docker compose -f ../../docker-compose.test.yml up -d","generate:client":"node dist/scripts/generate-client.js","docker:test:down":"docker compose -f ../../docker-compose.test.yml down","docker:test:logs":"docker compose -f ../../docker-compose.test.yml logs -f","generate:client:watch":"node dist/scripts/generate-client.js --watch"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:ac93c5d5-25a0-4325-a62a-9cc8f1028e8a"}},"_resolved":"/tmp/78475fbbcc925e06e5c7ed768bb6fb5e/spfn-core-0.1.0-alpha.12.tgz","_integrity":"sha512-T2T9liOQ2id5TeJXkB2XVXHPubICXTaCTe7fSKpuVtWWne2AymUNfKYIZ8PFlt0L5x8IoJtGfHMqG686TQHBfg==","repository":{"url":"git+https://github.com/spfn/spfn.git","type":"git","directory":"packages/core"},"_npmVersion":"11.6.2","description":"SPFN Framework Core - File-based routing, transactions, repository pattern","directories":{},"_nodeVersion":"20.19.5","dependencies":{"zod":"^4.1.11","hono":"^4.9.0","pino":"^10.0.0","chalk":"^5.6.2","dotenv":"^17.2.3","chokidar":"^4.0.3","postgres":"^3.4.0","typescript":"^5.3.3","drizzle-orm":"^0.44.6","drizzle-typebox":"^0.1.0","@hono/node-server":"^1.0.0","@sinclair/typebox":"^0.34.0"},"publishConfig":{"tag":"alpha","access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"tsup":"^8.0.0","vitest":"^3.2.4","@types/node":"^20.11.0"},"optionalDependencies":{"ioredis":"^5.4.1"},"_npmOperationalInternal":{"tmp":"tmp/core_0.1.0-alpha.12_1760428169474_0.15984002251570795","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-alpha.13":{"name":"@spfn/core","version":"0.1.0-alpha.13","keywords":["spfn","nextjs","backend","framework","typescript","type-safe","api","rest-api","crud","database","orm","drizzle-orm","postgres","redis","hono","fullstack","server","scalable","auto-generated","file-based-routing","transaction","repository-pattern"],"author":{"name":"Ray Im","email":"rayim@inflike.com"},"license":"MIT","_id":"@spfn/core@0.1.0-alpha.13","maintainers":[{"name":"superfunction","email":"rayim@inflike.com"}],"homepage":"https://github.com/spfn/spfn/tree/main/packages/core#readme","bugs":{"url":"https://github.com/spfn/spfn/issues"},"dist":{"shasum":"91b5a4a46dddba2dedc173f3bcc9ecade90ffd07","tarball":"https://registry.npmjs.org/@spfn/core/-/core-0.1.0-alpha.13.tgz","fileCount":37,"integrity":"sha512-5+c54EOl4ZqT341VtrRVj0rGAiwUOT3bA0HoIfCzZ/b0URpuxy0p5ujH4CXiWdubps3B71ifB4r/JhO4r8KgXw==","signatures":[{"sig":"MEUCIEdPbpqZaxhk9U7rXFurshpAUjbSe3x8oddpoigCGSxAAiEA4tUZW/sLW+6N4fI1/m+HqRP8IztGNwTCwl3+ulQN7E4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spfn%2fcore@0.1.0-alpha.13","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1600087},"main":"./dist/index.js","type":"module","_from":"file:spfn-core-0.1.0-alpha.13.tgz","types":"./dist/index.d.ts","engines":{"node":">=18.18.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./db":{"types":"./dist/db/index.d.ts","import":"./dist/db/index.js","require":"./dist/db/index.js"},"./route":{"types":"./dist/route/index.d.ts","import":"./dist/route/index.js","require":"./dist/route/index.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","require":"./dist/client/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./codegen":{"types":"./dist/codegen/index.d.ts","import":"./dist/codegen/index.js","require":"./dist/codegen/index.js"},"./scripts":{"types":"./dist/scripts/index.d.ts","import":"./dist/scripts/index.js","require":"./dist/scripts/index.js"}},"scripts":{"dev":"tsup --watch","test":"vitest","build":"tsup","test:db":"dotenv -e .env.test -- vitest src/tests/db","type-check":"tsc --noEmit","test:codegen":"vitest run --config vitest.codegen.config.ts","docker:test:up":"docker compose -f ../../docker-compose.test.yml up -d","generate:client":"node dist/scripts/generate-client.js","docker:test:down":"docker compose -f ../../docker-compose.test.yml down","docker:test:logs":"docker compose -f ../../docker-compose.test.yml logs -f","generate:client:watch":"node dist/scripts/generate-client.js --watch"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:ac93c5d5-25a0-4325-a62a-9cc8f1028e8a"}},"_resolved":"/tmp/27b74df4540d933325d5aac85d86afc3/spfn-core-0.1.0-alpha.13.tgz","_integrity":"sha512-5+c54EOl4ZqT341VtrRVj0rGAiwUOT3bA0HoIfCzZ/b0URpuxy0p5ujH4CXiWdubps3B71ifB4r/JhO4r8KgXw==","repository":{"url":"git+https://github.com/spfn/spfn.git","type":"git","directory":"packages/core"},"_npmVersion":"11.6.2","description":"SPFN Framework Core - File-based routing, transactions, repository pattern","directories":{},"_nodeVersion":"20.19.5","dependencies":{"zod":"^4.1.11","hono":"^4.9.0","pino":"^10.0.0","chalk":"^5.6.2","dotenv":"^17.2.3","chokidar":"^4.0.3","postgres":"^3.4.0","typescript":"^5.3.3","drizzle-orm":"^0.44.6","drizzle-typebox":"^0.1.0","@hono/node-server":"^1.0.0","@sinclair/typebox":"^0.34.0"},"publishConfig":{"tag":"alpha","access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"tsup":"^8.0.0","vitest":"^3.2.4","@types/node":"^20.11.0"},"optionalDependencies":{"ioredis":"^5.4.1"},"_npmOperationalInternal":{"tmp":"tmp/core_0.1.0-alpha.13_1760429511277_0.6394484966486365","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-alpha.14":{"name":"@spfn/core","version":"0.1.0-alpha.14","keywords":["spfn","nextjs","backend","framework","typescript","type-safe","api","rest-api","crud","database","orm","drizzle-orm","postgres","redis","hono","fullstack","server","scalable","auto-generated","file-based-routing","transaction","repository-pattern"],"author":{"name":"Ray Im","email":"rayim@inflike.com"},"license":"MIT","_id":"@spfn/core@0.1.0-alpha.14","maintainers":[{"name":"superfunction","email":"rayim@inflike.com"}],"homepage":"https://github.com/spfn/spfn/tree/main/packages/core#readme","bugs":{"url":"https://github.com/spfn/spfn/issues"},"dist":{"shasum":"e3e4fe58fc49a63bfc5dafb132303ce26ca3448f","tarball":"https://registry.npmjs.org/@spfn/core/-/core-0.1.0-alpha.14.tgz","fileCount":37,"integrity":"sha512-boDeqplZThkH+N2Rwh0Kuv0H20PeZpnRTbEZVFCUtBQmnM3oqbkG8Fw8wUnwFFHoYi+mAGD1q4wI/tT7MWtgxg==","signatures":[{"sig":"MEUCIQDz+6U2R6kbqhccsJ/RhGOgfOzj9VsOCq/BAJyZu1YUzwIgTLo1V9Ivdk1wVn/L8Q6nK9MC3TcL0VYgUNxTDGs4bVA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spfn%2fcore@0.1.0-alpha.14","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1600087},"main":"./dist/index.js","type":"module","_from":"file:spfn-core-0.1.0-alpha.14.tgz","types":"./dist/index.d.ts","engines":{"node":">=18.18.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./db":{"types":"./dist/db/index.d.ts","import":"./dist/db/index.js","require":"./dist/db/index.js"},"./route":{"types":"./dist/route/index.d.ts","import":"./dist/route/index.js","require":"./dist/route/index.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","require":"./dist/client/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./codegen":{"types":"./dist/codegen/index.d.ts","import":"./dist/codegen/index.js","require":"./dist/codegen/index.js"},"./scripts":{"types":"./dist/scripts/index.d.ts","import":"./dist/scripts/index.js","require":"./dist/scripts/index.js"}},"scripts":{"dev":"tsup --watch","test":"vitest","build":"tsup","test:db":"dotenv -e .env.test -- vitest src/tests/db","type-check":"tsc --noEmit","test:codegen":"vitest run --config vitest.codegen.config.ts","docker:test:up":"docker compose -f ../../docker-compose.test.yml up -d","generate:client":"node dist/scripts/generate-client.js","docker:test:down":"docker compose -f ../../docker-compose.test.yml down","docker:test:logs":"docker compose -f ../../docker-compose.test.yml logs -f","generate:client:watch":"node dist/scripts/generate-client.js --watch"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:ac93c5d5-25a0-4325-a62a-9cc8f1028e8a"}},"_resolved":"/tmp/57f55d3b2f9bad5dd3a43e06d4d363cb/spfn-core-0.1.0-alpha.14.tgz","_integrity":"sha512-boDeqplZThkH+N2Rwh0Kuv0H20PeZpnRTbEZVFCUtBQmnM3oqbkG8Fw8wUnwFFHoYi+mAGD1q4wI/tT7MWtgxg==","repository":{"url":"git+https://github.com/spfn/spfn.git","type":"git","directory":"packages/core"},"_npmVersion":"11.6.2","description":"SPFN Framework Core - File-based routing, transactions, repository pattern","directories":{},"_nodeVersion":"20.19.5","dependencies":{"zod":"^4.1.11","hono":"^4.9.0","pino":"^10.0.0","chalk":"^5.6.2","dotenv":"^17.2.3","chokidar":"^4.0.3","postgres":"^3.4.0","typescript":"^5.3.3","drizzle-orm":"^0.44.6","drizzle-typebox":"^0.1.0","@hono/node-server":"^1.0.0","@sinclair/typebox":"^0.34.0"},"publishConfig":{"tag":"alpha","access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"tsup":"^8.0.0","vitest":"^3.2.4","@types/node":"^20.11.0"},"optionalDependencies":{"ioredis":"^5.4.1"},"_npmOperationalInternal":{"tmp":"tmp/core_0.1.0-alpha.14_1760435997867_0.20530262410749023","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-alpha.15":{"name":"@spfn/core","version":"0.1.0-alpha.15","keywords":["spfn","nextjs","backend","framework","typescript","type-safe","api","rest-api","crud","database","orm","drizzle-orm","postgres","redis","hono","fullstack","server","scalable","auto-generated","file-based-routing","transaction","repository-pattern"],"author":{"name":"Ray Im","email":"rayim@inflike.com"},"license":"MIT","_id":"@spfn/core@0.1.0-alpha.15","maintainers":[{"name":"superfunction","email":"rayim@inflike.com"}],"homepage":"https://github.com/spfn/spfn/tree/main/packages/core#readme","bugs":{"url":"https://github.com/spfn/spfn/issues"},"dist":{"shasum":"9afc9a9ed4646535756bd708925a0a0e27a6f1df","tarball":"https://registry.npmjs.org/@spfn/core/-/core-0.1.0-alpha.15.tgz","fileCount":37,"integrity":"sha512-lN+QAdrnnmumKP4QAvuOPFjSM6eJYbNAwEahD+gb7B5y158GH02rdD70vhlAIFfZ58BwhUwwZ0tqKQt1Qv9rNA==","signatures":[{"sig":"MEQCIG2q/rvuAOZtDjdAekLRgF9NlkKsoZTusO7nWRSUVTrRAiBonzB5GIpt4cjzRmo9ApTgQLW6+0TTeD27X/rkHNj5Zw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spfn%2fcore@0.1.0-alpha.15","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1600087},"main":"./dist/index.js","type":"module","_from":"file:spfn-core-0.1.0-alpha.15.tgz","types":"./dist/index.d.ts","engines":{"node":">=18.18.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./db":{"types":"./dist/db/index.d.ts","import":"./dist/db/index.js","require":"./dist/db/index.js"},"./route":{"types":"./dist/route/index.d.ts","import":"./dist/route/index.js","require":"./dist/route/index.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","require":"./dist/client/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./codegen":{"types":"./dist/codegen/index.d.ts","import":"./dist/codegen/index.js","require":"./dist/codegen/index.js"},"./scripts":{"types":"./dist/scripts/index.d.ts","import":"./dist/scripts/index.js","require":"./dist/scripts/index.js"}},"scripts":{"dev":"tsup --watch","test":"vitest","build":"tsup","test:db":"dotenv -e .env.test -- vitest src/tests/db","type-check":"tsc --noEmit","test:codegen":"vitest run --config vitest.codegen.config.ts","docker:test:up":"docker compose -f ../../docker-compose.test.yml up -d","generate:client":"node dist/scripts/generate-client.js","docker:test:down":"docker compose -f ../../docker-compose.test.yml down","docker:test:logs":"docker compose -f ../../docker-compose.test.yml logs -f","generate:client:watch":"node dist/scripts/generate-client.js --watch"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:ac93c5d5-25a0-4325-a62a-9cc8f1028e8a"}},"_resolved":"/tmp/286247bb7d2f904d05140bd3ad4f01c0/spfn-core-0.1.0-alpha.15.tgz","_integrity":"sha512-lN+QAdrnnmumKP4QAvuOPFjSM6eJYbNAwEahD+gb7B5y158GH02rdD70vhlAIFfZ58BwhUwwZ0tqKQt1Qv9rNA==","repository":{"url":"git+https://github.com/spfn/spfn.git","type":"git","directory":"packages/core"},"_npmVersion":"11.6.2","description":"SPFN Framework Core - File-based routing, transactions, repository pattern","directories":{},"_nodeVersion":"20.19.5","dependencies":{"zod":"^4.1.11","hono":"^4.9.0","pino":"^10.0.0","chalk":"^5.6.2","dotenv":"^17.2.3","chokidar":"^4.0.3","postgres":"^3.4.0","typescript":"^5.3.3","drizzle-orm":"^0.44.6","drizzle-typebox":"^0.1.0","@hono/node-server":"^1.0.0","@sinclair/typebox":"^0.34.0"},"publishConfig":{"tag":"alpha","access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"tsup":"^8.0.0","vitest":"^3.2.4","@types/node":"^20.11.0"},"optionalDependencies":{"ioredis":"^5.4.1"},"_npmOperationalInternal":{"tmp":"tmp/core_0.1.0-alpha.15_1760436859087_0.4466911064533845","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-alpha.16":{"name":"@spfn/core","version":"0.1.0-alpha.16","keywords":["spfn","nextjs","backend","framework","typescript","type-safe","api","rest-api","crud","database","orm","drizzle-orm","postgres","redis","hono","fullstack","server","scalable","auto-generated","file-based-routing","transaction","repository-pattern"],"author":{"name":"Ray Im","email":"rayim@inflike.com"},"license":"MIT","_id":"@spfn/core@0.1.0-alpha.16","maintainers":[{"name":"superfunction","email":"rayim@inflike.com"}],"homepage":"https://github.com/spfn/spfn/tree/main/packages/core#readme","bugs":{"url":"https://github.com/spfn/spfn/issues"},"dist":{"shasum":"45d3529dafc80065064c59336fdc077d6a720000","tarball":"https://registry.npmjs.org/@spfn/core/-/core-0.1.0-alpha.16.tgz","fileCount":37,"integrity":"sha512-hQtrTB/Tl5vo+N77QFSjCL+eGv+JhVJGlhvxVZYhtHyXPulaCZsnDgJW8aafdPhkkBR8eGn0wcwwgsA9Z3LcSQ==","signatures":[{"sig":"MEUCIEhRRM69XegvQdW1RZR1zi2p0Xo2lAGLng9En7C54aFwAiEAuBzvQxm1wGNUmJ2BbBgfSkbw4Bl6QS/RHXOi/ORwvk4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spfn%2fcore@0.1.0-alpha.16","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1597415},"main":"./dist/index.js","type":"module","_from":"file:spfn-core-0.1.0-alpha.16.tgz","types":"./dist/index.d.ts","engines":{"node":">=18.18.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./db":{"types":"./dist/db/index.d.ts","import":"./dist/db/index.js","require":"./dist/db/index.js"},"./route":{"types":"./dist/route/index.d.ts","import":"./dist/route/index.js","require":"./dist/route/index.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","require":"./dist/client/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./codegen":{"types":"./dist/codegen/index.d.ts","import":"./dist/codegen/index.js","require":"./dist/codegen/index.js"},"./scripts":{"types":"./dist/scripts/index.d.ts","import":"./dist/scripts/index.js","require":"./dist/scripts/index.js"}},"scripts":{"dev":"tsup --watch","test":"vitest","build":"tsup","test:db":"dotenv -e .env.test -- vitest src/tests/db","type-check":"tsc --noEmit","test:codegen":"vitest run --config vitest.codegen.config.ts","docker:test:up":"docker compose -f ../../docker-compose.test.yml up -d","generate:client":"node dist/scripts/generate-client.js","docker:test:down":"docker compose -f ../../docker-compose.test.yml down","docker:test:logs":"docker compose -f ../../docker-compose.test.yml logs -f","generate:client:watch":"node dist/scripts/generate-client.js --watch"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:ac93c5d5-25a0-4325-a62a-9cc8f1028e8a"}},"_resolved":"/tmp/f6c4c588d78a0cd44599c0455f43f1c9/spfn-core-0.1.0-alpha.16.tgz","_integrity":"sha512-hQtrTB/Tl5vo+N77QFSjCL+eGv+JhVJGlhvxVZYhtHyXPulaCZsnDgJW8aafdPhkkBR8eGn0wcwwgsA9Z3LcSQ==","repository":{"url":"git+https://github.com/spfn/spfn.git","type":"git","directory":"packages/core"},"_npmVersion":"11.6.2","description":"SPFN Framework Core - File-based routing, transactions, repository pattern","directories":{},"_nodeVersion":"20.19.5","dependencies":{"zod":"^4.1.11","hono":"^4.9.0","pino":"^10.0.0","chalk":"^5.6.2","dotenv":"^17.2.3","chokidar":"^4.0.3","postgres":"^3.4.0","typescript":"^5.3.3","drizzle-orm":"^0.44.6","drizzle-typebox":"^0.1.0","@hono/node-server":"^1.0.0","@sinclair/typebox":"^0.34.0"},"publishConfig":{"tag":"alpha","access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"tsup":"^8.0.0","vitest":"^3.2.4","@types/node":"^20.11.0"},"optionalDependencies":{"ioredis":"^5.4.1"},"_npmOperationalInternal":{"tmp":"tmp/core_0.1.0-alpha.16_1760457432278_0.10424258315673218","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-alpha.20":{"name":"@spfn/core","version":"0.1.0-alpha.20","keywords":["spfn","nextjs","backend","framework","typescript","type-safe","api","rest-api","crud","database","orm","drizzle-orm","postgres","redis","hono","fullstack","server","scalable","auto-generated","file-based-routing","transaction","repository-pattern"],"author":{"name":"Ray Im","email":"rayim@inflike.com"},"license":"MIT","_id":"@spfn/core@0.1.0-alpha.20","maintainers":[{"name":"superfunction","email":"rayim@inflike.com"}],"homepage":"https://github.com/spfn/spfn/tree/main/packages/core#readme","bugs":{"url":"https://github.com/spfn/spfn/issues"},"dist":{"shasum":"5fa130bf250fad3cfcfce56ecb528e68bb00536c","tarball":"https://registry.npmjs.org/@spfn/core/-/core-0.1.0-alpha.20.tgz","fileCount":37,"integrity":"sha512-8Too0L/9pQAHjPV4I/xsr8Cxlybl1hUOPNH2rNy98W68IGTqAxBjNZDPIBHX7ogk3bzCbIpdthGJq1mii2DltQ==","signatures":[{"sig":"MEYCIQCj59MbPK8nVbe6Onx2oNjdYUaEI69R6GzB9UagueiVmAIhAJc4j2Pkfzj38iLlBQDp7QmIvU19viFjECMWNzxhnOHx","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spfn%2fcore@0.1.0-alpha.20","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1638873},"main":"./dist/index.js","type":"module","_from":"file:spfn-core-0.1.0-alpha.20.tgz","types":"./dist/index.d.ts","engines":{"node":">=18.18.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./db":{"types":"./dist/db/index.d.ts","import":"./dist/db/index.js","require":"./dist/db/index.js"},"./route":{"types":"./dist/route/index.d.ts","import":"./dist/route/index.js","require":"./dist/route/index.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","require":"./dist/client/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./codegen":{"types":"./dist/codegen/index.d.ts","import":"./dist/codegen/index.js","require":"./dist/codegen/index.js"},"./scripts":{"types":"./dist/scripts/index.d.ts","import":"./dist/scripts/index.js","require":"./dist/scripts/index.js"}},"scripts":{"dev":"tsup --watch","test":"vitest","build":"tsup","test:db":"dotenv -e .env.test -- vitest src/tests/db","type-check":"tsc --noEmit","test:codegen":"vitest run --config vitest.codegen.config.ts","docker:test:up":"docker compose -f ../../docker-compose.test.yml up -d","generate:client":"node dist/scripts/generate-client.js","docker:test:down":"docker compose -f ../../docker-compose.test.yml down","docker:test:logs":"docker compose -f ../../docker-compose.test.yml logs -f","generate:client:watch":"node dist/scripts/generate-client.js --watch"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:ac93c5d5-25a0-4325-a62a-9cc8f1028e8a"}},"_resolved":"/tmp/6517dfc70eb8a6c60751432af7a7bceb/spfn-core-0.1.0-alpha.20.tgz","_integrity":"sha512-8Too0L/9pQAHjPV4I/xsr8Cxlybl1hUOPNH2rNy98W68IGTqAxBjNZDPIBHX7ogk3bzCbIpdthGJq1mii2DltQ==","repository":{"url":"git+https://github.com/spfn/spfn.git","type":"git","directory":"packages/core"},"_npmVersion":"11.6.2","description":"SPFN Framework Core - File-based routing, transactions, repository pattern","directories":{},"_nodeVersion":"20.19.5","dependencies":{"zod":"^4.1.11","hono":"^4.9.0","pino":"^10.0.0","chalk":"^5.6.2","dotenv":"^17.2.3","chokidar":"^4.0.3","postgres":"^3.4.0","micromatch":"^4.0.8","typescript":"^5.3.3","drizzle-orm":"^0.44.6","drizzle-typebox":"^0.1.0","@hono/node-server":"^1.0.0","@sinclair/typebox":"^0.34.0"},"publishConfig":{"tag":"alpha","access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"tsup":"^8.0.0","vitest":"^3.2.4","@types/node":"^20.11.0","@types/micromatch":"^4.0.9"},"optionalDependencies":{"ioredis":"^5.4.1"},"_npmOperationalInternal":{"tmp":"tmp/core_0.1.0-alpha.20_1760589188727_0.07555403419873885","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-alpha.21":{"name":"@spfn/core","version":"0.1.0-alpha.21","keywords":["spfn","nextjs","backend","framework","typescript","type-safe","api","rest-api","crud","database","orm","drizzle-orm","postgres","redis","hono","fullstack","server","scalable","auto-generated","file-based-routing","transaction","repository-pattern"],"author":{"name":"Ray Im","email":"rayim@inflike.com"},"license":"MIT","_id":"@spfn/core@0.1.0-alpha.21","maintainers":[{"name":"superfunction","email":"rayim@inflike.com"}],"homepage":"https://github.com/spfn/spfn/tree/main/packages/core#readme","bugs":{"url":"https://github.com/spfn/spfn/issues"},"dist":{"shasum":"30e9d06188ade11a420d7cc9c1486ffa7a7ed9aa","tarball":"https://registry.npmjs.org/@spfn/core/-/core-0.1.0-alpha.21.tgz","fileCount":37,"integrity":"sha512-uFysMieHpQdDUXrO2ahiC1ctuiJMqjuYjkLqlguiIIN57BQSXqA8quBcCPPj0hk9ALel6gPjRRS8lFxQVzHk9g==","signatures":[{"sig":"MEUCIQDUzO05m0K4QwQQxRPXA+FWjFAdM9J8I1bIdQWG10mgUQIgTrhuwxMNme805cFSDpDTsKma3+xDuwVttLiufbCvAqo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spfn%2fcore@0.1.0-alpha.21","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1645982},"main":"./dist/index.js","type":"module","_from":"file:spfn-core-0.1.0-alpha.21.tgz","types":"./dist/index.d.ts","engines":{"node":">=18.18.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./db":{"types":"./dist/db/index.d.ts","import":"./dist/db/index.js","require":"./dist/db/index.js"},"./route":{"types":"./dist/route/index.d.ts","import":"./dist/route/index.js","require":"./dist/route/index.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","require":"./dist/client/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./codegen":{"types":"./dist/codegen/index.d.ts","import":"./dist/codegen/index.js","require":"./dist/codegen/index.js"},"./scripts":{"types":"./dist/scripts/index.d.ts","import":"./dist/scripts/index.js","require":"./dist/scripts/index.js"}},"scripts":{"dev":"tsup --watch","test":"vitest","build":"tsup","test:db":"dotenv -e .env.test -- vitest src/tests/db","type-check":"tsc --noEmit","test:codegen":"vitest run --config vitest.codegen.config.ts","docker:test:up":"docker compose -f ../../docker-compose.test.yml up -d","generate:client":"node dist/scripts/generate-client.js","docker:test:down":"docker compose -f ../../docker-compose.test.yml down","docker:test:logs":"docker compose -f ../../docker-compose.test.yml logs -f","generate:client:watch":"node dist/scripts/generate-client.js --watch"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:ac93c5d5-25a0-4325-a62a-9cc8f1028e8a"}},"_resolved":"/tmp/cbe96cb3d46f792422f0abc5b5087596/spfn-core-0.1.0-alpha.21.tgz","_integrity":"sha512-uFysMieHpQdDUXrO2ahiC1ctuiJMqjuYjkLqlguiIIN57BQSXqA8quBcCPPj0hk9ALel6gPjRRS8lFxQVzHk9g==","repository":{"url":"git+https://github.com/spfn/spfn.git","type":"git","directory":"packages/core"},"_npmVersion":"11.6.2","description":"SPFN Framework Core - File-based routing, transactions, repository pattern","directories":{},"_nodeVersion":"20.19.5","dependencies":{"zod":"^4.1.11","hono":"^4.9.0","jiti":"^2.6.1","pino":"^10.0.0","chalk":"^5.6.2","dotenv":"^17.2.3","chokidar":"^4.0.3","postgres":"^3.4.0","micromatch":"^4.0.8","typescript":"^5.3.3","drizzle-orm":"^0.44.6","drizzle-typebox":"^0.1.0","@hono/node-server":"^1.0.0","@sinclair/typebox":"^0.34.0"},"publishConfig":{"tag":"alpha","access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"tsup":"^8.0.0","vitest":"^3.2.4","@types/node":"^20.11.0","@types/micromatch":"^4.0.9"},"optionalDependencies":{"ioredis":"^5.4.1"},"_npmOperationalInternal":{"tmp":"tmp/core_0.1.0-alpha.21_1760592164725_0.9198652411242165","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-alpha.22":{"name":"@spfn/core","version":"0.1.0-alpha.22","keywords":["spfn","nextjs","backend","framework","typescript","type-safe","api","rest-api","crud","database","orm","drizzle-orm","postgres","redis","hono","fullstack","server","scalable","auto-generated","file-based-routing","transaction","repository-pattern"],"author":{"name":"Ray Im","email":"rayim@inflike.com"},"license":"MIT","_id":"@spfn/core@0.1.0-alpha.22","maintainers":[{"name":"superfunction","email":"rayim@inflike.com"}],"homepage":"https://github.com/spfn/spfn/tree/main/packages/core#readme","bugs":{"url":"https://github.com/spfn/spfn/issues"},"dist":{"shasum":"3ba1b4bdbf97db3272a1462b4a2ebf800d315e77","tarball":"https://registry.npmjs.org/@spfn/core/-/core-0.1.0-alpha.22.tgz","fileCount":37,"integrity":"sha512-mhIqAmG8NocifGUyJ0ZqjpHloQlOxQqnrFst65Rid+guhV9NT0koEZVXU5B68OgEZzQIRZg4jH517FGq56dj9Q==","signatures":[{"sig":"MEQCIDEn65bwy40i/D1iLNLO1g7g8XUsaE5YuUseNhFxcfJ0AiAQR2SZk8MhHyqtviiCUmXi1SFqQla+qoSyKskQJLLySA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spfn%2fcore@0.1.0-alpha.22","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1767402},"main":"./dist/index.js","type":"module","_from":"file:spfn-core-0.1.0-alpha.22.tgz","types":"./dist/index.d.ts","engines":{"node":">=18.18.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./db":{"types":"./dist/db/index.d.ts","import":"./dist/db/index.js","require":"./dist/db/index.js"},"./route":{"types":"./dist/route/index.d.ts","import":"./dist/route/index.js","require":"./dist/route/index.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","require":"./dist/client/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./codegen":{"types":"./dist/codegen/index.d.ts","import":"./dist/codegen/index.js","require":"./dist/codegen/index.js"},"./scripts":{"types":"./dist/scripts/index.d.ts","import":"./dist/scripts/index.js","require":"./dist/scripts/index.js"}},"scripts":{"dev":"tsup --watch","test":"vitest","build":"tsup","test:db":"dotenv -e .env.test -- vitest src/tests/db","type-check":"tsc --noEmit","test:codegen":"vitest run --config vitest.codegen.config.ts","docker:test:up":"docker compose -f ../../docker-compose.test.yml up -d","generate:client":"node dist/scripts/generate-client.js","docker:test:down":"docker compose -f ../../docker-compose.test.yml down","docker:test:logs":"docker compose -f ../../docker-compose.test.yml logs -f","generate:client:watch":"node dist/scripts/generate-client.js --watch"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:ac93c5d5-25a0-4325-a62a-9cc8f1028e8a"}},"_resolved":"/tmp/65bc2650a0279f411d85f0089014d963/spfn-core-0.1.0-alpha.22.tgz","_integrity":"sha512-mhIqAmG8NocifGUyJ0ZqjpHloQlOxQqnrFst65Rid+guhV9NT0koEZVXU5B68OgEZzQIRZg4jH517FGq56dj9Q==","repository":{"url":"git+https://github.com/spfn/spfn.git","type":"git","directory":"packages/core"},"_npmVersion":"11.6.2","description":"SPFN Framework Core - File-based routing, transactions, repository pattern","directories":{},"_nodeVersion":"20.19.5","dependencies":{"zod":"^4.1.11","hono":"^4.9.0","jiti":"^2.6.1","pino":"^10.0.0","chalk":"^5.6.2","dotenv":"^17.2.3","chokidar":"^4.0.3","postgres":"^3.4.0","micromatch":"^4.0.8","typescript":"^5.3.3","drizzle-orm":"^0.44.6","drizzle-typebox":"^0.1.0","@hono/node-server":"^1.0.0","@sinclair/typebox":"^0.34.0"},"publishConfig":{"tag":"alpha","access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"tsup":"^8.0.0","vitest":"^3.2.4","@types/node":"^20.11.0","@types/micromatch":"^4.0.9"},"optionalDependencies":{"ioredis":"^5.4.1"},"_npmOperationalInternal":{"tmp":"tmp/core_0.1.0-alpha.22_1760689408946_0.7969856779598035","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-alpha.23":{"name":"@spfn/core","version":"0.1.0-alpha.23","keywords":["spfn","nextjs","backend","framework","typescript","type-safe","api","rest-api","crud","database","orm","drizzle-orm","postgres","redis","hono","fullstack","server","scalable","auto-generated","file-based-routing","transaction","repository-pattern"],"author":{"name":"Ray Im","email":"rayim@inflike.com"},"license":"MIT","_id":"@spfn/core@0.1.0-alpha.23","maintainers":[{"name":"superfunction","email":"rayim@inflike.com"}],"homepage":"https://github.com/spfn/spfn/tree/main/packages/core#readme","bugs":{"url":"https://github.com/spfn/spfn/issues"},"dist":{"shasum":"519feb661a129b25cf3ae90e21fdc671b943c727","tarball":"https://registry.npmjs.org/@spfn/core/-/core-0.1.0-alpha.23.tgz","fileCount":37,"integrity":"sha512-oKHgC+bxT68BxuKhnAqQ4FK/ZYo6i/E2SRMYUh4185ToWALLTuLIFlVOZTBjmpbUH/vDNaWlTu/jkIdKii+xSw==","signatures":[{"sig":"MEQCIF2jPAA8LX7oBGK2KbYyPVvEZv3Rp/f3huN4IzV4Tn1PAiA9xScGnocsCX58Rd7tC1OtUNXeTkq3Wlc4sqwA/Qm7ag==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spfn%2fcore@0.1.0-alpha.23","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1768671},"main":"./dist/index.js","type":"module","_from":"file:spfn-core-0.1.0-alpha.23.tgz","types":"./dist/index.d.ts","engines":{"node":">=18.18.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./db":{"types":"./dist/db/index.d.ts","import":"./dist/db/index.js","require":"./dist/db/index.js"},"./route":{"types":"./dist/route/index.d.ts","import":"./dist/route/index.js","require":"./dist/route/index.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","require":"./dist/client/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./codegen":{"types":"./dist/codegen/index.d.ts","import":"./dist/codegen/index.js","require":"./dist/codegen/index.js"},"./scripts":{"types":"./dist/scripts/index.d.ts","import":"./dist/scripts/index.js","require":"./dist/scripts/index.js"}},"scripts":{"dev":"tsup --watch","test":"vitest","build":"tsup","test:db":"dotenv -e .env.test -- vitest src/tests/db","type-check":"tsc --noEmit","test:codegen":"vitest run --config vitest.codegen.config.ts","docker:test:up":"docker compose -f ../../docker-compose.test.yml up -d","generate:client":"node dist/scripts/generate-client.js","docker:test:down":"docker compose -f ../../docker-compose.test.yml down","docker:test:logs":"docker compose -f ../../docker-compose.test.yml logs -f","generate:client:watch":"node dist/scripts/generate-client.js --watch"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:ac93c5d5-25a0-4325-a62a-9cc8f1028e8a"}},"_resolved":"/tmp/e75e7d5d8a359249e650502e61aa6717/spfn-core-0.1.0-alpha.23.tgz","_integrity":"sha512-oKHgC+bxT68BxuKhnAqQ4FK/ZYo6i/E2SRMYUh4185ToWALLTuLIFlVOZTBjmpbUH/vDNaWlTu/jkIdKii+xSw==","repository":{"url":"git+https://github.com/spfn/spfn.git","type":"git","directory":"packages/core"},"_npmVersion":"11.6.2","description":"SPFN Framework Core - File-based routing, transactions, repository pattern","directories":{},"_nodeVersion":"20.19.5","dependencies":{"zod":"^4.1.11","hono":"^4.9.0","jiti":"^2.6.1","pino":"^10.0.0","chalk":"^5.6.2","dotenv":"^17.2.3","chokidar":"^4.0.3","postgres":"^3.4.0","micromatch":"^4.0.8","typescript":"^5.3.3","drizzle-orm":"^0.44.6","drizzle-typebox":"^0.1.0","@hono/node-server":"^1.0.0","@sinclair/typebox":"^0.34.0"},"publishConfig":{"tag":"alpha","access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"tsup":"^8.0.0","vitest":"^3.2.4","@types/node":"^20.11.0","@types/micromatch":"^4.0.9"},"optionalDependencies":{"ioredis":"^5.4.1"},"_npmOperationalInternal":{"tmp":"tmp/core_0.1.0-alpha.23_1760691956935_0.962794796054715","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-alpha.24":{"name":"@spfn/core","version":"0.1.0-alpha.24","keywords":["spfn","nextjs","backend","framework","typescript","type-safe","api","rest-api","crud","database","orm","drizzle-orm","postgres","redis","hono","fullstack","server","scalable","auto-generated","file-based-routing","transaction","repository-pattern"],"author":{"name":"Ray Im","email":"rayim@inflike.com"},"license":"MIT","_id":"@spfn/core@0.1.0-alpha.24","maintainers":[{"name":"superfunction","email":"rayim@inflike.com"}],"homepage":"https://github.com/spfn/spfn/tree/main/packages/core#readme","bugs":{"url":"https://github.com/spfn/spfn/issues"},"dist":{"shasum":"ca5fd531ea9e9f81615e3a186d3487852d9ff14c","tarball":"https://registry.npmjs.org/@spfn/core/-/core-0.1.0-alpha.24.tgz","fileCount":40,"integrity":"sha512-B4006tJ32L68TwcyE+KOCoj5Bil4wDd2US682WUigmw5BisItVTQASD+GOLvSVdEarImqZ/vml2jF+wKRhj4IQ==","signatures":[{"sig":"MEUCIDO6pTrnbuNbBSjMrrD0kyrI/+kUqfzLJMuoA5FjFul6AiEAgKTp1M2LJzSDZyryvxAwJzEiLkph5vkvlmpeVa4Cy34=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spfn%2fcore@0.1.0-alpha.24","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1888578},"main":"./dist/index.js","type":"module","_from":"file:spfn-core-0.1.0-alpha.24.tgz","types":"./dist/index.d.ts","engines":{"node":">=18.18.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./db":{"types":"./dist/db/index.d.ts","import":"./dist/db/index.js","require":"./dist/db/index.js"},"./env":{"types":"./dist/env/index.d.ts","import":"./dist/env/index.js","require":"./dist/env/index.js"},"./route":{"types":"./dist/route/index.d.ts","import":"./dist/route/index.js","require":"./dist/route/index.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","require":"./dist/client/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./codegen":{"types":"./dist/codegen/index.d.ts","import":"./dist/codegen/index.js","require":"./dist/codegen/index.js"},"./scripts":{"types":"./dist/scripts/index.d.ts","import":"./dist/scripts/index.js","require":"./dist/scripts/index.js"}},"scripts":{"dev":"tsup --watch","test":"vitest","build":"tsup","test:db":"dotenv -e .env.test -- vitest src/tests/db","type-check":"tsc --noEmit","test:codegen":"vitest run --config vitest.codegen.config.ts","docker:test:up":"docker compose -f ../../docker-compose.test.yml up -d","generate:client":"node dist/scripts/generate-client.js","docker:test:down":"docker compose -f ../../docker-compose.test.yml down","docker:test:logs":"docker compose -f ../../docker-compose.test.yml logs -f","generate:client:watch":"node dist/scripts/generate-client.js --watch"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:ac93c5d5-25a0-4325-a62a-9cc8f1028e8a"}},"_resolved":"/tmp/42a613b9c98932178fe511280255970a/spfn-core-0.1.0-alpha.24.tgz","_integrity":"sha512-B4006tJ32L68TwcyE+KOCoj5Bil4wDd2US682WUigmw5BisItVTQASD+GOLvSVdEarImqZ/vml2jF+wKRhj4IQ==","repository":{"url":"git+https://github.com/spfn/spfn.git","type":"git","directory":"packages/core"},"_npmVersion":"11.6.2","description":"SPFN Framework Core - File-based routing, transactions, repository pattern","directories":{},"_nodeVersion":"20.19.5","dependencies":{"zod":"^4.1.11","hono":"^4.9.0","jiti":"^2.6.1","pino":"^10.0.0","chalk":"^5.6.2","dotenv":"^17.2.3","chokidar":"^4.0.3","postgres":"^3.4.0","micromatch":"^4.0.8","typescript":"^5.3.3","drizzle-orm":"^0.44.6","drizzle-typebox":"^0.1.0","@hono/node-server":"^1.0.0","@sinclair/typebox":"^0.34.0"},"publishConfig":{"tag":"alpha","access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"tsup":"^8.0.0","vitest":"^3.2.4","@types/node":"^20.11.0","drizzle-kit":"^0.31.5","@types/micromatch":"^4.0.9"},"optionalDependencies":{"ioredis":"^5.4.1"},"_npmOperationalInternal":{"tmp":"tmp/core_0.1.0-alpha.24_1760694841339_0.6716837603694619","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-alpha.25":{"name":"@spfn/core","version":"0.1.0-alpha.25","keywords":["spfn","nextjs","backend","framework","typescript","type-safe","api","rest-api","crud","database","orm","drizzle-orm","postgres","redis","hono","fullstack","server","scalable","auto-generated","file-based-routing","transaction","repository-pattern"],"author":{"name":"Ray Im","email":"rayim@inflike.com"},"license":"MIT","_id":"@spfn/core@0.1.0-alpha.25","maintainers":[{"name":"superfunction","email":"rayim@inflike.com"}],"homepage":"https://github.com/spfn/spfn/tree/main/packages/core#readme","bugs":{"url":"https://github.com/spfn/spfn/issues"},"dist":{"shasum":"220b2778ee591e114656cc7200a72e0b6aceff67","tarball":"https://registry.npmjs.org/@spfn/core/-/core-0.1.0-alpha.25.tgz","fileCount":40,"integrity":"sha512-T6QvTMt3a6Mkt+Dl0zb1xqSMqMIO9WgbaWKnKy7eL3i/jVyBg1YAGRuMQQ0o0nWXbjmj4O+0Q4Kz4htZ0gRawA==","signatures":[{"sig":"MEYCIQDRYZmQz13LU/6RkbsofYZXBDYojiFuj7svMpXO9MXxIgIhAJDnOVyQIqsv8yfbef1gRwMAbtCzYppAcXJgdXpytl0Y","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spfn%2fcore@0.1.0-alpha.25","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1904082},"main":"./dist/index.js","type":"module","_from":"file:spfn-core-0.1.0-alpha.25.tgz","types":"./dist/index.d.ts","engines":{"node":">=18.18.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./db":{"types":"./dist/db/index.d.ts","import":"./dist/db/index.js","require":"./dist/db/index.js"},"./env":{"types":"./dist/env/index.d.ts","import":"./dist/env/index.js","require":"./dist/env/index.js"},"./route":{"types":"./dist/route/index.d.ts","import":"./dist/route/index.js","require":"./dist/route/index.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","require":"./dist/client/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./codegen":{"types":"./dist/codegen/index.d.ts","import":"./dist/codegen/index.js","require":"./dist/codegen/index.js"},"./scripts":{"types":"./dist/scripts/index.d.ts","import":"./dist/scripts/index.js","require":"./dist/scripts/index.js"}},"scripts":{"dev":"tsup --watch","test":"vitest","build":"tsup","test:db":"dotenv -e .env.test -- vitest src/tests/db","type-check":"tsc --noEmit","test:codegen":"vitest run --config vitest.codegen.config.ts","docker:test:up":"docker compose -f ../../docker-compose.test.yml up -d","generate:client":"node dist/scripts/generate-client.js","docker:test:down":"docker compose -f ../../docker-compose.test.yml down","docker:test:logs":"docker compose -f ../../docker-compose.test.yml logs -f","generate:client:watch":"node dist/scripts/generate-client.js --watch"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:ac93c5d5-25a0-4325-a62a-9cc8f1028e8a"}},"_resolved":"/tmp/ba5d23b87dfa59981dad70278162051c/spfn-core-0.1.0-alpha.25.tgz","_integrity":"sha512-T6QvTMt3a6Mkt+Dl0zb1xqSMqMIO9WgbaWKnKy7eL3i/jVyBg1YAGRuMQQ0o0nWXbjmj4O+0Q4Kz4htZ0gRawA==","repository":{"url":"git+https://github.com/spfn/spfn.git","type":"git","directory":"packages/core"},"_npmVersion":"11.6.2","description":"SPFN Framework Core - File-based routing, transactions, repository pattern","directories":{},"_nodeVersion":"20.19.5","dependencies":{"zod":"^4.1.11","hono":"^4.9.0","jiti":"^2.6.1","pino":"^10.0.0","chalk":"^5.6.2","dotenv":"^17.2.3","chokidar":"^4.0.3","postgres":"^3.4.0","micromatch":"^4.0.8","typescript":"^5.3.3","drizzle-orm":"^0.44.6","drizzle-typebox":"^0.1.0","@hono/node-server":"^1.0.0","@sinclair/typebox":"^0.34.0"},"publishConfig":{"tag":"alpha","access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"tsup":"^8.0.0","vitest":"^3.2.4","@types/node":"^20.11.0","drizzle-kit":"^0.31.5","@types/micromatch":"^4.0.9"},"optionalDependencies":{"ioredis":"^5.4.1"},"_npmOperationalInternal":{"tmp":"tmp/core_0.1.0-alpha.25_1760704522186_0.6753328012578219","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-alpha.26":{"name":"@spfn/core","version":"0.1.0-alpha.26","keywords":["spfn","nextjs","backend","framework","typescript","type-safe","api","rest-api","crud","database","orm","drizzle-orm","postgres","redis","hono","fullstack","server","scalable","auto-generated","file-based-routing","transaction","repository-pattern"],"author":{"name":"Ray Im","email":"rayim@inflike.com"},"license":"MIT","_id":"@spfn/core@0.1.0-alpha.26","maintainers":[{"name":"superfunction","email":"rayim@inflike.com"}],"homepage":"https://github.com/spfn/spfn/tree/main/packages/core#readme","bugs":{"url":"https://github.com/spfn/spfn/issues"},"dist":{"shasum":"61772e14a33c81842d75afb0fc295d84dfd36ade","tarball":"https://registry.npmjs.org/@spfn/core/-/core-0.1.0-alpha.26.tgz","fileCount":40,"integrity":"sha512-d7/LMPBQ8NopihHmPILBLhJaIXIEqaMOo/fPgsV+8j5RQ79M5rEApOKJuCBfP+OckPLohO6u7IDLqIQP2Ln8XQ==","signatures":[{"sig":"MEQCICUlL1UL9sDnKc/yVILUHDJgyAS/3GJjmyz2Dj2L5CY1AiBXfbJqQFkh355zDC6RRujUZ2IO7hBfPoB7Uo3yGCym7A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spfn%2fcore@0.1.0-alpha.26","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1904082},"main":"./dist/index.js","type":"module","_from":"file:spfn-core-0.1.0-alpha.26.tgz","types":"./dist/index.d.ts","engines":{"node":">=18.18.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./db":{"types":"./dist/db/index.d.ts","import":"./dist/db/index.js","require":"./dist/db/index.js"},"./env":{"types":"./dist/env/index.d.ts","import":"./dist/env/index.js","require":"./dist/env/index.js"},"./route":{"types":"./dist/route/index.d.ts","import":"./dist/route/index.js","require":"./dist/route/index.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","require":"./dist/client/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./codegen":{"types":"./dist/codegen/index.d.ts","import":"./dist/codegen/index.js","require":"./dist/codegen/index.js"},"./scripts":{"types":"./dist/scripts/index.d.ts","import":"./dist/scripts/index.js","require":"./dist/scripts/index.js"}},"scripts":{"dev":"tsup --watch","test":"vitest","build":"tsup","test:db":"dotenv -e .env.test -- vitest src/tests/db","type-check":"tsc --noEmit","test:codegen":"vitest run --config vitest.codegen.config.ts","docker:test:up":"docker compose -f ../../docker-compose.test.yml up -d","generate:client":"node dist/scripts/generate-client.js","docker:test:down":"docker compose -f ../../docker-compose.test.yml down","docker:test:logs":"docker compose -f ../../docker-compose.test.yml logs -f","generate:client:watch":"node dist/scripts/generate-client.js --watch"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:ac93c5d5-25a0-4325-a62a-9cc8f1028e8a"}},"_resolved":"/tmp/092d8331b27bed844ffe841c91f96044/spfn-core-0.1.0-alpha.26.tgz","_integrity":"sha512-d7/LMPBQ8NopihHmPILBLhJaIXIEqaMOo/fPgsV+8j5RQ79M5rEApOKJuCBfP+OckPLohO6u7IDLqIQP2Ln8XQ==","repository":{"url":"git+https://github.com/spfn/spfn.git","type":"git","directory":"packages/core"},"_npmVersion":"11.6.2","description":"SPFN Framework Core - File-based routing, transactions, repository pattern","directories":{},"_nodeVersion":"20.19.5","dependencies":{"zod":"^4.1.11","hono":"^4.9.0","jiti":"^2.6.1","pino":"^10.0.0","chalk":"^5.6.2","dotenv":"^17.2.3","chokidar":"^4.0.3","postgres":"^3.4.0","micromatch":"^4.0.8","typescript":"^5.3.3","drizzle-orm":"^0.44.6","drizzle-typebox":"^0.1.0","@hono/node-server":"^1.0.0","@sinclair/typebox":"^0.34.0"},"publishConfig":{"tag":"alpha","access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"tsup":"^8.0.0","vitest":"^3.2.4","@types/node":"^20.11.0","drizzle-kit":"^0.31.5","@types/micromatch":"^4.0.9"},"optionalDependencies":{"ioredis":"^5.4.1"},"_npmOperationalInternal":{"tmp":"tmp/core_0.1.0-alpha.26_1760709589044_0.16534445718588597","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-alpha.27":{"name":"@spfn/core","version":"0.1.0-alpha.27","keywords":["spfn","nextjs","backend","framework","typescript","type-safe","api","rest-api","crud","database","orm","drizzle-orm","postgres","redis","hono","fullstack","server","scalable","auto-generated","file-based-routing","transaction","repository-pattern"],"author":{"name":"Ray Im","email":"rayim@inflike.com"},"license":"MIT","_id":"@spfn/core@0.1.0-alpha.27","maintainers":[{"name":"superfunction","email":"rayim@inflike.com"}],"homepage":"https://github.com/spfn/spfn/tree/main/packages/core#readme","bugs":{"url":"https://github.com/spfn/spfn/issues"},"dist":{"shasum":"ebd98783b892a19bdc2e98b7558761861512b9d3","tarball":"https://registry.npmjs.org/@spfn/core/-/core-0.1.0-alpha.27.tgz","fileCount":40,"integrity":"sha512-XDXkzAW+m5EvPATEvbwRUlmj/ue2Sd5njfS/jITauTSQlCnxmyEVG135asOqVCKosZ/2V3NJSFkjNkH8Ka2VzA==","signatures":[{"sig":"MEQCIEK7dtyUwyX3kPU5Qoj9einkPfqo8nAX+5frF2P1fmAjAiB2qE7GqSOcIB2lLp/m1A5fipM9sY9Alyx95+rUI1i5cQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spfn%2fcore@0.1.0-alpha.27","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1911866},"main":"./dist/index.js","type":"module","_from":"file:spfn-core-0.1.0-alpha.27.tgz","types":"./dist/index.d.ts","engines":{"node":">=18.18.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./db":{"types":"./dist/db/index.d.ts","import":"./dist/db/index.js","require":"./dist/db/index.js"},"./env":{"types":"./dist/env/index.d.ts","import":"./dist/env/index.js","require":"./dist/env/index.js"},"./route":{"types":"./dist/route/index.d.ts","import":"./dist/route/index.js","require":"./dist/route/index.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","require":"./dist/client/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./codegen":{"types":"./dist/codegen/index.d.ts","import":"./dist/codegen/index.js","require":"./dist/codegen/index.js"},"./scripts":{"types":"./dist/scripts/index.d.ts","import":"./dist/scripts/index.js","require":"./dist/scripts/index.js"}},"scripts":{"dev":"tsup --watch","test":"vitest","build":"tsup","test:db":"dotenv -e .env.test -- vitest src/tests/db","type-check":"tsc --noEmit","test:codegen":"vitest run --config vitest.codegen.config.ts","docker:test:up":"docker compose -f ../../docker-compose.test.yml up -d","generate:client":"node dist/scripts/generate-client.js","docker:test:down":"docker compose -f ../../docker-compose.test.yml down","docker:test:logs":"docker compose -f ../../docker-compose.test.yml logs -f","generate:client:watch":"node dist/scripts/generate-client.js --watch"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:ac93c5d5-25a0-4325-a62a-9cc8f1028e8a"}},"_resolved":"/tmp/8f77380eeeefc7ccb8dc325da1a55f09/spfn-core-0.1.0-alpha.27.tgz","_integrity":"sha512-XDXkzAW+m5EvPATEvbwRUlmj/ue2Sd5njfS/jITauTSQlCnxmyEVG135asOqVCKosZ/2V3NJSFkjNkH8Ka2VzA==","repository":{"url":"git+https://github.com/spfn/spfn.git","type":"git","directory":"packages/core"},"_npmVersion":"11.6.2","description":"SPFN Framework Core - File-based routing, transactions, repository pattern","directories":{},"_nodeVersion":"20.19.5","dependencies":{"zod":"^4.1.11","hono":"^4.9.0","jiti":"^2.6.1","pino":"^10.0.0","chalk":"^5.6.2","dotenv":"^17.2.3","chokidar":"^4.0.3","postgres":"^3.4.0","micromatch":"^4.0.8","typescript":"^5.3.3","drizzle-orm":"^0.44.6","drizzle-typebox":"^0.1.0","@hono/node-server":"^1.0.0","@sinclair/typebox":"^0.34.0"},"publishConfig":{"tag":"alpha","access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"tsup":"^8.0.0","vitest":"^3.2.4","@types/node":"^20.11.0","drizzle-kit":"^0.31.5","@types/micromatch":"^4.0.9"},"optionalDependencies":{"ioredis":"^5.4.1"},"_npmOperationalInternal":{"tmp":"tmp/core_0.1.0-alpha.27_1760757784799_0.42608557227761557","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-alpha.28":{"name":"@spfn/core","version":"0.1.0-alpha.28","keywords":["spfn","nextjs","backend","framework","typescript","type-safe","api","rest-api","crud","database","orm","drizzle-orm","postgres","redis","hono","fullstack","server","scalable","auto-generated","file-based-routing","transaction","repository-pattern"],"author":{"name":"Ray Im","email":"rayim@inflike.com"},"license":"MIT","_id":"@spfn/core@0.1.0-alpha.28","maintainers":[{"name":"superfunction","email":"rayim@inflike.com"}],"homepage":"https://github.com/spfn/spfn/tree/main/packages/core#readme","bugs":{"url":"https://github.com/spfn/spfn/issues"},"dist":{"shasum":"29118deb0e92e8adaf8ab533d2a263565db7a859","tarball":"https://registry.npmjs.org/@spfn/core/-/core-0.1.0-alpha.28.tgz","fileCount":40,"integrity":"sha512-9/q2cYohywFeRpyDeOTIyyhMB1iEo5WolSr39WXI5wirz0m/W4x7u4ycpcuX8IYcNtcwV0LbYtpdimG6T1UFYA==","signatures":[{"sig":"MEUCIQCSY1F29VNwzFb/T9pkaALZvF5daZbSvg7vjrcDMQ3udQIgQg60qzrvPxbVcEnqYZLTldOvFgnGdGtNdyrMiszGwYw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spfn%2fcore@0.1.0-alpha.28","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1916690},"main":"./dist/index.js","type":"module","_from":"file:spfn-core-0.1.0-alpha.28.tgz","types":"./dist/index.d.ts","engines":{"node":">=18.18.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./db":{"types":"./dist/db/index.d.ts","import":"./dist/db/index.js","require":"./dist/db/index.js"},"./env":{"types":"./dist/env/index.d.ts","import":"./dist/env/index.js","require":"./dist/env/index.js"},"./route":{"types":"./dist/route/index.d.ts","import":"./dist/route/index.js","require":"./dist/route/index.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","require":"./dist/client/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./codegen":{"types":"./dist/codegen/index.d.ts","import":"./dist/codegen/index.js","require":"./dist/codegen/index.js"},"./scripts":{"types":"./dist/scripts/index.d.ts","import":"./dist/scripts/index.js","require":"./dist/scripts/index.js"}},"scripts":{"dev":"tsup --watch","test":"vitest","build":"tsup","test:db":"dotenv -e .env.test -- vitest src/tests/db","type-check":"tsc --noEmit","test:codegen":"vitest run --config vitest.codegen.config.ts","docker:test:up":"docker compose -f ../../docker-compose.test.yml up -d","generate:client":"node dist/scripts/generate-client.js","docker:test:down":"docker compose -f ../../docker-compose.test.yml down","docker:test:logs":"docker compose -f ../../docker-compose.test.yml logs -f","generate:client:watch":"node dist/scripts/generate-client.js --watch"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:ac93c5d5-25a0-4325-a62a-9cc8f1028e8a"}},"_resolved":"/tmp/e0793e39f9c2e4d87e5297f4d437d206/spfn-core-0.1.0-alpha.28.tgz","_integrity":"sha512-9/q2cYohywFeRpyDeOTIyyhMB1iEo5WolSr39WXI5wirz0m/W4x7u4ycpcuX8IYcNtcwV0LbYtpdimG6T1UFYA==","repository":{"url":"git+https://github.com/spfn/spfn.git","type":"git","directory":"packages/core"},"_npmVersion":"11.6.2","description":"SPFN Framework Core - File-based routing, transactions, repository pattern","directories":{},"_nodeVersion":"20.19.5","dependencies":{"zod":"^4.1.11","hono":"^4.9.0","jiti":"^2.6.1","pino":"^10.0.0","chalk":"^5.6.2","dotenv":"^17.2.3","chokidar":"^4.0.3","postgres":"^3.4.0","micromatch":"^4.0.8","typescript":"^5.3.3","drizzle-orm":"^0.44.6","drizzle-typebox":"^0.1.0","@hono/node-server":"^1.0.0","@sinclair/typebox":"^0.34.0"},"publishConfig":{"tag":"alpha","access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"tsup":"^8.0.0","vitest":"^3.2.4","@types/node":"^20.11.0","drizzle-kit":"^0.31.5","@types/micromatch":"^4.0.9"},"optionalDependencies":{"ioredis":"^5.4.1"},"_npmOperationalInternal":{"tmp":"tmp/core_0.1.0-alpha.28_1760786315744_0.39414387275184004","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-alpha.29":{"name":"@spfn/core","version":"0.1.0-alpha.29","keywords":["spfn","nextjs","backend","framework","typescript","type-safe","api","rest-api","crud","database","orm","drizzle-orm","postgres","redis","hono","fullstack","server","scalable","auto-generated","file-based-routing","transaction","repository-pattern"],"author":{"name":"Ray Im","email":"rayim@inflike.com"},"license":"MIT","_id":"@spfn/core@0.1.0-alpha.29","maintainers":[{"name":"superfunction","email":"rayim@inflike.com"}],"homepage":"https://github.com/spfn/spfn/tree/main/packages/core#readme","bugs":{"url":"https://github.com/spfn/spfn/issues"},"dist":{"shasum":"78c6a17e7f73d3297191805c12f84f7db2fb5437","tarball":"https://registry.npmjs.org/@spfn/core/-/core-0.1.0-alpha.29.tgz","fileCount":40,"integrity":"sha512-rxS7zSfQRXLapIEdgutYvr+PwtM5XBkGpJseFr6vlYhQP6g+Zsv/+DhCZKPT3nAZgOd8H/yRC+SzKzEgmpN3Pg==","signatures":[{"sig":"MEUCIQCvkXoaWRZW7wNqgEjbQ/WvMCjwXvbguZ7KezymQ8S+fQIgbLTeQyikGktvnKLpD95DIU68NP9990Lw2GpG0WExr48=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spfn%2fcore@0.1.0-alpha.29","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1916760},"main":"./dist/index.js","type":"module","_from":"file:spfn-core-0.1.0-alpha.29.tgz","types":"./dist/index.d.ts","engines":{"node":">=18.18.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./db":{"types":"./dist/db/index.d.ts","import":"./dist/db/index.js","require":"./dist/db/index.js"},"./env":{"types":"./dist/env/index.d.ts","import":"./dist/env/index.js","require":"./dist/env/index.js"},"./route":{"types":"./dist/route/index.d.ts","import":"./dist/route/index.js","require":"./dist/route/index.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","require":"./dist/client/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./codegen":{"types":"./dist/codegen/index.d.ts","import":"./dist/codegen/index.js","require":"./dist/codegen/index.js"},"./scripts":{"types":"./dist/scripts/index.d.ts","import":"./dist/scripts/index.js","require":"./dist/scripts/index.js"}},"scripts":{"dev":"tsup --watch","test":"vitest","build":"tsup","test:db":"dotenv -e .env.test -- vitest src/tests/db","type-check":"tsc --noEmit","test:codegen":"vitest run --config vitest.codegen.config.ts","docker:test:up":"docker compose -f ../../docker-compose.test.yml up -d","generate:client":"node dist/scripts/generate-client.js","docker:test:down":"docker compose -f ../../docker-compose.test.yml down","docker:test:logs":"docker compose -f ../../docker-compose.test.yml logs -f","generate:client:watch":"node dist/scripts/generate-client.js --watch"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:ac93c5d5-25a0-4325-a62a-9cc8f1028e8a"}},"_resolved":"/tmp/238834a3cb5703792573275a8baf361e/spfn-core-0.1.0-alpha.29.tgz","_integrity":"sha512-rxS7zSfQRXLapIEdgutYvr+PwtM5XBkGpJseFr6vlYhQP6g+Zsv/+DhCZKPT3nAZgOd8H/yRC+SzKzEgmpN3Pg==","repository":{"url":"git+https://github.com/spfn/spfn.git","type":"git","directory":"packages/core"},"_npmVersion":"11.6.2","description":"SPFN Framework Core - File-based routing, transactions, repository pattern","directories":{},"_nodeVersion":"20.19.5","dependencies":{"zod":"^4.1.11","hono":"^4.9.0","jiti":"^2.6.1","pino":"^10.0.0","chalk":"^5.6.2","dotenv":"^17.2.3","chokidar":"^4.0.3","postgres":"^3.4.0","micromatch":"^4.0.8","typescript":"^5.3.3","drizzle-orm":"^0.44.6","drizzle-typebox":"^0.1.0","@hono/node-server":"^1.0.0","@sinclair/typebox":"^0.34.0"},"publishConfig":{"tag":"alpha","access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"tsup":"^8.0.0","vitest":"^3.2.4","@types/node":"^20.11.0","drizzle-kit":"^0.31.5","@types/micromatch":"^4.0.9"},"optionalDependencies":{"ioredis":"^5.4.1"},"_npmOperationalInternal":{"tmp":"tmp/core_0.1.0-alpha.29_1760798495892_0.646862106173643","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-alpha.30":{"name":"@spfn/core","version":"0.1.0-alpha.30","keywords":["spfn","nextjs","backend","framework","typescript","type-safe","api","rest-api","crud","database","orm","drizzle-orm","postgres","redis","hono","fullstack","server","scalable","auto-generated","file-based-routing","transaction","repository-pattern"],"author":{"name":"Ray Im","email":"rayim@inflike.com"},"license":"MIT","_id":"@spfn/core@0.1.0-alpha.30","maintainers":[{"name":"superfunction","email":"rayim@inflike.com"}],"homepage":"https://github.com/spfn/spfn/tree/main/packages/core#readme","bugs":{"url":"https://github.com/spfn/spfn/issues"},"dist":{"shasum":"3e03afca613360266e48744e5828bcff788b4975","tarball":"https://registry.npmjs.org/@spfn/core/-/core-0.1.0-alpha.30.tgz","fileCount":40,"integrity":"sha512-HcLhs4MRhlXAYLRUMmrIejo7S/yjjX20pJ3SCGeghIUQ41lm21Ydjqvz1nJocK7WYfnm19+Kkzlr/bUJhreDOQ==","signatures":[{"sig":"MEUCIQCxnFPJWPrlUAwlvqP58zKwgaecQvlWi/okv0NHzV9t5QIgPtdvIH1LusVomR3c3iG7MnxdpI5j64iLRbK4SI8NS4Y=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spfn%2fcore@0.1.0-alpha.30","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1916760},"main":"./dist/index.js","type":"module","_from":"file:spfn-core-0.1.0-alpha.30.tgz","types":"./dist/index.d.ts","engines":{"node":">=18.18.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./db":{"types":"./dist/db/index.d.ts","import":"./dist/db/index.js","require":"./dist/db/index.js"},"./env":{"types":"./dist/env/index.d.ts","import":"./dist/env/index.js","require":"./dist/env/index.js"},"./route":{"types":"./dist/route/index.d.ts","import":"./dist/route/index.js","require":"./dist/route/index.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","require":"./dist/client/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./codegen":{"types":"./dist/codegen/index.d.ts","import":"./dist/codegen/index.js","require":"./dist/codegen/index.js"},"./scripts":{"types":"./dist/scripts/index.d.ts","import":"./dist/scripts/index.js","require":"./dist/scripts/index.js"}},"scripts":{"dev":"tsup --watch","test":"vitest","build":"tsup","test:db":"dotenv -e .env.test -- vitest src/tests/db","type-check":"tsc --noEmit","test:codegen":"vitest run --config vitest.codegen.config.ts","docker:test:up":"docker compose -f ../../docker-compose.test.yml up -d","generate:client":"node dist/scripts/generate-client.js","docker:test:down":"docker compose -f ../../docker-compose.test.yml down","docker:test:logs":"docker compose -f ../../docker-compose.test.yml logs -f","generate:client:watch":"node dist/scripts/generate-client.js --watch"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:ac93c5d5-25a0-4325-a62a-9cc8f1028e8a"}},"_resolved":"/tmp/36043e29fb4747ce4f4ed3023e466d0a/spfn-core-0.1.0-alpha.30.tgz","_integrity":"sha512-HcLhs4MRhlXAYLRUMmrIejo7S/yjjX20pJ3SCGeghIUQ41lm21Ydjqvz1nJocK7WYfnm19+Kkzlr/bUJhreDOQ==","repository":{"url":"git+https://github.com/spfn/spfn.git","type":"git","directory":"packages/core"},"_npmVersion":"11.6.2","description":"SPFN Framework Core - File-based routing, transactions, repository pattern","directories":{},"_nodeVersion":"20.19.5","dependencies":{"zod":"^4.1.11","hono":"^4.9.0","jiti":"^2.6.1","pino":"^10.0.0","chalk":"^5.6.2","dotenv":"^17.2.3","chokidar":"^4.0.3","postgres":"^3.4.0","micromatch":"^4.0.8","typescript":"^5.3.3","drizzle-orm":"^0.44.6","drizzle-typebox":"^0.1.0","@hono/node-server":"^1.0.0","@sinclair/typebox":"^0.34.0"},"publishConfig":{"tag":"alpha","access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"tsup":"^8.0.0","vitest":"^3.2.4","@types/node":"^20.11.0","drizzle-kit":"^0.31.5","@types/micromatch":"^4.0.9"},"optionalDependencies":{"ioredis":"^5.4.1"},"_npmOperationalInternal":{"tmp":"tmp/core_0.1.0-alpha.30_1760799047071_0.8285300287932729","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-alpha.31":{"name":"@spfn/core","version":"0.1.0-alpha.31","keywords":["spfn","nextjs","backend","framework","typescript","type-safe","api","rest-api","crud","database","orm","drizzle-orm","postgres","redis","hono","fullstack","server","scalable","auto-generated","file-based-routing","transaction","repository-pattern"],"author":{"name":"Ray Im","email":"rayim@inflike.com"},"license":"MIT","_id":"@spfn/core@0.1.0-alpha.31","maintainers":[{"name":"superfunction","email":"rayim@inflike.com"}],"homepage":"https://github.com/spfn/spfn/tree/main/packages/core#readme","bugs":{"url":"https://github.com/spfn/spfn/issues"},"dist":{"shasum":"96032e57b79f6a94ece00875bc170f2375784bcd","tarball":"https://registry.npmjs.org/@spfn/core/-/core-0.1.0-alpha.31.tgz","fileCount":40,"integrity":"sha512-RY2gxqO/OeSTXfVWGbZyJnDPtl6ODzpdAgisktOF5SU26mrJxL2LDNAFw9ujhiHnJHjHGZvPTJ+NV7LYPeduoQ==","signatures":[{"sig":"MEUCIB5TgM0tExLy/1xlVMqZ62RtOIBysO4XTIMnFoSfIrOxAiEAi9m4jv851moxOxNazZurFrvKUjFXoWpdzwtkWUCiKGE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spfn%2fcore@0.1.0-alpha.31","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1920474},"main":"./dist/index.js","type":"module","_from":"file:spfn-core-0.1.0-alpha.31.tgz","types":"./dist/index.d.ts","engines":{"node":">=18.18.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./db":{"types":"./dist/db/index.d.ts","import":"./dist/db/index.js","require":"./dist/db/index.js"},"./env":{"types":"./dist/env/index.d.ts","import":"./dist/env/index.js","require":"./dist/env/index.js"},"./route":{"types":"./dist/route/index.d.ts","import":"./dist/route/index.js","require":"./dist/route/index.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","require":"./dist/client/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./codegen":{"types":"./dist/codegen/index.d.ts","import":"./dist/codegen/index.js","require":"./dist/codegen/index.js"},"./scripts":{"types":"./dist/scripts/index.d.ts","import":"./dist/scripts/index.js","require":"./dist/scripts/index.js"}},"scripts":{"dev":"tsup --watch","test":"vitest","build":"tsup","test:db":"dotenv -e .env.test -- vitest src/tests/db","type-check":"tsc --noEmit","test:codegen":"vitest run --config vitest.codegen.config.ts","docker:test:up":"docker compose -f ../../docker-compose.test.yml up -d","generate:client":"node dist/scripts/generate-client.js","docker:test:down":"docker compose -f ../../docker-compose.test.yml down","docker:test:logs":"docker compose -f ../../docker-compose.test.yml logs -f","generate:client:watch":"node dist/scripts/generate-client.js --watch"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:ac93c5d5-25a0-4325-a62a-9cc8f1028e8a"}},"_resolved":"/tmp/ddc106fb516e2ada30ebe6c9c3b6cb1f/spfn-core-0.1.0-alpha.31.tgz","_integrity":"sha512-RY2gxqO/OeSTXfVWGbZyJnDPtl6ODzpdAgisktOF5SU26mrJxL2LDNAFw9ujhiHnJHjHGZvPTJ+NV7LYPeduoQ==","repository":{"url":"git+https://github.com/spfn/spfn.git","type":"git","directory":"packages/core"},"_npmVersion":"11.6.2","description":"SPFN Framework Core - File-based routing, transactions, repository pattern","directories":{},"_nodeVersion":"20.19.5","dependencies":{"zod":"^4.1.11","hono":"^4.9.0","jiti":"^2.6.1","pino":"^10.0.0","chalk":"^5.6.2","dotenv":"^17.2.3","chokidar":"^4.0.3","postgres":"^3.4.0","micromatch":"^4.0.8","typescript":"^5.3.3","drizzle-orm":"^0.44.6","drizzle-typebox":"^0.1.0","@hono/node-server":"^1.0.0","@sinclair/typebox":"^0.34.0"},"publishConfig":{"tag":"alpha","access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"tsup":"^8.0.0","vitest":"^3.2.4","@types/node":"^20.11.0","drizzle-kit":"^0.31.5","@types/micromatch":"^4.0.9"},"optionalDependencies":{"ioredis":"^5.4.1"},"_npmOperationalInternal":{"tmp":"tmp/core_0.1.0-alpha.31_1760847591070_0.9492124257524586","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-alpha.32":{"name":"@spfn/core","version":"0.1.0-alpha.32","keywords":["spfn","nextjs","backend","framework","typescript","type-safe","api","rest-api","crud","database","orm","drizzle-orm","postgres","redis","hono","fullstack","server","scalable","auto-generated","file-based-routing","transaction","repository-pattern"],"author":{"name":"Ray Im","email":"rayim@inflike.com"},"license":"MIT","_id":"@spfn/core@0.1.0-alpha.32","maintainers":[{"name":"superfunction","email":"rayim@inflike.com"}],"homepage":"https://github.com/spfn/spfn/tree/main/packages/core#readme","bugs":{"url":"https://github.com/spfn/spfn/issues"},"dist":{"shasum":"ffebd46e03485cea09ebc6101128f0513d5ffe08","tarball":"https://registry.npmjs.org/@spfn/core/-/core-0.1.0-alpha.32.tgz","fileCount":40,"integrity":"sha512-3I7xUgAVrncWxcK+v7kADK0b/oSnPR/zycHJXtRrMMp8xezGSsgXySfPJZu34TjQef8pVmDY+HHKLHLUQEEE4g==","signatures":[{"sig":"MEQCICW9KmjiaE7aa7f8tqGQM9vUtxGgfoxjXnjo3ebqcb5EAiBQqG3b6nGszixvelHMM/idRyHzJzy8HURt0Q84rLXV/g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spfn%2fcore@0.1.0-alpha.32","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1920466},"main":"./dist/index.js","type":"module","_from":"file:spfn-core-0.1.0-alpha.32.tgz","types":"./dist/index.d.ts","engines":{"node":">=18.18.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./db":{"types":"./dist/db/index.d.ts","import":"./dist/db/index.js","require":"./dist/db/index.js"},"./env":{"types":"./dist/env/index.d.ts","import":"./dist/env/index.js","require":"./dist/env/index.js"},"./route":{"types":"./dist/route/index.d.ts","import":"./dist/route/index.js","require":"./dist/route/index.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","require":"./dist/client/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./codegen":{"types":"./dist/codegen/index.d.ts","import":"./dist/codegen/index.js","require":"./dist/codegen/index.js"},"./scripts":{"types":"./dist/scripts/index.d.ts","import":"./dist/scripts/index.js","require":"./dist/scripts/index.js"}},"scripts":{"dev":"tsup","test":"vitest","build":"tsup","test:db":"dotenv -e .env.test -- vitest src/tests/db","type-check":"tsc --noEmit","test:codegen":"vitest run --config vitest.codegen.config.ts","docker:test:up":"docker compose -f ../../docker-compose.test.yml up -d","generate:client":"node dist/scripts/generate-client.js","docker:test:down":"docker compose -f ../../docker-compose.test.yml down","docker:test:logs":"docker compose -f ../../docker-compose.test.yml logs -f","generate:client:watch":"node dist/scripts/generate-client.js --watch"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:ac93c5d5-25a0-4325-a62a-9cc8f1028e8a"}},"_resolved":"/tmp/4a4427b05d16142e888479de413244d1/spfn-core-0.1.0-alpha.32.tgz","_integrity":"sha512-3I7xUgAVrncWxcK+v7kADK0b/oSnPR/zycHJXtRrMMp8xezGSsgXySfPJZu34TjQef8pVmDY+HHKLHLUQEEE4g==","repository":{"url":"git+https://github.com/spfn/spfn.git","type":"git","directory":"packages/core"},"_npmVersion":"11.6.2","description":"SPFN Framework Core - File-based routing, transactions, repository pattern","directories":{},"_nodeVersion":"20.19.5","dependencies":{"zod":"^4.1.11","hono":"^4.9.0","jiti":"^2.6.1","pino":"^10.0.0","chalk":"^5.6.2","dotenv":"^17.2.3","chokidar":"^4.0.3","postgres":"^3.4.0","micromatch":"^4.0.8","typescript":"^5.3.3","drizzle-orm":"^0.44.6","drizzle-typebox":"^0.1.0","@hono/node-server":"^1.0.0","@sinclair/typebox":"^0.34.0"},"publishConfig":{"tag":"alpha","access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"tsup":"^8.0.0","vitest":"^3.2.4","@types/node":"^20.11.0","drizzle-kit":"^0.31.5","@types/micromatch":"^4.0.9"},"optionalDependencies":{"ioredis":"^5.4.1"},"_npmOperationalInternal":{"tmp":"tmp/core_0.1.0-alpha.32_1760873470968_0.9004087888563919","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-alpha.40":{"name":"@spfn/core","version":"0.1.0-alpha.40","keywords":["spfn","nextjs","backend","framework","typescript","type-safe","api","rest-api","crud","database","orm","drizzle-orm","postgres","redis","hono","fullstack","server","scalable","auto-generated","file-based-routing","transaction","repository-pattern"],"author":{"name":"Ray Im","email":"rayim@inflike.com"},"license":"MIT","_id":"@spfn/core@0.1.0-alpha.40","maintainers":[{"name":"superfunction","email":"rayim@inflike.com"}],"homepage":"https://github.com/spfn/spfn/tree/main/packages/core#readme","bugs":{"url":"https://github.com/spfn/spfn/issues"},"dist":{"shasum":"79430db48a9c2067ee1e6fa5122f8c024736f01a","tarball":"https://registry.npmjs.org/@spfn/core/-/core-0.1.0-alpha.40.tgz","fileCount":28,"integrity":"sha512-mjmWZSXqGvqlgo/5o7vc3kHI9gQ9JzUjzPc5o0ff+ZsYannq4g67b5nAjas8xlRU1L/NnKtszXOmgu3MXMpHQA==","signatures":[{"sig":"MEQCIGkUJCg3sTGM7t//CvHg4DTDsHTPYGIXqifn6fPbqoiuAiA5KVlAfr+xOvR8+a0kwUYcF+2ounOawWxWiWo5szht/A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spfn%2fcore@0.1.0-alpha.40","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1650686},"main":"./dist/index.js","type":"module","_from":"file:spfn-core-0.1.0-alpha.40.tgz","types":"./dist/index.d.ts","engines":{"node":">=18.18.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./db":{"types":"./dist/db/index.d.ts","import":"./dist/db/index.js","require":"./dist/db/index.js"},"./env":{"types":"./dist/env/index.d.ts","import":"./dist/env/index.js","require":"./dist/env/index.js"},"./route":{"types":"./dist/route/index.d.ts","import":"./dist/route/index.js","require":"./dist/route/index.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","require":"./dist/client/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./codegen":{"types":"./dist/codegen/index.d.ts","import":"./dist/codegen/index.js","require":"./dist/codegen/index.js"}},"scripts":{"dev":"tsup","test":"vitest","build":"tsup","test:db":"vitest src/db --config vitest.integration.config.ts","test:env":"vitest src/env","test:unit":"vitest --config vitest.unit.config.ts","test:cache":"vitest src/cache --config vitest.integration.config.ts","test:route":"vitest src/route","type-check":"tsc --noEmit","test:client":"vitest src/client","test:errors":"vitest src/errors","test:logger":"vitest src/logger","test:server":"vitest src/server --config vitest.integration.config.ts","test:codegen":"vitest src/codegen","docker:test:up":"docker compose -f docker-compose.test.yml up -d","test:middleware":"vitest src/middleware","docker:test:down":"docker compose -f docker-compose.test.yml down","docker:test:logs":"docker compose -f docker-compose.test.yml logs -f","test:integration":"vitest --config vitest.integration.config.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:ac93c5d5-25a0-4325-a62a-9cc8f1028e8a"}},"_resolved":"/tmp/c64a54c1aac7ad0c3931b9bc79187fa2/spfn-core-0.1.0-alpha.40.tgz","_integrity":"sha512-mjmWZSXqGvqlgo/5o7vc3kHI9gQ9JzUjzPc5o0ff+ZsYannq4g67b5nAjas8xlRU1L/NnKtszXOmgu3MXMpHQA==","repository":{"url":"git+https://github.com/spfn/spfn.git","type":"git","directory":"packages/core"},"_npmVersion":"11.6.2","description":"SPFN Framework Core - File-based routing, transactions, repository pattern","directories":{},"_nodeVersion":"20.19.5","dependencies":{"zod":"^4.1.11","hono":"^4.9.0","jiti":"^2.6.1","pino":"^10.0.0","chalk":"^5.6.2","dotenv":"^17.2.3","chokidar":"^4.0.3","postgres":"^3.4.0","micromatch":"^4.0.8","typescript":"^5.3.3","drizzle-orm":"^0.44.6","drizzle-typebox":"^0.1.0","@hono/node-server":"^1.0.0","@sinclair/typebox":"^0.34.0"},"publishConfig":{"tag":"alpha","access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"tsup":"^8.0.0","vitest":"^3.2.4","@types/node":"^20.11.0","drizzle-kit":"^0.31.5","@types/micromatch":"^4.0.9"},"optionalDependencies":{"ioredis":"^5.4.1"},"_npmOperationalInternal":{"tmp":"tmp/core_0.1.0-alpha.40_1761042972896_0.8333811674084903","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-alpha.41":{"name":"@spfn/core","version":"0.1.0-alpha.41","keywords":["spfn","nextjs","backend","framework","typescript","type-safe","api","rest-api","crud","database","orm","drizzle-orm","postgres","redis","hono","fullstack","server","scalable","auto-generated","file-based-routing","transaction","repository-pattern"],"author":{"name":"Ray Im","email":"rayim@inflike.com"},"license":"MIT","_id":"@spfn/core@0.1.0-alpha.41","maintainers":[{"name":"superfunction","email":"rayim@inflike.com"}],"homepage":"https://github.com/spfn/spfn/tree/main/packages/core#readme","bugs":{"url":"https://github.com/spfn/spfn/issues"},"dist":{"shasum":"7b79c285e62f08f24a6905a5509504dbe2f8b609","tarball":"https://registry.npmjs.org/@spfn/core/-/core-0.1.0-alpha.41.tgz","fileCount":28,"integrity":"sha512-ASUAH5PZZRThN/MShTorwP3+2ZO1eFeE5hLXGCtnYA0qWLUzPBDwnzZZ5qIOLp8JaPQ/sFvGWxfJeYrKC7Fm0w==","signatures":[{"sig":"MEQCIBjeNj8V6sO16/AhFXt0UtqoLQVN1kLU9cHGnvtI8/HCAiB2gdiRw5veihyimiEo8S2BgCc2L2NcdhIPhA2w5u2+Dg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spfn%2fcore@0.1.0-alpha.41","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1631216},"main":"./dist/index.js","type":"module","_from":"file:spfn-core-0.1.0-alpha.41.tgz","types":"./dist/index.d.ts","engines":{"node":">=18.18.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./db":{"types":"./dist/db/index.d.ts","import":"./dist/db/index.js","require":"./dist/db/index.js"},"./env":{"types":"./dist/env/index.d.ts","import":"./dist/env/index.js","require":"./dist/env/index.js"},"./route":{"types":"./dist/route/index.d.ts","import":"./dist/route/index.js","require":"./dist/route/index.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","require":"./dist/client/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./codegen":{"types":"./dist/codegen/index.d.ts","import":"./dist/codegen/index.js","require":"./dist/codegen/index.js"}},"scripts":{"dev":"tsup","test":"vitest","build":"tsup","test:db":"vitest src/db --config vitest.integration.config.ts","test:env":"vitest src/env","test:unit":"vitest --config vitest.unit.config.ts","test:cache":"vitest src/cache --config vitest.integration.config.ts","test:route":"vitest src/route","type-check":"tsc --noEmit","test:client":"vitest src/client","test:errors":"vitest src/errors","test:logger":"vitest src/logger","test:server":"vitest src/server --config vitest.integration.config.ts","test:codegen":"vitest src/codegen","docker:test:up":"docker compose -f docker-compose.test.yml up -d","test:middleware":"vitest src/middleware","docker:test:down":"docker compose -f docker-compose.test.yml down","docker:test:logs":"docker compose -f docker-compose.test.yml logs -f","test:integration":"vitest --config vitest.integration.config.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:ac93c5d5-25a0-4325-a62a-9cc8f1028e8a"}},"_resolved":"/tmp/6c5ea50ffd0bc4d848b87592ae999ee5/spfn-core-0.1.0-alpha.41.tgz","_integrity":"sha512-ASUAH5PZZRThN/MShTorwP3+2ZO1eFeE5hLXGCtnYA0qWLUzPBDwnzZZ5qIOLp8JaPQ/sFvGWxfJeYrKC7Fm0w==","repository":{"url":"git+https://github.com/spfn/spfn.git","type":"git","directory":"packages/core"},"_npmVersion":"11.6.2","description":"SPFN Framework Core - File-based routing, transactions, repository pattern","directories":{},"_nodeVersion":"20.19.5","dependencies":{"zod":"^4.1.11","hono":"^4.9.0","jiti":"^2.6.1","pino":"^10.0.0","chalk":"^5.6.2","dotenv":"^17.2.3","chokidar":"^4.0.3","postgres":"^3.4.0","micromatch":"^4.0.8","typescript":"^5.3.3","drizzle-orm":"^0.44.6","drizzle-typebox":"^0.1.0","@hono/node-server":"^1.0.0","@sinclair/typebox":"^0.34.0"},"publishConfig":{"tag":"alpha","access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"tsup":"^8.0.0","vitest":"^3.2.4","@types/node":"^20.11.0","drizzle-kit":"^0.31.5","@types/micromatch":"^4.0.9"},"optionalDependencies":{"ioredis":"^5.4.1"},"_npmOperationalInternal":{"tmp":"tmp/core_0.1.0-alpha.41_1761053520701_0.2655711652373003","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-alpha.42":{"name":"@spfn/core","version":"0.1.0-alpha.42","keywords":["spfn","nextjs","backend","framework","typescript","type-safe","api","rest-api","crud","database","orm","drizzle-orm","postgres","redis","hono","fullstack","server","scalable","auto-generated","file-based-routing","transaction","repository-pattern"],"author":{"name":"Ray Im","email":"rayim@inflike.com"},"license":"MIT","_id":"@spfn/core@0.1.0-alpha.42","maintainers":[{"name":"superfunction","email":"rayim@inflike.com"}],"homepage":"https://github.com/spfn/spfn/tree/main/packages/core#readme","bugs":{"url":"https://github.com/spfn/spfn/issues"},"dist":{"shasum":"f985d710a332e327a446fea70a93f1edc5fba417","tarball":"https://registry.npmjs.org/@spfn/core/-/core-0.1.0-alpha.42.tgz","fileCount":28,"integrity":"sha512-YbIlrU35PxaSEHoJAOPOVnkfBFX39oXeMSukbzAnmN8b19tnmX7tbSBBq+rZxryouR9hY06Ydu2XTJon6YAy+g==","signatures":[{"sig":"MEYCIQDyUXn2LlC7qP8v+Mw0WjPBcwveujoDuUvtzjaxtV0yxAIhANvL9YWJWEZXUqLDqrSX2asFttmx2EpHYLR3z3jNNFt4","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spfn%2fcore@0.1.0-alpha.42","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1632026},"main":"./dist/index.js","type":"module","_from":"file:spfn-core-0.1.0-alpha.42.tgz","types":"./dist/index.d.ts","engines":{"node":">=18.18.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./db":{"types":"./dist/db/index.d.ts","import":"./dist/db/index.js","require":"./dist/db/index.js"},"./env":{"types":"./dist/env/index.d.ts","import":"./dist/env/index.js","require":"./dist/env/index.js"},"./route":{"types":"./dist/route/index.d.ts","import":"./dist/route/index.js","require":"./dist/route/index.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","require":"./dist/client/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./codegen":{"types":"./dist/codegen/index.d.ts","import":"./dist/codegen/index.js","require":"./dist/codegen/index.js"}},"scripts":{"dev":"tsup","test":"vitest","build":"tsup","test:db":"vitest src/db --config vitest.integration.config.ts","test:env":"vitest src/env","test:unit":"vitest --config vitest.unit.config.ts","test:cache":"vitest src/cache --config vitest.integration.config.ts","test:route":"vitest src/route","type-check":"tsc --noEmit","test:client":"vitest src/client","test:errors":"vitest src/errors","test:logger":"vitest src/logger","test:server":"vitest src/server --config vitest.integration.config.ts","test:codegen":"vitest src/codegen","docker:test:up":"docker compose -f docker-compose.test.yml up -d","test:middleware":"vitest src/middleware","docker:test:down":"docker compose -f docker-compose.test.yml down","docker:test:logs":"docker compose -f docker-compose.test.yml logs -f","test:integration":"vitest --config vitest.integration.config.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:ac93c5d5-25a0-4325-a62a-9cc8f1028e8a"}},"_resolved":"/tmp/cbe74da312c75adc7f8a3390402b777b/spfn-core-0.1.0-alpha.42.tgz","_integrity":"sha512-YbIlrU35PxaSEHoJAOPOVnkfBFX39oXeMSukbzAnmN8b19tnmX7tbSBBq+rZxryouR9hY06Ydu2XTJon6YAy+g==","repository":{"url":"git+https://github.com/spfn/spfn.git","type":"git","directory":"packages/core"},"_npmVersion":"11.6.2","description":"SPFN Framework Core - File-based routing, transactions, repository pattern","directories":{},"_nodeVersion":"20.19.5","dependencies":{"zod":"^4.1.11","hono":"^4.9.0","jiti":"^2.6.1","pino":"^10.0.0","chalk":"^5.6.2","dotenv":"^17.2.3","chokidar":"^4.0.3","postgres":"^3.4.0","micromatch":"^4.0.8","typescript":"^5.3.3","drizzle-orm":"^0.44.6","drizzle-typebox":"^0.1.0","@hono/node-server":"^1.0.0","@sinclair/typebox":"^0.34.0"},"publishConfig":{"tag":"alpha","access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"tsup":"^8.0.0","vitest":"^3.2.4","@types/node":"^20.11.0","drizzle-kit":"^0.31.5","@types/micromatch":"^4.0.9"},"optionalDependencies":{"ioredis":"^5.4.1"},"_npmOperationalInternal":{"tmp":"tmp/core_0.1.0-alpha.42_1761055213544_0.7774743830396613","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-alpha.43":{"name":"@spfn/core","version":"0.1.0-alpha.43","keywords":["spfn","nextjs","backend","framework","typescript","type-safe","api","rest-api","crud","database","orm","drizzle-orm","postgres","redis","hono","fullstack","server","scalable","auto-generated","file-based-routing","transaction","repository-pattern"],"author":{"name":"Ray Im","email":"rayim@inflike.com"},"license":"MIT","_id":"@spfn/core@0.1.0-alpha.43","maintainers":[{"name":"superfunction","email":"rayim@inflike.com"}],"homepage":"https://github.com/spfn/spfn/tree/main/packages/core#readme","bugs":{"url":"https://github.com/spfn/spfn/issues"},"dist":{"shasum":"cc4ea72f0f8783af0d2d9c1fbd2fab307db24486","tarball":"https://registry.npmjs.org/@spfn/core/-/core-0.1.0-alpha.43.tgz","fileCount":28,"integrity":"sha512-8plupR2hCTqF1Ckwy7VFELCWTCMMjK0m+hKvxYEQb0hDO5YZOPUQa6Ff7Yc94EEUMj7ZN3lgJ81B5zOSWhapHg==","signatures":[{"sig":"MEUCIA9RJdpsx9tYK1d0hkBDZ6iMcqHwXM/f060ZvDDTvuZYAiEA0eXjW2P8LmRMg/vhK5yecB+MSd/G+hdCLhmvUyplGnw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spfn%2fcore@0.1.0-alpha.43","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1634629},"main":"./dist/index.js","type":"module","_from":"file:spfn-core-0.1.0-alpha.43.tgz","types":"./dist/index.d.ts","engines":{"node":">=18.18.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./db":{"types":"./dist/db/index.d.ts","import":"./dist/db/index.js","require":"./dist/db/index.js"},"./env":{"types":"./dist/env/index.d.ts","import":"./dist/env/index.js","require":"./dist/env/index.js"},"./route":{"types":"./dist/route/index.d.ts","import":"./dist/route/index.js","require":"./dist/route/index.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","require":"./dist/client/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./codegen":{"types":"./dist/codegen/index.d.ts","import":"./dist/codegen/index.js","require":"./dist/codegen/index.js"}},"scripts":{"dev":"tsup","test":"vitest","build":"tsup","test:db":"vitest src/db --config vitest.integration.config.ts","test:env":"vitest src/env","test:unit":"vitest --config vitest.unit.config.ts","test:cache":"vitest src/cache --config vitest.integration.config.ts","test:route":"vitest src/route","type-check":"tsc --noEmit","test:client":"vitest src/client","test:errors":"vitest src/errors","test:logger":"vitest src/logger","test:server":"vitest src/server --config vitest.integration.config.ts","test:codegen":"vitest src/codegen","docker:test:up":"docker compose -f docker-compose.test.yml up -d","test:middleware":"vitest src/middleware","docker:test:down":"docker compose -f docker-compose.test.yml down","docker:test:logs":"docker compose -f docker-compose.test.yml logs -f","test:integration":"vitest --config vitest.integration.config.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:ac93c5d5-25a0-4325-a62a-9cc8f1028e8a"}},"_resolved":"/tmp/9b82391dc1d1f097d6d902c5467e40cb/spfn-core-0.1.0-alpha.43.tgz","_integrity":"sha512-8plupR2hCTqF1Ckwy7VFELCWTCMMjK0m+hKvxYEQb0hDO5YZOPUQa6Ff7Yc94EEUMj7ZN3lgJ81B5zOSWhapHg==","repository":{"url":"git+https://github.com/spfn/spfn.git","type":"git","directory":"packages/core"},"_npmVersion":"11.6.2","description":"SPFN Framework Core - File-based routing, transactions, repository pattern","directories":{},"_nodeVersion":"20.19.5","dependencies":{"zod":"^4.1.11","hono":"^4.9.0","jiti":"^2.6.1","pino":"^10.0.0","chalk":"^5.6.2","dotenv":"^17.2.3","chokidar":"^4.0.3","postgres":"^3.4.0","micromatch":"^4.0.8","typescript":"^5.3.3","drizzle-orm":"^0.44.6","drizzle-typebox":"^0.1.0","@hono/node-server":"^1.0.0","@sinclair/typebox":"^0.34.0"},"publishConfig":{"tag":"alpha","access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"tsup":"^8.0.0","vitest":"^3.2.4","@types/node":"^20.11.0","drizzle-kit":"^0.31.5","@types/micromatch":"^4.0.9"},"optionalDependencies":{"ioredis":"^5.4.1"},"_npmOperationalInternal":{"tmp":"tmp/core_0.1.0-alpha.43_1761055829901_0.30948620100848845","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-alpha.44":{"name":"@spfn/core","version":"0.1.0-alpha.44","keywords":["spfn","nextjs","backend","framework","typescript","type-safe","api","rest-api","crud","database","orm","drizzle-orm","postgres","redis","hono","fullstack","server","scalable","auto-generated","file-based-routing","transaction","repository-pattern"],"author":{"name":"Ray Im","email":"rayim@inflike.com"},"license":"MIT","_id":"@spfn/core@0.1.0-alpha.44","maintainers":[{"name":"superfunction","email":"rayim@inflike.com"}],"homepage":"https://github.com/spfn/spfn/tree/main/packages/core#readme","bugs":{"url":"https://github.com/spfn/spfn/issues"},"dist":{"shasum":"15565257d867455b3b9b2382a9a0d11d32c3e1ad","tarball":"https://registry.npmjs.org/@spfn/core/-/core-0.1.0-alpha.44.tgz","fileCount":28,"integrity":"sha512-ichyYHCCYZuaBUoHaiuH+LjgC/mvJqGjMRdTgS7DOlkVNxpy1J0nLbGEhG28orcvcZk6HkQSS9Xx79eiDmNjDg==","signatures":[{"sig":"MEUCIAJjmwHKaRHOad8Own+15UZIuwVDT9tuoA6jtXmFxWkNAiEA6qcOhYzG2p5aWaIiUuwLkiEPV5a4BtrIVEXHSAlMSoI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spfn%2fcore@0.1.0-alpha.44","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1660389},"main":"./dist/index.js","type":"module","_from":"file:spfn-core-0.1.0-alpha.44.tgz","types":"./dist/index.d.ts","engines":{"node":">=18.18.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./db":{"types":"./dist/db/index.d.ts","import":"./dist/db/index.js","require":"./dist/db/index.js"},"./env":{"types":"./dist/env/index.d.ts","import":"./dist/env/index.js","require":"./dist/env/index.js"},"./route":{"types":"./dist/route/index.d.ts","import":"./dist/route/index.js","require":"./dist/route/index.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","require":"./dist/client/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./codegen":{"types":"./dist/codegen/index.d.ts","import":"./dist/codegen/index.js","require":"./dist/codegen/index.js"}},"scripts":{"dev":"tsup","test":"vitest","build":"tsup","test:db":"vitest src/db --config vitest.integration.config.ts","test:env":"vitest src/env","test:unit":"vitest --config vitest.unit.config.ts","test:cache":"vitest src/cache --config vitest.integration.config.ts","test:route":"vitest src/route","type-check":"tsc --noEmit","test:client":"vitest src/client","test:errors":"vitest src/errors","test:logger":"vitest src/logger","test:server":"vitest src/server --config vitest.integration.config.ts","test:codegen":"vitest src/codegen","docker:test:up":"docker compose -f docker-compose.test.yml up -d","test:middleware":"vitest src/middleware","docker:test:down":"docker compose -f docker-compose.test.yml down","docker:test:logs":"docker compose -f docker-compose.test.yml logs -f","test:integration":"vitest --config vitest.integration.config.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:ac93c5d5-25a0-4325-a62a-9cc8f1028e8a"}},"_resolved":"/tmp/5dbb94c22035478adca46e5332a88417/spfn-core-0.1.0-alpha.44.tgz","_integrity":"sha512-ichyYHCCYZuaBUoHaiuH+LjgC/mvJqGjMRdTgS7DOlkVNxpy1J0nLbGEhG28orcvcZk6HkQSS9Xx79eiDmNjDg==","repository":{"url":"git+https://github.com/spfn/spfn.git","type":"git","directory":"packages/core"},"_npmVersion":"11.6.2","description":"SPFN Framework Core - File-based routing, transactions, repository pattern","directories":{},"_nodeVersion":"20.19.5","dependencies":{"zod":"^4.1.11","hono":"^4.9.0","jiti":"^2.6.1","pino":"^10.0.0","chalk":"^5.6.2","dotenv":"^17.2.3","chokidar":"^4.0.3","postgres":"^3.4.0","micromatch":"^4.0.8","typescript":"^5.3.3","drizzle-orm":"^0.44.6","drizzle-typebox":"^0.1.0","@hono/node-server":"^1.0.0","@sinclair/typebox":"^0.34.0"},"publishConfig":{"tag":"alpha","access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"tsup":"^8.0.0","vitest":"^3.2.4","@types/node":"^20.11.0","drizzle-kit":"^0.31.5","@types/micromatch":"^4.0.9"},"optionalDependencies":{"ioredis":"^5.4.1"},"_npmOperationalInternal":{"tmp":"tmp/core_0.1.0-alpha.44_1761141865217_0.2519314627738114","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-alpha.45":{"name":"@spfn/core","version":"0.1.0-alpha.45","keywords":["spfn","nextjs","backend","framework","typescript","type-safe","api","rest-api","crud","database","orm","drizzle-orm","postgres","redis","hono","fullstack","server","scalable","auto-generated","file-based-routing","transaction","repository-pattern"],"author":{"name":"Ray Im","email":"rayim@inflike.com"},"license":"MIT","_id":"@spfn/core@0.1.0-alpha.45","maintainers":[{"name":"superfunction","email":"rayim@inflike.com"}],"homepage":"https://github.com/spfn/spfn/tree/main/packages/core#readme","bugs":{"url":"https://github.com/spfn/spfn/issues"},"dist":{"shasum":"b6eefafc68cb9d20fbce4cf422d30c4c9d538c3a","tarball":"https://registry.npmjs.org/@spfn/core/-/core-0.1.0-alpha.45.tgz","fileCount":28,"integrity":"sha512-PCjAj6UAYS2VUZ2ipR9rGf2YSA+dSmdMkUrQ4evk69tQZBcdb9uYJeuus5Zm2vJsXDW7OrVIdQB3DeTGz8MU3g==","signatures":[{"sig":"MEYCIQDtH84I8e2eoqi938GCxFaljEcVQNdW+HCcF5dy73FdOwIhAL/0IJXAAZAol2BWtSXvrFLTnlNezp+7Gk1/SNS3pAUA","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spfn%2fcore@0.1.0-alpha.45","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1660540},"main":"./dist/index.js","type":"module","_from":"file:spfn-core-0.1.0-alpha.45.tgz","types":"./dist/index.d.ts","engines":{"node":">=18.18.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./db":{"types":"./dist/db/index.d.ts","import":"./dist/db/index.js","require":"./dist/db/index.js"},"./env":{"types":"./dist/env/index.d.ts","import":"./dist/env/index.js","require":"./dist/env/index.js"},"./route":{"types":"./dist/route/index.d.ts","import":"./dist/route/index.js","require":"./dist/route/index.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","require":"./dist/client/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./codegen":{"types":"./dist/codegen/index.d.ts","import":"./dist/codegen/index.js","require":"./dist/codegen/index.js"}},"scripts":{"dev":"tsup","test":"vitest","build":"tsup","test:db":"vitest src/db --config vitest.integration.config.ts","test:env":"vitest src/env","test:unit":"vitest --config vitest.unit.config.ts","test:cache":"vitest src/cache --config vitest.integration.config.ts","test:route":"vitest src/route","type-check":"tsc --noEmit","test:client":"vitest src/client","test:errors":"vitest src/errors","test:logger":"vitest src/logger","test:server":"vitest src/server --config vitest.integration.config.ts","test:codegen":"vitest src/codegen","docker:test:up":"docker compose -f docker-compose.test.yml up -d","test:middleware":"vitest src/middleware","docker:test:down":"docker compose -f docker-compose.test.yml down","docker:test:logs":"docker compose -f docker-compose.test.yml logs -f","test:integration":"vitest --config vitest.integration.config.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:ac93c5d5-25a0-4325-a62a-9cc8f1028e8a"}},"_resolved":"/tmp/cef984526c181a330fa2d21b36fd58e0/spfn-core-0.1.0-alpha.45.tgz","_integrity":"sha512-PCjAj6UAYS2VUZ2ipR9rGf2YSA+dSmdMkUrQ4evk69tQZBcdb9uYJeuus5Zm2vJsXDW7OrVIdQB3DeTGz8MU3g==","repository":{"url":"git+https://github.com/spfn/spfn.git","type":"git","directory":"packages/core"},"_npmVersion":"11.6.2","description":"SPFN Framework Core - File-based routing, transactions, repository pattern","directories":{},"_nodeVersion":"20.19.5","dependencies":{"zod":"^4.1.11","hono":"^4.9.0","jiti":"^2.6.1","pino":"^10.0.0","chalk":"^5.6.2","dotenv":"^17.2.3","chokidar":"^4.0.3","postgres":"^3.4.0","micromatch":"^4.0.8","typescript":"^5.3.3","drizzle-orm":"^0.44.6","drizzle-typebox":"^0.1.0","@hono/node-server":"^1.0.0","@sinclair/typebox":"^0.34.0"},"publishConfig":{"tag":"alpha","access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"tsup":"^8.0.0","vitest":"^3.2.4","@types/node":"^20.11.0","drizzle-kit":"^0.31.5","@types/micromatch":"^4.0.9"},"optionalDependencies":{"ioredis":"^5.4.1"},"_npmOperationalInternal":{"tmp":"tmp/core_0.1.0-alpha.45_1761144150752_0.7914139632713875","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-alpha.49":{"name":"@spfn/core","version":"0.1.0-alpha.49","keywords":["spfn","nextjs","backend","framework","typescript","type-safe","api","rest-api","crud","database","orm","drizzle-orm","postgres","redis","hono","fullstack","server","scalable","auto-generated","file-based-routing","transaction","repository-pattern"],"author":{"name":"Ray Im","email":"rayim@inflike.com"},"license":"MIT","_id":"@spfn/core@0.1.0-alpha.49","maintainers":[{"name":"superfunction","email":"rayim@inflike.com"}],"homepage":"https://github.com/spfn/spfn/tree/main/packages/core#readme","bugs":{"url":"https://github.com/spfn/spfn/issues"},"dist":{"shasum":"84a1cbeb63bea102b10cdabd9cf740dfedb3247d","tarball":"https://registry.npmjs.org/@spfn/core/-/core-0.1.0-alpha.49.tgz","fileCount":28,"integrity":"sha512-uA2dWPvBWSmHFGp8pML+jw1DCdDufJobvu0QT0Yz60jhWGHcpOKXJtYW3yJj5jbUxV0EYfDN6JxGGpRNOwn24A==","signatures":[{"sig":"MEUCIEAFCi3AoLggd9QoQ1MyPAys2uXvP4c7m30ce8mKIO/5AiEA4ye2O8Oc3ZVcJFWz131rXeCsDCWiLp6kj8Zbp7qLEzo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spfn%2fcore@0.1.0-alpha.49","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1704929},"main":"./dist/index.js","type":"module","_from":"file:spfn-core-0.1.0-alpha.49.tgz","types":"./dist/index.d.ts","engines":{"node":">=18.18.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./db":{"types":"./dist/db/index.d.ts","import":"./dist/db/index.js","require":"./dist/db/index.js"},"./env":{"types":"./dist/env/index.d.ts","import":"./dist/env/index.js","require":"./dist/env/index.js"},"./route":{"types":"./dist/route/index.d.ts","import":"./dist/route/index.js","require":"./dist/route/index.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","require":"./dist/client/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./codegen":{"types":"./dist/codegen/index.d.ts","import":"./dist/codegen/index.js","require":"./dist/codegen/index.js"}},"scripts":{"dev":"tsup","test":"vitest","build":"tsup","test:db":"vitest src/db --config vitest.integration.config.ts","test:env":"vitest src/env","test:unit":"vitest --config vitest.unit.config.ts","test:cache":"vitest src/cache --config vitest.integration.config.ts","test:route":"vitest src/route","type-check":"tsc --noEmit","test:client":"vitest src/client","test:errors":"vitest src/errors","test:logger":"vitest src/logger","test:server":"vitest src/server --config vitest.integration.config.ts","test:codegen":"vitest src/codegen","docker:test:up":"docker compose -f docker-compose.test.yml up -d","test:middleware":"vitest src/middleware","docker:test:down":"docker compose -f docker-compose.test.yml down","docker:test:logs":"docker compose -f docker-compose.test.yml logs -f","test:integration":"vitest --config vitest.integration.config.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:ac93c5d5-25a0-4325-a62a-9cc8f1028e8a"}},"_resolved":"/tmp/b59a0c5c353626639b5b541d0ee9d1e9/spfn-core-0.1.0-alpha.49.tgz","_integrity":"sha512-uA2dWPvBWSmHFGp8pML+jw1DCdDufJobvu0QT0Yz60jhWGHcpOKXJtYW3yJj5jbUxV0EYfDN6JxGGpRNOwn24A==","repository":{"url":"git+https://github.com/spfn/spfn.git","type":"git","directory":"packages/core"},"_npmVersion":"11.6.2","description":"SPFN Framework Core - File-based routing, transactions, repository pattern","directories":{},"_nodeVersion":"20.19.5","dependencies":{"zod":"^4.1.11","hono":"^4.9.0","jiti":"^2.6.1","pino":"^10.0.0","chalk":"^5.6.2","dotenv":"^17.2.3","chokidar":"^4.0.3","postgres":"^3.4.0","micromatch":"^4.0.8","typescript":"^5.3.3","drizzle-orm":"^0.44.6","drizzle-typebox":"^0.1.0","@hono/node-server":"^1.0.0","@sinclair/typebox":"^0.34.0"},"publishConfig":{"tag":"alpha","access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"tsup":"^8.0.0","vitest":"^3.2.4","@types/node":"^20.11.0","drizzle-kit":"^0.31.5","@types/micromatch":"^4.0.9"},"optionalDependencies":{"ioredis":"^5.4.1"},"_npmOperationalInternal":{"tmp":"tmp/core_0.1.0-alpha.49_1761192402419_0.4332770256033902","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-alpha.50":{"name":"@spfn/core","version":"0.1.0-alpha.50","keywords":["spfn","nextjs","backend","framework","typescript","type-safe","api","rest-api","crud","database","orm","drizzle-orm","postgres","redis","hono","fullstack","server","scalable","auto-generated","file-based-routing","transaction","repository-pattern"],"author":{"name":"Ray Im","email":"rayim@inflike.com"},"license":"MIT","_id":"@spfn/core@0.1.0-alpha.50","maintainers":[{"name":"superfunction","email":"rayim@inflike.com"}],"homepage":"https://github.com/spfn/spfn/tree/main/packages/core#readme","bugs":{"url":"https://github.com/spfn/spfn/issues"},"dist":{"shasum":"06a27f2aa72963bdd1e30f3686ef27f1b6187a0c","tarball":"https://registry.npmjs.org/@spfn/core/-/core-0.1.0-alpha.50.tgz","fileCount":28,"integrity":"sha512-de+ySc176X3iYb5adDnmys14kQ70G2GP1gso+bPGS7jrP+1PikNJkOu/YFhlhdCaHxkl8SVnCq3s18wT9ytfQw==","signatures":[{"sig":"MEUCIHfOuqb8OP6d06eqND1ooEMlMVNtjObEEIaz4o6lWW58AiEAhU+oN1buX347C/VxuRLWza56PXR8FQtF+n/coDxRAzA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spfn%2fcore@0.1.0-alpha.50","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1706681},"main":"./dist/index.js","type":"module","_from":"file:spfn-core-0.1.0-alpha.50.tgz","types":"./dist/index.d.ts","engines":{"node":">=18.18.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./db":{"types":"./dist/db/index.d.ts","import":"./dist/db/index.js","require":"./dist/db/index.js"},"./env":{"types":"./dist/env/index.d.ts","import":"./dist/env/index.js","require":"./dist/env/index.js"},"./route":{"types":"./dist/route/index.d.ts","import":"./dist/route/index.js","require":"./dist/route/index.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","require":"./dist/client/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./codegen":{"types":"./dist/codegen/index.d.ts","import":"./dist/codegen/index.js","require":"./dist/codegen/index.js"}},"scripts":{"dev":"tsup","test":"vitest","build":"tsup","test:db":"vitest src/db --config vitest.integration.config.ts","test:env":"vitest src/env","test:unit":"vitest --config vitest.unit.config.ts","test:cache":"vitest src/cache --config vitest.integration.config.ts","test:route":"vitest src/route","type-check":"tsc --noEmit","test:client":"vitest src/client","test:errors":"vitest src/errors","test:logger":"vitest src/logger","test:server":"vitest src/server --config vitest.integration.config.ts","test:codegen":"vitest src/codegen","docker:test:up":"docker compose -f docker-compose.test.yml up -d","test:middleware":"vitest src/middleware","docker:test:down":"docker compose -f docker-compose.test.yml down","docker:test:logs":"docker compose -f docker-compose.test.yml logs -f","test:integration":"vitest --config vitest.integration.config.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:ac93c5d5-25a0-4325-a62a-9cc8f1028e8a"}},"_resolved":"/tmp/3d97174ff4aa5e6fdcd3305ba008e372/spfn-core-0.1.0-alpha.50.tgz","_integrity":"sha512-de+ySc176X3iYb5adDnmys14kQ70G2GP1gso+bPGS7jrP+1PikNJkOu/YFhlhdCaHxkl8SVnCq3s18wT9ytfQw==","repository":{"url":"git+https://github.com/spfn/spfn.git","type":"git","directory":"packages/core"},"_npmVersion":"11.6.2","description":"SPFN Framework Core - File-based routing, transactions, repository pattern","directories":{},"_nodeVersion":"20.19.5","dependencies":{"zod":"^4.1.11","hono":"^4.9.0","jiti":"^2.6.1","pino":"^10.0.0","chalk":"^5.6.2","dotenv":"^17.2.3","chokidar":"^4.0.3","postgres":"^3.4.0","micromatch":"^4.0.8","typescript":"^5.3.3","drizzle-orm":"^0.44.6","drizzle-typebox":"^0.1.0","@hono/node-server":"^1.0.0","@sinclair/typebox":"^0.34.0"},"publishConfig":{"tag":"alpha","access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"tsup":"^8.0.0","vitest":"^3.2.4","@types/node":"^20.11.0","drizzle-kit":"^0.31.5","@types/micromatch":"^4.0.9"},"optionalDependencies":{"ioredis":"^5.4.1"},"_npmOperationalInternal":{"tmp":"tmp/core_0.1.0-alpha.50_1761193925298_0.7906237809804415","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-alpha.51":{"name":"@spfn/core","version":"0.1.0-alpha.51","keywords":["spfn","nextjs","backend","framework","typescript","type-safe","api","rest-api","crud","database","orm","drizzle-orm","postgres","redis","hono","fullstack","server","scalable","auto-generated","file-based-routing","transaction","repository-pattern"],"author":{"name":"Ray Im","email":"rayim@inflike.com"},"license":"MIT","_id":"@spfn/core@0.1.0-alpha.51","maintainers":[{"name":"superfunction","email":"rayim@inflike.com"}],"homepage":"https://github.com/spfn/spfn/tree/main/packages/core#readme","bugs":{"url":"https://github.com/spfn/spfn/issues"},"dist":{"shasum":"d29ca45b9f64c2da62e18d8944965f4aeb55fb24","tarball":"https://registry.npmjs.org/@spfn/core/-/core-0.1.0-alpha.51.tgz","fileCount":28,"integrity":"sha512-QetbRxsxh7Bk1zu8ExZHwjZP0wpiRmixWMD96GYVDfhBqS4+AwewCRk5Y3n/hk5bnFCSdAYqQITOdXtMiwvMOw==","signatures":[{"sig":"MEQCIBaNu/2Mkr5vkw21eFhiJWTGcYgc/OSbMgc1fZhDp3uKAiAMP6z32EKuQpZi+ztvDyW9zDxwE0K4iDuEig98RBgFKw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spfn%2fcore@0.1.0-alpha.51","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1714803},"main":"./dist/index.js","type":"module","_from":"file:spfn-core-0.1.0-alpha.51.tgz","types":"./dist/index.d.ts","engines":{"node":">=18.18.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./db":{"types":"./dist/db/index.d.ts","import":"./dist/db/index.js","require":"./dist/db/index.js"},"./env":{"types":"./dist/env/index.d.ts","import":"./dist/env/index.js","require":"./dist/env/index.js"},"./route":{"types":"./dist/route/index.d.ts","import":"./dist/route/index.js","require":"./dist/route/index.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","require":"./dist/client/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./codegen":{"types":"./dist/codegen/index.d.ts","import":"./dist/codegen/index.js","require":"./dist/codegen/index.js"}},"scripts":{"dev":"tsup","test":"vitest","build":"tsup","test:db":"vitest src/db --config vitest.integration.config.ts","test:env":"vitest src/env","test:unit":"vitest --config vitest.unit.config.ts","test:cache":"vitest src/cache --config vitest.integration.config.ts","test:route":"vitest src/route","type-check":"tsc --noEmit","test:client":"vitest src/client","test:errors":"vitest src/errors","test:logger":"vitest src/logger","test:server":"vitest src/server --config vitest.integration.config.ts","test:codegen":"vitest src/codegen","docker:test:up":"docker compose -f docker-compose.test.yml up -d","test:middleware":"vitest src/middleware","docker:test:down":"docker compose -f docker-compose.test.yml down","docker:test:logs":"docker compose -f docker-compose.test.yml logs -f","test:integration":"vitest --config vitest.integration.config.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:ac93c5d5-25a0-4325-a62a-9cc8f1028e8a"}},"_resolved":"/tmp/994994800d8c75477ecd45ba9b4b3591/spfn-core-0.1.0-alpha.51.tgz","_integrity":"sha512-QetbRxsxh7Bk1zu8ExZHwjZP0wpiRmixWMD96GYVDfhBqS4+AwewCRk5Y3n/hk5bnFCSdAYqQITOdXtMiwvMOw==","repository":{"url":"git+https://github.com/spfn/spfn.git","type":"git","directory":"packages/core"},"_npmVersion":"11.6.2","description":"SPFN Framework Core - File-based routing, transactions, repository pattern","directories":{},"_nodeVersion":"20.19.5","dependencies":{"zod":"^4.1.11","hono":"^4.9.0","jiti":"^2.6.1","pino":"^10.0.0","chalk":"^5.6.2","dotenv":"^17.2.3","chokidar":"^4.0.3","postgres":"^3.4.0","micromatch":"^4.0.8","typescript":"^5.3.3","drizzle-orm":"^0.44.6","drizzle-typebox":"^0.1.0","@hono/node-server":"^1.0.0","@sinclair/typebox":"^0.34.0"},"publishConfig":{"tag":"alpha","access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"tsup":"^8.0.0","vitest":"^3.2.4","@types/node":"^20.11.0","drizzle-kit":"^0.31.5","@types/micromatch":"^4.0.9"},"optionalDependencies":{"ioredis":"^5.4.1"},"_npmOperationalInternal":{"tmp":"tmp/core_0.1.0-alpha.51_1761198716489_0.6511566001778952","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-alpha.52":{"name":"@spfn/core","version":"0.1.0-alpha.52","keywords":["spfn","nextjs","backend","framework","typescript","type-safe","api","rest-api","crud","database","orm","drizzle-orm","postgres","redis","hono","fullstack","server","scalable","auto-generated","file-based-routing","transaction","repository-pattern"],"author":{"name":"Ray Im","email":"rayim@inflike.com"},"license":"MIT","_id":"@spfn/core@0.1.0-alpha.52","maintainers":[{"name":"superfunction","email":"rayim@inflike.com"}],"homepage":"https://github.com/spfn/spfn/tree/main/packages/core#readme","bugs":{"url":"https://github.com/spfn/spfn/issues"},"dist":{"shasum":"83094277fecd46ed8639d5424b92b1489f25a088","tarball":"https://registry.npmjs.org/@spfn/core/-/core-0.1.0-alpha.52.tgz","fileCount":35,"integrity":"sha512-/83FN3jxWyECLIwm0LjxVwLn3GW/NY3lxAzI5Kc48kmzCylkWu0L9VxIU3RqToP4OIdM314JeA0iYPLgnHl6MA==","signatures":[{"sig":"MEUCIE1QK+wMf0dnYRHNl0Fyq3CPJ8Tgt73vvPD31kA0xIr1AiEAugelShrLQy1sOiM4A/Sz14Ev37H7cHUcbaGO0E0kmjg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spfn%2fcore@0.1.0-alpha.52","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2089927},"main":"./dist/index.js","type":"module","_from":"file:spfn-core-0.1.0-alpha.52.tgz","types":"./dist/index.d.ts","engines":{"node":">=18.18.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./db":{"types":"./dist/db/index.d.ts","import":"./dist/db/index.js","require":"./dist/db/index.js"},"./env":{"types":"./dist/env/index.d.ts","import":"./dist/env/index.js","require":"./dist/env/index.js"},"./route":{"types":"./dist/route/index.d.ts","import":"./dist/route/index.js","require":"./dist/route/index.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","require":"./dist/client/index.js"},"./logger":{"types":"./dist/logger/index.d.ts","import":"./dist/logger/index.js","require":"./dist/logger/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./codegen":{"types":"./dist/codegen/index.d.ts","import":"./dist/codegen/index.js","require":"./dist/codegen/index.js"},"./codegen/generators":{"types":"./dist/codegen/generators/index.d.ts","import":"./dist/codegen/generators/index.js","require":"./dist/codegen/generators/index.js"}},"scripts":{"dev":"tsup","test":"vitest","build":"tsup","test:db":"vitest src/db --config vitest.integration.config.ts","test:env":"vitest src/env","test:unit":"vitest --config vitest.unit.config.ts","test:cache":"vitest src/cache --config vitest.integration.config.ts","test:route":"vitest src/route","type-check":"tsc --noEmit","test:client":"vitest src/client","test:errors":"vitest src/errors","test:logger":"vitest src/logger","test:server":"vitest src/server --config vitest.integration.config.ts","test:codegen":"vitest src/codegen","docker:test:up":"docker compose -f docker-compose.test.yml up -d","test:middleware":"vitest src/middleware","docker:test:down":"docker compose -f docker-compose.test.yml down","docker:test:logs":"docker compose -f docker-compose.test.yml logs -f","test:integration":"vitest --config vitest.integration.config.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:ac93c5d5-25a0-4325-a62a-9cc8f1028e8a"}},"_resolved":"/tmp/956f24f5f89d94bec33d26414c7fb0bf/spfn-core-0.1.0-alpha.52.tgz","_integrity":"sha512-/83FN3jxWyECLIwm0LjxVwLn3GW/NY3lxAzI5Kc48kmzCylkWu0L9VxIU3RqToP4OIdM314JeA0iYPLgnHl6MA==","repository":{"url":"git+https://github.com/spfn/spfn.git","type":"git","directory":"packages/core"},"_npmVersion":"11.6.2","description":"SPFN Framework Core - File-based routing, transactions, repository pattern","directories":{},"_nodeVersion":"20.19.5","dependencies":{"zod":"^4.1.11","hono":"^4.9.0","jiti":"^2.6.1","pino":"^10.0.0","chalk":"^5.6.2","dotenv":"^17.2.3","chokidar":"^4.0.3","postgres":"^3.4.0","micromatch":"^4.0.8","typescript":"^5.3.3","drizzle-orm":"^0.44.6","drizzle-typebox":"^0.1.0","@hono/node-server":"^1.0.0","@sinclair/typebox":"^0.34.0"},"publishConfig":{"tag":"alpha","access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"tsup":"^8.0.0","vitest":"^3.2.4","@types/node":"^20.11.0","drizzle-kit":"^0.31.5","@types/micromatch":"^4.0.9"},"optionalDependencies":{"ioredis":"^5.4.1"},"_npmOperationalInternal":{"tmp":"tmp/core_0.1.0-alpha.52_1761491924346_0.1703674972868101","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-alpha.53":{"name":"@spfn/core","version":"0.1.0-alpha.53","keywords":["spfn","nextjs","backend","framework","typescript","type-safe","api","rest-api","crud","database","orm","drizzle-orm","postgres","redis","hono","fullstack","server","scalable","auto-generated","file-based-routing","transaction","repository-pattern"],"author":{"name":"Ray Im","email":"rayim@inflike.com"},"license":"MIT","_id":"@spfn/core@0.1.0-alpha.53","maintainers":[{"name":"superfunction","email":"rayim@inflike.com"}],"homepage":"https://github.com/spfn/spfn/tree/main/packages/core#readme","bugs":{"url":"https://github.com/spfn/spfn/issues"},"dist":{"shasum":"817c987939931f3a8a737e5888fe841c6a68c004","tarball":"https://registry.npmjs.org/@spfn/core/-/core-0.1.0-alpha.53.tgz","fileCount":35,"integrity":"sha512-eGwleldAkZBPATqF/IPc4iLzi+egVfzWjXaLZCWnd+2nSTlhC7PKf0zZMFqFJwPQj33zhtWjKA/VlIBjuhAwfA==","signatures":[{"sig":"MEYCIQC6tuSnjpQErerDUWB/3iU0n1R+CP3+aRiBh9pee29frQIhAM1F4znVwQz08piC3stLcpeVbCB206uqft5X5ssEzWO1","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spfn%2fcore@0.1.0-alpha.53","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2091915},"main":"./dist/index.js","type":"module","_from":"file:spfn-core-0.1.0-alpha.53.tgz","types":"./dist/index.d.ts","engines":{"node":">=18.18.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./db":{"types":"./dist/db/index.d.ts","import":"./dist/db/index.js","require":"./dist/db/index.js"},"./env":{"types":"./dist/env/index.d.ts","import":"./dist/env/index.js","require":"./dist/env/index.js"},"./route":{"types":"./dist/route/index.d.ts","import":"./dist/route/index.js","require":"./dist/route/index.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","require":"./dist/client/index.js"},"./logger":{"types":"./dist/logger/index.d.ts","import":"./dist/logger/index.js","require":"./dist/logger/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./codegen":{"types":"./dist/codegen/index.d.ts","import":"./dist/codegen/index.js","require":"./dist/codegen/index.js"},"./codegen/generators":{"types":"./dist/codegen/generators/index.d.ts","import":"./dist/codegen/generators/index.js","require":"./dist/codegen/generators/index.js"}},"scripts":{"dev":"tsup","test":"vitest","build":"tsup","test:db":"vitest src/db --config vitest.integration.config.ts","test:env":"vitest src/env","test:unit":"vitest --config vitest.unit.config.ts","test:cache":"vitest src/cache --config vitest.integration.config.ts","test:route":"vitest src/route","type-check":"tsc --noEmit","test:client":"vitest src/client","test:errors":"vitest src/errors","test:logger":"vitest src/logger","test:server":"vitest src/server --config vitest.integration.config.ts","test:codegen":"vitest src/codegen","docker:test:up":"docker compose -f docker-compose.test.yml up -d","test:middleware":"vitest src/middleware","docker:test:down":"docker compose -f docker-compose.test.yml down","docker:test:logs":"docker compose -f docker-compose.test.yml logs -f","test:integration":"vitest --config vitest.integration.config.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:ac93c5d5-25a0-4325-a62a-9cc8f1028e8a"}},"_resolved":"/tmp/bd5d0f2568deb2a90a0f7405f952da14/spfn-core-0.1.0-alpha.53.tgz","_integrity":"sha512-eGwleldAkZBPATqF/IPc4iLzi+egVfzWjXaLZCWnd+2nSTlhC7PKf0zZMFqFJwPQj33zhtWjKA/VlIBjuhAwfA==","repository":{"url":"git+https://github.com/spfn/spfn.git","type":"git","directory":"packages/core"},"_npmVersion":"11.6.2","description":"SPFN Framework Core - File-based routing, transactions, repository pattern","directories":{},"_nodeVersion":"20.19.5","dependencies":{"zod":"^4.1.11","hono":"^4.9.0","jiti":"^2.6.1","pino":"^10.0.0","chalk":"^5.6.2","dotenv":"^17.2.3","chokidar":"^4.0.3","postgres":"^3.4.0","micromatch":"^4.0.8","typescript":"^5.3.3","drizzle-orm":"^0.44.6","drizzle-typebox":"^0.1.0","@hono/node-server":"^1.0.0","@sinclair/typebox":"^0.34.0"},"publishConfig":{"tag":"alpha","access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"tsup":"^8.0.0","vitest":"^3.2.4","@types/node":"^20.11.0","drizzle-kit":"^0.31.5","@types/micromatch":"^4.0.9"},"optionalDependencies":{"ioredis":"^5.4.1"},"_npmOperationalInternal":{"tmp":"tmp/core_0.1.0-alpha.53_1761566469312_0.36246741955477435","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-alpha.54":{"name":"@spfn/core","version":"0.1.0-alpha.54","keywords":["spfn","nextjs","backend","framework","typescript","type-safe","api","rest-api","crud","database","orm","drizzle-orm","postgres","redis","hono","fullstack","server","scalable","auto-generated","file-based-routing","transaction","repository-pattern"],"author":{"name":"Ray Im","email":"rayim@inflike.com"},"license":"MIT","_id":"@spfn/core@0.1.0-alpha.54","maintainers":[{"name":"superfunction","email":"rayim@inflike.com"}],"homepage":"https://github.com/spfn/spfn/tree/main/packages/core#readme","bugs":{"url":"https://github.com/spfn/spfn/issues"},"dist":{"shasum":"467e58104d2c3b815f72a1c54a6ae1f603b929c2","tarball":"https://registry.npmjs.org/@spfn/core/-/core-0.1.0-alpha.54.tgz","fileCount":35,"integrity":"sha512-MKoH62zORSMWG4e6yAJhsPlSjKrD7fBHireA70j8uOR8YcO1Qywl48bxNeBLClyU7iN2e0QxkfGPOHD3fY0YNQ==","signatures":[{"sig":"MEUCICBBgsTsPp5qCjGFVSM4w1/2YeZz8Mfl3WdwqvEtG9A4AiEAqPutR/kL07BZo9jfvtok0s5FI6z87caSKxTWN5MYFDk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spfn%2fcore@0.1.0-alpha.54","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2092107},"main":"./dist/index.js","type":"module","_from":"file:spfn-core-0.1.0-alpha.54.tgz","types":"./dist/index.d.ts","engines":{"node":">=18.18.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./db":{"types":"./dist/db/index.d.ts","import":"./dist/db/index.js","require":"./dist/db/index.js"},"./env":{"types":"./dist/env/index.d.ts","import":"./dist/env/index.js","require":"./dist/env/index.js"},"./route":{"types":"./dist/route/index.d.ts","import":"./dist/route/index.js","require":"./dist/route/index.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","require":"./dist/client/index.js"},"./logger":{"types":"./dist/logger/index.d.ts","import":"./dist/logger/index.js","require":"./dist/logger/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./codegen":{"types":"./dist/codegen/index.d.ts","import":"./dist/codegen/index.js","require":"./dist/codegen/index.js"},"./generators":{"types":"./dist/codegen/generators/index.d.ts","import":"./dist/codegen/generators/index.js","require":"./dist/codegen/generators/index.js"},"./codegen/generators":{"types":"./dist/codegen/generators/index.d.ts","import":"./dist/codegen/generators/index.js","require":"./dist/codegen/generators/index.js"}},"scripts":{"dev":"tsup","test":"vitest","build":"tsup","test:db":"vitest src/db --config vitest.integration.config.ts","test:env":"vitest src/env","test:unit":"vitest --config vitest.unit.config.ts","test:cache":"vitest src/cache --config vitest.integration.config.ts","test:route":"vitest src/route","type-check":"tsc --noEmit","test:client":"vitest src/client","test:errors":"vitest src/errors","test:logger":"vitest src/logger","test:server":"vitest src/server --config vitest.integration.config.ts","test:codegen":"vitest src/codegen","docker:test:up":"docker compose -f docker-compose.test.yml up -d","test:middleware":"vitest src/middleware","docker:test:down":"docker compose -f docker-compose.test.yml down","docker:test:logs":"docker compose -f docker-compose.test.yml logs -f","test:integration":"vitest --config vitest.integration.config.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:ac93c5d5-25a0-4325-a62a-9cc8f1028e8a"}},"_resolved":"/tmp/5467bca68a858e95c557d0e164ef1646/spfn-core-0.1.0-alpha.54.tgz","_integrity":"sha512-MKoH62zORSMWG4e6yAJhsPlSjKrD7fBHireA70j8uOR8YcO1Qywl48bxNeBLClyU7iN2e0QxkfGPOHD3fY0YNQ==","repository":{"url":"git+https://github.com/spfn/spfn.git","type":"git","directory":"packages/core"},"_npmVersion":"11.6.2","description":"SPFN Framework Core - File-based routing, transactions, repository pattern","directories":{},"_nodeVersion":"20.19.5","dependencies":{"zod":"^4.1.11","hono":"^4.9.0","jiti":"^2.6.1","pino":"^10.0.0","chalk":"^5.6.2","dotenv":"^17.2.3","chokidar":"^4.0.3","postgres":"^3.4.0","micromatch":"^4.0.8","typescript":"^5.3.3","drizzle-orm":"^0.44.6","drizzle-typebox":"^0.1.0","@hono/node-server":"^1.0.0","@sinclair/typebox":"^0.34.0"},"publishConfig":{"tag":"alpha","access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"tsup":"^8.0.0","vitest":"^3.2.4","@types/node":"^20.11.0","drizzle-kit":"^0.31.5","@types/micromatch":"^4.0.9"},"optionalDependencies":{"ioredis":"^5.4.1"},"_npmOperationalInternal":{"tmp":"tmp/core_0.1.0-alpha.54_1761576221710_0.20160450196080992","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-alpha.55":{"name":"@spfn/core","version":"0.1.0-alpha.55","keywords":["spfn","nextjs","backend","framework","typescript","type-safe","api","rest-api","crud","database","orm","drizzle-orm","postgres","redis","hono","fullstack","server","scalable","auto-generated","file-based-routing","transaction","repository-pattern"],"author":{"name":"Ray Im","email":"rayim@inflike.com"},"license":"MIT","_id":"@spfn/core@0.1.0-alpha.55","maintainers":[{"name":"superfunction","email":"rayim@inflike.com"}],"homepage":"https://github.com/spfn/spfn/tree/main/packages/core#readme","bugs":{"url":"https://github.com/spfn/spfn/issues"},"dist":{"shasum":"9ecbbbc7bf5c7a94942d37c8bae4909cabedafc1","tarball":"https://registry.npmjs.org/@spfn/core/-/core-0.1.0-alpha.55.tgz","fileCount":35,"integrity":"sha512-WPL/ZjkHZv3sBRAsGFWj09pSl7Zg+IYDobKTKZ3sPeE8hyhsZUuQsDiSgaHbHHIVl6FE/7SpqR9rddWjr2XjIw==","signatures":[{"sig":"MEUCIQDVtu86AOOKD8qli/StFbU8O0iWIVXTfq+55B35Qsbt+wIgS5VyF8Xk1ECLzQHgvVrhkzXr9I6I1X5AHmcBPWf17CY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spfn%2fcore@0.1.0-alpha.55","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2099170},"main":"./dist/index.js","type":"module","_from":"file:spfn-core-0.1.0-alpha.55.tgz","types":"./dist/index.d.ts","engines":{"node":">=18.18.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./db":{"types":"./dist/db/index.d.ts","import":"./dist/db/index.js","require":"./dist/db/index.js"},"./env":{"types":"./dist/env/index.d.ts","import":"./dist/env/index.js","require":"./dist/env/index.js"},"./route":{"types":"./dist/route/index.d.ts","import":"./dist/route/index.js","require":"./dist/route/index.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","require":"./dist/client/index.js"},"./logger":{"types":"./dist/logger/index.d.ts","import":"./dist/logger/index.js","require":"./dist/logger/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./codegen":{"types":"./dist/codegen/index.d.ts","import":"./dist/codegen/index.js","require":"./dist/codegen/index.js"},"./generators":{"types":"./dist/codegen/generators/index.d.ts","import":"./dist/codegen/generators/index.js","require":"./dist/codegen/generators/index.js"},"./codegen/generators":{"types":"./dist/codegen/generators/index.d.ts","import":"./dist/codegen/generators/index.js","require":"./dist/codegen/generators/index.js"}},"scripts":{"dev":"tsup","test":"vitest","build":"tsup","test:db":"vitest src/db --config vitest.integration.config.ts","test:env":"vitest src/env","test:unit":"vitest --config vitest.unit.config.ts","test:cache":"vitest src/cache --config vitest.integration.config.ts","test:route":"vitest src/route","type-check":"tsc --noEmit","test:client":"vitest src/client","test:errors":"vitest src/errors","test:logger":"vitest src/logger","test:server":"vitest src/server --config vitest.integration.config.ts","test:codegen":"vitest src/codegen","docker:test:up":"docker compose -f docker-compose.test.yml up -d","test:middleware":"vitest src/middleware","docker:test:down":"docker compose -f docker-compose.test.yml down","docker:test:logs":"docker compose -f docker-compose.test.yml logs -f","test:integration":"vitest --config vitest.integration.config.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:ac93c5d5-25a0-4325-a62a-9cc8f1028e8a"}},"_resolved":"/tmp/4116e07d46de032782eb927b0e65b092/spfn-core-0.1.0-alpha.55.tgz","_integrity":"sha512-WPL/ZjkHZv3sBRAsGFWj09pSl7Zg+IYDobKTKZ3sPeE8hyhsZUuQsDiSgaHbHHIVl6FE/7SpqR9rddWjr2XjIw==","repository":{"url":"git+https://github.com/spfn/spfn.git","type":"git","directory":"packages/core"},"_npmVersion":"11.6.2","description":"SPFN Framework Core - File-based routing, transactions, repository pattern","directories":{},"_nodeVersion":"20.19.5","dependencies":{"zod":"^4.1.11","hono":"^4.9.0","jiti":"^2.6.1","pino":"^10.0.0","chalk":"^5.6.2","dotenv":"^17.2.3","chokidar":"^4.0.3","postgres":"^3.4.0","micromatch":"^4.0.8","typescript":"^5.3.3","drizzle-orm":"^0.44.6","drizzle-typebox":"^0.1.0","@hono/node-server":"^1.0.0","@sinclair/typebox":"^0.34.0"},"publishConfig":{"tag":"alpha","access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"tsup":"^8.0.0","vitest":"^3.2.4","@types/node":"^20.11.0","drizzle-kit":"^0.31.5","@types/micromatch":"^4.0.9"},"optionalDependencies":{"ioredis":"^5.4.1"},"_npmOperationalInternal":{"tmp":"tmp/core_0.1.0-alpha.55_1761628435947_0.6672544769514459","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-alpha.56":{"name":"@spfn/core","version":"0.1.0-alpha.56","keywords":["spfn","nextjs","backend","framework","typescript","type-safe","api","rest-api","crud","database","orm","drizzle-orm","postgres","redis","hono","fullstack","server","scalable","auto-generated","file-based-routing","transaction","repository-pattern"],"author":{"name":"Ray Im","email":"rayim@inflike.com"},"license":"MIT","_id":"@spfn/core@0.1.0-alpha.56","maintainers":[{"name":"superfunction","email":"rayim@inflike.com"}],"homepage":"https://github.com/spfn/spfn/tree/main/packages/core#readme","bugs":{"url":"https://github.com/spfn/spfn/issues"},"dist":{"shasum":"7ce2235fef44e34075e60d4d5046326014873d0f","tarball":"https://registry.npmjs.org/@spfn/core/-/core-0.1.0-alpha.56.tgz","fileCount":35,"integrity":"sha512-Yx9MYIPvWUkLkeeVACRCz+XySrSsx9GQevC655kYsnwjZeUq8GM1f75e5J+AOZmGFT1n8az6MamoTTuDsbrJ2g==","signatures":[{"sig":"MEUCIFPuPY2aGMOWeoDOJa1Jn25ANpLnFbOJHsoHy0mDt21QAiEAlCXKJz+oMnauZrOlXp0m1fZQ8w6M91njZHXjWiKn8Lk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spfn%2fcore@0.1.0-alpha.56","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2099902},"main":"./dist/index.js","type":"module","_from":"file:spfn-core-0.1.0-alpha.56.tgz","types":"./dist/index.d.ts","engines":{"node":">=18.18.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./db":{"types":"./dist/db/index.d.ts","import":"./dist/db/index.js","require":"./dist/db/index.js"},"./env":{"types":"./dist/env/index.d.ts","import":"./dist/env/index.js","require":"./dist/env/index.js"},"./route":{"types":"./dist/route/index.d.ts","import":"./dist/route/index.js","require":"./dist/route/index.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","require":"./dist/client/index.js"},"./logger":{"types":"./dist/logger/index.d.ts","import":"./dist/logger/index.js","require":"./dist/logger/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./codegen":{"types":"./dist/codegen/index.d.ts","import":"./dist/codegen/index.js","require":"./dist/codegen/index.js"},"./generators":{"types":"./dist/codegen/generators/index.d.ts","import":"./dist/codegen/generators/index.js","require":"./dist/codegen/generators/index.js"},"./codegen/generators":{"types":"./dist/codegen/generators/index.d.ts","import":"./dist/codegen/generators/index.js","require":"./dist/codegen/generators/index.js"}},"scripts":{"dev":"tsup","test":"vitest","build":"tsup","test:db":"vitest src/db --config vitest.integration.config.ts","test:env":"vitest src/env","test:unit":"vitest --config vitest.unit.config.ts","test:cache":"vitest src/cache --config vitest.integration.config.ts","test:route":"vitest src/route","type-check":"tsc --noEmit","test:client":"vitest src/client","test:errors":"vitest src/errors","test:logger":"vitest src/logger","test:server":"vitest src/server --config vitest.integration.config.ts","test:codegen":"vitest src/codegen","docker:test:up":"docker compose -f docker-compose.test.yml up -d","test:middleware":"vitest src/middleware","docker:test:down":"docker compose -f docker-compose.test.yml down","docker:test:logs":"docker compose -f docker-compose.test.yml logs -f","test:integration":"vitest --config vitest.integration.config.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:ac93c5d5-25a0-4325-a62a-9cc8f1028e8a"}},"_resolved":"/tmp/1c2f7d890d0675627e036b2b5f7f1731/spfn-core-0.1.0-alpha.56.tgz","_integrity":"sha512-Yx9MYIPvWUkLkeeVACRCz+XySrSsx9GQevC655kYsnwjZeUq8GM1f75e5J+AOZmGFT1n8az6MamoTTuDsbrJ2g==","repository":{"url":"git+https://github.com/spfn/spfn.git","type":"git","directory":"packages/core"},"_npmVersion":"11.6.2","description":"SPFN Framework Core - File-based routing, transactions, repository pattern","directories":{},"_nodeVersion":"20.19.5","dependencies":{"zod":"^4.1.11","hono":"^4.9.0","jiti":"^2.6.1","pino":"^10.0.0","chalk":"^5.6.2","dotenv":"^17.2.3","chokidar":"^4.0.3","postgres":"^3.4.0","micromatch":"^4.0.8","typescript":"^5.3.3","drizzle-orm":"^0.44.6","drizzle-typebox":"^0.1.0","@hono/node-server":"^1.0.0","@sinclair/typebox":"^0.34.0"},"publishConfig":{"tag":"alpha","access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"tsup":"^8.0.0","vitest":"^3.2.4","@types/node":"^20.11.0","drizzle-kit":"^0.31.5","@types/micromatch":"^4.0.9"},"optionalDependencies":{"ioredis":"^5.4.1"},"_npmOperationalInternal":{"tmp":"tmp/core_0.1.0-alpha.56_1761647006530_0.10446810058383549","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-alpha.60":{"name":"@spfn/core","version":"0.1.0-alpha.60","keywords":["spfn","nextjs","backend","framework","typescript","type-safe","api","rest-api","crud","database","orm","drizzle-orm","postgres","redis","hono","fullstack","server","scalable","auto-generated","file-based-routing","transaction","repository-pattern"],"author":{"name":"Ray Im","email":"rayim@inflike.com"},"license":"MIT","_id":"@spfn/core@0.1.0-alpha.60","maintainers":[{"name":"superfunction","email":"rayim@inflike.com"}],"homepage":"https://github.com/spfn/spfn/tree/main/packages/core#readme","bugs":{"url":"https://github.com/spfn/spfn/issues"},"dist":{"shasum":"054e20b29ef58679637c276ffb2bddc049cfbdd5","tarball":"https://registry.npmjs.org/@spfn/core/-/core-0.1.0-alpha.60.tgz","fileCount":35,"integrity":"sha512-lMvgBf9ItK/7JxiHchjMujrn4ZAG3QuKXSD2+LhtMqmEbd9qt/FoK00jICR5F/He7pzbw4k5Y2ehZIeXdMmHXQ==","signatures":[{"sig":"MEUCIQDoopUGeeP7HjTyOVbsIUYCqcjiqvvty+k8mbW0xpJAYQIgMyNR9OJbEnM80LrRdtpJMOOPDTjWVvVeezHdb90nYS4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spfn%2fcore@0.1.0-alpha.60","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2088069},"main":"./dist/index.js","type":"module","_from":"file:spfn-core-0.1.0-alpha.60.tgz","types":"./dist/index.d.ts","engines":{"node":">=18.18.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./db":{"types":"./dist/db/index.d.ts","import":"./dist/db/index.js","require":"./dist/db/index.js"},"./env":{"types":"./dist/env/index.d.ts","import":"./dist/env/index.js","require":"./dist/env/index.js"},"./route":{"types":"./dist/route/index.d.ts","import":"./dist/route/index.js","require":"./dist/route/index.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","require":"./dist/client/index.js"},"./logger":{"types":"./dist/logger/index.d.ts","import":"./dist/logger/index.js","require":"./dist/logger/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./codegen":{"types":"./dist/codegen/index.d.ts","import":"./dist/codegen/index.js","require":"./dist/codegen/index.js"},"./generators":{"types":"./dist/codegen/generators/index.d.ts","import":"./dist/codegen/generators/index.js","require":"./dist/codegen/generators/index.js"},"./codegen/generators":{"types":"./dist/codegen/generators/index.d.ts","import":"./dist/codegen/generators/index.js","require":"./dist/codegen/generators/index.js"}},"scripts":{"dev":"tsup","test":"vitest","build":"tsup","test:db":"vitest src/db --config vitest.integration.config.ts","test:env":"vitest src/env","test:unit":"vitest --config vitest.unit.config.ts","test:cache":"vitest src/cache --config vitest.integration.config.ts","test:route":"vitest src/route","type-check":"tsc --noEmit","test:client":"vitest src/client","test:errors":"vitest src/errors","test:logger":"vitest src/logger","test:server":"vitest src/server --config vitest.integration.config.ts","test:codegen":"vitest src/codegen","docker:test:up":"docker compose -f docker-compose.test.yml up -d","test:middleware":"vitest src/middleware","docker:test:down":"docker compose -f docker-compose.test.yml down","docker:test:logs":"docker compose -f docker-compose.test.yml logs -f","test:integration":"vitest --config vitest.integration.config.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:ac93c5d5-25a0-4325-a62a-9cc8f1028e8a"}},"_resolved":"/tmp/d523f1f5d58a53944f9728c5ed57bb11/spfn-core-0.1.0-alpha.60.tgz","_integrity":"sha512-lMvgBf9ItK/7JxiHchjMujrn4ZAG3QuKXSD2+LhtMqmEbd9qt/FoK00jICR5F/He7pzbw4k5Y2ehZIeXdMmHXQ==","repository":{"url":"git+https://github.com/spfn/spfn.git","type":"git","directory":"packages/core"},"_npmVersion":"11.6.2","description":"SPFN Framework Core - File-based routing, transactions, repository pattern","directories":{},"_nodeVersion":"20.19.5","dependencies":{"zod":"^4.1.11","hono":"^4.9.0","jiti":"^2.6.1","pino":"^10.0.0","chalk":"^5.6.2","dotenv":"^17.2.3","chokidar":"^4.0.3","postgres":"^3.4.0","micromatch":"^4.0.8","typescript":"^5.3.3","drizzle-orm":"^0.44.6","drizzle-typebox":"^0.1.0","@hono/node-server":"^1.0.0","@sinclair/typebox":"^0.34.0"},"publishConfig":{"tag":"alpha","access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"tsup":"^8.0.0","vitest":"^3.2.4","@types/node":"^20.11.0","drizzle-kit":"^0.31.5","@types/micromatch":"^4.0.9"},"optionalDependencies":{"ioredis":"^5.4.1"},"_npmOperationalInternal":{"tmp":"tmp/core_0.1.0-alpha.60_1761741292708_0.19195666494176322","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-alpha.61":{"name":"@spfn/core","version":"0.1.0-alpha.61","keywords":["spfn","nextjs","backend","framework","typescript","type-safe","api","rest-api","crud","database","orm","drizzle-orm","postgres","redis","hono","fullstack","server","scalable","auto-generated","file-based-routing","transaction","repository-pattern"],"author":{"name":"Ray Im","email":"rayim@inflike.com"},"license":"MIT","_id":"@spfn/core@0.1.0-alpha.61","maintainers":[{"name":"superfunction","email":"rayim@inflike.com"}],"homepage":"https://github.com/spfn/spfn/tree/main/packages/core#readme","bugs":{"url":"https://github.com/spfn/spfn/issues"},"dist":{"shasum":"66479b3486b48d220fcd1c9354da2d0c9d09e29b","tarball":"https://registry.npmjs.org/@spfn/core/-/core-0.1.0-alpha.61.tgz","fileCount":35,"integrity":"sha512-+UESlWBYT0/71NRv72/KyQwfTGKobYGnbkq/4W5UkhBDVR7ZK68mTYmk80ZW5F2SOMIxQ0rlcrfFsHp5IJIcmw==","signatures":[{"sig":"MEUCIGHdyVB/+oOnIWT7rzfZTgjQg0qKeCurQewHPcx6GnVXAiEA7++N2et3HCMZ4SQGahQ5aaFXZ+VuDde8iHyEiv1V8KQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spfn%2fcore@0.1.0-alpha.61","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2081528},"main":"./dist/index.js","type":"module","_from":"file:spfn-core-0.1.0-alpha.61.tgz","types":"./dist/index.d.ts","engines":{"node":">=18.18.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./db":{"types":"./dist/db/index.d.ts","import":"./dist/db/index.js","require":"./dist/db/index.js"},"./env":{"types":"./dist/env/index.d.ts","import":"./dist/env/index.js","require":"./dist/env/index.js"},"./route":{"types":"./dist/route/index.d.ts","import":"./dist/route/index.js","require":"./dist/route/index.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","require":"./dist/client/index.js"},"./logger":{"types":"./dist/logger/index.d.ts","import":"./dist/logger/index.js","require":"./dist/logger/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./codegen":{"types":"./dist/codegen/index.d.ts","import":"./dist/codegen/index.js","require":"./dist/codegen/index.js"},"./generators":{"types":"./dist/codegen/generators/index.d.ts","import":"./dist/codegen/generators/index.js","require":"./dist/codegen/generators/index.js"},"./codegen/generators":{"types":"./dist/codegen/generators/index.d.ts","import":"./dist/codegen/generators/index.js","require":"./dist/codegen/generators/index.js"}},"scripts":{"dev":"tsup","test":"vitest","build":"tsup","test:db":"vitest src/db --config vitest.integration.config.ts","test:env":"vitest src/env","test:unit":"vitest --config vitest.unit.config.ts","test:cache":"vitest src/cache --config vitest.integration.config.ts","test:route":"vitest src/route","type-check":"tsc --noEmit","test:client":"vitest src/client","test:errors":"vitest src/errors","test:logger":"vitest src/logger","test:server":"vitest src/server --config vitest.integration.config.ts","test:codegen":"vitest src/codegen","docker:test:up":"docker compose -f docker-compose.test.yml up -d","test:middleware":"vitest src/middleware","docker:test:down":"docker compose -f docker-compose.test.yml down","docker:test:logs":"docker compose -f docker-compose.test.yml logs -f","test:integration":"vitest --config vitest.integration.config.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:ac93c5d5-25a0-4325-a62a-9cc8f1028e8a"}},"_resolved":"/tmp/a07b42950b266369c8b4a0000c6e9c63/spfn-core-0.1.0-alpha.61.tgz","_integrity":"sha512-+UESlWBYT0/71NRv72/KyQwfTGKobYGnbkq/4W5UkhBDVR7ZK68mTYmk80ZW5F2SOMIxQ0rlcrfFsHp5IJIcmw==","repository":{"url":"git+https://github.com/spfn/spfn.git","type":"git","directory":"packages/core"},"_npmVersion":"11.6.2","description":"SPFN Framework Core - File-based routing, transactions, repository pattern","directories":{},"_nodeVersion":"20.19.5","dependencies":{"zod":"^4.1.11","hono":"^4.9.0","jiti":"^2.6.1","pino":"^10.0.0","chalk":"^5.6.2","dotenv":"^17.2.3","chokidar":"^4.0.3","postgres":"^3.4.0","micromatch":"^4.0.8","typescript":"^5.3.3","drizzle-orm":"^0.44.6","drizzle-typebox":"^0.1.0","@hono/node-server":"^1.0.0","@sinclair/typebox":"^0.34.0"},"publishConfig":{"tag":"alpha","access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"tsup":"^8.0.0","vitest":"^3.2.4","@types/node":"^20.11.0","drizzle-kit":"^0.31.5","@types/micromatch":"^4.0.9"},"optionalDependencies":{"ioredis":"^5.4.1"},"_npmOperationalInternal":{"tmp":"tmp/core_0.1.0-alpha.61_1761822557620_0.5204292209143193","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-alpha.62":{"name":"@spfn/core","version":"0.1.0-alpha.62","keywords":["spfn","nextjs","backend","framework","typescript","type-safe","api","rest-api","crud","database","orm","drizzle-orm","postgres","redis","hono","fullstack","server","scalable","auto-generated","file-based-routing","transaction","repository-pattern"],"author":{"name":"Ray Im","email":"rayim@inflike.com"},"license":"MIT","_id":"@spfn/core@0.1.0-alpha.62","maintainers":[{"name":"superfunction","email":"rayim@inflike.com"}],"homepage":"https://github.com/spfn/spfn/tree/main/packages/core#readme","bugs":{"url":"https://github.com/spfn/spfn/issues"},"dist":{"shasum":"3aaa5b12d5dabe41433eaafa558beb0ca9606e3a","tarball":"https://registry.npmjs.org/@spfn/core/-/core-0.1.0-alpha.62.tgz","fileCount":35,"integrity":"sha512-IhQqsAduzp0gB+/fqV4fiQ3aAYjvitYMgvysDrnfrTsCQLP9bc/qSVfjRxX/OcmJTG+5LlxDExsN5jmMZxAWIg==","signatures":[{"sig":"MEYCIQD3hbt+M3zYsWQMeTw3EWOyyqCnPF8+zmIOqPdQcnlvXgIhAIo9NX5EHwq+BMNmKD6IEKd1f2pZmRaXofC+7ejzhYtu","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spfn%2fcore@0.1.0-alpha.62","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2084972},"main":"./dist/index.js","type":"module","_from":"file:spfn-core-0.1.0-alpha.62.tgz","types":"./dist/index.d.ts","engines":{"node":">=18.18.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./db":{"types":"./dist/db/index.d.ts","import":"./dist/db/index.js","require":"./dist/db/index.js"},"./env":{"types":"./dist/env/index.d.ts","import":"./dist/env/index.js","require":"./dist/env/index.js"},"./route":{"types":"./dist/route/index.d.ts","import":"./dist/route/index.js","require":"./dist/route/index.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","require":"./dist/client/index.js"},"./logger":{"types":"./dist/logger/index.d.ts","import":"./dist/logger/index.js","require":"./dist/logger/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./codegen":{"types":"./dist/codegen/index.d.ts","import":"./dist/codegen/index.js","require":"./dist/codegen/index.js"},"./generators":{"types":"./dist/codegen/generators/index.d.ts","import":"./dist/codegen/generators/index.js","require":"./dist/codegen/generators/index.js"},"./codegen/generators":{"types":"./dist/codegen/generators/index.d.ts","import":"./dist/codegen/generators/index.js","require":"./dist/codegen/generators/index.js"}},"scripts":{"dev":"tsup","test":"vitest","build":"tsup","test:db":"vitest src/db --config vitest.integration.config.ts","test:env":"vitest src/env","test:unit":"vitest --config vitest.unit.config.ts","test:cache":"vitest src/cache --config vitest.integration.config.ts","test:route":"vitest src/route","type-check":"tsc --noEmit","test:client":"vitest src/client","test:errors":"vitest src/errors","test:logger":"vitest src/logger","test:server":"vitest src/server --config vitest.integration.config.ts","test:codegen":"vitest src/codegen","docker:test:up":"docker compose -f docker-compose.test.yml up -d","test:middleware":"vitest src/middleware","docker:test:down":"docker compose -f docker-compose.test.yml down","docker:test:logs":"docker compose -f docker-compose.test.yml logs -f","test:integration":"vitest --config vitest.integration.config.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:ac93c5d5-25a0-4325-a62a-9cc8f1028e8a"}},"_resolved":"/tmp/b60734fcdc4d9d518b594f18d5b88212/spfn-core-0.1.0-alpha.62.tgz","_integrity":"sha512-IhQqsAduzp0gB+/fqV4fiQ3aAYjvitYMgvysDrnfrTsCQLP9bc/qSVfjRxX/OcmJTG+5LlxDExsN5jmMZxAWIg==","repository":{"url":"git+https://github.com/spfn/spfn.git","type":"git","directory":"packages/core"},"_npmVersion":"11.6.2","description":"SPFN Framework Core - File-based routing, transactions, repository pattern","directories":{},"_nodeVersion":"20.19.5","dependencies":{"zod":"^4.1.11","hono":"^4.9.0","jiti":"^2.6.1","pino":"^10.0.0","chalk":"^5.6.2","dotenv":"^17.2.3","chokidar":"^4.0.3","postgres":"^3.4.0","micromatch":"^4.0.8","typescript":"^5.3.3","drizzle-orm":"^0.44.6","drizzle-typebox":"^0.1.0","@hono/node-server":"^1.0.0","@sinclair/typebox":"^0.34.0"},"publishConfig":{"tag":"alpha","access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"tsup":"^8.0.0","vitest":"^3.2.4","@types/node":"^20.11.0","drizzle-kit":"^0.31.5","@types/micromatch":"^4.0.9"},"optionalDependencies":{"ioredis":"^5.4.1"},"_npmOperationalInternal":{"tmp":"tmp/core_0.1.0-alpha.62_1761826093395_0.9528661125084239","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-alpha.63":{"name":"@spfn/core","version":"0.1.0-alpha.63","keywords":["spfn","nextjs","backend","framework","typescript","type-safe","api","rest-api","crud","database","orm","drizzle-orm","postgres","redis","hono","fullstack","server","scalable","auto-generated","file-based-routing","transaction","repository-pattern"],"author":{"name":"Ray Im","email":"rayim@inflike.com"},"license":"MIT","_id":"@spfn/core@0.1.0-alpha.63","maintainers":[{"name":"superfunction","email":"rayim@inflike.com"}],"homepage":"https://github.com/spfn/spfn/tree/main/packages/core#readme","bugs":{"url":"https://github.com/spfn/spfn/issues"},"dist":{"shasum":"5848d9cd1309ff63b9e35f8cfb84feedb0533b41","tarball":"https://registry.npmjs.org/@spfn/core/-/core-0.1.0-alpha.63.tgz","fileCount":35,"integrity":"sha512-y3+TpPlujh+cXKA0arkcZPvpqsW04iSm7IMQ1pBDzusuIjHG+o0lj9SY4ylLiPcMr4fyh+QckybVMCMWkcjFIA==","signatures":[{"sig":"MEQCIEmx54k5JLkTvOFVruuJCev6G9hGZgOnmMAKqXPsQdDNAiBWzAzJ4q0J39zKS27Q3gm7FnLel450uEH5bwekGdaH+w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spfn%2fcore@0.1.0-alpha.63","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2111032},"main":"./dist/index.js","type":"module","_from":"file:spfn-core-0.1.0-alpha.63.tgz","types":"./dist/index.d.ts","engines":{"node":">=18.18.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./db":{"types":"./dist/db/index.d.ts","import":"./dist/db/index.js","require":"./dist/db/index.js"},"./env":{"types":"./dist/env/index.d.ts","import":"./dist/env/index.js","require":"./dist/env/index.js"},"./route":{"types":"./dist/route/index.d.ts","import":"./dist/route/index.js","require":"./dist/route/index.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","require":"./dist/client/index.js"},"./logger":{"types":"./dist/logger/index.d.ts","import":"./dist/logger/index.js","require":"./dist/logger/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./codegen":{"types":"./dist/codegen/index.d.ts","import":"./dist/codegen/index.js","require":"./dist/codegen/index.js"},"./generators":{"types":"./dist/codegen/generators/index.d.ts","import":"./dist/codegen/generators/index.js","require":"./dist/codegen/generators/index.js"},"./codegen/generators":{"types":"./dist/codegen/generators/index.d.ts","import":"./dist/codegen/generators/index.js","require":"./dist/codegen/generators/index.js"}},"scripts":{"dev":"tsup","test":"vitest","build":"tsup","test:db":"vitest src/db --config vitest.integration.config.ts","test:env":"vitest src/env","test:unit":"vitest --config vitest.unit.config.ts","test:cache":"vitest src/cache --config vitest.integration.config.ts","test:route":"vitest src/route","type-check":"tsc --noEmit","test:client":"vitest src/client","test:errors":"vitest src/errors","test:logger":"vitest src/logger","test:server":"vitest src/server --config vitest.integration.config.ts","test:codegen":"vitest src/codegen","docker:test:up":"docker compose -f docker-compose.test.yml up -d","test:middleware":"vitest src/middleware","docker:test:down":"docker compose -f docker-compose.test.yml down","docker:test:logs":"docker compose -f docker-compose.test.yml logs -f","test:integration":"vitest --config vitest.integration.config.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:ac93c5d5-25a0-4325-a62a-9cc8f1028e8a"}},"_resolved":"/tmp/d7c38bda43b74155150a5442174d919d/spfn-core-0.1.0-alpha.63.tgz","_integrity":"sha512-y3+TpPlujh+cXKA0arkcZPvpqsW04iSm7IMQ1pBDzusuIjHG+o0lj9SY4ylLiPcMr4fyh+QckybVMCMWkcjFIA==","repository":{"url":"git+https://github.com/spfn/spfn.git","type":"git","directory":"packages/core"},"_npmVersion":"11.6.2","description":"SPFN Framework Core - File-based routing, transactions, repository pattern","directories":{},"_nodeVersion":"20.19.5","dependencies":{"zod":"^4.1.11","hono":"^4.9.0","jiti":"^2.6.1","pino":"^10.0.0","chalk":"^5.6.2","dotenv":"^17.2.3","chokidar":"^4.0.3","postgres":"^3.4.0","micromatch":"^4.0.8","typescript":"^5.3.3","drizzle-orm":"^0.44.6","drizzle-typebox":"^0.1.0","@hono/node-server":"^1.0.0","@sinclair/typebox":"^0.34.0"},"publishConfig":{"tag":"alpha","access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"tsup":"^8.0.0","vitest":"^3.2.4","@types/node":"^20.11.0","drizzle-kit":"^0.31.5","@types/micromatch":"^4.0.9"},"optionalDependencies":{"ioredis":"^5.4.1"},"_npmOperationalInternal":{"tmp":"tmp/core_0.1.0-alpha.63_1761923647106_0.4960459028977897","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-alpha.64":{"name":"@spfn/core","version":"0.1.0-alpha.64","keywords":["spfn","nextjs","backend","framework","typescript","type-safe","api","rest-api","crud","database","orm","drizzle-orm","postgres","redis","hono","fullstack","server","scalable","auto-generated","file-based-routing","transaction","repository-pattern"],"author":{"name":"Ray Im","email":"rayim@inflike.com"},"license":"MIT","_id":"@spfn/core@0.1.0-alpha.64","maintainers":[{"name":"superfunction","email":"rayim@inflike.com"}],"homepage":"https://github.com/spfn/spfn/tree/main/packages/core#readme","bugs":{"url":"https://github.com/spfn/spfn/issues"},"dist":{"shasum":"8a2d889c497c69af558b646f4fc7609d3757b00c","tarball":"https://registry.npmjs.org/@spfn/core/-/core-0.1.0-alpha.64.tgz","fileCount":35,"integrity":"sha512-uwwg8f6QwnGEb8kGi5wYlAKYd3t5xscdoUGXfag2RN4WiXgHEaRazQaGwQNRzmM5O3ES0VyrQuTpLExOLLc95A==","signatures":[{"sig":"MEQCIEDvFcEWQyz80Yiu2hdm/uZQ6gGnWrHd5rLveizSjlN2AiBOUG//JDtVTGztQOqv9fCx7t/xdYkSS4QCc6vUN0sRNQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spfn%2fcore@0.1.0-alpha.64","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2084824},"main":"./dist/index.js","type":"module","_from":"file:spfn-core-0.1.0-alpha.64.tgz","types":"./dist/index.d.ts","engines":{"node":">=18.18.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./db":{"types":"./dist/db/index.d.ts","import":"./dist/db/index.js","require":"./dist/db/index.js"},"./env":{"types":"./dist/env/index.d.ts","import":"./dist/env/index.js","require":"./dist/env/index.js"},"./route":{"types":"./dist/route/index.d.ts","import":"./dist/route/index.js","require":"./dist/route/index.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","require":"./dist/client/index.js"},"./logger":{"types":"./dist/logger/index.d.ts","import":"./dist/logger/index.js","require":"./dist/logger/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./codegen":{"types":"./dist/codegen/index.d.ts","import":"./dist/codegen/index.js","require":"./dist/codegen/index.js"},"./generators":{"types":"./dist/codegen/generators/index.d.ts","import":"./dist/codegen/generators/index.js","require":"./dist/codegen/generators/index.js"},"./codegen/generators":{"types":"./dist/codegen/generators/index.d.ts","import":"./dist/codegen/generators/index.js","require":"./dist/codegen/generators/index.js"}},"scripts":{"dev":"tsup","test":"vitest","build":"tsup","test:db":"vitest src/db --config vitest.integration.config.ts","test:env":"vitest src/env","test:unit":"vitest --config vitest.unit.config.ts","test:cache":"vitest src/cache --config vitest.integration.config.ts","test:route":"vitest src/route","type-check":"tsc --noEmit","test:client":"vitest src/client","test:errors":"vitest src/errors","test:logger":"vitest src/logger","test:server":"vitest src/server --config vitest.integration.config.ts","test:codegen":"vitest src/codegen","docker:test:up":"docker compose -f docker-compose.test.yml up -d","test:middleware":"vitest src/middleware","docker:test:down":"docker compose -f docker-compose.test.yml down","docker:test:logs":"docker compose -f docker-compose.test.yml logs -f","test:integration":"vitest --config vitest.integration.config.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:ac93c5d5-25a0-4325-a62a-9cc8f1028e8a"}},"_resolved":"/tmp/c82dc5bca113749cab705d1e9d39e202/spfn-core-0.1.0-alpha.64.tgz","_integrity":"sha512-uwwg8f6QwnGEb8kGi5wYlAKYd3t5xscdoUGXfag2RN4WiXgHEaRazQaGwQNRzmM5O3ES0VyrQuTpLExOLLc95A==","repository":{"url":"git+https://github.com/spfn/spfn.git","type":"git","directory":"packages/core"},"_npmVersion":"11.6.2","description":"SPFN Framework Core - File-based routing, transactions, repository pattern","directories":{},"_nodeVersion":"20.19.5","dependencies":{"zod":"^4.1.11","hono":"^4.9.0","jiti":"^2.6.1","pino":"^10.0.0","chalk":"^5.6.2","dotenv":"^17.2.3","chokidar":"^4.0.3","postgres":"^3.4.0","micromatch":"^4.0.8","typescript":"^5.3.3","drizzle-orm":"^0.44.6","drizzle-typebox":"^0.1.0","@hono/node-server":"^1.0.0","@sinclair/typebox":"^0.34.0"},"publishConfig":{"tag":"alpha","access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"tsup":"^8.0.0","vitest":"^3.2.4","@types/node":"^20.11.0","drizzle-kit":"^0.31.5","@types/micromatch":"^4.0.9"},"optionalDependencies":{"ioredis":"^5.4.1"},"_npmOperationalInternal":{"tmp":"tmp/core_0.1.0-alpha.64_1761957868293_0.6072942442449927","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-alpha.65":{"name":"@spfn/core","version":"0.1.0-alpha.65","keywords":["spfn","nextjs","backend","framework","typescript","type-safe","api","rest-api","crud","database","orm","drizzle-orm","postgres","redis","hono","fullstack","server","scalable","auto-generated","file-based-routing","transaction","repository-pattern"],"author":{"name":"Ray Im","email":"rayim@inflike.com"},"license":"MIT","_id":"@spfn/core@0.1.0-alpha.65","maintainers":[{"name":"superfunction","email":"rayim@inflike.com"}],"homepage":"https://github.com/spfn/spfn/tree/main/packages/core#readme","bugs":{"url":"https://github.com/spfn/spfn/issues"},"dist":{"shasum":"8fa0e1410458d13b26b20200e4afa1ba7a8f34b7","tarball":"https://registry.npmjs.org/@spfn/core/-/core-0.1.0-alpha.65.tgz","fileCount":44,"integrity":"sha512-A3xxdAyDohvKdfxZjpzYWbXXDoJADjgK9sVCHYEYN6SIfKgpjKMMGo6qLrWLFP3nS40QFkR8Ek1W59mhrzEmsA==","signatures":[{"sig":"MEQCIExcELVpkZOLWd+HFS9iJv46raJXir3X74whzEKd44pxAiALRKmROpMyxKzEZUbDe7PwHPW1PwzjFqGsRFqj1ZPJMQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spfn%2fcore@0.1.0-alpha.65","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2455999},"main":"./dist/index.js","type":"module","_from":"file:spfn-core-0.1.0-alpha.65.tgz","types":"./dist/index.d.ts","engines":{"node":">=18.18.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./db":{"types":"./dist/db/index.d.ts","import":"./dist/db/index.js","require":"./dist/db/index.js"},"./env":{"types":"./dist/env/index.d.ts","import":"./dist/env/index.js","require":"./dist/env/index.js"},"./cache":{"types":"./dist/cache/index.d.ts","import":"./dist/cache/index.js","require":"./dist/cache/index.js"},"./route":{"types":"./dist/route/index.d.ts","import":"./dist/route/index.js","require":"./dist/route/index.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","require":"./dist/client/index.js"},"./errors":{"types":"./dist/errors/index.d.ts","import":"./dist/errors/index.js","require":"./dist/errors/index.js"},"./logger":{"types":"./dist/logger/index.d.ts","import":"./dist/logger/index.js","require":"./dist/logger/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./codegen":{"types":"./dist/codegen/index.d.ts","import":"./dist/codegen/index.js","require":"./dist/codegen/index.js"},"./generators":{"types":"./dist/codegen/generators/index.d.ts","import":"./dist/codegen/generators/index.js","require":"./dist/codegen/generators/index.js"},"./middleware":{"types":"./dist/middleware/index.d.ts","import":"./dist/middleware/index.js","require":"./dist/middleware/index.js"},"./codegen/generators":{"types":"./dist/codegen/generators/index.d.ts","import":"./dist/codegen/generators/index.js","require":"./dist/codegen/generators/index.js"}},"scripts":{"dev":"tsup","test":"vitest","build":"tsup","test:db":"vitest src/db --config vitest.integration.config.ts","test:env":"vitest src/env","test:unit":"vitest --config vitest.unit.config.ts","test:cache":"vitest src/cache --config vitest.integration.config.ts","test:route":"vitest src/route","type-check":"tsc --noEmit","test:client":"vitest src/client","test:errors":"vitest src/errors","test:logger":"vitest src/logger","test:server":"vitest src/server --config vitest.integration.config.ts","test:codegen":"vitest src/codegen","test:coverage":"vitest run --config vitest.unit.config.ts --coverage","docker:test:up":"docker compose -f docker-compose.test.yml up -d","test:middleware":"vitest src/middleware","docker:test:down":"docker compose -f docker-compose.test.yml down","docker:test:logs":"docker compose -f docker-compose.test.yml logs -f","test:integration":"vitest --config vitest.integration.config.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:ac93c5d5-25a0-4325-a62a-9cc8f1028e8a"}},"_resolved":"/tmp/cea7e09b1c48bc91cf55deda7362e65b/spfn-core-0.1.0-alpha.65.tgz","_integrity":"sha512-A3xxdAyDohvKdfxZjpzYWbXXDoJADjgK9sVCHYEYN6SIfKgpjKMMGo6qLrWLFP3nS40QFkR8Ek1W59mhrzEmsA==","repository":{"url":"git+https://github.com/spfn/spfn.git","type":"git","directory":"packages/core"},"_npmVersion":"11.6.2","description":"SPFN Framework Core - File-based routing, transactions, repository pattern","directories":{},"_nodeVersion":"20.19.5","dependencies":{"zod":"^4.1.11","hono":"^4.9.0","jiti":"^2.6.1","pino":"^10.0.0","chalk":"^5.6.2","dotenv":"^17.2.3","chokidar":"^4.0.3","postgres":"^3.4.0","micromatch":"^4.0.8","typescript":"^5.3.3","drizzle-orm":"^0.44.6","drizzle-typebox":"^0.1.0","@hono/node-server":"^1.0.0","@sinclair/typebox":"^0.34.0"},"publishConfig":{"tag":"alpha","access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"tsup":"^8.0.0","vitest":"^4.0.6","@types/node":"^20.11.0","drizzle-kit":"^0.31.5","@types/micromatch":"^4.0.9","@vitest/coverage-v8":"^4.0.6"},"optionalDependencies":{"ioredis":"^5.4.1"},"_npmOperationalInternal":{"tmp":"tmp/core_0.1.0-alpha.65_1762051902842_0.23671280118591742","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-alpha.68":{"name":"@spfn/core","version":"0.1.0-alpha.68","keywords":["spfn","nextjs","backend","framework","typescript","type-safe","api","rest-api","crud","database","orm","drizzle-orm","postgres","redis","hono","fullstack","server","scalable","auto-generated","file-based-routing","transaction","repository-pattern"],"author":{"name":"Ray Im","email":"rayim@inflike.com"},"license":"MIT","_id":"@spfn/core@0.1.0-alpha.68","maintainers":[{"name":"superfunction","email":"rayim@inflike.com"}],"homepage":"https://github.com/spfn/spfn/tree/main/packages/core#readme","bugs":{"url":"https://github.com/spfn/spfn/issues"},"dist":{"shasum":"df9758afe92dada1ad0ae8175272b88e968f1f77","tarball":"https://registry.npmjs.org/@spfn/core/-/core-0.1.0-alpha.68.tgz","fileCount":44,"integrity":"sha512-1jrNziThavTisjzbmBLsVAqIewfp7aWxqNyIdrAxIrDzHj9lDZrFSmSYAPkE/5d9kYtZv2v/v4mS6nA6AxcQSA==","signatures":[{"sig":"MEUCIQChppvaWK8rauh4ZA4m+dt7/iXwlh9ChDDj63laUIG6bQIgPhWKi2rAZ1wUDKQxfe51YNZXyZRpWh4XfzaTdGWrauw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spfn%2fcore@0.1.0-alpha.68","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2449876},"main":"./dist/index.js","type":"module","_from":"file:spfn-core-0.1.0-alpha.68.tgz","types":"./dist/index.d.ts","engines":{"node":">=18.18.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./db":{"types":"./dist/db/index.d.ts","import":"./dist/db/index.js","require":"./dist/db/index.js"},"./env":{"types":"./dist/env/index.d.ts","import":"./dist/env/index.js","require":"./dist/env/index.js"},"./cache":{"types":"./dist/cache/index.d.ts","import":"./dist/cache/index.js","require":"./dist/cache/index.js"},"./route":{"types":"./dist/route/index.d.ts","import":"./dist/route/index.js","require":"./dist/route/index.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","require":"./dist/client/index.js"},"./errors":{"types":"./dist/errors/index.d.ts","import":"./dist/errors/index.js","require":"./dist/errors/index.js"},"./logger":{"types":"./dist/logger/index.d.ts","import":"./dist/logger/index.js","require":"./dist/logger/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./codegen":{"types":"./dist/codegen/index.d.ts","import":"./dist/codegen/index.js","require":"./dist/codegen/index.js"},"./generators":{"types":"./dist/codegen/generators/index.d.ts","import":"./dist/codegen/generators/index.js","require":"./dist/codegen/generators/index.js"},"./middleware":{"types":"./dist/middleware/index.d.ts","import":"./dist/middleware/index.js","require":"./dist/middleware/index.js"},"./codegen/generators":{"types":"./dist/codegen/generators/index.d.ts","import":"./dist/codegen/generators/index.js","require":"./dist/codegen/generators/index.js"}},"scripts":{"dev":"tsup","test":"vitest","build":"tsup","test:db":"vitest src/db --config vitest.integration.config.ts","test:env":"vitest src/env","test:unit":"vitest --config vitest.unit.config.ts","test:cache":"vitest src/cache --config vitest.integration.config.ts","test:route":"vitest src/route","type-check":"tsc --noEmit","test:client":"vitest src/client","test:errors":"vitest src/errors","test:logger":"vitest src/logger","test:server":"vitest src/server --config vitest.integration.config.ts","test:codegen":"vitest src/codegen","test:coverage":"vitest run --config vitest.unit.config.ts --coverage","docker:test:up":"docker compose -f docker-compose.test.yml up -d","test:middleware":"vitest src/middleware","docker:test:down":"docker compose -f docker-compose.test.yml down","docker:test:logs":"docker compose -f docker-compose.test.yml logs -f","test:integration":"vitest --config vitest.integration.config.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:ac93c5d5-25a0-4325-a62a-9cc8f1028e8a"}},"_resolved":"/tmp/33cefdb67c79254e7c66cfaf08e9a45f/spfn-core-0.1.0-alpha.68.tgz","_integrity":"sha512-1jrNziThavTisjzbmBLsVAqIewfp7aWxqNyIdrAxIrDzHj9lDZrFSmSYAPkE/5d9kYtZv2v/v4mS6nA6AxcQSA==","repository":{"url":"git+https://github.com/spfn/spfn.git","type":"git","directory":"packages/core"},"_npmVersion":"11.6.2","description":"SPFN Framework Core - File-based routing, transactions, repository pattern","directories":{},"_nodeVersion":"20.19.5","dependencies":{"zod":"^4.1.11","hono":"^4.9.0","jiti":"^2.6.1","pino":"^10.0.0","chalk":"^5.6.2","dotenv":"^17.2.3","chokidar":"^4.0.3","postgres":"^3.4.0","micromatch":"^4.0.8","typescript":"^5.3.3","drizzle-orm":"^0.44.6","drizzle-typebox":"^0.1.0","@hono/node-server":"^1.0.0","@sinclair/typebox":"^0.34.0"},"publishConfig":{"tag":"alpha","access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"tsup":"^8.0.0","vitest":"^4.0.6","@types/node":"^20.11.0","drizzle-kit":"^0.31.5","@types/micromatch":"^4.0.9","@vitest/coverage-v8":"^4.0.6"},"optionalDependencies":{"ioredis":"^5.4.1"},"_npmOperationalInternal":{"tmp":"tmp/core_0.1.0-alpha.68_1762083375382_0.3569382451459977","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-alpha.72":{"name":"@spfn/core","version":"0.1.0-alpha.72","keywords":["spfn","nextjs","backend","framework","typescript","type-safe","api","rest-api","crud","database","orm","drizzle-orm","postgres","redis","hono","fullstack","server","scalable","auto-generated","file-based-routing","transaction","repository-pattern"],"author":{"name":"Ray Im","email":"rayim@inflike.com"},"license":"MIT","_id":"@spfn/core@0.1.0-alpha.72","maintainers":[{"name":"superfunction","email":"rayim@inflike.com"}],"homepage":"https://github.com/spfn/spfn/tree/main/packages/core#readme","bugs":{"url":"https://github.com/spfn/spfn/issues"},"dist":{"shasum":"ed2e3631acc8fa70c6f7790fffa2564d9039cb43","tarball":"https://registry.npmjs.org/@spfn/core/-/core-0.1.0-alpha.72.tgz","fileCount":44,"integrity":"sha512-NcqNw/QSd/ywEow/UJvjjgJt9yhWLXjnAE1Ko3qXGBRhfNwcv/n6UmHi5PukFkhqbHHQQV9qdWAkT8MC6cNaNA==","signatures":[{"sig":"MEUCIAf3Un76MLZx9s2B9FXL79hVkNQbg5Iyl3qCO6adt21HAiEAjjeFZODCxeg7pdOij1vzEWayXzBT43Z7vso1MEpgLjk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spfn%2fcore@0.1.0-alpha.72","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2460196},"main":"./dist/index.js","type":"module","_from":"file:spfn-core-0.1.0-alpha.72.tgz","types":"./dist/index.d.ts","engines":{"node":">=18.18.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./db":{"types":"./dist/db/index.d.ts","import":"./dist/db/index.js","require":"./dist/db/index.js"},"./env":{"types":"./dist/env/index.d.ts","import":"./dist/env/index.js","require":"./dist/env/index.js"},"./cache":{"types":"./dist/cache/index.d.ts","import":"./dist/cache/index.js","require":"./dist/cache/index.js"},"./route":{"types":"./dist/route/index.d.ts","import":"./dist/route/index.js","require":"./dist/route/index.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","require":"./dist/client/index.js"},"./errors":{"types":"./dist/errors/index.d.ts","import":"./dist/errors/index.js","require":"./dist/errors/index.js"},"./logger":{"types":"./dist/logger/index.d.ts","import":"./dist/logger/index.js","require":"./dist/logger/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./codegen":{"types":"./dist/codegen/index.d.ts","import":"./dist/codegen/index.js","require":"./dist/codegen/index.js"},"./generators":{"types":"./dist/codegen/generators/index.d.ts","import":"./dist/codegen/generators/index.js","require":"./dist/codegen/generators/index.js"},"./middleware":{"types":"./dist/middleware/index.d.ts","import":"./dist/middleware/index.js","require":"./dist/middleware/index.js"},"./codegen/generators":{"types":"./dist/codegen/generators/index.d.ts","import":"./dist/codegen/generators/index.js","require":"./dist/codegen/generators/index.js"}},"scripts":{"dev":"tsup","test":"vitest","build":"tsup","test:db":"vitest src/db --config vitest.integration.config.ts","test:env":"vitest src/env","test:unit":"vitest --config vitest.unit.config.ts","test:cache":"vitest src/cache --config vitest.integration.config.ts","test:route":"vitest src/route","type-check":"tsc --noEmit","test:client":"vitest src/client","test:errors":"vitest src/errors","test:logger":"vitest src/logger","test:server":"vitest src/server --config vitest.integration.config.ts","test:codegen":"vitest src/codegen","test:coverage":"vitest run --config vitest.unit.config.ts --coverage","docker:test:up":"docker compose -f docker-compose.test.yml up -d","test:middleware":"vitest src/middleware","docker:test:down":"docker compose -f docker-compose.test.yml down","docker:test:logs":"docker compose -f docker-compose.test.yml logs -f","test:integration":"vitest --config vitest.integration.config.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:ac93c5d5-25a0-4325-a62a-9cc8f1028e8a"}},"_resolved":"/tmp/ce83b24a6f1662578159bdb3737b4f3a/spfn-core-0.1.0-alpha.72.tgz","_integrity":"sha512-NcqNw/QSd/ywEow/UJvjjgJt9yhWLXjnAE1Ko3qXGBRhfNwcv/n6UmHi5PukFkhqbHHQQV9qdWAkT8MC6cNaNA==","repository":{"url":"git+https://github.com/spfn/spfn.git","type":"git","directory":"packages/core"},"_npmVersion":"11.6.2","description":"SPFN Framework Core - File-based routing, transactions, repository pattern","directories":{},"_nodeVersion":"20.19.5","dependencies":{"zod":"^4.1.11","hono":"^4.9.0","jiti":"^2.6.1","pino":"^10.0.0","chalk":"^5.6.2","dotenv":"^17.2.3","chokidar":"^4.0.3","postgres":"^3.4.0","micromatch":"^4.0.8","typescript":"^5.3.3","drizzle-orm":"^0.44.6","drizzle-typebox":"^0.1.0","@hono/node-server":"^1.0.0","@sinclair/typebox":"^0.34.0"},"publishConfig":{"tag":"alpha","access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"tsup":"^8.0.0","vitest":"^4.0.6","@types/node":"^20.11.0","drizzle-kit":"^0.31.5","@types/micromatch":"^4.0.9","@vitest/coverage-v8":"^4.0.6"},"optionalDependencies":{"ioredis":"^5.4.1"},"_npmOperationalInternal":{"tmp":"tmp/core_0.1.0-alpha.72_1762100733225_0.21302965667892826","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-alpha.74":{"name":"@spfn/core","version":"0.1.0-alpha.74","keywords":["spfn","nextjs","backend","framework","typescript","type-safe","api","rest-api","crud","database","orm","drizzle-orm","postgres","redis","hono","fullstack","server","scalable","auto-generated","file-based-routing","transaction","repository-pattern"],"author":{"name":"Ray Im","email":"rayim@inflike.com"},"license":"MIT","_id":"@spfn/core@0.1.0-alpha.74","maintainers":[{"name":"superfunction","email":"rayim@inflike.com"}],"homepage":"https://github.com/spfn/spfn/tree/main/packages/core#readme","bugs":{"url":"https://github.com/spfn/spfn/issues"},"dist":{"shasum":"adcb4112975b44eacbac30074704ae416fec5e2b","tarball":"https://registry.npmjs.org/@spfn/core/-/core-0.1.0-alpha.74.tgz","fileCount":44,"integrity":"sha512-gKBf0fyEQoaSR9YsegQ/h6Td3Ej2mqAZyFOQfQ4GSR9ATkp7Y7jeE55tUrJzbHrvoxh9LYXJPPA3N9qDZCuNdA==","signatures":[{"sig":"MEYCIQCIgIc7xK1SWTU4aQ3k6qEvL//melT92EwRdfDykjl7JwIhAMitgXjJhTpOkw0nVC0BaDOBdMA9JeEYSQCIT9Bcr6hx","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spfn%2fcore@0.1.0-alpha.74","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2464293},"main":"./dist/index.js","type":"module","_from":"file:spfn-core-0.1.0-alpha.74.tgz","types":"./dist/index.d.ts","engines":{"node":">=18.18.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./db":{"types":"./dist/db/index.d.ts","import":"./dist/db/index.js","require":"./dist/db/index.js"},"./env":{"types":"./dist/env/index.d.ts","import":"./dist/env/index.js","require":"./dist/env/index.js"},"./cache":{"types":"./dist/cache/index.d.ts","import":"./dist/cache/index.js","require":"./dist/cache/index.js"},"./route":{"types":"./dist/route/index.d.ts","import":"./dist/route/index.js","require":"./dist/route/index.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","require":"./dist/client/index.js"},"./errors":{"types":"./dist/errors/index.d.ts","import":"./dist/errors/index.js","require":"./dist/errors/index.js"},"./logger":{"types":"./dist/logger/index.d.ts","import":"./dist/logger/index.js","require":"./dist/logger/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./codegen":{"types":"./dist/codegen/index.d.ts","import":"./dist/codegen/index.js","require":"./dist/codegen/index.js"},"./generators":{"types":"./dist/codegen/generators/index.d.ts","import":"./dist/codegen/generators/index.js","require":"./dist/codegen/generators/index.js"},"./middleware":{"types":"./dist/middleware/index.d.ts","import":"./dist/middleware/index.js","require":"./dist/middleware/index.js"},"./codegen/generators":{"types":"./dist/codegen/generators/index.d.ts","import":"./dist/codegen/generators/index.js","require":"./dist/codegen/generators/index.js"}},"scripts":{"dev":"tsup","test":"vitest","build":"tsup","test:db":"vitest src/db --config vitest.integration.config.ts","test:env":"vitest src/env","test:unit":"vitest --config vitest.unit.config.ts","test:cache":"vitest src/cache --config vitest.integration.config.ts","test:route":"vitest src/route","type-check":"tsc --noEmit","test:client":"vitest src/client","test:errors":"vitest src/errors","test:logger":"vitest src/logger","test:server":"vitest src/server --config vitest.integration.config.ts","test:codegen":"vitest src/codegen","test:coverage":"vitest run --config vitest.unit.config.ts --coverage","docker:test:up":"docker compose -f docker-compose.test.yml up -d","test:middleware":"vitest src/middleware","docker:test:down":"docker compose -f docker-compose.test.yml down","docker:test:logs":"docker compose -f docker-compose.test.yml logs -f","test:integration":"vitest --config vitest.integration.config.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:ac93c5d5-25a0-4325-a62a-9cc8f1028e8a"}},"_resolved":"/tmp/684b12c7cfba08a4dbef832a7d060090/spfn-core-0.1.0-alpha.74.tgz","_integrity":"sha512-gKBf0fyEQoaSR9YsegQ/h6Td3Ej2mqAZyFOQfQ4GSR9ATkp7Y7jeE55tUrJzbHrvoxh9LYXJPPA3N9qDZCuNdA==","repository":{"url":"git+https://github.com/spfn/spfn.git","type":"git","directory":"packages/core"},"_npmVersion":"11.6.2","description":"SPFN Framework Core - File-based routing, transactions, repository pattern","directories":{},"_nodeVersion":"20.19.5","dependencies":{"zod":"^4.1.11","hono":"^4.9.0","jiti":"^2.6.1","pino":"^10.0.0","chalk":"^5.6.2","dotenv":"^17.2.3","chokidar":"^4.0.3","postgres":"^3.4.0","micromatch":"^4.0.8","typescript":"^5.3.3","drizzle-orm":"^0.44.6","drizzle-typebox":"^0.1.0","@hono/node-server":"^1.0.0","@sinclair/typebox":"^0.34.0"},"publishConfig":{"tag":"alpha","access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"tsup":"^8.0.0","vitest":"^4.0.6","@types/node":"^20.11.0","drizzle-kit":"^0.31.5","@types/micromatch":"^4.0.9","@vitest/coverage-v8":"^4.0.6"},"optionalDependencies":{"ioredis":"^5.4.1"},"_npmOperationalInternal":{"tmp":"tmp/core_0.1.0-alpha.74_1762149832457_0.4249331662291127","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-alpha.81":{"name":"@spfn/core","version":"0.1.0-alpha.81","keywords":["spfn","nextjs","backend","framework","typescript","type-safe","api","rest-api","crud","database","orm","drizzle-orm","postgres","redis","hono","fullstack","server","scalable","auto-generated","file-based-routing","transaction","repository-pattern"],"author":{"name":"Ray Im","email":"rayim@inflike.com"},"license":"MIT","_id":"@spfn/core@0.1.0-alpha.81","maintainers":[{"name":"superfunction","email":"rayim@inflike.com"}],"homepage":"https://github.com/spfn/spfn/tree/main/packages/core#readme","bugs":{"url":"https://github.com/spfn/spfn/issues"},"dist":{"shasum":"e6047d6ac53f9b3c00920ef752361b02ba5cdd3b","tarball":"https://registry.npmjs.org/@spfn/core/-/core-0.1.0-alpha.81.tgz","fileCount":44,"integrity":"sha512-LOFWTa4iPSAdb6NIaOMQ5XuJKlM7BZrfh3X8HbsEY90UBJnnWBgTwEGmPTuzigXrhMDhjtJc5QohqfcgxDJw7A==","signatures":[{"sig":"MEUCIC/DEYOwmMR/VL6pRYzrokCu1oKKN4zPpwNnFDYdWqUbAiEAnZhVXPxpx5vDqkhYD+vC7O8xnuSmBok/hPk4PN59++U=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spfn%2fcore@0.1.0-alpha.81","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2470151},"main":"./dist/index.js","type":"module","_from":"file:spfn-core-0.1.0-alpha.81.tgz","types":"./dist/index.d.ts","engines":{"node":">=18.18.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./db":{"types":"./dist/db/index.d.ts","import":"./dist/db/index.js","require":"./dist/db/index.js"},"./env":{"types":"./dist/env/index.d.ts","import":"./dist/env/index.js","require":"./dist/env/index.js"},"./cache":{"types":"./dist/cache/index.d.ts","import":"./dist/cache/index.js","require":"./dist/cache/index.js"},"./route":{"types":"./dist/route/index.d.ts","import":"./dist/route/index.js","require":"./dist/route/index.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","require":"./dist/client/index.js"},"./errors":{"types":"./dist/errors/index.d.ts","import":"./dist/errors/index.js","require":"./dist/errors/index.js"},"./logger":{"types":"./dist/logger/index.d.ts","import":"./dist/logger/index.js","require":"./dist/logger/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./codegen":{"types":"./dist/codegen/index.d.ts","import":"./dist/codegen/index.js","require":"./dist/codegen/index.js"},"./generators":{"types":"./dist/codegen/generators/index.d.ts","import":"./dist/codegen/generators/index.js","require":"./dist/codegen/generators/index.js"},"./middleware":{"types":"./dist/middleware/index.d.ts","import":"./dist/middleware/index.js","require":"./dist/middleware/index.js"},"./codegen/generators":{"types":"./dist/codegen/generators/index.d.ts","import":"./dist/codegen/generators/index.js","require":"./dist/codegen/generators/index.js"}},"scripts":{"dev":"tsup","test":"vitest","build":"tsup","test:db":"vitest src/db --config vitest.integration.config.ts","test:env":"vitest src/env","test:unit":"vitest --config vitest.unit.config.ts","test:cache":"vitest src/cache --config vitest.integration.config.ts","test:route":"vitest src/route","type-check":"tsc --noEmit","test:client":"vitest src/client","test:errors":"vitest src/errors","test:logger":"vitest src/logger","test:server":"vitest src/server --config vitest.integration.config.ts","test:codegen":"vitest src/codegen","test:coverage":"vitest run --config vitest.unit.config.ts --coverage","docker:test:up":"docker compose -f docker-compose.test.yml up -d","test:middleware":"vitest src/middleware","docker:test:down":"docker compose -f docker-compose.test.yml down","docker:test:logs":"docker compose -f docker-compose.test.yml logs -f","test:integration":"vitest --config vitest.integration.config.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:ac93c5d5-25a0-4325-a62a-9cc8f1028e8a"}},"_resolved":"/tmp/4be50173ac59795c69b9f905548639b3/spfn-core-0.1.0-alpha.81.tgz","_integrity":"sha512-LOFWTa4iPSAdb6NIaOMQ5XuJKlM7BZrfh3X8HbsEY90UBJnnWBgTwEGmPTuzigXrhMDhjtJc5QohqfcgxDJw7A==","repository":{"url":"git+https://github.com/spfn/spfn.git","type":"git","directory":"packages/core"},"_npmVersion":"11.6.2","description":"SPFN Framework Core - File-based routing, transactions, repository pattern","directories":{},"_nodeVersion":"20.19.5","dependencies":{"zod":"^4.1.11","hono":"^4.9.0","jiti":"^2.6.1","pino":"^10.0.0","chalk":"^5.6.2","dotenv":"^17.2.3","chokidar":"^4.0.3","postgres":"^3.4.0","micromatch":"^4.0.8","typescript":"^5.3.3","drizzle-orm":"^0.44.6","drizzle-typebox":"^0.1.0","@hono/node-server":"^1.0.0","@sinclair/typebox":"^0.34.0"},"publishConfig":{"tag":"alpha","access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"tsup":"^8.0.0","vitest":"^4.0.6","@types/node":"^20.11.0","drizzle-kit":"^0.31.5","@types/micromatch":"^4.0.9","@vitest/coverage-v8":"^4.0.6"},"optionalDependencies":{"ioredis":"^5.4.1"},"_npmOperationalInternal":{"tmp":"tmp/core_0.1.0-alpha.81_1762275678462_0.5043663444718727","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-alpha.82":{"name":"@spfn/core","version":"0.1.0-alpha.82","keywords":["spfn","nextjs","backend","framework","typescript","type-safe","api","rest-api","crud","database","orm","drizzle-orm","postgres","redis","hono","fullstack","server","scalable","auto-generated","file-based-routing","transaction","repository-pattern"],"author":{"name":"Ray Im","email":"rayim@inflike.com"},"license":"MIT","_id":"@spfn/core@0.1.0-alpha.82","maintainers":[{"name":"superfunction","email":"rayim@inflike.com"}],"homepage":"https://github.com/spfn/spfn/tree/main/packages/core#readme","bugs":{"url":"https://github.com/spfn/spfn/issues"},"dist":{"shasum":"f406fbfe095e23d9b5d4d2207802326a437920b9","tarball":"https://registry.npmjs.org/@spfn/core/-/core-0.1.0-alpha.82.tgz","fileCount":46,"integrity":"sha512-ccfr+/StWscYwoAUSWWY7t7icvPkVeHVHRAel+oMkryA3se4aVNx69F+p15KPRf5VQaxe0jnIc2NoU62h5YSfQ==","signatures":[{"sig":"MEYCIQC0jesOWLHojr12kXU6OEaK5CElcIFg8xbN6ZnXp8ONWAIhAIlhfjRV0iW4IvhMuVFW3O7NfE7X22sqak49oxbjPW4Q","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spfn%2fcore@0.1.0-alpha.82","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2497066},"main":"./dist/index.js","type":"module","_from":"file:spfn-core-0.1.0-alpha.82.tgz","types":"./dist/index.d.ts","engines":{"node":">=18.18.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./db":{"types":"./dist/db/index.d.ts","import":"./dist/db/index.js","require":"./dist/db/index.js"},"./env":{"types":"./dist/env/index.d.ts","import":"./dist/env/index.js","require":"./dist/env/index.js"},"./cache":{"types":"./dist/cache/index.d.ts","import":"./dist/cache/index.js","require":"./dist/cache/index.js"},"./route":{"types":"./dist/route/index.d.ts","import":"./dist/route/index.js","require":"./dist/route/index.js"},"./types":{"types":"./dist/types/index.d.ts","import":"./dist/types/index.js","require":"./dist/types/index.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","require":"./dist/client/index.js"},"./errors":{"types":"./dist/errors/index.d.ts","import":"./dist/errors/index.js","require":"./dist/errors/index.js"},"./logger":{"types":"./dist/logger/index.d.ts","import":"./dist/logger/index.js","require":"./dist/logger/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./codegen":{"types":"./dist/codegen/index.d.ts","import":"./dist/codegen/index.js","require":"./dist/codegen/index.js"},"./generators":{"types":"./dist/codegen/generators/index.d.ts","import":"./dist/codegen/generators/index.js","require":"./dist/codegen/generators/index.js"},"./middleware":{"types":"./dist/middleware/index.d.ts","import":"./dist/middleware/index.js","require":"./dist/middleware/index.js"},"./codegen/generators":{"types":"./dist/codegen/generators/index.d.ts","import":"./dist/codegen/generators/index.js","require":"./dist/codegen/generators/index.js"}},"scripts":{"dev":"tsup","test":"vitest","build":"tsup","test:db":"vitest src/db --config vitest.integration.config.ts","test:env":"vitest src/env","test:unit":"vitest --config vitest.unit.config.ts","test:cache":"vitest src/cache --config vitest.integration.config.ts","test:route":"vitest src/route","type-check":"tsc --noEmit","test:client":"vitest src/client","test:errors":"vitest src/errors","test:logger":"vitest src/logger","test:server":"vitest src/server --config vitest.integration.config.ts","test:codegen":"vitest src/codegen","test:coverage":"vitest run --config vitest.unit.config.ts --coverage","docker:test:up":"docker compose -f docker-compose.test.yml up -d","test:middleware":"vitest src/middleware","docker:test:down":"docker compose -f docker-compose.test.yml down","docker:test:logs":"docker compose -f docker-compose.test.yml logs -f","test:integration":"vitest --config vitest.integration.config.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:ac93c5d5-25a0-4325-a62a-9cc8f1028e8a"}},"_resolved":"/tmp/fe942c46712dd30abe41da79cee25563/spfn-core-0.1.0-alpha.82.tgz","_integrity":"sha512-ccfr+/StWscYwoAUSWWY7t7icvPkVeHVHRAel+oMkryA3se4aVNx69F+p15KPRf5VQaxe0jnIc2NoU62h5YSfQ==","repository":{"url":"git+https://github.com/spfn/spfn.git","type":"git","directory":"packages/core"},"_npmVersion":"11.6.2","description":"SPFN Framework Core - File-based routing, transactions, repository pattern","directories":{},"_nodeVersion":"20.19.5","dependencies":{"zod":"^4.1.11","hono":"^4.9.0","jiti":"^2.6.1","pino":"^10.0.0","chalk":"^5.6.2","dotenv":"^17.2.3","chokidar":"^4.0.3","postgres":"^3.4.0","micromatch":"^4.0.8","typescript":"^5.3.3","drizzle-orm":"^0.44.7","drizzle-typebox":"^0.1.0","@hono/node-server":"^1.0.0","@sinclair/typebox":"^0.34.0"},"publishConfig":{"tag":"alpha","access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"tsup":"^8.0.0","vitest":"^4.0.6","@types/node":"^20.11.0","drizzle-kit":"^0.31.5","@types/micromatch":"^4.0.9","@vitest/coverage-v8":"^4.0.6"},"optionalDependencies":{"ioredis":"^5.4.1","pino-pretty":"^11.0.0"},"_npmOperationalInternal":{"tmp":"tmp/core_0.1.0-alpha.82_1762331183774_0.6029427880992202","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-alpha.83":{"name":"@spfn/core","version":"0.1.0-alpha.83","keywords":["spfn","nextjs","backend","framework","typescript","type-safe","api","rest-api","crud","database","orm","drizzle-orm","postgres","redis","hono","fullstack","server","scalable","auto-generated","file-based-routing","transaction","repository-pattern"],"author":{"name":"Ray Im","email":"rayim@inflike.com"},"license":"MIT","_id":"@spfn/core@0.1.0-alpha.83","maintainers":[{"name":"superfunction","email":"rayim@inflike.com"}],"homepage":"https://github.com/spfn/spfn/tree/main/packages/core#readme","bugs":{"url":"https://github.com/spfn/spfn/issues"},"dist":{"shasum":"131997a29497c0b6b958eefb0f14824d66e560b9","tarball":"https://registry.npmjs.org/@spfn/core/-/core-0.1.0-alpha.83.tgz","fileCount":46,"integrity":"sha512-T/fWYk1+FM2Ts6InjMmP2RULn2Oxx2nnvSnz701CS3AD4wrX47HKGQGOQS09QS7SnemWCuT/yVl1V4y5+2MPuA==","signatures":[{"sig":"MEUCIHXkNApN57FYAOaabo291DN/yZot+KjUCDiKWkqT8ZuHAiEA4GCahQhfHqZLhXeHrSLJi5CEKKnfzIU4c8oyUbakDkg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spfn%2fcore@0.1.0-alpha.83","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2390465},"main":"./dist/index.js","type":"module","_from":"file:spfn-core-0.1.0-alpha.83.tgz","types":"./dist/index.d.ts","engines":{"node":">=18.18.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./db":{"types":"./dist/db/index.d.ts","import":"./dist/db/index.js","require":"./dist/db/index.js"},"./env":{"types":"./dist/env/index.d.ts","import":"./dist/env/index.js","require":"./dist/env/index.js"},"./cache":{"types":"./dist/cache/index.d.ts","import":"./dist/cache/index.js","require":"./dist/cache/index.js"},"./route":{"types":"./dist/route/index.d.ts","import":"./dist/route/index.js","require":"./dist/route/index.js"},"./types":{"types":"./dist/types/index.d.ts","import":"./dist/types/index.js","require":"./dist/types/index.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","require":"./dist/client/index.js"},"./errors":{"types":"./dist/errors/index.d.ts","import":"./dist/errors/index.js","require":"./dist/errors/index.js"},"./logger":{"types":"./dist/logger/index.d.ts","import":"./dist/logger/index.js","require":"./dist/logger/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./codegen":{"types":"./dist/codegen/index.d.ts","import":"./dist/codegen/index.js","require":"./dist/codegen/index.js"},"./generators":{"types":"./dist/codegen/generators/index.d.ts","import":"./dist/codegen/generators/index.js","require":"./dist/codegen/generators/index.js"},"./middleware":{"types":"./dist/middleware/index.d.ts","import":"./dist/middleware/index.js","require":"./dist/middleware/index.js"},"./codegen/generators":{"types":"./dist/codegen/generators/index.d.ts","import":"./dist/codegen/generators/index.js","require":"./dist/codegen/generators/index.js"}},"scripts":{"dev":"tsup","test":"vitest","build":"tsup","test:db":"vitest src/db --config vitest.integration.config.ts","test:env":"vitest src/env","test:unit":"vitest --config vitest.unit.config.ts","test:cache":"vitest src/cache --config vitest.integration.config.ts","test:route":"vitest src/route","type-check":"tsc --noEmit","test:client":"vitest src/client","test:errors":"vitest src/errors","test:logger":"vitest src/logger","test:server":"vitest src/server --config vitest.integration.config.ts","test:codegen":"vitest src/codegen","test:coverage":"vitest run --config vitest.unit.config.ts --coverage","docker:test:up":"docker compose -f docker-compose.test.yml up -d","test:middleware":"vitest src/middleware","docker:test:down":"docker compose -f docker-compose.test.yml down","docker:test:logs":"docker compose -f docker-compose.test.yml logs -f","test:integration":"vitest --config vitest.integration.config.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:ac93c5d5-25a0-4325-a62a-9cc8f1028e8a"}},"_resolved":"/tmp/00d0bcb990d35056b2d445b60d62f3af/spfn-core-0.1.0-alpha.83.tgz","_integrity":"sha512-T/fWYk1+FM2Ts6InjMmP2RULn2Oxx2nnvSnz701CS3AD4wrX47HKGQGOQS09QS7SnemWCuT/yVl1V4y5+2MPuA==","repository":{"url":"git+https://github.com/spfn/spfn.git","type":"git","directory":"packages/core"},"_npmVersion":"11.6.2","description":"SPFN Framework Core - File-based routing, transactions, repository pattern","directories":{},"_nodeVersion":"20.19.5","dependencies":{"zod":"^4.1.11","hono":"^4.9.0","jiti":"^2.6.1","chalk":"^5.6.2","dotenv":"^17.2.3","chokidar":"^4.0.3","postgres":"^3.4.0","micromatch":"^4.0.8","typescript":"^5.3.3","drizzle-orm":"^0.44.7","drizzle-typebox":"^0.1.0","@hono/node-server":"^1.0.0","@sinclair/typebox":"^0.34.0"},"publishConfig":{"tag":"alpha","access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"tsup":"^8.0.0","vitest":"^4.0.6","@types/node":"^20.11.0","drizzle-kit":"^0.31.5","@types/micromatch":"^4.0.9","@vitest/coverage-v8":"^4.0.6"},"optionalDependencies":{"ioredis":"^5.4.1"},"_npmOperationalInternal":{"tmp":"tmp/core_0.1.0-alpha.83_1762357986311_0.5808850521880906","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-alpha.84":{"name":"@spfn/core","version":"0.1.0-alpha.84","keywords":["spfn","nextjs","backend","framework","typescript","type-safe","api","rest-api","crud","database","orm","drizzle-orm","postgres","redis","hono","fullstack","server","scalable","auto-generated","file-based-routing","transaction","repository-pattern"],"author":{"name":"Ray Im","email":"rayim@inflike.com"},"license":"MIT","_id":"@spfn/core@0.1.0-alpha.84","maintainers":[{"name":"superfunction","email":"rayim@inflike.com"}],"homepage":"https://github.com/spfn/spfn/tree/main/packages/core#readme","bugs":{"url":"https://github.com/spfn/spfn/issues"},"dist":{"shasum":"75a1d79fe6e43b8f21300ec8f67de7c462e56df5","tarball":"https://registry.npmjs.org/@spfn/core/-/core-0.1.0-alpha.84.tgz","fileCount":49,"integrity":"sha512-iXZjBHkVsNw0Qa4aSs/RmfOmco++DiibTUvq2IxGab3hcOOILswaC7l0PYINrq4PV+FB8T4o7Bat/4iScA38ow==","signatures":[{"sig":"MEUCIQD4JLo4eEhg43IWgbUO1f9kZlGbQ6M93qfdNaOpWuoMNwIgVtzR8g3FkSi+VTKSVxtgF4whGASkKEj6NYORDpksGGw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spfn%2fcore@0.1.0-alpha.84","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2407016},"main":"./dist/index.js","type":"module","_from":"file:spfn-core-0.1.0-alpha.84.tgz","types":"./dist/index.d.ts","engines":{"node":">=18.18.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./db":{"types":"./dist/db/index.d.ts","import":"./dist/db/index.js","require":"./dist/db/index.js"},"./env":{"types":"./dist/env/index.d.ts","import":"./dist/env/index.js","require":"./dist/env/index.js"},"./cache":{"types":"./dist/cache/index.d.ts","import":"./dist/cache/index.js","require":"./dist/cache/index.js"},"./route":{"types":"./dist/route/index.d.ts","import":"./dist/route/index.js","require":"./dist/route/index.js"},"./types":{"types":"./dist/types/index.d.ts","import":"./dist/types/index.js","require":"./dist/types/index.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","require":"./dist/client/index.js"},"./errors":{"types":"./dist/errors/index.d.ts","import":"./dist/errors/index.js","require":"./dist/errors/index.js"},"./events":{"types":"./dist/events/index.d.ts","import":"./dist/events/index.js","require":"./dist/events/index.js"},"./logger":{"types":"./dist/logger/index.d.ts","import":"./dist/logger/index.js","require":"./dist/logger/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./codegen":{"types":"./dist/codegen/index.d.ts","import":"./dist/codegen/index.js","require":"./dist/codegen/index.js"},"./generators":{"types":"./dist/codegen/generators/index.d.ts","import":"./dist/codegen/generators/index.js","require":"./dist/codegen/generators/index.js"},"./middleware":{"types":"./dist/middleware/index.d.ts","import":"./dist/middleware/index.js","require":"./dist/middleware/index.js"},"./codegen/generators":{"types":"./dist/codegen/generators/index.d.ts","import":"./dist/codegen/generators/index.js","require":"./dist/codegen/generators/index.js"}},"scripts":{"dev":"tsup","test":"vitest","build":"tsup","test:db":"vitest src/db --config vitest.integration.config.ts","test:env":"vitest src/env","test:unit":"vitest --config vitest.unit.config.ts","test:cache":"vitest src/cache --config vitest.integration.config.ts","test:route":"vitest src/route","type-check":"tsc --noEmit","test:client":"vitest src/client","test:errors":"vitest src/errors","test:logger":"vitest src/logger","test:server":"vitest src/server --config vitest.integration.config.ts","test:codegen":"vitest src/codegen","test:coverage":"vitest run --config vitest.unit.config.ts --coverage","docker:test:up":"docker compose -f docker-compose.test.yml up -d","test:middleware":"vitest src/middleware","docker:test:down":"docker compose -f docker-compose.test.yml down","docker:test:logs":"docker compose -f docker-compose.test.yml logs -f","test:integration":"vitest --config vitest.integration.config.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:ac93c5d5-25a0-4325-a62a-9cc8f1028e8a"}},"_resolved":"/tmp/c762e6620fc3b2e34b1e5e79e16d2760/spfn-core-0.1.0-alpha.84.tgz","_integrity":"sha512-iXZjBHkVsNw0Qa4aSs/RmfOmco++DiibTUvq2IxGab3hcOOILswaC7l0PYINrq4PV+FB8T4o7Bat/4iScA38ow==","repository":{"url":"git+https://github.com/spfn/spfn.git","type":"git","directory":"packages/core"},"_npmVersion":"11.6.2","description":"SPFN Framework Core - File-based routing, transactions, repository pattern","directories":{},"_nodeVersion":"20.19.5","dependencies":{"zod":"^4.1.11","hono":"^4.9.0","jiti":"^2.6.1","chalk":"^5.6.2","dotenv":"^17.2.3","chokidar":"^4.0.3","postgres":"^3.4.0","micromatch":"^4.0.8","typescript":"^5.3.3","drizzle-orm":"^0.44.7","drizzle-typebox":"^0.1.0","@hono/node-server":"^1.0.0","@sinclair/typebox":"^0.34.0"},"publishConfig":{"tag":"alpha","access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"tsup":"^8.0.0","vitest":"^4.0.6","@types/node":"^20.11.0","drizzle-kit":"^0.31.5","@types/micromatch":"^4.0.9","@vitest/coverage-v8":"^4.0.6"},"optionalDependencies":{"ioredis":"^5.4.1"},"_npmOperationalInternal":{"tmp":"tmp/core_0.1.0-alpha.84_1762430002273_0.5590976556258616","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-alpha.85":{"name":"@spfn/core","version":"0.1.0-alpha.85","keywords":["spfn","nextjs","backend","framework","typescript","type-safe","api","rest-api","crud","database","orm","drizzle-orm","postgres","redis","hono","fullstack","server","scalable","auto-generated","file-based-routing","transaction","repository-pattern"],"author":{"name":"Ray Im","email":"rayim@inflike.com"},"license":"MIT","_id":"@spfn/core@0.1.0-alpha.85","maintainers":[{"name":"superfunction","email":"rayim@inflike.com"}],"homepage":"https://github.com/spfn/spfn/tree/main/packages/core#readme","bugs":{"url":"https://github.com/spfn/spfn/issues"},"dist":{"shasum":"6ee782b1422cd13440a4491f98f9ef75af769cfc","tarball":"https://registry.npmjs.org/@spfn/core/-/core-0.1.0-alpha.85.tgz","fileCount":49,"integrity":"sha512-GPXDgSlnzrhfjUui+3sbCG7NsIdP72VkM1+HRViCk5mEfhsk3KXUZ4C+uVmj12Z1/Ay4ijKUSy/7l+15QhK8Lw==","signatures":[{"sig":"MEYCIQCZFBjvHoSm83dHaL024nMzj0x3RCcTm9sJIa6+dzED6gIhAI5nBBa8h8L2i5dhzYOU8IyANgNhqmeBM+/7Yrl/mFtz","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spfn%2fcore@0.1.0-alpha.85","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2442815},"main":"./dist/index.js","type":"module","_from":"file:spfn-core-0.1.0-alpha.85.tgz","types":"./dist/index.d.ts","engines":{"node":">=18.18.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./db":{"types":"./dist/db/index.d.ts","import":"./dist/db/index.js","require":"./dist/db/index.js"},"./env":{"types":"./dist/env/index.d.ts","import":"./dist/env/index.js","require":"./dist/env/index.js"},"./cache":{"types":"./dist/cache/index.d.ts","import":"./dist/cache/index.js","require":"./dist/cache/index.js"},"./route":{"types":"./dist/route/index.d.ts","import":"./dist/route/index.js","require":"./dist/route/index.js"},"./types":{"types":"./dist/types/index.d.ts","import":"./dist/types/index.js","require":"./dist/types/index.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","require":"./dist/client/index.js"},"./errors":{"types":"./dist/errors/index.d.ts","import":"./dist/errors/index.js","require":"./dist/errors/index.js"},"./events":{"types":"./dist/events/index.d.ts","import":"./dist/events/index.js","require":"./dist/events/index.js"},"./logger":{"types":"./dist/logger/index.d.ts","import":"./dist/logger/index.js","require":"./dist/logger/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./codegen":{"types":"./dist/codegen/index.d.ts","import":"./dist/codegen/index.js","require":"./dist/codegen/index.js"},"./generators":{"types":"./dist/codegen/generators/index.d.ts","import":"./dist/codegen/generators/index.js","require":"./dist/codegen/generators/index.js"},"./middleware":{"types":"./dist/middleware/index.d.ts","import":"./dist/middleware/index.js","require":"./dist/middleware/index.js"},"./codegen/generators":{"types":"./dist/codegen/generators/index.d.ts","import":"./dist/codegen/generators/index.js","require":"./dist/codegen/generators/index.js"}},"scripts":{"dev":"tsup","test":"vitest","build":"tsup","test:db":"vitest src/db --config vitest.integration.config.ts","test:env":"vitest src/env","test:unit":"vitest --config vitest.unit.config.ts","test:cache":"vitest src/cache --config vitest.integration.config.ts","test:route":"vitest src/route","type-check":"tsc --noEmit","test:client":"vitest src/client","test:errors":"vitest src/errors","test:logger":"vitest src/logger","test:server":"vitest src/server --config vitest.integration.config.ts","test:codegen":"vitest src/codegen","test:coverage":"vitest run --config vitest.unit.config.ts --coverage","docker:test:up":"docker compose -f docker-compose.test.yml up -d","test:middleware":"vitest src/middleware","docker:test:down":"docker compose -f docker-compose.test.yml down","docker:test:logs":"docker compose -f docker-compose.test.yml logs -f","test:integration":"vitest --config vitest.integration.config.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:ac93c5d5-25a0-4325-a62a-9cc8f1028e8a"}},"_resolved":"/tmp/a6b499d57d371c4c22e1a9e59b61b5c6/spfn-core-0.1.0-alpha.85.tgz","_integrity":"sha512-GPXDgSlnzrhfjUui+3sbCG7NsIdP72VkM1+HRViCk5mEfhsk3KXUZ4C+uVmj12Z1/Ay4ijKUSy/7l+15QhK8Lw==","repository":{"url":"git+https://github.com/spfn/spfn.git","type":"git","directory":"packages/core"},"_npmVersion":"11.6.2","description":"SPFN Framework Core - File-based routing, transactions, repository pattern","directories":{},"_nodeVersion":"20.19.5","dependencies":{"zod":"^4.1.11","hono":"^4.9.0","jiti":"^2.6.1","chalk":"^5.6.2","dotenv":"^17.2.3","chokidar":"^4.0.3","postgres":"^3.4.0","micromatch":"^4.0.8","typescript":"^5.3.3","drizzle-orm":"^0.44.7","drizzle-typebox":"^0.1.0","@hono/node-server":"^1.0.0","@sinclair/typebox":"^0.34.0"},"publishConfig":{"tag":"alpha","access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"tsup":"^8.0.0","vitest":"^4.0.6","@types/node":"^20.11.0","drizzle-kit":"^0.31.5","@types/micromatch":"^4.0.9","@vitest/coverage-v8":"^4.0.6"},"optionalDependencies":{"ioredis":"^5.4.1"},"_npmOperationalInternal":{"tmp":"tmp/core_0.1.0-alpha.85_1762487472462_0.5724519073831924","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-alpha.86":{"name":"@spfn/core","version":"0.1.0-alpha.86","keywords":["spfn","nextjs","backend","framework","typescript","type-safe","api","rest-api","crud","database","orm","drizzle-orm","postgres","redis","hono","fullstack","server","scalable","auto-generated","file-based-routing","transaction","repository-pattern"],"author":{"name":"Ray Im","email":"rayim@inflike.com"},"license":"MIT","_id":"@spfn/core@0.1.0-alpha.86","maintainers":[{"name":"superfunction","email":"rayim@inflike.com"}],"homepage":"https://github.com/spfn/spfn/tree/main/packages/core#readme","bugs":{"url":"https://github.com/spfn/spfn/issues"},"dist":{"shasum":"5ef41442c9730e863bc1924a0777960dbe93d790","tarball":"https://registry.npmjs.org/@spfn/core/-/core-0.1.0-alpha.86.tgz","fileCount":52,"integrity":"sha512-OiseN62Mi8OwF180qVbgFuMHS23sur7tEjXssQjMCimty2FAFxz5WlwWXXnusvgE1g6+GsAv4iVVvnAPHFmyNA==","signatures":[{"sig":"MEUCIFcVgUZ5hK2oQRRTN26XgfNYPoSn7CSJnCOqd9UqAUC7AiEAplfoKUWxLgZZr0MsJCVCbGjwxMYnv/7pEbqf/uC9mks=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spfn%2fcore@0.1.0-alpha.86","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2543912},"main":"./dist/index.js","type":"module","_from":"file:spfn-core-0.1.0-alpha.86.tgz","types":"./dist/index.d.ts","engines":{"node":">=18.18.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./db":{"types":"./dist/db/index.d.ts","import":"./dist/db/index.js","require":"./dist/db/index.js"},"./env":{"types":"./dist/env/index.d.ts","import":"./dist/env/index.js","require":"./dist/env/index.js"},"./cache":{"types":"./dist/cache/index.d.ts","import":"./dist/cache/index.js","require":"./dist/cache/index.js"},"./route":{"types":"./dist/route/index.d.ts","import":"./dist/route/index.js","require":"./dist/route/index.js"},"./types":{"types":"./dist/types/index.d.ts","import":"./dist/types/index.js","require":"./dist/types/index.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","require":"./dist/client/index.js"},"./errors":{"types":"./dist/errors/index.d.ts","import":"./dist/errors/index.js","require":"./dist/errors/index.js"},"./events":{"types":"./dist/events/index.d.ts","import":"./dist/events/index.js","require":"./dist/events/index.js"},"./logger":{"types":"./dist/logger/index.d.ts","import":"./dist/logger/index.js","require":"./dist/logger/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./codegen":{"types":"./dist/codegen/index.d.ts","import":"./dist/codegen/index.js","require":"./dist/codegen/index.js"},"./generators":{"types":"./dist/codegen/generators/index.d.ts","import":"./dist/codegen/generators/index.js","require":"./dist/codegen/generators/index.js"},"./middleware":{"types":"./dist/middleware/index.d.ts","import":"./dist/middleware/index.js","require":"./dist/middleware/index.js"},"./client/nextjs":{"types":"./dist/client/nextjs/index.d.ts","import":"./dist/client/nextjs/index.js","require":"./dist/client/nextjs/index.js"},"./codegen/generators":{"types":"./dist/codegen/generators/index.d.ts","import":"./dist/codegen/generators/index.js","require":"./dist/codegen/generators/index.js"}},"scripts":{"dev":"tsup","test":"vitest","build":"tsup","test:db":"vitest src/db --config vitest.integration.config.ts","test:env":"vitest src/env","test:unit":"vitest --config vitest.unit.config.ts","test:cache":"vitest src/cache --config vitest.integration.config.ts","test:route":"vitest src/route","type-check":"tsc --noEmit","test:client":"vitest src/client","test:errors":"vitest src/errors","test:logger":"vitest src/logger","test:server":"vitest src/server --config vitest.integration.config.ts","test:codegen":"vitest src/codegen","test:coverage":"vitest run --config vitest.unit.config.ts --coverage","docker:test:up":"docker compose -f docker-compose.test.yml up -d","test:middleware":"vitest src/middleware","docker:test:down":"docker compose -f docker-compose.test.yml down","docker:test:logs":"docker compose -f docker-compose.test.yml logs -f","test:integration":"vitest --config vitest.integration.config.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:ac93c5d5-25a0-4325-a62a-9cc8f1028e8a"}},"_resolved":"/tmp/3f245a921f9c7eb36891651f08521fb3/spfn-core-0.1.0-alpha.86.tgz","_integrity":"sha512-OiseN62Mi8OwF180qVbgFuMHS23sur7tEjXssQjMCimty2FAFxz5WlwWXXnusvgE1g6+GsAv4iVVvnAPHFmyNA==","repository":{"url":"git+https://github.com/spfn/spfn.git","type":"git","directory":"packages/core"},"_npmVersion":"11.6.2","description":"SPFN Framework Core - File-based routing, transactions, repository pattern","directories":{},"_nodeVersion":"20.19.5","dependencies":{"zod":"^4.1.11","hono":"^4.9.0","jiti":"^2.6.1","chalk":"^5.6.2","dotenv":"^17.2.3","chokidar":"^4.0.3","postgres":"^3.4.0","micromatch":"^4.0.8","typescript":"^5.3.3","drizzle-orm":"^0.44.7","drizzle-typebox":"^0.1.0","@hono/node-server":"^1.0.0","@sinclair/typebox":"^0.34.0"},"publishConfig":{"tag":"alpha","access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"next":"^16.0.1","tsup":"^8.0.0","vitest":"^4.0.6","@types/node":"^20.11.0","drizzle-kit":"^0.31.5","@types/micromatch":"^4.0.9","@vitest/coverage-v8":"^4.0.6"},"optionalDependencies":{"ioredis":"^5.4.1"},"_npmOperationalInternal":{"tmp":"tmp/core_0.1.0-alpha.86_1762695368000_0.3893551758578204","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-alpha.88":{"name":"@spfn/core","version":"0.1.0-alpha.88","keywords":["spfn","nextjs","backend","framework","typescript","type-safe","api","rest-api","crud","database","orm","drizzle-orm","postgres","redis","hono","fullstack","server","scalable","auto-generated","file-based-routing","transaction","repository-pattern"],"author":{"name":"Ray Im","email":"rayim@inflike.com"},"license":"MIT","_id":"@spfn/core@0.1.0-alpha.88","maintainers":[{"name":"superfunction","email":"rayim@inflike.com"}],"homepage":"https://github.com/spfn/spfn/tree/main/packages/core#readme","bugs":{"url":"https://github.com/spfn/spfn/issues"},"dist":{"shasum":"a9f47b801b056a6d945c19493821e4ff527d1b4d","tarball":"https://registry.npmjs.org/@spfn/core/-/core-0.1.0-alpha.88.tgz","fileCount":52,"integrity":"sha512-zbSJ71OUGn6uzFoKBq0boK1DhKgW79dZcdORGhrjQYHRyV+EV5nqBd/FSn8CvoB01hGfsCTjXqIGJxE9/b0sIw==","signatures":[{"sig":"MEQCIF82UTbEDP8DVLadHeOt/7ig6yjI1VA4Qpvl3WMeNm9cAiBWPvKhoZvgdlJtmqQ9w4nqM02+BNLcbKZZqO3o0E95OA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spfn%2fcore@0.1.0-alpha.88","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2543963},"main":"./dist/index.js","type":"module","_from":"file:spfn-core-0.1.0-alpha.88.tgz","types":"./dist/index.d.ts","engines":{"node":">=18.18.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./db":{"types":"./dist/db/index.d.ts","import":"./dist/db/index.js","require":"./dist/db/index.js"},"./env":{"types":"./dist/env/index.d.ts","import":"./dist/env/index.js","require":"./dist/env/index.js"},"./cache":{"types":"./dist/cache/index.d.ts","import":"./dist/cache/index.js","require":"./dist/cache/index.js"},"./route":{"types":"./dist/route/index.d.ts","import":"./dist/route/index.js","require":"./dist/route/index.js"},"./types":{"types":"./dist/types/index.d.ts","import":"./dist/types/index.js","require":"./dist/types/index.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","require":"./dist/client/index.js"},"./errors":{"types":"./dist/errors/index.d.ts","import":"./dist/errors/index.js","require":"./dist/errors/index.js"},"./events":{"types":"./dist/events/index.d.ts","import":"./dist/events/index.js","require":"./dist/events/index.js"},"./logger":{"types":"./dist/logger/index.d.ts","import":"./dist/logger/index.js","require":"./dist/logger/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./codegen":{"types":"./dist/codegen/index.d.ts","import":"./dist/codegen/index.js","require":"./dist/codegen/index.js"},"./generators":{"types":"./dist/codegen/generators/index.d.ts","import":"./dist/codegen/generators/index.js","require":"./dist/codegen/generators/index.js"},"./middleware":{"types":"./dist/middleware/index.d.ts","import":"./dist/middleware/index.js","require":"./dist/middleware/index.js"},"./client/nextjs":{"types":"./dist/client/nextjs/index.d.ts","import":"./dist/client/nextjs/index.js","require":"./dist/client/nextjs/index.js"},"./codegen/generators":{"types":"./dist/codegen/generators/index.d.ts","import":"./dist/codegen/generators/index.js","require":"./dist/codegen/generators/index.js"}},"scripts":{"dev":"tsup","test":"vitest","build":"tsup","test:db":"vitest src/db --config vitest.integration.config.ts","test:env":"vitest src/env","test:unit":"vitest --config vitest.unit.config.ts","test:cache":"vitest src/cache --config vitest.integration.config.ts","test:route":"vitest src/route","type-check":"tsc --noEmit","test:client":"vitest src/client","test:errors":"vitest src/errors","test:logger":"vitest src/logger","test:server":"vitest src/server --config vitest.integration.config.ts","test:codegen":"vitest src/codegen","test:coverage":"vitest run --config vitest.unit.config.ts --coverage","docker:test:up":"docker compose -f docker-compose.test.yml up -d","test:middleware":"vitest src/middleware","docker:test:down":"docker compose -f docker-compose.test.yml down","docker:test:logs":"docker compose -f docker-compose.test.yml logs -f","test:integration":"vitest --config vitest.integration.config.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:ac93c5d5-25a0-4325-a62a-9cc8f1028e8a"}},"_resolved":"/tmp/769befa703eeced5402a0059f859dbbe/spfn-core-0.1.0-alpha.88.tgz","_integrity":"sha512-zbSJ71OUGn6uzFoKBq0boK1DhKgW79dZcdORGhrjQYHRyV+EV5nqBd/FSn8CvoB01hGfsCTjXqIGJxE9/b0sIw==","repository":{"url":"git+https://github.com/spfn/spfn.git","type":"git","directory":"packages/core"},"_npmVersion":"11.6.2","description":"SPFN Framework Core - File-based routing, transactions, repository pattern","directories":{},"_nodeVersion":"20.19.5","dependencies":{"zod":"^4.1.11","hono":"^4.9.0","jiti":"^2.6.1","chalk":"^5.6.2","dotenv":"^17.2.3","chokidar":"^4.0.3","postgres":"^3.4.0","micromatch":"^4.0.8","typescript":"^5.3.3","drizzle-orm":"^0.44.7","drizzle-typebox":"^0.1.0","@hono/node-server":"^1.0.0","@sinclair/typebox":"^0.34.0"},"publishConfig":{"tag":"alpha","access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"next":"^16.0.1","tsup":"^8.5.0","vitest":"^4.0.6","@types/node":"^20.11.0","drizzle-kit":"^0.31.6","@types/micromatch":"^4.0.9","@vitest/coverage-v8":"^4.0.6"},"peerDependencies":{"next":"^16.0.1"},"optionalDependencies":{"ioredis":"^5.4.1"},"_npmOperationalInternal":{"tmp":"tmp/core_0.1.0-alpha.88_1762701461597_0.581357132486847","host":"s3://npm-registry-packages-npm-production"}},"0.2.0-beta.1":{"name":"@spfn/core","version":"0.2.0-beta.1","keywords":["spfn","nextjs","backend","framework","typescript","type-safe","api","rest-api","crud","database","orm","drizzle-orm","postgres","redis","hono","fullstack","server","scalable","auto-generated","file-based-routing","transaction","repository-pattern"],"author":{"name":"Ray Im","email":"rayim@inflike.com"},"license":"MIT","_id":"@spfn/core@0.2.0-beta.1","maintainers":[{"name":"superfunction","email":"rayim@inflike.com"}],"homepage":"https://github.com/spfn/spfn/tree/main/packages/core#readme","bugs":{"url":"https://github.com/spfn/spfn/issues"},"dist":{"shasum":"a19898cff2caea6234bac448ae4ef6e11f438445","tarball":"https://registry.npmjs.org/@spfn/core/-/core-0.2.0-beta.1.tgz","fileCount":51,"integrity":"sha512-d5RFXksylhPG05R6xkfddmb4JqTiCNwfzkZQiFcBZRppzc6NREele+iVJeFySBHm40Z1bpyHOlK8gRyqzCjzUw==","signatures":[{"sig":"MEYCIQDB9WfXEhbXfTcqR7tTE24WlIbiy33kjMEVLA9C2upbUgIhAK33xzcx0av9wg84BRZI3SDN9r93iaIK0RyNSfUOZk8j","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spfn%2fcore@0.2.0-beta.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1201446},"type":"module","_from":"file:spfn-core-0.2.0-beta.1.tgz","engines":{"node":">=18.18.0"},"exports":{"./db":{"types":"./dist/db/index.d.ts","import":"./dist/db/index.js","require":"./dist/db/index.js"},"./env":{"types":"./dist/env/index.d.ts","import":"./dist/env/index.js","require":"./dist/env/index.js"},"./job":{"types":"./dist/job/index.d.ts","import":"./dist/job/index.js","require":"./dist/job/index.js"},"./cache":{"types":"./dist/cache/index.d.ts","import":"./dist/cache/index.js","require":"./dist/cache/index.js"},"./event":{"types":"./dist/event/index.d.ts","import":"./dist/event/index.js","require":"./dist/event/index.js"},"./route":{"types":"./dist/route/index.d.ts","import":"./dist/route/index.js","require":"./dist/route/index.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","require":"./dist/client/index.js"},"./config":{"types":"./dist/config/index.d.ts","import":"./dist/config/index.js","require":"./dist/config/index.js"},"./errors":{"types":"./dist/errors/index.d.ts","import":"./dist/errors/index.js","require":"./dist/errors/index.js"},"./logger":{"types":"./dist/logger/index.d.ts","import":"./dist/logger/index.js","require":"./dist/logger/index.js"},"./nextjs":{"types":"./dist/nextjs/index.d.ts","import":"./dist/nextjs/index.js","require":"./dist/nextjs/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./codegen":{"types":"./dist/codegen/index.d.ts","import":"./dist/codegen/index.js","require":"./dist/codegen/index.js"},"./middleware":{"types":"./dist/middleware/index.d.ts","import":"./dist/middleware/index.js","require":"./dist/middleware/index.js"},"./route/types":{"types":"./dist/route/types.d.ts","import":"./dist/route/types.js","require":"./dist/route/types.js"},"./nextjs/server":{"types":"./dist/nextjs/server.d.ts","import":"./dist/nextjs/server.js","require":"./dist/nextjs/server.js"}},"scripts":{"dev":"tsup","test":"vitest run","build":"pnpm check:circular && tsup","test:db":"vitest run src/db --config vitest.integration.config.ts","test:env":"vitest run src/env","test:cache":"vitest run src/cache --config vitest.integration.config.ts","test:route":"vitest run src/route","test:watch":"vitest","type-check":"tsc --noEmit","test:client":"vitest run src/client","test:errors":"vitest run src/errors","test:logger":"vitest run src/logger","test:server":"vitest run src/server --config vitest.integration.config.ts","test:codegen":"vitest run src/codegen","test:coverage":"vitest run --config vitest.unit.config.ts --coverage","check:circular":"madge --circular --extensions ts src/","docker:test:up":"docker compose -f docker-compose.test.yml up -d","test:middleware":"vitest run src/middleware","docker:test:down":"docker compose -f docker-compose.test.yml down","docker:test:logs":"docker compose -f docker-compose.test.yml logs -f"},"_npmUser":{"name":"superfunction","email":"rayim@inflike.com"},"_resolved":"/tmp/259f4e11a93f8185baf29687b1e236c6/spfn-core-0.2.0-beta.1.tgz","_integrity":"sha512-d5RFXksylhPG05R6xkfddmb4JqTiCNwfzkZQiFcBZRppzc6NREele+iVJeFySBHm40Z1bpyHOlK8gRyqzCjzUw==","repository":{"url":"git+https://github.com/spfn/spfn.git","type":"git","directory":"packages/core"},"_npmVersion":"11.6.4","description":"SPFN Framework Core - File-based routing, transactions, repository pattern","directories":{},"_nodeVersion":"20.19.6","dependencies":{"zod":"^4.1.11","hono":"^4.10.6","jiti":"^2.6.1","chalk":"^5.6.2","dotenv":"^17.2.3","pg-boss":"^11.1.2","chokidar":"^4.0.3","postgres":"^3.4.0","micromatch":"^4.0.8","typescript":"^5.3.3","drizzle-orm":"^0.45.0","drizzle-typebox":"^0.1.0","@hono/node-server":"^1.0.0","@sinclair/typebox":"^0.34.0"},"publishConfig":{"tag":"alpha","access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"next":"16.0.7","tsup":"^8.5.0","madge":"^8.0.0","vitest":"^4.0.6","@types/node":"^20.11.0","drizzle-kit":"^0.31.6","@types/micromatch":"^4.0.9","@vitest/coverage-v8":"^4.0.6"},"peerDependencies":{"next":"^15.0.0 || ^16.0.0"},"optionalDependencies":{"ioredis":"^5.4.1"},"peerDependenciesMeta":{"next":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/core_0.2.0-beta.1_1765168903711_0.837089986377455","host":"s3://npm-registry-packages-npm-production"}},"0.2.0-beta.2":{"name":"@spfn/core","version":"0.2.0-beta.2","keywords":["spfn","nextjs","backend","framework","typescript","type-safe","api","rest-api","crud","database","orm","drizzle-orm","postgres","redis","hono","fullstack","server","scalable","auto-generated","file-based-routing","transaction","repository-pattern"],"author":{"name":"Ray Im","email":"rayim@inflike.com"},"license":"MIT","_id":"@spfn/core@0.2.0-beta.2","maintainers":[{"name":"superfunction","email":"rayim@inflike.com"}],"homepage":"https://github.com/spfn/spfn/tree/main/packages/core#readme","bugs":{"url":"https://github.com/spfn/spfn/issues"},"dist":{"shasum":"a2c52f3d4ffe8f763b16b2d916e15123b9b2f94b","tarball":"https://registry.npmjs.org/@spfn/core/-/core-0.2.0-beta.2.tgz","fileCount":51,"integrity":"sha512-E5sj6swJeCmneO22930gdY6n6uBIRP57lOVm6u8by/SjExMErsKm74BCXL+1o3zRFmFjR1uX3FPfePgMNXeaAA==","signatures":[{"sig":"MEQCIGWGJ95R+efVJhY9Q2pdoM5pGaFB85K8vvhvQOsWE1K9AiBpm1dnNf8dHvpy2Rr753cLD20rhBbSeeoBlhNqJ3CB1g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spfn%2fcore@0.2.0-beta.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1202356},"type":"module","_from":"file:spfn-core-0.2.0-beta.2.tgz","engines":{"node":">=18.18.0"},"exports":{"./db":{"types":"./dist/db/index.d.ts","import":"./dist/db/index.js","require":"./dist/db/index.js"},"./env":{"types":"./dist/env/index.d.ts","import":"./dist/env/index.js","require":"./dist/env/index.js"},"./job":{"types":"./dist/job/index.d.ts","import":"./dist/job/index.js","require":"./dist/job/index.js"},"./cache":{"types":"./dist/cache/index.d.ts","import":"./dist/cache/index.js","require":"./dist/cache/index.js"},"./event":{"types":"./dist/event/index.d.ts","import":"./dist/event/index.js","require":"./dist/event/index.js"},"./route":{"types":"./dist/route/index.d.ts","import":"./dist/route/index.js","require":"./dist/route/index.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","require":"./dist/client/index.js"},"./config":{"types":"./dist/config/index.d.ts","import":"./dist/config/index.js","require":"./dist/config/index.js"},"./errors":{"types":"./dist/errors/index.d.ts","import":"./dist/errors/index.js","require":"./dist/errors/index.js"},"./logger":{"types":"./dist/logger/index.d.ts","import":"./dist/logger/index.js","require":"./dist/logger/index.js"},"./nextjs":{"types":"./dist/nextjs/index.d.ts","import":"./dist/nextjs/index.js","require":"./dist/nextjs/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./codegen":{"types":"./dist/codegen/index.d.ts","import":"./dist/codegen/index.js","require":"./dist/codegen/index.js"},"./middleware":{"types":"./dist/middleware/index.d.ts","import":"./dist/middleware/index.js","require":"./dist/middleware/index.js"},"./route/types":{"types":"./dist/route/types.d.ts","import":"./dist/route/types.js","require":"./dist/route/types.js"},"./nextjs/server":{"types":"./dist/nextjs/server.d.ts","import":"./dist/nextjs/server.js","require":"./dist/nextjs/server.js"}},"scripts":{"dev":"tsup","test":"vitest run","build":"pnpm check:circular && tsup","test:db":"vitest run src/db --config vitest.integration.config.ts","test:env":"vitest run src/env","test:cache":"vitest run src/cache --config vitest.integration.config.ts","test:route":"vitest run src/route","test:watch":"vitest","type-check":"tsc --noEmit","test:client":"vitest run src/client","test:errors":"vitest run src/errors","test:logger":"vitest run src/logger","test:server":"vitest run src/server --config vitest.integration.config.ts","test:codegen":"vitest run src/codegen","test:coverage":"vitest run --config vitest.unit.config.ts --coverage","check:circular":"madge --circular --extensions ts src/","docker:test:up":"docker compose -f docker-compose.test.yml up -d","test:middleware":"vitest run src/middleware","docker:test:down":"docker compose -f docker-compose.test.yml down","docker:test:logs":"docker compose -f docker-compose.test.yml logs -f"},"_npmUser":{"name":"superfunction","email":"rayim@inflike.com"},"_resolved":"/tmp/605f93620691d304b245c298facf1968/spfn-core-0.2.0-beta.2.tgz","_integrity":"sha512-E5sj6swJeCmneO22930gdY6n6uBIRP57lOVm6u8by/SjExMErsKm74BCXL+1o3zRFmFjR1uX3FPfePgMNXeaAA==","repository":{"url":"git+https://github.com/spfn/spfn.git","type":"git","directory":"packages/core"},"_npmVersion":"11.6.4","description":"SPFN Framework Core - File-based routing, transactions, repository pattern","directories":{},"_nodeVersion":"20.19.6","dependencies":{"zod":"^4.1.11","hono":"^4.10.6","jiti":"^2.6.1","chalk":"^5.6.2","dotenv":"^17.2.3","pg-boss":"^11.1.2","chokidar":"^4.0.3","postgres":"^3.4.0","micromatch":"^4.0.8","typescript":"^5.3.3","drizzle-orm":"^0.45.0","drizzle-typebox":"^0.1.0","@hono/node-server":"^1.0.0","@sinclair/typebox":"^0.34.0"},"publishConfig":{"tag":"alpha","access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"next":"16.0.7","tsup":"^8.5.0","madge":"^8.0.0","vitest":"^4.0.6","@types/node":"^20.11.0","drizzle-kit":"^0.31.6","@types/micromatch":"^4.0.9","@vitest/coverage-v8":"^4.0.6"},"peerDependencies":{"next":"^15.0.0 || ^16.0.0"},"optionalDependencies":{"ioredis":"^5.4.1"},"peerDependenciesMeta":{"next":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/core_0.2.0-beta.2_1765269294482_0.056307408457437313","host":"s3://npm-registry-packages-npm-production"}},"0.2.0-beta.3":{"name":"@spfn/core","version":"0.2.0-beta.3","keywords":["spfn","nextjs","backend","framework","typescript","type-safe","api","rest-api","crud","database","orm","drizzle-orm","postgres","redis","hono","fullstack","server","scalable","auto-generated","file-based-routing","transaction","repository-pattern"],"author":{"name":"Ray Im","email":"rayim@inflike.com"},"license":"MIT","_id":"@spfn/core@0.2.0-beta.3","maintainers":[{"name":"superfunction","email":"rayim@inflike.com"}],"homepage":"https://github.com/spfn/spfn/tree/main/packages/core#readme","bugs":{"url":"https://github.com/spfn/spfn/issues"},"dist":{"shasum":"fb05433918651fc676e7a82aa9768e9df882e96a","tarball":"https://registry.npmjs.org/@spfn/core/-/core-0.2.0-beta.3.tgz","fileCount":51,"integrity":"sha512-TReEyzpcVFD67ykDJihFcgvB06PG3payKeG40UCvPFkJSk9VILUWgeDS1lY5kJ5kpvQrzPO6GaN450OFwGVKjw==","signatures":[{"sig":"MEUCIFpkJPPijIH5CUmbwwxSlvc2mv5CuX0dycHqc74G9IywAiEAkq67JNgrELk1rgX5Y0sdfirEOZ+sgWg4IVuV60bAC2w=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spfn%2fcore@0.2.0-beta.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1222366},"type":"module","_from":"file:spfn-core-0.2.0-beta.3.tgz","engines":{"node":">=18.18.0"},"exports":{"./db":{"types":"./dist/db/index.d.ts","import":"./dist/db/index.js","require":"./dist/db/index.js"},"./env":{"types":"./dist/env/index.d.ts","import":"./dist/env/index.js","require":"./dist/env/index.js"},"./job":{"types":"./dist/job/index.d.ts","import":"./dist/job/index.js","require":"./dist/job/index.js"},"./cache":{"types":"./dist/cache/index.d.ts","import":"./dist/cache/index.js","require":"./dist/cache/index.js"},"./event":{"types":"./dist/event/index.d.ts","import":"./dist/event/index.js","require":"./dist/event/index.js"},"./route":{"types":"./dist/route/index.d.ts","import":"./dist/route/index.js","require":"./dist/route/index.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","require":"./dist/client/index.js"},"./config":{"types":"./dist/config/index.d.ts","import":"./dist/config/index.js","require":"./dist/config/index.js"},"./errors":{"types":"./dist/errors/index.d.ts","import":"./dist/errors/index.js","require":"./dist/errors/index.js"},"./logger":{"types":"./dist/logger/index.d.ts","import":"./dist/logger/index.js","require":"./dist/logger/index.js"},"./nextjs":{"types":"./dist/nextjs/index.d.ts","import":"./dist/nextjs/index.js","require":"./dist/nextjs/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./codegen":{"types":"./dist/codegen/index.d.ts","import":"./dist/codegen/index.js","require":"./dist/codegen/index.js"},"./middleware":{"types":"./dist/middleware/index.d.ts","import":"./dist/middleware/index.js","require":"./dist/middleware/index.js"},"./route/types":{"types":"./dist/route/types.d.ts","import":"./dist/route/types.js","require":"./dist/route/types.js"},"./nextjs/server":{"types":"./dist/nextjs/server.d.ts","import":"./dist/nextjs/server.js","require":"./dist/nextjs/server.js"}},"scripts":{"dev":"tsup","test":"vitest run","build":"pnpm check:circular && tsup","test:db":"vitest run src/db --config vitest.integration.config.ts","test:env":"vitest run src/env","test:cache":"vitest run src/cache --config vitest.integration.config.ts","test:route":"vitest run src/route","test:watch":"vitest","type-check":"tsc --noEmit","test:client":"vitest run src/client","test:errors":"vitest run src/errors","test:logger":"vitest run src/logger","test:server":"vitest run src/server --config vitest.integration.config.ts","test:codegen":"vitest run src/codegen","test:coverage":"vitest run --config vitest.unit.config.ts --coverage","check:circular":"madge --circular --extensions ts src/","docker:test:up":"docker compose -f docker-compose.test.yml up -d","test:middleware":"vitest run src/middleware","docker:test:down":"docker compose -f docker-compose.test.yml down","docker:test:logs":"docker compose -f docker-compose.test.yml logs -f"},"_npmUser":{"name":"superfunction","email":"rayim@inflike.com"},"_resolved":"/tmp/1bda4d3def25ed96b294a50980facde3/spfn-core-0.2.0-beta.3.tgz","_integrity":"sha512-TReEyzpcVFD67ykDJihFcgvB06PG3payKeG40UCvPFkJSk9VILUWgeDS1lY5kJ5kpvQrzPO6GaN450OFwGVKjw==","repository":{"url":"git+https://github.com/spfn/spfn.git","type":"git","directory":"packages/core"},"_npmVersion":"11.7.0","description":"SPFN Framework Core - File-based routing, transactions, repository pattern","directories":{},"_nodeVersion":"20.19.6","dependencies":{"zod":"^4.1.11","hono":"^4.10.6","jiti":"^2.6.1","chalk":"^5.6.2","dotenv":"^17.2.3","pg-boss":"^11.1.2","chokidar":"^4.0.3","postgres":"^3.4.0","micromatch":"^4.0.8","typescript":"^5.3.3","drizzle-orm":"^0.45.0","drizzle-typebox":"^0.1.0","@hono/node-server":"^1.0.0","@sinclair/typebox":"^0.34.0"},"publishConfig":{"tag":"beta","access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"next":"16.0.7","tsup":"^8.5.0","madge":"^8.0.0","vitest":"^4.0.6","@types/node":"^20.11.0","drizzle-kit":"^0.31.6","@types/micromatch":"^4.0.9","@vitest/coverage-v8":"^4.0.6"},"peerDependencies":{"next":"^15.0.0 || ^16.0.0"},"optionalDependencies":{"ioredis":"^5.4.1"},"peerDependenciesMeta":{"next":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/core_0.2.0-beta.3_1765377024076_0.049338232096237666","host":"s3://npm-registry-packages-npm-production"}},"0.2.0-beta.4":{"name":"@spfn/core","version":"0.2.0-beta.4","keywords":["spfn","nextjs","backend","framework","typescript","type-safe","api","rest-api","crud","database","orm","drizzle-orm","postgres","redis","hono","fullstack","server","scalable","auto-generated","file-based-routing","transaction","repository-pattern"],"author":{"name":"Ray Im","email":"rayim@inflike.com"},"license":"MIT","_id":"@spfn/core@0.2.0-beta.4","maintainers":[{"name":"superfunction","email":"rayim@inflike.com"}],"homepage":"https://github.com/spfn/spfn/tree/main/packages/core#readme","bugs":{"url":"https://github.com/spfn/spfn/issues"},"dist":{"shasum":"7f7c575e9c4d26c23cc7ae127807ca9c2d8bc8ac","tarball":"https://registry.npmjs.org/@spfn/core/-/core-0.2.0-beta.4.tgz","fileCount":62,"integrity":"sha512-yKNqzOazxNjhzb6YX7b5KDc69t86E7JyLP4cyR8C3hN+lYMO+Z/nXiFu4dR3/wwLpo9UJuF2CV22UjzVAOoo/Q==","signatures":[{"sig":"MEYCIQDb4ppS473vO0DJkj4Ik1+bL1vzQAigDo7AeaWdQ+kxsQIhAICwxYLhFNOHFNjrxuXSd0a+bcRd1nt9jmKq5p7qoLAV","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spfn%2fcore@0.2.0-beta.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1299831},"type":"module","_from":"file:spfn-core-0.2.0-beta.4.tgz","engines":{"node":">=18.18.0"},"exports":{"./db":{"types":"./dist/db/index.d.ts","import":"./dist/db/index.js","require":"./dist/db/index.js"},"./env":{"types":"./dist/env/index.d.ts","import":"./dist/env/index.js","require":"./dist/env/index.js"},"./job":{"types":"./dist/job/index.d.ts","import":"./dist/job/index.js","require":"./dist/job/index.js"},"./cache":{"types":"./dist/cache/index.d.ts","import":"./dist/cache/index.js","require":"./dist/cache/index.js"},"./event":{"types":"./dist/event/index.d.ts","import":"./dist/event/index.js","require":"./dist/event/index.js"},"./route":{"types":"./dist/route/index.d.ts","import":"./dist/route/index.js","require":"./dist/route/index.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","require":"./dist/client/index.js"},"./config":{"types":"./dist/config/index.d.ts","import":"./dist/config/index.js","require":"./dist/config/index.js"},"./errors":{"types":"./dist/errors/index.d.ts","import":"./dist/errors/index.js","require":"./dist/errors/index.js"},"./logger":{"types":"./dist/logger/index.d.ts","import":"./dist/logger/index.js","require":"./dist/logger/index.js"},"./nextjs":{"types":"./dist/nextjs/index.d.ts","import":"./dist/nextjs/index.js","require":"./dist/nextjs/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./codegen":{"types":"./dist/codegen/index.d.ts","import":"./dist/codegen/index.js","require":"./dist/codegen/index.js"},"./event/sse":{"types":"./dist/event/sse/index.d.ts","import":"./dist/event/sse/index.js","require":"./dist/event/sse/index.js"},"./env/loader":{"types":"./dist/env/loader.d.ts","import":"./dist/env/loader.js","require":"./dist/env/loader.js"},"./middleware":{"types":"./dist/middleware/index.d.ts","import":"./dist/middleware/index.js","require":"./dist/middleware/index.js"},"./route/types":{"types":"./dist/route/types.d.ts","import":"./dist/route/types.js","require":"./dist/route/types.js"},"./nextjs/server":{"types":"./dist/nextjs/server.d.ts","import":"./dist/nextjs/server.js","require":"./dist/nextjs/server.js"},"./event/sse/client":{"types":"./dist/event/sse/client.d.ts","import":"./dist/event/sse/client.js","require":"./dist/event/sse/client.js"}},"scripts":{"dev":"tsup","test":"vitest run","build":"pnpm check:circular && tsup","test:db":"vitest run src/db --config vitest.integration.config.ts","test:env":"vitest run src/env","test:cache":"vitest run src/cache --config vitest.integration.config.ts","test:route":"vitest run src/route","test:watch":"vitest","type-check":"tsc --noEmit","test:client":"vitest run src/client","test:errors":"vitest run src/errors","test:logger":"vitest run src/logger","test:server":"vitest run src/server --config vitest.integration.config.ts","test:codegen":"vitest run src/codegen","test:coverage":"vitest run --config vitest.unit.config.ts --coverage","check:circular":"madge --circular --extensions ts src/","docker:test:up":"docker compose -f docker-compose.test.yml up -d","test:middleware":"vitest run src/middleware","docker:test:down":"docker compose -f docker-compose.test.yml down","docker:test:logs":"docker compose -f docker-compose.test.yml logs -f"},"_npmUser":{"name":"superfunction","email":"rayim@inflike.com"},"_resolved":"/tmp/c93dfe9d8d6aca61d10b0df495bdac39/spfn-core-0.2.0-beta.4.tgz","_integrity":"sha512-yKNqzOazxNjhzb6YX7b5KDc69t86E7JyLP4cyR8C3hN+lYMO+Z/nXiFu4dR3/wwLpo9UJuF2CV22UjzVAOoo/Q==","repository":{"url":"git+https://github.com/spfn/spfn.git","type":"git","directory":"packages/core"},"_npmVersion":"11.7.0","description":"SPFN Framework Core - File-based routing, transactions, repository pattern","directories":{},"_nodeVersion":"20.19.6","dependencies":{"zod":"^4.1.11","hono":"^4.10.6","jiti":"^2.6.1","chalk":"^5.6.2","dotenv":"^17.2.3","pg-boss":"^11.1.2","chokidar":"^4.0.3","postgres":"^3.4.0","micromatch":"^4.0.8","typescript":"^5.3.3","drizzle-orm":"^0.45.0","drizzle-typebox":"^0.1.0","@hono/node-server":"^1.0.0","@sinclair/typebox":"^0.34.0"},"publishConfig":{"tag":"beta","access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"next":"^16.0.0","tsup":"^8.5.0","madge":"^8.0.0","vitest":"^4.0.6","@types/node":"^20.11.0","drizzle-kit":"^0.31.6","@types/micromatch":"^4.0.9","@vitest/coverage-v8":"^4.0.6"},"peerDependencies":{"next":"^15.0.0 || ^16.0.0"},"optionalDependencies":{"ioredis":"^5.4.1"},"peerDependenciesMeta":{"next":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/core_0.2.0-beta.4_1765759088560_0.08012255458304263","host":"s3://npm-registry-packages-npm-production"}},"0.2.0-beta.5":{"name":"@spfn/core","version":"0.2.0-beta.5","keywords":["spfn","nextjs","backend","framework","typescript","type-safe","api","rest-api","crud","database","orm","drizzle-orm","postgres","redis","hono","fullstack","server","scalable","auto-generated","file-based-routing","transaction","repository-pattern"],"author":{"name":"Ray Im","email":"rayim@inflike.com"},"license":"MIT","_id":"@spfn/core@0.2.0-beta.5","maintainers":[{"name":"superfunction","email":"rayim@inflike.com"}],"homepage":"https://github.com/spfn/spfn/tree/main/packages/core#readme","bugs":{"url":"https://github.com/spfn/spfn/issues"},"dist":{"shasum":"3f03bfdc3606c9217902073f5eb2fa5b10334b42","tarball":"https://registry.npmjs.org/@spfn/core/-/core-0.2.0-beta.5.tgz","fileCount":62,"integrity":"sha512-6QLGUpA9w/inE0NRszzF3ifWCeFcdM4Wm1c1yFYvWGkESk4T2BVPSMlmwgIXSbhrBqIWjYKDOcBu/1SBzenlLQ==","signatures":[{"sig":"MEYCIQC2xvzlNW3Gy8bdoBFzvvXv4pz+CbxYX5evxCL8fE+LhAIhAKyY7MTaE0IgAKakJYsfY79iOadNR0v18u8QITjP8XIb","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spfn%2fcore@0.2.0-beta.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1311135},"type":"module","_from":"file:spfn-core-0.2.0-beta.5.tgz","engines":{"node":">=18.18.0"},"exports":{"./db":{"types":"./dist/db/index.d.ts","import":"./dist/db/index.js","require":"./dist/db/index.js"},"./env":{"types":"./dist/env/index.d.ts","import":"./dist/env/index.js","require":"./dist/env/index.js"},"./job":{"types":"./dist/job/index.d.ts","import":"./dist/job/index.js","require":"./dist/job/index.js"},"./cache":{"types":"./dist/cache/index.d.ts","import":"./dist/cache/index.js","require":"./dist/cache/index.js"},"./event":{"types":"./dist/event/index.d.ts","import":"./dist/event/index.js","require":"./dist/event/index.js"},"./route":{"types":"./dist/route/index.d.ts","import":"./dist/route/index.js","require":"./dist/route/index.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","require":"./dist/client/index.js"},"./config":{"types":"./dist/config/index.d.ts","import":"./dist/config/index.js","require":"./dist/config/index.js"},"./errors":{"types":"./dist/errors/index.d.ts","import":"./dist/errors/index.js","require":"./dist/errors/index.js"},"./logger":{"types":"./dist/logger/index.d.ts","import":"./dist/logger/index.js","require":"./dist/logger/index.js"},"./nextjs":{"types":"./dist/nextjs/index.d.ts","import":"./dist/nextjs/index.js","require":"./dist/nextjs/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./codegen":{"types":"./dist/codegen/index.d.ts","import":"./dist/codegen/index.js","require":"./dist/codegen/index.js"},"./event/sse":{"types":"./dist/event/sse/index.d.ts","import":"./dist/event/sse/index.js","require":"./dist/event/sse/index.js"},"./env/loader":{"types":"./dist/env/loader.d.ts","import":"./dist/env/loader.js","require":"./dist/env/loader.js"},"./middleware":{"types":"./dist/middleware/index.d.ts","import":"./dist/middleware/index.js","require":"./dist/middleware/index.js"},"./route/types":{"types":"./dist/route/types.d.ts","import":"./dist/route/types.js","require":"./dist/route/types.js"},"./nextjs/server":{"types":"./dist/nextjs/server.d.ts","import":"./dist/nextjs/server.js","require":"./dist/nextjs/server.js"},"./event/sse/client":{"types":"./dist/event/sse/client.d.ts","import":"./dist/event/sse/client.js","require":"./dist/event/sse/client.js"}},"scripts":{"dev":"tsup","test":"vitest run","build":"pnpm check:circular && tsup","test:db":"vitest run src/db --config vitest.integration.config.ts","test:env":"vitest run src/env","test:cache":"vitest run src/cache --config vitest.integration.config.ts","test:route":"vitest run src/route","test:watch":"vitest","type-check":"tsc --noEmit","test:client":"vitest run src/client","test:errors":"vitest run src/errors","test:logger":"vitest run src/logger","test:server":"vitest run src/server --config vitest.integration.config.ts","test:codegen":"vitest run src/codegen","test:coverage":"vitest run --config vitest.unit.config.ts --coverage","check:circular":"madge --circular --extensions ts src/","docker:test:up":"docker compose -f docker-compose.test.yml up -d","test:middleware":"vitest run src/middleware","docker:test:down":"docker compose -f docker-compose.test.yml down","docker:test:logs":"docker compose -f docker-compose.test.yml logs -f"},"_npmUser":{"name":"superfunction","email":"rayim@inflike.com"},"_resolved":"/tmp/70453d7a239db9a6e222f68ba469dac1/spfn-core-0.2.0-beta.5.tgz","_integrity":"sha512-6QLGUpA9w/inE0NRszzF3ifWCeFcdM4Wm1c1yFYvWGkESk4T2BVPSMlmwgIXSbhrBqIWjYKDOcBu/1SBzenlLQ==","repository":{"url":"git+https://github.com/spfn/spfn.git","type":"git","directory":"packages/core"},"_npmVersion":"11.7.0","description":"SPFN Framework Core - File-based routing, transactions, repository pattern","directories":{},"_nodeVersion":"20.19.6","dependencies":{"zod":"^4.1.11","hono":"^4.10.6","jiti":"^2.6.1","chalk":"^5.6.2","dotenv":"^17.2.3","pg-boss":"^11.1.2","chokidar":"^4.0.3","postgres":"^3.4.0","micromatch":"^4.0.8","typescript":"^5.3.3","drizzle-orm":"^0.45.0","drizzle-typebox":"^0.1.0","@hono/node-server":"^1.0.0","@sinclair/typebox":"^0.34.0"},"publishConfig":{"tag":"beta","access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"next":"^16.0.0","tsup":"^8.5.0","madge":"^8.0.0","vitest":"^4.0.6","@types/node":"^20.11.0","drizzle-kit":"^0.31.6","@types/micromatch":"^4.0.9","@vitest/coverage-v8":"^4.0.6"},"peerDependencies":{"next":"^15.0.0 || ^16.0.0"},"optionalDependencies":{"ioredis":"^5.4.1"},"peerDependenciesMeta":{"next":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/core_0.2.0-beta.5_1765878808004_0.15323549619099874","host":"s3://npm-registry-packages-npm-production"}},"0.2.0-beta.6":{"name":"@spfn/core","version":"0.2.0-beta.6","keywords":["spfn","nextjs","backend","framework","typescript","type-safe","api","rest-api","crud","database","orm","drizzle-orm","postgres","redis","hono","fullstack","server","scalable","auto-generated","file-based-routing","transaction","repository-pattern"],"author":{"name":"Ray Im","email":"rayim@inflike.com"},"license":"MIT","_id":"@spfn/core@0.2.0-beta.6","maintainers":[{"name":"superfunction","email":"rayim@inflike.com"}],"homepage":"https://github.com/spfn/spfn/tree/main/packages/core#readme","bugs":{"url":"https://github.com/spfn/spfn/issues"},"dist":{"shasum":"61b1c869c89f4a0c60ffebaf27f6010d120d3450","tarball":"https://registry.npmjs.org/@spfn/core/-/core-0.2.0-beta.6.tgz","fileCount":62,"integrity":"sha512-A9AysAvXMfQtb6KoXCBdsNloaT9Ee2LRnsVmYQr6cNJvojYZFMehkmwUlRgjtWvCCgXyKo7enjO4eaR5RR06vA==","signatures":[{"sig":"MEYCIQD+w9aKL3Catszaf9hrxuqe+nhc/OYQ1XYt7NDwlk5DFwIhAItUNLDa1mglc2QjOCoTh5L6v3RNMzMigNtud+BD3Fih","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spfn%2fcore@0.2.0-beta.6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1322451},"type":"module","_from":"file:spfn-core-0.2.0-beta.6.tgz","engines":{"node":">=18.18.0"},"exports":{"./db":{"types":"./dist/db/index.d.ts","import":"./dist/db/index.js","require":"./dist/db/index.js"},"./env":{"types":"./dist/env/index.d.ts","import":"./dist/env/index.js","require":"./dist/env/index.js"},"./job":{"types":"./dist/job/index.d.ts","import":"./dist/job/index.js","require":"./dist/job/index.js"},"./cache":{"types":"./dist/cache/index.d.ts","import":"./dist/cache/index.js","require":"./dist/cache/index.js"},"./event":{"types":"./dist/event/index.d.ts","import":"./dist/event/index.js","require":"./dist/event/index.js"},"./route":{"types":"./dist/route/index.d.ts","import":"./dist/route/index.js","require":"./dist/route/index.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","require":"./dist/client/index.js"},"./config":{"types":"./dist/config/index.d.ts","import":"./dist/config/index.js","require":"./dist/config/index.js"},"./errors":{"types":"./dist/errors/index.d.ts","import":"./dist/errors/index.js","require":"./dist/errors/index.js"},"./logger":{"types":"./dist/logger/index.d.ts","import":"./dist/logger/index.js","require":"./dist/logger/index.js"},"./nextjs":{"types":"./dist/nextjs/index.d.ts","import":"./dist/nextjs/index.js","require":"./dist/nextjs/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./codegen":{"types":"./dist/codegen/index.d.ts","import":"./dist/codegen/index.js","require":"./dist/codegen/index.js"},"./event/sse":{"types":"./dist/event/sse/index.d.ts","import":"./dist/event/sse/index.js","require":"./dist/event/sse/index.js"},"./env/loader":{"types":"./dist/env/loader.d.ts","import":"./dist/env/loader.js","require":"./dist/env/loader.js"},"./middleware":{"types":"./dist/middleware/index.d.ts","import":"./dist/middleware/index.js","require":"./dist/middleware/index.js"},"./route/types":{"types":"./dist/route/types.d.ts","import":"./dist/route/types.js","require":"./dist/route/types.js"},"./nextjs/server":{"types":"./dist/nextjs/server.d.ts","import":"./dist/nextjs/server.js","require":"./dist/nextjs/server.js"},"./event/sse/client":{"types":"./dist/event/sse/client.d.ts","import":"./dist/event/sse/client.js","require":"./dist/event/sse/client.js"}},"scripts":{"dev":"tsup","test":"vitest run","build":"pnpm check:circular && tsup","test:db":"vitest run src/db --config vitest.integration.config.ts","test:env":"vitest run src/env","test:cache":"vitest run src/cache --config vitest.integration.config.ts","test:route":"vitest run src/route","test:watch":"vitest","type-check":"tsc --noEmit","test:client":"vitest run src/client","test:errors":"vitest run src/errors","test:logger":"vitest run src/logger","test:server":"vitest run src/server --config vitest.integration.config.ts","test:codegen":"vitest run src/codegen","test:coverage":"vitest run --config vitest.unit.config.ts --coverage","check:circular":"madge --circular --extensions ts src/","docker:test:up":"docker compose -f docker-compose.test.yml up -d","test:middleware":"vitest run src/middleware","docker:test:down":"docker compose -f docker-compose.test.yml down","docker:test:logs":"docker compose -f docker-compose.test.yml logs -f"},"_npmUser":{"name":"superfunction","email":"rayim@inflike.com"},"_resolved":"/tmp/aa6a5bc3f97063c53103a0a38a5c25ff/spfn-core-0.2.0-beta.6.tgz","_integrity":"sha512-A9AysAvXMfQtb6KoXCBdsNloaT9Ee2LRnsVmYQr6cNJvojYZFMehkmwUlRgjtWvCCgXyKo7enjO4eaR5RR06vA==","repository":{"url":"git+https://github.com/spfn/spfn.git","type":"git","directory":"packages/core"},"_npmVersion":"11.7.0","description":"SPFN Framework Core - File-based routing, transactions, repository pattern","directories":{},"_nodeVersion":"20.19.6","dependencies":{"zod":"^4.1.11","hono":"^4.10.6","jiti":"^2.6.1","chalk":"^5.6.2","dotenv":"^17.2.3","pg-boss":"^11.1.2","chokidar":"^4.0.3","postgres":"^3.4.0","micromatch":"^4.0.8","typescript":"^5.3.3","drizzle-orm":"^0.45.0","drizzle-typebox":"^0.1.0","@hono/node-server":"^1.0.0","@sinclair/typebox":"^0.34.0"},"publishConfig":{"tag":"beta","access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"next":"^16.0.0","tsup":"^8.5.0","madge":"^8.0.0","vitest":"^4.0.6","@types/node":"^20.11.0","drizzle-kit":"^0.31.6","@types/micromatch":"^4.0.9","@vitest/coverage-v8":"^4.0.6"},"peerDependencies":{"next":"^15.0.0 || ^16.0.0"},"optionalDependencies":{"ioredis":"^5.4.1"},"peerDependenciesMeta":{"next":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/core_0.2.0-beta.6_1766465852552_0.3052643108024944","host":"s3://npm-registry-packages-npm-production"}},"0.2.0-beta.8":{"name":"@spfn/core","version":"0.2.0-beta.8","keywords":["spfn","nextjs","backend","framework","typescript","type-safe","api","rest-api","crud","database","orm","drizzle-orm","postgres","redis","hono","fullstack","server","scalable","auto-generated","file-based-routing","transaction","repository-pattern"],"author":{"name":"Ray Im","email":"rayim@inflike.com"},"license":"MIT","_id":"@spfn/core@0.2.0-beta.8","maintainers":[{"name":"superfunction","email":"rayim@inflike.com"}],"homepage":"https://github.com/spfn/spfn/tree/main/packages/core#readme","bugs":{"url":"https://github.com/spfn/spfn/issues"},"dist":{"shasum":"8e43a7774e6562b0b3cda2da8fe69738d0ff928b","tarball":"https://registry.npmjs.org/@spfn/core/-/core-0.2.0-beta.8.tgz","fileCount":77,"integrity":"sha512-5qYPJyPSU/ctZiCLu0IeyZBwEq3rynj/sW0aPxqvJaBZ2qzaQjlz/Eiu6bNMQuhTJagYA6QTVrdgOec2bhtS6Q==","signatures":[{"sig":"MEUCIQDspLCgYjWllo7Fu7+wdLPUz9Wu5CKYmuuW8kfbQOmtxgIgeCmMiNxB1I+0mEuAv9RIMZg3+V8vkKY05WwguaJ50s0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spfn%2fcore@0.2.0-beta.8","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1477067},"type":"module","_from":"file:spfn-core-0.2.0-beta.8.tgz","engines":{"node":">=18.18.0"},"exports":{"./db":{"types":"./dist/db/index.d.ts","import":"./dist/db/index.js","require":"./dist/db/index.js"},"./env":{"types":"./dist/env/index.d.ts","import":"./dist/env/index.js","require":"./dist/env/index.js"},"./job":{"types":"./dist/job/index.d.ts","import":"./dist/job/index.js","require":"./dist/job/index.js"},"./cache":{"types":"./dist/cache/index.d.ts","import":"./dist/cache/index.js","require":"./dist/cache/index.js"},"./event":{"types":"./dist/event/index.d.ts","import":"./dist/event/index.js","require":"./dist/event/index.js"},"./route":{"types":"./dist/route/index.d.ts","import":"./dist/route/index.js","require":"./dist/route/index.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","require":"./dist/client/index.js"},"./config":{"types":"./dist/config/index.d.ts","import":"./dist/config/index.js","require":"./dist/config/index.js"},"./errors":{"types":"./dist/errors/index.d.ts","import":"./dist/errors/index.js","require":"./dist/errors/index.js"},"./logger":{"types":"./dist/logger/index.d.ts","import":"./dist/logger/index.js","require":"./dist/logger/index.js"},"./nextjs":{"types":"./dist/nextjs/index.d.ts","import":"./dist/nextjs/index.js","require":"./dist/nextjs/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./codegen":{"types":"./dist/codegen/index.d.ts","import":"./dist/codegen/index.js","require":"./dist/codegen/index.js"},"./event/sse":{"types":"./dist/event/sse/index.d.ts","import":"./dist/event/sse/index.js","require":"./dist/event/sse/index.js"},"./env/loader":{"types":"./dist/env/loader.d.ts","import":"./dist/env/loader.js","require":"./dist/env/loader.js"},"./middleware":{"types":"./dist/middleware/index.d.ts","import":"./dist/middleware/index.js","require":"./dist/middleware/index.js"},"./route/types":{"types":"./dist/route/types.d.ts","import":"./dist/route/types.js","require":"./dist/route/types.js"},"./nextjs/server":{"types":"./dist/nextjs/server.d.ts","import":"./dist/nextjs/server.js","require":"./dist/nextjs/server.js"},"./event/sse/client":{"types":"./dist/event/sse/client.d.ts","import":"./dist/event/sse/client.js","require":"./dist/event/sse/client.js"}},"scripts":{"dev":"tsup","test":"vitest run","build":"pnpm check:circular && tsup","test:db":"vitest run src/db --config vitest.integration.config.ts","test:env":"vitest run src/env","test:cache":"vitest run src/cache --config vitest.integration.config.ts","test:route":"vitest run src/route","test:watch":"vitest","type-check":"tsc --noEmit","test:client":"vitest run src/client","test:errors":"vitest run src/errors","test:logger":"vitest run src/logger","test:server":"vitest run src/server --config vitest.integration.config.ts","test:codegen":"vitest run src/codegen","test:coverage":"vitest run --config vitest.unit.config.ts --coverage","check:circular":"madge --circular --extensions ts src/","docker:test:up":"docker compose -f docker-compose.test.yml up -d","test:middleware":"vitest run src/middleware","docker:test:down":"docker compose -f docker-compose.test.yml down","docker:test:logs":"docker compose -f docker-compose.test.yml logs -f"},"_npmUser":{"name":"superfunction","email":"rayim@inflike.com"},"_resolved":"/tmp/1ee4216cc9265e04246dce719639c9d4/spfn-core-0.2.0-beta.8.tgz","_integrity":"sha512-5qYPJyPSU/ctZiCLu0IeyZBwEq3rynj/sW0aPxqvJaBZ2qzaQjlz/Eiu6bNMQuhTJagYA6QTVrdgOec2bhtS6Q==","repository":{"url":"git+https://github.com/spfn/spfn.git","type":"git","directory":"packages/core"},"_npmVersion":"11.7.0","description":"SPFN Framework Core - File-based routing, transactions, repository pattern","directories":{},"_nodeVersion":"20.19.6","dependencies":{"zod":"^4.1.11","hono":"^4.10.6","jiti":"^2.6.1","chalk":"^5.6.2","dotenv":"^17.2.3","pg-boss":"^11.1.2","chokidar":"^4.0.3","postgres":"^3.4.0","micromatch":"^4.0.8","typescript":"^5.3.3","drizzle-orm":"^0.45.0","drizzle-typebox":"^0.1.0","@hono/node-server":"^1.0.0","@sinclair/typebox":"^0.34.0"},"publishConfig":{"tag":"beta","access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"next":"^16.0.0","tsup":"^8.5.0","madge":"^8.0.0","vitest":"^4.0.6","@types/node":"^20.11.0","drizzle-kit":"^0.31.6","@types/micromatch":"^4.0.9","@vitest/coverage-v8":"^4.0.6"},"peerDependencies":{"next":"^15.0.0 || ^16.0.0"},"optionalDependencies":{"ioredis":"^5.4.1"},"peerDependenciesMeta":{"next":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/core_0.2.0-beta.8_1768372129196_0.8035144686945248","host":"s3://npm-registry-packages-npm-production"}},"0.2.0-beta.9":{"name":"@spfn/core","version":"0.2.0-beta.9","keywords":["spfn","nextjs","backend","framework","typescript","type-safe","api","rest-api","crud","database","orm","drizzle-orm","postgres","redis","hono","fullstack","server","scalable","auto-generated","file-based-routing","transaction","repository-pattern"],"author":{"name":"Ray Im","email":"rayim@inflike.com"},"license":"MIT","_id":"@spfn/core@0.2.0-beta.9","maintainers":[{"name":"superfunction","email":"rayim@inflike.com"}],"homepage":"https://github.com/spfn/spfn/tree/main/packages/core#readme","bugs":{"url":"https://github.com/spfn/spfn/issues"},"dist":{"shasum":"d2e6ce60c37903e17175b4d650b82d588f4f8e95","tarball":"https://registry.npmjs.org/@spfn/core/-/core-0.2.0-beta.9.tgz","fileCount":77,"integrity":"sha512-vLdre8DINW1ych7cXTuqsueSabopQrOh0uT77L+0KnLqhKZORXXDw5hPje+/ufgluLI/X0ZnJNMO2+Bq3oc0Jw==","signatures":[{"sig":"MEUCIQDAYFGhyd4Oerjq9MyDfSCxgN5/K7IwYAjI9wDrJ65cMgIgU5jbnPvdptSnDwf7c78qwfj4bTd4misctqU2a1XLxdk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spfn%2fcore@0.2.0-beta.9","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1477092},"type":"module","_from":"file:spfn-core-0.2.0-beta.9.tgz","engines":{"node":">=18.18.0"},"exports":{"./db":{"types":"./dist/db/index.d.ts","import":"./dist/db/index.js","require":"./dist/db/index.js"},"./env":{"types":"./dist/env/index.d.ts","import":"./dist/env/index.js","require":"./dist/env/index.js"},"./job":{"types":"./dist/job/index.d.ts","import":"./dist/job/index.js","require":"./dist/job/index.js"},"./cache":{"types":"./dist/cache/index.d.ts","import":"./dist/cache/index.js","require":"./dist/cache/index.js"},"./event":{"types":"./dist/event/index.d.ts","import":"./dist/event/index.js","require":"./dist/event/index.js"},"./route":{"types":"./dist/route/index.d.ts","import":"./dist/route/index.js","require":"./dist/route/index.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","require":"./dist/client/index.js"},"./config":{"types":"./dist/config/index.d.ts","import":"./dist/config/index.js","require":"./dist/config/index.js"},"./errors":{"types":"./dist/errors/index.d.ts","import":"./dist/errors/index.js","require":"./dist/errors/index.js"},"./logger":{"types":"./dist/logger/index.d.ts","import":"./dist/logger/index.js","require":"./dist/logger/index.js"},"./nextjs":{"types":"./dist/nextjs/index.d.ts","import":"./dist/nextjs/index.js","require":"./dist/nextjs/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./codegen":{"types":"./dist/codegen/index.d.ts","import":"./dist/codegen/index.js","require":"./dist/codegen/index.js"},"./event/sse":{"types":"./dist/event/sse/index.d.ts","import":"./dist/event/sse/index.js","require":"./dist/event/sse/index.js"},"./env/loader":{"types":"./dist/env/loader.d.ts","import":"./dist/env/loader.js","require":"./dist/env/loader.js"},"./middleware":{"types":"./dist/middleware/index.d.ts","import":"./dist/middleware/index.js","require":"./dist/middleware/index.js"},"./route/types":{"types":"./dist/route/types.d.ts","import":"./dist/route/types.js","require":"./dist/route/types.js"},"./nextjs/server":{"types":"./dist/nextjs/server.d.ts","import":"./dist/nextjs/server.js","require":"./dist/nextjs/server.js"},"./event/sse/client":{"types":"./dist/event/sse/client.d.ts","import":"./dist/event/sse/client.js","require":"./dist/event/sse/client.js"}},"scripts":{"dev":"tsup","test":"vitest run","build":"pnpm check:circular && tsup","test:db":"vitest run src/db --config vitest.integration.config.ts","test:env":"vitest run src/env","test:cache":"vitest run src/cache --config vitest.integration.config.ts","test:route":"vitest run src/route","test:watch":"vitest","type-check":"tsc --noEmit","test:client":"vitest run src/client","test:errors":"vitest run src/errors","test:logger":"vitest run src/logger","test:server":"vitest run src/server --config vitest.integration.config.ts","test:codegen":"vitest run src/codegen","test:coverage":"vitest run --config vitest.unit.config.ts --coverage","check:circular":"madge --circular --extensions ts src/","docker:test:up":"docker compose -f docker-compose.test.yml up -d","test:middleware":"vitest run src/middleware","docker:test:down":"docker compose -f docker-compose.test.yml down","docker:test:logs":"docker compose -f docker-compose.test.yml logs -f"},"_npmUser":{"name":"superfunction","email":"rayim@inflike.com"},"_resolved":"/tmp/c0238e0ed8e76dc1a1859aebd82ff248/spfn-core-0.2.0-beta.9.tgz","_integrity":"sha512-vLdre8DINW1ych7cXTuqsueSabopQrOh0uT77L+0KnLqhKZORXXDw5hPje+/ufgluLI/X0ZnJNMO2+Bq3oc0Jw==","repository":{"url":"git+https://github.com/spfn/spfn.git","type":"git","directory":"packages/core"},"_npmVersion":"11.7.0","description":"SPFN Framework Core - File-based routing, transactions, repository pattern","directories":{},"_nodeVersion":"20.19.6","dependencies":{"zod":"^4.1.11","hono":"^4.10.6","jiti":"^2.6.1","chalk":"^5.6.2","dotenv":"^17.2.3","pg-boss":"^11.1.2","chokidar":"^4.0.3","postgres":"^3.4.0","micromatch":"^4.0.8","typescript":"^5.3.3","drizzle-orm":"^0.45.0","drizzle-typebox":"^0.1.0","@hono/node-server":"^1.0.0","@sinclair/typebox":"^0.34.0"},"publishConfig":{"tag":"beta","access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"next":"^16.0.0","tsup":"^8.5.0","madge":"^8.0.0","vitest":"^4.0.6","@types/node":"^20.11.0","drizzle-kit":"^0.31.6","@types/micromatch":"^4.0.9","@vitest/coverage-v8":"^4.0.6"},"peerDependencies":{"next":"^15.0.0 || ^16.0.0"},"optionalDependencies":{"ioredis":"^5.4.1"},"peerDependenciesMeta":{"next":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/core_0.2.0-beta.9_1768372890289_0.8439170104811342","host":"s3://npm-registry-packages-npm-production"}},"0.2.0-beta.10":{"name":"@spfn/core","version":"0.2.0-beta.10","keywords":["spfn","nextjs","backend","framework","typescript","type-safe","api","rest-api","crud","database","orm","drizzle-orm","postgres","redis","hono","fullstack","server","scalable","auto-generated","file-based-routing","transaction","repository-pattern"],"author":{"name":"Ray Im","email":"rayim@inflike.com"},"license":"MIT","_id":"@spfn/core@0.2.0-beta.10","maintainers":[{"name":"superfunction","email":"rayim@inflike.com"}],"homepage":"https://github.com/spfn/spfn/tree/main/packages/core#readme","bugs":{"url":"https://github.com/spfn/spfn/issues"},"dist":{"shasum":"f898114f890b905197999c686c90b7d9468a87e6","tarball":"https://registry.npmjs.org/@spfn/core/-/core-0.2.0-beta.10.tgz","fileCount":77,"integrity":"sha512-TQh1b/m1j4e5rrBpGjWeHZcw2jsJbPwpjnbCdBG+qCr6YYncxUTMLwO7Q42ziA8IXlE4GB7TIOSWuIcuRcUgzg==","signatures":[{"sig":"MEUCIQDI6SJBh0zwkYs0ol6+qLlf01h1kWZtz2JDksK+nNXBGAIgS4Bnn3UK6HcMU/c9ymYc5Sziykq+aV0HPVUUumAKNYw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spfn%2fcore@0.2.0-beta.10","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1479118},"type":"module","_from":"file:spfn-core-0.2.0-beta.10.tgz","engines":{"node":">=18.18.0"},"exports":{"./db":{"types":"./dist/db/index.d.ts","import":"./dist/db/index.js","require":"./dist/db/index.js"},"./env":{"types":"./dist/env/index.d.ts","import":"./dist/env/index.js","require":"./dist/env/index.js"},"./job":{"types":"./dist/job/index.d.ts","import":"./dist/job/index.js","require":"./dist/job/index.js"},"./cache":{"types":"./dist/cache/index.d.ts","import":"./dist/cache/index.js","require":"./dist/cache/index.js"},"./event":{"types":"./dist/event/index.d.ts","import":"./dist/event/index.js","require":"./dist/event/index.js"},"./route":{"types":"./dist/route/index.d.ts","import":"./dist/route/index.js","require":"./dist/route/index.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","require":"./dist/client/index.js"},"./config":{"types":"./dist/config/index.d.ts","import":"./dist/config/index.js","require":"./dist/config/index.js"},"./errors":{"types":"./dist/errors/index.d.ts","import":"./dist/errors/index.js","require":"./dist/errors/index.js"},"./logger":{"types":"./dist/logger/index.d.ts","import":"./dist/logger/index.js","require":"./dist/logger/index.js"},"./nextjs":{"types":"./dist/nextjs/index.d.ts","import":"./dist/nextjs/index.js","require":"./dist/nextjs/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./codegen":{"types":"./dist/codegen/index.d.ts","import":"./dist/codegen/index.js","require":"./dist/codegen/index.js"},"./event/sse":{"types":"./dist/event/sse/index.d.ts","import":"./dist/event/sse/index.js","require":"./dist/event/sse/index.js"},"./env/loader":{"types":"./dist/env/loader.d.ts","import":"./dist/env/loader.js","require":"./dist/env/loader.js"},"./middleware":{"types":"./dist/middleware/index.d.ts","import":"./dist/middleware/index.js","require":"./dist/middleware/index.js"},"./route/types":{"types":"./dist/route/types.d.ts","import":"./dist/route/types.js","require":"./dist/route/types.js"},"./nextjs/server":{"types":"./dist/nextjs/server.d.ts","import":"./dist/nextjs/server.js","require":"./dist/nextjs/server.js"},"./event/sse/client":{"types":"./dist/event/sse/client.d.ts","import":"./dist/event/sse/client.js","require":"./dist/event/sse/client.js"}},"scripts":{"dev":"tsup","test":"vitest run","build":"pnpm check:circular && tsup","test:db":"vitest run src/db --config vitest.integration.config.ts","test:env":"vitest run src/env","test:cache":"vitest run src/cache --config vitest.integration.config.ts","test:route":"vitest run src/route","test:watch":"vitest","type-check":"tsc --noEmit","test:client":"vitest run src/client","test:errors":"vitest run src/errors","test:logger":"vitest run src/logger","test:server":"vitest run src/server --config vitest.integration.config.ts","test:codegen":"vitest run src/codegen","test:coverage":"vitest run --config vitest.unit.config.ts --coverage","check:circular":"madge --circular --extensions ts src/","docker:test:up":"docker compose -f docker-compose.test.yml up -d","test:middleware":"vitest run src/middleware","docker:test:down":"docker compose -f docker-compose.test.yml down","docker:test:logs":"docker compose -f docker-compose.test.yml logs -f"},"_npmUser":{"name":"superfunction","email":"rayim@inflike.com"},"_resolved":"/tmp/5441cf5f402aa3ea9cac15a43777c241/spfn-core-0.2.0-beta.10.tgz","_integrity":"sha512-TQh1b/m1j4e5rrBpGjWeHZcw2jsJbPwpjnbCdBG+qCr6YYncxUTMLwO7Q42ziA8IXlE4GB7TIOSWuIcuRcUgzg==","repository":{"url":"git+https://github.com/spfn/spfn.git","type":"git","directory":"packages/core"},"_npmVersion":"11.7.0","description":"SPFN Framework Core - File-based routing, transactions, repository pattern","directories":{},"_nodeVersion":"20.19.6","dependencies":{"zod":"^4.1.11","hono":"^4.10.6","jiti":"^2.6.1","chalk":"^5.6.2","dotenv":"^17.2.3","pg-boss":"^11.1.2","chokidar":"^4.0.3","postgres":"^3.4.0","micromatch":"^4.0.8","typescript":"^5.3.3","drizzle-orm":"^0.45.0","drizzle-typebox":"^0.1.0","@hono/node-server":"^1.0.0","@sinclair/typebox":"^0.34.0"},"publishConfig":{"tag":"beta","access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"next":"^16.0.0","tsup":"^8.5.0","madge":"^8.0.0","vitest":"^4.0.6","@types/node":"^20.11.0","drizzle-kit":"^0.31.6","@types/micromatch":"^4.0.9","@vitest/coverage-v8":"^4.0.6"},"peerDependencies":{"next":"^15.0.0 || ^16.0.0"},"optionalDependencies":{"ioredis":"^5.4.1"},"peerDependenciesMeta":{"next":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/core_0.2.0-beta.10_1768373812827_0.7642163719135624","host":"s3://npm-registry-packages-npm-production"}},"0.2.0-beta.11":{"name":"@spfn/core","version":"0.2.0-beta.11","keywords":["spfn","nextjs","backend","framework","typescript","type-safe","api","rest-api","crud","database","orm","drizzle-orm","postgres","redis","hono","fullstack","server","scalable","auto-generated","file-based-routing","transaction","repository-pattern"],"author":{"name":"Ray Im","email":"rayim@inflike.com"},"license":"MIT","_id":"@spfn/core@0.2.0-beta.11","maintainers":[{"name":"superfunction","email":"rayim@inflike.com"}],"homepage":"https://github.com/spfn/spfn/tree/main/packages/core#readme","bugs":{"url":"https://github.com/spfn/spfn/issues"},"dist":{"shasum":"3dde66da00afba3845ae3b9a4cd1b2ac5e765990","tarball":"https://registry.npmjs.org/@spfn/core/-/core-0.2.0-beta.11.tgz","fileCount":77,"integrity":"sha512-yFENCFbHXyVu0bZ3pltozX47ULN3EfFkCCKixsAdkRqrBuyTpDREKoJYAmdoubaVuApABTvs6D1W1hh7ViKQnw==","signatures":[{"sig":"MEUCIQDA/E2HeFhlZty/eSEc1gPjhmiTjPay6W/WFIkfIHEpegIgZZ2O1/Q6Isxu8Js6WhtUpNSJrmkm0/xnSlmBDWDZaq4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spfn%2fcore@0.2.0-beta.11","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1479008},"type":"module","_from":"file:spfn-core-0.2.0-beta.11.tgz","engines":{"node":">=18.18.0"},"exports":{"./db":{"types":"./dist/db/index.d.ts","import":"./dist/db/index.js","require":"./dist/db/index.js"},"./env":{"types":"./dist/env/index.d.ts","import":"./dist/env/index.js","require":"./dist/env/index.js"},"./job":{"types":"./dist/job/index.d.ts","import":"./dist/job/index.js","require":"./dist/job/index.js"},"./cache":{"types":"./dist/cache/index.d.ts","import":"./dist/cache/index.js","require":"./dist/cache/index.js"},"./event":{"types":"./dist/event/index.d.ts","import":"./dist/event/index.js","require":"./dist/event/index.js"},"./route":{"types":"./dist/route/index.d.ts","import":"./dist/route/index.js","require":"./dist/route/index.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","require":"./dist/client/index.js"},"./config":{"types":"./dist/config/index.d.ts","import":"./dist/config/index.js","require":"./dist/config/index.js"},"./errors":{"types":"./dist/errors/index.d.ts","import":"./dist/errors/index.js","require":"./dist/errors/index.js"},"./logger":{"types":"./dist/logger/index.d.ts","import":"./dist/logger/index.js","require":"./dist/logger/index.js"},"./nextjs":{"types":"./dist/nextjs/index.d.ts","import":"./dist/nextjs/index.js","require":"./dist/nextjs/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./codegen":{"types":"./dist/codegen/index.d.ts","import":"./dist/codegen/index.js","require":"./dist/codegen/index.js"},"./event/sse":{"types":"./dist/event/sse/index.d.ts","import":"./dist/event/sse/index.js","require":"./dist/event/sse/index.js"},"./env/loader":{"types":"./dist/env/loader.d.ts","import":"./dist/env/loader.js","require":"./dist/env/loader.js"},"./middleware":{"types":"./dist/middleware/index.d.ts","import":"./dist/middleware/index.js","require":"./dist/middleware/index.js"},"./route/types":{"types":"./dist/route/types.d.ts","import":"./dist/route/types.js","require":"./dist/route/types.js"},"./nextjs/server":{"types":"./dist/nextjs/server.d.ts","import":"./dist/nextjs/server.js","require":"./dist/nextjs/server.js"},"./event/sse/client":{"types":"./dist/event/sse/client.d.ts","import":"./dist/event/sse/client.js","require":"./dist/event/sse/client.js"}},"scripts":{"dev":"tsup","test":"vitest run","build":"pnpm check:circular && tsup","test:db":"vitest run src/db --config vitest.integration.config.ts","test:env":"vitest run src/env","test:cache":"vitest run src/cache --config vitest.integration.config.ts","test:route":"vitest run src/route","test:watch":"vitest","type-check":"tsc --noEmit","test:client":"vitest run src/client","test:errors":"vitest run src/errors","test:logger":"vitest run src/logger","test:server":"vitest run src/server --config vitest.integration.config.ts","test:codegen":"vitest run src/codegen","test:coverage":"vitest run --config vitest.unit.config.ts --coverage","check:circular":"madge --circular --extensions ts src/","docker:test:up":"docker compose -f docker-compose.test.yml up -d","test:middleware":"vitest run src/middleware","docker:test:down":"docker compose -f docker-compose.test.yml down","docker:test:logs":"docker compose -f docker-compose.test.yml logs -f"},"_npmUser":{"name":"superfunction","email":"rayim@inflike.com"},"_resolved":"/tmp/934a619a46f00f807bb05f83538390a9/spfn-core-0.2.0-beta.11.tgz","_integrity":"sha512-yFENCFbHXyVu0bZ3pltozX47ULN3EfFkCCKixsAdkRqrBuyTpDREKoJYAmdoubaVuApABTvs6D1W1hh7ViKQnw==","repository":{"url":"git+https://github.com/spfn/spfn.git","type":"git","directory":"packages/core"},"_npmVersion":"11.8.0","description":"SPFN Framework Core - File-based routing, transactions, repository pattern","directories":{},"_nodeVersion":"20.20.0","dependencies":{"zod":"^4.1.11","hono":"^4.10.6","jiti":"^2.6.1","chalk":"^5.6.2","dotenv":"^17.2.3","pg-boss":"^11.1.2","chokidar":"^4.0.3","postgres":"^3.4.0","micromatch":"^4.0.8","typescript":"^5.3.3","drizzle-orm":"^0.45.0","drizzle-typebox":"^0.1.0","@hono/node-server":"^1.0.0","@sinclair/typebox":"^0.34.0"},"publishConfig":{"tag":"beta","access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"next":"^16.0.0","tsup":"^8.5.0","madge":"^8.0.0","vitest":"^4.0.6","@types/node":"^20.11.0","drizzle-kit":"^0.31.6","@types/micromatch":"^4.0.9","@vitest/coverage-v8":"^4.0.6"},"peerDependencies":{"next":"^15.0.0 || ^16.0.0"},"optionalDependencies":{"ioredis":"^5.4.1"},"peerDependenciesMeta":{"next":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/core_0.2.0-beta.11_1769344968950_0.40621793062613887","host":"s3://npm-registry-packages-npm-production"}},"0.2.0-beta.12":{"name":"@spfn/core","version":"0.2.0-beta.12","keywords":["spfn","nextjs","backend","framework","typescript","type-safe","api","rest-api","crud","database","orm","drizzle-orm","postgres","redis","hono","fullstack","server","scalable","auto-generated","file-based-routing","transaction","repository-pattern"],"author":{"name":"Ray Im","email":"rayim@inflike.com"},"license":"MIT","_id":"@spfn/core@0.2.0-beta.12","maintainers":[{"name":"superfunction","email":"rayim@inflike.com"}],"homepage":"https://github.com/spfn/spfn/tree/main/packages/core#readme","bugs":{"url":"https://github.com/spfn/spfn/issues"},"dist":{"shasum":"b587565a60c04828c26c6114730767bbee71f8b7","tarball":"https://registry.npmjs.org/@spfn/core/-/core-0.2.0-beta.12.tgz","fileCount":77,"integrity":"sha512-kkcgMy2J0wSe98dTNkSKspVWPj7D8G8TdbXSXCwp33TxwOPLbKEPqXoC8c2vHc77C+b86FuVhK+33FdpjeUCdg==","signatures":[{"sig":"MEQCIBWgSw4ePXWykewV9sGJiVWcvngpejrIG45OpQQzBl/yAiAN5FvKUCBqRu9uoet06zBIwdPEY4zXt7WE0iSt5zQyXA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spfn%2fcore@0.2.0-beta.12","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1486142},"type":"module","_from":"file:spfn-core-0.2.0-beta.12.tgz","engines":{"node":">=18.18.0"},"exports":{"./db":{"types":"./dist/db/index.d.ts","import":"./dist/db/index.js","require":"./dist/db/index.js"},"./env":{"types":"./dist/env/index.d.ts","import":"./dist/env/index.js","require":"./dist/env/index.js"},"./job":{"types":"./dist/job/index.d.ts","import":"./dist/job/index.js","require":"./dist/job/index.js"},"./cache":{"types":"./dist/cache/index.d.ts","import":"./dist/cache/index.js","require":"./dist/cache/index.js"},"./event":{"types":"./dist/event/index.d.ts","import":"./dist/event/index.js","require":"./dist/event/index.js"},"./route":{"types":"./dist/route/index.d.ts","import":"./dist/route/index.js","require":"./dist/route/index.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","require":"./dist/client/index.js"},"./config":{"types":"./dist/config/index.d.ts","import":"./dist/config/index.js","require":"./dist/config/index.js"},"./errors":{"types":"./dist/errors/index.d.ts","import":"./dist/errors/index.js","require":"./dist/errors/index.js"},"./logger":{"types":"./dist/logger/index.d.ts","import":"./dist/logger/index.js","require":"./dist/logger/index.js"},"./nextjs":{"types":"./dist/nextjs/index.d.ts","import":"./dist/nextjs/index.js","require":"./dist/nextjs/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./codegen":{"types":"./dist/codegen/index.d.ts","import":"./dist/codegen/index.js","require":"./dist/codegen/index.js"},"./event/sse":{"types":"./dist/event/sse/index.d.ts","import":"./dist/event/sse/index.js","require":"./dist/event/sse/index.js"},"./env/loader":{"types":"./dist/env/loader.d.ts","import":"./dist/env/loader.js","require":"./dist/env/loader.js"},"./middleware":{"types":"./dist/middleware/index.d.ts","import":"./dist/middleware/index.js","require":"./dist/middleware/index.js"},"./route/types":{"types":"./dist/route/types.d.ts","import":"./dist/route/types.js","require":"./dist/route/types.js"},"./nextjs/server":{"types":"./dist/nextjs/server.d.ts","import":"./dist/nextjs/server.js","require":"./dist/nextjs/server.js"},"./event/sse/client":{"types":"./dist/event/sse/client.d.ts","import":"./dist/event/sse/client.js","require":"./dist/event/sse/client.js"}},"scripts":{"dev":"tsup","test":"vitest run","build":"pnpm check:circular && tsup","test:db":"vitest run src/db --config vitest.integration.config.ts","test:env":"vitest run src/env","test:cache":"vitest run src/cache --config vitest.integration.config.ts","test:route":"vitest run src/route","test:watch":"vitest","type-check":"tsc --noEmit","test:client":"vitest run src/client","test:errors":"vitest run src/errors","test:logger":"vitest run src/logger","test:server":"vitest run src/server --config vitest.integration.config.ts","test:codegen":"vitest run src/codegen","test:coverage":"vitest run --config vitest.unit.config.ts --coverage","check:circular":"madge --circular --extensions ts src/","docker:test:up":"docker compose -f docker-compose.test.yml up -d","test:middleware":"vitest run src/middleware","docker:test:down":"docker compose -f docker-compose.test.yml down","docker:test:logs":"docker compose -f docker-compose.test.yml logs -f"},"_npmUser":{"name":"superfunction","email":"rayim@inflike.com"},"_resolved":"/tmp/fda8ef81bff6794715ac85e40277daa6/spfn-core-0.2.0-beta.12.tgz","_integrity":"sha512-kkcgMy2J0wSe98dTNkSKspVWPj7D8G8TdbXSXCwp33TxwOPLbKEPqXoC8c2vHc77C+b86FuVhK+33FdpjeUCdg==","repository":{"url":"git+https://github.com/spfn/spfn.git","type":"git","directory":"packages/core"},"_npmVersion":"11.8.0","description":"SPFN Framework Core - File-based routing, transactions, repository pattern","directories":{},"_nodeVersion":"20.20.0","dependencies":{"zod":"^4.1.11","hono":"^4.10.6","jiti":"^2.6.1","chalk":"^5.6.2","dotenv":"^17.2.3","pg-boss":"^11.1.2","chokidar":"^4.0.3","postgres":"^3.4.0","micromatch":"^4.0.8","typescript":"^5.3.3","drizzle-orm":"^0.45.0","drizzle-typebox":"^0.1.0","@hono/node-server":"^1.0.0","@sinclair/typebox":"^0.34.0"},"publishConfig":{"tag":"beta","access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"next":"^16.0.0","tsup":"^8.5.0","madge":"^8.0.0","vitest":"^4.0.6","@types/node":"^20.11.0","drizzle-kit":"^0.31.6","@types/micromatch":"^4.0.9","@vitest/coverage-v8":"^4.0.6"},"peerDependencies":{"next":"^15.0.0 || ^16.0.0"},"optionalDependencies":{"ioredis":"^5.4.1"},"peerDependenciesMeta":{"next":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/core_0.2.0-beta.12_1769482974113_0.7497885300390925","host":"s3://npm-registry-packages-npm-production"}},"0.2.0-beta.13":{"name":"@spfn/core","version":"0.2.0-beta.13","keywords":["spfn","nextjs","backend","framework","typescript","type-safe","api","rest-api","crud","database","orm","drizzle-orm","postgres","redis","hono","fullstack","server","scalable","auto-generated","file-based-routing","transaction","repository-pattern"],"author":{"name":"Ray Im","email":"rayim@inflike.com"},"license":"MIT","_id":"@spfn/core@0.2.0-beta.13","maintainers":[{"name":"superfunction","email":"rayim@inflike.com"}],"homepage":"https://github.com/spfn/spfn/tree/main/packages/core#readme","bugs":{"url":"https://github.com/spfn/spfn/issues"},"dist":{"shasum":"90f1541ae3bc023d2102c812d495776e05c53211","tarball":"https://registry.npmjs.org/@spfn/core/-/core-0.2.0-beta.13.tgz","fileCount":77,"integrity":"sha512-jq8oxyB2l4H5gVfpVUEUrpthJH/aY4P0NPO+Q3NVr1JIq9Rf8HGL0lItJQ48LQ3zAAHOX6Vwml9cfd/Aot8Eng==","signatures":[{"sig":"MEUCIQDZ+8QVqouLfqDwkrDW33kinEoGEHiIwY5nPNF3eue+fAIgZEwLVUWqvYxjs2mogqsyQcHcHz1MtKB5f3bT640AEAU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spfn%2fcore@0.2.0-beta.13","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1530397},"type":"module","_from":"file:spfn-core-0.2.0-beta.13.tgz","engines":{"node":">=18.18.0"},"exports":{"./db":{"types":"./dist/db/index.d.ts","import":"./dist/db/index.js","require":"./dist/db/index.js"},"./env":{"types":"./dist/env/index.d.ts","import":"./dist/env/index.js","require":"./dist/env/index.js"},"./job":{"types":"./dist/job/index.d.ts","import":"./dist/job/index.js","require":"./dist/job/index.js"},"./cache":{"types":"./dist/cache/index.d.ts","import":"./dist/cache/index.js","require":"./dist/cache/index.js"},"./event":{"types":"./dist/event/index.d.ts","import":"./dist/event/index.js","require":"./dist/event/index.js"},"./route":{"types":"./dist/route/index.d.ts","import":"./dist/route/index.js","require":"./dist/route/index.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","require":"./dist/client/index.js"},"./config":{"types":"./dist/config/index.d.ts","import":"./dist/config/index.js","require":"./dist/config/index.js"},"./errors":{"types":"./dist/errors/index.d.ts","import":"./dist/errors/index.js","require":"./dist/errors/index.js"},"./logger":{"types":"./dist/logger/index.d.ts","import":"./dist/logger/index.js","require":"./dist/logger/index.js"},"./nextjs":{"types":"./dist/nextjs/index.d.ts","import":"./dist/nextjs/index.js","require":"./dist/nextjs/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./codegen":{"types":"./dist/codegen/index.d.ts","import":"./dist/codegen/index.js","require":"./dist/codegen/index.js"},"./event/sse":{"types":"./dist/event/sse/index.d.ts","import":"./dist/event/sse/index.js","require":"./dist/event/sse/index.js"},"./env/loader":{"types":"./dist/env/loader.d.ts","import":"./dist/env/loader.js","require":"./dist/env/loader.js"},"./middleware":{"types":"./dist/middleware/index.d.ts","import":"./dist/middleware/index.js","require":"./dist/middleware/index.js"},"./route/types":{"types":"./dist/route/types.d.ts","import":"./dist/route/types.js","require":"./dist/route/types.js"},"./nextjs/server":{"types":"./dist/nextjs/server.d.ts","import":"./dist/nextjs/server.js","require":"./dist/nextjs/server.js"},"./event/sse/client":{"types":"./dist/event/sse/client.d.ts","import":"./dist/event/sse/client.js","require":"./dist/event/sse/client.js"}},"scripts":{"dev":"tsup","test":"vitest run","build":"pnpm check:circular && tsup","test:db":"vitest run src/db --config vitest.integration.config.ts","test:env":"vitest run src/env","test:cache":"vitest run src/cache --config vitest.integration.config.ts","test:route":"vitest run src/route","test:watch":"vitest","type-check":"tsc --noEmit","test:client":"vitest run src/client","test:errors":"vitest run src/errors","test:logger":"vitest run src/logger","test:server":"vitest run src/server --config vitest.integration.config.ts","test:codegen":"vitest run src/codegen","test:coverage":"vitest run --config vitest.unit.config.ts --coverage","check:circular":"madge --circular --extensions ts src/","docker:test:up":"docker compose -f docker-compose.test.yml up -d","test:middleware":"vitest run src/middleware","docker:test:down":"docker compose -f docker-compose.test.yml down","docker:test:logs":"docker compose -f docker-compose.test.yml logs -f"},"_npmUser":{"name":"superfunction","email":"rayim@inflike.com"},"_resolved":"/tmp/56c26e46e66ea82dce524608eafcc10a/spfn-core-0.2.0-beta.13.tgz","_integrity":"sha512-jq8oxyB2l4H5gVfpVUEUrpthJH/aY4P0NPO+Q3NVr1JIq9Rf8HGL0lItJQ48LQ3zAAHOX6Vwml9cfd/Aot8Eng==","repository":{"url":"git+https://github.com/spfn/spfn.git","type":"git","directory":"packages/core"},"_npmVersion":"11.10.0","description":"SPFN Framework Core - File-based routing, transactions, repository pattern","directories":{},"_nodeVersion":"20.20.0","dependencies":{"zod":"^4.1.11","hono":"^4.10.6","jiti":"^2.6.1","chalk":"^5.6.2","dotenv":"^17.2.3","pg-boss":"^11.1.2","chokidar":"^4.0.3","postgres":"^3.4.0","micromatch":"^4.0.8","typescript":"^5.3.3","drizzle-orm":"^0.45.0","drizzle-typebox":"^0.1.0","@hono/node-server":"^1.0.0","@sinclair/typebox":"^0.34.0"},"publishConfig":{"tag":"beta","access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"next":"^16.0.0","tsup":"^8.5.0","madge":"^8.0.0","vitest":"^4.0.6","@types/node":"^20.11.0","drizzle-kit":"^0.31.6","@types/micromatch":"^4.0.9","@vitest/coverage-v8":"^4.0.6"},"peerDependencies":{"next":"^15.0.0 || ^16.0.0"},"optionalDependencies":{"ioredis":"^5.4.1"},"peerDependenciesMeta":{"next":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/core_0.2.0-beta.13_1771080869265_0.07223205545280242","host":"s3://npm-registry-packages-npm-production"}},"0.2.0-beta.14":{"name":"@spfn/core","version":"0.2.0-beta.14","keywords":["spfn","nextjs","backend","framework","typescript","type-safe","api","rest-api","crud","database","orm","drizzle-orm","postgres","redis","hono","fullstack","server","scalable","auto-generated","file-based-routing","transaction","repository-pattern"],"author":{"name":"Ray Im","email":"rayim@inflike.com"},"license":"MIT","_id":"@spfn/core@0.2.0-beta.14","maintainers":[{"name":"superfunction","email":"rayim@inflike.com"}],"homepage":"https://github.com/spfn/spfn/tree/main/packages/core#readme","bugs":{"url":"https://github.com/spfn/spfn/issues"},"dist":{"shasum":"6873137fab62e79ee80d8bf94ba1bd20be4f5123","tarball":"https://registry.npmjs.org/@spfn/core/-/core-0.2.0-beta.14.tgz","fileCount":77,"integrity":"sha512-yC1I2HWtt0dWFrUpGqO35TKnp9mD5P8FfmgKiBX947qdoge9m5IINo8mN7JAFYb58evG/DMggR4fBSU7xTtkqQ==","signatures":[{"sig":"MEQCIEGrIDrGQq/TD7omwe+Vr4ItCMB8B/7MbenRuo0gGDyOAiBvqDefnXrp6ejn6rwjFodt31iJrKrhVxfw0it+O6AwYg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spfn%2fcore@0.2.0-beta.14","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1542209},"type":"module","_from":"file:spfn-core-0.2.0-beta.14.tgz","engines":{"node":">=18.18.0"},"exports":{"./db":{"types":"./dist/db/index.d.ts","import":"./dist/db/index.js","require":"./dist/db/index.js"},"./env":{"types":"./dist/env/index.d.ts","import":"./dist/env/index.js","require":"./dist/env/index.js"},"./job":{"types":"./dist/job/index.d.ts","import":"./dist/job/index.js","require":"./dist/job/index.js"},"./cache":{"types":"./dist/cache/index.d.ts","import":"./dist/cache/index.js","require":"./dist/cache/index.js"},"./event":{"types":"./dist/event/index.d.ts","import":"./dist/event/index.js","require":"./dist/event/index.js"},"./route":{"types":"./dist/route/index.d.ts","import":"./dist/route/index.js","require":"./dist/route/index.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","require":"./dist/client/index.js"},"./config":{"types":"./dist/config/index.d.ts","import":"./dist/config/index.js","require":"./dist/config/index.js"},"./errors":{"types":"./dist/errors/index.d.ts","import":"./dist/errors/index.js","require":"./dist/errors/index.js"},"./logger":{"types":"./dist/logger/index.d.ts","import":"./dist/logger/index.js","require":"./dist/logger/index.js"},"./nextjs":{"types":"./dist/nextjs/index.d.ts","import":"./dist/nextjs/index.js","require":"./dist/nextjs/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./codegen":{"types":"./dist/codegen/index.d.ts","import":"./dist/codegen/index.js","require":"./dist/codegen/index.js"},"./event/sse":{"types":"./dist/event/sse/index.d.ts","import":"./dist/event/sse/index.js","require":"./dist/event/sse/index.js"},"./env/loader":{"types":"./dist/env/loader.d.ts","import":"./dist/env/loader.js","require":"./dist/env/loader.js"},"./middleware":{"types":"./dist/middleware/index.d.ts","import":"./dist/middleware/index.js","require":"./dist/middleware/index.js"},"./route/types":{"types":"./dist/route/types.d.ts","import":"./dist/route/types.js","require":"./dist/route/types.js"},"./nextjs/server":{"types":"./dist/nextjs/server.d.ts","import":"./dist/nextjs/server.js","require":"./dist/nextjs/server.js"},"./event/sse/client":{"types":"./dist/event/sse/client.d.ts","import":"./dist/event/sse/client.js","require":"./dist/event/sse/client.js"}},"scripts":{"dev":"tsup","test":"vitest run","build":"pnpm check:circular && tsup","test:db":"vitest run src/db --config vitest.integration.config.ts","test:env":"vitest run src/env","test:cache":"vitest run src/cache --config vitest.integration.config.ts","test:route":"vitest run src/route","test:watch":"vitest","type-check":"tsc --noEmit","test:client":"vitest run src/client","test:errors":"vitest run src/errors","test:logger":"vitest run src/logger","test:server":"vitest run src/server --config vitest.integration.config.ts","test:codegen":"vitest run src/codegen","test:coverage":"vitest run --config vitest.unit.config.ts --coverage","check:circular":"madge --circular --extensions ts src/","docker:test:up":"docker compose -f docker-compose.test.yml up -d","test:middleware":"vitest run src/middleware","docker:test:down":"docker compose -f docker-compose.test.yml down","docker:test:logs":"docker compose -f docker-compose.test.yml logs -f"},"_npmUser":{"name":"superfunction","email":"rayim@inflike.com"},"_resolved":"/tmp/14aa94d6de59fdd3d98a9295ef8a4f03/spfn-core-0.2.0-beta.14.tgz","_integrity":"sha512-yC1I2HWtt0dWFrUpGqO35TKnp9mD5P8FfmgKiBX947qdoge9m5IINo8mN7JAFYb58evG/DMggR4fBSU7xTtkqQ==","repository":{"url":"git+https://github.com/spfn/spfn.git","type":"git","directory":"packages/core"},"_npmVersion":"11.10.0","description":"SPFN Framework Core - File-based routing, transactions, repository pattern","directories":{},"_nodeVersion":"20.20.0","dependencies":{"zod":"^4.1.11","hono":"^4.10.6","jiti":"^2.6.1","chalk":"^5.6.2","dotenv":"^17.2.3","pg-boss":"^11.1.2","chokidar":"^4.0.3","postgres":"^3.4.0","micromatch":"^4.0.8","typescript":"^5.3.3","drizzle-orm":"^0.45.0","drizzle-typebox":"^0.1.0","@hono/node-server":"^1.0.0","@sinclair/typebox":"^0.34.0"},"publishConfig":{"tag":"beta","access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"next":"^16.0.0","tsup":"^8.5.0","madge":"^8.0.0","vitest":"^4.0.6","@types/node":"^20.11.0","drizzle-kit":"^0.31.6","@types/micromatch":"^4.0.9","@vitest/coverage-v8":"^4.0.6"},"peerDependencies":{"next":"^15.0.0 || ^16.0.0"},"optionalDependencies":{"ioredis":"^5.4.1"},"peerDependenciesMeta":{"next":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/core_0.2.0-beta.14_1771217648917_0.8152778453349154","host":"s3://npm-registry-packages-npm-production"}},"0.2.0-beta.15":{"name":"@spfn/core","version":"0.2.0-beta.15","keywords":["spfn","nextjs","backend","framework","typescript","type-safe","api","rest-api","crud","database","orm","drizzle-orm","postgres","redis","hono","fullstack","server","scalable","auto-generated","file-based-routing","transaction","repository-pattern"],"author":{"name":"Ray Im","email":"rayim@inflike.com"},"license":"MIT","_id":"@spfn/core@0.2.0-beta.15","maintainers":[{"name":"superfunction","email":"rayim@inflike.com"}],"homepage":"https://github.com/spfn/spfn/tree/main/packages/core#readme","bugs":{"url":"https://github.com/spfn/spfn/issues"},"dist":{"shasum":"286130a66257a0147ae53eb1dc9c95d48a6211f8","tarball":"https://registry.npmjs.org/@spfn/core/-/core-0.2.0-beta.15.tgz","fileCount":77,"integrity":"sha512-x67CbF++MihHmZQIDvn1g6gFAHeDsi3KYNWOEUoSbmDSDcltVapFX8zBUQrw6NfSNG9I7ivFPmZfp7xLNL6Z2g==","signatures":[{"sig":"MEQCIDvr608bENzGL/h6Okk/lsr/xDil0ouX+LMKiKQ28UlqAiAdlvLzlwML4XVxP92koZhIvulJF+a97de15gA728WMJg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spfn%2fcore@0.2.0-beta.15","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1542319},"type":"module","_from":"file:spfn-core-0.2.0-beta.15.tgz","engines":{"node":">=18.18.0"},"exports":{"./db":{"types":"./dist/db/index.d.ts","import":"./dist/db/index.js","require":"./dist/db/index.js"},"./env":{"types":"./dist/env/index.d.ts","import":"./dist/env/index.js","require":"./dist/env/index.js"},"./job":{"types":"./dist/job/index.d.ts","import":"./dist/job/index.js","require":"./dist/job/index.js"},"./cache":{"types":"./dist/cache/index.d.ts","import":"./dist/cache/index.js","require":"./dist/cache/index.js"},"./event":{"types":"./dist/event/index.d.ts","import":"./dist/event/index.js","require":"./dist/event/index.js"},"./route":{"types":"./dist/route/index.d.ts","import":"./dist/route/index.js","require":"./dist/route/index.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","require":"./dist/client/index.js"},"./config":{"types":"./dist/config/index.d.ts","import":"./dist/config/index.js","require":"./dist/config/index.js"},"./errors":{"types":"./dist/errors/index.d.ts","import":"./dist/errors/index.js","require":"./dist/errors/index.js"},"./logger":{"types":"./dist/logger/index.d.ts","import":"./dist/logger/index.js","require":"./dist/logger/index.js"},"./nextjs":{"types":"./dist/nextjs/index.d.ts","import":"./dist/nextjs/index.js","require":"./dist/nextjs/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./codegen":{"types":"./dist/codegen/index.d.ts","import":"./dist/codegen/index.js","require":"./dist/codegen/index.js"},"./event/sse":{"types":"./dist/event/sse/index.d.ts","import":"./dist/event/sse/index.js","require":"./dist/event/sse/index.js"},"./env/loader":{"types":"./dist/env/loader.d.ts","import":"./dist/env/loader.js","require":"./dist/env/loader.js"},"./middleware":{"types":"./dist/middleware/index.d.ts","import":"./dist/middleware/index.js","require":"./dist/middleware/index.js"},"./route/types":{"types":"./dist/route/types.d.ts","import":"./dist/route/types.js","require":"./dist/route/types.js"},"./nextjs/server":{"types":"./dist/nextjs/server.d.ts","import":"./dist/nextjs/server.js","require":"./dist/nextjs/server.js"},"./event/sse/client":{"types":"./dist/event/sse/client.d.ts","import":"./dist/event/sse/client.js","require":"./dist/event/sse/client.js"}},"scripts":{"dev":"tsup","test":"vitest run","build":"pnpm check:circular && tsup","test:db":"vitest run src/db --config vitest.integration.config.ts","test:env":"vitest run src/env","test:cache":"vitest run src/cache --config vitest.integration.config.ts","test:route":"vitest run src/route","test:watch":"vitest","type-check":"tsc --noEmit","test:client":"vitest run src/client","test:errors":"vitest run src/errors","test:logger":"vitest run src/logger","test:server":"vitest run src/server --config vitest.integration.config.ts","test:codegen":"vitest run src/codegen","test:coverage":"vitest run --config vitest.unit.config.ts --coverage","check:circular":"madge --circular --extensions ts src/","docker:test:up":"docker compose -f docker-compose.test.yml up -d","test:middleware":"vitest run src/middleware","docker:test:down":"docker compose -f docker-compose.test.yml down","docker:test:logs":"docker compose -f docker-compose.test.yml logs -f"},"_npmUser":{"name":"superfunction","email":"rayim@inflike.com"},"_resolved":"/tmp/dd66542ef74aa453427bf50bc589f11d/spfn-core-0.2.0-beta.15.tgz","_integrity":"sha512-x67CbF++MihHmZQIDvn1g6gFAHeDsi3KYNWOEUoSbmDSDcltVapFX8zBUQrw6NfSNG9I7ivFPmZfp7xLNL6Z2g==","repository":{"url":"git+https://github.com/spfn/spfn.git","type":"git","directory":"packages/core"},"_npmVersion":"11.10.0","description":"SPFN Framework Core - File-based routing, transactions, repository pattern","directories":{},"_nodeVersion":"20.20.0","dependencies":{"zod":"^4.1.11","hono":"^4.10.6","jiti":"^2.6.1","chalk":"^5.6.2","dotenv":"^17.2.3","pg-boss":"^11.1.2","chokidar":"^4.0.3","postgres":"^3.4.0","micromatch":"^4.0.8","typescript":"^5.3.3","drizzle-orm":"^0.45.0","drizzle-typebox":"^0.1.0","@hono/node-server":"^1.0.0","@sinclair/typebox":"^0.34.0"},"publishConfig":{"tag":"beta","access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"next":"^16.0.0","tsup":"^8.5.0","madge":"^8.0.0","vitest":"^4.0.6","@types/node":"^20.11.0","drizzle-kit":"^0.31.6","@types/micromatch":"^4.0.9","@vitest/coverage-v8":"^4.0.6"},"peerDependencies":{"next":"^15.0.0 || ^16.0.0"},"optionalDependencies":{"ioredis":"^5.4.1"},"peerDependenciesMeta":{"next":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/core_0.2.0-beta.15_1771300432802_0.5178678778105936","host":"s3://npm-registry-packages-npm-production"}},"0.2.0-beta.16":{"name":"@spfn/core","version":"0.2.0-beta.16","keywords":["spfn","nextjs","backend","framework","typescript","type-safe","api","rest-api","crud","database","orm","drizzle-orm","postgres","redis","hono","fullstack","server","scalable","auto-generated","file-based-routing","transaction","repository-pattern"],"author":{"name":"Ray Im","email":"rayim@inflike.com"},"license":"MIT","_id":"@spfn/core@0.2.0-beta.16","maintainers":[{"name":"superfunction","email":"rayim@inflike.com"}],"homepage":"https://github.com/spfn/spfn/tree/main/packages/core#readme","bugs":{"url":"https://github.com/spfn/spfn/issues"},"dist":{"shasum":"b5dff5facbe55a379117fa8443b54864afa26b11","tarball":"https://registry.npmjs.org/@spfn/core/-/core-0.2.0-beta.16.tgz","fileCount":77,"integrity":"sha512-1+SuATb7gSW0GWNPrOGfZouboPzW+YhMLqIeVbS7LGKYkWB/1tXZdvqrV05sIBoMn1qPuluY2+56A7R23Ik5zA==","signatures":[{"sig":"MEUCIDZHL9jtT4a3Ng2rN1pfb81+VGrBZv/Df5SvSXJj3I3CAiEAnCSa8jDtXCA7eMvplZryIcbqoqAt8B0eGOFumMdapIY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spfn%2fcore@0.2.0-beta.16","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1548290},"type":"module","_from":"file:spfn-core-0.2.0-beta.16.tgz","engines":{"node":">=18.18.0"},"exports":{"./db":{"types":"./dist/db/index.d.ts","import":"./dist/db/index.js","require":"./dist/db/index.js"},"./env":{"types":"./dist/env/index.d.ts","import":"./dist/env/index.js","require":"./dist/env/index.js"},"./job":{"types":"./dist/job/index.d.ts","import":"./dist/job/index.js","require":"./dist/job/index.js"},"./cache":{"types":"./dist/cache/index.d.ts","import":"./dist/cache/index.js","require":"./dist/cache/index.js"},"./event":{"types":"./dist/event/index.d.ts","import":"./dist/event/index.js","require":"./dist/event/index.js"},"./route":{"types":"./dist/route/index.d.ts","import":"./dist/route/index.js","require":"./dist/route/index.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","require":"./dist/client/index.js"},"./config":{"types":"./dist/config/index.d.ts","import":"./dist/config/index.js","require":"./dist/config/index.js"},"./errors":{"types":"./dist/errors/index.d.ts","import":"./dist/errors/index.js","require":"./dist/errors/index.js"},"./logger":{"types":"./dist/logger/index.d.ts","import":"./dist/logger/index.js","require":"./dist/logger/index.js"},"./nextjs":{"types":"./dist/nextjs/index.d.ts","import":"./dist/nextjs/index.js","require":"./dist/nextjs/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./codegen":{"types":"./dist/codegen/index.d.ts","import":"./dist/codegen/index.js","require":"./dist/codegen/index.js"},"./event/sse":{"types":"./dist/event/sse/index.d.ts","import":"./dist/event/sse/index.js","require":"./dist/event/sse/index.js"},"./env/loader":{"types":"./dist/env/loader.d.ts","import":"./dist/env/loader.js","require":"./dist/env/loader.js"},"./middleware":{"types":"./dist/middleware/index.d.ts","import":"./dist/middleware/index.js","require":"./dist/middleware/index.js"},"./route/types":{"types":"./dist/route/types.d.ts","import":"./dist/route/types.js","require":"./dist/route/types.js"},"./nextjs/server":{"types":"./dist/nextjs/server.d.ts","import":"./dist/nextjs/server.js","require":"./dist/nextjs/server.js"},"./event/sse/client":{"types":"./dist/event/sse/client.d.ts","import":"./dist/event/sse/client.js","require":"./dist/event/sse/client.js"}},"scripts":{"dev":"tsup","test":"vitest run","build":"pnpm check:circular && tsup","test:db":"vitest run src/db --config vitest.integration.config.ts","test:env":"vitest run src/env","test:cache":"vitest run src/cache --config vitest.integration.config.ts","test:route":"vitest run src/route","test:watch":"vitest","type-check":"tsc --noEmit","test:client":"vitest run src/client","test:errors":"vitest run src/errors","test:logger":"vitest run src/logger","test:server":"vitest run src/server --config vitest.integration.config.ts","test:codegen":"vitest run src/codegen","test:coverage":"vitest run --config vitest.unit.config.ts --coverage","check:circular":"madge --circular --extensions ts src/","docker:test:up":"docker compose -f docker-compose.test.yml up -d","test:middleware":"vitest run src/middleware","docker:test:down":"docker compose -f docker-compose.test.yml down","docker:test:logs":"docker compose -f docker-compose.test.yml logs -f"},"_npmUser":{"name":"superfunction","email":"rayim@inflike.com"},"_resolved":"/tmp/728601c475b6204edf4dbba216154b85/spfn-core-0.2.0-beta.16.tgz","_integrity":"sha512-1+SuATb7gSW0GWNPrOGfZouboPzW+YhMLqIeVbS7LGKYkWB/1tXZdvqrV05sIBoMn1qPuluY2+56A7R23Ik5zA==","repository":{"url":"git+https://github.com/spfn/spfn.git","type":"git","directory":"packages/core"},"_npmVersion":"11.10.0","description":"SPFN Framework Core - File-based routing, transactions, repository pattern","directories":{},"_nodeVersion":"20.20.0","dependencies":{"zod":"^4.1.11","hono":"^4.10.6","jiti":"^2.6.1","chalk":"^5.6.2","dotenv":"^17.2.3","pg-boss":"^11.1.2","chokidar":"^4.0.3","postgres":"^3.4.0","micromatch":"^4.0.8","typescript":"^5.3.3","drizzle-orm":"^0.45.0","drizzle-typebox":"^0.1.0","@hono/node-server":"^1.0.0","@sinclair/typebox":"^0.34.0"},"publishConfig":{"tag":"beta","access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"next":"^16.0.0","tsup":"^8.5.0","madge":"^8.0.0","vitest":"^4.0.6","@types/node":"^20.11.0","drizzle-kit":"^0.31.6","@types/micromatch":"^4.0.9","@vitest/coverage-v8":"^4.0.6"},"peerDependencies":{"next":"^15.0.0 || ^16.0.0"},"optionalDependencies":{"ioredis":"^5.4.1"},"peerDependenciesMeta":{"next":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/core_0.2.0-beta.16_1771313210642_0.11019632827010972","host":"s3://npm-registry-packages-npm-production"}},"0.2.0-beta.17":{"name":"@spfn/core","version":"0.2.0-beta.17","keywords":["spfn","nextjs","backend","framework","typescript","type-safe","api","rest-api","crud","database","orm","drizzle-orm","postgres","redis","hono","fullstack","server","scalable","auto-generated","file-based-routing","transaction","repository-pattern"],"author":{"name":"Ray Im","email":"rayim@inflike.com"},"license":"MIT","_id":"@spfn/core@0.2.0-beta.17","maintainers":[{"name":"superfunction","email":"rayim@inflike.com"}],"homepage":"https://github.com/spfn/spfn/tree/main/packages/core#readme","bugs":{"url":"https://github.com/spfn/spfn/issues"},"dist":{"shasum":"b9db6159ca1b91c9a971d4a79299b5043eb946f7","tarball":"https://registry.npmjs.org/@spfn/core/-/core-0.2.0-beta.17.tgz","fileCount":77,"integrity":"sha512-Vjo2Yt1VUXjZqmHGqAmEVbCHrAOZuAxmr19R2R05Bjob3VVJKhJdLxB7+OsViRUPEyyIFWRsS7qgx4+Q/UnmNQ==","signatures":[{"sig":"MEUCIC9aPO5NGDPJySPQnkeBgctbq1mtwMLq6qvQi/7rQ/AsAiEAlUJ3pr1bK0LyHEMN4nu1R5MzhN9oNlC2EwjtWogabzE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spfn%2fcore@0.2.0-beta.17","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1577176},"type":"module","_from":"file:spfn-core-0.2.0-beta.17.tgz","engines":{"node":">=18.18.0"},"exports":{"./db":{"types":"./dist/db/index.d.ts","import":"./dist/db/index.js","require":"./dist/db/index.js"},"./env":{"types":"./dist/env/index.d.ts","import":"./dist/env/index.js","require":"./dist/env/index.js"},"./job":{"types":"./dist/job/index.d.ts","import":"./dist/job/index.js","require":"./dist/job/index.js"},"./cache":{"types":"./dist/cache/index.d.ts","import":"./dist/cache/index.js","require":"./dist/cache/index.js"},"./event":{"types":"./dist/event/index.d.ts","import":"./dist/event/index.js","require":"./dist/event/index.js"},"./route":{"types":"./dist/route/index.d.ts","import":"./dist/route/index.js","require":"./dist/route/index.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","require":"./dist/client/index.js"},"./config":{"types":"./dist/config/index.d.ts","import":"./dist/config/index.js","require":"./dist/config/index.js"},"./errors":{"types":"./dist/errors/index.d.ts","import":"./dist/errors/index.js","require":"./dist/errors/index.js"},"./logger":{"types":"./dist/logger/index.d.ts","import":"./dist/logger/index.js","require":"./dist/logger/index.js"},"./nextjs":{"types":"./dist/nextjs/index.d.ts","import":"./dist/nextjs/index.js","require":"./dist/nextjs/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./codegen":{"types":"./dist/codegen/index.d.ts","import":"./dist/codegen/index.js","require":"./dist/codegen/index.js"},"./event/sse":{"types":"./dist/event/sse/index.d.ts","import":"./dist/event/sse/index.js","require":"./dist/event/sse/index.js"},"./env/loader":{"types":"./dist/env/loader.d.ts","import":"./dist/env/loader.js","require":"./dist/env/loader.js"},"./middleware":{"types":"./dist/middleware/index.d.ts","import":"./dist/middleware/index.js","require":"./dist/middleware/index.js"},"./route/types":{"types":"./dist/route/types.d.ts","import":"./dist/route/types.js","require":"./dist/route/types.js"},"./nextjs/server":{"types":"./dist/nextjs/server.d.ts","import":"./dist/nextjs/server.js","require":"./dist/nextjs/server.js"},"./event/sse/client":{"types":"./dist/event/sse/client.d.ts","import":"./dist/event/sse/client.js","require":"./dist/event/sse/client.js"}},"scripts":{"dev":"tsup","test":"vitest run","build":"pnpm check:circular && tsup","test:db":"vitest run src/db --config vitest.integration.config.ts","test:env":"vitest run src/env","test:cache":"vitest run src/cache --config vitest.integration.config.ts","test:route":"vitest run src/route","test:watch":"vitest","type-check":"tsc --noEmit","test:client":"vitest run src/client","test:errors":"vitest run src/errors","test:logger":"vitest run src/logger","test:server":"vitest run src/server --config vitest.integration.config.ts","test:codegen":"vitest run src/codegen","test:coverage":"vitest run --config vitest.unit.config.ts --coverage","check:circular":"madge --circular --extensions ts src/","docker:test:up":"docker compose -f docker-compose.test.yml up -d","test:middleware":"vitest run src/middleware","docker:test:down":"docker compose -f docker-compose.test.yml down","docker:test:logs":"docker compose -f docker-compose.test.yml logs -f"},"_npmUser":{"name":"superfunction","email":"rayim@inflike.com"},"_resolved":"/tmp/a7854add760dcb0805540947d1dc595e/spfn-core-0.2.0-beta.17.tgz","_integrity":"sha512-Vjo2Yt1VUXjZqmHGqAmEVbCHrAOZuAxmr19R2R05Bjob3VVJKhJdLxB7+OsViRUPEyyIFWRsS7qgx4+Q/UnmNQ==","repository":{"url":"git+https://github.com/spfn/spfn.git","type":"git","directory":"packages/core"},"_npmVersion":"11.10.0","description":"SPFN Framework Core - File-based routing, transactions, repository pattern","directories":{},"_nodeVersion":"20.20.0","dependencies":{"zod":"^4.1.11","hono":"^4.10.6","jiti":"^2.6.1","chalk":"^5.6.2","dotenv":"^17.2.3","pg-boss":"^11.1.2","chokidar":"^4.0.3","postgres":"^3.4.0","micromatch":"^4.0.8","typescript":"^5.3.3","drizzle-orm":"^0.45.0","drizzle-typebox":"^0.1.0","@hono/node-server":"^1.0.0","@sinclair/typebox":"^0.34.0"},"publishConfig":{"tag":"beta","access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"next":"^16.0.0","tsup":"^8.5.0","madge":"^8.0.0","vitest":"^4.0.6","@types/node":"^20.11.0","drizzle-kit":"^0.31.6","@types/micromatch":"^4.0.9","@vitest/coverage-v8":"^4.0.6"},"peerDependencies":{"next":"^15.0.0 || ^16.0.0"},"optionalDependencies":{"ioredis":"^5.4.1"},"peerDependenciesMeta":{"next":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/core_0.2.0-beta.17_1771421812018_0.8441735441521772","host":"s3://npm-registry-packages-npm-production"}},"0.2.0-beta.18":{"name":"@spfn/core","version":"0.2.0-beta.18","keywords":["spfn","nextjs","backend","framework","typescript","type-safe","api","rest-api","crud","database","orm","drizzle-orm","postgres","redis","hono","fullstack","server","scalable","auto-generated","file-based-routing","transaction","repository-pattern"],"author":{"name":"Ray Im","email":"rayim@inflike.com"},"license":"MIT","_id":"@spfn/core@0.2.0-beta.18","maintainers":[{"name":"superfunction","email":"rayim@inflike.com"}],"homepage":"https://github.com/spfn/spfn/tree/main/packages/core#readme","bugs":{"url":"https://github.com/spfn/spfn/issues"},"dist":{"shasum":"c4c89f731f748a673fa20dadb190f811cfde1418","tarball":"https://registry.npmjs.org/@spfn/core/-/core-0.2.0-beta.18.tgz","fileCount":77,"integrity":"sha512-BBDwM6OVLEAjUvMf+UqJN8cQjlCu4icXnNrBVQsrBfC3DbfE+n6j2Y/W+yuLn8z97CnJGb69hHyDLxYMNhewiw==","signatures":[{"sig":"MEUCIQCCwEEYid768v63S9X227krN+1pVxEawXISxUxj32Ri3AIgMdP8M9Gc2TaYWQW+1edQjpxgSPQX5WsCTba6zFEbmcY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spfn%2fcore@0.2.0-beta.18","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1581839},"type":"module","_from":"file:spfn-core-0.2.0-beta.18.tgz","engines":{"node":">=18.18.0"},"exports":{"./db":{"types":"./dist/db/index.d.ts","import":"./dist/db/index.js","require":"./dist/db/index.js"},"./env":{"types":"./dist/env/index.d.ts","import":"./dist/env/index.js","require":"./dist/env/index.js"},"./job":{"types":"./dist/job/index.d.ts","import":"./dist/job/index.js","require":"./dist/job/index.js"},"./cache":{"types":"./dist/cache/index.d.ts","import":"./dist/cache/index.js","require":"./dist/cache/index.js"},"./event":{"types":"./dist/event/index.d.ts","import":"./dist/event/index.js","require":"./dist/event/index.js"},"./route":{"types":"./dist/route/index.d.ts","import":"./dist/route/index.js","require":"./dist/route/index.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","require":"./dist/client/index.js"},"./config":{"types":"./dist/config/index.d.ts","import":"./dist/config/index.js","require":"./dist/config/index.js"},"./errors":{"types":"./dist/errors/index.d.ts","import":"./dist/errors/index.js","require":"./dist/errors/index.js"},"./logger":{"types":"./dist/logger/index.d.ts","import":"./dist/logger/index.js","require":"./dist/logger/index.js"},"./nextjs":{"types":"./dist/nextjs/index.d.ts","import":"./dist/nextjs/index.js","require":"./dist/nextjs/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./codegen":{"types":"./dist/codegen/index.d.ts","import":"./dist/codegen/index.js","require":"./dist/codegen/index.js"},"./event/sse":{"types":"./dist/event/sse/index.d.ts","import":"./dist/event/sse/index.js","require":"./dist/event/sse/index.js"},"./env/loader":{"types":"./dist/env/loader.d.ts","import":"./dist/env/loader.js","require":"./dist/env/loader.js"},"./middleware":{"types":"./dist/middleware/index.d.ts","import":"./dist/middleware/index.js","require":"./dist/middleware/index.js"},"./route/types":{"types":"./dist/route/types.d.ts","import":"./dist/route/types.js","require":"./dist/route/types.js"},"./nextjs/server":{"types":"./dist/nextjs/server.d.ts","import":"./dist/nextjs/server.js","require":"./dist/nextjs/server.js"},"./event/sse/client":{"types":"./dist/event/sse/client.d.ts","import":"./dist/event/sse/client.js","require":"./dist/event/sse/client.js"}},"scripts":{"dev":"tsup","test":"vitest run","build":"pnpm check:circular && tsup","test:db":"vitest run src/db --config vitest.integration.config.ts","test:env":"vitest run src/env","test:cache":"vitest run src/cache --config vitest.integration.config.ts","test:route":"vitest run src/route","test:watch":"vitest","type-check":"tsc --noEmit","test:client":"vitest run src/client","test:errors":"vitest run src/errors","test:logger":"vitest run src/logger","test:server":"vitest run src/server --config vitest.integration.config.ts","test:codegen":"vitest run src/codegen","test:coverage":"vitest run --config vitest.unit.config.ts --coverage","check:circular":"madge --circular --extensions ts src/","docker:test:up":"docker compose -f docker-compose.test.yml up -d","test:middleware":"vitest run src/middleware","docker:test:down":"docker compose -f docker-compose.test.yml down","docker:test:logs":"docker compose -f docker-compose.test.yml logs -f"},"_npmUser":{"name":"superfunction","email":"rayim@inflike.com"},"_resolved":"/tmp/6f94556e22e39e0143db4529a2050b84/spfn-core-0.2.0-beta.18.tgz","_integrity":"sha512-BBDwM6OVLEAjUvMf+UqJN8cQjlCu4icXnNrBVQsrBfC3DbfE+n6j2Y/W+yuLn8z97CnJGb69hHyDLxYMNhewiw==","repository":{"url":"git+https://github.com/spfn/spfn.git","type":"git","directory":"packages/core"},"_npmVersion":"11.10.0","description":"SPFN Framework Core - File-based routing, transactions, repository pattern","directories":{},"_nodeVersion":"20.20.0","dependencies":{"zod":"^4.1.11","hono":"^4.10.6","jiti":"^2.6.1","chalk":"^5.6.2","dotenv":"^17.2.3","pg-boss":"^11.1.2","chokidar":"^4.0.3","postgres":"^3.4.0","micromatch":"^4.0.8","typescript":"^5.3.3","drizzle-orm":"^0.45.0","drizzle-typebox":"^0.1.0","@hono/node-server":"^1.0.0","@sinclair/typebox":"^0.34.0"},"publishConfig":{"tag":"beta","access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"next":"^16.0.0","tsup":"^8.5.0","madge":"^8.0.0","vitest":"^4.0.6","@types/node":"^20.11.0","drizzle-kit":"^0.31.6","@types/micromatch":"^4.0.9","@vitest/coverage-v8":"^4.0.6"},"peerDependencies":{"next":"^15.0.0 || ^16.0.0"},"optionalDependencies":{"ioredis":"^5.4.1"},"peerDependenciesMeta":{"next":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/core_0.2.0-beta.18_1771478062857_0.8850123051797987","host":"s3://npm-registry-packages-npm-production"}},"0.2.0-beta.19":{"name":"@spfn/core","version":"0.2.0-beta.19","keywords":["spfn","nextjs","backend","framework","typescript","type-safe","api","rest-api","crud","database","orm","drizzle-orm","postgres","redis","hono","fullstack","server","scalable","auto-generated","file-based-routing","transaction","repository-pattern"],"author":{"name":"Ray Im","email":"rayim@inflike.com"},"license":"MIT","_id":"@spfn/core@0.2.0-beta.19","maintainers":[{"name":"superfunction","email":"rayim@inflike.com"}],"homepage":"https://github.com/spfn/spfn/tree/main/packages/core#readme","bugs":{"url":"https://github.com/spfn/spfn/issues"},"dist":{"shasum":"5500a9309feb028951b3e24c3184b72707ea33e0","tarball":"https://registry.npmjs.org/@spfn/core/-/core-0.2.0-beta.19.tgz","fileCount":77,"integrity":"sha512-T9/jNa1hOLLeYoh/aI1AgFoeTYUfYAMQCONpjZxfJ60MAQZvHCZF3Lp1bfh7LPGdRc0yUnbw3RjKh+t6ZnoHeg==","signatures":[{"sig":"MEUCIQCt/OCJux04yBV+DaVkyFTyPK5ZgRZMdAI/kekcolhzmQIgHyGtzgtxXIY9WHnIrHKEs7uLGBtbvwchKC5mYPg5rCk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spfn%2fcore@0.2.0-beta.19","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1583905},"type":"module","_from":"file:spfn-core-0.2.0-beta.19.tgz","engines":{"node":">=18.18.0"},"exports":{"./db":{"types":"./dist/db/index.d.ts","import":"./dist/db/index.js","require":"./dist/db/index.js"},"./env":{"types":"./dist/env/index.d.ts","import":"./dist/env/index.js","require":"./dist/env/index.js"},"./job":{"types":"./dist/job/index.d.ts","import":"./dist/job/index.js","require":"./dist/job/index.js"},"./cache":{"types":"./dist/cache/index.d.ts","import":"./dist/cache/index.js","require":"./dist/cache/index.js"},"./event":{"types":"./dist/event/index.d.ts","import":"./dist/event/index.js","require":"./dist/event/index.js"},"./route":{"types":"./dist/route/index.d.ts","import":"./dist/route/index.js","require":"./dist/route/index.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","require":"./dist/client/index.js"},"./config":{"types":"./dist/config/index.d.ts","import":"./dist/config/index.js","require":"./dist/config/index.js"},"./errors":{"types":"./dist/errors/index.d.ts","import":"./dist/errors/index.js","require":"./dist/errors/index.js"},"./logger":{"types":"./dist/logger/index.d.ts","import":"./dist/logger/index.js","require":"./dist/logger/index.js"},"./nextjs":{"types":"./dist/nextjs/index.d.ts","import":"./dist/nextjs/index.js","require":"./dist/nextjs/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./codegen":{"types":"./dist/codegen/index.d.ts","import":"./dist/codegen/index.js","require":"./dist/codegen/index.js"},"./event/sse":{"types":"./dist/event/sse/index.d.ts","import":"./dist/event/sse/index.js","require":"./dist/event/sse/index.js"},"./env/loader":{"types":"./dist/env/loader.d.ts","import":"./dist/env/loader.js","require":"./dist/env/loader.js"},"./middleware":{"types":"./dist/middleware/index.d.ts","import":"./dist/middleware/index.js","require":"./dist/middleware/index.js"},"./route/types":{"types":"./dist/route/types.d.ts","import":"./dist/route/types.js","require":"./dist/route/types.js"},"./nextjs/server":{"types":"./dist/nextjs/server.d.ts","import":"./dist/nextjs/server.js","require":"./dist/nextjs/server.js"},"./event/sse/client":{"types":"./dist/event/sse/client.d.ts","import":"./dist/event/sse/client.js","require":"./dist/event/sse/client.js"}},"scripts":{"dev":"tsup","test":"vitest run","build":"pnpm check:circular && tsup","test:db":"vitest run src/db --config vitest.integration.config.ts","test:env":"vitest run src/env","test:cache":"vitest run src/cache --config vitest.integration.config.ts","test:route":"vitest run src/route","test:watch":"vitest","type-check":"tsc --noEmit","test:client":"vitest run src/client","test:errors":"vitest run src/errors","test:logger":"vitest run src/logger","test:server":"vitest run src/server --config vitest.integration.config.ts","test:codegen":"vitest run src/codegen","test:coverage":"vitest run --config vitest.unit.config.ts --coverage","check:circular":"madge --circular --extensions ts src/","docker:test:up":"docker compose -f docker-compose.test.yml up -d","test:middleware":"vitest run src/middleware","docker:test:down":"docker compose -f docker-compose.test.yml down","docker:test:logs":"docker compose -f docker-compose.test.yml logs -f"},"_npmUser":{"name":"superfunction","email":"rayim@inflike.com"},"_resolved":"/tmp/5721cba034c7ae510670a998931e8f63/spfn-core-0.2.0-beta.19.tgz","_integrity":"sha512-T9/jNa1hOLLeYoh/aI1AgFoeTYUfYAMQCONpjZxfJ60MAQZvHCZF3Lp1bfh7LPGdRc0yUnbw3RjKh+t6ZnoHeg==","repository":{"url":"git+https://github.com/spfn/spfn.git","type":"git","directory":"packages/core"},"_npmVersion":"11.10.1","description":"SPFN Framework Core - File-based routing, transactions, repository pattern","directories":{},"_nodeVersion":"20.20.0","dependencies":{"zod":"^4.1.11","hono":"^4.10.6","jiti":"^2.6.1","chalk":"^5.6.2","dotenv":"^17.2.3","pg-boss":"^11.1.2","chokidar":"^4.0.3","postgres":"^3.4.0","micromatch":"^4.0.8","typescript":"^5.3.3","drizzle-orm":"^0.45.0","drizzle-typebox":"^0.1.0","@hono/node-server":"^1.0.0","@sinclair/typebox":"^0.34.0"},"publishConfig":{"tag":"beta","access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"next":"^16.0.0","tsup":"^8.5.0","madge":"^8.0.0","vitest":"^4.0.6","@types/node":"^20.11.0","drizzle-kit":"^0.31.6","@types/micromatch":"^4.0.9","@vitest/coverage-v8":"^4.0.6"},"peerDependencies":{"next":"^15.0.0 || ^16.0.0"},"optionalDependencies":{"ioredis":"^5.4.1"},"peerDependenciesMeta":{"next":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/core_0.2.0-beta.19_1771575839427_0.6186401549264562","host":"s3://npm-registry-packages-npm-production"}},"0.2.0-beta.20":{"name":"@spfn/core","version":"0.2.0-beta.20","keywords":["spfn","nextjs","backend","framework","typescript","type-safe","api","rest-api","crud","database","orm","drizzle-orm","postgres","redis","hono","fullstack","server","scalable","auto-generated","file-based-routing","transaction","repository-pattern"],"author":{"name":"Ray Im","email":"rayim@inflike.com"},"license":"MIT","_id":"@spfn/core@0.2.0-beta.20","maintainers":[{"name":"superfunction","email":"rayim@inflike.com"}],"homepage":"https://github.com/spfn/spfn/tree/main/packages/core#readme","bugs":{"url":"https://github.com/spfn/spfn/issues"},"dist":{"shasum":"03a2cf32987a6da60bd1ea3b074482164d4c39f4","tarball":"https://registry.npmjs.org/@spfn/core/-/core-0.2.0-beta.20.tgz","fileCount":77,"integrity":"sha512-PY5gITMAyWXttMhVf1fRIu3meQjXMl3LVbQrtjMzrG5HgthBGPbhUV5suCcCJ1GHuiVr2jsA1V3QmuZ21QZa8Q==","signatures":[{"sig":"MEQCIHncwFhmgGQZ1MelkX7tIyDOe59uoChwqIVL28SH9vQcAiA+O9TRspVkSZD5pTJBES6OVVrDJlp6IZGP3YvFRHeqVQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spfn%2fcore@0.2.0-beta.20","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1593230},"type":"module","_from":"file:spfn-core-0.2.0-beta.20.tgz","engines":{"node":">=18.18.0"},"exports":{"./db":{"types":"./dist/db/index.d.ts","import":"./dist/db/index.js","require":"./dist/db/index.js"},"./env":{"types":"./dist/env/index.d.ts","import":"./dist/env/index.js","require":"./dist/env/index.js"},"./job":{"types":"./dist/job/index.d.ts","import":"./dist/job/index.js","require":"./dist/job/index.js"},"./cache":{"types":"./dist/cache/index.d.ts","import":"./dist/cache/index.js","require":"./dist/cache/index.js"},"./event":{"types":"./dist/event/index.d.ts","import":"./dist/event/index.js","require":"./dist/event/index.js"},"./route":{"types":"./dist/route/index.d.ts","import":"./dist/route/index.js","require":"./dist/route/index.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","require":"./dist/client/index.js"},"./config":{"types":"./dist/config/index.d.ts","import":"./dist/config/index.js","require":"./dist/config/index.js"},"./errors":{"types":"./dist/errors/index.d.ts","import":"./dist/errors/index.js","require":"./dist/errors/index.js"},"./logger":{"types":"./dist/logger/index.d.ts","import":"./dist/logger/index.js","require":"./dist/logger/index.js"},"./nextjs":{"types":"./dist/nextjs/index.d.ts","import":"./dist/nextjs/index.js","require":"./dist/nextjs/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./codegen":{"types":"./dist/codegen/index.d.ts","import":"./dist/codegen/index.js","require":"./dist/codegen/index.js"},"./event/sse":{"types":"./dist/event/sse/index.d.ts","import":"./dist/event/sse/index.js","require":"./dist/event/sse/index.js"},"./env/loader":{"types":"./dist/env/loader.d.ts","import":"./dist/env/loader.js","require":"./dist/env/loader.js"},"./middleware":{"types":"./dist/middleware/index.d.ts","import":"./dist/middleware/index.js","require":"./dist/middleware/index.js"},"./route/types":{"types":"./dist/route/types.d.ts","import":"./dist/route/types.js","require":"./dist/route/types.js"},"./nextjs/server":{"types":"./dist/nextjs/server.d.ts","import":"./dist/nextjs/server.js","require":"./dist/nextjs/server.js"},"./event/sse/client":{"types":"./dist/event/sse/client.d.ts","import":"./dist/event/sse/client.js","require":"./dist/event/sse/client.js"}},"scripts":{"dev":"tsup","test":"vitest run","build":"pnpm check:circular && tsup","test:db":"vitest run src/db --config vitest.integration.config.ts","test:env":"vitest run src/env","test:cache":"vitest run src/cache --config vitest.integration.config.ts","test:route":"vitest run src/route","test:watch":"vitest","type-check":"tsc --noEmit","test:client":"vitest run src/client","test:errors":"vitest run src/errors","test:logger":"vitest run src/logger","test:server":"vitest run src/server --config vitest.integration.config.ts","test:codegen":"vitest run src/codegen","test:coverage":"vitest run --config vitest.unit.config.ts --coverage","check:circular":"madge --circular --extensions ts src/","docker:test:up":"docker compose -f docker-compose.test.yml up -d","test:middleware":"vitest run src/middleware","docker:test:down":"docker compose -f docker-compose.test.yml down","docker:test:logs":"docker compose -f docker-compose.test.yml logs -f"},"_npmUser":{"name":"superfunction","email":"rayim@inflike.com"},"_resolved":"/tmp/69187d15b6518174e5e12b86d17e42b5/spfn-core-0.2.0-beta.20.tgz","_integrity":"sha512-PY5gITMAyWXttMhVf1fRIu3meQjXMl3LVbQrtjMzrG5HgthBGPbhUV5suCcCJ1GHuiVr2jsA1V3QmuZ21QZa8Q==","repository":{"url":"git+https://github.com/spfn/spfn.git","type":"git","directory":"packages/core"},"_npmVersion":"11.10.1","description":"SPFN Framework Core - File-based routing, transactions, repository pattern","directories":{},"_nodeVersion":"20.20.0","dependencies":{"zod":"^4.1.11","hono":"^4.10.6","jiti":"^2.6.1","chalk":"^5.6.2","dotenv":"^17.2.3","undici":"^7.22.0","pg-boss":"^11.1.2","chokidar":"^4.0.3","postgres":"^3.4.0","micromatch":"^4.0.8","typescript":"^5.3.3","drizzle-orm":"^0.45.0","drizzle-typebox":"^0.1.0","@hono/node-server":"^1.0.0","@sinclair/typebox":"^0.34.0"},"publishConfig":{"tag":"beta","access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"next":"^16.0.0","tsup":"^8.5.0","madge":"^8.0.0","vitest":"^4.0.6","@types/node":"^20.11.0","drizzle-kit":"^0.31.6","@types/micromatch":"^4.0.9","@vitest/coverage-v8":"^4.0.6"},"peerDependencies":{"next":"^15.0.0 || ^16.0.0"},"optionalDependencies":{"ioredis":"^5.4.1"},"peerDependenciesMeta":{"next":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/core_0.2.0-beta.20_1771736736318_0.5196048809686313","host":"s3://npm-registry-packages-npm-production"}},"0.2.0-beta.21":{"name":"@spfn/core","version":"0.2.0-beta.21","keywords":["spfn","nextjs","backend","framework","typescript","type-safe","api","rest-api","crud","database","orm","drizzle-orm","postgres","redis","hono","fullstack","server","scalable","auto-generated","file-based-routing","transaction","repository-pattern"],"author":{"name":"Ray Im","email":"rayim@inflike.com"},"license":"MIT","_id":"@spfn/core@0.2.0-beta.21","maintainers":[{"name":"superfunction","email":"rayim@inflike.com"}],"homepage":"https://github.com/spfn/spfn/tree/main/packages/core#readme","bugs":{"url":"https://github.com/spfn/spfn/issues"},"dist":{"shasum":"0e41fa59243d62c71ef8d4b17a44a91030236e11","tarball":"https://registry.npmjs.org/@spfn/core/-/core-0.2.0-beta.21.tgz","fileCount":77,"integrity":"sha512-chVJyFZ+y1zIsEbOqzF/nIKA5DXY+DLoJpMfw/Xu2kDgTTbmI1W55wGflwV3dGPJeQgztnHpfAzUoe2F2azq1Q==","signatures":[{"sig":"MEUCIQCjPSHrqnLqaRImgnnVq5EBGSXFnBCqitw5i8UHuot+hAIgS8ihWmd/QW1yiC/E1L2se6c6d7TSMtWpW9OOoz+nZyc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spfn%2fcore@0.2.0-beta.21","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1594128},"type":"module","_from":"file:spfn-core-0.2.0-beta.21.tgz","engines":{"node":">=18.18.0"},"exports":{"./db":{"types":"./dist/db/index.d.ts","import":"./dist/db/index.js","require":"./dist/db/index.js"},"./env":{"types":"./dist/env/index.d.ts","import":"./dist/env/index.js","require":"./dist/env/index.js"},"./job":{"types":"./dist/job/index.d.ts","import":"./dist/job/index.js","require":"./dist/job/index.js"},"./cache":{"types":"./dist/cache/index.d.ts","import":"./dist/cache/index.js","require":"./dist/cache/index.js"},"./event":{"types":"./dist/event/index.d.ts","import":"./dist/event/index.js","require":"./dist/event/index.js"},"./route":{"types":"./dist/route/index.d.ts","import":"./dist/route/index.js","require":"./dist/route/index.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","require":"./dist/client/index.js"},"./config":{"types":"./dist/config/index.d.ts","import":"./dist/config/index.js","require":"./dist/config/index.js"},"./errors":{"types":"./dist/errors/index.d.ts","import":"./dist/errors/index.js","require":"./dist/errors/index.js"},"./logger":{"types":"./dist/logger/index.d.ts","import":"./dist/logger/index.js","require":"./dist/logger/index.js"},"./nextjs":{"types":"./dist/nextjs/index.d.ts","import":"./dist/nextjs/index.js","require":"./dist/nextjs/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./codegen":{"types":"./dist/codegen/index.d.ts","import":"./dist/codegen/index.js","require":"./dist/codegen/index.js"},"./event/sse":{"types":"./dist/event/sse/index.d.ts","import":"./dist/event/sse/index.js","require":"./dist/event/sse/index.js"},"./env/loader":{"types":"./dist/env/loader.d.ts","import":"./dist/env/loader.js","require":"./dist/env/loader.js"},"./middleware":{"types":"./dist/middleware/index.d.ts","import":"./dist/middleware/index.js","require":"./dist/middleware/index.js"},"./route/types":{"types":"./dist/route/types.d.ts","import":"./dist/route/types.js","require":"./dist/route/types.js"},"./nextjs/server":{"types":"./dist/nextjs/server.d.ts","import":"./dist/nextjs/server.js","require":"./dist/nextjs/server.js"},"./event/sse/client":{"types":"./dist/event/sse/client.d.ts","import":"./dist/event/sse/client.js","require":"./dist/event/sse/client.js"}},"scripts":{"dev":"tsup","test":"vitest run","build":"pnpm check:circular && tsup","test:db":"vitest run src/db --config vitest.integration.config.ts","test:env":"vitest run src/env","test:cache":"vitest run src/cache --config vitest.integration.config.ts","test:route":"vitest run src/route","test:watch":"vitest","type-check":"tsc --noEmit","test:client":"vitest run src/client","test:errors":"vitest run src/errors","test:logger":"vitest run src/logger","test:server":"vitest run src/server --config vitest.integration.config.ts","test:codegen":"vitest run src/codegen","test:coverage":"vitest run --config vitest.unit.config.ts --coverage","check:circular":"madge --circular --extensions ts src/","docker:test:up":"docker compose -f docker-compose.test.yml up -d","test:middleware":"vitest run src/middleware","docker:test:down":"docker compose -f docker-compose.test.yml down","docker:test:logs":"docker compose -f docker-compose.test.yml logs -f"},"_npmUser":{"name":"superfunction","email":"rayim@inflike.com"},"_resolved":"/tmp/be9cfe36c691b8af9261d035d3c390e4/spfn-core-0.2.0-beta.21.tgz","_integrity":"sha512-chVJyFZ+y1zIsEbOqzF/nIKA5DXY+DLoJpMfw/Xu2kDgTTbmI1W55wGflwV3dGPJeQgztnHpfAzUoe2F2azq1Q==","repository":{"url":"git+https://github.com/spfn/spfn.git","type":"git","directory":"packages/core"},"_npmVersion":"11.10.1","description":"SPFN Framework Core - File-based routing, transactions, repository pattern","directories":{},"_nodeVersion":"20.20.0","dependencies":{"zod":"^4.1.11","hono":"^4.10.6","jiti":"^2.6.1","chalk":"^5.6.2","dotenv":"^17.2.3","undici":"^7.22.0","pg-boss":"^11.1.2","chokidar":"^4.0.3","postgres":"^3.4.0","micromatch":"^4.0.8","typescript":"^5.3.3","drizzle-orm":"^0.45.0","drizzle-typebox":"^0.1.0","@hono/node-server":"^1.0.0","@sinclair/typebox":"^0.34.0"},"publishConfig":{"tag":"beta","access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"next":"^16.0.0","tsup":"^8.5.0","madge":"^8.0.0","vitest":"^4.0.6","@types/node":"^20.11.0","drizzle-kit":"^0.31.6","@types/micromatch":"^4.0.9","@vitest/coverage-v8":"^4.0.6"},"peerDependencies":{"next":"^15.0.0 || ^16.0.0"},"optionalDependencies":{"ioredis":"^5.4.1"},"peerDependenciesMeta":{"next":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/core_0.2.0-beta.21_1771745317137_0.9474213510090272","host":"s3://npm-registry-packages-npm-production"}},"0.2.0-beta.22":{"name":"@spfn/core","version":"0.2.0-beta.22","keywords":["spfn","nextjs","backend","framework","typescript","type-safe","api","rest-api","crud","database","orm","drizzle-orm","postgres","redis","hono","fullstack","server","scalable","auto-generated","file-based-routing","transaction","repository-pattern"],"author":{"name":"Ray Im","email":"rayim@inflike.com"},"license":"MIT","_id":"@spfn/core@0.2.0-beta.22","maintainers":[{"name":"superfunction","email":"rayim@inflike.com"}],"homepage":"https://github.com/spfn/spfn/tree/main/packages/core#readme","bugs":{"url":"https://github.com/spfn/spfn/issues"},"dist":{"shasum":"e9f903ba805674746308446e2183b2a144c69c7d","tarball":"https://registry.npmjs.org/@spfn/core/-/core-0.2.0-beta.22.tgz","fileCount":77,"integrity":"sha512-5amSv5jVp3HsXJy2Y9WdIjqQ11Cx3W5xf4MlN+KGxkLMpZZYa9A2qsRlz9sUiNp2vBXFNHInNElhz7xLDeYX3g==","signatures":[{"sig":"MEQCIAGHovSN9Se9yh4Q2RciknTEEQZ96I8aNJDzbGf7DeftAiB5MrQKaksmjtwbZLk1WHs2mSRGc9/IASMtZcDbIVo1vA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spfn%2fcore@0.2.0-beta.22","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1605086},"type":"module","_from":"file:spfn-core-0.2.0-beta.22.tgz","engines":{"node":">=18.18.0"},"exports":{"./db":{"types":"./dist/db/index.d.ts","import":"./dist/db/index.js","require":"./dist/db/index.js"},"./env":{"types":"./dist/env/index.d.ts","import":"./dist/env/index.js","require":"./dist/env/index.js"},"./job":{"types":"./dist/job/index.d.ts","import":"./dist/job/index.js","require":"./dist/job/index.js"},"./cache":{"types":"./dist/cache/index.d.ts","import":"./dist/cache/index.js","require":"./dist/cache/index.js"},"./event":{"types":"./dist/event/index.d.ts","import":"./dist/event/index.js","require":"./dist/event/index.js"},"./route":{"types":"./dist/route/index.d.ts","import":"./dist/route/index.js","require":"./dist/route/index.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","require":"./dist/client/index.js"},"./config":{"types":"./dist/config/index.d.ts","import":"./dist/config/index.js","require":"./dist/config/index.js"},"./errors":{"types":"./dist/errors/index.d.ts","import":"./dist/errors/index.js","require":"./dist/errors/index.js"},"./logger":{"types":"./dist/logger/index.d.ts","import":"./dist/logger/index.js","require":"./dist/logger/index.js"},"./nextjs":{"types":"./dist/nextjs/index.d.ts","import":"./dist/nextjs/index.js","require":"./dist/nextjs/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./codegen":{"types":"./dist/codegen/index.d.ts","import":"./dist/codegen/index.js","require":"./dist/codegen/index.js"},"./event/sse":{"types":"./dist/event/sse/index.d.ts","import":"./dist/event/sse/index.js","require":"./dist/event/sse/index.js"},"./env/loader":{"types":"./dist/env/loader.d.ts","import":"./dist/env/loader.js","require":"./dist/env/loader.js"},"./middleware":{"types":"./dist/middleware/index.d.ts","import":"./dist/middleware/index.js","require":"./dist/middleware/index.js"},"./route/types":{"types":"./dist/route/types.d.ts","import":"./dist/route/types.js","require":"./dist/route/types.js"},"./nextjs/server":{"types":"./dist/nextjs/server.d.ts","import":"./dist/nextjs/server.js","require":"./dist/nextjs/server.js"},"./event/sse/client":{"types":"./dist/event/sse/client.d.ts","import":"./dist/event/sse/client.js","require":"./dist/event/sse/client.js"}},"scripts":{"dev":"tsup","test":"vitest run","build":"pnpm check:circular && tsup","test:db":"vitest run src/db --config vitest.integration.config.ts","test:env":"vitest run src/env","test:cache":"vitest run src/cache --config vitest.integration.config.ts","test:route":"vitest run src/route","test:watch":"vitest","type-check":"tsc --noEmit","test:client":"vitest run src/client","test:errors":"vitest run src/errors","test:logger":"vitest run src/logger","test:server":"vitest run src/server --config vitest.integration.config.ts","test:codegen":"vitest run src/codegen","test:coverage":"vitest run --config vitest.unit.config.ts --coverage","check:circular":"madge --circular --extensions ts src/","docker:test:up":"docker compose -f docker-compose.test.yml up -d","test:middleware":"vitest run src/middleware","docker:test:down":"docker compose -f docker-compose.test.yml down","docker:test:logs":"docker compose -f docker-compose.test.yml logs -f"},"_npmUser":{"name":"superfunction","email":"rayim@inflike.com"},"_resolved":"/tmp/12bb791cb307f1d346a4b3dcc474c824/spfn-core-0.2.0-beta.22.tgz","_integrity":"sha512-5amSv5jVp3HsXJy2Y9WdIjqQ11Cx3W5xf4MlN+KGxkLMpZZYa9A2qsRlz9sUiNp2vBXFNHInNElhz7xLDeYX3g==","repository":{"url":"git+https://github.com/spfn/spfn.git","type":"git","directory":"packages/core"},"_npmVersion":"11.10.1","description":"SPFN Framework Core - File-based routing, transactions, repository pattern","directories":{},"_nodeVersion":"20.20.0","dependencies":{"zod":"^4.1.11","hono":"^4.10.6","jiti":"^2.6.1","chalk":"^5.6.2","dotenv":"^17.2.3","undici":"^7.22.0","pg-boss":"^11.1.2","chokidar":"^4.0.3","postgres":"^3.4.0","micromatch":"^4.0.8","typescript":"^5.3.3","drizzle-orm":"^0.45.0","drizzle-typebox":"^0.1.0","@hono/node-server":"^1.0.0","@sinclair/typebox":"^0.34.0"},"publishConfig":{"tag":"beta","access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"next":"^16.0.0","tsup":"^8.5.0","madge":"^8.0.0","vitest":"^4.0.6","@types/node":"^20.11.0","drizzle-kit":"^0.31.6","@types/micromatch":"^4.0.9","@vitest/coverage-v8":"^4.0.6"},"peerDependencies":{"next":"^15.0.0 || ^16.0.0"},"optionalDependencies":{"ioredis":"^5.4.1"},"peerDependenciesMeta":{"next":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/core_0.2.0-beta.22_1771752890332_0.8826211646659885","host":"s3://npm-registry-packages-npm-production"}},"0.2.0-beta.23":{"name":"@spfn/core","version":"0.2.0-beta.23","keywords":["spfn","nextjs","backend","framework","typescript","type-safe","api","rest-api","crud","database","orm","drizzle-orm","postgres","redis","hono","fullstack","server","scalable","auto-generated","file-based-routing","transaction","repository-pattern"],"author":{"name":"Ray Im","email":"rayim@inflike.com"},"license":"MIT","_id":"@spfn/core@0.2.0-beta.23","maintainers":[{"name":"superfunction","email":"rayim@inflike.com"}],"homepage":"https://github.com/spfn/spfn/tree/main/packages/core#readme","bugs":{"url":"https://github.com/spfn/spfn/issues"},"dist":{"shasum":"700a0051f6e959b5002d607a704dcbf8b1a2465b","tarball":"https://registry.npmjs.org/@spfn/core/-/core-0.2.0-beta.23.tgz","fileCount":77,"integrity":"sha512-qZLhm6FdW8v9+31w2AAJKPElNxT4COxI6DbE5gKESXbJ+sxBDH2x83vD5jPeLJ3x7QrTLGIuezhISpTDaNDIWA==","signatures":[{"sig":"MEUCIQDkBLGs3mpFUK02zQrx+/vJrkKMcxAQI2271GWZcW+SQwIgINll3/7vDi5kpjMH4xZNGv3pvKyyPb8E47zW2rPxIv0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spfn%2fcore@0.2.0-beta.23","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1608935},"type":"module","_from":"file:spfn-core-0.2.0-beta.23.tgz","engines":{"node":">=18.18.0"},"exports":{"./db":{"types":"./dist/db/index.d.ts","import":"./dist/db/index.js","require":"./dist/db/index.js"},"./env":{"types":"./dist/env/index.d.ts","import":"./dist/env/index.js","require":"./dist/env/index.js"},"./job":{"types":"./dist/job/index.d.ts","import":"./dist/job/index.js","require":"./dist/job/index.js"},"./cache":{"types":"./dist/cache/index.d.ts","import":"./dist/cache/index.js","require":"./dist/cache/index.js"},"./event":{"types":"./dist/event/index.d.ts","import":"./dist/event/index.js","require":"./dist/event/index.js"},"./route":{"types":"./dist/route/index.d.ts","import":"./dist/route/index.js","require":"./dist/route/index.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","require":"./dist/client/index.js"},"./config":{"types":"./dist/config/index.d.ts","import":"./dist/config/index.js","require":"./dist/config/index.js"},"./errors":{"types":"./dist/errors/index.d.ts","import":"./dist/errors/index.js","require":"./dist/errors/index.js"},"./logger":{"types":"./dist/logger/index.d.ts","import":"./dist/logger/index.js","require":"./dist/logger/index.js"},"./nextjs":{"types":"./dist/nextjs/index.d.ts","import":"./dist/nextjs/index.js","require":"./dist/nextjs/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./codegen":{"types":"./dist/codegen/index.d.ts","import":"./dist/codegen/index.js","require":"./dist/codegen/index.js"},"./event/sse":{"types":"./dist/event/sse/index.d.ts","import":"./dist/event/sse/index.js","require":"./dist/event/sse/index.js"},"./env/loader":{"types":"./dist/env/loader.d.ts","import":"./dist/env/loader.js","require":"./dist/env/loader.js"},"./middleware":{"types":"./dist/middleware/index.d.ts","import":"./dist/middleware/index.js","require":"./dist/middleware/index.js"},"./route/types":{"types":"./dist/route/types.d.ts","import":"./dist/route/types.js","require":"./dist/route/types.js"},"./nextjs/server":{"types":"./dist/nextjs/server.d.ts","import":"./dist/nextjs/server.js","require":"./dist/nextjs/server.js"},"./event/sse/client":{"types":"./dist/event/sse/client.d.ts","import":"./dist/event/sse/client.js","require":"./dist/event/sse/client.js"}},"scripts":{"dev":"tsup","test":"vitest run","build":"pnpm check:circular && tsup","test:db":"vitest run src/db --config vitest.integration.config.ts","test:env":"vitest run src/env","test:cache":"vitest run src/cache --config vitest.integration.config.ts","test:route":"vitest run src/route","test:watch":"vitest","type-check":"tsc --noEmit","test:client":"vitest run src/client","test:errors":"vitest run src/errors","test:logger":"vitest run src/logger","test:server":"vitest run src/server --config vitest.integration.config.ts","test:codegen":"vitest run src/codegen","test:coverage":"vitest run --config vitest.unit.config.ts --coverage","check:circular":"madge --circular --extensions ts src/","docker:test:up":"docker compose -f docker-compose.test.yml up -d","test:middleware":"vitest run src/middleware","docker:test:down":"docker compose -f docker-compose.test.yml down","docker:test:logs":"docker compose -f docker-compose.test.yml logs -f"},"_npmUser":{"name":"superfunction","email":"rayim@inflike.com"},"_resolved":"/tmp/905e2b722a65c2af408bb2ae20418fe1/spfn-core-0.2.0-beta.23.tgz","_integrity":"sha512-qZLhm6FdW8v9+31w2AAJKPElNxT4COxI6DbE5gKESXbJ+sxBDH2x83vD5jPeLJ3x7QrTLGIuezhISpTDaNDIWA==","repository":{"url":"git+https://github.com/spfn/spfn.git","type":"git","directory":"packages/core"},"_npmVersion":"11.10.1","description":"SPFN Framework Core - File-based routing, transactions, repository pattern","directories":{},"_nodeVersion":"20.20.0","dependencies":{"zod":"^4.1.11","hono":"^4.10.6","jiti":"^2.6.1","chalk":"^5.6.2","dotenv":"^17.2.3","undici":"^7.22.0","pg-boss":"^11.1.2","chokidar":"^4.0.3","postgres":"^3.4.0","micromatch":"^4.0.8","typescript":"^5.3.3","drizzle-orm":"^0.45.0","drizzle-typebox":"^0.1.0","@hono/node-server":"^1.0.0","@sinclair/typebox":"^0.34.0"},"publishConfig":{"tag":"beta","access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"next":"^16.0.0","tsup":"^8.5.0","madge":"^8.0.0","vitest":"^4.0.6","@types/node":"^20.11.0","drizzle-kit":"^0.31.6","@types/micromatch":"^4.0.9","@vitest/coverage-v8":"^4.0.6"},"peerDependencies":{"next":"^15.0.0 || ^16.0.0"},"optionalDependencies":{"ioredis":"^5.4.1"},"peerDependenciesMeta":{"next":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/core_0.2.0-beta.23_1771833587961_0.5207311728993758","host":"s3://npm-registry-packages-npm-production"}},"0.2.0-beta.24":{"name":"@spfn/core","version":"0.2.0-beta.24","keywords":["spfn","nextjs","backend","framework","typescript","type-safe","api","rest-api","crud","database","orm","drizzle-orm","postgres","redis","hono","fullstack","server","scalable","auto-generated","file-based-routing","transaction","repository-pattern"],"author":{"name":"Ray Im","email":"rayim@inflike.com"},"license":"MIT","_id":"@spfn/core@0.2.0-beta.24","maintainers":[{"name":"superfunction","email":"rayim@inflike.com"}],"homepage":"https://github.com/spfn/spfn/tree/main/packages/core#readme","bugs":{"url":"https://github.com/spfn/spfn/issues"},"dist":{"shasum":"e099c46359b769682b97e9279e8edfa4f94ace9b","tarball":"https://registry.npmjs.org/@spfn/core/-/core-0.2.0-beta.24.tgz","fileCount":77,"integrity":"sha512-kiwhaot+9gJckXUzkvyOWlyzg0MuzCpBD8iOByiafiXn9uINcWGU0NbO1ZuijF8vLDbKPueLvJ6eQta7C+9Mxw==","signatures":[{"sig":"MEUCIQC0u1oKS6SWdVT/H8AD20+vMAGqByVr0qEs3h3Hqu3CtgIgHZRZR4mIujf20zF5TGJCRgRFp9x2uHuuPvtkmW+yAYI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spfn%2fcore@0.2.0-beta.24","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1610523},"type":"module","_from":"file:spfn-core-0.2.0-beta.24.tgz","engines":{"node":">=18.18.0"},"exports":{"./db":{"types":"./dist/db/index.d.ts","import":"./dist/db/index.js","require":"./dist/db/index.js"},"./env":{"types":"./dist/env/index.d.ts","import":"./dist/env/index.js","require":"./dist/env/index.js"},"./job":{"types":"./dist/job/index.d.ts","import":"./dist/job/index.js","require":"./dist/job/index.js"},"./cache":{"types":"./dist/cache/index.d.ts","import":"./dist/cache/index.js","require":"./dist/cache/index.js"},"./event":{"types":"./dist/event/index.d.ts","import":"./dist/event/index.js","require":"./dist/event/index.js"},"./route":{"types":"./dist/route/index.d.ts","import":"./dist/route/index.js","require":"./dist/route/index.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","require":"./dist/client/index.js"},"./config":{"types":"./dist/config/index.d.ts","import":"./dist/config/index.js","require":"./dist/config/index.js"},"./errors":{"types":"./dist/errors/index.d.ts","import":"./dist/errors/index.js","require":"./dist/errors/index.js"},"./logger":{"types":"./dist/logger/index.d.ts","import":"./dist/logger/index.js","require":"./dist/logger/index.js"},"./nextjs":{"types":"./dist/nextjs/index.d.ts","import":"./dist/nextjs/index.js","require":"./dist/nextjs/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./codegen":{"types":"./dist/codegen/index.d.ts","import":"./dist/codegen/index.js","require":"./dist/codegen/index.js"},"./event/sse":{"types":"./dist/event/sse/index.d.ts","import":"./dist/event/sse/index.js","require":"./dist/event/sse/index.js"},"./env/loader":{"types":"./dist/env/loader.d.ts","import":"./dist/env/loader.js","require":"./dist/env/loader.js"},"./middleware":{"types":"./dist/middleware/index.d.ts","import":"./dist/middleware/index.js","require":"./dist/middleware/index.js"},"./route/types":{"types":"./dist/route/types.d.ts","import":"./dist/route/types.js","require":"./dist/route/types.js"},"./nextjs/server":{"types":"./dist/nextjs/server.d.ts","import":"./dist/nextjs/server.js","require":"./dist/nextjs/server.js"},"./event/sse/client":{"types":"./dist/event/sse/client.d.ts","import":"./dist/event/sse/client.js","require":"./dist/event/sse/client.js"}},"scripts":{"dev":"tsup","test":"vitest run","build":"pnpm check:circular && tsup","test:db":"vitest run src/db --config vitest.integration.config.ts","test:env":"vitest run src/env","test:cache":"vitest run src/cache --config vitest.integration.config.ts","test:route":"vitest run src/route","test:watch":"vitest","type-check":"tsc --noEmit","test:client":"vitest run src/client","test:errors":"vitest run src/errors","test:logger":"vitest run src/logger","test:server":"vitest run src/server --config vitest.integration.config.ts","test:codegen":"vitest run src/codegen","test:coverage":"vitest run --config vitest.unit.config.ts --coverage","check:circular":"madge --circular --extensions ts src/","docker:test:up":"docker compose -f docker-compose.test.yml up -d","test:middleware":"vitest run src/middleware","docker:test:down":"docker compose -f docker-compose.test.yml down","docker:test:logs":"docker compose -f docker-compose.test.yml logs -f"},"_npmUser":{"name":"superfunction","email":"rayim@inflike.com"},"_resolved":"/tmp/9eec8c77303af8834f9cc89e71d97712/spfn-core-0.2.0-beta.24.tgz","_integrity":"sha512-kiwhaot+9gJckXUzkvyOWlyzg0MuzCpBD8iOByiafiXn9uINcWGU0NbO1ZuijF8vLDbKPueLvJ6eQta7C+9Mxw==","repository":{"url":"git+https://github.com/spfn/spfn.git","type":"git","directory":"packages/core"},"_npmVersion":"11.10.1","description":"SPFN Framework Core - File-based routing, transactions, repository pattern","directories":{},"_nodeVersion":"20.20.0","dependencies":{"zod":"^4.1.11","hono":"^4.10.6","jiti":"^2.6.1","chalk":"^5.6.2","dotenv":"^17.2.3","undici":"^7.22.0","pg-boss":"^11.1.2","chokidar":"^4.0.3","postgres":"^3.4.0","micromatch":"^4.0.8","typescript":"^5.3.3","drizzle-orm":"^0.45.0","drizzle-typebox":"^0.1.0","@hono/node-server":"^1.0.0","@sinclair/typebox":"^0.34.0"},"publishConfig":{"tag":"beta","access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"next":"^16.0.0","tsup":"^8.5.0","madge":"^8.0.0","vitest":"^4.0.6","@types/node":"^20.11.0","drizzle-kit":"^0.31.6","@types/micromatch":"^4.0.9","@vitest/coverage-v8":"^4.0.6"},"peerDependencies":{"next":"^15.0.0 || ^16.0.0"},"optionalDependencies":{"ioredis":"^5.4.1"},"peerDependenciesMeta":{"next":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/core_0.2.0-beta.24_1772036386055_0.7888152696651125","host":"s3://npm-registry-packages-npm-production"}},"0.2.0-beta.25":{"name":"@spfn/core","version":"0.2.0-beta.25","keywords":["spfn","nextjs","backend","framework","typescript","type-safe","api","rest-api","crud","database","orm","drizzle-orm","postgres","redis","hono","fullstack","server","scalable","auto-generated","file-based-routing","transaction","repository-pattern"],"author":{"name":"Ray Im","email":"rayim@inflike.com"},"license":"MIT","_id":"@spfn/core@0.2.0-beta.25","maintainers":[{"name":"superfunction","email":"rayim@inflike.com"}],"homepage":"https://github.com/spfn/spfn/tree/main/packages/core#readme","bugs":{"url":"https://github.com/spfn/spfn/issues"},"dist":{"shasum":"59a4b4dc050f5859451070b644787cb65077a095","tarball":"https://registry.npmjs.org/@spfn/core/-/core-0.2.0-beta.25.tgz","fileCount":77,"integrity":"sha512-qYhQkHl540Sz79EIEj+wvpkQcZv5NwAHodxGqXsjP8O3eHdsKVpWivau+Y0mfkWewy8kl6R7aHbByX5Lv836WA==","signatures":[{"sig":"MEQCIHxcbfwwvO71m/k6/w1KQtvl7KlWjb1RyOCfNVwCTMhWAiAhiZBx6ve8Uru27h3Ann5QntlBsxR8Sq1WqZIT6YYstQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spfn%2fcore@0.2.0-beta.25","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1611909},"type":"module","_from":"file:spfn-core-0.2.0-beta.25.tgz","engines":{"node":">=18.18.0"},"exports":{"./db":{"types":"./dist/db/index.d.ts","import":"./dist/db/index.js","require":"./dist/db/index.js"},"./env":{"types":"./dist/env/index.d.ts","import":"./dist/env/index.js","require":"./dist/env/index.js"},"./job":{"types":"./dist/job/index.d.ts","import":"./dist/job/index.js","require":"./dist/job/index.js"},"./cache":{"types":"./dist/cache/index.d.ts","import":"./dist/cache/index.js","require":"./dist/cache/index.js"},"./event":{"types":"./dist/event/index.d.ts","import":"./dist/event/index.js","require":"./dist/event/index.js"},"./route":{"types":"./dist/route/index.d.ts","import":"./dist/route/index.js","require":"./dist/route/index.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","require":"./dist/client/index.js"},"./config":{"types":"./dist/config/index.d.ts","import":"./dist/config/index.js","require":"./dist/config/index.js"},"./errors":{"types":"./dist/errors/index.d.ts","import":"./dist/errors/index.js","require":"./dist/errors/index.js"},"./logger":{"types":"./dist/logger/index.d.ts","import":"./dist/logger/index.js","require":"./dist/logger/index.js"},"./nextjs":{"types":"./dist/nextjs/index.d.ts","import":"./dist/nextjs/index.js","require":"./dist/nextjs/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./codegen":{"types":"./dist/codegen/index.d.ts","import":"./dist/codegen/index.js","require":"./dist/codegen/index.js"},"./event/sse":{"types":"./dist/event/sse/index.d.ts","import":"./dist/event/sse/index.js","require":"./dist/event/sse/index.js"},"./env/loader":{"types":"./dist/env/loader.d.ts","import":"./dist/env/loader.js","require":"./dist/env/loader.js"},"./middleware":{"types":"./dist/middleware/index.d.ts","import":"./dist/middleware/index.js","require":"./dist/middleware/index.js"},"./route/types":{"types":"./dist/route/types.d.ts","import":"./dist/route/types.js","require":"./dist/route/types.js"},"./nextjs/server":{"types":"./dist/nextjs/server.d.ts","import":"./dist/nextjs/server.js","require":"./dist/nextjs/server.js"},"./event/sse/client":{"types":"./dist/event/sse/client.d.ts","import":"./dist/event/sse/client.js","require":"./dist/event/sse/client.js"}},"scripts":{"dev":"tsup","test":"vitest run","build":"pnpm check:circular && tsup","test:db":"vitest run src/db --config vitest.integration.config.ts","test:env":"vitest run src/env","test:cache":"vitest run src/cache --config vitest.integration.config.ts","test:route":"vitest run src/route","test:watch":"vitest","type-check":"tsc --noEmit","test:client":"vitest run src/client","test:errors":"vitest run src/errors","test:logger":"vitest run src/logger","test:server":"vitest run src/server --config vitest.integration.config.ts","test:codegen":"vitest run src/codegen","test:coverage":"vitest run --config vitest.unit.config.ts --coverage","check:circular":"madge --circular --extensions ts src/","docker:test:up":"docker compose -f docker-compose.test.yml up -d","test:middleware":"vitest run src/middleware","docker:test:down":"docker compose -f docker-compose.test.yml down","docker:test:logs":"docker compose -f docker-compose.test.yml logs -f"},"_npmUser":{"name":"superfunction","email":"rayim@inflike.com"},"_resolved":"/tmp/5d74789363ead6efb6c171786e2c4158/spfn-core-0.2.0-beta.25.tgz","_integrity":"sha512-qYhQkHl540Sz79EIEj+wvpkQcZv5NwAHodxGqXsjP8O3eHdsKVpWivau+Y0mfkWewy8kl6R7aHbByX5Lv836WA==","repository":{"url":"git+https://github.com/spfn/spfn.git","type":"git","directory":"packages/core"},"_npmVersion":"11.11.0","description":"SPFN Framework Core - File-based routing, transactions, repository pattern","directories":{},"_nodeVersion":"20.20.0","dependencies":{"zod":"^4.1.11","hono":"^4.10.6","jiti":"^2.6.1","chalk":"^5.6.2","dotenv":"^17.2.3","undici":"^7.22.0","pg-boss":"^11.1.2","chokidar":"^4.0.3","postgres":"^3.4.0","micromatch":"^4.0.8","typescript":"^5.3.3","drizzle-orm":"^0.45.0","drizzle-typebox":"^0.1.0","@hono/node-server":"^1.0.0","@sinclair/typebox":"^0.34.0"},"publishConfig":{"tag":"beta","access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"next":"^16.0.0","tsup":"^8.5.0","madge":"^8.0.0","vitest":"^4.0.6","@types/node":"^20.11.0","drizzle-kit":"^0.31.6","@types/micromatch":"^4.0.9","@vitest/coverage-v8":"^4.0.6"},"peerDependencies":{"next":"^15.0.0 || ^16.0.0"},"optionalDependencies":{"ioredis":"^5.4.1"},"peerDependenciesMeta":{"next":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/core_0.2.0-beta.25_1772087267796_0.9434778310393803","host":"s3://npm-registry-packages-npm-production"}},"0.2.0-beta.26":{"name":"@spfn/core","version":"0.2.0-beta.26","keywords":["spfn","nextjs","backend","framework","typescript","type-safe","api","rest-api","crud","database","orm","drizzle-orm","postgres","redis","hono","fullstack","server","scalable","auto-generated","file-based-routing","transaction","repository-pattern"],"author":{"name":"Ray Im","email":"rayim@inflike.com"},"license":"MIT","_id":"@spfn/core@0.2.0-beta.26","maintainers":[{"name":"superfunction","email":"rayim@inflike.com"}],"homepage":"https://github.com/spfn/spfn/tree/main/packages/core#readme","bugs":{"url":"https://github.com/spfn/spfn/issues"},"dist":{"shasum":"043ed91bf8ae179aa61c21ee242f1778c69813cf","tarball":"https://registry.npmjs.org/@spfn/core/-/core-0.2.0-beta.26.tgz","fileCount":77,"integrity":"sha512-8b9+3KwHnbAzrHYPHZXIONe2xz0dTo44P+VE6uNAukuMTedfKu3IceEmNlwRI5g7rBn2mIofC90/y7HbI1qadw==","signatures":[{"sig":"MEMCIQDBTl7n06z2OiVWU00+5dzRbyS9iE7nNtlcFskbBvxSegIeHepkn/cu1SQF4muwLtXfATstQLjD/XpQcwnT9edw","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spfn%2fcore@0.2.0-beta.26","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1612401},"type":"module","_from":"file:spfn-core-0.2.0-beta.26.tgz","engines":{"node":">=18.18.0"},"exports":{"./db":{"types":"./dist/db/index.d.ts","import":"./dist/db/index.js","require":"./dist/db/index.js"},"./env":{"types":"./dist/env/index.d.ts","import":"./dist/env/index.js","require":"./dist/env/index.js"},"./job":{"types":"./dist/job/index.d.ts","import":"./dist/job/index.js","require":"./dist/job/index.js"},"./cache":{"types":"./dist/cache/index.d.ts","import":"./dist/cache/index.js","require":"./dist/cache/index.js"},"./event":{"types":"./dist/event/index.d.ts","import":"./dist/event/index.js","require":"./dist/event/index.js"},"./route":{"types":"./dist/route/index.d.ts","import":"./dist/route/index.js","require":"./dist/route/index.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","require":"./dist/client/index.js"},"./config":{"types":"./dist/config/index.d.ts","import":"./dist/config/index.js","require":"./dist/config/index.js"},"./errors":{"types":"./dist/errors/index.d.ts","import":"./dist/errors/index.js","require":"./dist/errors/index.js"},"./logger":{"types":"./dist/logger/index.d.ts","import":"./dist/logger/index.js","require":"./dist/logger/index.js"},"./nextjs":{"types":"./dist/nextjs/index.d.ts","import":"./dist/nextjs/index.js","require":"./dist/nextjs/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./codegen":{"types":"./dist/codegen/index.d.ts","import":"./dist/codegen/index.js","require":"./dist/codegen/index.js"},"./event/sse":{"types":"./dist/event/sse/index.d.ts","import":"./dist/event/sse/index.js","require":"./dist/event/sse/index.js"},"./env/loader":{"types":"./dist/env/loader.d.ts","import":"./dist/env/loader.js","require":"./dist/env/loader.js"},"./middleware":{"types":"./dist/middleware/index.d.ts","import":"./dist/middleware/index.js","require":"./dist/middleware/index.js"},"./route/types":{"types":"./dist/route/types.d.ts","import":"./dist/route/types.js","require":"./dist/route/types.js"},"./nextjs/server":{"types":"./dist/nextjs/server.d.ts","import":"./dist/nextjs/server.js","require":"./dist/nextjs/server.js"},"./event/sse/client":{"types":"./dist/event/sse/client.d.ts","import":"./dist/event/sse/client.js","require":"./dist/event/sse/client.js"}},"scripts":{"dev":"tsup","test":"vitest run","build":"pnpm check:circular && tsup","test:db":"vitest run src/db --config vitest.integration.config.ts","test:env":"vitest run src/env","test:cache":"vitest run src/cache --config vitest.integration.config.ts","test:route":"vitest run src/route","test:watch":"vitest","type-check":"tsc --noEmit","test:client":"vitest run src/client","test:errors":"vitest run src/errors","test:logger":"vitest run src/logger","test:server":"vitest run src/server --config vitest.integration.config.ts","test:codegen":"vitest run src/codegen","test:coverage":"vitest run --config vitest.unit.config.ts --coverage","check:circular":"madge --circular --extensions ts src/","docker:test:up":"docker compose -f docker-compose.test.yml up -d","test:middleware":"vitest run src/middleware","docker:test:down":"docker compose -f docker-compose.test.yml down","docker:test:logs":"docker compose -f docker-compose.test.yml logs -f"},"_npmUser":{"name":"superfunction","email":"rayim@inflike.com"},"_resolved":"/tmp/4ea874ac32c3f5855eafb381034bd224/spfn-core-0.2.0-beta.26.tgz","_integrity":"sha512-8b9+3KwHnbAzrHYPHZXIONe2xz0dTo44P+VE6uNAukuMTedfKu3IceEmNlwRI5g7rBn2mIofC90/y7HbI1qadw==","repository":{"url":"git+https://github.com/spfn/spfn.git","type":"git","directory":"packages/core"},"_npmVersion":"11.11.0","description":"SPFN Framework Core - File-based routing, transactions, repository pattern","directories":{},"_nodeVersion":"20.20.0","dependencies":{"zod":"^4.1.11","hono":"^4.10.6","jiti":"^2.6.1","chalk":"^5.6.2","dotenv":"^17.2.3","undici":"^7.22.0","pg-boss":"^11.1.2","chokidar":"^4.0.3","postgres":"^3.4.0","micromatch":"^4.0.8","typescript":"^5.3.3","drizzle-orm":"^0.45.0","drizzle-typebox":"^0.1.0","@hono/node-server":"^1.0.0","@sinclair/typebox":"^0.34.0"},"publishConfig":{"tag":"beta","access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"next":"^16.0.0","tsup":"^8.5.0","madge":"^8.0.0","vitest":"^4.0.6","@types/node":"^20.11.0","drizzle-kit":"^0.31.6","@types/micromatch":"^4.0.9","@vitest/coverage-v8":"^4.0.6"},"peerDependencies":{"next":"^15.0.0 || ^16.0.0"},"optionalDependencies":{"ioredis":"^5.4.1"},"peerDependenciesMeta":{"next":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/core_0.2.0-beta.26_1772090403349_0.6367726081097176","host":"s3://npm-registry-packages-npm-production"}},"0.2.0-beta.27":{"name":"@spfn/core","version":"0.2.0-beta.27","keywords":["spfn","nextjs","backend","framework","typescript","type-safe","api","rest-api","crud","database","orm","drizzle-orm","postgres","redis","hono","fullstack","server","scalable","auto-generated","file-based-routing","transaction","repository-pattern"],"author":{"name":"Ray Im","email":"rayim@inflike.com"},"license":"MIT","_id":"@spfn/core@0.2.0-beta.27","maintainers":[{"name":"superfunction","email":"rayim@inflike.com"}],"homepage":"https://github.com/spfn/spfn/tree/main/packages/core#readme","bugs":{"url":"https://github.com/spfn/spfn/issues"},"dist":{"shasum":"4ef92b499679a8ac2f42f671f274896a54e3d161","tarball":"https://registry.npmjs.org/@spfn/core/-/core-0.2.0-beta.27.tgz","fileCount":77,"integrity":"sha512-OJlaRKyE6nJ/Os8u0KaMWNRP1M3quwn4WkWwMmmc5seKEZGWmvjV0H7YwLpf6SRB1sRCSuc27dq6O33x9V+CRA==","signatures":[{"sig":"MEUCIF6FmnMNZRBKNJnn37EuhPdUZgDf6c7IFIu1j5WMNfG/AiEAt4t9RWOTfDBZw1sg+K0q8jEamJH7ZJPQhIRQ5rEc3qI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spfn%2fcore@0.2.0-beta.27","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1612422},"type":"module","_from":"file:spfn-core-0.2.0-beta.27.tgz","engines":{"node":">=18.18.0"},"exports":{"./db":{"types":"./dist/db/index.d.ts","import":"./dist/db/index.js","require":"./dist/db/index.js"},"./env":{"types":"./dist/env/index.d.ts","import":"./dist/env/index.js","require":"./dist/env/index.js"},"./job":{"types":"./dist/job/index.d.ts","import":"./dist/job/index.js","require":"./dist/job/index.js"},"./cache":{"types":"./dist/cache/index.d.ts","import":"./dist/cache/index.js","require":"./dist/cache/index.js"},"./event":{"types":"./dist/event/index.d.ts","import":"./dist/event/index.js","require":"./dist/event/index.js"},"./route":{"types":"./dist/route/index.d.ts","import":"./dist/route/index.js","require":"./dist/route/index.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","require":"./dist/client/index.js"},"./config":{"types":"./dist/config/index.d.ts","import":"./dist/config/index.js","require":"./dist/config/index.js"},"./errors":{"types":"./dist/errors/index.d.ts","import":"./dist/errors/index.js","require":"./dist/errors/index.js"},"./logger":{"types":"./dist/logger/index.d.ts","import":"./dist/logger/index.js","require":"./dist/logger/index.js"},"./nextjs":{"types":"./dist/nextjs/index.d.ts","import":"./dist/nextjs/index.js","require":"./dist/nextjs/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./codegen":{"types":"./dist/codegen/index.d.ts","import":"./dist/codegen/index.js","require":"./dist/codegen/index.js"},"./event/sse":{"types":"./dist/event/sse/index.d.ts","import":"./dist/event/sse/index.js","require":"./dist/event/sse/index.js"},"./env/loader":{"types":"./dist/env/loader.d.ts","import":"./dist/env/loader.js","require":"./dist/env/loader.js"},"./middleware":{"types":"./dist/middleware/index.d.ts","import":"./dist/middleware/index.js","require":"./dist/middleware/index.js"},"./route/types":{"types":"./dist/route/types.d.ts","import":"./dist/route/types.js","require":"./dist/route/types.js"},"./nextjs/server":{"types":"./dist/nextjs/server.d.ts","import":"./dist/nextjs/server.js","require":"./dist/nextjs/server.js"},"./event/sse/client":{"types":"./dist/event/sse/client.d.ts","import":"./dist/event/sse/client.js","require":"./dist/event/sse/client.js"}},"scripts":{"dev":"tsup","test":"vitest run","build":"pnpm check:circular && tsup","test:db":"vitest run src/db --config vitest.integration.config.ts","test:env":"vitest run src/env","test:cache":"vitest run src/cache --config vitest.integration.config.ts","test:route":"vitest run src/route","test:watch":"vitest","type-check":"tsc --noEmit","test:client":"vitest run src/client","test:errors":"vitest run src/errors","test:logger":"vitest run src/logger","test:server":"vitest run src/server --config vitest.integration.config.ts","test:codegen":"vitest run src/codegen","test:coverage":"vitest run --config vitest.unit.config.ts --coverage","check:circular":"madge --circular --extensions ts src/","docker:test:up":"docker compose -f docker-compose.test.yml up -d","test:middleware":"vitest run src/middleware","docker:test:down":"docker compose -f docker-compose.test.yml down","docker:test:logs":"docker compose -f docker-compose.test.yml logs -f"},"_npmUser":{"name":"superfunction","email":"rayim@inflike.com"},"_resolved":"/tmp/dd4b9624c07eecb68ec3f064777aa3e8/spfn-core-0.2.0-beta.27.tgz","_integrity":"sha512-OJlaRKyE6nJ/Os8u0KaMWNRP1M3quwn4WkWwMmmc5seKEZGWmvjV0H7YwLpf6SRB1sRCSuc27dq6O33x9V+CRA==","repository":{"url":"git+https://github.com/spfn/spfn.git","type":"git","directory":"packages/core"},"_npmVersion":"11.11.0","description":"SPFN Framework Core - File-based routing, transactions, repository pattern","directories":{},"_nodeVersion":"20.20.0","dependencies":{"zod":"^4.1.11","hono":"^4.10.6","jiti":"^2.6.1","chalk":"^5.6.2","dotenv":"^17.2.3","undici":"^7.22.0","pg-boss":"^11.1.2","chokidar":"^4.0.3","postgres":"^3.4.0","micromatch":"^4.0.8","typescript":"^5.3.3","drizzle-orm":"^0.45.0","drizzle-typebox":"^0.1.0","@hono/node-server":"^1.0.0","@sinclair/typebox":"^0.34.0"},"publishConfig":{"tag":"beta","access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"next":"^16.0.0","tsup":"^8.5.0","madge":"^8.0.0","vitest":"^4.0.6","@types/node":"^20.11.0","drizzle-kit":"^0.31.6","@types/micromatch":"^4.0.9","@vitest/coverage-v8":"^4.0.6"},"peerDependencies":{"next":"^15.0.0 || ^16.0.0"},"optionalDependencies":{"ioredis":"^5.4.1"},"peerDependenciesMeta":{"next":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/core_0.2.0-beta.27_1772527440208_0.11213619123195051","host":"s3://npm-registry-packages-npm-production"}},"0.2.0-beta.28":{"name":"@spfn/core","version":"0.2.0-beta.28","keywords":["spfn","nextjs","backend","framework","typescript","type-safe","api","rest-api","crud","database","orm","drizzle-orm","postgres","redis","hono","fullstack","server","scalable","auto-generated","file-based-routing","transaction","repository-pattern"],"author":{"name":"Ray Im","email":"rayim@inflike.com"},"license":"MIT","_id":"@spfn/core@0.2.0-beta.28","maintainers":[{"name":"superfunction","email":"rayim@inflike.com"}],"homepage":"https://github.com/spfn/spfn/tree/main/packages/core#readme","bugs":{"url":"https://github.com/spfn/spfn/issues"},"dist":{"shasum":"dbf6861bd74d0c04006e0df9322a15fb01435645","tarball":"https://registry.npmjs.org/@spfn/core/-/core-0.2.0-beta.28.tgz","fileCount":77,"integrity":"sha512-zQTAzRARJFQXns4YjKTtYcEK4oyrmbTTvG564rgbwNypE0vqKECk1lGnDJUlXXGNEtAt170jYDKj1ylr33cVlA==","signatures":[{"sig":"MEUCIGtr9/5gIoiqR5PcEHnMOa0uZ3ht0ch23oS9pXhuQfsyAiEAqZOqImAIy2JYFFP/ZHjdJqfIGZ0k/jg+jY5Ch5t45gc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spfn%2fcore@0.2.0-beta.28","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1615774},"type":"module","_from":"file:spfn-core-0.2.0-beta.28.tgz","engines":{"node":">=18.18.0"},"exports":{"./db":{"types":"./dist/db/index.d.ts","import":"./dist/db/index.js","require":"./dist/db/index.js"},"./env":{"types":"./dist/env/index.d.ts","import":"./dist/env/index.js","require":"./dist/env/index.js"},"./job":{"types":"./dist/job/index.d.ts","import":"./dist/job/index.js","require":"./dist/job/index.js"},"./cache":{"types":"./dist/cache/index.d.ts","import":"./dist/cache/index.js","require":"./dist/cache/index.js"},"./event":{"types":"./dist/event/index.d.ts","import":"./dist/event/index.js","require":"./dist/event/index.js"},"./route":{"types":"./dist/route/index.d.ts","import":"./dist/route/index.js","require":"./dist/route/index.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","require":"./dist/client/index.js"},"./config":{"types":"./dist/config/index.d.ts","import":"./dist/config/index.js","require":"./dist/config/index.js"},"./errors":{"types":"./dist/errors/index.d.ts","import":"./dist/errors/index.js","require":"./dist/errors/index.js"},"./logger":{"types":"./dist/logger/index.d.ts","import":"./dist/logger/index.js","require":"./dist/logger/index.js"},"./nextjs":{"types":"./dist/nextjs/index.d.ts","import":"./dist/nextjs/index.js","require":"./dist/nextjs/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./codegen":{"types":"./dist/codegen/index.d.ts","import":"./dist/codegen/index.js","require":"./dist/codegen/index.js"},"./event/sse":{"types":"./dist/event/sse/index.d.ts","import":"./dist/event/sse/index.js","require":"./dist/event/sse/index.js"},"./env/loader":{"types":"./dist/env/loader.d.ts","import":"./dist/env/loader.js","require":"./dist/env/loader.js"},"./middleware":{"types":"./dist/middleware/index.d.ts","import":"./dist/middleware/index.js","require":"./dist/middleware/index.js"},"./route/types":{"types":"./dist/route/types.d.ts","import":"./dist/route/types.js","require":"./dist/route/types.js"},"./nextjs/server":{"types":"./dist/nextjs/server.d.ts","import":"./dist/nextjs/server.js","require":"./dist/nextjs/server.js"},"./event/sse/client":{"types":"./dist/event/sse/client.d.ts","import":"./dist/event/sse/client.js","require":"./dist/event/sse/client.js"}},"scripts":{"dev":"tsup","test":"vitest run","build":"pnpm check:circular && tsup","test:db":"vitest run src/db --config vitest.integration.config.ts","test:env":"vitest run src/env","test:cache":"vitest run src/cache --config vitest.integration.config.ts","test:route":"vitest run src/route","test:watch":"vitest","type-check":"tsc --noEmit","test:client":"vitest run src/client","test:errors":"vitest run src/errors","test:logger":"vitest run src/logger","test:server":"vitest run src/server --config vitest.integration.config.ts","test:codegen":"vitest run src/codegen","test:coverage":"vitest run --config vitest.unit.config.ts --coverage","check:circular":"madge --circular --extensions ts src/","docker:test:up":"docker compose -f docker-compose.test.yml up -d","test:middleware":"vitest run src/middleware","docker:test:down":"docker compose -f docker-compose.test.yml down","docker:test:logs":"docker compose -f docker-compose.test.yml logs -f"},"_npmUser":{"name":"superfunction","email":"rayim@inflike.com"},"_resolved":"/tmp/df224d04c6bb0b3894dff3c51c6ac84e/spfn-core-0.2.0-beta.28.tgz","_integrity":"sha512-zQTAzRARJFQXns4YjKTtYcEK4oyrmbTTvG564rgbwNypE0vqKECk1lGnDJUlXXGNEtAt170jYDKj1ylr33cVlA==","repository":{"url":"git+https://github.com/spfn/spfn.git","type":"git","directory":"packages/core"},"_npmVersion":"11.11.0","description":"SPFN Framework Core - File-based routing, transactions, repository pattern","directories":{},"_nodeVersion":"20.20.0","dependencies":{"zod":"^4.1.11","hono":"^4.10.6","jiti":"^2.6.1","chalk":"^5.6.2","dotenv":"^17.2.3","undici":"^7.22.0","pg-boss":"^11.1.2","chokidar":"^4.0.3","postgres":"^3.4.0","micromatch":"^4.0.8","typescript":"^5.3.3","drizzle-orm":"^0.45.0","drizzle-typebox":"^0.1.0","@hono/node-server":"^1.0.0","@sinclair/typebox":"^0.34.0"},"publishConfig":{"tag":"beta","access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"next":"^16.0.0","tsup":"^8.5.0","madge":"^8.0.0","vitest":"^4.0.6","@types/node":"^20.11.0","drizzle-kit":"^0.31.6","@types/micromatch":"^4.0.9","@vitest/coverage-v8":"^4.0.6"},"peerDependencies":{"next":"^15.0.0 || ^16.0.0"},"optionalDependencies":{"ioredis":"^5.4.1"},"peerDependenciesMeta":{"next":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/core_0.2.0-beta.28_1772807923146_0.08412827811846224","host":"s3://npm-registry-packages-npm-production"}},"0.2.0-beta.29":{"name":"@spfn/core","version":"0.2.0-beta.29","keywords":["spfn","nextjs","backend","framework","typescript","type-safe","api","rest-api","crud","database","orm","drizzle-orm","postgres","redis","hono","fullstack","server","scalable","auto-generated","file-based-routing","transaction","repository-pattern"],"author":{"name":"Ray Im","email":"rayim@inflike.com"},"license":"MIT","_id":"@spfn/core@0.2.0-beta.29","maintainers":[{"name":"superfunction","email":"rayim@inflike.com"}],"homepage":"https://github.com/spfn/spfn/tree/main/packages/core#readme","bugs":{"url":"https://github.com/spfn/spfn/issues"},"dist":{"shasum":"b3e01db83ba02863fbd60c7919818262ae13150c","tarball":"https://registry.npmjs.org/@spfn/core/-/core-0.2.0-beta.29.tgz","fileCount":77,"integrity":"sha512-NXzAASSNcIUWpzMcEH0mSjXsKf0oGYs2nSiuO7mGCbCk3cfyIhoKAzmgk1QFV+nVZxUpZZpwe5ka2KRUjlHk4Q==","signatures":[{"sig":"MEYCIQDVq6XFa/BUeta4i4GNis8hnh6ne61RBLODrG7gL/H37wIhAJVTOOxHslrt/JtzWJgSukROgbn4Opfg26rYpWnhKjJM","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spfn%2fcore@0.2.0-beta.29","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1618210},"type":"module","_from":"file:spfn-core-0.2.0-beta.29.tgz","engines":{"node":">=18.18.0"},"exports":{"./db":{"types":"./dist/db/index.d.ts","import":"./dist/db/index.js","require":"./dist/db/index.js"},"./env":{"types":"./dist/env/index.d.ts","import":"./dist/env/index.js","require":"./dist/env/index.js"},"./job":{"types":"./dist/job/index.d.ts","import":"./dist/job/index.js","require":"./dist/job/index.js"},"./cache":{"types":"./dist/cache/index.d.ts","import":"./dist/cache/index.js","require":"./dist/cache/index.js"},"./event":{"types":"./dist/event/index.d.ts","import":"./dist/event/index.js","require":"./dist/event/index.js"},"./route":{"types":"./dist/route/index.d.ts","import":"./dist/route/index.js","require":"./dist/route/index.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","require":"./dist/client/index.js"},"./config":{"types":"./dist/config/index.d.ts","import":"./dist/config/index.js","require":"./dist/config/index.js"},"./errors":{"types":"./dist/errors/index.d.ts","import":"./dist/errors/index.js","require":"./dist/errors/index.js"},"./logger":{"types":"./dist/logger/index.d.ts","import":"./dist/logger/index.js","require":"./dist/logger/index.js"},"./nextjs":{"types":"./dist/nextjs/index.d.ts","import":"./dist/nextjs/index.js","require":"./dist/nextjs/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./codegen":{"types":"./dist/codegen/index.d.ts","import":"./dist/codegen/index.js","require":"./dist/codegen/index.js"},"./event/sse":{"types":"./dist/event/sse/index.d.ts","import":"./dist/event/sse/index.js","require":"./dist/event/sse/index.js"},"./env/loader":{"types":"./dist/env/loader.d.ts","import":"./dist/env/loader.js","require":"./dist/env/loader.js"},"./middleware":{"types":"./dist/middleware/index.d.ts","import":"./dist/middleware/index.js","require":"./dist/middleware/index.js"},"./route/types":{"types":"./dist/route/types.d.ts","import":"./dist/route/types.js","require":"./dist/route/types.js"},"./nextjs/server":{"types":"./dist/nextjs/server.d.ts","import":"./dist/nextjs/server.js","require":"./dist/nextjs/server.js"},"./event/sse/client":{"types":"./dist/event/sse/client.d.ts","import":"./dist/event/sse/client.js","require":"./dist/event/sse/client.js"}},"scripts":{"dev":"tsup","test":"vitest run","build":"pnpm check:circular && tsup","test:db":"vitest run src/db --config vitest.integration.config.ts","test:env":"vitest run src/env","test:cache":"vitest run src/cache --config vitest.integration.config.ts","test:route":"vitest run src/route","test:watch":"vitest","type-check":"tsc --noEmit","test:client":"vitest run src/client","test:errors":"vitest run src/errors","test:logger":"vitest run src/logger","test:server":"vitest run src/server --config vitest.integration.config.ts","test:codegen":"vitest run src/codegen","test:coverage":"vitest run --config vitest.unit.config.ts --coverage","check:circular":"madge --circular --extensions ts src/","docker:test:up":"docker compose -f docker-compose.test.yml up -d","test:middleware":"vitest run src/middleware","docker:test:down":"docker compose -f docker-compose.test.yml down","docker:test:logs":"docker compose -f docker-compose.test.yml logs -f"},"_npmUser":{"name":"superfunction","email":"rayim@inflike.com"},"_resolved":"/tmp/8c40afa6faa0905a98830a55fd22e5b9/spfn-core-0.2.0-beta.29.tgz","_integrity":"sha512-NXzAASSNcIUWpzMcEH0mSjXsKf0oGYs2nSiuO7mGCbCk3cfyIhoKAzmgk1QFV+nVZxUpZZpwe5ka2KRUjlHk4Q==","repository":{"url":"git+https://github.com/spfn/spfn.git","type":"git","directory":"packages/core"},"_npmVersion":"11.11.0","description":"SPFN Framework Core - File-based routing, transactions, repository pattern","directories":{},"_nodeVersion":"20.20.0","dependencies":{"zod":"^4.1.11","hono":"^4.10.6","jiti":"^2.6.1","chalk":"^5.6.2","dotenv":"^17.2.3","undici":"^7.22.0","pg-boss":"^11.1.2","chokidar":"^4.0.3","postgres":"^3.4.0","micromatch":"^4.0.8","typescript":"^5.3.3","drizzle-orm":"^0.45.0","drizzle-typebox":"^0.1.0","@hono/node-server":"^1.0.0","@sinclair/typebox":"^0.34.0"},"publishConfig":{"tag":"beta","access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"next":"^16.0.0","tsup":"^8.5.0","madge":"^8.0.0","vitest":"^4.0.6","@types/node":"^20.11.0","drizzle-kit":"^0.31.6","@types/micromatch":"^4.0.9","@vitest/coverage-v8":"^4.0.6"},"peerDependencies":{"next":"^15.0.0 || ^16.0.0"},"optionalDependencies":{"ioredis":"^5.4.1"},"peerDependenciesMeta":{"next":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/core_0.2.0-beta.29_1772809086638_0.43090004224671374","host":"s3://npm-registry-packages-npm-production"}},"0.2.0-beta.30":{"name":"@spfn/core","version":"0.2.0-beta.30","keywords":["spfn","nextjs","backend","framework","typescript","type-safe","api","rest-api","crud","database","orm","drizzle-orm","postgres","redis","hono","fullstack","server","scalable","auto-generated","file-based-routing","transaction","repository-pattern"],"author":{"name":"Ray Im","email":"rayim@inflike.com"},"license":"MIT","_id":"@spfn/core@0.2.0-beta.30","maintainers":[{"name":"superfunction","email":"rayim@inflike.com"}],"homepage":"https://github.com/spfn/spfn/tree/main/packages/core#readme","bugs":{"url":"https://github.com/spfn/spfn/issues"},"dist":{"shasum":"9f640a28dfeced4647e922a98cbe6ef02b5e5c3c","tarball":"https://registry.npmjs.org/@spfn/core/-/core-0.2.0-beta.30.tgz","fileCount":77,"integrity":"sha512-TP/YyNZlet7v7TuQ6UzP/O1zSZFYdenaAK7PuGLSDPW4Sf1g2RrdihFCuLuDNBggbDW1wpCUMUIr0ksfoNGbaA==","signatures":[{"sig":"MEUCIHG/p/El+B0oOvd+IJTa8jJzqeOvrZMljdGn5oVXaupnAiEAg4Vr/QfOGSUxOKgj62+3LgsoKyFRUiHEvgjE1JpDbW4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spfn%2fcore@0.2.0-beta.30","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1621781},"type":"module","_from":"file:spfn-core-0.2.0-beta.30.tgz","engines":{"node":">=18.18.0"},"exports":{"./db":{"types":"./dist/db/index.d.ts","import":"./dist/db/index.js","require":"./dist/db/index.js"},"./env":{"types":"./dist/env/index.d.ts","import":"./dist/env/index.js","require":"./dist/env/index.js"},"./job":{"types":"./dist/job/index.d.ts","import":"./dist/job/index.js","require":"./dist/job/index.js"},"./cache":{"types":"./dist/cache/index.d.ts","import":"./dist/cache/index.js","require":"./dist/cache/index.js"},"./event":{"types":"./dist/event/index.d.ts","import":"./dist/event/index.js","require":"./dist/event/index.js"},"./route":{"types":"./dist/route/index.d.ts","import":"./dist/route/index.js","require":"./dist/route/index.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","require":"./dist/client/index.js"},"./config":{"types":"./dist/config/index.d.ts","import":"./dist/config/index.js","require":"./dist/config/index.js"},"./errors":{"types":"./dist/errors/index.d.ts","import":"./dist/errors/index.js","require":"./dist/errors/index.js"},"./logger":{"types":"./dist/logger/index.d.ts","import":"./dist/logger/index.js","require":"./dist/logger/index.js"},"./nextjs":{"types":"./dist/nextjs/index.d.ts","import":"./dist/nextjs/index.js","require":"./dist/nextjs/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./codegen":{"types":"./dist/codegen/index.d.ts","import":"./dist/codegen/index.js","require":"./dist/codegen/index.js"},"./event/sse":{"types":"./dist/event/sse/index.d.ts","import":"./dist/event/sse/index.js","require":"./dist/event/sse/index.js"},"./env/loader":{"types":"./dist/env/loader.d.ts","import":"./dist/env/loader.js","require":"./dist/env/loader.js"},"./middleware":{"types":"./dist/middleware/index.d.ts","import":"./dist/middleware/index.js","require":"./dist/middleware/index.js"},"./route/types":{"types":"./dist/route/types.d.ts","import":"./dist/route/types.js","require":"./dist/route/types.js"},"./nextjs/server":{"types":"./dist/nextjs/server.d.ts","import":"./dist/nextjs/server.js","require":"./dist/nextjs/server.js"},"./event/sse/client":{"types":"./dist/event/sse/client.d.ts","import":"./dist/event/sse/client.js","require":"./dist/event/sse/client.js"}},"scripts":{"dev":"tsup","test":"vitest run","build":"pnpm check:circular && tsup","test:db":"vitest run src/db --config vitest.integration.config.ts","test:env":"vitest run src/env","test:cache":"vitest run src/cache --config vitest.integration.config.ts","test:route":"vitest run src/route","test:watch":"vitest","type-check":"tsc --noEmit","test:client":"vitest run src/client","test:errors":"vitest run src/errors","test:logger":"vitest run src/logger","test:server":"vitest run src/server --config vitest.integration.config.ts","test:codegen":"vitest run src/codegen","test:coverage":"vitest run --config vitest.unit.config.ts --coverage","check:circular":"madge --circular --extensions ts src/","docker:test:up":"docker compose -f docker-compose.test.yml up -d","test:middleware":"vitest run src/middleware","docker:test:down":"docker compose -f docker-compose.test.yml down","docker:test:logs":"docker compose -f docker-compose.test.yml logs -f"},"_npmUser":{"name":"superfunction","email":"rayim@inflike.com"},"_resolved":"/tmp/c4a2dfeb2e30f2773591aee382e4566c/spfn-core-0.2.0-beta.30.tgz","_integrity":"sha512-TP/YyNZlet7v7TuQ6UzP/O1zSZFYdenaAK7PuGLSDPW4Sf1g2RrdihFCuLuDNBggbDW1wpCUMUIr0ksfoNGbaA==","repository":{"url":"git+https://github.com/spfn/spfn.git","type":"git","directory":"packages/core"},"_npmVersion":"11.11.0","description":"SPFN Framework Core - File-based routing, transactions, repository pattern","directories":{},"_nodeVersion":"20.20.0","dependencies":{"zod":"^4.1.11","hono":"^4.10.6","jiti":"^2.6.1","chalk":"^5.6.2","dotenv":"^17.2.3","undici":"^7.22.0","pg-boss":"^11.1.2","chokidar":"^4.0.3","postgres":"^3.4.0","micromatch":"^4.0.8","typescript":"^5.3.3","drizzle-orm":"^0.45.0","drizzle-typebox":"^0.1.0","@hono/node-server":"^1.0.0","@sinclair/typebox":"^0.34.0"},"publishConfig":{"tag":"beta","access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"next":"^16.0.0","tsup":"^8.5.0","madge":"^8.0.0","vitest":"^4.0.6","@types/node":"^20.11.0","drizzle-kit":"^0.31.6","@types/micromatch":"^4.0.9","@vitest/coverage-v8":"^4.0.6"},"peerDependencies":{"next":"^15.0.0 || ^16.0.0"},"optionalDependencies":{"ioredis":"^5.4.1"},"peerDependenciesMeta":{"next":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/core_0.2.0-beta.30_1772812369032_0.9309044384580798","host":"s3://npm-registry-packages-npm-production"}},"0.2.0-beta.31":{"name":"@spfn/core","version":"0.2.0-beta.31","keywords":["spfn","nextjs","backend","framework","typescript","type-safe","api","rest-api","crud","database","orm","drizzle-orm","postgres","redis","hono","fullstack","server","scalable","auto-generated","file-based-routing","transaction","repository-pattern"],"author":{"name":"Ray Im","email":"rayim@inflike.com"},"license":"MIT","_id":"@spfn/core@0.2.0-beta.31","maintainers":[{"name":"superfunction","email":"rayim@inflike.com"}],"homepage":"https://github.com/spfn/spfn/tree/main/packages/core#readme","bugs":{"url":"https://github.com/spfn/spfn/issues"},"dist":{"shasum":"5731f4e93b015c1d244acdbfc410b02f22e6ff94","tarball":"https://registry.npmjs.org/@spfn/core/-/core-0.2.0-beta.31.tgz","fileCount":77,"integrity":"sha512-mmjU3VmDGXW1RnbZ3w1q8V1N6PR7PdiH5LX+CyDxYrxh+qrlpq3gB59cGNYMO1Yeu5L5cqkKTvXL1iKt+93FJw==","signatures":[{"sig":"MEUCIQCiUw7fAYEHY0ff4NoufJoOtpKSm4LPSNXx1gLVvWvTvgIgLO9r0WoVuxSXfdcMjUhg9NAhVaIgZPbvbx8kI7DbRN4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spfn%2fcore@0.2.0-beta.31","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1622332},"type":"module","_from":"file:spfn-core-0.2.0-beta.31.tgz","engines":{"node":">=18.18.0"},"exports":{"./db":{"types":"./dist/db/index.d.ts","import":"./dist/db/index.js","require":"./dist/db/index.js"},"./env":{"types":"./dist/env/index.d.ts","import":"./dist/env/index.js","require":"./dist/env/index.js"},"./job":{"types":"./dist/job/index.d.ts","import":"./dist/job/index.js","require":"./dist/job/index.js"},"./cache":{"types":"./dist/cache/index.d.ts","import":"./dist/cache/index.js","require":"./dist/cache/index.js"},"./event":{"types":"./dist/event/index.d.ts","import":"./dist/event/index.js","require":"./dist/event/index.js"},"./route":{"types":"./dist/route/index.d.ts","import":"./dist/route/index.js","require":"./dist/route/index.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","require":"./dist/client/index.js"},"./config":{"types":"./dist/config/index.d.ts","import":"./dist/config/index.js","require":"./dist/config/index.js"},"./errors":{"types":"./dist/errors/index.d.ts","import":"./dist/errors/index.js","require":"./dist/errors/index.js"},"./logger":{"types":"./dist/logger/index.d.ts","import":"./dist/logger/index.js","require":"./dist/logger/index.js"},"./nextjs":{"types":"./dist/nextjs/index.d.ts","import":"./dist/nextjs/index.js","require":"./dist/nextjs/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./codegen":{"types":"./dist/codegen/index.d.ts","import":"./dist/codegen/index.js","require":"./dist/codegen/index.js"},"./event/sse":{"types":"./dist/event/sse/index.d.ts","import":"./dist/event/sse/index.js","require":"./dist/event/sse/index.js"},"./env/loader":{"types":"./dist/env/loader.d.ts","import":"./dist/env/loader.js","require":"./dist/env/loader.js"},"./middleware":{"types":"./dist/middleware/index.d.ts","import":"./dist/middleware/index.js","require":"./dist/middleware/index.js"},"./route/types":{"types":"./dist/route/types.d.ts","import":"./dist/route/types.js","require":"./dist/route/types.js"},"./nextjs/server":{"types":"./dist/nextjs/server.d.ts","import":"./dist/nextjs/server.js","require":"./dist/nextjs/server.js"},"./event/sse/client":{"types":"./dist/event/sse/client.d.ts","import":"./dist/event/sse/client.js","require":"./dist/event/sse/client.js"}},"scripts":{"dev":"tsup","test":"vitest run","build":"pnpm check:circular && tsup","test:db":"vitest run src/db --config vitest.integration.config.ts","test:env":"vitest run src/env","test:cache":"vitest run src/cache --config vitest.integration.config.ts","test:route":"vitest run src/route","test:watch":"vitest","type-check":"tsc --noEmit","test:client":"vitest run src/client","test:errors":"vitest run src/errors","test:logger":"vitest run src/logger","test:server":"vitest run src/server --config vitest.integration.config.ts","test:codegen":"vitest run src/codegen","test:coverage":"vitest run --config vitest.unit.config.ts --coverage","check:circular":"madge --circular --extensions ts src/","docker:test:up":"docker compose -f docker-compose.test.yml up -d","test:middleware":"vitest run src/middleware","docker:test:down":"docker compose -f docker-compose.test.yml down","docker:test:logs":"docker compose -f docker-compose.test.yml logs -f"},"_npmUser":{"name":"superfunction","email":"rayim@inflike.com"},"_resolved":"/tmp/7129f676fab9af865d1b83d037bae4bb/spfn-core-0.2.0-beta.31.tgz","_integrity":"sha512-mmjU3VmDGXW1RnbZ3w1q8V1N6PR7PdiH5LX+CyDxYrxh+qrlpq3gB59cGNYMO1Yeu5L5cqkKTvXL1iKt+93FJw==","repository":{"url":"git+https://github.com/spfn/spfn.git","type":"git","directory":"packages/core"},"_npmVersion":"11.11.0","description":"SPFN Framework Core - File-based routing, transactions, repository pattern","directories":{},"_nodeVersion":"20.20.0","dependencies":{"zod":"^4.1.11","hono":"^4.10.6","jiti":"^2.6.1","chalk":"^5.6.2","dotenv":"^17.2.3","undici":"^7.22.0","pg-boss":"^11.1.2","chokidar":"^4.0.3","postgres":"^3.4.0","micromatch":"^4.0.8","typescript":"^5.3.3","drizzle-orm":"^0.45.0","drizzle-typebox":"^0.1.0","@hono/node-server":"^1.0.0","@sinclair/typebox":"^0.34.0"},"publishConfig":{"tag":"beta","access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"next":"^16.0.0","tsup":"^8.5.0","madge":"^8.0.0","vitest":"^4.0.6","@types/node":"^20.11.0","drizzle-kit":"^0.31.6","@types/micromatch":"^4.0.9","@vitest/coverage-v8":"^4.0.6"},"peerDependencies":{"next":"^15.0.0 || ^16.0.0"},"optionalDependencies":{"ioredis":"^5.4.1"},"peerDependenciesMeta":{"next":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/core_0.2.0-beta.31_1772855899511_0.21906329130818225","host":"s3://npm-registry-packages-npm-production"}},"0.2.0-beta.32":{"name":"@spfn/core","version":"0.2.0-beta.32","keywords":["spfn","nextjs","backend","framework","typescript","type-safe","api","rest-api","crud","database","orm","drizzle-orm","postgres","redis","hono","fullstack","server","scalable","auto-generated","file-based-routing","transaction","repository-pattern"],"author":{"name":"Ray Im","email":"rayim@inflike.com"},"license":"MIT","_id":"@spfn/core@0.2.0-beta.32","maintainers":[{"name":"superfunction","email":"rayim@inflike.com"}],"homepage":"https://github.com/spfn/spfn/tree/main/packages/core#readme","bugs":{"url":"https://github.com/spfn/spfn/issues"},"dist":{"shasum":"494742c5d21f485c12b654fad1d106d944da31eb","tarball":"https://registry.npmjs.org/@spfn/core/-/core-0.2.0-beta.32.tgz","fileCount":77,"integrity":"sha512-v7sjnbv7/be8R/PZsCCzRSIuX6WNr15t4W3RTUbz64/dhn5DMkYVewwr3inEtw0sbXDcfQwTnLD2Y6zQTpL3eA==","signatures":[{"sig":"MEYCIQCtX3JCmWajA4012EPy4Ftl2nInjmMr5Yfej3ozDTP32gIhAJHDgl6F4Q/KS/Dv9AyLfOzeOgH8bZe+V6Hepjmu6nyP","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spfn%2fcore@0.2.0-beta.32","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1629200},"type":"module","_from":"file:spfn-core-0.2.0-beta.32.tgz","engines":{"node":">=18.18.0"},"exports":{"./db":{"types":"./dist/db/index.d.ts","import":"./dist/db/index.js","require":"./dist/db/index.js"},"./env":{"types":"./dist/env/index.d.ts","import":"./dist/env/index.js","require":"./dist/env/index.js"},"./job":{"types":"./dist/job/index.d.ts","import":"./dist/job/index.js","require":"./dist/job/index.js"},"./cache":{"types":"./dist/cache/index.d.ts","import":"./dist/cache/index.js","require":"./dist/cache/index.js"},"./event":{"types":"./dist/event/index.d.ts","import":"./dist/event/index.js","require":"./dist/event/index.js"},"./route":{"types":"./dist/route/index.d.ts","import":"./dist/route/index.js","require":"./dist/route/index.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","require":"./dist/client/index.js"},"./config":{"types":"./dist/config/index.d.ts","import":"./dist/config/index.js","require":"./dist/config/index.js"},"./errors":{"types":"./dist/errors/index.d.ts","import":"./dist/errors/index.js","require":"./dist/errors/index.js"},"./logger":{"types":"./dist/logger/index.d.ts","import":"./dist/logger/index.js","require":"./dist/logger/index.js"},"./nextjs":{"types":"./dist/nextjs/index.d.ts","import":"./dist/nextjs/index.js","require":"./dist/nextjs/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./codegen":{"types":"./dist/codegen/index.d.ts","import":"./dist/codegen/index.js","require":"./dist/codegen/index.js"},"./event/sse":{"types":"./dist/event/sse/index.d.ts","import":"./dist/event/sse/index.js","require":"./dist/event/sse/index.js"},"./env/loader":{"types":"./dist/env/loader.d.ts","import":"./dist/env/loader.js","require":"./dist/env/loader.js"},"./middleware":{"types":"./dist/middleware/index.d.ts","import":"./dist/middleware/index.js","require":"./dist/middleware/index.js"},"./route/types":{"types":"./dist/route/types.d.ts","import":"./dist/route/types.js","require":"./dist/route/types.js"},"./nextjs/server":{"types":"./dist/nextjs/server.d.ts","import":"./dist/nextjs/server.js","require":"./dist/nextjs/server.js"},"./event/sse/client":{"types":"./dist/event/sse/client.d.ts","import":"./dist/event/sse/client.js","require":"./dist/event/sse/client.js"}},"scripts":{"dev":"tsup","test":"vitest run","build":"pnpm check:circular && tsup","test:db":"vitest run src/db --config vitest.integration.config.ts","test:env":"vitest run src/env","test:cache":"vitest run src/cache --config vitest.integration.config.ts","test:route":"vitest run src/route","test:watch":"vitest","type-check":"tsc --noEmit","test:client":"vitest run src/client","test:errors":"vitest run src/errors","test:logger":"vitest run src/logger","test:server":"vitest run src/server --config vitest.integration.config.ts","test:codegen":"vitest run src/codegen","test:coverage":"vitest run --config vitest.unit.config.ts --coverage","check:circular":"madge --circular --extensions ts src/","docker:test:up":"docker compose -f docker-compose.test.yml up -d","test:middleware":"vitest run src/middleware","docker:test:down":"docker compose -f docker-compose.test.yml down","docker:test:logs":"docker compose -f docker-compose.test.yml logs -f"},"_npmUser":{"name":"superfunction","email":"rayim@inflike.com"},"_resolved":"/tmp/8723d57c8bf65e0174dfa745bd056a9f/spfn-core-0.2.0-beta.32.tgz","_integrity":"sha512-v7sjnbv7/be8R/PZsCCzRSIuX6WNr15t4W3RTUbz64/dhn5DMkYVewwr3inEtw0sbXDcfQwTnLD2Y6zQTpL3eA==","repository":{"url":"git+https://github.com/spfn/spfn.git","type":"git","directory":"packages/core"},"_npmVersion":"11.11.0","description":"SPFN Framework Core - File-based routing, transactions, repository pattern","directories":{},"_nodeVersion":"20.20.0","dependencies":{"zod":"^4.1.11","hono":"^4.10.6","jiti":"^2.6.1","chalk":"^5.6.2","dotenv":"^17.2.3","undici":"^7.22.0","pg-boss":"^11.1.2","chokidar":"^4.0.3","postgres":"^3.4.0","micromatch":"^4.0.8","typescript":"^5.3.3","drizzle-orm":"^0.45.0","drizzle-typebox":"^0.1.0","@hono/node-server":"^1.0.0","@sinclair/typebox":"^0.34.0"},"publishConfig":{"tag":"beta","access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"next":"^16.0.0","tsup":"^8.5.0","madge":"^8.0.0","vitest":"^4.0.6","@types/node":"^20.11.0","drizzle-kit":"^0.31.6","@types/micromatch":"^4.0.9","@vitest/coverage-v8":"^4.0.6"},"peerDependencies":{"next":"^15.0.0 || ^16.0.0"},"optionalDependencies":{"ioredis":"^5.4.1"},"peerDependenciesMeta":{"next":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/core_0.2.0-beta.32_1773220834637_0.7092214029333452","host":"s3://npm-registry-packages-npm-production"}},"0.2.0-beta.33":{"name":"@spfn/core","version":"0.2.0-beta.33","keywords":["spfn","nextjs","backend","framework","typescript","type-safe","api","rest-api","crud","database","orm","drizzle-orm","postgres","redis","hono","fullstack","server","scalable","auto-generated","file-based-routing","transaction","repository-pattern"],"author":{"name":"Ray Im","email":"rayim@inflike.com"},"license":"MIT","_id":"@spfn/core@0.2.0-beta.33","maintainers":[{"name":"superfunction","email":"rayim@inflike.com"}],"homepage":"https://github.com/spfn/spfn/tree/main/packages/core#readme","bugs":{"url":"https://github.com/spfn/spfn/issues"},"dist":{"shasum":"d2170647ebbbddc69dfaf47870ec18ff99b8895f","tarball":"https://registry.npmjs.org/@spfn/core/-/core-0.2.0-beta.33.tgz","fileCount":77,"integrity":"sha512-L7cjeaHNpAkqHcqsDShujdB+TogAaLnNyhpQSLjD2HxzpOb64l8dWM+3kkp5JjOVUOkLCni8CxAYJOXTMOh7Cg==","signatures":[{"sig":"MEYCIQDOKt3oO5t6HOET7S0WcAiXMrnrNS+8ssPJ7v08D1lzVQIhAKc5OIRneb3x6CwnyNjocCz5rI4K1xKurQyShj5PSQrc","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spfn%2fcore@0.2.0-beta.33","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1630563},"type":"module","_from":"file:spfn-core-0.2.0-beta.33.tgz","engines":{"node":">=18.18.0"},"exports":{"./db":{"types":"./dist/db/index.d.ts","import":"./dist/db/index.js","require":"./dist/db/index.js"},"./env":{"types":"./dist/env/index.d.ts","import":"./dist/env/index.js","require":"./dist/env/index.js"},"./job":{"types":"./dist/job/index.d.ts","import":"./dist/job/index.js","require":"./dist/job/index.js"},"./cache":{"types":"./dist/cache/index.d.ts","import":"./dist/cache/index.js","require":"./dist/cache/index.js"},"./event":{"types":"./dist/event/index.d.ts","import":"./dist/event/index.js","require":"./dist/event/index.js"},"./route":{"types":"./dist/route/index.d.ts","import":"./dist/route/index.js","require":"./dist/route/index.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","require":"./dist/client/index.js"},"./config":{"types":"./dist/config/index.d.ts","import":"./dist/config/index.js","require":"./dist/config/index.js"},"./errors":{"types":"./dist/errors/index.d.ts","import":"./dist/errors/index.js","require":"./dist/errors/index.js"},"./logger":{"types":"./dist/logger/index.d.ts","import":"./dist/logger/index.js","require":"./dist/logger/index.js"},"./nextjs":{"types":"./dist/nextjs/index.d.ts","import":"./dist/nextjs/index.js","require":"./dist/nextjs/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./codegen":{"types":"./dist/codegen/index.d.ts","import":"./dist/codegen/index.js","require":"./dist/codegen/index.js"},"./event/sse":{"types":"./dist/event/sse/index.d.ts","import":"./dist/event/sse/index.js","require":"./dist/event/sse/index.js"},"./env/loader":{"types":"./dist/env/loader.d.ts","import":"./dist/env/loader.js","require":"./dist/env/loader.js"},"./middleware":{"types":"./dist/middleware/index.d.ts","import":"./dist/middleware/index.js","require":"./dist/middleware/index.js"},"./route/types":{"types":"./dist/route/types.d.ts","import":"./dist/route/types.js","require":"./dist/route/types.js"},"./nextjs/server":{"types":"./dist/nextjs/server.d.ts","import":"./dist/nextjs/server.js","require":"./dist/nextjs/server.js"},"./event/sse/client":{"types":"./dist/event/sse/client.d.ts","import":"./dist/event/sse/client.js","require":"./dist/event/sse/client.js"}},"scripts":{"dev":"tsup","test":"vitest run","build":"pnpm check:circular && tsup","test:db":"vitest run src/db --config vitest.integration.config.ts","test:env":"vitest run src/env","test:cache":"vitest run src/cache --config vitest.integration.config.ts","test:route":"vitest run src/route","test:watch":"vitest","type-check":"tsc --noEmit","test:client":"vitest run src/client","test:errors":"vitest run src/errors","test:logger":"vitest run src/logger","test:server":"vitest run src/server --config vitest.integration.config.ts","test:codegen":"vitest run src/codegen","test:coverage":"vitest run --config vitest.unit.config.ts --coverage","check:circular":"madge --circular --extensions ts src/","docker:test:up":"docker compose -f docker-compose.test.yml up -d","test:middleware":"vitest run src/middleware","docker:test:down":"docker compose -f docker-compose.test.yml down","docker:test:logs":"docker compose -f docker-compose.test.yml logs -f"},"_npmUser":{"name":"superfunction","email":"rayim@inflike.com"},"_resolved":"/tmp/02b362a41edba4fb851318699d93e6e9/spfn-core-0.2.0-beta.33.tgz","_integrity":"sha512-L7cjeaHNpAkqHcqsDShujdB+TogAaLnNyhpQSLjD2HxzpOb64l8dWM+3kkp5JjOVUOkLCni8CxAYJOXTMOh7Cg==","repository":{"url":"git+https://github.com/spfn/spfn.git","type":"git","directory":"packages/core"},"_npmVersion":"11.11.1","description":"SPFN Framework Core - File-based routing, transactions, repository pattern","directories":{},"_nodeVersion":"20.20.0","dependencies":{"zod":"^4.1.11","hono":"^4.10.6","jiti":"^2.6.1","chalk":"^5.6.2","dotenv":"^17.2.3","undici":"^7.22.0","pg-boss":"^11.1.2","chokidar":"^4.0.3","postgres":"^3.4.0","micromatch":"^4.0.8","typescript":"^5.3.3","drizzle-orm":"^0.45.0","drizzle-typebox":"^0.1.0","@hono/node-server":"^1.0.0","@sinclair/typebox":"^0.34.0"},"publishConfig":{"tag":"beta","access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"next":"^16.0.0","tsup":"^8.5.0","madge":"^8.0.0","vitest":"^4.0.6","@types/node":"^20.11.0","drizzle-kit":"^0.31.6","@types/micromatch":"^4.0.9","@vitest/coverage-v8":"^4.0.6"},"peerDependencies":{"next":"^15.0.0 || ^16.0.0"},"optionalDependencies":{"ioredis":"^5.4.1"},"peerDependenciesMeta":{"next":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/core_0.2.0-beta.33_1773318605924_0.10500684285557105","host":"s3://npm-registry-packages-npm-production"}},"0.2.0-beta.34":{"name":"@spfn/core","version":"0.2.0-beta.34","keywords":["spfn","nextjs","backend","framework","typescript","type-safe","api","rest-api","crud","database","orm","drizzle-orm","postgres","redis","hono","fullstack","server","scalable","auto-generated","file-based-routing","transaction","repository-pattern"],"author":{"name":"Ray Im","email":"rayim@inflike.com"},"license":"MIT","_id":"@spfn/core@0.2.0-beta.34","maintainers":[{"name":"superfunction","email":"rayim@inflike.com"}],"homepage":"https://github.com/spfn/spfn/tree/main/packages/core#readme","bugs":{"url":"https://github.com/spfn/spfn/issues"},"dist":{"shasum":"1a01cbb6f2d1094054e1e444a995690f0246df11","tarball":"https://registry.npmjs.org/@spfn/core/-/core-0.2.0-beta.34.tgz","fileCount":77,"integrity":"sha512-oX6hJfB8kBQWGitdntcBEgsOsxW8FGVZlUMoYrlkiH7OzjaXrs2k2Yv2mQdzK5WyefkNJomCIDgpHoVmoDY/ng==","signatures":[{"sig":"MEYCIQCVV339VMGsDlY3VoWtbXiqzTup7QGZ1OAzNXzxwsuW7AIhAMDvGdMoDr/52WlIwwutnqoYlmSaAgTnio3pRG8PUFt5","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spfn%2fcore@0.2.0-beta.34","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1631232},"type":"module","_from":"file:spfn-core-0.2.0-beta.34.tgz","engines":{"node":">=18.18.0"},"exports":{"./db":{"types":"./dist/db/index.d.ts","import":"./dist/db/index.js","require":"./dist/db/index.js"},"./env":{"types":"./dist/env/index.d.ts","import":"./dist/env/index.js","require":"./dist/env/index.js"},"./job":{"types":"./dist/job/index.d.ts","import":"./dist/job/index.js","require":"./dist/job/index.js"},"./cache":{"types":"./dist/cache/index.d.ts","import":"./dist/cache/index.js","require":"./dist/cache/index.js"},"./event":{"types":"./dist/event/index.d.ts","import":"./dist/event/index.js","require":"./dist/event/index.js"},"./route":{"types":"./dist/route/index.d.ts","import":"./dist/route/index.js","require":"./dist/route/index.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","require":"./dist/client/index.js"},"./config":{"types":"./dist/config/index.d.ts","import":"./dist/config/index.js","require":"./dist/config/index.js"},"./errors":{"types":"./dist/errors/index.d.ts","import":"./dist/errors/index.js","require":"./dist/errors/index.js"},"./logger":{"types":"./dist/logger/index.d.ts","import":"./dist/logger/index.js","require":"./dist/logger/index.js"},"./nextjs":{"types":"./dist/nextjs/index.d.ts","import":"./dist/nextjs/index.js","require":"./dist/nextjs/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./codegen":{"types":"./dist/codegen/index.d.ts","import":"./dist/codegen/index.js","require":"./dist/codegen/index.js"},"./event/sse":{"types":"./dist/event/sse/index.d.ts","import":"./dist/event/sse/index.js","require":"./dist/event/sse/index.js"},"./env/loader":{"types":"./dist/env/loader.d.ts","import":"./dist/env/loader.js","require":"./dist/env/loader.js"},"./middleware":{"types":"./dist/middleware/index.d.ts","import":"./dist/middleware/index.js","require":"./dist/middleware/index.js"},"./route/types":{"types":"./dist/route/types.d.ts","import":"./dist/route/types.js","require":"./dist/route/types.js"},"./nextjs/server":{"types":"./dist/nextjs/server.d.ts","import":"./dist/nextjs/server.js","require":"./dist/nextjs/server.js"},"./event/sse/client":{"types":"./dist/event/sse/client.d.ts","import":"./dist/event/sse/client.js","require":"./dist/event/sse/client.js"}},"scripts":{"dev":"tsup","test":"vitest run","build":"pnpm check:circular && tsup","test:db":"vitest run src/db --config vitest.integration.config.ts","test:env":"vitest run src/env","test:cache":"vitest run src/cache --config vitest.integration.config.ts","test:route":"vitest run src/route","test:watch":"vitest","type-check":"tsc --noEmit","test:client":"vitest run src/client","test:errors":"vitest run src/errors","test:logger":"vitest run src/logger","test:server":"vitest run src/server --config vitest.integration.config.ts","test:codegen":"vitest run src/codegen","test:coverage":"vitest run --config vitest.unit.config.ts --coverage","check:circular":"madge --circular --extensions ts src/","docker:test:up":"docker compose -f docker-compose.test.yml up -d","test:middleware":"vitest run src/middleware","docker:test:down":"docker compose -f docker-compose.test.yml down","docker:test:logs":"docker compose -f docker-compose.test.yml logs -f"},"_npmUser":{"name":"superfunction","email":"rayim@inflike.com"},"_resolved":"/tmp/14d56f236ab6c60fd7c6170cd26f2f67/spfn-core-0.2.0-beta.34.tgz","_integrity":"sha512-oX6hJfB8kBQWGitdntcBEgsOsxW8FGVZlUMoYrlkiH7OzjaXrs2k2Yv2mQdzK5WyefkNJomCIDgpHoVmoDY/ng==","repository":{"url":"git+https://github.com/spfn/spfn.git","type":"git","directory":"packages/core"},"_npmVersion":"11.11.1","description":"SPFN Framework Core - File-based routing, transactions, repository pattern","directories":{},"_nodeVersion":"20.20.0","dependencies":{"zod":"^4.1.11","hono":"^4.10.6","jiti":"^2.6.1","chalk":"^5.6.2","dotenv":"^17.2.3","undici":"^7.22.0","pg-boss":"^11.1.2","chokidar":"^4.0.3","postgres":"^3.4.0","micromatch":"^4.0.8","typescript":"^5.3.3","drizzle-orm":"^0.45.0","drizzle-typebox":"^0.1.0","@hono/node-server":"^1.0.0","@sinclair/typebox":"^0.34.0"},"publishConfig":{"tag":"beta","access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"next":"^16.0.0","tsup":"^8.5.0","madge":"^8.0.0","vitest":"^4.0.6","@types/node":"^20.11.0","drizzle-kit":"^0.31.6","@types/micromatch":"^4.0.9","@vitest/coverage-v8":"^4.0.6"},"peerDependencies":{"next":"^15.0.0 || ^16.0.0"},"optionalDependencies":{"ioredis":"^5.4.1"},"peerDependenciesMeta":{"next":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/core_0.2.0-beta.34_1773323728864_0.9719554894817983","host":"s3://npm-registry-packages-npm-production"}},"0.2.0-beta.35":{"name":"@spfn/core","version":"0.2.0-beta.35","keywords":["spfn","nextjs","backend","framework","typescript","type-safe","api","rest-api","crud","database","orm","drizzle-orm","postgres","redis","hono","fullstack","server","scalable","auto-generated","file-based-routing","transaction","repository-pattern"],"author":{"name":"Ray Im","email":"rayim@inflike.com"},"license":"MIT","_id":"@spfn/core@0.2.0-beta.35","maintainers":[{"name":"superfunction","email":"rayim@inflike.com"}],"homepage":"https://github.com/spfn/spfn/tree/main/packages/core#readme","bugs":{"url":"https://github.com/spfn/spfn/issues"},"dist":{"shasum":"b851d4c9f9261787151dcc6a1c06cd739ecb8768","tarball":"https://registry.npmjs.org/@spfn/core/-/core-0.2.0-beta.35.tgz","fileCount":77,"integrity":"sha512-UECsMqpq3BiIVrfJocJ/57gOv43RLLHjGfqpu0jnEf5x4W9iForcZikzw+Wo4kEmNpfhQEFYCNMEJbHRo/hYeg==","signatures":[{"sig":"MEUCIAJDfGKKpcOmRMz9MZVXXT21YgPmUSDPNPZCiN1p17YZAiEA5BkZXafxqhF0UAF6wAN3PfpRlMelVomPhRlgdokX6vQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spfn%2fcore@0.2.0-beta.35","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1633605},"type":"module","_from":"file:spfn-core-0.2.0-beta.35.tgz","engines":{"node":">=18.18.0"},"exports":{"./db":{"types":"./dist/db/index.d.ts","import":"./dist/db/index.js","require":"./dist/db/index.js"},"./env":{"types":"./dist/env/index.d.ts","import":"./dist/env/index.js","require":"./dist/env/index.js"},"./job":{"types":"./dist/job/index.d.ts","import":"./dist/job/index.js","require":"./dist/job/index.js"},"./cache":{"types":"./dist/cache/index.d.ts","import":"./dist/cache/index.js","require":"./dist/cache/index.js"},"./event":{"types":"./dist/event/index.d.ts","import":"./dist/event/index.js","require":"./dist/event/index.js"},"./route":{"types":"./dist/route/index.d.ts","import":"./dist/route/index.js","require":"./dist/route/index.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","require":"./dist/client/index.js"},"./config":{"types":"./dist/config/index.d.ts","import":"./dist/config/index.js","require":"./dist/config/index.js"},"./errors":{"types":"./dist/errors/index.d.ts","import":"./dist/errors/index.js","require":"./dist/errors/index.js"},"./logger":{"types":"./dist/logger/index.d.ts","import":"./dist/logger/index.js","require":"./dist/logger/index.js"},"./nextjs":{"types":"./dist/nextjs/index.d.ts","import":"./dist/nextjs/index.js","require":"./dist/nextjs/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./codegen":{"types":"./dist/codegen/index.d.ts","import":"./dist/codegen/index.js","require":"./dist/codegen/index.js"},"./event/sse":{"types":"./dist/event/sse/index.d.ts","import":"./dist/event/sse/index.js","require":"./dist/event/sse/index.js"},"./env/loader":{"types":"./dist/env/loader.d.ts","import":"./dist/env/loader.js","require":"./dist/env/loader.js"},"./middleware":{"types":"./dist/middleware/index.d.ts","import":"./dist/middleware/index.js","require":"./dist/middleware/index.js"},"./route/types":{"types":"./dist/route/types.d.ts","import":"./dist/route/types.js","require":"./dist/route/types.js"},"./nextjs/server":{"types":"./dist/nextjs/server.d.ts","import":"./dist/nextjs/server.js","require":"./dist/nextjs/server.js"},"./event/sse/client":{"types":"./dist/event/sse/client.d.ts","import":"./dist/event/sse/client.js","require":"./dist/event/sse/client.js"}},"scripts":{"dev":"tsup","test":"vitest run","build":"pnpm check:circular && tsup","test:db":"vitest run src/db --config vitest.integration.config.ts","test:env":"vitest run src/env","test:cache":"vitest run src/cache --config vitest.integration.config.ts","test:route":"vitest run src/route","test:watch":"vitest","type-check":"tsc --noEmit","test:client":"vitest run src/client","test:errors":"vitest run src/errors","test:logger":"vitest run src/logger","test:server":"vitest run src/server --config vitest.integration.config.ts","test:codegen":"vitest run src/codegen","test:coverage":"vitest run --config vitest.unit.config.ts --coverage","check:circular":"madge --circular --extensions ts src/","docker:test:up":"docker compose -f docker-compose.test.yml up -d","test:middleware":"vitest run src/middleware","docker:test:down":"docker compose -f docker-compose.test.yml down","docker:test:logs":"docker compose -f docker-compose.test.yml logs -f"},"_npmUser":{"name":"superfunction","email":"rayim@inflike.com"},"_resolved":"/tmp/0f012bcdfc42a2c0600152ea2693dd7a/spfn-core-0.2.0-beta.35.tgz","_integrity":"sha512-UECsMqpq3BiIVrfJocJ/57gOv43RLLHjGfqpu0jnEf5x4W9iForcZikzw+Wo4kEmNpfhQEFYCNMEJbHRo/hYeg==","repository":{"url":"git+https://github.com/spfn/spfn.git","type":"git","directory":"packages/core"},"_npmVersion":"11.11.1","description":"SPFN Framework Core - File-based routing, transactions, repository pattern","directories":{},"_nodeVersion":"20.20.1","dependencies":{"zod":"^4.1.11","hono":"^4.10.6","jiti":"^2.6.1","chalk":"^5.6.2","dotenv":"^17.2.3","undici":"^7.22.0","pg-boss":"^11.1.2","chokidar":"^4.0.3","postgres":"^3.4.0","micromatch":"^4.0.8","typescript":"^5.3.3","drizzle-orm":"^0.45.0","drizzle-typebox":"^0.1.0","@hono/node-server":"^1.0.0","@sinclair/typebox":"^0.34.0"},"publishConfig":{"tag":"beta","access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"next":"^16.0.0","tsup":"^8.5.0","madge":"^8.0.0","vitest":"^4.0.6","@types/node":"^20.11.0","drizzle-kit":"^0.31.6","@types/micromatch":"^4.0.9","@vitest/coverage-v8":"^4.0.6"},"peerDependencies":{"next":"^15.0.0 || ^16.0.0"},"optionalDependencies":{"ioredis":"^5.4.1"},"peerDependenciesMeta":{"next":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/core_0.2.0-beta.35_1773327859346_0.4285384187509562","host":"s3://npm-registry-packages-npm-production"}},"0.2.0-beta.36":{"name":"@spfn/core","version":"0.2.0-beta.36","keywords":["spfn","nextjs","backend","framework","typescript","type-safe","api","rest-api","crud","database","orm","drizzle-orm","postgres","redis","hono","fullstack","server","scalable","auto-generated","file-based-routing","transaction","repository-pattern"],"author":{"name":"Ray Im","email":"rayim@inflike.com"},"license":"MIT","_id":"@spfn/core@0.2.0-beta.36","maintainers":[{"name":"superfunction","email":"rayim@inflike.com"}],"homepage":"https://github.com/spfn/spfn/tree/main/packages/core#readme","bugs":{"url":"https://github.com/spfn/spfn/issues"},"dist":{"shasum":"b940c502c03f4a4692671d2a0af32b0dea6d0d49","tarball":"https://registry.npmjs.org/@spfn/core/-/core-0.2.0-beta.36.tgz","fileCount":77,"integrity":"sha512-VdSW5W70NqumHY/+/PrnTsurqmjIS5MZz1hbEcCP6zSrMdO0w4By+wYpQCHTBkw1GsOD6+OdFIjmjzebTViSrQ==","signatures":[{"sig":"MEYCIQDcpIIWg9w0gm9R/d3oK+/A7gfWLi1ytbqZCz7Xx82E8AIhALOlJ15hK//rQUjf7+GBxcErrUfAGQb0H9EWw4IRU1OM","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spfn%2fcore@0.2.0-beta.36","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1636155},"type":"module","_from":"file:spfn-core-0.2.0-beta.36.tgz","engines":{"node":">=18.18.0"},"exports":{"./db":{"types":"./dist/db/index.d.ts","import":"./dist/db/index.js","require":"./dist/db/index.js"},"./env":{"types":"./dist/env/index.d.ts","import":"./dist/env/index.js","require":"./dist/env/index.js"},"./job":{"types":"./dist/job/index.d.ts","import":"./dist/job/index.js","require":"./dist/job/index.js"},"./cache":{"types":"./dist/cache/index.d.ts","import":"./dist/cache/index.js","require":"./dist/cache/index.js"},"./event":{"types":"./dist/event/index.d.ts","import":"./dist/event/index.js","require":"./dist/event/index.js"},"./route":{"types":"./dist/route/index.d.ts","import":"./dist/route/index.js","require":"./dist/route/index.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","require":"./dist/client/index.js"},"./config":{"types":"./dist/config/index.d.ts","import":"./dist/config/index.js","require":"./dist/config/index.js"},"./errors":{"types":"./dist/errors/index.d.ts","import":"./dist/errors/index.js","require":"./dist/errors/index.js"},"./logger":{"types":"./dist/logger/index.d.ts","import":"./dist/logger/index.js","require":"./dist/logger/index.js"},"./nextjs":{"types":"./dist/nextjs/index.d.ts","import":"./dist/nextjs/index.js","require":"./dist/nextjs/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./codegen":{"types":"./dist/codegen/index.d.ts","import":"./dist/codegen/index.js","require":"./dist/codegen/index.js"},"./event/sse":{"types":"./dist/event/sse/index.d.ts","import":"./dist/event/sse/index.js","require":"./dist/event/sse/index.js"},"./env/loader":{"types":"./dist/env/loader.d.ts","import":"./dist/env/loader.js","require":"./dist/env/loader.js"},"./middleware":{"types":"./dist/middleware/index.d.ts","import":"./dist/middleware/index.js","require":"./dist/middleware/index.js"},"./route/types":{"types":"./dist/route/types.d.ts","import":"./dist/route/types.js","require":"./dist/route/types.js"},"./nextjs/server":{"types":"./dist/nextjs/server.d.ts","import":"./dist/nextjs/server.js","require":"./dist/nextjs/server.js"},"./event/sse/client":{"types":"./dist/event/sse/client.d.ts","import":"./dist/event/sse/client.js","require":"./dist/event/sse/client.js"}},"scripts":{"dev":"tsup","test":"vitest run","build":"pnpm check:circular && tsup","test:db":"vitest run src/db --config vitest.integration.config.ts","test:env":"vitest run src/env","test:cache":"vitest run src/cache --config vitest.integration.config.ts","test:route":"vitest run src/route","test:watch":"vitest","type-check":"tsc --noEmit","test:client":"vitest run src/client","test:errors":"vitest run src/errors","test:logger":"vitest run src/logger","test:server":"vitest run src/server --config vitest.integration.config.ts","test:codegen":"vitest run src/codegen","test:coverage":"vitest run --config vitest.unit.config.ts --coverage","check:circular":"madge --circular --extensions ts src/","docker:test:up":"docker compose -f docker-compose.test.yml up -d","test:middleware":"vitest run src/middleware","docker:test:down":"docker compose -f docker-compose.test.yml down","docker:test:logs":"docker compose -f docker-compose.test.yml logs -f"},"_npmUser":{"name":"superfunction","email":"rayim@inflike.com"},"_resolved":"/tmp/d8cb4c2d55109aa035dbf16bc2806daf/spfn-core-0.2.0-beta.36.tgz","_integrity":"sha512-VdSW5W70NqumHY/+/PrnTsurqmjIS5MZz1hbEcCP6zSrMdO0w4By+wYpQCHTBkw1GsOD6+OdFIjmjzebTViSrQ==","repository":{"url":"git+https://github.com/spfn/spfn.git","type":"git","directory":"packages/core"},"_npmVersion":"11.11.1","description":"SPFN Framework Core - File-based routing, transactions, repository pattern","directories":{},"_nodeVersion":"20.20.1","dependencies":{"zod":"^4.1.11","hono":"^4.10.6","jiti":"^2.6.1","chalk":"^5.6.2","dotenv":"^17.2.3","undici":"^7.22.0","pg-boss":"^11.1.2","chokidar":"^4.0.3","postgres":"^3.4.0","micromatch":"^4.0.8","typescript":"^5.3.3","drizzle-orm":"^0.45.0","drizzle-typebox":"^0.1.0","@hono/node-server":"^1.0.0","@sinclair/typebox":"^0.34.0"},"publishConfig":{"tag":"beta","access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"next":"^16.0.0","tsup":"^8.5.0","madge":"^8.0.0","vitest":"^4.0.6","@types/node":"^20.11.0","drizzle-kit":"^0.31.6","@types/micromatch":"^4.0.9","@vitest/coverage-v8":"^4.0.6"},"peerDependencies":{"next":"^15.0.0 || ^16.0.0"},"optionalDependencies":{"ioredis":"^5.4.1"},"peerDependenciesMeta":{"next":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/core_0.2.0-beta.36_1773590954023_0.029005555425643204","host":"s3://npm-registry-packages-npm-production"}},"0.2.0-beta.37":{"name":"@spfn/core","version":"0.2.0-beta.37","keywords":["spfn","nextjs","backend","framework","typescript","type-safe","api","rest-api","crud","database","orm","drizzle-orm","postgres","redis","hono","fullstack","server","scalable","auto-generated","file-based-routing","transaction","repository-pattern"],"author":{"name":"Ray Im","email":"rayim@inflike.com"},"license":"MIT","_id":"@spfn/core@0.2.0-beta.37","maintainers":[{"name":"superfunction","email":"rayim@inflike.com"}],"homepage":"https://github.com/spfn/spfn/tree/main/packages/core#readme","bugs":{"url":"https://github.com/spfn/spfn/issues"},"dist":{"shasum":"034826e20b31c52a0c6d46a26d54c0554c39a041","tarball":"https://registry.npmjs.org/@spfn/core/-/core-0.2.0-beta.37.tgz","fileCount":77,"integrity":"sha512-2nnk/OeUr+mtW0UwO1jDzfOHHeIafAS70o74xSN0Urjkf7C3EwHnWnoCs6bLVAavcEkhjin6+YH6aKbLTwi5Ag==","signatures":[{"sig":"MEUCIGz/itJW9Nlapbcu4wGSknK8Bgo/n5Am7wd03+7I1BXCAiEAghdQ9MqQkc8mUu7Kmk1g0CH3Pb5sQ2xpSt8sqNqq3M8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spfn%2fcore@0.2.0-beta.37","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1638981},"type":"module","_from":"file:spfn-core-0.2.0-beta.37.tgz","engines":{"node":">=18.18.0"},"exports":{"./db":{"types":"./dist/db/index.d.ts","import":"./dist/db/index.js","require":"./dist/db/index.js"},"./env":{"types":"./dist/env/index.d.ts","import":"./dist/env/index.js","require":"./dist/env/index.js"},"./job":{"types":"./dist/job/index.d.ts","import":"./dist/job/index.js","require":"./dist/job/index.js"},"./cache":{"types":"./dist/cache/index.d.ts","import":"./dist/cache/index.js","require":"./dist/cache/index.js"},"./event":{"types":"./dist/event/index.d.ts","import":"./dist/event/index.js","require":"./dist/event/index.js"},"./route":{"types":"./dist/route/index.d.ts","import":"./dist/route/index.js","require":"./dist/route/index.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","require":"./dist/client/index.js"},"./config":{"types":"./dist/config/index.d.ts","import":"./dist/config/index.js","require":"./dist/config/index.js"},"./errors":{"types":"./dist/errors/index.d.ts","import":"./dist/errors/index.js","require":"./dist/errors/index.js"},"./logger":{"types":"./dist/logger/index.d.ts","import":"./dist/logger/index.js","require":"./dist/logger/index.js"},"./nextjs":{"types":"./dist/nextjs/index.d.ts","import":"./dist/nextjs/index.js","require":"./dist/nextjs/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./codegen":{"types":"./dist/codegen/index.d.ts","import":"./dist/codegen/index.js","require":"./dist/codegen/index.js"},"./event/sse":{"types":"./dist/event/sse/index.d.ts","import":"./dist/event/sse/index.js","require":"./dist/event/sse/index.js"},"./env/loader":{"types":"./dist/env/loader.d.ts","import":"./dist/env/loader.js","require":"./dist/env/loader.js"},"./middleware":{"types":"./dist/middleware/index.d.ts","import":"./dist/middleware/index.js","require":"./dist/middleware/index.js"},"./route/types":{"types":"./dist/route/types.d.ts","import":"./dist/route/types.js","require":"./dist/route/types.js"},"./nextjs/server":{"types":"./dist/nextjs/server.d.ts","import":"./dist/nextjs/server.js","require":"./dist/nextjs/server.js"},"./event/sse/client":{"types":"./dist/event/sse/client.d.ts","import":"./dist/event/sse/client.js","require":"./dist/event/sse/client.js"}},"scripts":{"dev":"tsup","test":"vitest run","build":"pnpm check:circular && tsup","test:db":"vitest run src/db --config vitest.integration.config.ts","test:env":"vitest run src/env","test:cache":"vitest run src/cache --config vitest.integration.config.ts","test:route":"vitest run src/route","test:watch":"vitest","type-check":"tsc --noEmit","test:client":"vitest run src/client","test:errors":"vitest run src/errors","test:logger":"vitest run src/logger","test:server":"vitest run src/server --config vitest.integration.config.ts","test:codegen":"vitest run src/codegen","test:coverage":"vitest run --config vitest.unit.config.ts --coverage","check:circular":"madge --circular --extensions ts src/","docker:test:up":"docker compose -f docker-compose.test.yml up -d","test:middleware":"vitest run src/middleware","docker:test:down":"docker compose -f docker-compose.test.yml down","docker:test:logs":"docker compose -f docker-compose.test.yml logs -f"},"_npmUser":{"name":"superfunction","email":"rayim@inflike.com"},"_resolved":"/tmp/3313c789a2ead123ffcad3aba0bbc48a/spfn-core-0.2.0-beta.37.tgz","_integrity":"sha512-2nnk/OeUr+mtW0UwO1jDzfOHHeIafAS70o74xSN0Urjkf7C3EwHnWnoCs6bLVAavcEkhjin6+YH6aKbLTwi5Ag==","repository":{"url":"git+https://github.com/spfn/spfn.git","type":"git","directory":"packages/core"},"_npmVersion":"11.12.1","description":"SPFN Framework Core - File-based routing, transactions, repository pattern","directories":{},"_nodeVersion":"20.20.1","dependencies":{"zod":"^4.1.11","hono":"^4.10.6","jiti":"^2.6.1","chalk":"^5.6.2","dotenv":"^17.2.3","undici":"^7.22.0","pg-boss":"^11.1.2","chokidar":"^4.0.3","postgres":"^3.4.0","micromatch":"^4.0.8","typescript":"^5.3.3","drizzle-orm":"^0.45.0","drizzle-typebox":"^0.1.0","@hono/node-server":"^1.0.0","@sinclair/typebox":"^0.34.0"},"publishConfig":{"tag":"beta","access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"next":"^16.0.0","tsup":"^8.5.0","madge":"^8.0.0","vitest":"^4.0.6","@types/node":"^20.11.0","drizzle-kit":"^0.31.6","@types/micromatch":"^4.0.9","@vitest/coverage-v8":"^4.0.6"},"peerDependencies":{"next":"^15.0.0 || ^16.0.0"},"optionalDependencies":{"ioredis":"^5.4.1"},"peerDependenciesMeta":{"next":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/core_0.2.0-beta.37_1774592417020_0.9924407392859913","host":"s3://npm-registry-packages-npm-production"}},"0.2.0-beta.38":{"name":"@spfn/core","version":"0.2.0-beta.38","keywords":["spfn","nextjs","backend","framework","typescript","type-safe","api","rest-api","crud","database","orm","drizzle-orm","postgres","redis","hono","fullstack","server","scalable","auto-generated","file-based-routing","transaction","repository-pattern"],"author":{"name":"Ray Im","email":"rayim@inflike.com"},"license":"MIT","_id":"@spfn/core@0.2.0-beta.38","maintainers":[{"name":"superfunction","email":"rayim@inflike.com"}],"homepage":"https://github.com/spfn/spfn/tree/main/packages/core#readme","bugs":{"url":"https://github.com/spfn/spfn/issues"},"dist":{"shasum":"5e691b7cdf27a48581fb05c6c405f0779adf3aaf","tarball":"https://registry.npmjs.org/@spfn/core/-/core-0.2.0-beta.38.tgz","fileCount":77,"integrity":"sha512-rq6h8P+LJup0YKIpkwGVItRPgizeTua1ePTcaDP5twmXb2aTqqghGyajC3y7Wb1+InFxltdFPisjklVUxJgs1w==","signatures":[{"sig":"MEUCIQCFFII71Dqm1dW8M3DTITKp6sh6ZtLiHEw9UHuj2iyx7wIgIY23Mlefla0uxVPrvjBtn9MfN6cyn/3AwnNsuOrGvkI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spfn%2fcore@0.2.0-beta.38","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1639915},"type":"module","_from":"file:spfn-core-0.2.0-beta.38.tgz","engines":{"node":">=18.18.0"},"exports":{"./db":{"types":"./dist/db/index.d.ts","import":"./dist/db/index.js","require":"./dist/db/index.js"},"./env":{"types":"./dist/env/index.d.ts","import":"./dist/env/index.js","require":"./dist/env/index.js"},"./job":{"types":"./dist/job/index.d.ts","import":"./dist/job/index.js","require":"./dist/job/index.js"},"./cache":{"types":"./dist/cache/index.d.ts","import":"./dist/cache/index.js","require":"./dist/cache/index.js"},"./event":{"types":"./dist/event/index.d.ts","import":"./dist/event/index.js","require":"./dist/event/index.js"},"./route":{"types":"./dist/route/index.d.ts","import":"./dist/route/index.js","require":"./dist/route/index.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","require":"./dist/client/index.js"},"./config":{"types":"./dist/config/index.d.ts","import":"./dist/config/index.js","require":"./dist/config/index.js"},"./errors":{"types":"./dist/errors/index.d.ts","import":"./dist/errors/index.js","require":"./dist/errors/index.js"},"./logger":{"types":"./dist/logger/index.d.ts","import":"./dist/logger/index.js","require":"./dist/logger/index.js"},"./nextjs":{"types":"./dist/nextjs/index.d.ts","import":"./dist/nextjs/index.js","require":"./dist/nextjs/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./codegen":{"types":"./dist/codegen/index.d.ts","import":"./dist/codegen/index.js","require":"./dist/codegen/index.js"},"./event/sse":{"types":"./dist/event/sse/index.d.ts","import":"./dist/event/sse/index.js","require":"./dist/event/sse/index.js"},"./env/loader":{"types":"./dist/env/loader.d.ts","import":"./dist/env/loader.js","require":"./dist/env/loader.js"},"./middleware":{"types":"./dist/middleware/index.d.ts","import":"./dist/middleware/index.js","require":"./dist/middleware/index.js"},"./route/types":{"types":"./dist/route/types.d.ts","import":"./dist/route/types.js","require":"./dist/route/types.js"},"./nextjs/server":{"types":"./dist/nextjs/server.d.ts","import":"./dist/nextjs/server.js","require":"./dist/nextjs/server.js"},"./event/sse/client":{"types":"./dist/event/sse/client.d.ts","import":"./dist/event/sse/client.js","require":"./dist/event/sse/client.js"}},"scripts":{"dev":"tsup","test":"vitest run","build":"pnpm check:circular && tsup","test:db":"vitest run src/db --config vitest.integration.config.ts","test:env":"vitest run src/env","test:cache":"vitest run src/cache --config vitest.integration.config.ts","test:route":"vitest run src/route","test:watch":"vitest","type-check":"tsc --noEmit","test:client":"vitest run src/client","test:errors":"vitest run src/errors","test:logger":"vitest run src/logger","test:server":"vitest run src/server --config vitest.integration.config.ts","test:codegen":"vitest run src/codegen","test:coverage":"vitest run --config vitest.unit.config.ts --coverage","check:circular":"madge --circular --extensions ts src/","docker:test:up":"docker compose -f docker-compose.test.yml up -d","test:middleware":"vitest run src/middleware","docker:test:down":"docker compose -f docker-compose.test.yml down","docker:test:logs":"docker compose -f docker-compose.test.yml logs -f"},"_npmUser":{"name":"superfunction","email":"rayim@inflike.com"},"_resolved":"/tmp/3dec9e418330f1b130884e08cae61907/spfn-core-0.2.0-beta.38.tgz","_integrity":"sha512-rq6h8P+LJup0YKIpkwGVItRPgizeTua1ePTcaDP5twmXb2aTqqghGyajC3y7Wb1+InFxltdFPisjklVUxJgs1w==","repository":{"url":"git+https://github.com/spfn/spfn.git","type":"git","directory":"packages/core"},"_npmVersion":"11.12.1","description":"SPFN Framework Core - File-based routing, transactions, repository pattern","directories":{},"_nodeVersion":"20.20.1","dependencies":{"zod":"^4.1.11","hono":"^4.10.6","jiti":"^2.6.1","chalk":"^5.6.2","dotenv":"^17.2.3","undici":"^7.22.0","pg-boss":"^11.1.2","chokidar":"^4.0.3","postgres":"^3.4.0","micromatch":"^4.0.8","typescript":"^5.3.3","drizzle-orm":"^0.45.0","drizzle-typebox":"^0.1.0","@hono/node-server":"^1.0.0","@sinclair/typebox":"^0.34.0"},"publishConfig":{"tag":"beta","access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"next":"^16.0.0","tsup":"^8.5.0","madge":"^8.0.0","vitest":"^4.0.6","@types/node":"^20.11.0","drizzle-kit":"^0.31.6","@types/micromatch":"^4.0.9","@vitest/coverage-v8":"^4.0.6"},"peerDependencies":{"next":"^15.0.0 || ^16.0.0"},"optionalDependencies":{"ioredis":"^5.4.1"},"peerDependenciesMeta":{"next":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/core_0.2.0-beta.38_1774626106033_0.7814612184035783","host":"s3://npm-registry-packages-npm-production"}},"0.2.0-beta.39":{"name":"@spfn/core","version":"0.2.0-beta.39","keywords":["spfn","nextjs","backend","framework","typescript","type-safe","api","rest-api","crud","database","orm","drizzle-orm","postgres","redis","hono","fullstack","server","scalable","auto-generated","file-based-routing","transaction","repository-pattern"],"author":{"name":"Ray Im","email":"rayim@inflike.com"},"license":"MIT","_id":"@spfn/core@0.2.0-beta.39","maintainers":[{"name":"superfunction","email":"rayim@inflike.com"}],"homepage":"https://github.com/spfn/spfn/tree/main/packages/core#readme","bugs":{"url":"https://github.com/spfn/spfn/issues"},"dist":{"shasum":"64e760aa80d50ff89cd3e090900e670c0c572c25","tarball":"https://registry.npmjs.org/@spfn/core/-/core-0.2.0-beta.39.tgz","fileCount":77,"integrity":"sha512-vJ7jq7BchnvNpa4D3JGZwMQJOWrWR1ImgTXDPSmOeNBzbDIEXGO8F4zrC8NlK79iCb9JVuqSLPItfHIwuhj9dw==","signatures":[{"sig":"MEUCIBx4NQTeaq867Ciq8MP5/hCAK9bcePIeqpMsZ00dbIUpAiEAt6YiNPn7e2bC3Z6kDrMd78rAzT9Z9jhU5Zhw9slbgNo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spfn%2fcore@0.2.0-beta.39","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1639763},"type":"module","_from":"file:spfn-core-0.2.0-beta.39.tgz","engines":{"node":">=18.18.0"},"exports":{"./db":{"types":"./dist/db/index.d.ts","import":"./dist/db/index.js","require":"./dist/db/index.js"},"./env":{"types":"./dist/env/index.d.ts","import":"./dist/env/index.js","require":"./dist/env/index.js"},"./job":{"types":"./dist/job/index.d.ts","import":"./dist/job/index.js","require":"./dist/job/index.js"},"./cache":{"types":"./dist/cache/index.d.ts","import":"./dist/cache/index.js","require":"./dist/cache/index.js"},"./event":{"types":"./dist/event/index.d.ts","import":"./dist/event/index.js","require":"./dist/event/index.js"},"./route":{"types":"./dist/route/index.d.ts","import":"./dist/route/index.js","require":"./dist/route/index.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","require":"./dist/client/index.js"},"./config":{"types":"./dist/config/index.d.ts","import":"./dist/config/index.js","require":"./dist/config/index.js"},"./errors":{"types":"./dist/errors/index.d.ts","import":"./dist/errors/index.js","require":"./dist/errors/index.js"},"./logger":{"types":"./dist/logger/index.d.ts","import":"./dist/logger/index.js","require":"./dist/logger/index.js"},"./nextjs":{"types":"./dist/nextjs/index.d.ts","import":"./dist/nextjs/index.js","require":"./dist/nextjs/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./codegen":{"types":"./dist/codegen/index.d.ts","import":"./dist/codegen/index.js","require":"./dist/codegen/index.js"},"./event/sse":{"types":"./dist/event/sse/index.d.ts","import":"./dist/event/sse/index.js","require":"./dist/event/sse/index.js"},"./env/loader":{"types":"./dist/env/loader.d.ts","import":"./dist/env/loader.js","require":"./dist/env/loader.js"},"./middleware":{"types":"./dist/middleware/index.d.ts","import":"./dist/middleware/index.js","require":"./dist/middleware/index.js"},"./route/types":{"types":"./dist/route/types.d.ts","import":"./dist/route/types.js","require":"./dist/route/types.js"},"./nextjs/server":{"types":"./dist/nextjs/server.d.ts","import":"./dist/nextjs/server.js","require":"./dist/nextjs/server.js"},"./event/sse/client":{"types":"./dist/event/sse/client.d.ts","import":"./dist/event/sse/client.js","require":"./dist/event/sse/client.js"}},"scripts":{"dev":"tsup","test":"vitest run","build":"pnpm check:circular && tsup","test:db":"vitest run src/db --config vitest.integration.config.ts","test:env":"vitest run src/env","test:cache":"vitest run src/cache --config vitest.integration.config.ts","test:route":"vitest run src/route","test:watch":"vitest","type-check":"tsc --noEmit","test:client":"vitest run src/client","test:errors":"vitest run src/errors","test:logger":"vitest run src/logger","test:server":"vitest run src/server --config vitest.integration.config.ts","test:codegen":"vitest run src/codegen","test:coverage":"vitest run --config vitest.unit.config.ts --coverage","check:circular":"madge --circular --extensions ts src/","docker:test:up":"docker compose -f docker-compose.test.yml up -d","test:middleware":"vitest run src/middleware","docker:test:down":"docker compose -f docker-compose.test.yml down","docker:test:logs":"docker compose -f docker-compose.test.yml logs -f"},"_npmUser":{"name":"superfunction","email":"rayim@inflike.com"},"_resolved":"/tmp/5dcac9ec3e3d44bb245c5bcb74c00773/spfn-core-0.2.0-beta.39.tgz","_integrity":"sha512-vJ7jq7BchnvNpa4D3JGZwMQJOWrWR1ImgTXDPSmOeNBzbDIEXGO8F4zrC8NlK79iCb9JVuqSLPItfHIwuhj9dw==","repository":{"url":"git+https://github.com/spfn/spfn.git","type":"git","directory":"packages/core"},"_npmVersion":"11.12.1","description":"SPFN Framework Core - File-based routing, transactions, repository pattern","directories":{},"_nodeVersion":"20.20.1","dependencies":{"zod":"^4.1.11","hono":"^4.10.6","jiti":"^2.6.1","chalk":"^5.6.2","dotenv":"^17.2.3","undici":"^7.22.0","pg-boss":"^11.1.2","chokidar":"^4.0.3","postgres":"^3.4.0","micromatch":"^4.0.8","typescript":"^5.3.3","drizzle-orm":"^0.45.0","drizzle-typebox":"^0.1.0","@hono/node-server":"^1.0.0","@sinclair/typebox":"^0.34.0"},"publishConfig":{"tag":"beta","access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"next":"^16.0.0","tsup":"^8.5.0","madge":"^8.0.0","vitest":"^4.0.6","@types/node":"^20.11.0","drizzle-kit":"^0.31.6","@types/micromatch":"^4.0.9","@vitest/coverage-v8":"^4.0.6"},"peerDependencies":{"next":"^15.0.0 || ^16.0.0"},"optionalDependencies":{"ioredis":"^5.4.1"},"peerDependenciesMeta":{"next":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/core_0.2.0-beta.39_1774786193469_0.7553286364882104","host":"s3://npm-registry-packages-npm-production"}},"0.2.0-beta.40":{"name":"@spfn/core","version":"0.2.0-beta.40","keywords":["spfn","nextjs","backend","framework","typescript","type-safe","api","rest-api","crud","database","orm","drizzle-orm","postgres","redis","hono","fullstack","server","scalable","auto-generated","file-based-routing","transaction","repository-pattern"],"author":{"name":"Ray Im","email":"rayim@inflike.com"},"license":"MIT","_id":"@spfn/core@0.2.0-beta.40","maintainers":[{"name":"superfunction","email":"rayim@inflike.com"}],"homepage":"https://github.com/spfn/spfn/tree/main/packages/core#readme","bugs":{"url":"https://github.com/spfn/spfn/issues"},"dist":{"shasum":"9bed134ad45d0e7a2577dc70bce01ed8db48130d","tarball":"https://registry.npmjs.org/@spfn/core/-/core-0.2.0-beta.40.tgz","fileCount":77,"integrity":"sha512-UhRCb1zYlPuuceINGFWnhgr+b3bX0vuiqvEkqUEb0UUpTW79Pw+GrT4acjHkFZIlOmNRh7JU8xnY4yHsLxVglw==","signatures":[{"sig":"MEYCIQDJ37xEeiUqccZHR+PtM1ALrBBxOccCEw2U6e+0HpRwfAIhAPp8+J38qWwrt3fZaHlqN8Om0otTmQGqXXIP0fD5EZeC","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spfn%2fcore@0.2.0-beta.40","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1642801},"type":"module","_from":"file:spfn-core-0.2.0-beta.40.tgz","engines":{"node":">=18.18.0"},"exports":{"./db":{"types":"./dist/db/index.d.ts","import":"./dist/db/index.js","require":"./dist/db/index.js"},"./env":{"types":"./dist/env/index.d.ts","import":"./dist/env/index.js","require":"./dist/env/index.js"},"./job":{"types":"./dist/job/index.d.ts","import":"./dist/job/index.js","require":"./dist/job/index.js"},"./cache":{"types":"./dist/cache/index.d.ts","import":"./dist/cache/index.js","require":"./dist/cache/index.js"},"./event":{"types":"./dist/event/index.d.ts","import":"./dist/event/index.js","require":"./dist/event/index.js"},"./route":{"types":"./dist/route/index.d.ts","import":"./dist/route/index.js","require":"./dist/route/index.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","require":"./dist/client/index.js"},"./config":{"types":"./dist/config/index.d.ts","import":"./dist/config/index.js","require":"./dist/config/index.js"},"./errors":{"types":"./dist/errors/index.d.ts","import":"./dist/errors/index.js","require":"./dist/errors/index.js"},"./logger":{"types":"./dist/logger/index.d.ts","import":"./dist/logger/index.js","require":"./dist/logger/index.js"},"./nextjs":{"types":"./dist/nextjs/index.d.ts","import":"./dist/nextjs/index.js","require":"./dist/nextjs/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./codegen":{"types":"./dist/codegen/index.d.ts","import":"./dist/codegen/index.js","require":"./dist/codegen/index.js"},"./event/sse":{"types":"./dist/event/sse/index.d.ts","import":"./dist/event/sse/index.js","require":"./dist/event/sse/index.js"},"./env/loader":{"types":"./dist/env/loader.d.ts","import":"./dist/env/loader.js","require":"./dist/env/loader.js"},"./middleware":{"types":"./dist/middleware/index.d.ts","import":"./dist/middleware/index.js","require":"./dist/middleware/index.js"},"./route/types":{"types":"./dist/route/types.d.ts","import":"./dist/route/types.js","require":"./dist/route/types.js"},"./nextjs/server":{"types":"./dist/nextjs/server.d.ts","import":"./dist/nextjs/server.js","require":"./dist/nextjs/server.js"},"./event/sse/client":{"types":"./dist/event/sse/client.d.ts","import":"./dist/event/sse/client.js","require":"./dist/event/sse/client.js"}},"scripts":{"dev":"tsup","test":"vitest run","build":"pnpm check:circular && tsup","test:db":"vitest run src/db --config vitest.integration.config.ts","test:env":"vitest run src/env","test:cache":"vitest run src/cache --config vitest.integration.config.ts","test:route":"vitest run src/route","test:watch":"vitest","type-check":"tsc --noEmit","test:client":"vitest run src/client","test:errors":"vitest run src/errors","test:logger":"vitest run src/logger","test:server":"vitest run src/server --config vitest.integration.config.ts","test:codegen":"vitest run src/codegen","test:coverage":"vitest run --config vitest.unit.config.ts --coverage","check:circular":"madge --circular --extensions ts src/","docker:test:up":"docker compose -f docker-compose.test.yml up -d","test:middleware":"vitest run src/middleware","docker:test:down":"docker compose -f docker-compose.test.yml down","docker:test:logs":"docker compose -f docker-compose.test.yml logs -f"},"_npmUser":{"name":"superfunction","email":"rayim@inflike.com"},"_resolved":"/tmp/f4dfeeedd0d52d8a837049878ead84f5/spfn-core-0.2.0-beta.40.tgz","_integrity":"sha512-UhRCb1zYlPuuceINGFWnhgr+b3bX0vuiqvEkqUEb0UUpTW79Pw+GrT4acjHkFZIlOmNRh7JU8xnY4yHsLxVglw==","repository":{"url":"git+https://github.com/spfn/spfn.git","type":"git","directory":"packages/core"},"_npmVersion":"11.12.1","description":"SPFN Framework Core - File-based routing, transactions, repository pattern","directories":{},"_nodeVersion":"20.20.1","dependencies":{"zod":"^4.1.11","hono":"^4.10.6","jiti":"^2.6.1","chalk":"^5.6.2","dotenv":"^17.2.3","undici":"^7.22.0","pg-boss":"^11.1.2","chokidar":"^4.0.3","postgres":"^3.4.0","micromatch":"^4.0.8","typescript":"^5.3.3","drizzle-orm":"^0.45.0","drizzle-typebox":"^0.1.0","@hono/node-server":"^1.0.0","@sinclair/typebox":"^0.34.0"},"publishConfig":{"tag":"beta","access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"next":"^16.0.0","tsup":"^8.5.0","madge":"^8.0.0","vitest":"^4.0.6","@types/node":"^20.11.0","drizzle-kit":"^0.31.6","@types/micromatch":"^4.0.9","@vitest/coverage-v8":"^4.0.6"},"peerDependencies":{"next":"^15.0.0 || ^16.0.0"},"optionalDependencies":{"ioredis":"^5.4.1"},"peerDependenciesMeta":{"next":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/core_0.2.0-beta.40_1774886984593_0.4724742997786695","host":"s3://npm-registry-packages-npm-production"}},"0.2.0-beta.42":{"name":"@spfn/core","version":"0.2.0-beta.42","keywords":["spfn","nextjs","backend","framework","typescript","type-safe","api","rest-api","crud","database","orm","drizzle-orm","postgres","redis","hono","fullstack","server","scalable","auto-generated","file-based-routing","transaction","repository-pattern"],"author":{"name":"Ray Im","email":"rayim@inflike.com"},"license":"MIT","_id":"@spfn/core@0.2.0-beta.42","maintainers":[{"name":"superfunction","email":"rayim@inflike.com"}],"homepage":"https://github.com/spfn/spfn/tree/main/packages/core#readme","bugs":{"url":"https://github.com/spfn/spfn/issues"},"dist":{"shasum":"da6df83c82fa1a6407e238a519d1f09d735e2f9f","tarball":"https://registry.npmjs.org/@spfn/core/-/core-0.2.0-beta.42.tgz","fileCount":77,"integrity":"sha512-BLU/4n7zopuFpYsod28q+jKePui5EL3DvZ5KWE9qV44c6OAfhfzcz++5y75MQcatdSZ7z408wnk/3LgBLZKukw==","signatures":[{"sig":"MEUCIFFY18M5U+E8tg0q86jgya6SJUzv2h8M9LSrzHU8ve8dAiEA1LdjgLnjDQpGvWmhQo7AYV75ca4EmwgK4z/Cnp6MO1c=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spfn%2fcore@0.2.0-beta.42","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1642712},"type":"module","_from":"file:spfn-core-0.2.0-beta.42.tgz","engines":{"node":">=18.18.0"},"exports":{"./db":{"types":"./dist/db/index.d.ts","import":"./dist/db/index.js","require":"./dist/db/index.js"},"./env":{"types":"./dist/env/index.d.ts","import":"./dist/env/index.js","require":"./dist/env/index.js"},"./job":{"types":"./dist/job/index.d.ts","import":"./dist/job/index.js","require":"./dist/job/index.js"},"./cache":{"types":"./dist/cache/index.d.ts","import":"./dist/cache/index.js","require":"./dist/cache/index.js"},"./event":{"types":"./dist/event/index.d.ts","import":"./dist/event/index.js","require":"./dist/event/index.js"},"./route":{"types":"./dist/route/index.d.ts","import":"./dist/route/index.js","require":"./dist/route/index.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","require":"./dist/client/index.js"},"./config":{"types":"./dist/config/index.d.ts","import":"./dist/config/index.js","require":"./dist/config/index.js"},"./errors":{"types":"./dist/errors/index.d.ts","import":"./dist/errors/index.js","require":"./dist/errors/index.js"},"./logger":{"types":"./dist/logger/index.d.ts","import":"./dist/logger/index.js","require":"./dist/logger/index.js"},"./nextjs":{"types":"./dist/nextjs/index.d.ts","import":"./dist/nextjs/index.js","require":"./dist/nextjs/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./codegen":{"types":"./dist/codegen/index.d.ts","import":"./dist/codegen/index.js","require":"./dist/codegen/index.js"},"./event/sse":{"types":"./dist/event/sse/index.d.ts","import":"./dist/event/sse/index.js","require":"./dist/event/sse/index.js"},"./env/loader":{"types":"./dist/env/loader.d.ts","import":"./dist/env/loader.js","require":"./dist/env/loader.js"},"./middleware":{"types":"./dist/middleware/index.d.ts","import":"./dist/middleware/index.js","require":"./dist/middleware/index.js"},"./route/types":{"types":"./dist/route/types.d.ts","import":"./dist/route/types.js","require":"./dist/route/types.js"},"./nextjs/server":{"types":"./dist/nextjs/server.d.ts","import":"./dist/nextjs/server.js","require":"./dist/nextjs/server.js"},"./event/sse/client":{"types":"./dist/event/sse/client.d.ts","import":"./dist/event/sse/client.js","require":"./dist/event/sse/client.js"}},"scripts":{"dev":"tsup","test":"vitest run","build":"pnpm check:circular && tsup","test:db":"vitest run src/db --config vitest.integration.config.ts","test:env":"vitest run src/env","test:cache":"vitest run src/cache --config vitest.integration.config.ts","test:route":"vitest run src/route","test:watch":"vitest","type-check":"tsc --noEmit","test:client":"vitest run src/client","test:errors":"vitest run src/errors","test:logger":"vitest run src/logger","test:server":"vitest run src/server --config vitest.integration.config.ts","test:codegen":"vitest run src/codegen","test:coverage":"vitest run --config vitest.unit.config.ts --coverage","check:circular":"madge --circular --extensions ts src/","docker:test:up":"docker compose -f docker-compose.test.yml up -d","test:middleware":"vitest run src/middleware","docker:test:down":"docker compose -f docker-compose.test.yml down","docker:test:logs":"docker compose -f docker-compose.test.yml logs -f"},"_npmUser":{"name":"superfunction","email":"rayim@inflike.com"},"_resolved":"/tmp/bf0f42de72e7276addd875e759668777/spfn-core-0.2.0-beta.42.tgz","_integrity":"sha512-BLU/4n7zopuFpYsod28q+jKePui5EL3DvZ5KWE9qV44c6OAfhfzcz++5y75MQcatdSZ7z408wnk/3LgBLZKukw==","repository":{"url":"git+https://github.com/spfn/spfn.git","type":"git","directory":"packages/core"},"_npmVersion":"11.12.1","description":"SPFN Framework Core - File-based routing, transactions, repository pattern","directories":{},"_nodeVersion":"20.20.1","dependencies":{"zod":"^4.1.11","hono":"^4.12.4","jiti":"^2.6.1","chalk":"^5.6.2","dotenv":"^17.2.3","undici":"^7.24.0","pg-boss":"^11.1.2","chokidar":"^4.0.3","postgres":"^3.4.0","micromatch":"^4.0.8","typescript":"^5.3.3","drizzle-orm":"^0.45.0","drizzle-typebox":"^0.1.0","@hono/node-server":"^1.0.0","@sinclair/typebox":"^0.34.0"},"publishConfig":{"tag":"beta","access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"next":"^16.0.0","tsup":"^8.5.0","madge":"^8.0.0","vitest":"^4.0.6","@types/node":"^20.11.0","drizzle-kit":"^0.31.6","@types/micromatch":"^4.0.9","@vitest/coverage-v8":"^4.0.6"},"peerDependencies":{"next":"^15.0.0 || ^16.0.0"},"optionalDependencies":{"ioredis":"^5.4.1"},"peerDependenciesMeta":{"next":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/core_0.2.0-beta.42_1775103526396_0.9035645081122514","host":"s3://npm-registry-packages-npm-production"}},"0.2.0-beta.43":{"name":"@spfn/core","version":"0.2.0-beta.43","keywords":["spfn","nextjs","backend","framework","typescript","type-safe","api","rest-api","crud","database","orm","drizzle-orm","postgres","redis","hono","fullstack","server","scalable","auto-generated","file-based-routing","transaction","repository-pattern"],"author":{"name":"Ray Im","email":"rayim@inflike.com"},"license":"MIT","_id":"@spfn/core@0.2.0-beta.43","maintainers":[{"name":"superfunction","email":"rayim@inflike.com"}],"homepage":"https://github.com/spfn/spfn/tree/main/packages/core#readme","bugs":{"url":"https://github.com/spfn/spfn/issues"},"dist":{"shasum":"6baee02cd80ed7fe3ba8aa58830c1022ff76f4a1","tarball":"https://registry.npmjs.org/@spfn/core/-/core-0.2.0-beta.43.tgz","fileCount":77,"integrity":"sha512-Zj+3dXYOvcKv76xjmcgSYY029ywn4GsNDR2Z3dF2MRLUA0wHAlMI1/cqmVX94fuih6E+S20uoyJ4CpGBZMciLw==","signatures":[{"sig":"MEQCIFkZVMTKYWEKlnQRMJahdlLI5gblrER4af6yIhsMxjRbAiBE1Y0onZXqMGo1GvK4hAy+upKpvaaTznM36QgmhA06hQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spfn%2fcore@0.2.0-beta.43","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1650336},"type":"module","_from":"file:spfn-core-0.2.0-beta.43.tgz","engines":{"node":">=18.18.0"},"exports":{"./db":{"types":"./dist/db/index.d.ts","import":"./dist/db/index.js","require":"./dist/db/index.js"},"./env":{"types":"./dist/env/index.d.ts","import":"./dist/env/index.js","require":"./dist/env/index.js"},"./job":{"types":"./dist/job/index.d.ts","import":"./dist/job/index.js","require":"./dist/job/index.js"},"./cache":{"types":"./dist/cache/index.d.ts","import":"./dist/cache/index.js","require":"./dist/cache/index.js"},"./event":{"types":"./dist/event/index.d.ts","import":"./dist/event/index.js","require":"./dist/event/index.js"},"./route":{"types":"./dist/route/index.d.ts","import":"./dist/route/index.js","require":"./dist/route/index.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","require":"./dist/client/index.js"},"./config":{"types":"./dist/config/index.d.ts","import":"./dist/config/index.js","require":"./dist/config/index.js"},"./errors":{"types":"./dist/errors/index.d.ts","import":"./dist/errors/index.js","require":"./dist/errors/index.js"},"./logger":{"types":"./dist/logger/index.d.ts","import":"./dist/logger/index.js","require":"./dist/logger/index.js"},"./nextjs":{"types":"./dist/nextjs/index.d.ts","import":"./dist/nextjs/index.js","require":"./dist/nextjs/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./codegen":{"types":"./dist/codegen/index.d.ts","import":"./dist/codegen/index.js","require":"./dist/codegen/index.js"},"./event/sse":{"types":"./dist/event/sse/index.d.ts","import":"./dist/event/sse/index.js","require":"./dist/event/sse/index.js"},"./env/loader":{"types":"./dist/env/loader.d.ts","import":"./dist/env/loader.js","require":"./dist/env/loader.js"},"./middleware":{"types":"./dist/middleware/index.d.ts","import":"./dist/middleware/index.js","require":"./dist/middleware/index.js"},"./route/types":{"types":"./dist/route/types.d.ts","import":"./dist/route/types.js","require":"./dist/route/types.js"},"./nextjs/server":{"types":"./dist/nextjs/server.d.ts","import":"./dist/nextjs/server.js","require":"./dist/nextjs/server.js"},"./event/sse/client":{"types":"./dist/event/sse/client.d.ts","import":"./dist/event/sse/client.js","require":"./dist/event/sse/client.js"}},"scripts":{"dev":"tsup","test":"vitest run","build":"pnpm check:circular && tsup","test:db":"vitest run src/db --config vitest.integration.config.ts","test:env":"vitest run src/env","test:cache":"vitest run src/cache --config vitest.integration.config.ts","test:route":"vitest run src/route","test:watch":"vitest","type-check":"tsc --noEmit","test:client":"vitest run src/client","test:errors":"vitest run src/errors","test:logger":"vitest run src/logger","test:server":"vitest run src/server --config vitest.integration.config.ts","test:codegen":"vitest run src/codegen","test:coverage":"vitest run --config vitest.unit.config.ts --coverage","check:circular":"madge --circular --extensions ts src/","docker:test:up":"docker compose -f docker-compose.test.yml up -d","test:middleware":"vitest run src/middleware","docker:test:down":"docker compose -f docker-compose.test.yml down","docker:test:logs":"docker compose -f docker-compose.test.yml logs -f"},"_npmUser":{"name":"superfunction","email":"rayim@inflike.com"},"_resolved":"/tmp/a2052ef2b05c04977efc62995f992345/spfn-core-0.2.0-beta.43.tgz","_integrity":"sha512-Zj+3dXYOvcKv76xjmcgSYY029ywn4GsNDR2Z3dF2MRLUA0wHAlMI1/cqmVX94fuih6E+S20uoyJ4CpGBZMciLw==","repository":{"url":"git+https://github.com/spfn/spfn.git","type":"git","directory":"packages/core"},"_npmVersion":"11.12.1","description":"SPFN Framework Core - File-based routing, transactions, repository pattern","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^4.1.11","hono":"^4.12.4","jiti":"^2.6.1","chalk":"^5.6.2","dotenv":"^17.2.3","undici":"^7.24.0","pg-boss":"^11.1.2","chokidar":"^4.0.3","postgres":"^3.4.0","micromatch":"^4.0.8","typescript":"^5.3.3","drizzle-orm":"^0.45.0","drizzle-typebox":"^0.1.0","@hono/node-server":"^1.0.0","@sinclair/typebox":"^0.34.0"},"publishConfig":{"tag":"beta","access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"next":"^16.0.0","tsup":"^8.5.0","madge":"^8.0.0","vitest":"^4.0.6","@types/node":"^20.11.0","drizzle-kit":"^0.31.6","@types/micromatch":"^4.0.9","@vitest/coverage-v8":"^4.0.6"},"peerDependencies":{"next":"^15.0.0 || ^16.0.0"},"optionalDependencies":{"ioredis":"^5.4.1"},"peerDependenciesMeta":{"next":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/core_0.2.0-beta.43_1775454656216_0.47302192007330146","host":"s3://npm-registry-packages-npm-production"}},"0.2.0-beta.44":{"name":"@spfn/core","version":"0.2.0-beta.44","keywords":["spfn","nextjs","backend","framework","typescript","type-safe","api","rest-api","crud","database","orm","drizzle-orm","postgres","redis","hono","fullstack","server","scalable","auto-generated","file-based-routing","transaction","repository-pattern"],"author":{"name":"Ray Im","email":"rayim@inflike.com"},"license":"MIT","_id":"@spfn/core@0.2.0-beta.44","maintainers":[{"name":"superfunction","email":"rayim@inflike.com"}],"homepage":"https://github.com/spfn/spfn/tree/main/packages/core#readme","bugs":{"url":"https://github.com/spfn/spfn/issues"},"dist":{"shasum":"5dd69fbc61e7de410bb4d4f625c77b16418329f1","tarball":"https://registry.npmjs.org/@spfn/core/-/core-0.2.0-beta.44.tgz","fileCount":77,"integrity":"sha512-EF/xk3AqGLTEB2LVUQgPig3p3Sg2/w/5f+rM1fVo7P94GdVXK35M8NkwYPWIroT976MsV5i6w7y/39EuNXP0pQ==","signatures":[{"sig":"MEQCIFu4aVX5nPm6Y9pQ/TTrK5wJ5ebKIspgwRxe3yzGVFsLAiBqVu4hLSITNChaa80g99x6qTKXUABAPUrLKBDUP8QPdg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spfn%2fcore@0.2.0-beta.44","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1654712},"type":"module","_from":"file:spfn-core-0.2.0-beta.44.tgz","engines":{"node":">=18.18.0"},"exports":{"./db":{"types":"./dist/db/index.d.ts","import":"./dist/db/index.js","require":"./dist/db/index.js"},"./env":{"types":"./dist/env/index.d.ts","import":"./dist/env/index.js","require":"./dist/env/index.js"},"./job":{"types":"./dist/job/index.d.ts","import":"./dist/job/index.js","require":"./dist/job/index.js"},"./cache":{"types":"./dist/cache/index.d.ts","import":"./dist/cache/index.js","require":"./dist/cache/index.js"},"./event":{"types":"./dist/event/index.d.ts","import":"./dist/event/index.js","require":"./dist/event/index.js"},"./route":{"types":"./dist/route/index.d.ts","import":"./dist/route/index.js","require":"./dist/route/index.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","require":"./dist/client/index.js"},"./config":{"types":"./dist/config/index.d.ts","import":"./dist/config/index.js","require":"./dist/config/index.js"},"./errors":{"types":"./dist/errors/index.d.ts","import":"./dist/errors/index.js","require":"./dist/errors/index.js"},"./logger":{"types":"./dist/logger/index.d.ts","import":"./dist/logger/index.js","require":"./dist/logger/index.js"},"./nextjs":{"types":"./dist/nextjs/index.d.ts","import":"./dist/nextjs/index.js","require":"./dist/nextjs/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./codegen":{"types":"./dist/codegen/index.d.ts","import":"./dist/codegen/index.js","require":"./dist/codegen/index.js"},"./event/sse":{"types":"./dist/event/sse/index.d.ts","import":"./dist/event/sse/index.js","require":"./dist/event/sse/index.js"},"./env/loader":{"types":"./dist/env/loader.d.ts","import":"./dist/env/loader.js","require":"./dist/env/loader.js"},"./middleware":{"types":"./dist/middleware/index.d.ts","import":"./dist/middleware/index.js","require":"./dist/middleware/index.js"},"./route/types":{"types":"./dist/route/types.d.ts","import":"./dist/route/types.js","require":"./dist/route/types.js"},"./nextjs/server":{"types":"./dist/nextjs/server.d.ts","import":"./dist/nextjs/server.js","require":"./dist/nextjs/server.js"},"./event/sse/client":{"types":"./dist/event/sse/client.d.ts","import":"./dist/event/sse/client.js","require":"./dist/event/sse/client.js"}},"scripts":{"dev":"tsup","test":"vitest run","build":"pnpm check:circular && tsup","test:db":"vitest run src/db --config vitest.integration.config.ts","test:env":"vitest run src/env","test:cache":"vitest run src/cache --config vitest.integration.config.ts","test:route":"vitest run src/route","test:watch":"vitest","type-check":"tsc --noEmit","test:client":"vitest run src/client","test:errors":"vitest run src/errors","test:logger":"vitest run src/logger","test:server":"vitest run src/server --config vitest.integration.config.ts","test:codegen":"vitest run src/codegen","test:coverage":"vitest run --config vitest.unit.config.ts --coverage","check:circular":"madge --circular --extensions ts src/","docker:test:up":"docker compose -f docker-compose.test.yml up -d","test:middleware":"vitest run src/middleware","docker:test:down":"docker compose -f docker-compose.test.yml down","docker:test:logs":"docker compose -f docker-compose.test.yml logs -f"},"_npmUser":{"name":"superfunction","email":"rayim@inflike.com"},"_resolved":"/tmp/21c42bac6847852d081778ca05f1eec2/spfn-core-0.2.0-beta.44.tgz","_integrity":"sha512-EF/xk3AqGLTEB2LVUQgPig3p3Sg2/w/5f+rM1fVo7P94GdVXK35M8NkwYPWIroT976MsV5i6w7y/39EuNXP0pQ==","repository":{"url":"git+https://github.com/spfn/spfn.git","type":"git","directory":"packages/core"},"_npmVersion":"11.12.1","description":"SPFN Framework Core - File-based routing, transactions, repository pattern","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^4.1.11","hono":"^4.12.4","jiti":"^2.6.1","chalk":"^5.6.2","dotenv":"^17.2.3","undici":"^7.24.0","pg-boss":"^11.1.2","chokidar":"^4.0.3","postgres":"^3.4.0","micromatch":"^4.0.8","typescript":"^5.3.3","drizzle-orm":"^0.45.0","drizzle-typebox":"^0.1.0","@hono/node-server":"^1.0.0","@sinclair/typebox":"^0.34.0"},"publishConfig":{"tag":"beta","access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"next":"^16.0.0","tsup":"^8.5.0","madge":"^8.0.0","vitest":"^4.0.6","@types/node":"^20.11.0","drizzle-kit":"^0.31.6","@types/micromatch":"^4.0.9","@vitest/coverage-v8":"^4.0.6"},"peerDependencies":{"next":"^15.0.0 || ^16.0.0"},"optionalDependencies":{"ioredis":"^5.4.1"},"peerDependenciesMeta":{"next":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/core_0.2.0-beta.44_1775532806474_0.6540545748850424","host":"s3://npm-registry-packages-npm-production"}},"0.2.0-beta.45":{"name":"@spfn/core","version":"0.2.0-beta.45","keywords":["spfn","nextjs","backend","framework","typescript","type-safe","api","rest-api","crud","database","orm","drizzle-orm","postgres","redis","hono","fullstack","server","scalable","auto-generated","file-based-routing","transaction","repository-pattern"],"author":{"name":"Ray Im","email":"rayim@inflike.com"},"license":"MIT","_id":"@spfn/core@0.2.0-beta.45","maintainers":[{"name":"superfunction","email":"rayim@inflike.com"}],"homepage":"https://github.com/spfn/spfn/tree/main/packages/core#readme","bugs":{"url":"https://github.com/spfn/spfn/issues"},"dist":{"shasum":"96dcbb0ed9d8d046a121118d1a8295cd63300ecd","tarball":"https://registry.npmjs.org/@spfn/core/-/core-0.2.0-beta.45.tgz","fileCount":77,"integrity":"sha512-sI/88Na7VsJguCEtsnByJr78AA5zyXnLlrIoq9kgZ/Tdq0hZ+gmBD9vmaBOBQWi7KCrbYigP5JV494hD4t1/tg==","signatures":[{"sig":"MEYCIQC0VH6/3sMIsGjsiCb7TkicMLb7oumKWZ8uvNBho0tSlAIhALBJRFDRl+zgeu+dddw4dhksCW2okeHURQC7YTxX2wMn","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spfn%2fcore@0.2.0-beta.45","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1690636},"type":"module","_from":"file:spfn-core-0.2.0-beta.45.tgz","engines":{"node":">=18.18.0"},"exports":{"./db":{"types":"./dist/db/index.d.ts","import":"./dist/db/index.js","require":"./dist/db/index.js"},"./env":{"types":"./dist/env/index.d.ts","import":"./dist/env/index.js","require":"./dist/env/index.js"},"./job":{"types":"./dist/job/index.d.ts","import":"./dist/job/index.js","require":"./dist/job/index.js"},"./cache":{"types":"./dist/cache/index.d.ts","import":"./dist/cache/index.js","require":"./dist/cache/index.js"},"./event":{"types":"./dist/event/index.d.ts","import":"./dist/event/index.js","require":"./dist/event/index.js"},"./route":{"types":"./dist/route/index.d.ts","import":"./dist/route/index.js","require":"./dist/route/index.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","require":"./dist/client/index.js"},"./config":{"types":"./dist/config/index.d.ts","import":"./dist/config/index.js","require":"./dist/config/index.js"},"./errors":{"types":"./dist/errors/index.d.ts","import":"./dist/errors/index.js","require":"./dist/errors/index.js"},"./logger":{"types":"./dist/logger/index.d.ts","import":"./dist/logger/index.js","require":"./dist/logger/index.js"},"./nextjs":{"types":"./dist/nextjs/index.d.ts","import":"./dist/nextjs/index.js","require":"./dist/nextjs/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./codegen":{"types":"./dist/codegen/index.d.ts","import":"./dist/codegen/index.js","require":"./dist/codegen/index.js"},"./event/sse":{"types":"./dist/event/sse/index.d.ts","import":"./dist/event/sse/index.js","require":"./dist/event/sse/index.js"},"./env/loader":{"types":"./dist/env/loader.d.ts","import":"./dist/env/loader.js","require":"./dist/env/loader.js"},"./middleware":{"types":"./dist/middleware/index.d.ts","import":"./dist/middleware/index.js","require":"./dist/middleware/index.js"},"./route/types":{"types":"./dist/route/types.d.ts","import":"./dist/route/types.js","require":"./dist/route/types.js"},"./nextjs/server":{"types":"./dist/nextjs/server.d.ts","import":"./dist/nextjs/server.js","require":"./dist/nextjs/server.js"},"./event/sse/client":{"types":"./dist/event/sse/client.d.ts","import":"./dist/event/sse/client.js","require":"./dist/event/sse/client.js"}},"scripts":{"dev":"tsup","test":"vitest run","build":"pnpm check:circular && tsup","test:db":"vitest run src/db --config vitest.integration.config.ts","test:env":"vitest run src/env","test:cache":"vitest run src/cache --config vitest.integration.config.ts","test:route":"vitest run src/route","test:watch":"vitest","type-check":"tsc --noEmit","test:client":"vitest run src/client","test:errors":"vitest run src/errors","test:logger":"vitest run src/logger","test:server":"vitest run src/server --config vitest.integration.config.ts","test:codegen":"vitest run src/codegen","test:coverage":"vitest run --config vitest.unit.config.ts --coverage","check:circular":"madge --circular --extensions ts src/","docker:test:up":"docker compose -f docker-compose.test.yml up -d","test:middleware":"vitest run src/middleware","docker:test:down":"docker compose -f docker-compose.test.yml down","docker:test:logs":"docker compose -f docker-compose.test.yml logs -f"},"_npmUser":{"name":"superfunction","email":"rayim@inflike.com"},"_resolved":"/tmp/b84fb217fbd47e2111c7e29703100bcd/spfn-core-0.2.0-beta.45.tgz","_integrity":"sha512-sI/88Na7VsJguCEtsnByJr78AA5zyXnLlrIoq9kgZ/Tdq0hZ+gmBD9vmaBOBQWi7KCrbYigP5JV494hD4t1/tg==","repository":{"url":"git+https://github.com/spfn/spfn.git","type":"git","directory":"packages/core"},"_npmVersion":"11.12.1","description":"SPFN Framework Core - File-based routing, transactions, repository pattern","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^4.1.11","hono":"^4.12.4","jiti":"^2.6.1","chalk":"^5.6.2","dotenv":"^17.2.3","undici":"^7.24.0","pg-boss":"^11.1.2","chokidar":"^4.0.3","postgres":"^3.4.0","micromatch":"^4.0.8","typescript":"^5.3.3","drizzle-orm":"^0.45.0","drizzle-typebox":"^0.1.0","@hono/node-server":"^1.0.0","@sinclair/typebox":"^0.34.0"},"publishConfig":{"tag":"beta","access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"next":"^16.0.0","tsup":"^8.5.0","madge":"^8.0.0","vitest":"^4.0.6","@types/node":"^20.11.0","drizzle-kit":"^0.31.6","@types/micromatch":"^4.0.9","@vitest/coverage-v8":"^4.0.6"},"peerDependencies":{"next":"^15.0.0 || ^16.0.0"},"optionalDependencies":{"ioredis":"^5.4.1"},"peerDependenciesMeta":{"next":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/core_0.2.0-beta.45_1776150711784_0.11784031042721455","host":"s3://npm-registry-packages-npm-production"}},"0.2.0-beta.47":{"name":"@spfn/core","version":"0.2.0-beta.47","keywords":["spfn","nextjs","backend","framework","typescript","type-safe","api","rest-api","crud","database","orm","drizzle-orm","postgres","redis","hono","fullstack","server","scalable","auto-generated","file-based-routing","transaction","repository-pattern"],"author":{"name":"Ray Im","email":"rayim@inflike.com"},"license":"MIT","_id":"@spfn/core@0.2.0-beta.47","maintainers":[{"name":"superfunction","email":"rayim@inflike.com"}],"homepage":"https://github.com/spfn/spfn/tree/main/packages/core#readme","bugs":{"url":"https://github.com/spfn/spfn/issues"},"dist":{"shasum":"ad6813c2c782b11c45bfa4cc9eddadb9a1a4272b","tarball":"https://registry.npmjs.org/@spfn/core/-/core-0.2.0-beta.47.tgz","fileCount":84,"integrity":"sha512-VcTGhKgLq+lOXvMWe2rDIfJB47Vz79enoM8Z6mis2IEhQPJ+Cb3r2oBMYE8JuRv0gpgxQpHEtarJYrzAP5EUnA==","signatures":[{"sig":"MEUCIEV3OC9/T9ysNsj7oGq5p5KO0dFuaE9+Ua5dyoK9T31cAiEArLBkOTxx8bMIwXxp+7q/+W7LI5ICOs0G7nxVCeNPp8M=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spfn%2fcore@0.2.0-beta.47","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1809359},"type":"module","_from":"file:spfn-core-0.2.0-beta.47.tgz","engines":{"node":">=18.18.0"},"exports":{"./db":{"types":"./dist/db/index.d.ts","import":"./dist/db/index.js","require":"./dist/db/index.js"},"./env":{"types":"./dist/env/index.d.ts","import":"./dist/env/index.js","require":"./dist/env/index.js"},"./job":{"types":"./dist/job/index.d.ts","import":"./dist/job/index.js","require":"./dist/job/index.js"},"./cache":{"types":"./dist/cache/index.d.ts","import":"./dist/cache/index.js","require":"./dist/cache/index.js"},"./event":{"types":"./dist/event/index.d.ts","import":"./dist/event/index.js","require":"./dist/event/index.js"},"./route":{"types":"./dist/route/index.d.ts","import":"./dist/route/index.js","require":"./dist/route/index.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","require":"./dist/client/index.js"},"./config":{"types":"./dist/config/index.d.ts","import":"./dist/config/index.js","require":"./dist/config/index.js"},"./errors":{"types":"./dist/errors/index.d.ts","import":"./dist/errors/index.js","require":"./dist/errors/index.js"},"./logger":{"types":"./dist/logger/index.d.ts","import":"./dist/logger/index.js","require":"./dist/logger/index.js"},"./nextjs":{"types":"./dist/nextjs/index.d.ts","import":"./dist/nextjs/index.js","require":"./dist/nextjs/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./codegen":{"types":"./dist/codegen/index.d.ts","import":"./dist/codegen/index.js","require":"./dist/codegen/index.js"},"./event/ws":{"types":"./dist/event/ws/index.d.ts","import":"./dist/event/ws/index.js","require":"./dist/event/ws/index.js"},"./event/sse":{"types":"./dist/event/sse/index.d.ts","import":"./dist/event/sse/index.js","require":"./dist/event/sse/index.js"},"./env/loader":{"types":"./dist/env/loader.d.ts","import":"./dist/env/loader.js","require":"./dist/env/loader.js"},"./middleware":{"types":"./dist/middleware/index.d.ts","import":"./dist/middleware/index.js","require":"./dist/middleware/index.js"},"./route/types":{"types":"./dist/route/types.d.ts","import":"./dist/route/types.js","require":"./dist/route/types.js"},"./nextjs/server":{"types":"./dist/nextjs/server.d.ts","import":"./dist/nextjs/server.js","require":"./dist/nextjs/server.js"},"./event/ws/client":{"types":"./dist/event/ws/client.d.ts","import":"./dist/event/ws/client.js","require":"./dist/event/ws/client.js"},"./event/sse/client":{"types":"./dist/event/sse/client.d.ts","import":"./dist/event/sse/client.js","require":"./dist/event/sse/client.js"}},"scripts":{"dev":"tsup","test":"vitest run","build":"pnpm check:circular && tsup","test:db":"vitest run src/db --config vitest.integration.config.ts","test:env":"vitest run src/env","test:cache":"vitest run src/cache --config vitest.integration.config.ts","test:route":"vitest run src/route","test:watch":"vitest","type-check":"tsc --noEmit","test:client":"vitest run src/client","test:errors":"vitest run src/errors","test:logger":"vitest run src/logger","test:server":"vitest run src/server --config vitest.integration.config.ts","test:codegen":"vitest run src/codegen","test:coverage":"vitest run --config vitest.unit.config.ts --coverage","check:circular":"madge --circular --extensions ts src/","docker:test:up":"docker compose -f docker-compose.test.yml up -d","test:middleware":"vitest run src/middleware","docker:test:down":"docker compose -f docker-compose.test.yml down","docker:test:logs":"docker compose -f docker-compose.test.yml logs -f"},"_npmUser":{"name":"superfunction","email":"rayim@inflike.com"},"_resolved":"/tmp/b9b5f902fb4dca5cab4333d25fafc1fe/spfn-core-0.2.0-beta.47.tgz","_integrity":"sha512-VcTGhKgLq+lOXvMWe2rDIfJB47Vz79enoM8Z6mis2IEhQPJ+Cb3r2oBMYE8JuRv0gpgxQpHEtarJYrzAP5EUnA==","repository":{"url":"git+https://github.com/spfn/spfn.git","type":"git","directory":"packages/core"},"_npmVersion":"11.12.1","description":"SPFN Framework Core - File-based routing, transactions, repository pattern","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^4.1.11","hono":"^4.12.4","jiti":"^2.6.1","chalk":"^5.6.2","dotenv":"^17.2.3","undici":"^7.24.0","pg-boss":"^11.1.2","chokidar":"^4.0.3","postgres":"^3.4.0","micromatch":"^4.0.8","typescript":"^5.3.3","drizzle-orm":"^0.45.0","drizzle-typebox":"^0.1.0","@hono/node-server":"^1.0.0","@sinclair/typebox":"^0.34.0"},"publishConfig":{"tag":"beta","access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"next":"^16.0.0","tsup":"^8.5.0","madge":"^8.0.0","vitest":"^4.0.6","@types/ws":"^8.18.1","@types/node":"^20.11.0","drizzle-kit":"^0.31.6","@types/micromatch":"^4.0.9","@vitest/coverage-v8":"^4.0.6"},"peerDependencies":{"next":"^15.0.0 || ^16.0.0"},"optionalDependencies":{"ws":"^8.0.0","ioredis":"^5.4.1"},"peerDependenciesMeta":{"next":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/core_0.2.0-beta.47_1776872392801_0.8758561522914174","host":"s3://npm-registry-packages-npm-production"}},"0.2.0-beta.48":{"name":"@spfn/core","version":"0.2.0-beta.48","keywords":["spfn","nextjs","backend","framework","typescript","type-safe","api","rest-api","crud","database","orm","drizzle-orm","postgres","redis","hono","fullstack","server","scalable","auto-generated","file-based-routing","transaction","repository-pattern"],"author":{"name":"Ray Im","email":"rayim@inflike.com"},"license":"MIT","_id":"@spfn/core@0.2.0-beta.48","maintainers":[{"name":"superfunction","email":"rayim@inflike.com"}],"homepage":"https://github.com/spfn/spfn/tree/main/packages/core#readme","bugs":{"url":"https://github.com/spfn/spfn/issues"},"dist":{"shasum":"3fd0e19d0595756a09ab87187a551eae2ae68d36","tarball":"https://registry.npmjs.org/@spfn/core/-/core-0.2.0-beta.48.tgz","fileCount":84,"integrity":"sha512-eX4eqYdli1c/nWM7zAG7WnPPVMvX22Z2/2CHhUm894S5g1eKPJg8He2W/xaCDXLt1rVE8IfD7FWXx0NbFwCkEA==","signatures":[{"sig":"MEUCIQDxGivR+uxIJeq4bqo6oYXN0cF9POtML4AG188mu0Z2fAIgRCFNIO8XdDyzqgKN03LJzzerPO/CBZ7sgvIkudB9N38=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spfn%2fcore@0.2.0-beta.48","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1809334},"type":"module","_from":"file:spfn-core-0.2.0-beta.48.tgz","engines":{"node":">=18.18.0"},"exports":{"./db":{"types":"./dist/db/index.d.ts","import":"./dist/db/index.js","require":"./dist/db/index.js"},"./env":{"types":"./dist/env/index.d.ts","import":"./dist/env/index.js","require":"./dist/env/index.js"},"./job":{"types":"./dist/job/index.d.ts","import":"./dist/job/index.js","require":"./dist/job/index.js"},"./cache":{"types":"./dist/cache/index.d.ts","import":"./dist/cache/index.js","require":"./dist/cache/index.js"},"./event":{"types":"./dist/event/index.d.ts","import":"./dist/event/index.js","require":"./dist/event/index.js"},"./route":{"types":"./dist/route/index.d.ts","import":"./dist/route/index.js","require":"./dist/route/index.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","require":"./dist/client/index.js"},"./config":{"types":"./dist/config/index.d.ts","import":"./dist/config/index.js","require":"./dist/config/index.js"},"./errors":{"types":"./dist/errors/index.d.ts","import":"./dist/errors/index.js","require":"./dist/errors/index.js"},"./logger":{"types":"./dist/logger/index.d.ts","import":"./dist/logger/index.js","require":"./dist/logger/index.js"},"./nextjs":{"types":"./dist/nextjs/index.d.ts","import":"./dist/nextjs/index.js","require":"./dist/nextjs/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./codegen":{"types":"./dist/codegen/index.d.ts","import":"./dist/codegen/index.js","require":"./dist/codegen/index.js"},"./event/ws":{"types":"./dist/event/ws/index.d.ts","import":"./dist/event/ws/index.js","require":"./dist/event/ws/index.js"},"./event/sse":{"types":"./dist/event/sse/index.d.ts","import":"./dist/event/sse/index.js","require":"./dist/event/sse/index.js"},"./env/loader":{"types":"./dist/env/loader.d.ts","import":"./dist/env/loader.js","require":"./dist/env/loader.js"},"./middleware":{"types":"./dist/middleware/index.d.ts","import":"./dist/middleware/index.js","require":"./dist/middleware/index.js"},"./route/types":{"types":"./dist/route/types.d.ts","import":"./dist/route/types.js","require":"./dist/route/types.js"},"./nextjs/server":{"types":"./dist/nextjs/server.d.ts","import":"./dist/nextjs/server.js","require":"./dist/nextjs/server.js"},"./event/ws/client":{"types":"./dist/event/ws/client.d.ts","import":"./dist/event/ws/client.js","require":"./dist/event/ws/client.js"},"./event/sse/client":{"types":"./dist/event/sse/client.d.ts","import":"./dist/event/sse/client.js","require":"./dist/event/sse/client.js"}},"scripts":{"dev":"tsup","test":"vitest run","build":"pnpm check:circular && tsup","test:db":"vitest run src/db --config vitest.integration.config.ts","test:env":"vitest run src/env","test:cache":"vitest run src/cache --config vitest.integration.config.ts","test:route":"vitest run src/route","test:watch":"vitest","type-check":"tsc --noEmit","test:client":"vitest run src/client","test:errors":"vitest run src/errors","test:logger":"vitest run src/logger","test:server":"vitest run src/server --config vitest.integration.config.ts","test:codegen":"vitest run src/codegen","test:coverage":"vitest run --config vitest.unit.config.ts --coverage","check:circular":"madge --circular --extensions ts src/","docker:test:up":"docker compose -f docker-compose.test.yml up -d","test:middleware":"vitest run src/middleware","docker:test:down":"docker compose -f docker-compose.test.yml down","docker:test:logs":"docker compose -f docker-compose.test.yml logs -f"},"_npmUser":{"name":"superfunction","email":"rayim@inflike.com"},"_resolved":"/tmp/688197e02c98ad57303ac63c18bb09a7/spfn-core-0.2.0-beta.48.tgz","_integrity":"sha512-eX4eqYdli1c/nWM7zAG7WnPPVMvX22Z2/2CHhUm894S5g1eKPJg8He2W/xaCDXLt1rVE8IfD7FWXx0NbFwCkEA==","repository":{"url":"git+https://github.com/spfn/spfn.git","type":"git","directory":"packages/core"},"_npmVersion":"11.14.1","description":"SPFN Framework Core - File-based routing, transactions, repository pattern","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^4.1.11","hono":"^4.12.4","jiti":"^2.6.1","chalk":"^5.6.2","dotenv":"^17.2.3","undici":"^7.24.0","pg-boss":"^11.1.2","chokidar":"^4.0.3","postgres":"^3.4.0","micromatch":"^4.0.8","typescript":"^5.3.3","drizzle-orm":"^0.45.0","drizzle-typebox":"^0.1.0","@hono/node-server":"^1.0.0","@sinclair/typebox":"^0.34.0"},"publishConfig":{"tag":"beta","access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"next":"^16.0.0","tsup":"^8.5.0","madge":"^8.0.0","vitest":"^4.0.6","@types/ws":"^8.18.1","@types/node":"^20.11.0","drizzle-kit":"^0.31.6","@types/micromatch":"^4.0.9","@vitest/coverage-v8":"^4.0.6"},"peerDependencies":{"next":"^15.0.0 || ^16.0.0"},"optionalDependencies":{"ws":"^8.0.0","ioredis":"^5.4.1"},"peerDependenciesMeta":{"next":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/core_0.2.0-beta.48_1778335954099_0.02633918838229543","host":"s3://npm-registry-packages-npm-production"}},"0.2.0-beta.49":{"name":"@spfn/core","version":"0.2.0-beta.49","keywords":["spfn","nextjs","backend","framework","typescript","type-safe","api","rest-api","crud","database","orm","drizzle-orm","postgres","redis","hono","fullstack","server","scalable","auto-generated","file-based-routing","transaction","repository-pattern"],"author":{"name":"Ray Im","email":"rayim@inflike.com"},"license":"MIT","_id":"@spfn/core@0.2.0-beta.49","maintainers":[{"name":"superfunction","email":"rayim@inflike.com"}],"homepage":"https://github.com/spfn/spfn/tree/main/packages/core#readme","bugs":{"url":"https://github.com/spfn/spfn/issues"},"dist":{"shasum":"d4bf51e22adf11c66489b0bf4b08cdb0d3eb557d","tarball":"https://registry.npmjs.org/@spfn/core/-/core-0.2.0-beta.49.tgz","fileCount":84,"integrity":"sha512-0qsbjsQvhMF7P9aoB15jdKNt0MiQPY/vKlLff0R0cESQ73F5QIXGommLITOhVHHM9FpLbGkC+XTuZSUaftOZyA==","signatures":[{"sig":"MEUCIQCg7owdZEjl/4lvG7y/f3Jp8G226LPu3zOkRs5JDWg1CwIgCEU2tiEt5FsZ2ExSNqgI5OHW8CgbW950efOYow1ha5c=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spfn%2fcore@0.2.0-beta.49","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1810761},"type":"module","_from":"file:spfn-core-0.2.0-beta.49.tgz","engines":{"node":">=18.18.0"},"exports":{"./db":{"types":"./dist/db/index.d.ts","import":"./dist/db/index.js","require":"./dist/db/index.js"},"./env":{"types":"./dist/env/index.d.ts","import":"./dist/env/index.js","require":"./dist/env/index.js"},"./job":{"types":"./dist/job/index.d.ts","import":"./dist/job/index.js","require":"./dist/job/index.js"},"./cache":{"types":"./dist/cache/index.d.ts","import":"./dist/cache/index.js","require":"./dist/cache/index.js"},"./event":{"types":"./dist/event/index.d.ts","import":"./dist/event/index.js","require":"./dist/event/index.js"},"./route":{"types":"./dist/route/index.d.ts","import":"./dist/route/index.js","require":"./dist/route/index.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","require":"./dist/client/index.js"},"./config":{"types":"./dist/config/index.d.ts","import":"./dist/config/index.js","require":"./dist/config/index.js"},"./errors":{"types":"./dist/errors/index.d.ts","import":"./dist/errors/index.js","require":"./dist/errors/index.js"},"./logger":{"types":"./dist/logger/index.d.ts","import":"./dist/logger/index.js","require":"./dist/logger/index.js"},"./nextjs":{"types":"./dist/nextjs/index.d.ts","import":"./dist/nextjs/index.js","require":"./dist/nextjs/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./codegen":{"types":"./dist/codegen/index.d.ts","import":"./dist/codegen/index.js","require":"./dist/codegen/index.js"},"./event/ws":{"types":"./dist/event/ws/index.d.ts","import":"./dist/event/ws/index.js","require":"./dist/event/ws/index.js"},"./event/sse":{"types":"./dist/event/sse/index.d.ts","import":"./dist/event/sse/index.js","require":"./dist/event/sse/index.js"},"./env/loader":{"types":"./dist/env/loader.d.ts","import":"./dist/env/loader.js","require":"./dist/env/loader.js"},"./middleware":{"types":"./dist/middleware/index.d.ts","import":"./dist/middleware/index.js","require":"./dist/middleware/index.js"},"./route/types":{"types":"./dist/route/types.d.ts","import":"./dist/route/types.js","require":"./dist/route/types.js"},"./nextjs/server":{"types":"./dist/nextjs/server.d.ts","import":"./dist/nextjs/server.js","require":"./dist/nextjs/server.js"},"./event/ws/client":{"types":"./dist/event/ws/client.d.ts","import":"./dist/event/ws/client.js","require":"./dist/event/ws/client.js"},"./event/sse/client":{"types":"./dist/event/sse/client.d.ts","import":"./dist/event/sse/client.js","require":"./dist/event/sse/client.js"}},"scripts":{"dev":"tsup","test":"vitest run","build":"pnpm check:circular && tsup","test:db":"vitest run src/db --config vitest.integration.config.ts","test:env":"vitest run src/env","test:cache":"vitest run src/cache --config vitest.integration.config.ts","test:route":"vitest run src/route","test:watch":"vitest","type-check":"tsc --noEmit","test:client":"vitest run src/client","test:errors":"vitest run src/errors","test:logger":"vitest run src/logger","test:server":"vitest run src/server --config vitest.integration.config.ts","test:codegen":"vitest run src/codegen","test:coverage":"vitest run --config vitest.unit.config.ts --coverage","check:circular":"madge --circular --extensions ts src/","docker:test:up":"docker compose -f docker-compose.test.yml up -d","test:middleware":"vitest run src/middleware","docker:test:down":"docker compose -f docker-compose.test.yml down","docker:test:logs":"docker compose -f docker-compose.test.yml logs -f"},"_npmUser":{"name":"superfunction","email":"rayim@inflike.com"},"_resolved":"/tmp/3731f6c281784f8bbec575d5ffe7a7a4/spfn-core-0.2.0-beta.49.tgz","_integrity":"sha512-0qsbjsQvhMF7P9aoB15jdKNt0MiQPY/vKlLff0R0cESQ73F5QIXGommLITOhVHHM9FpLbGkC+XTuZSUaftOZyA==","repository":{"url":"git+https://github.com/spfn/spfn.git","type":"git","directory":"packages/core"},"_npmVersion":"11.16.0","description":"SPFN Framework Core - File-based routing, transactions, repository pattern","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^4.1.11","hono":"^4.12.4","jiti":"^2.6.1","chalk":"^5.6.2","dotenv":"^17.2.3","undici":"^7.24.0","pg-boss":"^11.1.2","chokidar":"^4.0.3","postgres":"^3.4.0","micromatch":"^4.0.8","typescript":"^5.3.3","drizzle-orm":"^0.45.0","drizzle-typebox":"^0.1.0","@hono/node-server":"^1.0.0","@sinclair/typebox":"^0.34.0"},"publishConfig":{"tag":"beta","access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"next":"^16.0.0","tsup":"^8.5.0","madge":"^8.0.0","vitest":"^4.0.6","@types/ws":"^8.18.1","@types/node":"^20.11.0","drizzle-kit":"^0.31.6","@types/micromatch":"^4.0.9","@vitest/coverage-v8":"^4.0.6"},"peerDependencies":{"next":"^15.0.0 || ^16.0.0"},"optionalDependencies":{"ws":"^8.0.0","ioredis":"^5.4.1"},"peerDependenciesMeta":{"next":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/core_0.2.0-beta.49_1781001318684_0.5602661392447374","host":"s3://npm-registry-packages-npm-production"}},"0.2.0-beta.50":{"name":"@spfn/core","version":"0.2.0-beta.50","keywords":["spfn","nextjs","backend","framework","typescript","type-safe","api","rest-api","crud","database","orm","drizzle-orm","postgres","redis","hono","fullstack","server","scalable","auto-generated","file-based-routing","transaction","repository-pattern"],"author":{"name":"Ray Im","email":"rayim@fxy.global"},"license":"MIT","_id":"@spfn/core@0.2.0-beta.50","maintainers":[{"name":"superfunction","email":"rayim@inflike.com"}],"homepage":"https://github.com/spfn/spfn/tree/main/packages/core#readme","bugs":{"url":"https://github.com/spfn/spfn/issues"},"dist":{"shasum":"39808c7e906b3531614e961dd138ae1aff6b14a7","tarball":"https://registry.npmjs.org/@spfn/core/-/core-0.2.0-beta.50.tgz","fileCount":70,"integrity":"sha512-CM6ER0QjDQHNk6aJiFaJCUtjoMr7ZbbtWlpXUawbSdd48aPU182OAxnVmJtcUIQqtM5xK6e8PraysGhRE8yi7w==","signatures":[{"sig":"MEUCIHSM16rHGqhxCMauaUZIE82Bag7zb9LU1NKk+zkfmCsuAiEAzkb/IFRsv7i8TQBPcYSz2/DXY3UEhaw3TXjkCRkJwmI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spfn%2fcore@0.2.0-beta.50","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1708349},"type":"module","_from":"file:spfn-core-0.2.0-beta.50.tgz","engines":{"node":">=18.18.0"},"exports":{"./db":{"types":"./dist/db/index.d.ts","import":"./dist/db/index.js","require":"./dist/db/index.js"},"./env":{"types":"./dist/env/index.d.ts","import":"./dist/env/index.js","require":"./dist/env/index.js"},"./job":{"types":"./dist/job/index.d.ts","import":"./dist/job/index.js","require":"./dist/job/index.js"},"./cache":{"types":"./dist/cache/index.d.ts","import":"./dist/cache/index.js","require":"./dist/cache/index.js"},"./event":{"types":"./dist/event/index.d.ts","import":"./dist/event/index.js","require":"./dist/event/index.js"},"./route":{"types":"./dist/route/index.d.ts","import":"./dist/route/index.js","require":"./dist/route/index.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","require":"./dist/client/index.js"},"./config":{"types":"./dist/config/index.d.ts","import":"./dist/config/index.js","require":"./dist/config/index.js"},"./errors":{"types":"./dist/errors/index.d.ts","import":"./dist/errors/index.js","require":"./dist/errors/index.js"},"./logger":{"types":"./dist/logger/index.d.ts","import":"./dist/logger/index.js","require":"./dist/logger/index.js"},"./nextjs":{"types":"./dist/nextjs/index.d.ts","import":"./dist/nextjs/index.js","require":"./dist/nextjs/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./codegen":{"types":"./dist/codegen/index.d.ts","import":"./dist/codegen/index.js","require":"./dist/codegen/index.js"},"./event/ws":{"types":"./dist/event/ws/index.d.ts","import":"./dist/event/ws/index.js","require":"./dist/event/ws/index.js"},"./event/sse":{"types":"./dist/event/sse/index.d.ts","import":"./dist/event/sse/index.js","require":"./dist/event/sse/index.js"},"./env/loader":{"types":"./dist/env/loader.d.ts","import":"./dist/env/loader.js","require":"./dist/env/loader.js"},"./middleware":{"types":"./dist/middleware/index.d.ts","import":"./dist/middleware/index.js","require":"./dist/middleware/index.js"},"./route/types":{"types":"./dist/route/types.d.ts","import":"./dist/route/types.js","require":"./dist/route/types.js"},"./nextjs/server":{"types":"./dist/nextjs/server.d.ts","import":"./dist/nextjs/server.js","require":"./dist/nextjs/server.js"},"./event/ws/client":{"types":"./dist/event/ws/client.d.ts","import":"./dist/event/ws/client.js","require":"./dist/event/ws/client.js"},"./event/sse/client":{"types":"./dist/event/sse/client.d.ts","import":"./dist/event/sse/client.js","require":"./dist/event/sse/client.js"}},"scripts":{"dev":"tsup","test":"vitest run","build":"pnpm check:circular && tsup","test:db":"vitest run src/db --config vitest.integration.config.ts","test:env":"vitest run src/env","test:cache":"vitest run src/cache --config vitest.integration.config.ts","test:route":"vitest run src/route","test:watch":"vitest","type-check":"tsc --noEmit","test:client":"vitest run src/client","test:errors":"vitest run src/errors","test:logger":"vitest run src/logger","test:server":"vitest run src/server --config vitest.integration.config.ts","test:codegen":"vitest run src/codegen","test:coverage":"vitest run --coverage","check:circular":"madge --circular --extensions ts src/","docker:test:up":"docker compose -f docker-compose.test.yml up -d","test:middleware":"vitest run src/middleware","docker:test:down":"docker compose -f docker-compose.test.yml down","docker:test:logs":"docker compose -f docker-compose.test.yml logs -f"},"_npmUser":{"name":"superfunction","email":"rayim@inflike.com"},"_resolved":"/tmp/df36b02662c9322ebaa8de8974cd6034/spfn-core-0.2.0-beta.50.tgz","_integrity":"sha512-CM6ER0QjDQHNk6aJiFaJCUtjoMr7ZbbtWlpXUawbSdd48aPU182OAxnVmJtcUIQqtM5xK6e8PraysGhRE8yi7w==","repository":{"url":"git+https://github.com/spfn/spfn.git","type":"git","directory":"packages/core"},"_npmVersion":"11.17.0","description":"SPFN Framework Core - File-based routing, transactions, repository pattern","directories":{},"_nodeVersion":"22.22.3","dependencies":{"zod":"^4.1.11","hono":"^4.12.4","jiti":"^2.6.1","chalk":"^5.6.2","dotenv":"^17.2.3","undici":"^7.24.0","pg-boss":"^11.1.2","chokidar":"^4.0.3","postgres":"^3.4.0","micromatch":"^4.0.8","typescript":"^5.3.3","drizzle-orm":"^0.45.0","drizzle-typebox":"^0.1.0","@hono/node-server":"^1.0.0","@sinclair/typebox":"^0.34.0"},"publishConfig":{"tag":"beta","access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"next":"^16.0.0","tsup":"^8.5.0","madge":"^8.0.0","vitest":"^4.0.6","@types/ws":"^8.18.1","@types/node":"^20.11.0","drizzle-kit":"^0.31.6","@types/micromatch":"^4.0.9","@vitest/coverage-v8":"^4.0.6"},"peerDependencies":{"next":"^15.0.0 || ^16.0.0"},"optionalDependencies":{"ws":"^8.0.0","ioredis":"^5.4.1"},"peerDependenciesMeta":{"next":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/core_0.2.0-beta.50_1781600551304_0.9103187868240878","host":"s3://npm-registry-packages-npm-production"}},"0.2.0-beta.51":{"name":"@spfn/core","version":"0.2.0-beta.51","keywords":["spfn","nextjs","backend","framework","typescript","type-safe","api","rest-api","crud","database","orm","drizzle-orm","postgres","redis","hono","fullstack","server","scalable","auto-generated","file-based-routing","transaction","repository-pattern"],"author":{"name":"Ray Im","email":"rayim@fxy.global"},"license":"MIT","_id":"@spfn/core@0.2.0-beta.51","maintainers":[{"name":"superfunction","email":"rayim@inflike.com"}],"homepage":"https://github.com/spfn/spfn/tree/main/packages/core#readme","bugs":{"url":"https://github.com/spfn/spfn/issues"},"dist":{"shasum":"c307ccdccbfdcf0e599e8101d0e14cc855684530","tarball":"https://registry.npmjs.org/@spfn/core/-/core-0.2.0-beta.51.tgz","fileCount":70,"integrity":"sha512-JNyA+YijDTtEEnym033CHSY0KHdLD8fmPcUHxM3SneMiBYTx/mU8zHtdq7VgEf3SZ9OgqRX96K639fByLHAUCQ==","signatures":[{"sig":"MEUCIQDBjHfMzlBRGVCnbDy5y2VCBYRObfzWrLbZcznDtrWKwgIgHmgHO3akH03wvs6ZinmMgGK0xCngQPKfKsjn/eepkIk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spfn%2fcore@0.2.0-beta.51","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1711258},"type":"module","_from":"file:spfn-core-0.2.0-beta.51.tgz","engines":{"node":">=18.18.0"},"exports":{"./db":{"types":"./dist/db/index.d.ts","import":"./dist/db/index.js","require":"./dist/db/index.js"},"./env":{"types":"./dist/env/index.d.ts","import":"./dist/env/index.js","require":"./dist/env/index.js"},"./job":{"types":"./dist/job/index.d.ts","import":"./dist/job/index.js","require":"./dist/job/index.js"},"./cache":{"types":"./dist/cache/index.d.ts","import":"./dist/cache/index.js","require":"./dist/cache/index.js"},"./event":{"types":"./dist/event/index.d.ts","import":"./dist/event/index.js","require":"./dist/event/index.js"},"./route":{"types":"./dist/route/index.d.ts","import":"./dist/route/index.js","require":"./dist/route/index.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","require":"./dist/client/index.js"},"./config":{"types":"./dist/config/index.d.ts","import":"./dist/config/index.js","require":"./dist/config/index.js"},"./errors":{"types":"./dist/errors/index.d.ts","import":"./dist/errors/index.js","require":"./dist/errors/index.js"},"./logger":{"types":"./dist/logger/index.d.ts","import":"./dist/logger/index.js","require":"./dist/logger/index.js"},"./nextjs":{"types":"./dist/nextjs/index.d.ts","import":"./dist/nextjs/index.js","require":"./dist/nextjs/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./codegen":{"types":"./dist/codegen/index.d.ts","import":"./dist/codegen/index.js","require":"./dist/codegen/index.js"},"./event/ws":{"types":"./dist/event/ws/index.d.ts","import":"./dist/event/ws/index.js","require":"./dist/event/ws/index.js"},"./event/sse":{"types":"./dist/event/sse/index.d.ts","import":"./dist/event/sse/index.js","require":"./dist/event/sse/index.js"},"./env/loader":{"types":"./dist/env/loader.d.ts","import":"./dist/env/loader.js","require":"./dist/env/loader.js"},"./middleware":{"types":"./dist/middleware/index.d.ts","import":"./dist/middleware/index.js","require":"./dist/middleware/index.js"},"./route/types":{"types":"./dist/route/types.d.ts","import":"./dist/route/types.js","require":"./dist/route/types.js"},"./nextjs/server":{"types":"./dist/nextjs/server.d.ts","import":"./dist/nextjs/server.js","require":"./dist/nextjs/server.js"},"./event/ws/client":{"types":"./dist/event/ws/client.d.ts","import":"./dist/event/ws/client.js","require":"./dist/event/ws/client.js"},"./event/sse/client":{"types":"./dist/event/sse/client.d.ts","import":"./dist/event/sse/client.js","require":"./dist/event/sse/client.js"}},"scripts":{"dev":"tsup","test":"vitest run","build":"pnpm check:circular && tsup","test:db":"vitest run src/db --config vitest.integration.config.ts","test:env":"vitest run src/env","test:cache":"vitest run src/cache --config vitest.integration.config.ts","test:route":"vitest run src/route","test:watch":"vitest","type-check":"tsc --noEmit","test:client":"vitest run src/client","test:errors":"vitest run src/errors","test:logger":"vitest run src/logger","test:server":"vitest run src/server --config vitest.integration.config.ts","test:codegen":"vitest run src/codegen","test:coverage":"vitest run --coverage","check:circular":"madge --circular --extensions ts src/","docker:test:up":"docker compose -f docker-compose.test.yml up -d","test:middleware":"vitest run src/middleware","docker:test:down":"docker compose -f docker-compose.test.yml down","docker:test:logs":"docker compose -f docker-compose.test.yml logs -f"},"_npmUser":{"name":"superfunction","email":"rayim@inflike.com"},"_resolved":"/tmp/681d59f99c7a1b4485d77f043994ebdd/spfn-core-0.2.0-beta.51.tgz","_integrity":"sha512-JNyA+YijDTtEEnym033CHSY0KHdLD8fmPcUHxM3SneMiBYTx/mU8zHtdq7VgEf3SZ9OgqRX96K639fByLHAUCQ==","repository":{"url":"git+https://github.com/spfn/spfn.git","type":"git","directory":"packages/core"},"_npmVersion":"11.17.0","description":"SPFN Framework Core - File-based routing, transactions, repository pattern","directories":{},"_nodeVersion":"22.22.3","dependencies":{"zod":"^4.1.11","hono":"^4.12.4","jiti":"^2.6.1","chalk":"^5.6.2","dotenv":"^17.2.3","undici":"^7.24.0","pg-boss":"^11.1.2","chokidar":"^4.0.3","postgres":"^3.4.0","micromatch":"^4.0.8","typescript":"^5.3.3","drizzle-orm":"^0.45.0","drizzle-typebox":"^0.1.0","@hono/node-server":"^1.0.0","@sinclair/typebox":"^0.34.0"},"publishConfig":{"tag":"beta","access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"next":"^16.0.0","tsup":"^8.5.0","madge":"^8.0.0","vitest":"^4.0.6","@types/ws":"^8.18.1","@types/node":"^20.11.0","drizzle-kit":"^0.31.6","@types/micromatch":"^4.0.9","@vitest/coverage-v8":"^4.0.6"},"peerDependencies":{"next":"^15.0.0 || ^16.0.0"},"optionalDependencies":{"ws":"^8.0.0","ioredis":"^5.4.1"},"peerDependenciesMeta":{"next":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/core_0.2.0-beta.51_1781690636124_0.40128046409326745","host":"s3://npm-registry-packages-npm-production"}},"0.2.0-beta.52":{"name":"@spfn/core","version":"0.2.0-beta.52","keywords":["spfn","nextjs","backend","framework","typescript","type-safe","api","rest-api","crud","database","orm","drizzle-orm","postgres","redis","hono","fullstack","server","scalable","auto-generated","file-based-routing","transaction","repository-pattern"],"author":{"name":"Ray Im","email":"rayim@fxy.global"},"license":"MIT","_id":"@spfn/core@0.2.0-beta.52","maintainers":[{"name":"superfunction","email":"rayim@inflike.com"}],"homepage":"https://github.com/spfn/spfn/tree/main/packages/core#readme","bugs":{"url":"https://github.com/spfn/spfn/issues"},"dist":{"shasum":"ebe867e03ac987405803840f3b2ea4494000fbe7","tarball":"https://registry.npmjs.org/@spfn/core/-/core-0.2.0-beta.52.tgz","fileCount":70,"integrity":"sha512-Op7Ha2G+Q0DvKCt1oPqWutN+pmR+/calotVBnP2CXEWXJtXDK+xJbsbzXdRyMfcBWn5TLmOPGrvyVQ5bV4IrRw==","signatures":[{"sig":"MEUCIC7xwYLUqSOtSnJj/D980iyReFl2K65oJx3eM0KNc6AoAiEA3J8MfiZ2+I8UoGkkYSsZQrDgNXohlLaAkfTVJB5IAc0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spfn%2fcore@0.2.0-beta.52","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1768326},"type":"module","_from":"file:spfn-core-0.2.0-beta.52.tgz","engines":{"node":">=18.18.0"},"exports":{"./db":{"types":"./dist/db/index.d.ts","import":"./dist/db/index.js","require":"./dist/db/index.js"},"./env":{"types":"./dist/env/index.d.ts","import":"./dist/env/index.js","require":"./dist/env/index.js"},"./job":{"types":"./dist/job/index.d.ts","import":"./dist/job/index.js","require":"./dist/job/index.js"},"./cache":{"types":"./dist/cache/index.d.ts","import":"./dist/cache/index.js","require":"./dist/cache/index.js"},"./event":{"types":"./dist/event/index.d.ts","import":"./dist/event/index.js","require":"./dist/event/index.js"},"./route":{"types":"./dist/route/index.d.ts","import":"./dist/route/index.js","require":"./dist/route/index.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","require":"./dist/client/index.js"},"./config":{"types":"./dist/config/index.d.ts","import":"./dist/config/index.js","require":"./dist/config/index.js"},"./errors":{"types":"./dist/errors/index.d.ts","import":"./dist/errors/index.js","require":"./dist/errors/index.js"},"./logger":{"types":"./dist/logger/index.d.ts","import":"./dist/logger/index.js","require":"./dist/logger/index.js"},"./nextjs":{"types":"./dist/nextjs/index.d.ts","import":"./dist/nextjs/index.js","require":"./dist/nextjs/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./codegen":{"types":"./dist/codegen/index.d.ts","import":"./dist/codegen/index.js","require":"./dist/codegen/index.js"},"./event/ws":{"types":"./dist/event/ws/index.d.ts","import":"./dist/event/ws/index.js","require":"./dist/event/ws/index.js"},"./event/sse":{"types":"./dist/event/sse/index.d.ts","import":"./dist/event/sse/index.js","require":"./dist/event/sse/index.js"},"./env/loader":{"types":"./dist/env/loader.d.ts","import":"./dist/env/loader.js","require":"./dist/env/loader.js"},"./middleware":{"types":"./dist/middleware/index.d.ts","import":"./dist/middleware/index.js","require":"./dist/middleware/index.js"},"./route/types":{"types":"./dist/route/types.d.ts","import":"./dist/route/types.js","require":"./dist/route/types.js"},"./nextjs/server":{"types":"./dist/nextjs/server.d.ts","import":"./dist/nextjs/server.js","require":"./dist/nextjs/server.js"},"./event/ws/client":{"types":"./dist/event/ws/client.d.ts","import":"./dist/event/ws/client.js","require":"./dist/event/ws/client.js"},"./event/sse/client":{"types":"./dist/event/sse/client.d.ts","import":"./dist/event/sse/client.js","require":"./dist/event/sse/client.js"}},"scripts":{"dev":"tsup","test":"vitest run","build":"pnpm check:circular && tsup","test:db":"vitest run src/db --config vitest.integration.config.ts","test:env":"vitest run src/env","test:cache":"vitest run src/cache --config vitest.integration.config.ts","test:route":"vitest run src/route","test:watch":"vitest","type-check":"tsc --noEmit","test:client":"vitest run src/client","test:errors":"vitest run src/errors","test:logger":"vitest run src/logger","test:server":"vitest run src/server --config vitest.integration.config.ts","test:codegen":"vitest run src/codegen","test:coverage":"vitest run --coverage","check:circular":"madge --circular --extensions ts src/","docker:test:up":"docker compose -f docker-compose.test.yml up -d","test:middleware":"vitest run src/middleware","docker:test:down":"docker compose -f docker-compose.test.yml down","docker:test:logs":"docker compose -f docker-compose.test.yml logs -f"},"_npmUser":{"name":"superfunction","email":"rayim@inflike.com"},"_resolved":"/tmp/940d7c3dccfd95eb1cceabb53c3daa24/spfn-core-0.2.0-beta.52.tgz","_integrity":"sha512-Op7Ha2G+Q0DvKCt1oPqWutN+pmR+/calotVBnP2CXEWXJtXDK+xJbsbzXdRyMfcBWn5TLmOPGrvyVQ5bV4IrRw==","repository":{"url":"git+https://github.com/spfn/spfn.git","type":"git","directory":"packages/core"},"_npmVersion":"11.17.0","description":"SPFN Framework Core - File-based routing, transactions, repository pattern","directories":{},"_nodeVersion":"22.22.3","dependencies":{"zod":"^4.1.11","hono":"^4.12.4","jiti":"^2.6.1","chalk":"^5.6.2","dotenv":"^17.2.3","undici":"^7.24.0","pg-boss":"^11.1.2","chokidar":"^4.0.3","postgres":"^3.4.0","micromatch":"^4.0.8","typescript":"^5.3.3","drizzle-orm":"^0.45.0","drizzle-typebox":"^0.1.0","@hono/node-server":"^1.0.0","@sinclair/typebox":"^0.34.0"},"publishConfig":{"tag":"beta","access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"next":"^16.0.0","tsup":"^8.5.0","madge":"^8.0.0","vitest":"^4.0.6","@types/ws":"^8.18.1","@types/node":"^20.11.0","drizzle-kit":"^0.31.6","@types/micromatch":"^4.0.9","@vitest/coverage-v8":"^4.0.6"},"peerDependencies":{"next":"^15.0.0 || ^16.0.0"},"optionalDependencies":{"ws":"^8.0.0","ioredis":"^5.4.1"},"peerDependenciesMeta":{"next":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/core_0.2.0-beta.52_1781940379416_0.4590444242534957","host":"s3://npm-registry-packages-npm-production"}},"0.2.0-beta.53":{"name":"@spfn/core","version":"0.2.0-beta.53","keywords":["spfn","nextjs","backend","framework","typescript","type-safe","api","rest-api","crud","database","orm","drizzle-orm","postgres","redis","hono","fullstack","server","scalable","auto-generated","file-based-routing","transaction","repository-pattern"],"author":{"name":"Ray Im","email":"rayim@fxy.global"},"license":"MIT","_id":"@spfn/core@0.2.0-beta.53","maintainers":[{"name":"superfunction","email":"rayim@inflike.com"}],"homepage":"https://github.com/spfn/spfn/tree/main/packages/core#readme","bugs":{"url":"https://github.com/spfn/spfn/issues"},"dist":{"shasum":"dd0ef42f7914dc6057377d5670f545eb0c0c646b","tarball":"https://registry.npmjs.org/@spfn/core/-/core-0.2.0-beta.53.tgz","fileCount":70,"integrity":"sha512-m+62Y5udl1a5eAODPtaK5cIP9jOl60h/iL/mSLb8+BAMjdcVxH9FoqlZY7ra6U/qhiuij0ZIlz30kkdgFyjSrQ==","signatures":[{"sig":"MEUCIQD1X8pQ8msgjCd64mejB0RfKZYuV3oM6m+7u/SicVqZtgIgGbh/YHtFj1TzDfTZlwTIlxunasu4cAO3+10l4NH2eAU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spfn%2fcore@0.2.0-beta.53","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1853131},"type":"module","_from":"file:spfn-core-0.2.0-beta.53.tgz","engines":{"node":">=18.18.0"},"exports":{"./db":{"types":"./dist/db/index.d.ts","import":"./dist/db/index.js","require":"./dist/db/index.js"},"./env":{"types":"./dist/env/index.d.ts","import":"./dist/env/index.js","require":"./dist/env/index.js"},"./job":{"types":"./dist/job/index.d.ts","import":"./dist/job/index.js","require":"./dist/job/index.js"},"./cache":{"types":"./dist/cache/index.d.ts","import":"./dist/cache/index.js","require":"./dist/cache/index.js"},"./event":{"types":"./dist/event/index.d.ts","import":"./dist/event/index.js","require":"./dist/event/index.js"},"./route":{"types":"./dist/route/index.d.ts","import":"./dist/route/index.js","require":"./dist/route/index.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","require":"./dist/client/index.js"},"./config":{"types":"./dist/config/index.d.ts","import":"./dist/config/index.js","require":"./dist/config/index.js"},"./errors":{"types":"./dist/errors/index.d.ts","import":"./dist/errors/index.js","require":"./dist/errors/index.js"},"./logger":{"types":"./dist/logger/index.d.ts","import":"./dist/logger/index.js","require":"./dist/logger/index.js"},"./nextjs":{"types":"./dist/nextjs/index.d.ts","import":"./dist/nextjs/index.js","require":"./dist/nextjs/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./codegen":{"types":"./dist/codegen/index.d.ts","import":"./dist/codegen/index.js","require":"./dist/codegen/index.js"},"./event/ws":{"types":"./dist/event/ws/index.d.ts","import":"./dist/event/ws/index.js","require":"./dist/event/ws/index.js"},"./event/sse":{"types":"./dist/event/sse/index.d.ts","import":"./dist/event/sse/index.js","require":"./dist/event/sse/index.js"},"./env/loader":{"types":"./dist/env/loader.d.ts","import":"./dist/env/loader.js","require":"./dist/env/loader.js"},"./middleware":{"types":"./dist/middleware/index.d.ts","import":"./dist/middleware/index.js","require":"./dist/middleware/index.js"},"./route/types":{"types":"./dist/route/types.d.ts","import":"./dist/route/types.js","require":"./dist/route/types.js"},"./nextjs/server":{"types":"./dist/nextjs/server.d.ts","import":"./dist/nextjs/server.js","require":"./dist/nextjs/server.js"},"./event/ws/client":{"types":"./dist/event/ws/client.d.ts","import":"./dist/event/ws/client.js","require":"./dist/event/ws/client.js"},"./event/sse/client":{"types":"./dist/event/sse/client.d.ts","import":"./dist/event/sse/client.js","require":"./dist/event/sse/client.js"}},"scripts":{"dev":"tsup","test":"vitest run","build":"pnpm check:circular && tsup","test:db":"vitest run src/db --config vitest.integration.config.ts","test:env":"vitest run src/env","test:cache":"vitest run src/cache --config vitest.integration.config.ts","test:route":"vitest run src/route","test:watch":"vitest","type-check":"tsc --noEmit","test:client":"vitest run src/client","test:errors":"vitest run src/errors","test:logger":"vitest run src/logger","test:server":"vitest run src/server --config vitest.integration.config.ts","test:codegen":"vitest run src/codegen","test:coverage":"vitest run --coverage","check:circular":"madge --circular --extensions ts src/","docker:test:up":"docker compose -f docker-compose.test.yml up -d","test:middleware":"vitest run src/middleware","docker:test:down":"docker compose -f docker-compose.test.yml down","docker:test:logs":"docker compose -f docker-compose.test.yml logs -f"},"_npmUser":{"name":"superfunction","email":"rayim@inflike.com"},"_resolved":"/tmp/a67f3400db03d9cdd42e3a701928be70/spfn-core-0.2.0-beta.53.tgz","_integrity":"sha512-m+62Y5udl1a5eAODPtaK5cIP9jOl60h/iL/mSLb8+BAMjdcVxH9FoqlZY7ra6U/qhiuij0ZIlz30kkdgFyjSrQ==","repository":{"url":"git+https://github.com/spfn/spfn.git","type":"git","directory":"packages/core"},"_npmVersion":"11.17.0","description":"SPFN Framework Core - File-based routing, transactions, repository pattern","directories":{},"_nodeVersion":"22.22.3","dependencies":{"zod":"^4.1.11","hono":"^4.12.4","jiti":"^2.6.1","chalk":"^5.6.2","dotenv":"^17.2.3","undici":"^7.24.0","pg-boss":"^11.1.2","chokidar":"^4.0.3","postgres":"^3.4.0","micromatch":"^4.0.8","typescript":"^5.3.3","drizzle-orm":"^0.45.0","drizzle-typebox":"^0.1.0","@hono/node-server":"^1.0.0","@sinclair/typebox":"^0.34.0"},"publishConfig":{"tag":"beta","access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"next":"^16.0.0","tsup":"^8.5.0","madge":"^8.0.0","vitest":"^4.0.6","@types/ws":"^8.18.1","@types/node":"^20.11.0","drizzle-kit":"^0.31.6","@types/micromatch":"^4.0.9","@vitest/coverage-v8":"^4.0.6"},"peerDependencies":{"next":"^15.0.0 || ^16.0.0"},"optionalDependencies":{"ws":"^8.0.0","ioredis":"^5.4.1"},"peerDependenciesMeta":{"next":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/core_0.2.0-beta.53_1782303910094_0.46527804389076155","host":"s3://npm-registry-packages-npm-production"}},"0.2.0-beta.54":{"name":"@spfn/core","version":"0.2.0-beta.54","keywords":["spfn","nextjs","backend","framework","typescript","type-safe","api","rest-api","crud","database","orm","drizzle-orm","postgres","redis","hono","fullstack","server","scalable","auto-generated","file-based-routing","transaction","repository-pattern"],"author":{"name":"Ray Im","email":"rayim@fxy.global"},"license":"MIT","_id":"@spfn/core@0.2.0-beta.54","maintainers":[{"name":"superfunction","email":"rayim@inflike.com"}],"homepage":"https://github.com/spfn/spfn/tree/main/packages/core#readme","bugs":{"url":"https://github.com/spfn/spfn/issues"},"dist":{"shasum":"606c10f7e745768f4dc69f468ca0846a9ac66d6f","tarball":"https://registry.npmjs.org/@spfn/core/-/core-0.2.0-beta.54.tgz","fileCount":71,"integrity":"sha512-giHtLcSWa7Yd4qPa32BsTQ6ib36Ar8JMy4G8/XW5G6ICX3rJLcEwFi4o6ODNqfmvlNYOXFx0TEl641dHm7bImg==","signatures":[{"sig":"MEUCIH8vv4W67WTkkdvXBqJMsB+meV4G7bQBV5qkex3irByqAiEAx+guIcPdfvGKkSrlGLLM0Z/R7rgbFm2TLquHR9CLwRY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spfn%2fcore@0.2.0-beta.54","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2059680},"type":"module","_from":"file:spfn-core-0.2.0-beta.54.tgz","engines":{"node":">=18.18.0"},"exports":{"./db":{"types":"./dist/db/index.d.ts","import":"./dist/db/index.js","require":"./dist/db/index.js"},"./env":{"types":"./dist/env/index.d.ts","import":"./dist/env/index.js","require":"./dist/env/index.js"},"./job":{"types":"./dist/job/index.d.ts","import":"./dist/job/index.js","require":"./dist/job/index.js"},"./cache":{"types":"./dist/cache/index.d.ts","import":"./dist/cache/index.js","require":"./dist/cache/index.js"},"./event":{"types":"./dist/event/index.d.ts","import":"./dist/event/index.js","require":"./dist/event/index.js"},"./route":{"types":"./dist/route/index.d.ts","import":"./dist/route/index.js","require":"./dist/route/index.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","require":"./dist/client/index.js"},"./config":{"types":"./dist/config/index.d.ts","import":"./dist/config/index.js","require":"./dist/config/index.js"},"./errors":{"types":"./dist/errors/index.d.ts","import":"./dist/errors/index.js","require":"./dist/errors/index.js"},"./logger":{"types":"./dist/logger/index.d.ts","import":"./dist/logger/index.js","require":"./dist/logger/index.js"},"./nextjs":{"types":"./dist/nextjs/index.d.ts","import":"./dist/nextjs/index.js","require":"./dist/nextjs/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./codegen":{"types":"./dist/codegen/index.d.ts","import":"./dist/codegen/index.js","require":"./dist/codegen/index.js"},"./event/ws":{"types":"./dist/event/ws/index.d.ts","import":"./dist/event/ws/index.js","require":"./dist/event/ws/index.js"},"./event/sse":{"types":"./dist/event/sse/index.d.ts","import":"./dist/event/sse/index.js","require":"./dist/event/sse/index.js"},"./env/loader":{"types":"./dist/env/loader.d.ts","import":"./dist/env/loader.js","require":"./dist/env/loader.js"},"./middleware":{"types":"./dist/middleware/index.d.ts","import":"./dist/middleware/index.js","require":"./dist/middleware/index.js"},"./route/types":{"types":"./dist/route/types.d.ts","import":"./dist/route/types.js","require":"./dist/route/types.js"},"./nextjs/server":{"types":"./dist/nextjs/server.d.ts","import":"./dist/nextjs/server.js","require":"./dist/nextjs/server.js"},"./event/ws/client":{"types":"./dist/event/ws/client.d.ts","import":"./dist/event/ws/client.js","require":"./dist/event/ws/client.js"},"./event/sse/client":{"types":"./dist/event/sse/client.d.ts","import":"./dist/event/sse/client.js","require":"./dist/event/sse/client.js"}},"scripts":{"dev":"tsup","test":"vitest run","build":"pnpm check:circular && tsup","test:db":"vitest run src/db --config vitest.integration.config.ts","test:env":"vitest run src/env","test:cache":"vitest run src/cache --config vitest.integration.config.ts","test:route":"vitest run src/route","test:watch":"vitest","type-check":"tsc --noEmit","test:client":"vitest run src/client","test:errors":"vitest run src/errors","test:logger":"vitest run src/logger","test:server":"vitest run src/server --config vitest.integration.config.ts","test:codegen":"vitest run src/codegen","test:coverage":"vitest run --coverage","check:circular":"madge --circular --extensions ts src/","docker:test:up":"docker compose -f docker-compose.test.yml up -d","test:middleware":"vitest run src/middleware","docker:test:down":"docker compose -f docker-compose.test.yml down","docker:test:logs":"docker compose -f docker-compose.test.yml logs -f"},"_npmUser":{"name":"superfunction","email":"rayim@inflike.com"},"_resolved":"/tmp/5288e2d0373ad0a4086df59df8aef686/spfn-core-0.2.0-beta.54.tgz","_integrity":"sha512-giHtLcSWa7Yd4qPa32BsTQ6ib36Ar8JMy4G8/XW5G6ICX3rJLcEwFi4o6ODNqfmvlNYOXFx0TEl641dHm7bImg==","repository":{"url":"git+https://github.com/spfn/spfn.git","type":"git","directory":"packages/core"},"_npmVersion":"11.17.0","description":"SPFN Framework Core - File-based routing, transactions, repository pattern","directories":{},"_nodeVersion":"22.23.0","dependencies":{"zod":"^4.1.11","hono":"^4.12.25","jiti":"^2.6.1","chalk":"^5.6.2","dotenv":"^17.2.3","undici":"^7.28.0","pg-boss":"^11.1.2","chokidar":"^4.0.3","postgres":"^3.4.0","micromatch":"^4.0.8","typescript":"^5.3.3","drizzle-orm":"^0.45.2","drizzle-typebox":"^0.1.0","@hono/node-server":"^1.19.13","@sinclair/typebox":"^0.34.0"},"publishConfig":{"tag":"beta","access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"next":"^16.0.0","tsup":"^8.5.0","madge":"^8.0.0","vitest":"^4.0.6","@types/ws":"^8.18.1","@types/node":"^20.11.0","drizzle-kit":"^0.31.6","@types/micromatch":"^4.0.9","@vitest/coverage-v8":"^4.0.6"},"peerDependencies":{"next":"^15.0.0 || ^16.0.0"},"optionalDependencies":{"ws":"^8.21.0","ioredis":"^5.4.1"},"peerDependenciesMeta":{"next":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/core_0.2.0-beta.54_1782548660385_0.39359055989908676","host":"s3://npm-registry-packages-npm-production"}},"0.2.0-beta.55":{"name":"@spfn/core","version":"0.2.0-beta.55","keywords":["spfn","nextjs","backend","framework","typescript","type-safe","api","rest-api","crud","database","orm","drizzle-orm","postgres","redis","hono","fullstack","server","scalable","auto-generated","file-based-routing","transaction","repository-pattern"],"author":{"name":"Ray Im","email":"rayim@fxy.global"},"license":"MIT","_id":"@spfn/core@0.2.0-beta.55","maintainers":[{"name":"superfunction","email":"rayim@inflike.com"}],"homepage":"https://github.com/spfn/spfn/tree/main/packages/core#readme","bugs":{"url":"https://github.com/spfn/spfn/issues"},"dist":{"shasum":"53d0362cc2a3c672fc54ab50cfe91e70fe2dc722","tarball":"https://registry.npmjs.org/@spfn/core/-/core-0.2.0-beta.55.tgz","fileCount":71,"integrity":"sha512-ofKG0084zZr9+L/8bg8umepNyW9k9PzYkqDDfygL8jzPSvUNWZkWDwgKbvbK3XqjtjL7y4sSLMYE0vRjB++bnw==","signatures":[{"sig":"MEYCIQCjmg7u5aiF0XPXwI0WtPBd6xFZ6GSX9WNmxD6PRxvvfgIhANTAKzig1tqFAUoKMOfwo2ZlnQpFlCGtXjgJr6ijHd5U","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spfn%2fcore@0.2.0-beta.55","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2059680},"type":"module","_from":"file:spfn-core-0.2.0-beta.55.tgz","engines":{"node":">=18.18.0"},"exports":{"./db":{"types":"./dist/db/index.d.ts","import":"./dist/db/index.js","require":"./dist/db/index.js"},"./env":{"types":"./dist/env/index.d.ts","import":"./dist/env/index.js","require":"./dist/env/index.js"},"./job":{"types":"./dist/job/index.d.ts","import":"./dist/job/index.js","require":"./dist/job/index.js"},"./cache":{"types":"./dist/cache/index.d.ts","import":"./dist/cache/index.js","require":"./dist/cache/index.js"},"./event":{"types":"./dist/event/index.d.ts","import":"./dist/event/index.js","require":"./dist/event/index.js"},"./route":{"types":"./dist/route/index.d.ts","import":"./dist/route/index.js","require":"./dist/route/index.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","require":"./dist/client/index.js"},"./config":{"types":"./dist/config/index.d.ts","import":"./dist/config/index.js","require":"./dist/config/index.js"},"./errors":{"types":"./dist/errors/index.d.ts","import":"./dist/errors/index.js","require":"./dist/errors/index.js"},"./logger":{"types":"./dist/logger/index.d.ts","import":"./dist/logger/index.js","require":"./dist/logger/index.js"},"./nextjs":{"types":"./dist/nextjs/index.d.ts","import":"./dist/nextjs/index.js","require":"./dist/nextjs/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./codegen":{"types":"./dist/codegen/index.d.ts","import":"./dist/codegen/index.js","require":"./dist/codegen/index.js"},"./event/ws":{"types":"./dist/event/ws/index.d.ts","import":"./dist/event/ws/index.js","require":"./dist/event/ws/index.js"},"./event/sse":{"types":"./dist/event/sse/index.d.ts","import":"./dist/event/sse/index.js","require":"./dist/event/sse/index.js"},"./env/loader":{"types":"./dist/env/loader.d.ts","import":"./dist/env/loader.js","require":"./dist/env/loader.js"},"./middleware":{"types":"./dist/middleware/index.d.ts","import":"./dist/middleware/index.js","require":"./dist/middleware/index.js"},"./route/types":{"types":"./dist/route/types.d.ts","import":"./dist/route/types.js","require":"./dist/route/types.js"},"./nextjs/server":{"types":"./dist/nextjs/server.d.ts","import":"./dist/nextjs/server.js","require":"./dist/nextjs/server.js"},"./event/ws/client":{"types":"./dist/event/ws/client.d.ts","import":"./dist/event/ws/client.js","require":"./dist/event/ws/client.js"},"./event/sse/client":{"types":"./dist/event/sse/client.d.ts","import":"./dist/event/sse/client.js","require":"./dist/event/sse/client.js"}},"scripts":{"dev":"tsup","test":"vitest run","build":"pnpm check:circular && tsup","test:db":"vitest run src/db --config vitest.integration.config.ts","test:env":"vitest run src/env","test:cache":"vitest run src/cache --config vitest.integration.config.ts","test:route":"vitest run src/route","test:watch":"vitest","type-check":"tsc --noEmit","test:client":"vitest run src/client","test:errors":"vitest run src/errors","test:logger":"vitest run src/logger","test:server":"vitest run src/server --config vitest.integration.config.ts","test:codegen":"vitest run src/codegen","test:coverage":"vitest run --coverage","check:circular":"madge --circular --extensions ts src/","docker:test:up":"docker compose -f docker-compose.test.yml up -d","test:middleware":"vitest run src/middleware","docker:test:down":"docker compose -f docker-compose.test.yml down","docker:test:logs":"docker compose -f docker-compose.test.yml logs -f"},"_npmUser":{"name":"superfunction","email":"rayim@inflike.com"},"_resolved":"/tmp/db6afa18229371028ae5d9430024c8d5/spfn-core-0.2.0-beta.55.tgz","_integrity":"sha512-ofKG0084zZr9+L/8bg8umepNyW9k9PzYkqDDfygL8jzPSvUNWZkWDwgKbvbK3XqjtjL7y4sSLMYE0vRjB++bnw==","repository":{"url":"git+https://github.com/spfn/spfn.git","type":"git","directory":"packages/core"},"_npmVersion":"11.17.0","description":"SPFN Framework Core - File-based routing, transactions, repository pattern","directories":{},"_nodeVersion":"22.23.0","dependencies":{"zod":"^4.1.11","hono":"^4.12.25","jiti":"^2.6.1","chalk":"^5.6.2","dotenv":"^17.2.3","undici":"^7.28.0","pg-boss":"^11.1.2","chokidar":"^4.0.3","postgres":"^3.4.0","micromatch":"^4.0.8","typescript":"^5.3.3","drizzle-orm":"^0.45.2","drizzle-typebox":"^0.1.0","@hono/node-server":"^1.19.13","@sinclair/typebox":"^0.34.0"},"publishConfig":{"tag":"beta","access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"next":"^16.0.0","tsup":"^8.5.0","madge":"^8.0.0","vitest":"^4.0.6","@types/ws":"^8.18.1","@types/node":"^20.11.0","drizzle-kit":"^0.31.6","@types/micromatch":"^4.0.9","@vitest/coverage-v8":"^4.0.6"},"peerDependencies":{"next":"^15.0.0 || ^16.0.0"},"optionalDependencies":{"ws":"^8.21.0","ioredis":"^5.4.1"},"peerDependenciesMeta":{"next":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/core_0.2.0-beta.55_1782549704824_0.24470051435994455","host":"s3://npm-registry-packages-npm-production"}},"0.2.0-beta.56":{"name":"@spfn/core","version":"0.2.0-beta.56","keywords":["spfn","nextjs","backend","framework","typescript","type-safe","api","rest-api","crud","database","orm","drizzle-orm","postgres","redis","hono","fullstack","server","scalable","auto-generated","file-based-routing","transaction","repository-pattern"],"author":{"name":"Ray Im","email":"rayim@fxy.global"},"license":"MIT","_id":"@spfn/core@0.2.0-beta.56","maintainers":[{"name":"superfunction","email":"rayim@inflike.com"}],"homepage":"https://github.com/spfn/spfn/tree/main/packages/core#readme","bugs":{"url":"https://github.com/spfn/spfn/issues"},"dist":{"shasum":"c992ee665e246fcab1b16541f96c153f621ff7d7","tarball":"https://registry.npmjs.org/@spfn/core/-/core-0.2.0-beta.56.tgz","fileCount":71,"integrity":"sha512-V7ffWosNopC6RC/O2DY5gpnPQu2bTnV9WXVvprEDfCxPZm/DcaDH8mWLXlK6w0vzozSZRHTbAxBFu93GL0CrOQ==","signatures":[{"sig":"MEUCIQDYrHkqW3gwpBHnujWXvpHQBuANct/4qiTORisegrEKzQIgJJ9sq4tcW3rEVuOs7aJ+hZtyYRbTqbHdBcWSL6BTBVg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spfn%2fcore@0.2.0-beta.56","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2061785},"type":"module","_from":"file:spfn-core-0.2.0-beta.56.tgz","engines":{"node":">=18.18.0"},"exports":{"./db":{"types":"./dist/db/index.d.ts","import":"./dist/db/index.js","require":"./dist/db/index.js"},"./env":{"types":"./dist/env/index.d.ts","import":"./dist/env/index.js","require":"./dist/env/index.js"},"./job":{"types":"./dist/job/index.d.ts","import":"./dist/job/index.js","require":"./dist/job/index.js"},"./cache":{"types":"./dist/cache/index.d.ts","import":"./dist/cache/index.js","require":"./dist/cache/index.js"},"./event":{"types":"./dist/event/index.d.ts","import":"./dist/event/index.js","require":"./dist/event/index.js"},"./route":{"types":"./dist/route/index.d.ts","import":"./dist/route/index.js","require":"./dist/route/index.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","require":"./dist/client/index.js"},"./config":{"types":"./dist/config/index.d.ts","import":"./dist/config/index.js","require":"./dist/config/index.js"},"./errors":{"types":"./dist/errors/index.d.ts","import":"./dist/errors/index.js","require":"./dist/errors/index.js"},"./logger":{"types":"./dist/logger/index.d.ts","import":"./dist/logger/index.js","require":"./dist/logger/index.js"},"./nextjs":{"types":"./dist/nextjs/index.d.ts","import":"./dist/nextjs/index.js","require":"./dist/nextjs/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./codegen":{"types":"./dist/codegen/index.d.ts","import":"./dist/codegen/index.js","require":"./dist/codegen/index.js"},"./event/ws":{"types":"./dist/event/ws/index.d.ts","import":"./dist/event/ws/index.js","require":"./dist/event/ws/index.js"},"./event/sse":{"types":"./dist/event/sse/index.d.ts","import":"./dist/event/sse/index.js","require":"./dist/event/sse/index.js"},"./env/loader":{"types":"./dist/env/loader.d.ts","import":"./dist/env/loader.js","require":"./dist/env/loader.js"},"./middleware":{"types":"./dist/middleware/index.d.ts","import":"./dist/middleware/index.js","require":"./dist/middleware/index.js"},"./route/types":{"types":"./dist/route/types.d.ts","import":"./dist/route/types.js","require":"./dist/route/types.js"},"./nextjs/server":{"types":"./dist/nextjs/server.d.ts","import":"./dist/nextjs/server.js","require":"./dist/nextjs/server.js"},"./event/ws/client":{"types":"./dist/event/ws/client.d.ts","import":"./dist/event/ws/client.js","require":"./dist/event/ws/client.js"},"./event/sse/client":{"types":"./dist/event/sse/client.d.ts","import":"./dist/event/sse/client.js","require":"./dist/event/sse/client.js"}},"scripts":{"dev":"tsup","test":"vitest run","build":"pnpm check:circular && tsup","test:db":"vitest run src/db --config vitest.integration.config.ts","test:env":"vitest run src/env","test:cache":"vitest run src/cache --config vitest.integration.config.ts","test:route":"vitest run src/route","test:watch":"vitest","type-check":"tsc --noEmit","test:client":"vitest run src/client","test:errors":"vitest run src/errors","test:logger":"vitest run src/logger","test:server":"vitest run src/server --config vitest.integration.config.ts","test:codegen":"vitest run src/codegen","test:coverage":"vitest run --coverage","check:circular":"madge --circular --extensions ts src/","docker:test:up":"docker compose -f docker-compose.test.yml up -d","test:middleware":"vitest run src/middleware","docker:test:down":"docker compose -f docker-compose.test.yml down","docker:test:logs":"docker compose -f docker-compose.test.yml logs -f"},"_npmUser":{"name":"superfunction","email":"rayim@inflike.com"},"_resolved":"/tmp/36fff5226149832260a9cbe2de4d6d40/spfn-core-0.2.0-beta.56.tgz","_integrity":"sha512-V7ffWosNopC6RC/O2DY5gpnPQu2bTnV9WXVvprEDfCxPZm/DcaDH8mWLXlK6w0vzozSZRHTbAxBFu93GL0CrOQ==","repository":{"url":"git+https://github.com/spfn/spfn.git","type":"git","directory":"packages/core"},"_npmVersion":"11.17.0","description":"SPFN Framework Core - File-based routing, transactions, repository pattern","directories":{},"_nodeVersion":"22.23.0","dependencies":{"zod":"^4.1.11","hono":"^4.12.25","jiti":"^2.6.1","chalk":"^5.6.2","dotenv":"^17.2.3","undici":"^7.28.0","pg-boss":"^11.1.2","chokidar":"^4.0.3","postgres":"^3.4.0","micromatch":"^4.0.8","typescript":"^5.3.3","drizzle-orm":"^0.45.2","drizzle-typebox":"^0.1.0","@hono/node-server":"^1.19.13","@sinclair/typebox":"^0.34.0"},"publishConfig":{"tag":"beta","access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"next":"^16.0.0","tsup":"^8.5.0","madge":"^8.0.0","vitest":"^4.0.6","@types/ws":"^8.18.1","@types/node":"^20.11.0","drizzle-kit":"^0.31.6","@types/micromatch":"^4.0.9","@vitest/coverage-v8":"^4.0.6"},"peerDependencies":{"next":"^15.0.0 || ^16.0.0"},"optionalDependencies":{"ws":"^8.21.0","ioredis":"^5.4.1"},"peerDependenciesMeta":{"next":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/core_0.2.0-beta.56_1782567661483_0.12262133797248742","host":"s3://npm-registry-packages-npm-production"}},"0.2.0-beta.57":{"name":"@spfn/core","version":"0.2.0-beta.57","keywords":["spfn","nextjs","backend","framework","typescript","type-safe","api","rest-api","crud","database","orm","drizzle-orm","postgres","redis","hono","fullstack","server","scalable","auto-generated","file-based-routing","transaction","repository-pattern"],"author":{"name":"Ray Im","email":"rayim@fxy.global"},"license":"MIT","_id":"@spfn/core@0.2.0-beta.57","maintainers":[{"name":"superfunction","email":"rayim@inflike.com"}],"homepage":"https://github.com/spfn/spfn/tree/main/packages/core#readme","bugs":{"url":"https://github.com/spfn/spfn/issues"},"dist":{"shasum":"e369d6f707ae110853e2f5b7ee8ce6a874362071","tarball":"https://registry.npmjs.org/@spfn/core/-/core-0.2.0-beta.57.tgz","fileCount":71,"integrity":"sha512-9m3c1TDbWOhdrUxnTox4YdQLVI++klJwi61I7RzMEIMGBNXx9pxCnm80CN/2EtKz+oO29cBxcfMdgVEDtupWdg==","signatures":[{"sig":"MEUCIQDuLfnUGHM2h+vJDVFEzs2xpil9krrOT+1MxNSP7H5fBgIgMTf88fzyFl5mczKNSVStAMoFumgu8tu/yeD4eoC6zEI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spfn%2fcore@0.2.0-beta.57","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2063050},"type":"module","_from":"file:spfn-core-0.2.0-beta.57.tgz","engines":{"node":">=18.18.0"},"exports":{"./db":{"types":"./dist/db/index.d.ts","import":"./dist/db/index.js","require":"./dist/db/index.js"},"./env":{"types":"./dist/env/index.d.ts","import":"./dist/env/index.js","require":"./dist/env/index.js"},"./job":{"types":"./dist/job/index.d.ts","import":"./dist/job/index.js","require":"./dist/job/index.js"},"./cache":{"types":"./dist/cache/index.d.ts","import":"./dist/cache/index.js","require":"./dist/cache/index.js"},"./event":{"types":"./dist/event/index.d.ts","import":"./dist/event/index.js","require":"./dist/event/index.js"},"./route":{"types":"./dist/route/index.d.ts","import":"./dist/route/index.js","require":"./dist/route/index.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","require":"./dist/client/index.js"},"./config":{"types":"./dist/config/index.d.ts","import":"./dist/config/index.js","require":"./dist/config/index.js"},"./errors":{"types":"./dist/errors/index.d.ts","import":"./dist/errors/index.js","require":"./dist/errors/index.js"},"./logger":{"types":"./dist/logger/index.d.ts","import":"./dist/logger/index.js","require":"./dist/logger/index.js"},"./nextjs":{"types":"./dist/nextjs/index.d.ts","import":"./dist/nextjs/index.js","require":"./dist/nextjs/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./codegen":{"types":"./dist/codegen/index.d.ts","import":"./dist/codegen/index.js","require":"./dist/codegen/index.js"},"./event/ws":{"types":"./dist/event/ws/index.d.ts","import":"./dist/event/ws/index.js","require":"./dist/event/ws/index.js"},"./event/sse":{"types":"./dist/event/sse/index.d.ts","import":"./dist/event/sse/index.js","require":"./dist/event/sse/index.js"},"./env/loader":{"types":"./dist/env/loader.d.ts","import":"./dist/env/loader.js","require":"./dist/env/loader.js"},"./middleware":{"types":"./dist/middleware/index.d.ts","import":"./dist/middleware/index.js","require":"./dist/middleware/index.js"},"./route/types":{"types":"./dist/route/types.d.ts","import":"./dist/route/types.js","require":"./dist/route/types.js"},"./nextjs/server":{"types":"./dist/nextjs/server.d.ts","import":"./dist/nextjs/server.js","require":"./dist/nextjs/server.js"},"./event/ws/client":{"types":"./dist/event/ws/client.d.ts","import":"./dist/event/ws/client.js","require":"./dist/event/ws/client.js"},"./event/sse/client":{"types":"./dist/event/sse/client.d.ts","import":"./dist/event/sse/client.js","require":"./dist/event/sse/client.js"}},"scripts":{"dev":"tsup","test":"vitest run","build":"pnpm check:circular && tsup","test:db":"vitest run src/db --config vitest.integration.config.ts","test:env":"vitest run src/env","test:cache":"vitest run src/cache --config vitest.integration.config.ts","test:route":"vitest run src/route","test:watch":"vitest","type-check":"tsc --noEmit","test:client":"vitest run src/client","test:errors":"vitest run src/errors","test:logger":"vitest run src/logger","test:server":"vitest run src/server --config vitest.integration.config.ts","test:codegen":"vitest run src/codegen","test:coverage":"vitest run --coverage","check:circular":"madge --circular --extensions ts src/","docker:test:up":"docker compose -f docker-compose.test.yml up -d","test:middleware":"vitest run src/middleware","docker:test:down":"docker compose -f docker-compose.test.yml down","docker:test:logs":"docker compose -f docker-compose.test.yml logs -f"},"_npmUser":{"name":"superfunction","email":"rayim@inflike.com"},"_resolved":"/tmp/74344566473c7e5bd1c777b35966dd52/spfn-core-0.2.0-beta.57.tgz","_integrity":"sha512-9m3c1TDbWOhdrUxnTox4YdQLVI++klJwi61I7RzMEIMGBNXx9pxCnm80CN/2EtKz+oO29cBxcfMdgVEDtupWdg==","repository":{"url":"git+https://github.com/spfn/spfn.git","type":"git","directory":"packages/core"},"_npmVersion":"11.17.0","description":"SPFN Framework Core - File-based routing, transactions, repository pattern","directories":{},"_nodeVersion":"22.23.0","dependencies":{"zod":"^4.1.11","hono":"^4.12.25","jiti":"^2.6.1","chalk":"^5.6.2","dotenv":"^17.2.3","undici":"^7.28.0","pg-boss":"^11.1.2","chokidar":"^4.0.3","postgres":"^3.4.0","micromatch":"^4.0.8","typescript":"^5.3.3","drizzle-orm":"^0.45.2","drizzle-typebox":"^0.1.0","@hono/node-server":"^1.19.13","@sinclair/typebox":"^0.34.0"},"publishConfig":{"tag":"beta","access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"next":"^16.0.0","tsup":"^8.5.0","madge":"^8.0.0","vitest":"^4.0.6","@types/ws":"^8.18.1","@types/node":"^20.11.0","drizzle-kit":"^0.31.6","@types/micromatch":"^4.0.9","@vitest/coverage-v8":"^4.0.6"},"peerDependencies":{"next":"^15.0.0 || ^16.0.0"},"optionalDependencies":{"ws":"^8.21.0","ioredis":"^5.4.1"},"peerDependenciesMeta":{"next":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/core_0.2.0-beta.57_1782575217895_0.5679929833019524","host":"s3://npm-registry-packages-npm-production"}},"0.2.0-beta.59":{"name":"@spfn/core","version":"0.2.0-beta.59","keywords":["spfn","nextjs","backend","framework","typescript","type-safe","api","rest-api","crud","database","orm","drizzle-orm","postgres","redis","hono","fullstack","server","scalable","auto-generated","file-based-routing","transaction","repository-pattern"],"author":{"name":"Ray Im","email":"rayim@fxy.global"},"license":"MIT","_id":"@spfn/core@0.2.0-beta.59","maintainers":[{"name":"superfunction","email":"rayim@inflike.com"}],"homepage":"https://github.com/spfn/spfn/tree/main/packages/core#readme","bugs":{"url":"https://github.com/spfn/spfn/issues"},"dist":{"shasum":"d1290ee28fdabf58493e3cc707f0c4e10fe76c77","tarball":"https://registry.npmjs.org/@spfn/core/-/core-0.2.0-beta.59.tgz","fileCount":77,"integrity":"sha512-NO8jbn159TSPtoBBGoe/NHe5JKI74R1aEM/ETEIz/9ACVUOsrdooLMAU/GDVf/WqEIJRrgBGjX0TMM8SgKJCYA==","signatures":[{"sig":"MEQCIGXUkDf+u+uW08YBy9molcwUhA3DJc87EYgGCjJWE1IRAiAoFtV+VpVpA9NAAexvxl+B/2KfWUCPP1wDd46W0KXGQQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spfn%2fcore@0.2.0-beta.59","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2174577},"type":"module","_from":"file:spfn-core-0.2.0-beta.59.tgz","engines":{"node":">=18.18.0"},"exports":{"./db":{"types":"./dist/db/index.d.ts","import":"./dist/db/index.js","require":"./dist/db/index.js"},"./env":{"types":"./dist/env/index.d.ts","import":"./dist/env/index.js","require":"./dist/env/index.js"},"./job":{"types":"./dist/job/index.d.ts","import":"./dist/job/index.js","require":"./dist/job/index.js"},"./authz":{"types":"./dist/authz/index.d.ts","import":"./dist/authz/index.js","require":"./dist/authz/index.js"},"./cache":{"types":"./dist/cache/index.d.ts","import":"./dist/cache/index.js","require":"./dist/cache/index.js"},"./event":{"types":"./dist/event/index.d.ts","import":"./dist/event/index.js","require":"./dist/event/index.js"},"./route":{"types":"./dist/route/index.d.ts","import":"./dist/route/index.js","require":"./dist/route/index.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","require":"./dist/client/index.js"},"./config":{"types":"./dist/config/index.d.ts","import":"./dist/config/index.js","require":"./dist/config/index.js"},"./errors":{"types":"./dist/errors/index.d.ts","import":"./dist/errors/index.js","require":"./dist/errors/index.js"},"./logger":{"types":"./dist/logger/index.d.ts","import":"./dist/logger/index.js","require":"./dist/logger/index.js"},"./nextjs":{"types":"./dist/nextjs/index.d.ts","import":"./dist/nextjs/index.js","require":"./dist/nextjs/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./codegen":{"types":"./dist/codegen/index.d.ts","import":"./dist/codegen/index.js","require":"./dist/codegen/index.js"},"./event/ws":{"types":"./dist/event/ws/index.d.ts","import":"./dist/event/ws/index.js","require":"./dist/event/ws/index.js"},"./security":{"types":"./dist/security/index.d.ts","import":"./dist/security/index.js","require":"./dist/security/index.js"},"./event/sse":{"types":"./dist/event/sse/index.d.ts","import":"./dist/event/sse/index.js","require":"./dist/event/sse/index.js"},"./env/loader":{"types":"./dist/env/loader.d.ts","import":"./dist/env/loader.js","require":"./dist/env/loader.js"},"./middleware":{"types":"./dist/middleware/index.d.ts","import":"./dist/middleware/index.js","require":"./dist/middleware/index.js"},"./route/types":{"types":"./dist/route/types.d.ts","import":"./dist/route/types.js","require":"./dist/route/types.js"},"./nextjs/server":{"types":"./dist/nextjs/server.d.ts","import":"./dist/nextjs/server.js","require":"./dist/nextjs/server.js"},"./event/ws/client":{"types":"./dist/event/ws/client.d.ts","import":"./dist/event/ws/client.js","require":"./dist/event/ws/client.js"},"./event/sse/client":{"types":"./dist/event/sse/client.d.ts","import":"./dist/event/sse/client.js","require":"./dist/event/sse/client.js"}},"scripts":{"dev":"tsup","test":"vitest run","build":"pnpm check:circular && tsup","test:db":"vitest run src/db --config vitest.integration.config.ts","test:env":"vitest run src/env","test:cache":"vitest run src/cache --config vitest.integration.config.ts","test:route":"vitest run src/route","test:watch":"vitest","type-check":"tsc --noEmit","test:client":"vitest run src/client","test:errors":"vitest run src/errors","test:logger":"vitest run src/logger","test:server":"vitest run src/server --config vitest.integration.config.ts","test:codegen":"vitest run src/codegen","test:coverage":"vitest run --coverage","check:circular":"madge --circular --extensions ts src/","docker:test:up":"docker compose -f docker-compose.test.yml up -d","test:middleware":"vitest run src/middleware","docker:test:down":"docker compose -f docker-compose.test.yml down","docker:test:logs":"docker compose -f docker-compose.test.yml logs -f"},"_npmUser":{"name":"superfunction","email":"rayim@inflike.com"},"_resolved":"/tmp/fb08945b881e99c417c30e6cc97c38ce/spfn-core-0.2.0-beta.59.tgz","_integrity":"sha512-NO8jbn159TSPtoBBGoe/NHe5JKI74R1aEM/ETEIz/9ACVUOsrdooLMAU/GDVf/WqEIJRrgBGjX0TMM8SgKJCYA==","repository":{"url":"git+https://github.com/spfn/spfn.git","type":"git","directory":"packages/core"},"_npmVersion":"11.18.0","description":"SPFN Framework Core - File-based routing, transactions, repository pattern","directories":{},"_nodeVersion":"22.23.1","dependencies":{"zod":"^4.1.11","hono":"^4.12.25","jiti":"^2.6.1","chalk":"^5.6.2","dotenv":"^17.2.3","undici":"^7.28.0","pg-boss":"^11.1.2","chokidar":"^4.0.3","postgres":"^3.4.0","micromatch":"^4.0.8","typescript":"^5.3.3","drizzle-orm":"^0.45.2","drizzle-typebox":"^0.1.0","@hono/node-server":"^1.19.13","@sinclair/typebox":"^0.34.0"},"publishConfig":{"tag":"beta","access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"next":"^16.0.0","tsup":"^8.5.0","madge":"^8.0.0","vitest":"^4.0.6","@types/ws":"^8.18.1","@types/node":"^20.11.0","drizzle-kit":"^0.31.6","@types/micromatch":"^4.0.9","@vitest/coverage-v8":"^4.0.6"},"peerDependencies":{"next":"^15.0.0 || ^16.0.0"},"optionalDependencies":{"ws":"^8.21.0","ioredis":"^5.4.1"},"peerDependenciesMeta":{"next":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/core_0.2.0-beta.59_1782991337611_0.16794349146082732","host":"s3://npm-registry-packages-npm-production"}},"0.2.0-beta.64":{"name":"@spfn/core","version":"0.2.0-beta.64","keywords":["spfn","nextjs","backend","framework","typescript","type-safe","api","rest-api","crud","database","orm","drizzle-orm","postgres","redis","hono","fullstack","server","scalable","auto-generated","file-based-routing","transaction","repository-pattern"],"author":{"name":"Ray Im","email":"rayim@fxy.global"},"license":"MIT","_id":"@spfn/core@0.2.0-beta.64","maintainers":[{"name":"superfunction","email":"rayim@inflike.com"}],"homepage":"https://github.com/spfn/spfn/tree/main/packages/core#readme","bugs":{"url":"https://github.com/spfn/spfn/issues"},"dist":{"shasum":"ea1dad61018bd96126f01345876664068412282d","tarball":"https://registry.npmjs.org/@spfn/core/-/core-0.2.0-beta.64.tgz","fileCount":77,"integrity":"sha512-6Pwha3Q0AohZLwSGcWQHCneN/nuvdY4458xBP5ZhLh+tIImWaUE1yw59ZbsWfEe2Tbayvt2jeIurzBP8YQ4/hQ==","signatures":[{"sig":"MEMCIDSN2ZAHDrEHJsKUoXGmVO010C2dXpbILolkoI5hltm/Ah90egkHXXK67scoaswadK8F1MXFZsRc7nrc4pNGUb3j","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spfn%2fcore@0.2.0-beta.64","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2201717},"type":"module","engines":{"node":">=18.18.0"},"exports":{"./db":{"types":"./dist/db/index.d.ts","import":"./dist/db/index.js","require":"./dist/db/index.js"},"./env":{"types":"./dist/env/index.d.ts","import":"./dist/env/index.js","require":"./dist/env/index.js"},"./job":{"types":"./dist/job/index.d.ts","import":"./dist/job/index.js","require":"./dist/job/index.js"},"./authz":{"types":"./dist/authz/index.d.ts","import":"./dist/authz/index.js","require":"./dist/authz/index.js"},"./cache":{"types":"./dist/cache/index.d.ts","import":"./dist/cache/index.js","require":"./dist/cache/index.js"},"./event":{"types":"./dist/event/index.d.ts","import":"./dist/event/index.js","require":"./dist/event/index.js"},"./route":{"types":"./dist/route/index.d.ts","import":"./dist/route/index.js","require":"./dist/route/index.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","require":"./dist/client/index.js"},"./config":{"types":"./dist/config/index.d.ts","import":"./dist/config/index.js","require":"./dist/config/index.js"},"./errors":{"types":"./dist/errors/index.d.ts","import":"./dist/errors/index.js","require":"./dist/errors/index.js"},"./logger":{"types":"./dist/logger/index.d.ts","import":"./dist/logger/index.js","require":"./dist/logger/index.js"},"./nextjs":{"types":"./dist/nextjs/index.d.ts","import":"./dist/nextjs/index.js","require":"./dist/nextjs/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./codegen":{"types":"./dist/codegen/index.d.ts","import":"./dist/codegen/index.js","require":"./dist/codegen/index.js"},"./event/ws":{"types":"./dist/event/ws/index.d.ts","import":"./dist/event/ws/index.js","require":"./dist/event/ws/index.js"},"./security":{"types":"./dist/security/index.d.ts","import":"./dist/security/index.js","require":"./dist/security/index.js"},"./event/sse":{"types":"./dist/event/sse/index.d.ts","import":"./dist/event/sse/index.js","require":"./dist/event/sse/index.js"},"./env/loader":{"types":"./dist/env/loader.d.ts","import":"./dist/env/loader.js","require":"./dist/env/loader.js"},"./middleware":{"types":"./dist/middleware/index.d.ts","import":"./dist/middleware/index.js","require":"./dist/middleware/index.js"},"./route/types":{"types":"./dist/route/types.d.ts","import":"./dist/route/types.js","require":"./dist/route/types.js"},"./nextjs/server":{"types":"./dist/nextjs/server.d.ts","import":"./dist/nextjs/server.js","require":"./dist/nextjs/server.js"},"./event/ws/client":{"types":"./dist/event/ws/client.d.ts","import":"./dist/event/ws/client.js","require":"./dist/event/ws/client.js"},"./event/sse/client":{"types":"./dist/event/sse/client.d.ts","import":"./dist/event/sse/client.js","require":"./dist/event/sse/client.js"}},"gitHead":"185f265bbc1a04dcdaded39e18c2dc13b76e9292","scripts":{"dev":"tsup","test":"vitest run","build":"pnpm check:circular && tsup","prepack":"node -e \"require('fs').copyFileSync('../../LICENSE','LICENSE')\"","test:db":"vitest run src/db --config vitest.integration.config.ts","test:env":"vitest run src/env","test:cache":"vitest run src/cache --config vitest.integration.config.ts","test:route":"vitest run src/route","test:watch":"vitest","type-check":"tsc --noEmit","test:client":"vitest run src/client","test:errors":"vitest run src/errors","test:logger":"vitest run src/logger","test:server":"vitest run src/server --config vitest.integration.config.ts","publish:beta":"npm publish --access public --tag beta","test:codegen":"vitest run src/codegen","publish:alpha":"npm publish --access public --tag alpha","test:coverage":"vitest run --coverage","check:circular":"madge --circular --extensions ts src/","docker:test:up":"docker compose -f docker-compose.test.yml up -d","publish:latest":"npm publish --access public","test:middleware":"vitest run src/middleware","docker:test:down":"docker compose -f docker-compose.test.yml down","docker:test:logs":"docker compose -f docker-compose.test.yml logs -f"},"_npmUser":{"name":"superfunction","email":"rayim@inflike.com"},"repository":{"url":"git+https://github.com/spfn/spfn.git","type":"git","directory":"packages/core"},"_npmVersion":"12.0.1","description":"SPFN Framework Core - File-based routing, transactions, repository pattern","directories":{},"_nodeVersion":"22.23.1","dependencies":{"zod":"^4.1.11","hono":"^4.12.25","jiti":"^2.6.1","chalk":"^5.6.2","dotenv":"^17.2.3","undici":"^7.28.0","pg-boss":"^11.1.2","chokidar":"^4.0.3","postgres":"^3.4.0","micromatch":"^4.0.8","typescript":"^5.3.3","drizzle-orm":"^0.45.2","drizzle-typebox":"^0.1.0","@hono/node-server":"^1.19.13","@sinclair/typebox":"^0.34.0"},"publishConfig":{"tag":"beta","access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"next":"^16.0.0","tsup":"^8.5.0","madge":"^8.0.0","vitest":"^4.0.6","@types/ws":"^8.18.1","@types/node":"^20.11.0","drizzle-kit":"^0.31.6","@types/micromatch":"^4.0.9","@vitest/coverage-v8":"^4.0.6"},"peerDependencies":{"next":"^15.0.0 || ^16.0.0"},"optionalDependencies":{"ws":"^8.21.0","ioredis":"^5.4.1"},"peerDependenciesMeta":{"next":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/core_0.2.0-beta.64_1784703022210_0.7849720371585149","host":"s3://npm-registry-packages-npm-production"}},"0.2.0-beta.66":{"name":"@spfn/core","version":"0.2.0-beta.66","keywords":["spfn","nextjs","backend","framework","typescript","type-safe","api","rest-api","crud","database","orm","drizzle-orm","postgres","redis","hono","fullstack","server","scalable","auto-generated","file-based-routing","transaction","repository-pattern"],"author":{"name":"Ray Im","email":"rayim@fxy.global"},"license":"MIT","_id":"@spfn/core@0.2.0-beta.66","maintainers":[{"name":"superfunction","email":"rayim@inflike.com"}],"homepage":"https://github.com/fxylabs/spfn/tree/main/packages/core#readme","bugs":{"url":"https://github.com/fxylabs/spfn/issues"},"dist":{"shasum":"c6226eb4243dbdb79feec8fd0c412a93d0383066","tarball":"https://registry.npmjs.org/@spfn/core/-/core-0.2.0-beta.66.tgz","fileCount":77,"integrity":"sha512-yMWlBqXyRd5Py1Pms3A7M2TDr3a1sC3EKEmPwte0eAlwwq8wKlH+LdimmZOdSX17hxhnW7XGH4Mf7UcDU8Dizg==","signatures":[{"sig":"MEUCIQDGG9ROzuASI0m6Frf6zRUoOoQtSrTSTIBjIbp9B11PogIgcYOoqwts802rTkQWiYPdCzUoih1QfARRRnVJVXcphh0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spfn%2fcore@0.2.0-beta.66","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2228235},"type":"module","engines":{"node":">=18.18.0"},"exports":{"./db":{"types":"./dist/db/index.d.ts","import":"./dist/db/index.js","require":"./dist/db/index.js"},"./env":{"types":"./dist/env/index.d.ts","import":"./dist/env/index.js","require":"./dist/env/index.js"},"./job":{"types":"./dist/job/index.d.ts","import":"./dist/job/index.js","require":"./dist/job/index.js"},"./authz":{"types":"./dist/authz/index.d.ts","import":"./dist/authz/index.js","require":"./dist/authz/index.js"},"./cache":{"types":"./dist/cache/index.d.ts","import":"./dist/cache/index.js","require":"./dist/cache/index.js"},"./event":{"types":"./dist/event/index.d.ts","import":"./dist/event/index.js","require":"./dist/event/index.js"},"./route":{"types":"./dist/route/index.d.ts","import":"./dist/route/index.js","require":"./dist/route/index.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","require":"./dist/client/index.js"},"./config":{"types":"./dist/config/index.d.ts","import":"./dist/config/index.js","require":"./dist/config/index.js"},"./errors":{"types":"./dist/errors/index.d.ts","import":"./dist/errors/index.js","require":"./dist/errors/index.js"},"./logger":{"types":"./dist/logger/index.d.ts","import":"./dist/logger/index.js","require":"./dist/logger/index.js"},"./nextjs":{"types":"./dist/nextjs/index.d.ts","import":"./dist/nextjs/index.js","require":"./dist/nextjs/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./codegen":{"types":"./dist/codegen/index.d.ts","import":"./dist/codegen/index.js","require":"./dist/codegen/index.js"},"./event/ws":{"types":"./dist/event/ws/index.d.ts","import":"./dist/event/ws/index.js","require":"./dist/event/ws/index.js"},"./security":{"types":"./dist/security/index.d.ts","import":"./dist/security/index.js","require":"./dist/security/index.js"},"./event/sse":{"types":"./dist/event/sse/index.d.ts","import":"./dist/event/sse/index.js","require":"./dist/event/sse/index.js"},"./env/loader":{"types":"./dist/env/loader.d.ts","import":"./dist/env/loader.js","require":"./dist/env/loader.js"},"./middleware":{"types":"./dist/middleware/index.d.ts","import":"./dist/middleware/index.js","require":"./dist/middleware/index.js"},"./route/types":{"types":"./dist/route/types.d.ts","import":"./dist/route/types.js","require":"./dist/route/types.js"},"./nextjs/server":{"types":"./dist/nextjs/server.d.ts","import":"./dist/nextjs/server.js","require":"./dist/nextjs/server.js"},"./event/ws/client":{"types":"./dist/event/ws/client.d.ts","import":"./dist/event/ws/client.js","require":"./dist/event/ws/client.js"},"./event/sse/client":{"types":"./dist/event/sse/client.d.ts","import":"./dist/event/sse/client.js","require":"./dist/event/sse/client.js"}},"gitHead":"4a09250c7a88158aacb0bd5559cf36347a06e2a9","scripts":{"dev":"tsup","test":"vitest run","build":"pnpm check:circular && tsup","prepack":"node -e \"require('fs').copyFileSync('../../LICENSE','LICENSE')\"","test:db":"vitest run src/db --config vitest.integration.config.ts","test:env":"vitest run src/env","test:cache":"vitest run src/cache --config vitest.integration.config.ts","test:route":"vitest run src/route","test:watch":"vitest","type-check":"tsc --noEmit","test:client":"vitest run src/client","test:errors":"vitest run src/errors","test:logger":"vitest run src/logger","test:server":"vitest run src/server --config vitest.integration.config.ts","publish:beta":"npm publish --access public --tag beta","test:codegen":"vitest run src/codegen","publish:alpha":"npm publish --access public --tag alpha","test:coverage":"vitest run --coverage","check:circular":"madge --circular --extensions ts src/","docker:test:up":"docker compose -f docker-compose.test.yml up -d","publish:latest":"npm publish --access public","test:middleware":"vitest run src/middleware","docker:test:down":"docker compose -f docker-compose.test.yml down","docker:test:logs":"docker compose -f docker-compose.test.yml logs -f"},"_npmUser":{"name":"superfunction","email":"rayim@inflike.com"},"repository":{"url":"git+https://github.com/fxylabs/spfn.git","type":"git","directory":"packages/core"},"_npmVersion":"12.0.1","description":"SPFN Framework Core - File-based routing, transactions, repository pattern","directories":{},"_nodeVersion":"22.23.1","dependencies":{"zod":"^4.4.3","hono":"^4.12.25","jiti":"^2.6.1","chalk":"^5.6.2","dotenv":"^17.2.3","undici":"^7.28.0","pg-boss":"^11.1.2","chokidar":"^4.0.3","postgres":"^3.4.0","micromatch":"^4.0.8","typescript":"^5.3.3","drizzle-typebox":"^0.3.3","@hono/node-server":"^1.19.13","@sinclair/typebox":"^0.34.0"},"publishConfig":{"tag":"beta","access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"next":"^16.0.0","tsup":"^8.5.0","madge":"^8.0.0","vitest":"^4.0.6","@types/ws":"^8.18.1","@types/node":"^20.11.0","drizzle-kit":"1.0.0-rc.4","drizzle-orm":"1.0.0-rc.4","@types/micromatch":"^4.0.9","@vitest/coverage-v8":"^4.0.6","@electric-sql/pglite":"0.5.4"},"peerDependencies":{"next":"^15.0.0 || ^16.0.0","drizzle-orm":">=1.0.0-rc.4 <2"},"optionalDependencies":{"ws":"^8.21.0","ioredis":"^5.4.1"},"peerDependenciesMeta":{"next":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/core_0.2.0-beta.66_1784827565846_0.34555810826030653","host":"s3://npm-registry-packages-npm-production"}},"0.2.0-beta.67":{"name":"@spfn/core","version":"0.2.0-beta.67","keywords":["spfn","nextjs","backend","framework","typescript","type-safe","api","rest-api","crud","database","orm","drizzle-orm","postgres","redis","hono","fullstack","server","scalable","auto-generated","file-based-routing","transaction","repository-pattern"],"author":{"name":"Ray Im","email":"rayim@fxy.global"},"license":"MIT","_id":"@spfn/core@0.2.0-beta.67","maintainers":[{"name":"superfunction","email":"rayim@inflike.com"}],"homepage":"https://github.com/fxylabs/spfn/tree/main/packages/core#readme","bugs":{"url":"https://github.com/fxylabs/spfn/issues"},"dist":{"shasum":"f57fdb0a04b7bd054dd4d12583b98cd9560c98a4","tarball":"https://registry.npmjs.org/@spfn/core/-/core-0.2.0-beta.67.tgz","fileCount":77,"integrity":"sha512-+B/jWJEC3IJNtenxoMmznfX2Wo0sQ7qC4Bn/AdGW/2/oTV5SvQ7RUG/Ie9DJxSKNqr0aN82zvKwnzqRYVqT0Fw==","signatures":[{"sig":"MEUCICDoTPvf3qn6LWbcq8KWblNLI0Tx5kqfQKBclCfCXnEDAiEAsIgkqj6a+wKCmWDfhuzaKqMyBMhASfSIZ6sDmw54qWI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spfn%2fcore@0.2.0-beta.67","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2229209},"type":"module","engines":{"node":">=18.18.0"},"exports":{"./db":{"types":"./dist/db/index.d.ts","import":"./dist/db/index.js","require":"./dist/db/index.js"},"./env":{"types":"./dist/env/index.d.ts","import":"./dist/env/index.js","require":"./dist/env/index.js"},"./job":{"types":"./dist/job/index.d.ts","import":"./dist/job/index.js","require":"./dist/job/index.js"},"./authz":{"types":"./dist/authz/index.d.ts","import":"./dist/authz/index.js","require":"./dist/authz/index.js"},"./cache":{"types":"./dist/cache/index.d.ts","import":"./dist/cache/index.js","require":"./dist/cache/index.js"},"./event":{"types":"./dist/event/index.d.ts","import":"./dist/event/index.js","require":"./dist/event/index.js"},"./route":{"types":"./dist/route/index.d.ts","import":"./dist/route/index.js","require":"./dist/route/index.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","require":"./dist/client/index.js"},"./config":{"types":"./dist/config/index.d.ts","import":"./dist/config/index.js","require":"./dist/config/index.js"},"./errors":{"types":"./dist/errors/index.d.ts","import":"./dist/errors/index.js","require":"./dist/errors/index.js"},"./logger":{"types":"./dist/logger/index.d.ts","import":"./dist/logger/index.js","require":"./dist/logger/index.js"},"./nextjs":{"types":"./dist/nextjs/index.d.ts","import":"./dist/nextjs/index.js","require":"./dist/nextjs/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./codegen":{"types":"./dist/codegen/index.d.ts","import":"./dist/codegen/index.js","require":"./dist/codegen/index.js"},"./event/ws":{"types":"./dist/event/ws/index.d.ts","import":"./dist/event/ws/index.js","require":"./dist/event/ws/index.js"},"./security":{"types":"./dist/security/index.d.ts","import":"./dist/security/index.js","require":"./dist/security/index.js"},"./event/sse":{"types":"./dist/event/sse/index.d.ts","import":"./dist/event/sse/index.js","require":"./dist/event/sse/index.js"},"./env/loader":{"types":"./dist/env/loader.d.ts","import":"./dist/env/loader.js","require":"./dist/env/loader.js"},"./middleware":{"types":"./dist/middleware/index.d.ts","import":"./dist/middleware/index.js","require":"./dist/middleware/index.js"},"./route/types":{"types":"./dist/route/types.d.ts","import":"./dist/route/types.js","require":"./dist/route/types.js"},"./nextjs/server":{"types":"./dist/nextjs/server.d.ts","import":"./dist/nextjs/server.js","require":"./dist/nextjs/server.js"},"./event/ws/client":{"types":"./dist/event/ws/client.d.ts","import":"./dist/event/ws/client.js","require":"./dist/event/ws/client.js"},"./event/sse/client":{"types":"./dist/event/sse/client.d.ts","import":"./dist/event/sse/client.js","require":"./dist/event/sse/client.js"}},"gitHead":"c54939903e8a2c08747685b9cd218d8bc399efb6","scripts":{"dev":"tsup","test":"vitest run","build":"pnpm check:circular && tsup","prepack":"node -e \"require('fs').copyFileSync('../../LICENSE','LICENSE')\"","test:db":"vitest run src/db --config vitest.integration.config.ts","test:env":"vitest run src/env","test:cache":"vitest run src/cache --config vitest.integration.config.ts","test:route":"vitest run src/route","test:watch":"vitest","type-check":"tsc --noEmit","test:client":"vitest run src/client","test:errors":"vitest run src/errors","test:logger":"vitest run src/logger","test:server":"vitest run src/server --config vitest.integration.config.ts","publish:beta":"npm publish --access public --tag beta","test:codegen":"vitest run src/codegen","publish:alpha":"npm publish --access public --tag alpha","test:coverage":"vitest run --coverage","check:circular":"madge --circular --extensions ts src/","docker:test:up":"docker compose -f docker-compose.test.yml up -d","publish:latest":"npm publish --access public","test:middleware":"vitest run src/middleware","docker:test:down":"docker compose -f docker-compose.test.yml down","docker:test:logs":"docker compose -f docker-compose.test.yml logs -f"},"_npmUser":{"name":"superfunction","email":"rayim@inflike.com"},"repository":{"url":"git+https://github.com/fxylabs/spfn.git","type":"git","directory":"packages/core"},"_npmVersion":"12.0.2","description":"SPFN Framework Core - File-based routing, transactions, repository pattern","directories":{},"_nodeVersion":"22.23.1","dependencies":{"zod":"^4.4.3","hono":"^4.12.25","jiti":"^2.6.1","chalk":"^5.6.2","dotenv":"^17.2.3","undici":"^7.28.0","pg-boss":"^11.1.2","chokidar":"^4.0.3","postgres":"^3.4.0","micromatch":"^4.0.8","typescript":"^5.3.3","drizzle-typebox":"^0.3.3","@hono/node-server":"^1.19.13","@sinclair/typebox":"^0.34.0"},"publishConfig":{"tag":"beta","access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"next":"^16.0.0","tsup":"^8.5.0","madge":"^8.0.0","vitest":"^4.0.6","@types/ws":"^8.18.1","@types/node":"^20.11.0","drizzle-kit":"1.0.0-rc.4","drizzle-orm":"1.0.0-rc.4","@types/micromatch":"^4.0.9","@vitest/coverage-v8":"^4.0.6","@electric-sql/pglite":"0.5.4"},"peerDependencies":{"next":"^15.0.0 || ^16.0.0","drizzle-orm":">=1.0.0-rc.4 <2"},"optionalDependencies":{"ws":"^8.21.0","ioredis":"^5.4.1"},"peerDependenciesMeta":{"next":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/core_0.2.0-beta.67_1785589835752_0.018511458789820523","host":"s3://npm-registry-packages-npm-production"}},"0.2.0-beta.68":{"name":"@spfn/core","version":"0.2.0-beta.68","keywords":["spfn","nextjs","backend","framework","typescript","type-safe","api","rest-api","crud","database","orm","drizzle-orm","postgres","redis","hono","fullstack","server","scalable","auto-generated","file-based-routing","transaction","repository-pattern"],"author":{"name":"Ray Im","email":"rayim@fxy.global"},"license":"MIT","_id":"@spfn/core@0.2.0-beta.68","maintainers":[{"name":"superfunction","email":"rayim@inflike.com"}],"homepage":"https://github.com/fxylabs/spfn/tree/main/packages/core#readme","bugs":{"url":"https://github.com/fxylabs/spfn/issues"},"dist":{"shasum":"f2aba45965c69f8c44a7d66ef28b7d2aa4314715","tarball":"https://registry.npmjs.org/@spfn/core/-/core-0.2.0-beta.68.tgz","fileCount":81,"integrity":"sha512-DGgEE2PuR/hIxpSZhOq3iG59j+0Uc22vz4ZsncjHrZin7wr9XjUrh6EriZSA0yIKU3e85fPxT8+LKS/tZ0bc+A==","signatures":[{"sig":"MEUCIQDZgK2jRAG+6sYcaOOl7pnP0v5lhYwykairRurltn+44gIgcBTP2vmzpI98WGssfTWcXqUW7oZDcsXXiQRylZv3uNw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spfn%2fcore@0.2.0-beta.68","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2492064},"type":"module","engines":{"node":">=18.18.0"},"exports":{"./db":{"types":"./dist/db/index.d.ts","import":"./dist/db/index.js","require":"./dist/db/index.js"},"./env":{"types":"./dist/env/index.d.ts","import":"./dist/env/index.js","require":"./dist/env/index.js"},"./job":{"types":"./dist/job/index.d.ts","import":"./dist/job/index.js","require":"./dist/job/index.js"},"./authz":{"types":"./dist/authz/index.d.ts","import":"./dist/authz/index.js","require":"./dist/authz/index.js"},"./cache":{"types":"./dist/cache/index.d.ts","import":"./dist/cache/index.js","require":"./dist/cache/index.js"},"./event":{"types":"./dist/event/index.d.ts","import":"./dist/event/index.js","require":"./dist/event/index.js"},"./route":{"types":"./dist/route/index.d.ts","import":"./dist/route/index.js","require":"./dist/route/index.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","require":"./dist/client/index.js"},"./config":{"types":"./dist/config/index.d.ts","import":"./dist/config/index.js","require":"./dist/config/index.js"},"./errors":{"types":"./dist/errors/index.d.ts","import":"./dist/errors/index.js","require":"./dist/errors/index.js"},"./logger":{"types":"./dist/logger/index.d.ts","import":"./dist/logger/index.js","require":"./dist/logger/index.js"},"./nextjs":{"types":"./dist/nextjs/index.d.ts","import":"./dist/nextjs/index.js","require":"./dist/nextjs/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./codegen":{"types":"./dist/codegen/index.d.ts","import":"./dist/codegen/index.js","require":"./dist/codegen/index.js"},"./contract":{"types":"./dist/contract/index.d.ts","import":"./dist/contract/index.js","require":"./dist/contract/index.js"},"./event/ws":{"types":"./dist/event/ws/index.d.ts","import":"./dist/event/ws/index.js","require":"./dist/event/ws/index.js"},"./security":{"types":"./dist/security/index.d.ts","import":"./dist/security/index.js","require":"./dist/security/index.js"},"./event/sse":{"types":"./dist/event/sse/index.d.ts","import":"./dist/event/sse/index.js","require":"./dist/event/sse/index.js"},"./env/loader":{"types":"./dist/env/loader.d.ts","import":"./dist/env/loader.js","require":"./dist/env/loader.js"},"./middleware":{"types":"./dist/middleware/index.d.ts","import":"./dist/middleware/index.js","require":"./dist/middleware/index.js"},"./route/types":{"types":"./dist/route/types.d.ts","import":"./dist/route/types.js","require":"./dist/route/types.js"},"./nextjs/server":{"types":"./dist/nextjs/server.d.ts","import":"./dist/nextjs/server.js","require":"./dist/nextjs/server.js"},"./event/ws/client":{"types":"./dist/event/ws/client.d.ts","import":"./dist/event/ws/client.js","require":"./dist/event/ws/client.js"},"./event/sse/client":{"types":"./dist/event/sse/client.d.ts","import":"./dist/event/sse/client.js","require":"./dist/event/sse/client.js"}},"gitHead":"ca8000ded77e7d22536a5bbbec21fbe10e32206c","scripts":{"dev":"tsup","test":"vitest run","build":"pnpm check:circular && tsup","prepack":"node -e \"require('fs').copyFileSync('../../LICENSE','LICENSE')\"","test:db":"vitest run src/db --config vitest.integration.config.ts","test:env":"vitest run src/env","test:cache":"vitest run src/cache --config vitest.integration.config.ts","test:route":"vitest run src/route","test:watch":"vitest","type-check":"tsc --noEmit","test:client":"vitest run src/client","test:errors":"vitest run src/errors","test:logger":"vitest run src/logger","test:server":"vitest run src/server --config vitest.integration.config.ts","publish:beta":"node ../../scripts/publish-package.mjs beta","test:codegen":"vitest run src/codegen","publish:alpha":"node ../../scripts/publish-package.mjs alpha","test:coverage":"vitest run --coverage","check:circular":"madge --circular --extensions ts src/","publish:latest":"node ../../scripts/publish-package.mjs latest","test:middleware":"vitest run src/middleware"},"_npmUser":{"name":"superfunction","email":"rayim@inflike.com"},"repository":{"url":"git+https://github.com/fxylabs/spfn.git","type":"git","directory":"packages/core"},"_npmVersion":"12.0.2","description":"SPFN Framework Core - File-based routing, transactions, repository pattern","directories":{},"_nodeVersion":"22.23.1","dependencies":{"zod":"^4.4.3","hono":"^4.12.25","jiti":"^2.6.1","chalk":"^5.6.2","dotenv":"^17.2.3","undici":"^7.28.0","pg-boss":"^11.1.2","chokidar":"^4.0.3","postgres":"^3.4.0","micromatch":"^4.0.8","typescript":"^5.3.3","drizzle-typebox":"^0.3.3","@hono/node-server":"^1.19.13","@sinclair/typebox":"^0.34.0"},"publishConfig":{"tag":"beta","access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"next":"^16.2.11","tsup":"^8.5.0","madge":"^8.0.0","vitest":"^4.0.6","@types/ws":"^8.18.1","@types/node":"^20.11.0","drizzle-kit":"1.0.0-rc.4","drizzle-orm":"1.0.0-rc.4","@types/micromatch":"^4.0.9","@vitest/coverage-v8":"^4.0.6","@electric-sql/pglite":"0.5.4"},"peerDependencies":{"next":"^16.2.11","drizzle-orm":">=1.0.0-rc.4 <2"},"optionalDependencies":{"ws":"^8.21.0","ioredis":"^5.4.1"},"peerDependenciesMeta":{"next":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/core_0.2.0-beta.68_1785913581259_0.9653078591113389","host":"s3://npm-registry-packages-npm-production"}},"0.2.0-beta.69":{"name":"@spfn/core","version":"0.2.0-beta.69","keywords":["spfn","nextjs","backend","framework","typescript","type-safe","api","rest-api","crud","database","orm","drizzle-orm","postgres","redis","hono","fullstack","server","scalable","auto-generated","file-based-routing","transaction","repository-pattern"],"author":{"name":"Ray Im","email":"rayim@fxy.global"},"license":"MIT","_id":"@spfn/core@0.2.0-beta.69","maintainers":[{"name":"superfunction","email":"rayim@inflike.com"}],"homepage":"https://github.com/fxylabs/spfn/tree/main/packages/core#readme","bugs":{"url":"https://github.com/fxylabs/spfn/issues"},"dist":{"shasum":"4466cda978b0473e938d6c351db6fea60156066d","tarball":"https://registry.npmjs.org/@spfn/core/-/core-0.2.0-beta.69.tgz","fileCount":81,"integrity":"sha512-tMMS/B3pQFmtrrbw1SRt2yWKvtGE6OPGRIjzjpYQnCJB+jptKJSoTDRr0ftrfgpRkeuaX2CixP55nIH69if2hg==","signatures":[{"sig":"MEYCIQCx83sPd2yd99J54nCJn2Z8IPNGHeCvvyupAkAfun+8OQIhAIs9G7vvG/48EFj6/qP9eSjb2g3ssL593uZ3O+9i0i2Q","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spfn%2fcore@0.2.0-beta.69","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2503396},"type":"module","engines":{"node":">=18.18.0"},"exports":{"./db":{"types":"./dist/db/index.d.ts","import":"./dist/db/index.js","require":"./dist/db/index.js"},"./env":{"types":"./dist/env/index.d.ts","import":"./dist/env/index.js","require":"./dist/env/index.js"},"./job":{"types":"./dist/job/index.d.ts","import":"./dist/job/index.js","require":"./dist/job/index.js"},"./authz":{"types":"./dist/authz/index.d.ts","import":"./dist/authz/index.js","require":"./dist/authz/index.js"},"./cache":{"types":"./dist/cache/index.d.ts","import":"./dist/cache/index.js","require":"./dist/cache/index.js"},"./event":{"types":"./dist/event/index.d.ts","import":"./dist/event/index.js","require":"./dist/event/index.js"},"./route":{"types":"./dist/route/index.d.ts","import":"./dist/route/index.js","require":"./dist/route/index.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","require":"./dist/client/index.js"},"./config":{"types":"./dist/config/index.d.ts","import":"./dist/config/index.js","require":"./dist/config/index.js"},"./errors":{"types":"./dist/errors/index.d.ts","import":"./dist/errors/index.js","require":"./dist/errors/index.js"},"./logger":{"types":"./dist/logger/index.d.ts","import":"./dist/logger/index.js","require":"./dist/logger/index.js"},"./nextjs":{"types":"./dist/nextjs/index.d.ts","import":"./dist/nextjs/index.js","require":"./dist/nextjs/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./codegen":{"types":"./dist/codegen/index.d.ts","import":"./dist/codegen/index.js","require":"./dist/codegen/index.js"},"./contract":{"types":"./dist/contract/index.d.ts","import":"./dist/contract/index.js","require":"./dist/contract/index.js"},"./event/ws":{"types":"./dist/event/ws/index.d.ts","import":"./dist/event/ws/index.js","require":"./dist/event/ws/index.js"},"./security":{"types":"./dist/security/index.d.ts","import":"./dist/security/index.js","require":"./dist/security/index.js"},"./event/sse":{"types":"./dist/event/sse/index.d.ts","import":"./dist/event/sse/index.js","require":"./dist/event/sse/index.js"},"./env/loader":{"types":"./dist/env/loader.d.ts","import":"./dist/env/loader.js","require":"./dist/env/loader.js"},"./middleware":{"types":"./dist/middleware/index.d.ts","import":"./dist/middleware/index.js","require":"./dist/middleware/index.js"},"./route/types":{"types":"./dist/route/types.d.ts","import":"./dist/route/types.js","require":"./dist/route/types.js"},"./nextjs/server":{"types":"./dist/nextjs/server.d.ts","import":"./dist/nextjs/server.js","require":"./dist/nextjs/server.js"},"./event/ws/client":{"types":"./dist/event/ws/client.d.ts","import":"./dist/event/ws/client.js","require":"./dist/event/ws/client.js"},"./event/sse/client":{"types":"./dist/event/sse/client.d.ts","import":"./dist/event/sse/client.js","require":"./dist/event/sse/client.js"}},"gitHead":"871c8087221ff92a15465c5ffbb0f2a54a7f3952","scripts":{"dev":"tsup","test":"vitest run","build":"pnpm check:circular && tsup","prepack":"node -e \"require('fs').copyFileSync('../../LICENSE','LICENSE')\"","test:db":"vitest run src/db --config vitest.integration.config.ts","test:env":"vitest run src/env","test:cache":"vitest run src/cache --config vitest.integration.config.ts","test:route":"vitest run src/route","test:watch":"vitest","type-check":"tsc --noEmit","test:client":"vitest run src/client","test:errors":"vitest run src/errors","test:logger":"vitest run src/logger","test:server":"vitest run src/server --config vitest.integration.config.ts","publish:beta":"node ../../scripts/publish-package.mjs beta","test:codegen":"vitest run src/codegen","publish:alpha":"node ../../scripts/publish-package.mjs alpha","test:coverage":"vitest run --coverage","check:circular":"madge --circular --extensions ts src/","publish:latest":"node ../../scripts/publish-package.mjs latest","test:middleware":"vitest run src/middleware"},"_npmUser":{"name":"superfunction","email":"rayim@inflike.com"},"repository":{"url":"git+https://github.com/fxylabs/spfn.git","type":"git","directory":"packages/core"},"_npmVersion":"12.0.2","description":"SPFN Framework Core - File-based routing, transactions, repository pattern","directories":{},"_nodeVersion":"22.23.1","dependencies":{"zod":"^4.4.3","hono":"^4.12.25","jiti":"^2.6.1","chalk":"^5.6.2","dotenv":"^17.2.3","undici":"^7.28.0","pg-boss":"^11.1.2","chokidar":"^4.0.3","postgres":"^3.4.0","micromatch":"^4.0.8","typescript":"^5.3.3","drizzle-typebox":"^0.3.3","@hono/node-server":"^1.19.13","@sinclair/typebox":"^0.34.0"},"publishConfig":{"tag":"beta","access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"next":"^16.2.11","tsup":"^8.5.0","madge":"^8.0.0","vitest":"^4.0.6","@types/ws":"^8.18.1","@types/node":"^20.11.0","drizzle-kit":"1.0.0-rc.4","drizzle-orm":"1.0.0-rc.4","@types/micromatch":"^4.0.9","@vitest/coverage-v8":"^4.0.6","@electric-sql/pglite":"0.5.4"},"peerDependencies":{"next":"^16.2.11","drizzle-orm":">=1.0.0-rc.4 <2"},"optionalDependencies":{"ws":"^8.21.0","ioredis":"^5.4.1"},"peerDependenciesMeta":{"next":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/core_0.2.0-beta.69_1785925194044_0.7314258757210585","host":"s3://npm-registry-packages-npm-production"}},"0.2.0-beta.70":{"name":"@spfn/core","version":"0.2.0-beta.70","keywords":["spfn","nextjs","backend","framework","typescript","type-safe","api","rest-api","crud","database","orm","drizzle-orm","postgres","redis","hono","fullstack","full-stack-framework","ai-coding-agent","claude-code","file-based-routing","transaction","repository-pattern"],"author":{"name":"Ray Im","email":"rayim@fxy.global"},"license":"MIT","_id":"@spfn/core@0.2.0-beta.70","maintainers":[{"name":"superfunction","email":"rayim@inflike.com"}],"homepage":"https://github.com/fxylabs/spfn/tree/main/packages/core#readme","bugs":{"url":"https://github.com/fxylabs/spfn/issues"},"dist":{"shasum":"4771f8cacceef47ba151ee226e7fc8cb3d8afdbf","tarball":"https://registry.npmjs.org/@spfn/core/-/core-0.2.0-beta.70.tgz","fileCount":81,"integrity":"sha512-uFMhUSYF4fym4LHIUGV/SAkEcd0EPXGe74S8jTx5Ay86Pr6LqoWpKCAEGIv4/4R6Nli5ZGmfuxHcJQ7CA+h8PA==","signatures":[{"sig":"MEUCIBQhk5ZNBEhaNuyITOTV0EhfqRtigAD+3ozecvyU9U3NAiEAsctl/jBIzhmuU4xFqNZvTwQKZVHoQiHvnXr29Kfw6GI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spfn%2fcore@0.2.0-beta.70","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2503961},"type":"module","engines":{"node":">=18.18.0"},"exports":{"./db":{"types":"./dist/db/index.d.ts","import":"./dist/db/index.js","require":"./dist/db/index.js"},"./env":{"types":"./dist/env/index.d.ts","import":"./dist/env/index.js","require":"./dist/env/index.js"},"./job":{"types":"./dist/job/index.d.ts","import":"./dist/job/index.js","require":"./dist/job/index.js"},"./authz":{"types":"./dist/authz/index.d.ts","import":"./dist/authz/index.js","require":"./dist/authz/index.js"},"./cache":{"types":"./dist/cache/index.d.ts","import":"./dist/cache/index.js","require":"./dist/cache/index.js"},"./event":{"types":"./dist/event/index.d.ts","import":"./dist/event/index.js","require":"./dist/event/index.js"},"./route":{"types":"./dist/route/index.d.ts","import":"./dist/route/index.js","require":"./dist/route/index.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","require":"./dist/client/index.js"},"./config":{"types":"./dist/config/index.d.ts","import":"./dist/config/index.js","require":"./dist/config/index.js"},"./errors":{"types":"./dist/errors/index.d.ts","import":"./dist/errors/index.js","require":"./dist/errors/index.js"},"./logger":{"types":"./dist/logger/index.d.ts","import":"./dist/logger/index.js","require":"./dist/logger/index.js"},"./nextjs":{"types":"./dist/nextjs/index.d.ts","import":"./dist/nextjs/index.js","require":"./dist/nextjs/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./codegen":{"types":"./dist/codegen/index.d.ts","import":"./dist/codegen/index.js","require":"./dist/codegen/index.js"},"./contract":{"types":"./dist/contract/index.d.ts","import":"./dist/contract/index.js","require":"./dist/contract/index.js"},"./event/ws":{"types":"./dist/event/ws/index.d.ts","import":"./dist/event/ws/index.js","require":"./dist/event/ws/index.js"},"./security":{"types":"./dist/security/index.d.ts","import":"./dist/security/index.js","require":"./dist/security/index.js"},"./event/sse":{"types":"./dist/event/sse/index.d.ts","import":"./dist/event/sse/index.js","require":"./dist/event/sse/index.js"},"./env/loader":{"types":"./dist/env/loader.d.ts","import":"./dist/env/loader.js","require":"./dist/env/loader.js"},"./middleware":{"types":"./dist/middleware/index.d.ts","import":"./dist/middleware/index.js","require":"./dist/middleware/index.js"},"./route/types":{"types":"./dist/route/types.d.ts","import":"./dist/route/types.js","require":"./dist/route/types.js"},"./nextjs/server":{"types":"./dist/nextjs/server.d.ts","import":"./dist/nextjs/server.js","require":"./dist/nextjs/server.js"},"./event/ws/client":{"types":"./dist/event/ws/client.d.ts","import":"./dist/event/ws/client.js","require":"./dist/event/ws/client.js"},"./event/sse/client":{"types":"./dist/event/sse/client.d.ts","import":"./dist/event/sse/client.js","require":"./dist/event/sse/client.js"}},"gitHead":"526c8d70e82c62f031af6bf18d742ef1eac4abee","scripts":{"dev":"tsup","test":"vitest run","build":"pnpm check:circular && tsup","prepack":"node -e \"require('fs').copyFileSync('../../LICENSE','LICENSE')\"","test:db":"vitest run src/db --config vitest.integration.config.ts","test:env":"vitest run src/env","test:cache":"vitest run src/cache --config vitest.integration.config.ts","test:route":"vitest run src/route","test:watch":"vitest","type-check":"tsc --noEmit","test:client":"vitest run src/client","test:errors":"vitest run src/errors","test:logger":"vitest run src/logger","test:server":"vitest run src/server --config vitest.integration.config.ts","publish:beta":"node ../../scripts/publish-package.mjs beta","test:codegen":"vitest run src/codegen","publish:alpha":"node ../../scripts/publish-package.mjs alpha","test:coverage":"vitest run --coverage","check:circular":"madge --circular --extensions ts src/","publish:latest":"node ../../scripts/publish-package.mjs latest","test:middleware":"vitest run src/middleware"},"_npmUser":{"name":"superfunction","email":"rayim@inflike.com"},"repository":{"url":"git+https://github.com/fxylabs/spfn.git","type":"git","directory":"packages/core"},"_npmVersion":"12.0.2","description":"Full-stack TypeScript backend for Next.js: file-based typed routes, Drizzle entities and repositories, PostgreSQL transactions and a generated end-to-end client, in one fixed vertical slice per feature","directories":{},"_nodeVersion":"22.23.1","dependencies":{"zod":"^4.4.3","hono":"^4.12.25","jiti":"^2.6.1","chalk":"^5.6.2","dotenv":"^17.2.3","undici":"^7.28.0","pg-boss":"^11.1.2","chokidar":"^4.0.3","postgres":"^3.4.0","micromatch":"^4.0.8","typescript":"^5.3.3","drizzle-typebox":"^0.3.3","@hono/node-server":"^1.19.13","@sinclair/typebox":"^0.34.0"},"publishConfig":{"tag":"beta","access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"next":"^16.2.11","tsup":"^8.5.0","madge":"^8.0.0","vitest":"^4.0.6","@types/ws":"^8.18.1","@types/node":"^20.11.0","drizzle-kit":"1.0.0-rc.4","drizzle-orm":"1.0.0-rc.4","@types/micromatch":"^4.0.9","@vitest/coverage-v8":"^4.0.6","@electric-sql/pglite":"0.5.4"},"peerDependencies":{"next":"^16.2.11","drizzle-orm":">=1.0.0-rc.4 <2"},"optionalDependencies":{"ws":"^8.21.0","ioredis":"^5.4.1"},"peerDependenciesMeta":{"next":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/core_0.2.0-beta.70_1785926858955_0.9655457851272287","host":"s3://npm-registry-packages-npm-production"}},"0.2.0-beta.71":{"name":"@spfn/core","version":"0.2.0-beta.71","keywords":["spfn","nextjs","backend","framework","typescript","type-safe","api","rest-api","crud","database","orm","drizzle-orm","postgres","redis","hono","fullstack","full-stack-framework","ai-coding-agent","claude-code","file-based-routing","transaction","repository-pattern"],"author":{"name":"Ray Im","email":"rayim@fxy.global"},"license":"MIT","_id":"@spfn/core@0.2.0-beta.71","maintainers":[{"name":"superfunction","email":"rayim@inflike.com"}],"homepage":"https://github.com/fxylabs/spfn/tree/main/packages/core#readme","bugs":{"url":"https://github.com/fxylabs/spfn/issues"},"dist":{"shasum":"c707d732394513470aa3ca59f1e6dd16cfcb490f","tarball":"https://registry.npmjs.org/@spfn/core/-/core-0.2.0-beta.71.tgz","fileCount":81,"integrity":"sha512-RANo59rwIPayOTf4Ncr4Cra8Qe3vqJQ3+iThI6JlGuFNWsQAT3IFx80VEvX2/Uv0GwWOEOxnXe3DZogU5cTLBQ==","signatures":[{"sig":"MEYCIQCiePAjKb4Tf6RY0nmn49SxThmEdZqtUFURrOImbxHs9wIhAJaXBoUwtrSnXlXzz8srngytWc9sxWGv26yMyMKNAEvV","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spfn%2fcore@0.2.0-beta.71","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2509642},"type":"module","engines":{"node":">=20.0.0"},"exports":{"./db":{"types":"./dist/db/index.d.ts","import":"./dist/db/index.js","require":"./dist/db/index.js"},"./env":{"types":"./dist/env/index.d.ts","import":"./dist/env/index.js","require":"./dist/env/index.js"},"./job":{"types":"./dist/job/index.d.ts","import":"./dist/job/index.js","require":"./dist/job/index.js"},"./authz":{"types":"./dist/authz/index.d.ts","import":"./dist/authz/index.js","require":"./dist/authz/index.js"},"./cache":{"types":"./dist/cache/index.d.ts","import":"./dist/cache/index.js","require":"./dist/cache/index.js"},"./event":{"types":"./dist/event/index.d.ts","import":"./dist/event/index.js","require":"./dist/event/index.js"},"./route":{"types":"./dist/route/index.d.ts","import":"./dist/route/index.js","require":"./dist/route/index.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","require":"./dist/client/index.js"},"./config":{"types":"./dist/config/index.d.ts","import":"./dist/config/index.js","require":"./dist/config/index.js"},"./errors":{"types":"./dist/errors/index.d.ts","import":"./dist/errors/index.js","require":"./dist/errors/index.js"},"./logger":{"types":"./dist/logger/index.d.ts","import":"./dist/logger/index.js","require":"./dist/logger/index.js"},"./nextjs":{"types":"./dist/nextjs/index.d.ts","import":"./dist/nextjs/index.js","require":"./dist/nextjs/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./codegen":{"types":"./dist/codegen/index.d.ts","import":"./dist/codegen/index.js","require":"./dist/codegen/index.js"},"./contract":{"types":"./dist/contract/index.d.ts","import":"./dist/contract/index.js","require":"./dist/contract/index.js"},"./event/ws":{"types":"./dist/event/ws/index.d.ts","import":"./dist/event/ws/index.js","require":"./dist/event/ws/index.js"},"./security":{"types":"./dist/security/index.d.ts","import":"./dist/security/index.js","require":"./dist/security/index.js"},"./event/sse":{"types":"./dist/event/sse/index.d.ts","import":"./dist/event/sse/index.js","require":"./dist/event/sse/index.js"},"./env/loader":{"types":"./dist/env/loader.d.ts","import":"./dist/env/loader.js","require":"./dist/env/loader.js"},"./middleware":{"types":"./dist/middleware/index.d.ts","import":"./dist/middleware/index.js","require":"./dist/middleware/index.js"},"./route/types":{"types":"./dist/route/types.d.ts","import":"./dist/route/types.js","require":"./dist/route/types.js"},"./nextjs/server":{"types":"./dist/nextjs/server.d.ts","import":"./dist/nextjs/server.js","require":"./dist/nextjs/server.js"},"./event/ws/client":{"types":"./dist/event/ws/client.d.ts","import":"./dist/event/ws/client.js","require":"./dist/event/ws/client.js"},"./event/sse/client":{"types":"./dist/event/sse/client.d.ts","import":"./dist/event/sse/client.js","require":"./dist/event/sse/client.js"}},"gitHead":"22a1abea780b5846b8c459d83345aa04a07e6119","scripts":{"dev":"tsup","test":"vitest run","build":"pnpm check:circular && tsup","prepack":"node -e \"require('fs').copyFileSync('../../LICENSE','LICENSE')\"","test:db":"vitest run src/db --config vitest.integration.config.ts","test:env":"vitest run src/env","test:cache":"vitest run src/cache --config vitest.integration.config.ts","test:route":"vitest run src/route","test:watch":"vitest","type-check":"tsc --noEmit","test:client":"vitest run src/client","test:errors":"vitest run src/errors","test:logger":"vitest run src/logger","test:server":"vitest run src/server --config vitest.integration.config.ts","publish:beta":"node ../../scripts/publish-package.mjs beta","test:codegen":"vitest run src/codegen","publish:alpha":"node ../../scripts/publish-package.mjs alpha","test:coverage":"vitest run --coverage","check:circular":"madge --circular --extensions ts src/","publish:latest":"node ../../scripts/publish-package.mjs latest","test:middleware":"vitest run src/middleware"},"_npmUser":{"name":"superfunction","email":"rayim@inflike.com"},"repository":{"url":"git+https://github.com/fxylabs/spfn.git","type":"git","directory":"packages/core"},"_npmVersion":"12.0.2","description":"Full-stack TypeScript backend for Next.js: file-based typed routes, Drizzle entities and repositories, PostgreSQL transactions and a generated end-to-end client, in one fixed vertical slice per feature","directories":{},"_nodeVersion":"22.23.1","dependencies":{"zod":"^4.4.3","hono":"^4.12.34","jiti":"^2.6.1","chalk":"^5.6.2","dotenv":"^17.2.3","undici":"^7.29.0","pg-boss":"^11.1.2","chokidar":"^4.0.3","postgres":"^3.4.0","micromatch":"^4.0.8","typescript":"^5.3.3","drizzle-typebox":"^0.3.3","@hono/node-server":"^2.0.5","@sinclair/typebox":"^0.34.0"},"publishConfig":{"tag":"beta","access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"next":"^16.2.11","tsup":"^8.5.0","madge":"^8.0.0","vitest":"^4.0.6","@types/ws":"^8.18.1","@types/node":"^20.11.0","drizzle-kit":"1.0.0-rc.4","drizzle-orm":"1.0.0-rc.4","@types/micromatch":"^4.0.9","@vitest/coverage-v8":"^4.0.6","@electric-sql/pglite":"0.5.4"},"peerDependencies":{"next":"^16.2.11","drizzle-orm":">=1.0.0-rc.4 <2"},"optionalDependencies":{"ws":"^8.21.0","ioredis":"^5.4.1"},"peerDependenciesMeta":{"next":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/core_0.2.0-beta.71_1786000181525_0.5286487050842081","host":"s3://npm-registry-packages-npm-production"}},"0.2.0-beta.72":{"name":"@spfn/core","version":"0.2.0-beta.72","keywords":["spfn","nextjs","backend","framework","typescript","type-safe","api","rest-api","crud","database","orm","drizzle-orm","postgres","redis","hono","fullstack","full-stack-framework","ai-coding-agent","claude-code","file-based-routing","transaction","repository-pattern"],"author":{"name":"Ray Im","email":"rayim@fxy.global"},"license":"MIT","_id":"@spfn/core@0.2.0-beta.72","maintainers":[{"name":"superfunction","email":"rayim@inflike.com"}],"homepage":"https://github.com/fxylabs/spfn/tree/main/packages/core#readme","bugs":{"url":"https://github.com/fxylabs/spfn/issues"},"dist":{"shasum":"31eaebd1a5dde5af6c59a1ad5e7d601048cf1e28","tarball":"https://registry.npmjs.org/@spfn/core/-/core-0.2.0-beta.72.tgz","fileCount":81,"integrity":"sha512-EJ3o/uoLKITIDwJa2RPIx2XEifS/69FGSyUrMiwBhIICjJRnWOwTzEkRbBRBY3IkADaZgbYzJtRvn4fOTOP2fg==","signatures":[{"sig":"MEUCIGBv6KY6fsRPWlqiR2IqCDRk2kjuHJdQ/HP5JFdgwScBAiEAl8YdIpO/bdj9CfHLP0tM7VLEMxOymNpGgfAgoAyLJS0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spfn%2fcore@0.2.0-beta.72","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2572757},"type":"module","engines":{"node":">=20.0.0"},"exports":{"./db":{"types":"./dist/db/index.d.ts","import":"./dist/db/index.js","require":"./dist/db/index.js"},"./env":{"types":"./dist/env/index.d.ts","import":"./dist/env/index.js","require":"./dist/env/index.js"},"./job":{"types":"./dist/job/index.d.ts","import":"./dist/job/index.js","require":"./dist/job/index.js"},"./authz":{"types":"./dist/authz/index.d.ts","import":"./dist/authz/index.js","require":"./dist/authz/index.js"},"./cache":{"types":"./dist/cache/index.d.ts","import":"./dist/cache/index.js","require":"./dist/cache/index.js"},"./event":{"types":"./dist/event/index.d.ts","import":"./dist/event/index.js","require":"./dist/event/index.js"},"./route":{"types":"./dist/route/index.d.ts","import":"./dist/route/index.js","require":"./dist/route/index.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","require":"./dist/client/index.js"},"./config":{"types":"./dist/config/index.d.ts","import":"./dist/config/index.js","require":"./dist/config/index.js"},"./errors":{"types":"./dist/errors/index.d.ts","import":"./dist/errors/index.js","require":"./dist/errors/index.js"},"./logger":{"types":"./dist/logger/index.d.ts","import":"./dist/logger/index.js","require":"./dist/logger/index.js"},"./nextjs":{"types":"./dist/nextjs/index.d.ts","import":"./dist/nextjs/index.js","require":"./dist/nextjs/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./codegen":{"types":"./dist/codegen/index.d.ts","import":"./dist/codegen/index.js","require":"./dist/codegen/index.js"},"./contract":{"types":"./dist/contract/index.d.ts","import":"./dist/contract/index.js","require":"./dist/contract/index.js"},"./event/ws":{"types":"./dist/event/ws/index.d.ts","import":"./dist/event/ws/index.js","require":"./dist/event/ws/index.js"},"./security":{"types":"./dist/security/index.d.ts","import":"./dist/security/index.js","require":"./dist/security/index.js"},"./event/sse":{"types":"./dist/event/sse/index.d.ts","import":"./dist/event/sse/index.js","require":"./dist/event/sse/index.js"},"./env/loader":{"types":"./dist/env/loader.d.ts","import":"./dist/env/loader.js","require":"./dist/env/loader.js"},"./middleware":{"types":"./dist/middleware/index.d.ts","import":"./dist/middleware/index.js","require":"./dist/middleware/index.js"},"./route/types":{"types":"./dist/route/types.d.ts","import":"./dist/route/types.js","require":"./dist/route/types.js"},"./nextjs/server":{"types":"./dist/nextjs/server.d.ts","import":"./dist/nextjs/server.js","require":"./dist/nextjs/server.js"},"./event/ws/client":{"types":"./dist/event/ws/client.d.ts","import":"./dist/event/ws/client.js","require":"./dist/event/ws/client.js"},"./event/sse/client":{"types":"./dist/event/sse/client.d.ts","import":"./dist/event/sse/client.js","require":"./dist/event/sse/client.js"}},"gitHead":"111c63be56be8f79a0ce3bfef1fff5514d0851b1","scripts":{"dev":"tsup","test":"vitest run","build":"pnpm check:circular && tsup","prepack":"node -e \"require('fs').copyFileSync('../../LICENSE','LICENSE')\"","test:db":"vitest run src/db --config vitest.integration.config.ts","test:env":"vitest run src/env","test:cache":"vitest run src/cache --config vitest.integration.config.ts","test:route":"vitest run src/route","test:watch":"vitest","type-check":"tsc --noEmit","test:client":"vitest run src/client","test:errors":"vitest run src/errors","test:logger":"vitest run src/logger","test:server":"vitest run src/server --config vitest.integration.config.ts","publish:beta":"node ../../scripts/publish-package.mjs beta","test:codegen":"vitest run src/codegen","publish:alpha":"node ../../scripts/publish-package.mjs alpha","test:coverage":"vitest run --coverage","check:circular":"madge --circular --extensions ts src/","publish:latest":"node ../../scripts/publish-package.mjs latest","test:middleware":"vitest run src/middleware"},"_npmUser":{"name":"superfunction","email":"rayim@inflike.com"},"repository":{"url":"git+https://github.com/fxylabs/spfn.git","type":"git","directory":"packages/core"},"_npmVersion":"12.0.2","description":"Full-stack TypeScript backend for Next.js: file-based typed routes, Drizzle entities and repositories, PostgreSQL transactions and a generated end-to-end client, in one fixed vertical slice per feature","directories":{},"_nodeVersion":"22.23.1","dependencies":{"zod":"^4.4.3","hono":"^4.12.34","jiti":"^2.6.1","chalk":"^5.6.2","dotenv":"^17.2.3","undici":"^7.29.0","pg-boss":"^11.1.2","chokidar":"^4.0.3","postgres":"^3.4.0","micromatch":"^4.0.8","typescript":"^5.3.3","drizzle-typebox":"^0.3.3","@hono/node-server":"^2.0.5","@sinclair/typebox":"^0.34.0"},"publishConfig":{"tag":"beta","access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"next":"^16.2.11","tsup":"^8.5.0","madge":"^8.0.0","vitest":"^4.0.6","@types/ws":"^8.18.1","@types/node":"^20.11.0","drizzle-kit":"1.0.0-rc.4","drizzle-orm":"1.0.0-rc.4","@types/micromatch":"^4.0.9","@vitest/coverage-v8":"^4.0.6","@electric-sql/pglite":"0.5.4"},"peerDependencies":{"next":"^16.2.11","drizzle-orm":">=1.0.0-rc.4 <2"},"optionalDependencies":{"ws":"^8.21.0","ioredis":"^5.4.1"},"peerDependenciesMeta":{"next":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/core_0.2.0-beta.72_1786007001015_0.7358249783040371","host":"s3://npm-registry-packages-npm-production"}},"0.3.0-beta.1":{"name":"@spfn/core","version":"0.3.0-beta.1","keywords":["spfn","nextjs","backend","framework","typescript","type-safe","api","rest-api","crud","database","orm","drizzle-orm","postgres","redis","hono","fullstack","full-stack-framework","ai-coding-agent","claude-code","file-based-routing","transaction","repository-pattern"],"author":{"name":"Ray Im","email":"rayim@fxy.global"},"license":"MIT","_id":"@spfn/core@0.3.0-beta.1","maintainers":[{"name":"superfunction","email":"rayim@inflike.com"}],"homepage":"https://github.com/fxylabs/spfn/tree/main/packages/core#readme","bugs":{"url":"https://github.com/fxylabs/spfn/issues"},"dist":{"shasum":"b72ddaf42695718dae6762146edf6433e78f60a6","tarball":"https://registry.npmjs.org/@spfn/core/-/core-0.3.0-beta.1.tgz","fileCount":85,"integrity":"sha512-XGiOEiYaLsb2B8yO5x9a+nB3Pzt7tYRkNHRpAcweVE1vyt4jrj0IJTjb22hK/0/fmBnPYHcMM9SIguEL69fk6g==","signatures":[{"sig":"MEYCIQD0fdE+7ThaPh3uYHbXPK3xcGWSwglZw/IsWqggZOiz5QIhAOqYP2IVyGPIhUT2yfWdIxnkV5rfywxVZH4cDf6FonaL","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spfn%2fcore@0.3.0-beta.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2637698},"type":"module","engines":{"node":">=20.0.0"},"exports":{"./db":{"types":"./dist/db/index.d.ts","import":"./dist/db/index.js","require":"./dist/db/index.js"},"./env":{"types":"./dist/env/index.d.ts","import":"./dist/env/index.js","require":"./dist/env/index.js"},"./job":{"types":"./dist/job/index.d.ts","import":"./dist/job/index.js","require":"./dist/job/index.js"},"./ops":{"types":"./dist/ops/index.d.ts","import":"./dist/ops/index.js","require":"./dist/ops/index.js"},"./authz":{"types":"./dist/authz/index.d.ts","import":"./dist/authz/index.js","require":"./dist/authz/index.js"},"./cache":{"types":"./dist/cache/index.d.ts","import":"./dist/cache/index.js","require":"./dist/cache/index.js"},"./event":{"types":"./dist/event/index.d.ts","import":"./dist/event/index.js","require":"./dist/event/index.js"},"./route":{"types":"./dist/route/index.d.ts","import":"./dist/route/index.js","require":"./dist/route/index.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","require":"./dist/client/index.js"},"./config":{"types":"./dist/config/index.d.ts","import":"./dist/config/index.js","require":"./dist/config/index.js"},"./errors":{"types":"./dist/errors/index.d.ts","import":"./dist/errors/index.js","require":"./dist/errors/index.js"},"./logger":{"types":"./dist/logger/index.d.ts","import":"./dist/logger/index.js","require":"./dist/logger/index.js"},"./nextjs":{"types":"./dist/nextjs/index.d.ts","import":"./dist/nextjs/index.js","require":"./dist/nextjs/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./codegen":{"types":"./dist/codegen/index.d.ts","import":"./dist/codegen/index.js","require":"./dist/codegen/index.js"},"./contract":{"types":"./dist/contract/index.d.ts","import":"./dist/contract/index.js","require":"./dist/contract/index.js"},"./event/ws":{"types":"./dist/event/ws/index.d.ts","import":"./dist/event/ws/index.js","require":"./dist/event/ws/index.js"},"./security":{"types":"./dist/security/index.d.ts","import":"./dist/security/index.js","require":"./dist/security/index.js"},"./event/sse":{"types":"./dist/event/sse/index.d.ts","import":"./dist/event/sse/index.js","require":"./dist/event/sse/index.js"},"./env/loader":{"types":"./dist/env/loader.d.ts","import":"./dist/env/loader.js","require":"./dist/env/loader.js"},"./middleware":{"types":"./dist/middleware/index.d.ts","import":"./dist/middleware/index.js","require":"./dist/middleware/index.js"},"./route/types":{"types":"./dist/route/types.d.ts","import":"./dist/route/types.js","require":"./dist/route/types.js"},"./nextjs/server":{"types":"./dist/nextjs/server.d.ts","import":"./dist/nextjs/server.js","require":"./dist/nextjs/server.js"},"./event/ws/client":{"types":"./dist/event/ws/client.d.ts","import":"./dist/event/ws/client.js","require":"./dist/event/ws/client.js"},"./event/sse/client":{"types":"./dist/event/sse/client.d.ts","import":"./dist/event/sse/client.js","require":"./dist/event/sse/client.js"}},"gitHead":"b809b7b182f1fbab65e227efd1bc213d336dbdd0","scripts":{"dev":"tsup","test":"vitest run","build":"pnpm check:circular && tsup","prepack":"node -e \"require('fs').copyFileSync('../../LICENSE','LICENSE')\"","test:db":"vitest run src/db --config vitest.integration.config.ts","test:env":"vitest run src/env","test:cache":"vitest run src/cache --config vitest.integration.config.ts","test:route":"vitest run src/route","test:watch":"vitest","type-check":"tsc --noEmit","test:client":"vitest run src/client","test:errors":"vitest run src/errors","test:logger":"vitest run src/logger","test:server":"vitest run src/server --config vitest.integration.config.ts","publish:beta":"node ../../scripts/publish-package.mjs beta","test:codegen":"vitest run src/codegen","publish:alpha":"node ../../scripts/publish-package.mjs alpha","test:coverage":"vitest run --coverage","check:circular":"madge --circular --extensions ts src/","publish:latest":"node ../../scripts/publish-package.mjs latest","test:middleware":"vitest run src/middleware"},"_npmUser":{"name":"superfunction","email":"rayim@inflike.com"},"repository":{"url":"git+https://github.com/fxylabs/spfn.git","type":"git","directory":"packages/core"},"_npmVersion":"12.0.2","description":"Full-stack TypeScript backend for Next.js: file-based typed routes, Drizzle entities and repositories, PostgreSQL transactions and a generated end-to-end client, in one fixed vertical slice per feature","directories":{},"_nodeVersion":"22.23.1","dependencies":{"zod":"^4.4.3","hono":"^4.12.34","jiti":"^2.6.1","chalk":"^5.6.2","dotenv":"^17.2.3","undici":"^7.29.0","pg-boss":"^11.1.2","chokidar":"^4.0.3","postgres":"^3.4.0","micromatch":"^4.0.8","typescript":"^5.3.3","drizzle-typebox":"^0.3.3","@hono/node-server":"^2.0.5","@sinclair/typebox":"^0.34.0"},"publishConfig":{"tag":"beta","access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"next":"^16.2.11","tsup":"^8.5.0","madge":"^8.0.0","vitest":"^4.0.6","@types/ws":"^8.18.1","@types/node":"^20.11.0","drizzle-kit":"1.0.0-rc.4","drizzle-orm":"1.0.0-rc.4","@types/micromatch":"^4.0.9","@vitest/coverage-v8":"^4.0.6","@electric-sql/pglite":"0.5.4"},"peerDependencies":{"next":"^16.2.11","drizzle-orm":">=1.0.0-rc.4 <2"},"optionalDependencies":{"ws":"^8.21.0","ioredis":"^5.4.1"},"peerDependenciesMeta":{"next":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/core_0.3.0-beta.1_1786165766911_0.15067519224720627","host":"s3://npm-registry-packages-npm-production"}},"0.3.0-beta.2":{"name":"@spfn/core","version":"0.3.0-beta.2","keywords":["spfn","nextjs","backend","framework","typescript","type-safe","api","rest-api","crud","database","orm","drizzle-orm","postgres","redis","hono","fullstack","full-stack-framework","ai-coding-agent","claude-code","file-based-routing","transaction","repository-pattern"],"author":{"name":"Ray Im","email":"rayim@fxy.global"},"license":"MIT","_id":"@spfn/core@0.3.0-beta.2","maintainers":[{"name":"superfunction","email":"rayim@inflike.com"}],"homepage":"https://github.com/fxylabs/spfn/tree/main/packages/core#readme","bugs":{"url":"https://github.com/fxylabs/spfn/issues"},"dist":{"shasum":"daaf6880e6715efe4c677852edfbde4b9e24fc1e","tarball":"https://registry.npmjs.org/@spfn/core/-/core-0.3.0-beta.2.tgz","fileCount":85,"integrity":"sha512-yoFiPw/NKfPXD6JMCr7oMtAuu4+wLc6v7xAHQWGoWxODnudZuS9c2QtcVZ3Un9dbnCpqwPJ3h+IeUj8JpB3HGw==","signatures":[{"sig":"MEUCIFTURJEjOTuEbFlZ/jv7OToxM5ik41ZVwBogI23MKQgYAiEArjZFw28tkAE58enfJJqVdUx1KP1stDbrcpXbpTBxvBE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spfn%2fcore@0.3.0-beta.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2646583},"type":"module","engines":{"node":">=20.0.0"},"exports":{"./db":{"types":"./dist/db/index.d.ts","import":"./dist/db/index.js","require":"./dist/db/index.js"},"./env":{"types":"./dist/env/index.d.ts","import":"./dist/env/index.js","require":"./dist/env/index.js"},"./job":{"types":"./dist/job/index.d.ts","import":"./dist/job/index.js","require":"./dist/job/index.js"},"./ops":{"types":"./dist/ops/index.d.ts","import":"./dist/ops/index.js","require":"./dist/ops/index.js"},"./authz":{"types":"./dist/authz/index.d.ts","import":"./dist/authz/index.js","require":"./dist/authz/index.js"},"./cache":{"types":"./dist/cache/index.d.ts","import":"./dist/cache/index.js","require":"./dist/cache/index.js"},"./event":{"types":"./dist/event/index.d.ts","import":"./dist/event/index.js","require":"./dist/event/index.js"},"./route":{"types":"./dist/route/index.d.ts","import":"./dist/route/index.js","require":"./dist/route/index.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","require":"./dist/client/index.js"},"./config":{"types":"./dist/config/index.d.ts","import":"./dist/config/index.js","require":"./dist/config/index.js"},"./errors":{"types":"./dist/errors/index.d.ts","import":"./dist/errors/index.js","require":"./dist/errors/index.js"},"./logger":{"types":"./dist/logger/index.d.ts","import":"./dist/logger/index.js","require":"./dist/logger/index.js"},"./nextjs":{"types":"./dist/nextjs/index.d.ts","import":"./dist/nextjs/index.js","require":"./dist/nextjs/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./codegen":{"types":"./dist/codegen/index.d.ts","import":"./dist/codegen/index.js","require":"./dist/codegen/index.js"},"./contract":{"types":"./dist/contract/index.d.ts","import":"./dist/contract/index.js","require":"./dist/contract/index.js"},"./event/ws":{"types":"./dist/event/ws/index.d.ts","import":"./dist/event/ws/index.js","require":"./dist/event/ws/index.js"},"./security":{"types":"./dist/security/index.d.ts","import":"./dist/security/index.js","require":"./dist/security/index.js"},"./event/sse":{"types":"./dist/event/sse/index.d.ts","import":"./dist/event/sse/index.js","require":"./dist/event/sse/index.js"},"./env/loader":{"types":"./dist/env/loader.d.ts","import":"./dist/env/loader.js","require":"./dist/env/loader.js"},"./middleware":{"types":"./dist/middleware/index.d.ts","import":"./dist/middleware/index.js","require":"./dist/middleware/index.js"},"./route/types":{"types":"./dist/route/types.d.ts","import":"./dist/route/types.js","require":"./dist/route/types.js"},"./nextjs/server":{"types":"./dist/nextjs/server.d.ts","import":"./dist/nextjs/server.js","require":"./dist/nextjs/server.js"},"./event/ws/client":{"types":"./dist/event/ws/client.d.ts","import":"./dist/event/ws/client.js","require":"./dist/event/ws/client.js"},"./event/sse/client":{"types":"./dist/event/sse/client.d.ts","import":"./dist/event/sse/client.js","require":"./dist/event/sse/client.js"}},"gitHead":"ea08ac6ac011adb6c59bfa5c9c6265fb3e6623bf","scripts":{"dev":"tsup","test":"vitest run","build":"pnpm check:circular && tsup","prepack":"node -e \"require('fs').copyFileSync('../../LICENSE','LICENSE')\"","test:db":"vitest run src/db --config vitest.integration.config.ts","test:env":"vitest run src/env","test:cache":"vitest run src/cache --config vitest.integration.config.ts","test:route":"vitest run src/route","test:watch":"vitest","type-check":"tsc --noEmit","test:client":"vitest run src/client","test:errors":"vitest run src/errors","test:logger":"vitest run src/logger","test:server":"vitest run src/server --config vitest.integration.config.ts","publish:beta":"node ../../scripts/publish-package.mjs beta","test:codegen":"vitest run src/codegen","publish:alpha":"node ../../scripts/publish-package.mjs alpha","test:coverage":"vitest run --coverage","check:circular":"madge --circular --extensions ts src/","publish:latest":"node ../../scripts/publish-package.mjs latest","test:middleware":"vitest run src/middleware"},"_npmUser":{"name":"superfunction","email":"rayim@inflike.com"},"repository":{"url":"git+https://github.com/fxylabs/spfn.git","type":"git","directory":"packages/core"},"_npmVersion":"12.0.2","description":"Full-stack TypeScript backend for Next.js: file-based typed routes, Drizzle entities and repositories, PostgreSQL transactions and a generated end-to-end client, in one fixed vertical slice per feature","directories":{},"_nodeVersion":"22.23.1","dependencies":{"zod":"^4.4.3","hono":"^4.12.34","jiti":"^2.6.1","chalk":"^5.6.2","dotenv":"^17.2.3","undici":"^7.29.0","pg-boss":"^11.1.2","chokidar":"^4.0.3","postgres":"^3.4.0","micromatch":"^4.0.8","typescript":"^5.3.3","drizzle-typebox":"^0.3.3","@hono/node-server":"^2.0.5","@sinclair/typebox":"^0.34.0"},"publishConfig":{"tag":"beta","access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"next":"^16.2.11","tsup":"^8.5.0","madge":"^8.0.0","vitest":"^4.0.6","@types/ws":"^8.18.1","@types/node":"^20.11.0","drizzle-kit":"1.0.0-rc.4","drizzle-orm":"1.0.0-rc.4","@types/micromatch":"^4.0.9","@vitest/coverage-v8":"^4.0.6","@electric-sql/pglite":"0.5.4"},"peerDependencies":{"next":"^16.2.11","drizzle-orm":">=1.0.0-rc.4 <2"},"optionalDependencies":{"ws":"^8.21.0","ioredis":"^5.4.1"},"peerDependenciesMeta":{"next":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/core_0.3.0-beta.2_1786197154795_0.13098205791394957","host":"s3://npm-registry-packages-npm-production"}},"0.3.0-beta.3":{"name":"@spfn/core","version":"0.3.0-beta.3","keywords":["spfn","nextjs","backend","framework","typescript","type-safe","api","rest-api","crud","database","orm","drizzle-orm","postgres","redis","hono","fullstack","full-stack-framework","ai-coding-agent","claude-code","file-based-routing","transaction","repository-pattern"],"author":{"name":"Ray Im","email":"rayim@fxy.global"},"license":"MIT","_id":"@spfn/core@0.3.0-beta.3","maintainers":[{"name":"superfunction","email":"rayim@inflike.com"}],"homepage":"https://github.com/fxylabs/spfn/tree/main/packages/core#readme","bugs":{"url":"https://github.com/fxylabs/spfn/issues"},"dist":{"shasum":"0a2501d9aa77a8bfef24e37881668f116a865117","tarball":"https://registry.npmjs.org/@spfn/core/-/core-0.3.0-beta.3.tgz","fileCount":88,"integrity":"sha512-XaEC7fdtYE4owrLqmD8vYYawJ2vV3q80sQ+uFNgMB6hvO5R5h+L1iunU+8y9bEjJ0i2CDA+/6UHKKZoP6IzxkA==","signatures":[{"sig":"MEQCIFonhnE+UtppG/m5ng0SYOKkR1bplVkt+hFCK+bY49J0AiBSdKD30kj6pAy9C7NbL5Y6h49W1rpDwXKnD8ZosiUyWQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spfn%2fcore@0.3.0-beta.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2695082},"type":"module","engines":{"node":">=20.0.0"},"exports":{"./db":{"types":"./dist/db/index.d.ts","import":"./dist/db/index.js","require":"./dist/db/index.js"},"./env":{"types":"./dist/env/index.d.ts","import":"./dist/env/index.js","require":"./dist/env/index.js"},"./job":{"types":"./dist/job/index.d.ts","import":"./dist/job/index.js","require":"./dist/job/index.js"},"./ops":{"types":"./dist/ops/index.d.ts","import":"./dist/ops/index.js","require":"./dist/ops/index.js"},"./authz":{"types":"./dist/authz/index.d.ts","import":"./dist/authz/index.js","require":"./dist/authz/index.js"},"./cache":{"types":"./dist/cache/index.d.ts","import":"./dist/cache/index.js","require":"./dist/cache/index.js"},"./event":{"types":"./dist/event/index.d.ts","import":"./dist/event/index.js","require":"./dist/event/index.js"},"./route":{"types":"./dist/route/index.d.ts","import":"./dist/route/index.js","require":"./dist/route/index.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","require":"./dist/client/index.js"},"./config":{"types":"./dist/config/index.d.ts","import":"./dist/config/index.js","require":"./dist/config/index.js"},"./errors":{"types":"./dist/errors/index.d.ts","import":"./dist/errors/index.js","require":"./dist/errors/index.js"},"./logger":{"types":"./dist/logger/index.d.ts","import":"./dist/logger/index.js","require":"./dist/logger/index.js"},"./nextjs":{"types":"./dist/nextjs/index.d.ts","import":"./dist/nextjs/index.js","require":"./dist/nextjs/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./codegen":{"types":"./dist/codegen/index.d.ts","import":"./dist/codegen/index.js","require":"./dist/codegen/index.js"},"./contract":{"types":"./dist/contract/index.d.ts","import":"./dist/contract/index.js","require":"./dist/contract/index.js"},"./event/ws":{"types":"./dist/event/ws/index.d.ts","import":"./dist/event/ws/index.js","require":"./dist/event/ws/index.js"},"./security":{"types":"./dist/security/index.d.ts","import":"./dist/security/index.js","require":"./dist/security/index.js"},"./event/sse":{"types":"./dist/event/sse/index.d.ts","import":"./dist/event/sse/index.js","require":"./dist/event/sse/index.js"},"./app-config":{"types":"./dist/app-config/index.d.ts","import":"./dist/app-config/index.js","require":"./dist/app-config/index.js"},"./env/loader":{"types":"./dist/env/loader.d.ts","import":"./dist/env/loader.js","require":"./dist/env/loader.js"},"./middleware":{"types":"./dist/middleware/index.d.ts","import":"./dist/middleware/index.js","require":"./dist/middleware/index.js"},"./route/types":{"types":"./dist/route/types.d.ts","import":"./dist/route/types.js","require":"./dist/route/types.js"},"./nextjs/server":{"types":"./dist/nextjs/server.d.ts","import":"./dist/nextjs/server.js","require":"./dist/nextjs/server.js"},"./event/ws/client":{"types":"./dist/event/ws/client.d.ts","import":"./dist/event/ws/client.js","require":"./dist/event/ws/client.js"},"./event/sse/client":{"types":"./dist/event/sse/client.d.ts","import":"./dist/event/sse/client.js","require":"./dist/event/sse/client.js"}},"gitHead":"4cf87a5928f3627ee60a63b008a7562fe2d627f3","scripts":{"dev":"tsup","test":"vitest run","build":"pnpm check:circular && tsup","prepack":"node -e \"require('fs').copyFileSync('../../LICENSE','LICENSE')\"","test:db":"vitest run src/db --config vitest.integration.config.ts","test:env":"vitest run src/env","test:cache":"vitest run src/cache --config vitest.integration.config.ts","test:route":"vitest run src/route","test:watch":"vitest","type-check":"tsc --noEmit","test:client":"vitest run src/client","test:errors":"vitest run src/errors","test:logger":"vitest run src/logger","test:server":"vitest run src/server --config vitest.integration.config.ts","publish:beta":"node ../../scripts/publish-package.mjs beta","test:codegen":"vitest run src/codegen","publish:alpha":"node ../../scripts/publish-package.mjs alpha","test:coverage":"vitest run --coverage","check:circular":"madge --circular --extensions ts src/","publish:latest":"node ../../scripts/publish-package.mjs latest","test:middleware":"vitest run src/middleware"},"_npmUser":{"name":"superfunction","email":"rayim@inflike.com"},"repository":{"url":"git+https://github.com/fxylabs/spfn.git","type":"git","directory":"packages/core"},"_npmVersion":"12.0.2","description":"Full-stack TypeScript backend for Next.js: file-based typed routes, Drizzle entities and repositories, PostgreSQL transactions and a generated end-to-end client, in one fixed vertical slice per feature","directories":{},"_nodeVersion":"22.23.1","dependencies":{"zod":"^4.4.3","hono":"^4.12.34","jiti":"^2.6.1","chalk":"^5.6.2","dotenv":"^17.2.3","undici":"^7.29.0","pg-boss":"^11.1.2","chokidar":"^4.0.3","postgres":"^3.4.0","micromatch":"^4.0.8","typescript":"^5.3.3","drizzle-typebox":"^0.3.3","@hono/node-server":"^2.0.5","@sinclair/typebox":"^0.34.0"},"publishConfig":{"tag":"beta","access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"next":"^16.2.11","tsup":"^8.5.0","madge":"^8.0.0","vitest":"^4.0.6","@types/ws":"^8.18.1","@types/node":"^20.11.0","drizzle-kit":"1.0.0-rc.4","drizzle-orm":"1.0.0-rc.4","@types/micromatch":"^4.0.9","@vitest/coverage-v8":"^4.0.6","@electric-sql/pglite":"0.5.4"},"peerDependencies":{"next":"^16.2.11","drizzle-orm":">=1.0.0-rc.4 <2"},"optionalDependencies":{"ws":"^8.21.0","ioredis":"^5.4.1"},"peerDependenciesMeta":{"next":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/core_0.3.0-beta.3_1786283732549_0.2507185657277975","host":"s3://npm-registry-packages-npm-production"}},"0.3.0-beta.4":{"name":"@spfn/core","version":"0.3.0-beta.4","keywords":["spfn","nextjs","backend","framework","typescript","type-safe","api","rest-api","crud","database","orm","drizzle-orm","postgres","redis","hono","fullstack","full-stack-framework","ai-coding-agent","claude-code","file-based-routing","transaction","repository-pattern"],"author":{"name":"Ray Im","email":"rayim@fxy.global"},"license":"MIT","_id":"@spfn/core@0.3.0-beta.4","maintainers":[{"name":"superfunction","email":"rayim@inflike.com"}],"homepage":"https://github.com/fxylabs/spfn/tree/main/packages/core#readme","bugs":{"url":"https://github.com/fxylabs/spfn/issues"},"dist":{"shasum":"e40d1dacc9286eb98a01f4c539d3f8eac4e5f5d8","tarball":"https://registry.npmjs.org/@spfn/core/-/core-0.3.0-beta.4.tgz","fileCount":89,"integrity":"sha512-GroTHr/BR3ijzJTq8zIB/ciqySGguQ4jIO9MMwK2XD+qkytJJiN7aaqvqrTGsOltd6UjAug/r6RY7ZL0IqSHpA==","signatures":[{"sig":"MEQCIDZQI0Xnq7mHMGWKxELWTM8SPEXyDlCbTsRNx57WUYe5AiAl4f7a/OOIkz2nxXOMi5uy/LV5FmoEhy6DP7DH+ILcZg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spfn%2fcore@0.3.0-beta.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2752919},"type":"module","engines":{"node":">=20.0.0"},"exports":{"./db":{"types":"./dist/db/index.d.ts","import":"./dist/db/index.js","require":"./dist/db/index.js"},"./env":{"types":"./dist/env/index.d.ts","import":"./dist/env/index.js","require":"./dist/env/index.js"},"./job":{"types":"./dist/job/index.d.ts","import":"./dist/job/index.js","require":"./dist/job/index.js"},"./ops":{"types":"./dist/ops/index.d.ts","import":"./dist/ops/index.js","require":"./dist/ops/index.js"},"./authz":{"types":"./dist/authz/index.d.ts","import":"./dist/authz/index.js","require":"./dist/authz/index.js"},"./cache":{"types":"./dist/cache/index.d.ts","import":"./dist/cache/index.js","require":"./dist/cache/index.js"},"./event":{"types":"./dist/event/index.d.ts","import":"./dist/event/index.js","require":"./dist/event/index.js"},"./route":{"types":"./dist/route/index.d.ts","import":"./dist/route/index.js","require":"./dist/route/index.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","require":"./dist/client/index.js"},"./config":{"types":"./dist/config/index.d.ts","import":"./dist/config/index.js","require":"./dist/config/index.js"},"./errors":{"types":"./dist/errors/index.d.ts","import":"./dist/errors/index.js","require":"./dist/errors/index.js"},"./logger":{"types":"./dist/logger/index.d.ts","import":"./dist/logger/index.js","require":"./dist/logger/index.js"},"./nextjs":{"types":"./dist/nextjs/index.d.ts","import":"./dist/nextjs/index.js","require":"./dist/nextjs/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./codegen":{"types":"./dist/codegen/index.d.ts","import":"./dist/codegen/index.js","require":"./dist/codegen/index.js"},"./contract":{"types":"./dist/contract/index.d.ts","import":"./dist/contract/index.js","require":"./dist/contract/index.js"},"./event/ws":{"types":"./dist/event/ws/index.d.ts","import":"./dist/event/ws/index.js","require":"./dist/event/ws/index.js"},"./security":{"types":"./dist/security/index.d.ts","import":"./dist/security/index.js","require":"./dist/security/index.js"},"./event/sse":{"types":"./dist/event/sse/index.d.ts","import":"./dist/event/sse/index.js","require":"./dist/event/sse/index.js"},"./app-config":{"types":"./dist/app-config/index.d.ts","import":"./dist/app-config/index.js","require":"./dist/app-config/index.js"},"./env/loader":{"types":"./dist/env/loader.d.ts","import":"./dist/env/loader.js","require":"./dist/env/loader.js"},"./middleware":{"types":"./dist/middleware/index.d.ts","import":"./dist/middleware/index.js","require":"./dist/middleware/index.js"},"./route/types":{"types":"./dist/route/types.d.ts","import":"./dist/route/types.js","require":"./dist/route/types.js"},"./nextjs/server":{"types":"./dist/nextjs/server.d.ts","import":"./dist/nextjs/server.js","require":"./dist/nextjs/server.js"},"./event/ws/client":{"types":"./dist/event/ws/client.d.ts","import":"./dist/event/ws/client.js","require":"./dist/event/ws/client.js"},"./event/sse/client":{"types":"./dist/event/sse/client.d.ts","import":"./dist/event/sse/client.js","require":"./dist/event/sse/client.js"}},"gitHead":"10bf529f781303ec33bcf1b52c3613ed8007ecc0","scripts":{"dev":"tsup","test":"vitest run","build":"pnpm check:circular && tsup","prepack":"node -e \"require('fs').copyFileSync('../../LICENSE','LICENSE')\"","test:db":"vitest run src/db --config vitest.integration.config.ts","test:env":"vitest run src/env","test:cache":"vitest run src/cache --config vitest.integration.config.ts","test:route":"vitest run src/route","test:watch":"vitest","type-check":"tsc --noEmit","test:client":"vitest run src/client","test:errors":"vitest run src/errors","test:logger":"vitest run src/logger","test:server":"vitest run src/server --config vitest.integration.config.ts","publish:beta":"node ../../scripts/publish-package.mjs beta","test:codegen":"vitest run src/codegen","publish:alpha":"node ../../scripts/publish-package.mjs alpha","test:coverage":"vitest run --coverage","check:circular":"madge --circular --extensions ts src/","publish:latest":"node ../../scripts/publish-package.mjs latest","test:middleware":"vitest run src/middleware"},"_npmUser":{"name":"superfunction","email":"rayim@inflike.com"},"repository":{"url":"git+https://github.com/fxylabs/spfn.git","type":"git","directory":"packages/core"},"_npmVersion":"12.0.2","description":"Full-stack TypeScript backend for Next.js: file-based typed routes, Drizzle entities and repositories, PostgreSQL transactions and a generated end-to-end client, in one fixed vertical slice per feature","directories":{},"_nodeVersion":"22.23.1","dependencies":{"zod":"^4.4.3","hono":"^4.12.34","jiti":"^2.6.1","chalk":"^5.6.2","dotenv":"^17.2.3","undici":"^7.29.0","pg-boss":"^11.1.2","chokidar":"^4.0.3","postgres":"^3.4.0","micromatch":"^4.0.8","typescript":"^5.3.3","drizzle-typebox":"^0.3.3","@hono/node-server":"^2.0.5","@sinclair/typebox":"^0.34.0"},"publishConfig":{"tag":"beta","access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"next":"^16.2.11","tsup":"^8.5.0","madge":"^8.0.0","vitest":"^4.0.6","@types/ws":"^8.18.1","@types/node":"^20.11.0","drizzle-kit":"1.0.0-rc.4","drizzle-orm":"1.0.0-rc.4","@types/micromatch":"^4.0.9","@vitest/coverage-v8":"^4.0.6","@electric-sql/pglite":"0.5.4"},"peerDependencies":{"next":"^16.2.11","drizzle-orm":">=1.0.0-rc.4 <2"},"optionalDependencies":{"ws":"^8.21.0","ioredis":"^5.4.1"},"peerDependenciesMeta":{"next":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/core_0.3.0-beta.4_1786347429435_0.2738919618977955","host":"s3://npm-registry-packages-npm-production"}},"0.3.0-beta.5":{"name":"@spfn/core","version":"0.3.0-beta.5","keywords":["spfn","nextjs","backend","framework","typescript","type-safe","api","rest-api","crud","database","orm","drizzle-orm","postgres","redis","hono","fullstack","full-stack-framework","ai-coding-agent","claude-code","file-based-routing","transaction","repository-pattern"],"author":{"name":"Ray Im","email":"rayim@fxy.global"},"license":"MIT","_id":"@spfn/core@0.3.0-beta.5","maintainers":[{"name":"superfunction","email":"rayim@inflike.com"}],"homepage":"https://github.com/fxylabs/spfn/tree/main/packages/core#readme","bugs":{"url":"https://github.com/fxylabs/spfn/issues"},"dist":{"shasum":"9756b4ac8b10386e972fc6259114ba3d8eb06d9d","tarball":"https://registry.npmjs.org/@spfn/core/-/core-0.3.0-beta.5.tgz","fileCount":89,"integrity":"sha512-EFkJK7dWJDTHlbaFzJwLDNzqiMndxuOGVEEN24TzOxFp6z+jSmDiVuvXAxyCXQwGEeLigjJeUIP0dGaTJPNfNw==","signatures":[{"sig":"MEQCIHvBOESb26iaq05GJ/A1NyLwMHVPgv3JqhArCYHksJFiAiBXHzBtliMB1v9o7Ql5ES+cRI9YIqpeDaYOAMW8yOmI6A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spfn%2fcore@0.3.0-beta.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2655098},"type":"module","engines":{"node":">=20.0.0"},"exports":{"./db":{"types":"./dist/db/index.d.ts","import":"./dist/db/index.js","require":"./dist/db/index.js"},"./env":{"types":"./dist/env/index.d.ts","import":"./dist/env/index.js","require":"./dist/env/index.js"},"./job":{"types":"./dist/job/index.d.ts","import":"./dist/job/index.js","require":"./dist/job/index.js"},"./ops":{"types":"./dist/ops/index.d.ts","import":"./dist/ops/index.js","require":"./dist/ops/index.js"},"./authz":{"types":"./dist/authz/index.d.ts","import":"./dist/authz/index.js","require":"./dist/authz/index.js"},"./cache":{"types":"./dist/cache/index.d.ts","import":"./dist/cache/index.js","require":"./dist/cache/index.js"},"./event":{"types":"./dist/event/index.d.ts","import":"./dist/event/index.js","require":"./dist/event/index.js"},"./route":{"types":"./dist/route/index.d.ts","import":"./dist/route/index.js","require":"./dist/route/index.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","require":"./dist/client/index.js"},"./config":{"types":"./dist/config/index.d.ts","import":"./dist/config/index.js","require":"./dist/config/index.js"},"./errors":{"types":"./dist/errors/index.d.ts","import":"./dist/errors/index.js","require":"./dist/errors/index.js"},"./logger":{"types":"./dist/logger/index.d.ts","import":"./dist/logger/index.js","require":"./dist/logger/index.js"},"./nextjs":{"types":"./dist/nextjs/index.d.ts","import":"./dist/nextjs/index.js","require":"./dist/nextjs/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./codegen":{"types":"./dist/codegen/index.d.ts","import":"./dist/codegen/index.js","require":"./dist/codegen/index.js"},"./contract":{"types":"./dist/contract/index.d.ts","import":"./dist/contract/index.js","require":"./dist/contract/index.js"},"./event/ws":{"types":"./dist/event/ws/index.d.ts","import":"./dist/event/ws/index.js","require":"./dist/event/ws/index.js"},"./security":{"types":"./dist/security/index.d.ts","import":"./dist/security/index.js","require":"./dist/security/index.js"},"./event/sse":{"types":"./dist/event/sse/index.d.ts","import":"./dist/event/sse/index.js","require":"./dist/event/sse/index.js"},"./app-config":{"types":"./dist/app-config/index.d.ts","import":"./dist/app-config/index.js","require":"./dist/app-config/index.js"},"./env/loader":{"types":"./dist/env/loader.d.ts","import":"./dist/env/loader.js","require":"./dist/env/loader.js"},"./middleware":{"types":"./dist/middleware/index.d.ts","import":"./dist/middleware/index.js","require":"./dist/middleware/index.js"},"./route/types":{"types":"./dist/route/types.d.ts","import":"./dist/route/types.js","require":"./dist/route/types.js"},"./nextjs/server":{"types":"./dist/nextjs/server.d.ts","import":"./dist/nextjs/server.js","require":"./dist/nextjs/server.js"},"./event/ws/client":{"types":"./dist/event/ws/client.d.ts","import":"./dist/event/ws/client.js","require":"./dist/event/ws/client.js"},"./event/sse/client":{"types":"./dist/event/sse/client.d.ts","import":"./dist/event/sse/client.js","require":"./dist/event/sse/client.js"}},"gitHead":"e63b88533d87c9eeb2b2aa64fc9a697099dd42dd","scripts":{"dev":"tsup","test":"vitest run","build":"pnpm check:circular && tsup","prepack":"node -e \"require('fs').copyFileSync('../../LICENSE','LICENSE')\"","test:db":"vitest run src/db --config vitest.integration.config.ts","test:env":"vitest run src/env","test:cache":"vitest run src/cache --config vitest.integration.config.ts","test:route":"vitest run src/route","test:watch":"vitest","type-check":"tsc --noEmit","test:client":"vitest run src/client","test:errors":"vitest run src/errors","test:logger":"vitest run src/logger","test:server":"vitest run src/server --config vitest.integration.config.ts","publish:beta":"node ../../scripts/publish-package.mjs beta","test:codegen":"vitest run src/codegen","publish:alpha":"node ../../scripts/publish-package.mjs alpha","test:coverage":"vitest run --coverage","check:circular":"madge --circular --extensions ts src/","publish:latest":"node ../../scripts/publish-package.mjs latest","test:middleware":"vitest run src/middleware"},"_npmUser":{"name":"superfunction","email":"rayim@inflike.com"},"repository":{"url":"git+https://github.com/fxylabs/spfn.git","type":"git","directory":"packages/core"},"_npmVersion":"12.0.2","description":"Full-stack TypeScript backend for Next.js: file-based typed routes, Drizzle entities and repositories, PostgreSQL transactions and a generated end-to-end client, in one fixed vertical slice per feature","directories":{},"_nodeVersion":"22.23.2","dependencies":{"zod":"^4.4.3","hono":"^4.12.34","jiti":"^2.6.1","chalk":"^5.6.2","dotenv":"^17.2.3","undici":"^7.29.0","pg-boss":"^11.1.2","chokidar":"^4.0.3","postgres":"^3.4.0","micromatch":"^4.0.8","typescript":"^5.3.3","drizzle-typebox":"^0.3.3","@hono/node-server":"^2.0.5","@sinclair/typebox":"^0.34.0"},"publishConfig":{"tag":"beta","access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"next":"^16.2.11","tsup":"^8.5.0","madge":"^8.0.0","vitest":"^4.0.6","@types/ws":"^8.18.1","@types/node":"^20.11.0","drizzle-kit":"1.0.0-rc.4","drizzle-orm":"1.0.0-rc.4","@types/micromatch":"^4.0.9","@vitest/coverage-v8":"^4.0.6","@electric-sql/pglite":"0.5.4"},"peerDependencies":{"next":"^16.2.11","drizzle-orm":">=1.0.0-rc.4 <2"},"optionalDependencies":{"ws":"^8.21.0","ioredis":"^5.4.1"},"peerDependenciesMeta":{"next":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/core_0.3.0-beta.5_1786681007277_0.5219369699234173","host":"s3://npm-registry-packages-npm-production"}},"0.3.0-beta.6":{"name":"@spfn/core","version":"0.3.0-beta.6","keywords":["spfn","nextjs","backend","framework","typescript","type-safe","api","rest-api","crud","database","orm","drizzle-orm","postgres","redis","hono","fullstack","full-stack-framework","ai-coding-agent","claude-code","file-based-routing","transaction","repository-pattern"],"author":{"name":"Ray Im","email":"rayim@fxy.global"},"license":"MIT","_id":"@spfn/core@0.3.0-beta.6","maintainers":[{"name":"superfunction","email":"rayim@inflike.com"}],"homepage":"https://github.com/fxylabs/spfn/tree/main/packages/core#readme","bugs":{"url":"https://github.com/fxylabs/spfn/issues"},"dist":{"shasum":"0d944ecd8b60d00df6755c3af94115c2f98f0db1","tarball":"https://registry.npmjs.org/@spfn/core/-/core-0.3.0-beta.6.tgz","fileCount":107,"integrity":"sha512-hOtQXaSntSGCKwF7X41nyJATsbWDTs9JBXrVo2kAZ8LaRE0LISqMCdfgP78+LHRkQQnHxyIVWj3oMp+SD+Sk7Q==","signatures":[{"sig":"MEUCIFH6OoBBuChnmHmp/zPITYeNqosAdvxVwfnstgA6BZlXAiEAk3sw6ILcZjk1LuBbjo2xVPgkjfzyViHyKOp6Cxdfge0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spfn%2fcore@0.3.0-beta.6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3100545},"type":"module","engines":{"node":">=20.0.0"},"exports":{"./db":{"types":"./dist/db/index.d.ts","import":"./dist/db/index.js","require":"./dist/db/index.js"},"./env":{"types":"./dist/env/index.d.ts","import":"./dist/env/index.js","require":"./dist/env/index.js"},"./job":{"types":"./dist/job/index.d.ts","import":"./dist/job/index.js","require":"./dist/job/index.js"},"./ops":{"types":"./dist/ops/index.d.ts","import":"./dist/ops/index.js","require":"./dist/ops/index.js"},"./authz":{"types":"./dist/authz/index.d.ts","import":"./dist/authz/index.js","require":"./dist/authz/index.js"},"./cache":{"types":"./dist/cache/index.d.ts","import":"./dist/cache/index.js","require":"./dist/cache/index.js"},"./event":{"types":"./dist/event/index.d.ts","import":"./dist/event/index.js","require":"./dist/event/index.js"},"./route":{"types":"./dist/route/index.d.ts","import":"./dist/route/index.js","require":"./dist/route/index.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","require":"./dist/client/index.js"},"./config":{"types":"./dist/config/index.d.ts","import":"./dist/config/index.js","require":"./dist/config/index.js"},"./errors":{"types":"./dist/errors/index.d.ts","import":"./dist/errors/index.js","require":"./dist/errors/index.js"},"./logger":{"types":"./dist/logger/index.d.ts","import":"./dist/logger/index.js","require":"./dist/logger/index.js"},"./nextjs":{"types":"./dist/nextjs/index.d.ts","import":"./dist/nextjs/index.js","require":"./dist/nextjs/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./codegen":{"types":"./dist/codegen/index.d.ts","import":"./dist/codegen/index.js","require":"./dist/codegen/index.js"},"./contract":{"types":"./dist/contract/index.d.ts","import":"./dist/contract/index.js","require":"./dist/contract/index.js"},"./event/ws":{"types":"./dist/event/ws/index.d.ts","import":"./dist/event/ws/index.js","require":"./dist/event/ws/index.js"},"./security":{"types":"./dist/security/index.d.ts","import":"./dist/security/index.js","require":"./dist/security/index.js"},"./event/sse":{"types":"./dist/event/sse/index.d.ts","import":"./dist/event/sse/index.js","require":"./dist/event/sse/index.js"},"./app-config":{"types":"./dist/app-config/index.d.ts","import":"./dist/app-config/index.js","require":"./dist/app-config/index.js"},"./env/loader":{"types":"./dist/env/loader.d.ts","import":"./dist/env/loader.js","require":"./dist/env/loader.js"},"./middleware":{"types":"./dist/middleware/index.d.ts","import":"./dist/middleware/index.js","require":"./dist/middleware/index.js"},"./route/types":{"types":"./dist/route/types.d.ts","import":"./dist/route/types.js","require":"./dist/route/types.js"},"./nextjs/server":{"types":"./dist/nextjs/server.d.ts","import":"./dist/nextjs/server.js","require":"./dist/nextjs/server.js"},"./event/ws/client":{"types":"./dist/event/ws/client.d.ts","import":"./dist/event/ws/client.js","require":"./dist/event/ws/client.js"},"./event/sse/client":{"types":"./dist/event/sse/client.d.ts","import":"./dist/event/sse/client.js","require":"./dist/event/sse/client.js"}},"gitHead":"f1c7e5e307b704dad03b8c8d536fe222426ef54d","scripts":{"dev":"tsup","test":"vitest run","build":"pnpm check:circular && tsup","prepack":"node -e \"require('fs').copyFileSync('../../LICENSE','LICENSE')\"","test:db":"vitest run src/db","test:env":"vitest run src/env","test:cache":"vitest run src/cache","test:route":"vitest run src/route","test:watch":"vitest","type-check":"tsc --noEmit","test:client":"vitest run src/client","test:errors":"vitest run src/errors","test:logger":"vitest run src/logger","test:server":"vitest run src/server","publish:beta":"node ../../scripts/publish-package.mjs beta","test:codegen":"vitest run src/codegen","publish:alpha":"node ../../scripts/publish-package.mjs alpha","test:coverage":"vitest run --coverage","check:circular":"madge --circular --extensions ts src/","publish:latest":"node ../../scripts/publish-package.mjs latest","test:middleware":"vitest run src/middleware"},"_npmUser":{"name":"superfunction","email":"rayim@inflike.com"},"repository":{"url":"git+https://github.com/fxylabs/spfn.git","type":"git","directory":"packages/core"},"_npmVersion":"12.0.2","description":"Full-stack TypeScript backend for Next.js: file-based typed routes, Drizzle entities and repositories, PostgreSQL transactions and a generated end-to-end client, in one fixed vertical slice per feature","directories":{},"_nodeVersion":"22.23.2","dependencies":{"zod":"^4.4.3","hono":"^4.12.34","jiti":"^2.6.1","chalk":"^5.6.2","dotenv":"^17.2.3","undici":"^7.29.0","pg-boss":"^11.1.2","chokidar":"^4.0.3","postgres":"^3.4.0","micromatch":"^4.0.8","typescript":"^5.3.3","drizzle-typebox":"^0.3.3","@hono/node-server":"^2.0.5","@sinclair/typebox":"^0.34.0"},"publishConfig":{"tag":"beta","access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"next":"^16.2.11","tsup":"^8.5.0","madge":"^8.0.0","vitest":"^4.0.6","@types/ws":"^8.18.1","@types/node":"^20.11.0","drizzle-kit":"1.0.0-rc.4","drizzle-orm":"1.0.0-rc.4","@types/micromatch":"^4.0.9","@vitest/coverage-v8":"^4.0.6","@electric-sql/pglite":"0.5.4"},"peerDependencies":{"next":"^16.2.11","drizzle-orm":">=1.0.0-rc.4 <2"},"optionalDependencies":{"ws":"^8.21.0","ioredis":"^5.4.1"},"peerDependenciesMeta":{"next":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/core_0.3.0-beta.6_1788315411520_0.502171156599732","host":"s3://npm-registry-packages-npm-production"}},"0.3.0-beta.7":{"name":"@spfn/core","version":"0.3.0-beta.7","keywords":["spfn","nextjs","backend","framework","typescript","type-safe","api","rest-api","crud","database","orm","drizzle-orm","postgres","redis","hono","fullstack","full-stack-framework","ai-coding-agent","claude-code","file-based-routing","transaction","repository-pattern"],"author":{"name":"Ray Im","email":"rayim@fxy.global"},"license":"MIT","_id":"@spfn/core@0.3.0-beta.7","maintainers":[{"name":"superfunction","email":"rayim@inflike.com"}],"homepage":"https://github.com/fxylabs/spfn/tree/main/packages/core#readme","bugs":{"url":"https://github.com/fxylabs/spfn/issues"},"dist":{"shasum":"4e5eb121a7302d57a0398c810343c096b7619235","tarball":"https://registry.npmjs.org/@spfn/core/-/core-0.3.0-beta.7.tgz","fileCount":107,"integrity":"sha512-gUQkd137xKTNBsvrN8I9+ekvVAXODRk7dF6OyiFkBjNCjIGj5/TfWssvSkpgYE5R+1BxIoUsr6X47IrbGJUfhA==","signatures":[{"sig":"MEUCIQDdaptofUtjZtROtjORzYcfITm1p5aPTGvznXYwCl9ZogIgf7P9exsC+4vZ69uN519Yp6YZ+nkLlQNZYxd1DdPKhJI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spfn%2fcore@0.3.0-beta.7","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3151542},"type":"module","engines":{"node":">=20.0.0"},"exports":{"./db":{"types":"./dist/db/index.d.ts","import":"./dist/db/index.js","require":"./dist/db/index.js"},"./env":{"types":"./dist/env/index.d.ts","import":"./dist/env/index.js","require":"./dist/env/index.js"},"./job":{"types":"./dist/job/index.d.ts","import":"./dist/job/index.js","require":"./dist/job/index.js"},"./ops":{"types":"./dist/ops/index.d.ts","import":"./dist/ops/index.js","require":"./dist/ops/index.js"},"./authz":{"types":"./dist/authz/index.d.ts","import":"./dist/authz/index.js","require":"./dist/authz/index.js"},"./cache":{"types":"./dist/cache/index.d.ts","import":"./dist/cache/index.js","require":"./dist/cache/index.js"},"./event":{"types":"./dist/event/index.d.ts","import":"./dist/event/index.js","require":"./dist/event/index.js"},"./route":{"types":"./dist/route/index.d.ts","import":"./dist/route/index.js","require":"./dist/route/index.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","require":"./dist/client/index.js"},"./config":{"types":"./dist/config/index.d.ts","import":"./dist/config/index.js","require":"./dist/config/index.js"},"./errors":{"types":"./dist/errors/index.d.ts","import":"./dist/errors/index.js","require":"./dist/errors/index.js"},"./logger":{"types":"./dist/logger/index.d.ts","import":"./dist/logger/index.js","require":"./dist/logger/index.js"},"./nextjs":{"types":"./dist/nextjs/index.d.ts","import":"./dist/nextjs/index.js","require":"./dist/nextjs/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./codegen":{"types":"./dist/codegen/index.d.ts","import":"./dist/codegen/index.js","require":"./dist/codegen/index.js"},"./contract":{"types":"./dist/contract/index.d.ts","import":"./dist/contract/index.js","require":"./dist/contract/index.js"},"./event/ws":{"types":"./dist/event/ws/index.d.ts","import":"./dist/event/ws/index.js","require":"./dist/event/ws/index.js"},"./security":{"types":"./dist/security/index.d.ts","import":"./dist/security/index.js","require":"./dist/security/index.js"},"./event/sse":{"types":"./dist/event/sse/index.d.ts","import":"./dist/event/sse/index.js","require":"./dist/event/sse/index.js"},"./app-config":{"types":"./dist/app-config/index.d.ts","import":"./dist/app-config/index.js","require":"./dist/app-config/index.js"},"./env/loader":{"types":"./dist/env/loader.d.ts","import":"./dist/env/loader.js","require":"./dist/env/loader.js"},"./middleware":{"types":"./dist/middleware/index.d.ts","import":"./dist/middleware/index.js","require":"./dist/middleware/index.js"},"./route/types":{"types":"./dist/route/types.d.ts","import":"./dist/route/types.js","require":"./dist/route/types.js"},"./nextjs/server":{"types":"./dist/nextjs/server.d.ts","import":"./dist/nextjs/server.js","require":"./dist/nextjs/server.js"},"./event/ws/client":{"types":"./dist/event/ws/client.d.ts","import":"./dist/event/ws/client.js","require":"./dist/event/ws/client.js"},"./event/sse/client":{"types":"./dist/event/sse/client.d.ts","import":"./dist/event/sse/client.js","require":"./dist/event/sse/client.js"}},"gitHead":"73230a6a7f9b7104b0205adcdb61ac975ede97a3","scripts":{"dev":"tsup","test":"vitest run","build":"pnpm check:circular && tsup","prepack":"node -e \"require('fs').copyFileSync('../../LICENSE','LICENSE')\"","test:db":"vitest run src/db","test:env":"vitest run src/env","test:cache":"vitest run src/cache","test:route":"vitest run src/route","test:watch":"vitest","type-check":"tsc --noEmit","test:client":"vitest run src/client","test:errors":"vitest run src/errors","test:logger":"vitest run src/logger","test:server":"vitest run src/server","publish:beta":"node ../../scripts/publish-package.mjs beta","test:codegen":"vitest run src/codegen","publish:alpha":"node ../../scripts/publish-package.mjs alpha","test:coverage":"vitest run --coverage","check:circular":"madge --circular --extensions ts src/","publish:latest":"node ../../scripts/publish-package.mjs latest","test:middleware":"vitest run src/middleware"},"_npmUser":{"name":"superfunction","email":"rayim@inflike.com"},"repository":{"url":"git+https://github.com/fxylabs/spfn.git","type":"git","directory":"packages/core"},"_npmVersion":"12.0.2","description":"Full-stack TypeScript backend for Next.js: file-based typed routes, Drizzle entities and repositories, PostgreSQL transactions and a generated end-to-end client, in one fixed vertical slice per feature","directories":{},"_nodeVersion":"22.23.2","dependencies":{"zod":"^4.4.3","hono":"^4.12.34","jiti":"^2.6.1","chalk":"^5.6.2","dotenv":"^17.2.3","undici":"^7.29.0","pg-boss":"^11.1.2","chokidar":"^4.0.3","postgres":"^3.4.0","micromatch":"^4.0.8","typescript":"^5.3.3","drizzle-typebox":"^0.3.3","@hono/node-server":"^2.0.5","@sinclair/typebox":"^0.34.0"},"publishConfig":{"tag":"beta","access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"next":"^16.2.11","tsup":"^8.5.0","madge":"^8.0.0","vitest":"^4.0.6","@types/ws":"^8.18.1","@types/node":"^20.11.0","drizzle-kit":"1.0.0-rc.4","drizzle-orm":"1.0.0-rc.4","@types/micromatch":"^4.0.9","@vitest/coverage-v8":"^4.0.6","@electric-sql/pglite":"0.5.4"},"peerDependencies":{"next":"^16.2.11","drizzle-orm":">=1.0.0-rc.4 <2"},"optionalDependencies":{"ws":"^8.21.0","ioredis":"^5.4.1"},"peerDependenciesMeta":{"next":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/core_0.3.0-beta.7_1788706771374_0.21660104981366346","host":"s3://npm-registry-packages-npm-production"}},"0.3.0-beta.8":{"name":"@spfn/core","version":"0.3.0-beta.8","keywords":["spfn","nextjs","backend","framework","typescript","type-safe","api","rest-api","crud","database","orm","drizzle-orm","postgres","redis","hono","fullstack","full-stack-framework","ai-coding-agent","claude-code","file-based-routing","transaction","repository-pattern"],"author":{"name":"Ray Im","email":"rayim@fxy.global"},"license":"MIT","_id":"@spfn/core@0.3.0-beta.8","maintainers":[{"name":"superfunction","email":"rayim@inflike.com"}],"homepage":"https://github.com/fxylabs/spfn/tree/main/packages/core#readme","bugs":{"url":"https://github.com/fxylabs/spfn/issues"},"dist":{"shasum":"4280ff01fff6191e42aafa41bc2cb18cfb83d839","tarball":"https://registry.npmjs.org/@spfn/core/-/core-0.3.0-beta.8.tgz","fileCount":107,"integrity":"sha512-em2ASS02p35GZR677pBxfCsFtwFX334S6oSL90Tg+IO2x1gJAgsubPUYmNwwubnPYN+/8loeh+drwppbzI3HYQ==","signatures":[{"sig":"MEUCIEK5oUON3Mgw20zWp+JatnAXzgYMUQny45ZJ3vVCoB9EAiEAgI3qoDGx4d09GdnGOhHIyd8wKeJb8XRMmYYn2Mg+eBI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spfn%2fcore@0.3.0-beta.8","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3152393},"type":"module","engines":{"node":">=20.0.0"},"exports":{"./db":{"types":"./dist/db/index.d.ts","import":"./dist/db/index.js","require":"./dist/db/index.js"},"./env":{"types":"./dist/env/index.d.ts","import":"./dist/env/index.js","require":"./dist/env/index.js"},"./job":{"types":"./dist/job/index.d.ts","import":"./dist/job/index.js","require":"./dist/job/index.js"},"./ops":{"types":"./dist/ops/index.d.ts","import":"./dist/ops/index.js","require":"./dist/ops/index.js"},"./authz":{"types":"./dist/authz/index.d.ts","import":"./dist/authz/index.js","require":"./dist/authz/index.js"},"./cache":{"types":"./dist/cache/index.d.ts","import":"./dist/cache/index.js","require":"./dist/cache/index.js"},"./event":{"types":"./dist/event/index.d.ts","import":"./dist/event/index.js","require":"./dist/event/index.js"},"./route":{"types":"./dist/route/index.d.ts","import":"./dist/route/index.js","require":"./dist/route/index.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","require":"./dist/client/index.js"},"./config":{"types":"./dist/config/index.d.ts","import":"./dist/config/index.js","require":"./dist/config/index.js"},"./errors":{"types":"./dist/errors/index.d.ts","import":"./dist/errors/index.js","require":"./dist/errors/index.js"},"./logger":{"types":"./dist/logger/index.d.ts","import":"./dist/logger/index.js","require":"./dist/logger/index.js"},"./nextjs":{"types":"./dist/nextjs/index.d.ts","import":"./dist/nextjs/index.js","require":"./dist/nextjs/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./codegen":{"types":"./dist/codegen/index.d.ts","import":"./dist/codegen/index.js","require":"./dist/codegen/index.js"},"./contract":{"types":"./dist/contract/index.d.ts","import":"./dist/contract/index.js","require":"./dist/contract/index.js"},"./event/ws":{"types":"./dist/event/ws/index.d.ts","import":"./dist/event/ws/index.js","require":"./dist/event/ws/index.js"},"./security":{"types":"./dist/security/index.d.ts","import":"./dist/security/index.js","require":"./dist/security/index.js"},"./event/sse":{"types":"./dist/event/sse/index.d.ts","import":"./dist/event/sse/index.js","require":"./dist/event/sse/index.js"},"./app-config":{"types":"./dist/app-config/index.d.ts","import":"./dist/app-config/index.js","require":"./dist/app-config/index.js"},"./env/loader":{"types":"./dist/env/loader.d.ts","import":"./dist/env/loader.js","require":"./dist/env/loader.js"},"./middleware":{"types":"./dist/middleware/index.d.ts","import":"./dist/middleware/index.js","require":"./dist/middleware/index.js"},"./route/types":{"types":"./dist/route/types.d.ts","import":"./dist/route/types.js","require":"./dist/route/types.js"},"./nextjs/server":{"types":"./dist/nextjs/server.d.ts","import":"./dist/nextjs/server.js","require":"./dist/nextjs/server.js"},"./event/ws/client":{"types":"./dist/event/ws/client.d.ts","import":"./dist/event/ws/client.js","require":"./dist/event/ws/client.js"},"./event/sse/client":{"types":"./dist/event/sse/client.d.ts","import":"./dist/event/sse/client.js","require":"./dist/event/sse/client.js"}},"gitHead":"fbe0610ff9f4205430410b673d53f67a9164f41f","scripts":{"dev":"tsup","test":"vitest run","build":"pnpm check:circular && tsup","prepack":"node -e \"require('fs').copyFileSync('../../LICENSE','LICENSE')\"","test:db":"vitest run src/db","test:env":"vitest run src/env","test:cache":"vitest run src/cache","test:route":"vitest run src/route","test:watch":"vitest","type-check":"tsc --noEmit","test:client":"vitest run src/client","test:errors":"vitest run src/errors","test:logger":"vitest run src/logger","test:server":"vitest run src/server","publish:beta":"node ../../scripts/publish-package.mjs beta","test:codegen":"vitest run src/codegen","publish:alpha":"node ../../scripts/publish-package.mjs alpha","test:coverage":"vitest run --coverage","check:circular":"madge --circular --extensions ts src/","publish:latest":"node ../../scripts/publish-package.mjs latest","test:middleware":"vitest run src/middleware"},"_npmUser":{"name":"superfunction","email":"rayim@inflike.com"},"repository":{"url":"git+https://github.com/fxylabs/spfn.git","type":"git","directory":"packages/core"},"_npmVersion":"12.0.2","description":"Full-stack TypeScript backend for Next.js: file-based typed routes, Drizzle entities and repositories, PostgreSQL transactions and a generated end-to-end client, in one fixed vertical slice per feature","directories":{},"_nodeVersion":"22.23.2","dependencies":{"zod":"^4.4.3","hono":"^4.12.34","jiti":"^2.6.1","chalk":"^5.6.2","dotenv":"^17.2.3","undici":"^7.29.0","pg-boss":"^11.1.2","chokidar":"^4.0.3","postgres":"^3.4.0","micromatch":"^4.0.8","typescript":"^5.3.3","drizzle-typebox":"^0.3.3","@hono/node-server":"^2.0.5","@sinclair/typebox":"^0.34.0"},"publishConfig":{"tag":"beta","access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"next":"^16.2.11","tsup":"^8.5.0","madge":"^8.0.0","vitest":"^4.0.6","@types/ws":"^8.18.1","@types/node":"^20.11.0","drizzle-kit":"1.0.0-rc.4","drizzle-orm":"1.0.0-rc.4","@types/micromatch":"^4.0.9","@vitest/coverage-v8":"^4.0.6","@electric-sql/pglite":"0.5.4"},"peerDependencies":{"next":"^16.2.11","drizzle-orm":">=1.0.0-rc.4 <2"},"optionalDependencies":{"ws":"^8.21.0","ioredis":"^5.4.1"},"peerDependenciesMeta":{"next":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/core_0.3.0-beta.8_1788762625054_0.788164951030397","host":"s3://npm-registry-packages-npm-production"}},"0.3.0-beta.9":{"name":"@spfn/core","version":"0.3.0-beta.9","keywords":["spfn","nextjs","backend","framework","typescript","type-safe","api","rest-api","crud","database","orm","drizzle-orm","postgres","redis","hono","fullstack","full-stack-framework","ai-coding-agent","claude-code","file-based-routing","transaction","repository-pattern"],"author":{"name":"Ray Im","email":"rayim@fxy.global"},"license":"MIT","_id":"@spfn/core@0.3.0-beta.9","maintainers":[{"name":"superfunction","email":"rayim@inflike.com"}],"homepage":"https://github.com/fxylabs/spfn/tree/main/packages/core#readme","bugs":{"url":"https://github.com/fxylabs/spfn/issues"},"dist":{"shasum":"b5a0d42808601a7aab49d5bd67fa758564c46223","tarball":"https://registry.npmjs.org/@spfn/core/-/core-0.3.0-beta.9.tgz","fileCount":107,"integrity":"sha512-9r6bFfaciWYVEL4pRd3UGHdy8LHei9ojHGSgNgE1nHn+IlDAOgW+JWVBT81Yn+QN+g1IoxM2ehe7EGLFaQwznw==","signatures":[{"sig":"MEUCIQDULX40I01c26JhvqH02jy5JuXWBEwORRF/P+1sS4sqWgIgd/tMFC+DGEJU82Md4WwPBa7T6P7ZSvodACrNYWTTKx8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spfn%2fcore@0.3.0-beta.9","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3169526},"type":"module","engines":{"node":">=20.0.0"},"exports":{"./db":{"types":"./dist/db/index.d.ts","import":"./dist/db/index.js","require":"./dist/db/index.js"},"./env":{"types":"./dist/env/index.d.ts","import":"./dist/env/index.js","require":"./dist/env/index.js"},"./job":{"types":"./dist/job/index.d.ts","import":"./dist/job/index.js","require":"./dist/job/index.js"},"./ops":{"types":"./dist/ops/index.d.ts","import":"./dist/ops/index.js","require":"./dist/ops/index.js"},"./authz":{"types":"./dist/authz/index.d.ts","import":"./dist/authz/index.js","require":"./dist/authz/index.js"},"./cache":{"types":"./dist/cache/index.d.ts","import":"./dist/cache/index.js","require":"./dist/cache/index.js"},"./event":{"types":"./dist/event/index.d.ts","import":"./dist/event/index.js","require":"./dist/event/index.js"},"./route":{"types":"./dist/route/index.d.ts","import":"./dist/route/index.js","require":"./dist/route/index.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","require":"./dist/client/index.js"},"./config":{"types":"./dist/config/index.d.ts","import":"./dist/config/index.js","require":"./dist/config/index.js"},"./errors":{"types":"./dist/errors/index.d.ts","import":"./dist/errors/index.js","require":"./dist/errors/index.js"},"./logger":{"types":"./dist/logger/index.d.ts","import":"./dist/logger/index.js","require":"./dist/logger/index.js"},"./nextjs":{"types":"./dist/nextjs/index.d.ts","import":"./dist/nextjs/index.js","require":"./dist/nextjs/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./codegen":{"types":"./dist/codegen/index.d.ts","import":"./dist/codegen/index.js","require":"./dist/codegen/index.js"},"./contract":{"types":"./dist/contract/index.d.ts","import":"./dist/contract/index.js","require":"./dist/contract/index.js"},"./event/ws":{"types":"./dist/event/ws/index.d.ts","import":"./dist/event/ws/index.js","require":"./dist/event/ws/index.js"},"./security":{"types":"./dist/security/index.d.ts","import":"./dist/security/index.js","require":"./dist/security/index.js"},"./event/sse":{"types":"./dist/event/sse/index.d.ts","import":"./dist/event/sse/index.js","require":"./dist/event/sse/index.js"},"./app-config":{"types":"./dist/app-config/index.d.ts","import":"./dist/app-config/index.js","require":"./dist/app-config/index.js"},"./env/loader":{"types":"./dist/env/loader.d.ts","import":"./dist/env/loader.js","require":"./dist/env/loader.js"},"./middleware":{"types":"./dist/middleware/index.d.ts","import":"./dist/middleware/index.js","require":"./dist/middleware/index.js"},"./route/types":{"types":"./dist/route/types.d.ts","import":"./dist/route/types.js","require":"./dist/route/types.js"},"./nextjs/server":{"types":"./dist/nextjs/server.d.ts","import":"./dist/nextjs/server.js","require":"./dist/nextjs/server.js"},"./event/ws/client":{"types":"./dist/event/ws/client.d.ts","import":"./dist/event/ws/client.js","require":"./dist/event/ws/client.js"},"./event/sse/client":{"types":"./dist/event/sse/client.d.ts","import":"./dist/event/sse/client.js","require":"./dist/event/sse/client.js"}},"gitHead":"97e0a2541e7bbdb8da140c9b9dd73cfd3d67d621","scripts":{"dev":"tsup","test":"vitest run","build":"pnpm check:circular && tsup","prepack":"node -e \"require('fs').copyFileSync('../../LICENSE','LICENSE')\"","test:db":"vitest run src/db","test:env":"vitest run src/env","test:cache":"vitest run src/cache","test:route":"vitest run src/route","test:watch":"vitest","type-check":"tsc --noEmit","test:client":"vitest run src/client","test:errors":"vitest run src/errors","test:logger":"vitest run src/logger","test:server":"vitest run src/server","publish:beta":"node ../../scripts/publish-package.mjs beta","test:codegen":"vitest run src/codegen","publish:alpha":"node ../../scripts/publish-package.mjs alpha","test:coverage":"vitest run --coverage","check:circular":"madge --circular --extensions ts src/","publish:latest":"node ../../scripts/publish-package.mjs latest","test:middleware":"vitest run src/middleware"},"_npmUser":{"name":"superfunction","email":"rayim@inflike.com"},"repository":{"url":"git+https://github.com/fxylabs/spfn.git","type":"git","directory":"packages/core"},"_npmVersion":"12.0.2","description":"Full-stack TypeScript backend for Next.js: file-based typed routes, Drizzle entities and repositories, PostgreSQL transactions and a generated end-to-end client, in one fixed vertical slice per feature","directories":{},"_nodeVersion":"22.23.2","dependencies":{"zod":"^4.4.3","hono":"^4.12.34","jiti":"^2.6.1","chalk":"^5.6.2","dotenv":"^17.2.3","undici":"^7.29.0","pg-boss":"^11.1.2","chokidar":"^4.0.3","postgres":"^3.4.0","micromatch":"^4.0.8","typescript":"^5.3.3","drizzle-typebox":"^0.3.3","@hono/node-server":"^2.0.5","@sinclair/typebox":"^0.34.0"},"publishConfig":{"tag":"beta","access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"next":"^16.2.11","tsup":"^8.5.0","madge":"^8.0.0","vitest":"^4.0.6","@types/ws":"^8.18.1","@types/node":"^20.11.0","drizzle-kit":"1.0.0-rc.4","drizzle-orm":"1.0.0-rc.4","@types/micromatch":"^4.0.9","@vitest/coverage-v8":"^4.0.6","@electric-sql/pglite":"0.5.4"},"peerDependencies":{"next":"^16.2.11","drizzle-orm":">=1.0.0-rc.4 <2"},"optionalDependencies":{"ws":"^8.21.0","ioredis":"^5.4.1"},"peerDependenciesMeta":{"next":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/core_0.3.0-beta.9_1789401230699_0.819691460695186","host":"s3://npm-registry-packages-npm-production"}},"0.3.0-beta.10":{"name":"@spfn/core","version":"0.3.0-beta.10","keywords":["spfn","nextjs","backend","framework","typescript","type-safe","api","rest-api","crud","database","orm","drizzle-orm","postgres","redis","hono","fullstack","full-stack-framework","ai-coding-agent","claude-code","file-based-routing","transaction","repository-pattern"],"author":{"name":"Ray Im","email":"rayim@fxy.global"},"license":"MIT","_id":"@spfn/core@0.3.0-beta.10","maintainers":[{"name":"superfunction","email":"rayim@inflike.com"}],"homepage":"https://github.com/fxylabs/spfn/tree/main/packages/core#readme","bugs":{"url":"https://github.com/fxylabs/spfn/issues"},"dist":{"shasum":"d029cd3a01261a383810274eeec41256dd55f582","tarball":"https://registry.npmjs.org/@spfn/core/-/core-0.3.0-beta.10.tgz","fileCount":107,"integrity":"sha512-p2R86OND/mSMGeBpgYHSpOJoi4Cn3qVWwF+j3a8WcLVRzXXksMD+nV4BMk5PZYXzIzffw9rqVy0hX0EijPh0ng==","signatures":[{"sig":"MEQCIBy5Bw7DC2ID6GTwbfJbQTbjcMYk3rn2cG2+iRhsXXyCAiB9g0lzHcIzqgJHywM7Es6xge1qTnuBO/eJXMJVaxoJHA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spfn%2fcore@0.3.0-beta.10","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3169523},"type":"module","engines":{"node":">=20.0.0"},"exports":{"./db":{"types":"./dist/db/index.d.ts","import":"./dist/db/index.js","require":"./dist/db/index.js"},"./env":{"types":"./dist/env/index.d.ts","import":"./dist/env/index.js","require":"./dist/env/index.js"},"./job":{"types":"./dist/job/index.d.ts","import":"./dist/job/index.js","require":"./dist/job/index.js"},"./ops":{"types":"./dist/ops/index.d.ts","import":"./dist/ops/index.js","require":"./dist/ops/index.js"},"./authz":{"types":"./dist/authz/index.d.ts","import":"./dist/authz/index.js","require":"./dist/authz/index.js"},"./cache":{"types":"./dist/cache/index.d.ts","import":"./dist/cache/index.js","require":"./dist/cache/index.js"},"./event":{"types":"./dist/event/index.d.ts","import":"./dist/event/index.js","require":"./dist/event/index.js"},"./route":{"types":"./dist/route/index.d.ts","import":"./dist/route/index.js","require":"./dist/route/index.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","require":"./dist/client/index.js"},"./config":{"types":"./dist/config/index.d.ts","import":"./dist/config/index.js","require":"./dist/config/index.js"},"./errors":{"types":"./dist/errors/index.d.ts","import":"./dist/errors/index.js","require":"./dist/errors/index.js"},"./logger":{"types":"./dist/logger/index.d.ts","import":"./dist/logger/index.js","require":"./dist/logger/index.js"},"./nextjs":{"types":"./dist/nextjs/index.d.ts","import":"./dist/nextjs/index.js","require":"./dist/nextjs/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./codegen":{"types":"./dist/codegen/index.d.ts","import":"./dist/codegen/index.js","require":"./dist/codegen/index.js"},"./contract":{"types":"./dist/contract/index.d.ts","import":"./dist/contract/index.js","require":"./dist/contract/index.js"},"./event/ws":{"types":"./dist/event/ws/index.d.ts","import":"./dist/event/ws/index.js","require":"./dist/event/ws/index.js"},"./security":{"types":"./dist/security/index.d.ts","import":"./dist/security/index.js","require":"./dist/security/index.js"},"./event/sse":{"types":"./dist/event/sse/index.d.ts","import":"./dist/event/sse/index.js","require":"./dist/event/sse/index.js"},"./app-config":{"types":"./dist/app-config/index.d.ts","import":"./dist/app-config/index.js","require":"./dist/app-config/index.js"},"./env/loader":{"types":"./dist/env/loader.d.ts","import":"./dist/env/loader.js","require":"./dist/env/loader.js"},"./middleware":{"types":"./dist/middleware/index.d.ts","import":"./dist/middleware/index.js","require":"./dist/middleware/index.js"},"./route/types":{"types":"./dist/route/types.d.ts","import":"./dist/route/types.js","require":"./dist/route/types.js"},"./nextjs/server":{"types":"./dist/nextjs/server.d.ts","import":"./dist/nextjs/server.js","require":"./dist/nextjs/server.js"},"./event/ws/client":{"types":"./dist/event/ws/client.d.ts","import":"./dist/event/ws/client.js","require":"./dist/event/ws/client.js"},"./event/sse/client":{"types":"./dist/event/sse/client.d.ts","import":"./dist/event/sse/client.js","require":"./dist/event/sse/client.js"}},"gitHead":"53eeff9cbd8461bfc69b7c1279d536d6e077eb79","scripts":{"dev":"tsup","test":"vitest run","build":"pnpm check:circular && tsup","prepack":"node -e \"require('fs').copyFileSync('../../LICENSE','LICENSE')\"","test:db":"vitest run src/db","test:env":"vitest run src/env","test:cache":"vitest run src/cache","test:route":"vitest run src/route","test:watch":"vitest","type-check":"tsc --noEmit","test:client":"vitest run src/client","test:errors":"vitest run src/errors","test:logger":"vitest run src/logger","test:server":"vitest run src/server","publish:beta":"node ../../scripts/publish-package.mjs beta","test:codegen":"vitest run src/codegen","publish:alpha":"node ../../scripts/publish-package.mjs alpha","test:coverage":"vitest run --coverage","check:circular":"madge --circular --extensions ts src/","publish:latest":"node ../../scripts/publish-package.mjs latest","test:middleware":"vitest run src/middleware"},"_npmUser":{"name":"superfunction","email":"rayim@inflike.com"},"repository":{"url":"git+https://github.com/fxylabs/spfn.git","type":"git","directory":"packages/core"},"_npmVersion":"12.0.2","description":"Full-stack TypeScript backend for Next.js: file-based typed routes, Drizzle entities and repositories, PostgreSQL transactions and a generated end-to-end client, in one fixed vertical slice per feature","directories":{},"_nodeVersion":"22.23.2","dependencies":{"zod":"^4.4.3","hono":"^4.13.5","jiti":"^2.6.1","chalk":"^5.6.2","dotenv":"^17.2.3","undici":"^7.29.0","pg-boss":"^11.1.2","chokidar":"^4.0.3","postgres":"^3.4.0","micromatch":"^4.0.8","typescript":"^5.3.3","drizzle-typebox":"^0.3.3","@hono/node-server":"^2.0.5","@sinclair/typebox":"^0.34.0"},"publishConfig":{"tag":"beta","access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"next":"^16.3.3","tsup":"^8.5.0","madge":"^8.0.0","vitest":"^4.0.6","@types/ws":"^8.18.1","@types/node":"^20.11.0","drizzle-kit":"1.0.0-rc.4","drizzle-orm":"1.0.0-rc.4","@types/micromatch":"^4.0.9","@vitest/coverage-v8":"^4.0.6","@electric-sql/pglite":"0.5.4"},"peerDependencies":{"next":"^16.3.3","drizzle-orm":">=1.0.0-rc.4 <2"},"optionalDependencies":{"ws":"^8.21.0","ioredis":"^5.4.1"},"peerDependenciesMeta":{"next":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/core_0.3.0-beta.10_1789404836284_0.29177293301894713","host":"s3://npm-registry-packages-npm-production"}},"0.3.0-beta.11":{"name":"@spfn/core","version":"0.3.0-beta.11","keywords":["spfn","nextjs","backend","framework","typescript","type-safe","api","rest-api","crud","database","orm","drizzle-orm","postgres","redis","hono","fullstack","full-stack-framework","ai-coding-agent","claude-code","file-based-routing","transaction","repository-pattern"],"author":{"name":"Ray Im","email":"rayim@fxy.global"},"license":"MIT","_id":"@spfn/core@0.3.0-beta.11","maintainers":[{"name":"superfunction","email":"rayim@inflike.com"}],"homepage":"https://github.com/fxylabs/spfn/tree/main/packages/core#readme","bugs":{"url":"https://github.com/fxylabs/spfn/issues"},"dist":{"shasum":"409180862acbe0dc36e83563ded039bcf4acc577","tarball":"https://registry.npmjs.org/@spfn/core/-/core-0.3.0-beta.11.tgz","fileCount":107,"integrity":"sha512-2DTwzhe7CMHYMX2yWJhxoXH422Z11kTPpVXKHqmAIJUJe9nwBTi1i/tHHcFvWQUvk5Z+kfq2H+eZO9TGkh69Hg==","signatures":[{"sig":"MEUCIQC9U6vOFJXliFH9O4OacjhmMnZApRTIoV8e8E/HZJL3RAIgRsccFtavXjsFVzxKF2o3bROVBAcL7KBPCGmTSjxtLwI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIEDezJcumSTf8dy9jsuUFXwRJHvtIuxuHR2ti8P4ZyZhAiEA9rvVFDZCFgt23rJ28xja29MKl69UjtK5qIDXU2VvqS4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spfn%2fcore@0.3.0-beta.11","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3181193},"type":"module","engines":{"node":">=20.0.0"},"exports":{"./db":{"types":"./dist/db/index.d.ts","import":"./dist/db/index.js","require":"./dist/db/index.js"},"./env":{"types":"./dist/env/index.d.ts","import":"./dist/env/index.js","require":"./dist/env/index.js"},"./job":{"types":"./dist/job/index.d.ts","import":"./dist/job/index.js","require":"./dist/job/index.js"},"./ops":{"types":"./dist/ops/index.d.ts","import":"./dist/ops/index.js","require":"./dist/ops/index.js"},"./authz":{"types":"./dist/authz/index.d.ts","import":"./dist/authz/index.js","require":"./dist/authz/index.js"},"./cache":{"types":"./dist/cache/index.d.ts","import":"./dist/cache/index.js","require":"./dist/cache/index.js"},"./event":{"types":"./dist/event/index.d.ts","import":"./dist/event/index.js","require":"./dist/event/index.js"},"./route":{"types":"./dist/route/index.d.ts","import":"./dist/route/index.js","require":"./dist/route/index.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","require":"./dist/client/index.js"},"./config":{"types":"./dist/config/index.d.ts","import":"./dist/config/index.js","require":"./dist/config/index.js"},"./errors":{"types":"./dist/errors/index.d.ts","import":"./dist/errors/index.js","require":"./dist/errors/index.js"},"./logger":{"types":"./dist/logger/index.d.ts","import":"./dist/logger/index.js","require":"./dist/logger/index.js"},"./nextjs":{"types":"./dist/nextjs/index.d.ts","import":"./dist/nextjs/index.js","require":"./dist/nextjs/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./codegen":{"types":"./dist/codegen/index.d.ts","import":"./dist/codegen/index.js","require":"./dist/codegen/index.js"},"./contract":{"types":"./dist/contract/index.d.ts","import":"./dist/contract/index.js","require":"./dist/contract/index.js"},"./event/ws":{"types":"./dist/event/ws/index.d.ts","import":"./dist/event/ws/index.js","require":"./dist/event/ws/index.js"},"./security":{"types":"./dist/security/index.d.ts","import":"./dist/security/index.js","require":"./dist/security/index.js"},"./event/sse":{"types":"./dist/event/sse/index.d.ts","import":"./dist/event/sse/index.js","require":"./dist/event/sse/index.js"},"./app-config":{"types":"./dist/app-config/index.d.ts","import":"./dist/app-config/index.js","require":"./dist/app-config/index.js"},"./env/loader":{"types":"./dist/env/loader.d.ts","import":"./dist/env/loader.js","require":"./dist/env/loader.js"},"./middleware":{"types":"./dist/middleware/index.d.ts","import":"./dist/middleware/index.js","require":"./dist/middleware/index.js"},"./route/types":{"types":"./dist/route/types.d.ts","import":"./dist/route/types.js","require":"./dist/route/types.js"},"./nextjs/server":{"types":"./dist/nextjs/server.d.ts","import":"./dist/nextjs/server.js","require":"./dist/nextjs/server.js"},"./event/ws/client":{"types":"./dist/event/ws/client.d.ts","import":"./dist/event/ws/client.js","require":"./dist/event/ws/client.js"},"./event/sse/client":{"types":"./dist/event/sse/client.d.ts","import":"./dist/event/sse/client.js","require":"./dist/event/sse/client.js"}},"gitHead":"9658aa31fc349d6b9313420d57a8d4485f97968b","scripts":{"dev":"tsup","test":"vitest run","build":"pnpm check:circular && tsup","prepack":"node -e \"require('fs').copyFileSync('../../LICENSE','LICENSE')\"","test:db":"vitest run src/db","test:env":"vitest run src/env","test:cache":"vitest run src/cache","test:route":"vitest run src/route","test:watch":"vitest","type-check":"tsc --noEmit","test:client":"vitest run src/client","test:errors":"vitest run src/errors","test:logger":"vitest run src/logger","test:server":"vitest run src/server","publish:beta":"node ../../scripts/publish-package.mjs beta","test:codegen":"vitest run src/codegen","publish:alpha":"node ../../scripts/publish-package.mjs alpha","test:coverage":"vitest run --coverage","check:circular":"madge --circular --extensions ts src/","publish:latest":"node ../../scripts/publish-package.mjs latest","test:middleware":"vitest run src/middleware"},"_npmUser":{"name":"superfunction","email":"rayim@inflike.com"},"repository":{"url":"git+https://github.com/fxylabs/spfn.git","type":"git","directory":"packages/core"},"_npmVersion":"12.0.2","description":"Full-stack TypeScript backend for Next.js: file-based typed routes, Drizzle entities and repositories, PostgreSQL transactions and a generated end-to-end client, in one fixed vertical slice per feature","directories":{},"_nodeVersion":"22.23.2","dependencies":{"zod":"^4.4.3","hono":"^4.13.5","jiti":"^2.6.1","chalk":"^5.6.2","dotenv":"^17.2.3","undici":"^7.29.0","pg-boss":"^11.1.2","chokidar":"^4.0.3","postgres":"^3.4.0","micromatch":"^4.0.8","typescript":"^5.3.3","drizzle-typebox":"^0.3.3","@hono/node-server":"^2.0.5","@sinclair/typebox":"^0.34.0"},"publishConfig":{"tag":"beta","access":"public"},"_hasShrinkwrap":false,"devDependencies":{"next":"^16.3.3","tsup":"^8.5.0","madge":"^8.0.0","vitest":"^4.0.6","@types/ws":"^8.18.1","@types/node":"^20.11.0","drizzle-kit":"1.0.0-rc.4","drizzle-orm":"1.0.0-rc.4","@types/micromatch":"^4.0.9","@vitest/coverage-v8":"^4.0.6","@electric-sql/pglite":"0.5.4"},"peerDependencies":{"next":"^16.3.3","drizzle-orm":">=1.0.0-rc.4 <2"},"optionalDependencies":{"ws":"^8.21.0","ioredis":"^5.4.1"},"peerDependenciesMeta":{"next":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/core_0.3.0-beta.11_1790006825212_0.025812974997147853","host":"s3://npm-registry-packages-npm-production"}},"0.3.0-beta.12":{"name":"@spfn/core","version":"0.3.0-beta.12","keywords":["spfn","nextjs","backend","framework","typescript","type-safe","api","rest-api","crud","database","orm","drizzle-orm","postgres","redis","hono","fullstack","full-stack-framework","ai-coding-agent","claude-code","file-based-routing","transaction","repository-pattern"],"author":{"name":"Ray Im","email":"rayim@fxy.global"},"license":"MIT","_id":"@spfn/core@0.3.0-beta.12","maintainers":[{"name":"superfunction","email":"rayim@inflike.com"}],"homepage":"https://github.com/fxylabs/spfn/tree/main/packages/core#readme","bugs":{"url":"https://github.com/fxylabs/spfn/issues"},"dist":{"shasum":"d3b95d4887b742213c3459f34cd8ddaf2519b208","tarball":"https://registry.npmjs.org/@spfn/core/-/core-0.3.0-beta.12.tgz","fileCount":107,"integrity":"sha512-Emn4siO2B4rdsZ9wkc/DzP5AU3M0iCpS7ex2D7kx/dpoEQkcopE/stcb12q5RrfqNCrWZAt+CQhztTb02NR60Q==","signatures":[{"sig":"MEYCIQDb8y7y69RL1e9BcZNCPlKFd2jcJ03G0KJUlcRTES5l5wIhAIpIhK5aTdX2cbr2BpruCi5IQ7zlunnlQD+mlbm7NyNK","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQCBD1F3cEvIY9H7cr8JTxMakJaPFlJCqkqnkRjB2W01xwIhAPgiHwrPTZ9hX2td9V0zY9HHr1D5lfourinmW+pqhFla","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spfn%2fcore@0.3.0-beta.12","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3265737},"type":"module","engines":{"node":">=20.0.0"},"exports":{"./db":{"types":"./dist/db/index.d.ts","import":"./dist/db/index.js","require":"./dist/db/index.js"},"./env":{"types":"./dist/env/index.d.ts","import":"./dist/env/index.js","require":"./dist/env/index.js"},"./job":{"types":"./dist/job/index.d.ts","import":"./dist/job/index.js","require":"./dist/job/index.js"},"./ops":{"types":"./dist/ops/index.d.ts","import":"./dist/ops/index.js","require":"./dist/ops/index.js"},"./authz":{"types":"./dist/authz/index.d.ts","import":"./dist/authz/index.js","require":"./dist/authz/index.js"},"./cache":{"types":"./dist/cache/index.d.ts","import":"./dist/cache/index.js","require":"./dist/cache/index.js"},"./event":{"types":"./dist/event/index.d.ts","import":"./dist/event/index.js","require":"./dist/event/index.js"},"./route":{"types":"./dist/route/index.d.ts","import":"./dist/route/index.js","require":"./dist/route/index.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","require":"./dist/client/index.js"},"./config":{"types":"./dist/config/index.d.ts","import":"./dist/config/index.js","require":"./dist/config/index.js"},"./errors":{"types":"./dist/errors/index.d.ts","import":"./dist/errors/index.js","require":"./dist/errors/index.js"},"./logger":{"types":"./dist/logger/index.d.ts","import":"./dist/logger/index.js","require":"./dist/logger/index.js"},"./nextjs":{"types":"./dist/nextjs/index.d.ts","import":"./dist/nextjs/index.js","require":"./dist/nextjs/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./codegen":{"types":"./dist/codegen/index.d.ts","import":"./dist/codegen/index.js","require":"./dist/codegen/index.js"},"./contract":{"types":"./dist/contract/index.d.ts","import":"./dist/contract/index.js","require":"./dist/contract/index.js"},"./event/ws":{"types":"./dist/event/ws/index.d.ts","import":"./dist/event/ws/index.js","require":"./dist/event/ws/index.js"},"./security":{"types":"./dist/security/index.d.ts","import":"./dist/security/index.js","require":"./dist/security/index.js"},"./event/sse":{"types":"./dist/event/sse/index.d.ts","import":"./dist/event/sse/index.js","require":"./dist/event/sse/index.js"},"./app-config":{"types":"./dist/app-config/index.d.ts","import":"./dist/app-config/index.js","require":"./dist/app-config/index.js"},"./env/loader":{"types":"./dist/env/loader.d.ts","import":"./dist/env/loader.js","require":"./dist/env/loader.js"},"./middleware":{"types":"./dist/middleware/index.d.ts","import":"./dist/middleware/index.js","require":"./dist/middleware/index.js"},"./route/types":{"types":"./dist/route/types.d.ts","import":"./dist/route/types.js","require":"./dist/route/types.js"},"./nextjs/server":{"types":"./dist/nextjs/server.d.ts","import":"./dist/nextjs/server.js","require":"./dist/nextjs/server.js"},"./event/ws/client":{"types":"./dist/event/ws/client.d.ts","import":"./dist/event/ws/client.js","require":"./dist/event/ws/client.js"},"./event/sse/client":{"types":"./dist/event/sse/client.d.ts","import":"./dist/event/sse/client.js","require":"./dist/event/sse/client.js"}},"gitHead":"f5d91aa4d9a827a00b4ed011e0b922ee02e734d8","scripts":{"dev":"tsup","test":"vitest run","build":"pnpm check:circular && tsup","prepack":"node -e \"require('fs').copyFileSync('../../LICENSE','LICENSE')\"","test:db":"vitest run src/db","test:env":"vitest run src/env","test:cache":"vitest run src/cache","test:route":"vitest run src/route","test:watch":"vitest","type-check":"tsc --noEmit","test:client":"vitest run src/client","test:errors":"vitest run src/errors","test:logger":"vitest run src/logger","test:server":"vitest run src/server","publish:beta":"node ../../scripts/publish-package.mjs beta","test:codegen":"vitest run src/codegen","publish:alpha":"node ../../scripts/publish-package.mjs alpha","test:coverage":"vitest run --coverage","check:circular":"madge --circular --extensions ts src/","publish:latest":"node ../../scripts/publish-package.mjs latest","test:middleware":"vitest run src/middleware"},"_npmUser":{"name":"superfunction","email":"rayim@inflike.com"},"repository":{"url":"git+https://github.com/fxylabs/spfn.git","type":"git","directory":"packages/core"},"_npmVersion":"12.0.2","description":"Full-stack TypeScript backend for Next.js: file-based typed routes, Drizzle entities and repositories, PostgreSQL transactions and a generated end-to-end client, in one fixed vertical slice per feature","directories":{},"_nodeVersion":"22.23.2","dependencies":{"zod":"^4.4.3","hono":"^4.13.5","jiti":"^2.6.1","chalk":"^5.6.2","dotenv":"^17.2.3","undici":"^7.29.0","pg-boss":"^11.1.2","chokidar":"^4.0.3","postgres":"^3.4.0","micromatch":"^4.0.8","typescript":"^5.3.3","drizzle-typebox":"^0.3.3","@hono/node-server":"^2.0.5","@sinclair/typebox":"^0.34.0"},"publishConfig":{"tag":"beta","access":"public"},"_hasShrinkwrap":false,"devDependencies":{"next":"^16.3.3","tsup":"^8.5.0","madge":"^8.0.0","vitest":"^4.0.6","@types/ws":"^8.18.1","@types/node":"^20.11.0","drizzle-kit":"1.0.0-rc.4","drizzle-orm":"1.0.0-rc.4","@types/micromatch":"^4.0.9","@vitest/coverage-v8":"^4.0.6","@electric-sql/pglite":"0.5.4"},"peerDependencies":{"next":"^16.3.3","drizzle-orm":">=1.0.0-rc.4 <2"},"optionalDependencies":{"ws":"^8.21.0","ioredis":"^5.4.1"},"peerDependenciesMeta":{"next":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/core_0.3.0-beta.12_1790010406367_0.5475552854211843","host":"s3://npm-registry-packages-npm-production"}},"0.3.0-beta.13":{"name":"@spfn/core","version":"0.3.0-beta.13","keywords":["spfn","nextjs","backend","framework","typescript","type-safe","api","rest-api","crud","database","orm","drizzle-orm","postgres","redis","hono","fullstack","full-stack-framework","ai-coding-agent","claude-code","file-based-routing","transaction","repository-pattern"],"author":{"name":"Ray Im","email":"rayim@fxy.global"},"license":"MIT","_id":"@spfn/core@0.3.0-beta.13","maintainers":[{"name":"superfunction","email":"rayim@inflike.com"}],"homepage":"https://github.com/fxylabs/spfn/tree/main/packages/core#readme","bugs":{"url":"https://github.com/fxylabs/spfn/issues"},"dist":{"shasum":"c5bebb4415af9f994b0bb4691dad3f5567ba68d7","tarball":"https://registry.npmjs.org/@spfn/core/-/core-0.3.0-beta.13.tgz","fileCount":107,"integrity":"sha512-83Cce2WRIVkl2Upbe9hyJcYF/M7kVr+Pxp5t81CkhMzrc+oGOLkNSAVEsqe4ZDvIUY+9WEWf1pYWJ/Z+S+zDUA==","signatures":[{"sig":"MEYCIQCH1qdZ9VI6eiv6D5Rr8iWfyN7VsCmyQG3L1+p7XvTZTwIhAMJgYIzriRYkgfPuL8dx0/+1W3hiD2oPVdzHTexmg7u9","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQD82uZ/wWYGy8I6IrcoKFvuZRVXaltGccRKJgpNswQnjgIgRsJvJrwdCtcBEJNZ+dkQmQaeI0T3Uz6vhn+mmuNt+jQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spfn%2fcore@0.3.0-beta.13","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3269209},"type":"module","engines":{"node":">=20.0.0"},"exports":{"./db":{"types":"./dist/db/index.d.ts","import":"./dist/db/index.js","require":"./dist/db/index.js"},"./env":{"types":"./dist/env/index.d.ts","import":"./dist/env/index.js","require":"./dist/env/index.js"},"./job":{"types":"./dist/job/index.d.ts","import":"./dist/job/index.js","require":"./dist/job/index.js"},"./ops":{"types":"./dist/ops/index.d.ts","import":"./dist/ops/index.js","require":"./dist/ops/index.js"},"./authz":{"types":"./dist/authz/index.d.ts","import":"./dist/authz/index.js","require":"./dist/authz/index.js"},"./cache":{"types":"./dist/cache/index.d.ts","import":"./dist/cache/index.js","require":"./dist/cache/index.js"},"./event":{"types":"./dist/event/index.d.ts","import":"./dist/event/index.js","require":"./dist/event/index.js"},"./route":{"types":"./dist/route/index.d.ts","import":"./dist/route/index.js","require":"./dist/route/index.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","require":"./dist/client/index.js"},"./config":{"types":"./dist/config/index.d.ts","import":"./dist/config/index.js","require":"./dist/config/index.js"},"./errors":{"types":"./dist/errors/index.d.ts","import":"./dist/errors/index.js","require":"./dist/errors/index.js"},"./logger":{"types":"./dist/logger/index.d.ts","import":"./dist/logger/index.js","require":"./dist/logger/index.js"},"./nextjs":{"types":"./dist/nextjs/index.d.ts","import":"./dist/nextjs/index.js","require":"./dist/nextjs/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./codegen":{"types":"./dist/codegen/index.d.ts","import":"./dist/codegen/index.js","require":"./dist/codegen/index.js"},"./contract":{"types":"./dist/contract/index.d.ts","import":"./dist/contract/index.js","require":"./dist/contract/index.js"},"./event/ws":{"types":"./dist/event/ws/index.d.ts","import":"./dist/event/ws/index.js","require":"./dist/event/ws/index.js"},"./security":{"types":"./dist/security/index.d.ts","import":"./dist/security/index.js","require":"./dist/security/index.js"},"./event/sse":{"types":"./dist/event/sse/index.d.ts","import":"./dist/event/sse/index.js","require":"./dist/event/sse/index.js"},"./app-config":{"types":"./dist/app-config/index.d.ts","import":"./dist/app-config/index.js","require":"./dist/app-config/index.js"},"./env/loader":{"types":"./dist/env/loader.d.ts","import":"./dist/env/loader.js","require":"./dist/env/loader.js"},"./middleware":{"types":"./dist/middleware/index.d.ts","import":"./dist/middleware/index.js","require":"./dist/middleware/index.js"},"./route/types":{"types":"./dist/route/types.d.ts","import":"./dist/route/types.js","require":"./dist/route/types.js"},"./nextjs/server":{"types":"./dist/nextjs/server.d.ts","import":"./dist/nextjs/server.js","require":"./dist/nextjs/server.js"},"./event/ws/client":{"types":"./dist/event/ws/client.d.ts","import":"./dist/event/ws/client.js","require":"./dist/event/ws/client.js"},"./event/sse/client":{"types":"./dist/event/sse/client.d.ts","import":"./dist/event/sse/client.js","require":"./dist/event/sse/client.js"}},"gitHead":"58008bf380aea7fe59eb0cced91351eb1ca0b5d2","scripts":{"dev":"tsup","test":"vitest run","build":"pnpm check:circular && tsup","prepack":"node -e \"require('fs').copyFileSync('../../LICENSE','LICENSE')\"","test:db":"vitest run src/db","test:env":"vitest run src/env","test:cache":"vitest run src/cache","test:route":"vitest run src/route","test:watch":"vitest","type-check":"tsc --noEmit","test:client":"vitest run src/client","test:errors":"vitest run src/errors","test:logger":"vitest run src/logger","test:server":"vitest run src/server","publish:beta":"node ../../scripts/publish-package.mjs beta","test:codegen":"vitest run src/codegen","publish:alpha":"node ../../scripts/publish-package.mjs alpha","test:coverage":"vitest run --coverage","check:circular":"madge --circular --extensions ts src/","publish:latest":"node ../../scripts/publish-package.mjs latest","test:middleware":"vitest run src/middleware"},"_npmUser":{"name":"superfunction","email":"rayim@inflike.com"},"repository":{"url":"git+https://github.com/fxylabs/spfn.git","type":"git","directory":"packages/core"},"_npmVersion":"12.0.2","description":"Full-stack TypeScript backend for Next.js: file-based typed routes, Drizzle entities and repositories, PostgreSQL transactions and a generated end-to-end client, in one fixed vertical slice per feature","directories":{},"_nodeVersion":"22.23.2","dependencies":{"zod":"^4.4.3","hono":"^4.13.5","jiti":"^2.6.1","chalk":"^5.6.2","dotenv":"^17.2.3","undici":"^7.29.0","pg-boss":"^11.1.2","chokidar":"^4.0.3","postgres":"^3.4.0","micromatch":"^4.0.8","typescript":"^5.3.3","drizzle-typebox":"^0.3.3","@hono/node-server":"^2.0.5","@sinclair/typebox":"^0.34.0"},"publishConfig":{"tag":"beta","access":"public"},"_hasShrinkwrap":false,"devDependencies":{"next":"^16.3.3","tsup":"^8.5.0","madge":"^8.0.0","vitest":"^4.0.6","@types/ws":"^8.18.1","@types/node":"^20.11.0","drizzle-kit":"1.0.0-rc.4","drizzle-orm":"1.0.0-rc.4","@types/micromatch":"^4.0.9","@vitest/coverage-v8":"^4.0.6","@electric-sql/pglite":"0.5.4"},"peerDependencies":{"next":"^16.3.3","drizzle-orm":">=1.0.0-rc.4 <2"},"optionalDependencies":{"ws":"^8.21.0","ioredis":"^5.4.1"},"peerDependenciesMeta":{"next":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/core_0.3.0-beta.13_1790066902414_0.6500825136074417","host":"s3://npm-registry-packages-npm-production"}},"0.3.0-beta.14":{"name":"@spfn/core","version":"0.3.0-beta.14","keywords":["spfn","nextjs","backend","framework","typescript","type-safe","api","rest-api","crud","database","orm","drizzle-orm","postgres","redis","hono","fullstack","full-stack-framework","ai-coding-agent","claude-code","file-based-routing","transaction","repository-pattern"],"author":{"name":"Ray Im","email":"rayim@fxy.global"},"license":"MIT","_id":"@spfn/core@0.3.0-beta.14","maintainers":[{"name":"superfunction","email":"rayim@inflike.com"}],"homepage":"https://github.com/fxylabs/spfn/tree/main/packages/core#readme","bugs":{"url":"https://github.com/fxylabs/spfn/issues"},"dist":{"shasum":"fa777079d0da2096fcb4415cfa488c230b720bd6","tarball":"https://registry.npmjs.org/@spfn/core/-/core-0.3.0-beta.14.tgz","fileCount":107,"integrity":"sha512-jNAUr4/FdhhhSgjah40Sh/RIb29eeSMUEHgrbLSAFKG44Gxg3pFioEMiTTJwXYo8o39gSWC7BL/F5Okz/cMnmQ==","signatures":[{"sig":"MEUCIDW/Nuyls7Jj2mnsyzDVf5YGfoXrjRd0DzVGuJXhVOcBAiEAhC7shuRADUO0qX9U9GYu3YRfH0KAkRRN9CvL7m4yul8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIEFvHhuxYYHF6WZ/FfOtF6KyFUN3vMAyG1+x4b6d1eWGAiEAwg7952xphAiHfRxh8ATECAylafrzEvXj/u3rOkSwZU4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spfn%2fcore@0.3.0-beta.14","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3290020},"type":"module","engines":{"node":">=20.0.0"},"exports":{"./db":{"types":"./dist/db/index.d.ts","import":"./dist/db/index.js","require":"./dist/db/index.js"},"./env":{"types":"./dist/env/index.d.ts","import":"./dist/env/index.js","require":"./dist/env/index.js"},"./job":{"types":"./dist/job/index.d.ts","import":"./dist/job/index.js","require":"./dist/job/index.js"},"./ops":{"types":"./dist/ops/index.d.ts","import":"./dist/ops/index.js","require":"./dist/ops/index.js"},"./authz":{"types":"./dist/authz/index.d.ts","import":"./dist/authz/index.js","require":"./dist/authz/index.js"},"./cache":{"types":"./dist/cache/index.d.ts","import":"./dist/cache/index.js","require":"./dist/cache/index.js"},"./event":{"types":"./dist/event/index.d.ts","import":"./dist/event/index.js","require":"./dist/event/index.js"},"./route":{"types":"./dist/route/index.d.ts","import":"./dist/route/index.js","require":"./dist/route/index.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","require":"./dist/client/index.js"},"./config":{"types":"./dist/config/index.d.ts","import":"./dist/config/index.js","require":"./dist/config/index.js"},"./errors":{"types":"./dist/errors/index.d.ts","import":"./dist/errors/index.js","require":"./dist/errors/index.js"},"./logger":{"types":"./dist/logger/index.d.ts","import":"./dist/logger/index.js","require":"./dist/logger/index.js"},"./nextjs":{"types":"./dist/nextjs/index.d.ts","import":"./dist/nextjs/index.js","require":"./dist/nextjs/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./codegen":{"types":"./dist/codegen/index.d.ts","import":"./dist/codegen/index.js","require":"./dist/codegen/index.js"},"./contract":{"types":"./dist/contract/index.d.ts","import":"./dist/contract/index.js","require":"./dist/contract/index.js"},"./event/ws":{"types":"./dist/event/ws/index.d.ts","import":"./dist/event/ws/index.js","require":"./dist/event/ws/index.js"},"./security":{"types":"./dist/security/index.d.ts","import":"./dist/security/index.js","require":"./dist/security/index.js"},"./event/sse":{"types":"./dist/event/sse/index.d.ts","import":"./dist/event/sse/index.js","require":"./dist/event/sse/index.js"},"./app-config":{"types":"./dist/app-config/index.d.ts","import":"./dist/app-config/index.js","require":"./dist/app-config/index.js"},"./env/loader":{"types":"./dist/env/loader.d.ts","import":"./dist/env/loader.js","require":"./dist/env/loader.js"},"./middleware":{"types":"./dist/middleware/index.d.ts","import":"./dist/middleware/index.js","require":"./dist/middleware/index.js"},"./route/types":{"types":"./dist/route/types.d.ts","import":"./dist/route/types.js","require":"./dist/route/types.js"},"./nextjs/server":{"types":"./dist/nextjs/server.d.ts","import":"./dist/nextjs/server.js","require":"./dist/nextjs/server.js"},"./event/ws/client":{"types":"./dist/event/ws/client.d.ts","import":"./dist/event/ws/client.js","require":"./dist/event/ws/client.js"},"./event/sse/client":{"types":"./dist/event/sse/client.d.ts","import":"./dist/event/sse/client.js","require":"./dist/event/sse/client.js"}},"gitHead":"842f21e961ba356bf68cbe1f392781191b515fbf","scripts":{"dev":"tsup","test":"vitest run","build":"pnpm check:circular && tsup","prepack":"node -e \"require('fs').copyFileSync('../../LICENSE','LICENSE')\"","test:db":"vitest run src/db","test:env":"vitest run src/env","test:cache":"vitest run src/cache","test:route":"vitest run src/route","test:watch":"vitest","type-check":"tsc --noEmit","test:client":"vitest run src/client","test:errors":"vitest run src/errors","test:logger":"vitest run src/logger","test:server":"vitest run src/server","publish:beta":"node ../../scripts/publish-package.mjs beta","test:codegen":"vitest run src/codegen","publish:alpha":"node ../../scripts/publish-package.mjs alpha","test:coverage":"vitest run --coverage","check:circular":"madge --circular --extensions ts src/","publish:latest":"node ../../scripts/publish-package.mjs latest","test:middleware":"vitest run src/middleware"},"_npmUser":{"name":"superfunction","email":"rayim@inflike.com"},"repository":{"url":"git+https://github.com/fxylabs/spfn.git","type":"git","directory":"packages/core"},"_npmVersion":"12.0.2","description":"Full-stack TypeScript backend for Next.js: file-based typed routes, Drizzle entities and repositories, PostgreSQL transactions and a generated end-to-end client, in one fixed vertical slice per feature","directories":{},"_nodeVersion":"22.23.2","dependencies":{"zod":"^4.4.3","hono":"^4.13.5","jiti":"^2.6.1","chalk":"^5.6.2","dotenv":"^17.2.3","undici":"^7.29.0","pg-boss":"^11.1.2","chokidar":"^4.0.3","postgres":"^3.4.0","micromatch":"^4.0.8","typescript":"^5.3.3","drizzle-typebox":"^0.3.3","@hono/node-server":"^2.0.5","@sinclair/typebox":"^0.34.0"},"publishConfig":{"tag":"beta","access":"public"},"_hasShrinkwrap":false,"devDependencies":{"next":"^16.3.3","tsup":"^8.5.0","madge":"^8.0.0","vitest":"^4.0.6","@types/ws":"^8.18.1","@types/node":"^20.11.0","drizzle-kit":"1.0.0-rc.4","drizzle-orm":"1.0.0-rc.4","@types/micromatch":"^4.0.9","@vitest/coverage-v8":"^4.0.6","@electric-sql/pglite":"0.5.4"},"peerDependencies":{"next":"^16.3.3","drizzle-orm":">=1.0.0-rc.4 <2"},"optionalDependencies":{"ws":"^8.21.0","ioredis":"^5.4.1"},"peerDependenciesMeta":{"next":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/core_0.3.0-beta.14_1790072238085_0.9840217116591001","host":"s3://npm-registry-packages-npm-production"}},"0.3.0-beta.15":{"_id":"@spfn/core@0.3.0-beta.15","bugs":{"url":"https://github.com/fxylabs/spfn/issues"},"dist":{"shasum":"e4b72164c6d2011640fef940911da2efce80c740","tarball":"https://registry.npmjs.org/@spfn/core/-/core-0.3.0-beta.15.tgz","fileCount":107,"integrity":"sha512-uTl4TobOpUpvALQribK/JB5yupQ0Y69DyEir7Wd3wTt2GEphaI4ArjIsVSUYq6moiC48xQUFogTckBDfq5wSkA==","signatures":[{"sig":"MEQCIA6HMTiw+4ibutJ0awF0xpKuYid0RLVywou6UE4JhR5qAiAhErwCjfQGY8WM3Kd9+KO3YxQmtsqwCMNDAvl5VfWfQQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQCnQreJ48jPTThTuB/vEppo20EZdnaqtfkuawZC02ex6gIhAKip4hutyAL8aBh2cQEFQcVs/9T95MbH/6fYFpX2tSEg"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@spfn%2fcore@0.3.0-beta.15","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3291760},"name":"@spfn/core","type":"module","author":{"name":"Ray Im","email":"rayim@fxy.global"},"engines":{"node":">=20.0.0"},"exports":{"./db":{"types":"./dist/db/index.d.ts","import":"./dist/db/index.js","require":"./dist/db/index.js"},"./env":{"types":"./dist/env/index.d.ts","import":"./dist/env/index.js","require":"./dist/env/index.js"},"./job":{"types":"./dist/job/index.d.ts","import":"./dist/job/index.js","require":"./dist/job/index.js"},"./ops":{"types":"./dist/ops/index.d.ts","import":"./dist/ops/index.js","require":"./dist/ops/index.js"},"./authz":{"types":"./dist/authz/index.d.ts","import":"./dist/authz/index.js","require":"./dist/authz/index.js"},"./cache":{"types":"./dist/cache/index.d.ts","import":"./dist/cache/index.js","require":"./dist/cache/index.js"},"./event":{"types":"./dist/event/index.d.ts","import":"./dist/event/index.js","require":"./dist/event/index.js"},"./route":{"types":"./dist/route/index.d.ts","import":"./dist/route/index.js","require":"./dist/route/index.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js","require":"./dist/client/index.js"},"./config":{"types":"./dist/config/index.d.ts","import":"./dist/config/index.js","require":"./dist/config/index.js"},"./errors":{"types":"./dist/errors/index.d.ts","import":"./dist/errors/index.js","require":"./dist/errors/index.js"},"./logger":{"types":"./dist/logger/index.d.ts","import":"./dist/logger/index.js","require":"./dist/logger/index.js"},"./nextjs":{"types":"./dist/nextjs/index.d.ts","import":"./dist/nextjs/index.js","require":"./dist/nextjs/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./codegen":{"types":"./dist/codegen/index.d.ts","import":"./dist/codegen/index.js","require":"./dist/codegen/index.js"},"./contract":{"types":"./dist/contract/index.d.ts","import":"./dist/contract/index.js","require":"./dist/contract/index.js"},"./event/ws":{"types":"./dist/event/ws/index.d.ts","import":"./dist/event/ws/index.js","require":"./dist/event/ws/index.js"},"./security":{"types":"./dist/security/index.d.ts","import":"./dist/security/index.js","require":"./dist/security/index.js"},"./event/sse":{"types":"./dist/event/sse/index.d.ts","import":"./dist/event/sse/index.js","require":"./dist/event/sse/index.js"},"./app-config":{"types":"./dist/app-config/index.d.ts","import":"./dist/app-config/index.js","require":"./dist/app-config/index.js"},"./env/loader":{"types":"./dist/env/loader.d.ts","import":"./dist/env/loader.js","require":"./dist/env/loader.js"},"./middleware":{"types":"./dist/middleware/index.d.ts","import":"./dist/middleware/index.js","require":"./dist/middleware/index.js"},"./route/types":{"types":"./dist/route/types.d.ts","import":"./dist/route/types.js","require":"./dist/route/types.js"},"./nextjs/server":{"types":"./dist/nextjs/server.d.ts","import":"./dist/nextjs/server.js","require":"./dist/nextjs/server.js"},"./event/ws/client":{"types":"./dist/event/ws/client.d.ts","import":"./dist/event/ws/client.js","require":"./dist/event/ws/client.js"},"./event/sse/client":{"types":"./dist/event/sse/client.d.ts","import":"./dist/event/sse/client.js","require":"./dist/event/sse/client.js"}},"gitHead":"0bbce54053431a22ee3b49c45c1c6f12785bf422","license":"MIT","scripts":{"dev":"tsup","test":"vitest run","build":"pnpm check:circular && tsup","prepack":"node -e \"require('fs').copyFileSync('../../LICENSE','LICENSE')\"","test:db":"vitest run src/db","test:env":"vitest run src/env","test:cache":"vitest run src/cache","test:route":"vitest run src/route","test:watch":"vitest","type-check":"tsc --noEmit","test:client":"vitest run src/client","test:errors":"vitest run src/errors","test:logger":"vitest run src/logger","test:server":"vitest run src/server","publish:beta":"node ../../scripts/publish-package.mjs beta","test:codegen":"vitest run src/codegen","publish:alpha":"node ../../scripts/publish-package.mjs alpha","test:coverage":"vitest run --coverage","check:circular":"madge --circular --extensions ts src/","publish:latest":"node ../../scripts/publish-package.mjs latest","test:middleware":"vitest run src/middleware"},"version":"0.3.0-beta.15","_npmUser":{"name":"superfunction","email":"rayim@inflike.com"},"homepage":"https://github.com/fxylabs/spfn/tree/main/packages/core#readme","keywords":["spfn","nextjs","backend","framework","typescript","type-safe","api","rest-api","crud","database","orm","drizzle-orm","postgres","redis","hono","fullstack","full-stack-framework","ai-coding-agent","claude-code","file-based-routing","transaction","repository-pattern"],"repository":{"url":"git+https://github.com/fxylabs/spfn.git","type":"git","directory":"packages/core"},"_npmVersion":"12.1.0","description":"Full-stack TypeScript backend for Next.js: file-based typed routes, Drizzle entities and repositories, PostgreSQL transactions and a generated end-to-end client, in one fixed vertical slice per feature","directories":{},"maintainers":[{"name":"superfunction","email":"rayim@inflike.com"}],"_nodeVersion":"22.23.2","dependencies":{"zod":"^4.4.3","hono":"^4.13.5","jiti":"^2.6.1","chalk":"^5.6.2","dotenv":"^17.2.3","undici":"^7.29.0","pg-boss":"^11.1.2","chokidar":"^4.0.3","postgres":"^3.4.0","micromatch":"^4.0.8","typescript":"^5.3.3","drizzle-typebox":"^0.3.3","@hono/node-server":"^2.0.5","@sinclair/typebox":"^0.34.0"},"publishConfig":{"tag":"beta","access":"public"},"_hasShrinkwrap":false,"devDependencies":{"next":"^16.3.3","tsup":"^8.5.0","madge":"^8.0.0","vitest":"^4.0.6","@types/ws":"^8.18.1","@types/node":"^20.11.0","drizzle-kit":"1.0.0-rc.4","drizzle-orm":"1.0.0-rc.4","@types/micromatch":"^4.0.9","@vitest/coverage-v8":"^4.0.6","@electric-sql/pglite":"0.5.4"},"peerDependencies":{"next":"^16.3.3","drizzle-orm":">=1.0.0-rc.4 <2"},"optionalDependencies":{"ws":"^8.21.0","ioredis":"^5.4.1"},"peerDependenciesMeta":{"next":{"optional":true}},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/core_0.3.0-beta.15_1790585373800_0.4876838710920881"}}},"time":{"created":"2025-10-11T14:46:06.575Z","modified":"2026-09-28T08:49:34.265Z","0.1.0-alpha.1":"2025-10-11T14:46:06.953Z","0.1.0-alpha.2":"2025-10-11T15:23:31.665Z","0.1.0-alpha.3":"2025-10-13T04:32:27.019Z","0.1.0-alpha.4":"2025-10-13T07:48:57.990Z","0.1.0-alpha.5":"2025-10-13T09:17:33.978Z","0.1.0-alpha.6":"2025-10-13T15:36:02.920Z","0.1.0-alpha.7":"2025-10-14T04:58:30.388Z","0.1.0-alpha.8":"2025-10-14T05:24:46.576Z","0.1.0-alpha.11":"2025-10-14T07:29:43.393Z","0.1.0-alpha.12":"2025-10-14T07:49:29.728Z","0.1.0-alpha.13":"2025-10-14T08:11:51.533Z","0.1.0-alpha.14":"2025-10-14T09:59:58.120Z","0.1.0-alpha.15":"2025-10-14T10:14:19.303Z","0.1.0-alpha.16":"2025-10-14T15:57:12.495Z","0.1.0-alpha.20":"2025-10-16T04:33:08.969Z","0.1.0-alpha.21":"2025-10-16T05:22:44.944Z","0.1.0-alpha.22":"2025-10-17T08:23:29.231Z","0.1.0-alpha.23":"2025-10-17T09:05:57.166Z","0.1.0-alpha.24":"2025-10-17T09:54:01.578Z","0.1.0-alpha.25":"2025-10-17T12:35:22.404Z","0.1.0-alpha.26":"2025-10-17T13:59:49.274Z","0.1.0-alpha.27":"2025-10-18T03:23:05.072Z","0.1.0-alpha.28":"2025-10-18T11:18:35.958Z","0.1.0-alpha.29":"2025-10-18T14:41:36.130Z","0.1.0-alpha.30":"2025-10-18T14:50:47.303Z","0.1.0-alpha.31":"2025-10-19T04:19:51.391Z","0.1.0-alpha.32":"2025-10-19T11:31:11.201Z","0.1.0-alpha.40":"2025-10-21T10:36:13.146Z","0.1.0-alpha.41":"2025-10-21T13:32:00.999Z","0.1.0-alpha.42":"2025-10-21T14:00:13.783Z","0.1.0-alpha.43":"2025-10-21T14:10:30.102Z","0.1.0-alpha.44":"2025-10-22T14:04:25.609Z","0.1.0-alpha.45":"2025-10-22T14:42:30.999Z","0.1.0-alpha.49":"2025-10-23T04:06:42.617Z","0.1.0-alpha.50":"2025-10-23T04:32:05.562Z","0.1.0-alpha.51":"2025-10-23T05:51:56.750Z","0.1.0-alpha.52":"2025-10-26T15:18:44.567Z","0.1.0-alpha.53":"2025-10-27T12:01:09.834Z","0.1.0-alpha.54":"2025-10-27T14:43:41.975Z","0.1.0-alpha.55":"2025-10-28T05:13:56.208Z","0.1.0-alpha.56":"2025-10-28T10:23:26.750Z","0.1.0-alpha.60":"2025-10-29T12:34:52.985Z","0.1.0-alpha.61":"2025-10-30T11:09:17.849Z","0.1.0-alpha.62":"2025-10-30T12:08:13.669Z","0.1.0-alpha.63":"2025-10-31T15:14:07.462Z","0.1.0-alpha.64":"2025-11-01T00:44:28.538Z","0.1.0-alpha.65":"2025-11-02T02:51:43.109Z","0.1.0-alpha.68":"2025-11-02T11:36:15.675Z","0.1.0-alpha.72":"2025-11-02T16:25:33.460Z","0.1.0-alpha.74":"2025-11-03T06:03:52.656Z","0.1.0-alpha.81":"2025-11-04T17:01:18.658Z","0.1.0-alpha.82":"2025-11-05T08:26:24.000Z","0.1.0-alpha.83":"2025-11-05T15:53:06.550Z","0.1.0-alpha.84":"2025-11-06T11:53:22.563Z","0.1.0-alpha.85":"2025-11-07T03:51:12.766Z","0.1.0-alpha.86":"2025-11-09T13:36:08.239Z","0.1.0-alpha.88":"2025-11-09T15:17:41.826Z","0.2.0-beta.1":"2025-12-08T04:41:43.899Z","0.2.0-beta.2":"2025-12-09T08:34:54.641Z","0.2.0-beta.3":"2025-12-10T14:30:24.747Z","0.2.0-beta.4":"2025-12-15T00:38:08.777Z","0.2.0-beta.5":"2025-12-16T09:53:28.201Z","0.2.0-beta.6":"2025-12-23T04:57:32.719Z","0.2.0-beta.8":"2026-01-14T06:28:49.402Z","0.2.0-beta.9":"2026-01-14T06:41:30.486Z","0.2.0-beta.10":"2026-01-14T06:56:53.022Z","0.2.0-beta.11":"2026-01-25T12:42:49.111Z","0.2.0-beta.12":"2026-01-27T03:02:54.348Z","0.2.0-beta.13":"2026-02-14T14:54:29.522Z","0.2.0-beta.14":"2026-02-16T04:54:09.109Z","0.2.0-beta.15":"2026-02-17T03:53:53.001Z","0.2.0-beta.16":"2026-02-17T07:26:50.825Z","0.2.0-beta.17":"2026-02-18T13:36:52.193Z","0.2.0-beta.18":"2026-02-19T05:14:23.036Z","0.2.0-beta.19":"2026-02-20T08:23:59.637Z","0.2.0-beta.20":"2026-02-22T05:05:36.502Z","0.2.0-beta.21":"2026-02-22T07:28:37.364Z","0.2.0-beta.22":"2026-02-22T09:34:50.537Z","0.2.0-beta.23":"2026-02-23T07:59:48.136Z","0.2.0-beta.24":"2026-02-25T16:19:46.287Z","0.2.0-beta.25":"2026-02-26T06:27:47.986Z","0.2.0-beta.26":"2026-02-26T07:20:03.521Z","0.2.0-beta.27":"2026-03-03T08:44:00.409Z","0.2.0-beta.28":"2026-03-06T14:38:43.346Z","0.2.0-beta.29":"2026-03-06T14:58:06.846Z","0.2.0-beta.30":"2026-03-06T15:52:49.258Z","0.2.0-beta.31":"2026-03-07T03:58:19.727Z","0.2.0-beta.32":"2026-03-11T09:20:34.836Z","0.2.0-beta.33":"2026-03-12T12:30:06.171Z","0.2.0-beta.34":"2026-03-12T13:55:29.090Z","0.2.0-beta.35":"2026-03-12T15:04:19.507Z","0.2.0-beta.36":"2026-03-15T16:09:14.213Z","0.2.0-beta.37":"2026-03-27T06:20:17.249Z","0.2.0-beta.38":"2026-03-27T15:41:46.285Z","0.2.0-beta.39":"2026-03-29T12:09:53.630Z","0.2.0-beta.40":"2026-03-30T16:09:44.791Z","0.2.0-beta.42":"2026-04-02T04:18:46.559Z","0.2.0-beta.43":"2026-04-06T05:50:56.422Z","0.2.0-beta.44":"2026-04-07T03:33:26.699Z","0.2.0-beta.45":"2026-04-14T07:11:51.972Z","0.2.0-beta.47":"2026-04-22T15:39:52.953Z","0.2.0-beta.48":"2026-05-09T14:12:34.317Z","0.2.0-beta.49":"2026-06-09T10:35:18.858Z","0.2.0-beta.50":"2026-06-16T09:02:31.476Z","0.2.0-beta.51":"2026-06-17T10:03:56.302Z","0.2.0-beta.52":"2026-06-20T07:26:19.592Z","0.2.0-beta.53":"2026-06-24T12:25:10.291Z","0.2.0-beta.54":"2026-06-27T08:24:20.562Z","0.2.0-beta.55":"2026-06-27T08:41:45.027Z","0.2.0-beta.56":"2026-06-27T13:41:01.627Z","0.2.0-beta.57":"2026-06-27T15:46:58.061Z","0.2.0-beta.59":"2026-07-02T11:22:17.760Z","0.2.0-beta.64":"2026-07-22T06:50:22.384Z","0.2.0-beta.66":"2026-07-23T17:26:06.008Z","0.2.0-beta.67":"2026-08-01T13:10:35.922Z","0.2.0-beta.68":"2026-08-05T07:06:21.434Z","0.2.0-beta.69":"2026-08-05T10:19:54.231Z","0.2.0-beta.70":"2026-08-05T10:47:39.180Z","0.2.0-beta.71":"2026-08-06T07:09:41.733Z","0.2.0-beta.72":"2026-08-06T09:03:21.231Z","0.3.0-beta.1":"2026-08-08T05:09:27.152Z","0.3.0-beta.2":"2026-08-08T13:52:34.974Z","0.3.0-beta.3":"2026-08-09T13:55:32.717Z","0.3.0-beta.4":"2026-08-10T07:37:09.632Z","0.3.0-beta.5":"2026-08-14T04:16:47.502Z","0.3.0-beta.6":"2026-09-02T02:16:51.711Z","0.3.0-beta.7":"2026-09-06T14:59:31.549Z","0.3.0-beta.8":"2026-09-07T06:30:25.235Z","0.3.0-beta.9":"2026-09-14T15:53:50.845Z","0.3.0-beta.10":"2026-09-14T16:53:56.495Z","0.3.0-beta.11":"2026-09-21T16:07:05.350Z","0.3.0-beta.12":"2026-09-21T17:06:46.462Z","0.3.0-beta.13":"2026-09-22T08:48:22.539Z","0.3.0-beta.14":"2026-09-22T10:17:18.239Z","0.3.0-beta.15":"2026-09-28T08:49:33.907Z"},"bugs":{"url":"https://github.com/fxylabs/spfn/issues"},"author":{"name":"Ray Im","email":"rayim@fxy.global"},"license":"MIT","homepage":"https://github.com/fxylabs/spfn/tree/main/packages/core#readme","keywords":["spfn","nextjs","backend","framework","typescript","type-safe","api","rest-api","crud","database","orm","drizzle-orm","postgres","redis","hono","fullstack","full-stack-framework","ai-coding-agent","claude-code","file-based-routing","transaction","repository-pattern"],"repository":{"url":"git+https://github.com/fxylabs/spfn.git","type":"git","directory":"packages/core"},"description":"Full-stack TypeScript backend for Next.js: file-based typed routes, Drizzle entities and repositories, PostgreSQL transactions and a generated end-to-end client, in one fixed vertical slice per feature","maintainers":[{"name":"superfunction","email":"rayim@inflike.com"}],"readme":"# @spfn/core\n\n> **The backend runtime for taking an AI-built app from prototype to production**\n\n`@spfn/core` is the package every SPFN app is built on. It decides the shape of a\nfeature — an entity, a repository, a route, a router registration — so that neither you\nnor your coding agent has to invent one per feature. Everything else in SPFN\n(`@spfn/auth`, `@spfn/mcp`, `@spfn/storage`, …) plugs into it.\n\nFixing the shape is an answer to [architecture drift](https://superfunction.xyz/architecture-drift)\n— a codebase acquiring several structures because each feature was arranged freshly. The\nusual answers detect it after the fact; this one leaves nothing to decide. It removes\ndrift that comes from structural choice, and nothing else: two services can still\nimplement the same rule differently inside a correct shape.\n\n📖 **[superfunction.xyz](https://superfunction.xyz)** — docs and the full-stack tutorial ·\n[repository README](https://github.com/fxylabs/spfn) for the whole framework.\n\n> **Status — Beta (`0.x`).** The public API is stabilizing but may still change between\n> minor releases before `1.0`. Pin your version and install from the `@beta` tag.\n\n---\n\n## What is @spfn/core?\n\nA TypeScript backend runtime with four parts, used together:\n\n- **A route DSL** — `route.get(path).input({...}).handler(...)`, validated at runtime by\n  TypeBox and typed at compile time from the same schema.\n- **A data layer** — PostgreSQL through Drizzle ORM, with `BaseRepository`, schema\n  helpers, and transactions that propagate automatically.\n- **A server** — a Hono app you start as a long-lived process, or mount as serverless\n  functions on Vercel.\n- **A Next.js bridge** — an RPC proxy and a typed client, so a route's input and output\n  types are the same object on both sides of the network.\n\nWhat it is not: a frontend framework, an ORM, or a place to keep your business rules.\nNext.js owns the frontend, Drizzle owns the SQL, and your services own the rules.\n\n---\n\n## How do I install it?\n\n```bash\npnpm add @spfn/core@beta drizzle-orm@1.0.0-rc.4 postgres pg\n# optional peer: next ^16.3.3   (only for the Next.js bridge)\n```\n\nNode `>=20.0.0`. ESM only.\n\n> **Declare Drizzle and the Postgres drivers in your own app, not just in SPFN.**\n> `@spfn/core` takes `drizzle-orm` as a peer dependency, and Drizzle changes how it\n> resolves types depending on which driver packages are present. If your app does not\n> pin the same ORM and drivers, pnpm can install a second copy of Drizzle — and then\n> `BaseRepository` generics collapse to `unknown` and your RPC responses lose their\n> types. `spfn create` adds these for you; add them by hand only when wiring SPFN into\n> an app that already exists.\n\nOptional dependencies, installed only if you use the feature: `ioredis` (cache) and\n`ws` (WebSocket events). `pg-boss` ships as a direct dependency for background jobs.\n\n---\n\n## What does one feature look like?\n\nFour files, always the same four, always in the same places:\n\n```\nsrc/server/\n  entities/order.ts        # the data shape (Drizzle table)\n  repositories/order.ts    # persistence (extends BaseRepository)\n  routes/orders.ts         # the validated API contract\n  router.ts                # registration\n```\n\nThe point is not that this arrangement is uniquely correct. The point is that it is\ndecided. An agent asked for \"add orders\" twice produces the same code twice, because\nthere is nothing left to choose.\n\n---\n\n## How does a route's type reach the browser?\n\nThrough TypeScript inference, not generated client code. One artifact is generated —\nthe route map the RPC proxy needs — and nothing else.\n\n```\n ① route DSL            ② defineRouter           ③ defineServerConfig → startServer\n route.get('/users/:id')   defineRouter({ getUser,    defineServerConfig()\n   .input({ params })        createUser })               .routes(appRouter).build()\n   .handler(c => …)        export type AppRouter        startServer()  →  Hono on :8790\n        │                       = typeof appRouter            ▲\n        │ TypeBox = runtime validation + compile-time types   │ registerRoutes mounts routes\n        ▼                                                     │\n ④ codegen (@spfn/core:route-map)  ──►  routeMap = { getUser: { method:'GET', path:'/users/:id' }, … }\n        │\n        ▼\n ⑤ Next.js RPC proxy                         ⑥ typed client\n app/api/rpc/[routeName]/route.ts            lib/api.ts\n createRpcProxy({ routeMap })                createApi<AppRouter>()   (no codegen for the client)\n   GET/POST /api/rpc/{routeName}               api.getUser.call({ params:{ id } })\n   resolves real method+path from routeMap       └─ fully typed input + output\n   forwards to backend, runs interceptors\n```\n\n1. **Define a route** with `route.<method>(path).input({...}).handler(c => …)` from\n   `@spfn/core/route`. The TypeBox schemas in `.input()` do double duty: they validate\n   the request at runtime and give the handler (`await c.data()`) and the client their\n   compile-time types. The handler's **return type is inferred** — you never write a\n   response type.\n2. **Compose routes** with `defineRouter({ … })` and export\n   `type AppRouter = typeof appRouter`. That type is the single source of truth for the\n   client.\n3. **Boot the server** with `defineServerConfig().routes(appRouter).build()` and\n   `startServer()` from `@spfn/core/server`. It wires `ErrorHandler` and\n   `RequestLogger`, initializes the database and cache, mounts the routes, and starts\n   jobs and events. A request goes: Hono match → global middleware → route middleware\n   (`.use([...])`, e.g. `Transactional()`) → input validation → handler → response.\n4. **Generate the route map** with `pnpm codegen`. It emits\n   `routeName → { method, path }` — the only thing the proxy needs to find the real\n   backend endpoint.\n5. **Mount the RPC proxy** in Next.js as the `app/api/rpc/[routeName]/route.ts`\n   catch-all. The browser only ever sends `GET` (no body) or `POST` (body or formData)\n   to `/api/rpc/{routeName}`; the proxy looks up `routeMap[routeName]`, substitutes\n   `:params`, and forwards with the real method. The generated map already carries the\n   routes of the packages the app router mounts with `.packages()`; `eventRouteMap` is\n   merged by hand, being a constant rather than a mounted router.\n6. **Call it** through `createApi<AppRouter>()`. The client is a `Proxy` over the\n   `AppRouter` type — typed in and out, with no runtime cost for the types. Errors\n   arrive as `ApiError`, or as the original error class when that class is registered in\n   the client's `errorRegistry`.\n\n---\n\n## Show me the whole thing in code\n\n```typescript\n// server/router.ts — ① + ②\nimport { defineRouter, route } from '@spfn/core/route';\nimport { Transactional } from '@spfn/core/db';\nimport { Type } from '@sinclair/typebox';\n\nexport const appRouter = defineRouter({\n    getUser: route.get('/users/:id')\n        .input({ params: Type.Object({ id: Type.String() }) })\n        .handler(async (c) =>\n        {\n            const { params } = await c.data();   // params.id: string\n            return { id: params.id, name: 'John' };   // return type inferred\n        }),\n\n    createUser: route.post('/users')\n        .input({ body: Type.Object({ name: Type.String() }) })\n        .use([Transactional()])                  // commit on return, rollback on throw\n        .handler(async (c) =>\n        {\n            const { body } = await c.data();\n            return { id: '2', name: body.name };\n        }),\n});\n\nexport type AppRouter = typeof appRouter;\n```\n\n```typescript\n// server/index.ts — ③\nimport { defineServerConfig, startServer } from '@spfn/core/server';\nimport { appRouter } from './router';\n\nexport default defineServerConfig().port(8790).routes(appRouter).build();\nawait startServer();   // Hono on :8790\n```\n\n```typescript\n// app/api/rpc/[routeName]/route.ts — ⑤  (server-only)\nimport { createRpcProxy } from '@spfn/core/nextjs/server';\nimport { routeMap } from '@/generated/route-map';   // ④ codegen output\n\nexport const { GET, POST } = createRpcProxy({ routeMap });\n```\n\n```typescript\n// lib/api.ts — ⑥  (client-safe; no codegen)\nimport { createApi } from '@spfn/core/nextjs';\nimport type { AppRouter } from '@/server/router';\n\nexport const api = createApi<AppRouter>();\n\n// the same client in a Server Component, a Client Component or a Server Action:\nconst user = await api.getUser.call({ params: { id: '123' } });    // typed { id, name }\nconst made = await api.createUser.call({ body: { name: 'A' } });\n```\n\nThat the client is isomorphic does not make the three callers interchangeable. **A page's\ninitial data is awaited in the Server Component**, where\n`api.getUser.fetchOptions({ next: { revalidate, tags } }).call(…)` participates in\nNext.js caching and reaches the backend without a browser round trip. Fetching that same\nfirst paint from a `'use client'` component inside a `useEffect` is the anti-pattern: it\nships a loading state and a second network hop for data the server already had. Client\nComponents and Server Actions are for what happens after the first paint — interaction\nand mutation. Cache tags, revalidation and SSR cookie forwarding are in\n[the Next.js bridge docs](https://superfunction.xyz/docs/packages/core/nextjs).\n\n---\n\n## How does a repository talk to the database?\n\nThrough `BaseRepository`. Extending it gives a repository two transaction-aware\nconnections — `this.db` (write/primary) and `this.readDb` (the replica, when one is\nconfigured) — plus the CRUD set as protected methods.\n\n```typescript\n// server/repositories/order.ts\nimport { BaseRepository } from '@spfn/core/db';\nimport { desc } from 'drizzle-orm';\nimport { orders } from '../entities/order';\n\nexport class OrderRepository extends BaseRepository\n{\n    findRecentFor(userId: string)\n    {\n        return this._findMany(orders, { where: { userId }, orderBy: desc(orders.createdAt) });\n    }\n\n    place(data: { userId: string; total: number })\n    {\n        return this._create(orders, data);\n    }\n}\n\nexport const orderRepo = new OrderRepository();\n```\n\nHandlers never import drizzle query builders; repositories do. `_findMany` reads through\n`this.readDb`, `_create` writes through `this.db`, and both getters resolve to the active\ntransaction's connection when there is one — so the same method is correct inside a\ntransaction and outside it. When a helper cannot express a query, drop to\n`this.readDb.select()…` inside the repository rather than in the handler. The full\nprotected CRUD set is in [src/db](./src/db/README.md).\n\n---\n\n## Where do transactions and their side effects go?\n\n`Transactional()` covers the route case — commit on return, rollback on throw. Two rules\ndecide the rest.\n\n**Nothing takes a `tx` parameter.** The transaction travels in AsyncLocalStorage, so\n`this.db` inside a repository already resolves to it. A service that accepts `tx` and\nthreads it downward re-implements propagation that already happened, and the first caller\nthat forgets to pass it writes outside the transaction. For a service, script or job with\nno route around it, open one with `runInTransaction(fn, options?)`;\n`runWithTransaction(tx, txId, fn)` is the lower-level primitive that binds an existing\nDrizzle transaction into the context.\n\n**Side effects go on the commit hooks, not inline.** An event emitted or a mail sent from\ninside the transaction still went out when the transaction later rolls back.\n\n| Hook | When it runs | What it is for |\n|---|---|---|\n| `onBeforeCommit(fn)` | Inside the still-open transaction, just before commit — a throw aborts and rolls back | Last-moment invariant checks, and statements that must land in the same commit |\n| `onAfterCommit(fn)` | After the root transaction commits, outside the transaction context; errors are logged, never thrown | Events, mail, cache invalidation — anything the outside world observes |\n| `onAfterRollback(fn)` | After the root transaction rolls back, before the causing error propagates; errors are logged, never thrown | Undoing external work that cannot roll itself back, such as an object already uploaded |\n\nAll three import from `@spfn/core/db`, can be registered anywhere inside the transaction,\nand bubble to the **root** transaction — a nested block's callbacks fire on the outermost\noutcome, not on a savepoint's.\n\n```typescript\nimport { runInTransaction, onAfterCommit } from '@spfn/core/db';\n\nexport async function placeOrder(input: { userId: string; total: number })\n{\n    return runInTransaction(async () =>\n    {\n        const order = await orderRepo.place(input);   // no tx argument, at any depth\n        onAfterCommit(() => orderPlacedEvent.emit({ orderId: order.id }));\n\n        return order;\n    });\n}\n```\n\n---\n\n## What else can defineServerConfig configure?\n\n`.port()` and `.routes()` are the two every app calls. The rest of the builder is how an\napp wires its infrastructure without touching the server's boot sequence. Every method\nreturns the builder; `.build()` ends the chain.\n\n| Method | What it configures |\n|---|---|\n| `.port(n)` / `.host(s)` | Where the server listens |\n| `.routes(router)` | The `defineRouter` router to mount, with its own `.use()` and `.packages()` |\n| `.jobs(router, config?)` | Background jobs — a `defineJobRouter`, plus pg-boss options |\n| `.events(router, config?)` | SSE streaming — a `defineEventRouter`, served at `GET /events/stream` |\n| `.websockets(router, config?)` | Bidirectional WebSockets — a `defineWSRouter`, served at `WS /ws` |\n| `.workflows(router, config?)` | `@spfn/workflow` orchestration; the engine starts once the database is ready |\n| `.lifecycle(hooks)` | Boot and shutdown hooks. Callable more than once; hooks run in registration order |\n| `.migrations(opts)` | The migration boot gate — `{ allowPending: true }` lets a server start behind its migrations |\n| `.database(opts)` | Connection and pool settings |\n| `.infrastructure(opts)` | Which infrastructure is initialized at boot |\n| `.healthCheck(opts)` | The health endpoint |\n| `.serverTime(clock)` | The clock behind `GET /_core/time`; normally left at the default |\n| `.middleware(opts)` | The built-in middleware — `ErrorHandler`, `RequestLogger` |\n| `.use(handlers)` | Additional global Hono middleware |\n| `.middlewares(named)` | Global middleware under names, so a route can `.skip([...])` it |\n| `.cors(opts)` | CORS |\n| `.rateLimit(opts)` | A global default limiter plus the named policies routes resolve against |\n| `.proxyGuard(opts)` | Trusted-proxy signature and origin verification, resolved to a `clientType` |\n| `.outboundFetch(opts)` | The SSRF policy `safeFetch` applies to outbound calls |\n| `.timeout(opts)` / `.shutdown(opts)` | Request timeouts and graceful shutdown |\n| `.debug(bool)` | Debug logging |\n\nThe options each one takes are in [src/server](./src/server/README.md).\n\n---\n\n## Which import path do I use for what?\n\nThere is **no root barrel**: `import … from '@spfn/core'` does not resolve. Every symbol\ncomes from a subpath, and the table below is the complete public surface — one row per\nentry in `package.json` `exports`, with a single exclusion: `./client` is still listed in\n`exports` but the build no longer emits it, so it has no row (see [Pitfalls](#pitfalls)).\nEach module has its own README with the API detail.\n\n| Import path | Purpose | Doc |\n|-------------|---------|-----|\n| `@spfn/core/route` | The route DSL (`route.get(...).input(...).handler(...)`) plus `defineRouter`, `registerRoutes`, `defineMiddleware`. The core of the core. | [src/route](./src/route/README.md) |\n| `@spfn/core/route/types` | Shared route types (`HttpMethod`, router type primitives). | [src/route](./src/route/README.md) |\n| `@spfn/core/server` | Server entry: `defineServerConfig()` → `startServer()`, plus `createServerlessApp()` for Vercel. Middleware wiring, infra init, graceful shutdown. | [src/server](./src/server/README.md) |\n| `@spfn/core/nextjs` | Client-safe: `createApi<AppRouter>()`, `ApiError`, client types. Never touches `next/headers`. | [src/nextjs](./src/nextjs/README.md) |\n| `@spfn/core/nextjs/server` | Server-only: `createRpcProxy({ routeMap })`, `registerInterceptors`. Uses `next/headers`. | [src/nextjs](./src/nextjs/README.md) |\n| `@spfn/core/db` | PostgreSQL through Drizzle: CRUD helpers, `BaseRepository`, schema helpers, transactions, Postgres error mapping. One entry point for all of it. | [src/db](./src/db/README.md) |\n| `@spfn/core/db` → manager | Connection lifecycle, pool, primary/replica, health check, reconnect (`initDatabase`, `getDatabase`). Re-exported from `@spfn/core/db`. | [src/db/manager](./src/db/manager/README.md) |\n| `@spfn/core/db` → migrations | Which migrations each installed function package ships, and which the database has applied (`collectMigrationStatus`, `discoverFunctionMigrations`). What `spfn db status`, the boot gate and health all read. Re-exported from `@spfn/core/db`. | [src/db/migrations](https://github.com/fxylabs/spfn/blob/main/packages/core/src/db/migrations/index.ts) |\n| `@spfn/core/db` → schema | Drizzle column helpers (`id`, `uuid`, `timestamps`, `foreignKey`, `enumText`, `typedJsonb`, `softDelete`, …). Re-exported from `@spfn/core/db`. | [src/db/schema](./src/db/schema/README.md) |\n| `@spfn/core/db` → transaction | `Transactional()` middleware and `runInTransaction`; the transaction reaches every repository through AsyncLocalStorage. Re-exported from `@spfn/core/db`. | [src/db/transaction](./src/db/transaction/README.md) |\n| `@spfn/core/middleware` | Built-in Hono middleware: `ErrorHandler`, `RequestLogger` and its masking helper. | [src/middleware](./src/middleware/README.md) |\n| `@spfn/core/errors` | Serializable HTTP and database error classes, plus `ErrorRegistry` so an error survives the trip to the client as its own class. | [src/errors](./src/errors/README.md) |\n| `@spfn/core/security` | `safeFetch` — a drop-in `fetch` hardened against SSRF, including DNS rebinding, by pinning the connection to a validated IP. | [src/security](./src/security/README.md) |\n| `@spfn/core/authz` | Ownership guards. `requireOwner(resource, userId)` makes \"load it, then check it belongs to the requester\" one call, so a handler cannot forget it. | [src/authz/index.ts](https://github.com/fxylabs/spfn/blob/main/packages/core/src/authz/index.ts) |\n| `@spfn/core/env` | Schema-based environment validation, isomorphic. | [src/env](./src/env/README.md) |\n| `@spfn/core/env/loader` | The **server-only** `.env` file loader (uses `node:fs`). | [src/env](./src/env/README.md) |\n| `@spfn/core/config` | `@spfn/core`'s own validated env config (`env`, `envSchema`, `registry`), built on `@spfn/core/env`. | [src/config](./src/config/README.md) |\n| `@spfn/core/app-config` | Reads `spfn.config.js` — the one committed place that says which ports and host the app is served on (`loadAppConfig`, `resolvePorts`, `resolveHost`, `PORT_DEFAULTS`). Deliberately side-effect free, so the CLI can import it before an app's environment exists. | [src/app-config/index.ts](https://github.com/fxylabs/spfn/blob/main/packages/core/src/app-config/index.ts) |\n| `@spfn/core/logger` | Structured singleton `logger` with child loggers and level masking. No dependencies. | [src/logger](./src/logger/README.md) |\n| `@spfn/core/cache` | Valkey/Redis singleton over ioredis (`getCache`, `getCacheRead`). Degrades to disabled rather than throwing. | [src/cache](./src/cache/README.md) |\n| `@spfn/core/job` | Background jobs on pg-boss: a fluent `job()` builder, cron, run-once, event-driven, `defineJobRouter`. | [src/job](./src/job/README.md) |\n| `@spfn/core/event` | Decoupled pub/sub (`defineEvent`, `defineEventRouter`, `eventRouteMap`). | [src/event](./src/event/README.md) |\n| `@spfn/core/event/sse` | Server-side SSE handler and token manager. Server only. | [src/event](./src/event/README.md) |\n| `@spfn/core/event/sse/client` | Browser SSE client (`EventSource`). | [src/event](./src/event/README.md) |\n| `@spfn/core/event/ws` | Server-side WebSocket handler. Server only; needs the optional `ws` dependency. | [src/event](./src/event/README.md) |\n| `@spfn/core/event/ws/client` | Browser WebSocket client. | [src/event](./src/event/README.md) |\n| `@spfn/core/codegen` | The codegen orchestrator and the built-in generators: `@spfn/core:route-map` for the proxy's route map, `@spfn/core:contract` for the client contract. | [src/codegen](./src/codegen/README.md) |\n| `@spfn/core/contract` | Route contracts for clients that ship separately: collect, snapshot, and the build gate that refuses a breaking change. | [src/contract](./src/contract/README.md) |\n| `@spfn/core/ops` | The operations surface `spfn ops` drives: `opsRoute`, `createOpsRouter`, `defineOpsModule`, and the manifest the CLI discovers commands from. Structure only — the router is always authenticated, and token verification lives in `@spfn/auth`. | [How do I operate the app from the terminal?](#how-do-i-operate-the-app-from-the-terminal) |\n\n`db/manager`, `db/schema` and `db/transaction` are **not** package subpaths of their own.\nThey are internal modules re-exported by `@spfn/core/db` — import their symbols from\nthere.\n\n---\n\n## Do I have to run codegen?\n\nOnly for the RPC proxy, and only after you change routes.\n\n| Change | What to run |\n|---|---|\n| Added, renamed or removed a route | `pnpm codegen`, then commit the regenerated route map |\n| Changed a route's input or output types | Nothing — the client infers from `AppRouter` |\n| Changed an entity | `pnpm db:generate` for the migration |\n\nA route name that is missing from the merged route map produces a **404 from the proxy**,\nnot from your backend. That is almost always a codegen you did not re-run.\n\nGenerated files are output. Never hand-edit them.\n\n---\n\n## Why does the server refuse to start after a package upgrade?\n\nBecause the database is behind the code. A function package ships its own migrations, so\nbumping `@spfn/auth` can add columns your database has never heard of. Before this check\nexisted, that server booted, passed its health check, and then failed every request\ntouching a new column with an opaque 500 — the error surfaced at the worst possible\nmoment, to whoever called first.\n\n`startServer()` now compares what each installed function package ships (and\n`src/server/drizzle`, where present) against what the database records as applied, and\nstops:\n\n```\nRefusing to start: 1 pending migration(s) in @spfn/auth\n  @spfn/auth: 1 pending migration(s) (12/13 applied)\n      - 20260805143152_client_identity\n  Run: pnpm spfn db migrate\n```\n\nThe check happens after the database connects and before anything is served, on the pool\nthe server already opened — no second connection, and no new failure mode. Three cases\nnever reach a refusal:\n\n| Situation | What happens |\n|---|---|\n| The app initializes no database, or no package ships migrations | Skipped; boot proceeds as before |\n| The database is configured but unreachable | `initDatabase()` already failed — the gate never runs, so an outage never reads as drift |\n| The status query itself fails | Logged as \"could not verify\", boot proceeds |\n\nTo start anyway — a harness that migrates after boot, a rollout that must proceed —\nset `SPFN_ALLOW_PENDING_MIGRATIONS=true`, pass `spfn dev --allow-pending-migrations`, or\ndeclare it in config:\n\n```typescript\nexport default defineServerConfig()\n    .migrations({ allowPending: true })\n    .build();\n```\n\nAll three log the pending list as a warning rather than silently continuing.\n\n**A readiness probe sees the same thing.** When detailed health is on,\n`GET /_core/health` carries a `migrations` object beside `services`:\n\n```json\n{\n  \"status\": \"ok\",\n  \"timestamp\": \"2026-08-06T09:00:00.000Z\",\n  \"services\": { \"database\": { \"status\": \"connected\" }, \"redis\": { \"status\": \"connected\" } },\n  \"migrations\": {\n    \"status\": \"up_to_date\",\n    \"pending\": 0,\n    \"checkedAt\": \"2026-08-06T09:00:00.000Z\",\n    \"targets\": [{ \"name\": \"@spfn/auth\", \"total\": 13, \"applied\": 13, \"pending\": 0, \"pendingTags\": [] }]\n  }\n}\n```\n\n`status` is `unknown` when there was nothing to check or the check failed — never\nconflated with `up_to_date`. The snapshot is recomputed at most once every 30 seconds, so\na probe polling every few seconds costs no extra round-trips. The overall health `status`\nis deliberately left alone: reporting drift must not, by itself, pull a running\ndeployment out of rotation. A probe that wants that asserts `migrations.pending === 0`.\n\nThe serverless path (`createServerlessApp`) has no boot to gate — run\n`spfn db migrate` as a deploy step there, as you already do for seeding.\n\n---\n\n## Which path does the health endpoint answer on?\n\n`/_core/health`. That is the whole answer — `@spfn/core` registers nothing on `/health`.\n\n`/_core/` belongs to `@spfn/core` the way `/_auth/` belongs to `@spfn/auth`: the endpoints\nin it are registered before your routes, so no route you declare can take one. That is\nwhat makes `/_core/health` the right target for a readiness probe, a Dockerfile\n`HEALTHCHECK` or an uptime monitor — the answer does not depend on what your app defines.\n\n```typescript\n// the endpoint answers at /_core/health, and nowhere else\nexport default defineServerConfig().build();\n\n// an additional address, for a probe path you cannot change\nexport default defineServerConfig().healthCheck({ path: '/health' }).build();\n\n// off → nothing answers anywhere\nexport default defineServerConfig().healthCheck({ enabled: false }).build();\n```\n\n`healthCheck.path` adds a second address. It never moves `/_core/health`, and it is\nregistered before your routes like the canonical one — so an app route on the same path\nwill not run, and the server says so at boot.\n\n**`/health` is yours now.** Declare `GET /health` and it behaves like any other route of\nyours. Declare nothing there and, for one release, a `GET` answers **410** naming\n`/_core/health`, and the server warns once the first time it is hit — a readiness probe\nfailure shows an operator neither a response body nor a status text, so a bare 404 would\nleave them nothing to search for. Upgrading an existing deployment?\n[docs/guides/migration/health-endpoint.md](../../docs/guides/migration/health-endpoint.md).\n\nEvery built-in health address is registered before the `lifecycle.beforeRoutes` hook, and\na Hono middleware only wraps handlers registered after it. So a global guard your app adds\nin that hook — which is what the hook is documented for — cannot close the endpoint a\nprobe depends on, and a probe reaches it unauthenticated. An app with `src/server/app.ts`\n(level 3) wires its own server and gets no health endpoint at all.\n\n---\n\n## How does a client synchronize with the server clock?\n\nCall `GET /_core/time` before minting a timestamped proof. It is a built-in,\nunauthenticated and session-free operation registered before application middleware and\nroutes:\n\n```json\n{ \"serverTimeMillis\": 1750000000123 }\n```\n\nThe response is a closed contract: `serverTimeMillis` is an integer Unix epoch in\nmilliseconds and no additional fields are declared. It always carries\n`Cache-Control: no-store`; a cached clock reading is not a synchronization point.\n\nThe value is trustworthy only when the transport is trustworthy. Production clients must\ncall the endpoint over HTTPS and validate the server certificate. The endpoint does not\nsign its response, compensate for network latency, choose an authentication skew margin,\nor define client retry and persistence policy — those belong to the consuming protocol.\n\nTests can inject an exact clock without replacing global time:\n\n```typescript\nconst app = await createServer(defineServerConfig()\n    .serverTime({ clock: { now: () => 1750000000123 } })\n    .build());\n```\n\n`CORE_TIME_ROUTE`, `CORE_TIME_PATH`, `ServerTimeResponseSchema` and the\n`ServerTimeResponse` type are exported from `@spfn/core/server` for separately deployed\nclient-contract exporters to consume from the same wire definition.\n\n---\n\n## Can I deploy this to Vercel?\n\nYes, and it is a first-class target rather than a workaround. From your app:\n\n```bash\nspfn add vercel\n```\n\nThat scaffolds `src/app/api/backend/[[...route]]/route.ts` (a `hono/vercel` adapter) and\n`vercel.json`. The SPFN app mounts under `/api/backend`, so the Next.js frontend and the\nbackend share one Vercel origin — point `SPFN_API_URL` at\n`https://<your-domain>/api/backend`. It runs on the Node runtime, not edge, because SPFN\nneeds `pg` and native `bcrypt`.\n\nThe adapter is a thin wrapper around `createServerlessApp` from `@spfn/core/server`:\n\n```typescript\nimport { handle } from 'hono/vercel';\nimport { createServerlessApp } from '@spfn/core/server';\nimport serverConfig from '@/server/server.config';\n\nconst handler = async (req: Request) => handle(await createServerlessApp(serverConfig))(req);\nexport const GET = handler;\nexport const POST = handler;\n```\n\nIt differs from `startServer()` in four ways, all forced by the platform:\n\n| | Always-on (`startServer`) | Serverless (`createServerlessApp`) |\n|---|---|---|\n| Database init | welded to `serve()` | in the handler, once per warm container |\n| Periodic DB health check | on | off — a timer only leaks across frozen invocations |\n| Background job worker | runs in-process | **not started** — enqueuing works, nothing drains the queue |\n| Seed and RBAC provisioning | per boot | a deploy-time step (`provisionInfrastructure`) |\n\nThe job worker is the one that bites. If your config declares jobs, the serverless path\nlogs a warning at startup: drain the queue from a scheduled endpoint (Vercel Cron calling\na route that processes a batch), or run jobs on an always-on target.\n\nBackground jobs, WebSocket events and the periodic health check all need the always-on\npath: `spfn build && spfn start`, or the generated Docker files.\n\n---\n\n## How do I point Claude Code or another AI coding agent at this?\n\nPut the contract in a file and let the agent read it, instead of describing the\narchitecture again in every prompt.\n\nThe SPFN repository states it in `CONTRIBUTING.md`: what the repo is, the commands, the\nvertical-slice pattern, and the rules that are not negotiable — never hand-edit generated\nfiles, migrations come from the schema. One file answers to people and agents alike, so\nthere is no second copy to drift apart from the first.\n\nEach module README under `src/` is written for the same reader. When an agent is working\non database code, `src/db/README.md` is the page to give it.\n\n---\n\n## How do I operate the app from the terminal?\n\nDevelop operations the way you develop features — as routes — and let the `spfn ops` CLI\ndiscover and invoke them. No admin dashboard, and no extra vocabulary: an ops command is a\nvertical slice whose path lives under `/_ops/`.\n\n```typescript\n// src/server/ops.ts\nimport { Type } from '@sinclair/typebox';\nimport { createOpsRouter, opsRoute } from '@spfn/core/ops';\nimport { opsTokenAuth, requireOpsScope } from '@spfn/auth/server';\n\nexport const opsRouter = createOpsRouter({\n    listSignups: opsRoute.get('/signups')                    // GET /_ops/signups\n        .use([requireOpsScope('waitlist:read')])\n        .input({ query: Type.Object({ limit: Type.Optional(Type.Number()) }) })\n        .handler(async (c) => signupsRepository.list((await c.data()).query.limit)),\n}, { auth: opsTokenAuth });\n\n// src/server/router.ts — mounted like any package router, invisible to client types\nexport const appRouter = defineRouter({ ... }).packages([opsRouter]);\n```\n\n`opsRoute` is `route` with the `/_ops` namespace applied, so a definition carries only the\npath this app owns — what that path looks like, how it nests, which segments are\nparameters are the app's decisions. It exists from `@spfn/core` **0.3.0-beta.2**.\n`createOpsRouter` injects the auth middleware into every route (there is no\nunauthenticated variant) and serves `GET /_ops/_manifest` — the self-description the CLI\nreads, with each command's TypeBox schemas as JSON Schema.\n\nThe manifest is registered ahead of the ops routes, so none of them can take its URL even\nwhen one is a pattern like `/_ops/:name`. That ordering does not reach outside the ops\nrouter: routes an app declares in its own router are registered before any package router,\nso a pattern there that covers `/_ops/_manifest` — a `/*` catch-all, say — shadows the\nmanifest, exactly as it shadows every other package route.\n\nRoutes may be grouped in nested `defineRouter`s, and a group's own `.use()` middlewares\napply to its routes — always after the injected auth, so a group-wide guard reads a\nrequest that has already been authenticated. A group-level middleware must be a named one;\nwrap a factory to give it a name:\n\n```typescript\nconst requireAdmin = defineMiddleware('opsAdminScope', requireOpsScope('admin:read'));\n\nexport const opsRouter = createOpsRouter({\n    admin: defineRouter({ getStats, reindex }).use([requireAdmin]),\n}, { auth: opsTokenAuth });\n```\n\nNote that a group's `.use()` middleware carries its `skips` into every route in the group,\nsuppressing that server-level middleware there.\n\nThree things are refused when the surface is defined, rather than discovered in\nproduction: a route built with `route` instead of `opsRoute` (it would carry no\nnamespace), two routes sharing a command name (the manifest flattens nested groups into\none list, so the CLI could not tell them apart), and a group mounting `.packages()` (those\nroutes register with neither the namespace nor the auth injection). The command name\n`getOpsManifest` and the path `/_ops/_manifest` are reserved.\n\n```bash\nspfn ops list --app https://api.example.com          # discover commands\nspfn ops call listSignups --query limit=50            # invoke one\nspfn ops call listSignups --describe                  # print its usage (--json for raw schemas)\n```\n\n### Can a package ship ops commands?\n\nIt can describe them. Whether they are reachable is your application's decision, made in\nthe `createOpsRouter` call — installing a package never adds anything to your ops surface.\nAvailable from **0.3.0-beta.5**.\n\n```typescript\n// in the package\nexport const ledgerOpsModule = defineOpsModule({\n    id: 'ledger',\n    source: '@acme/ledger',\n    contractVersion: '1.0.0',\n    summary: 'Ledger diagnostics',\n    commands: {\n        verify: {\n            summary: 'Verify ledger invariants',\n            effect: 'read',                                  // read | write | destructive\n            scopes: ['ledger:read'],\n            route: opsRoute.get('/ledger/verify').handler(verifyLedger),\n        },\n    },\n});\n\n// in the application — nothing is mounted until this line names it\nexport const opsRouter = createOpsRouter({ listSignups }, {\n    auth: opsTokenAuth,\n    authorize: requireOpsScope,\n    modules: [ledgerOpsModule],\n});\n```\n\nA module command is named `<module>.<command>` (`ledger.verify`) and its route must live\nunder `/_ops/<module>/`. The scopes it declares become a server-side guard, run after\nauthentication — `authorize` is required as soon as any module is mounted, and it is passed\nin rather than imported so core stays independent of `@spfn/auth`.\n\nWhat is refused at definition time: a path that could decode its way out of the module's\nnamespace, two commands in one module that could answer the same URL, and an app route that\noverlaps a mounted module's command. That last one matters because the alternative is a\nsurface where which command answers depends on route registration order.\n\nThe manifest gains a `modules` array and per-command `module`, `summary`, `effect` and\n`scopes`. All of it is additive — an app that mounts no modules serves exactly the v1\nmanifest it served before.\n\n```bash\nspfn ops modules                                      # what is mounted, and from where\nspfn ops list --module ledger                         # just that module's commands\nspfn ops call ledger.compact --yes                    # effect=destructive needs this\n```\n\nAuthentication is an ops token from [`@spfn/auth`](../auth/README.md#ops-tokens-spfn-ops):\nscoped, revocable, hash-stored, issued with `spfn ops token issue` against the running app\n— the CLI signs in as an administrator, so issuance needs no database access. On macOS the\nCLI keeps the token in the keychain (`spfn ops token store`), and resolution order is\n`--token` → `SPFN_OPS_TOKEN` → keychain. The `--app` URL must be https, since every command\ncarries a secret; `http` is accepted only against a loopback host.\n\n---\n\n## How is this different from NestJS or tRPC?\n\n**NestJS** gives you a structured backend and leaves the structure to you: modules and\nproviders you design, validation and ORM of your choosing, DTOs you keep in sync with the\nfrontend by hand. It is the better fit when you need that freedom, or when your frontend\nis not Next.js. `@spfn/core` fixes the shape instead — one vertical slice per feature,\nTypeBox, Drizzle, and route types that reach the browser without a DTO layer. Its\necosystem is small and young where NestJS's is large and mature.\n\n**tRPC** solves a narrower problem, typed calls between client and server, and leaves\nstructure, persistence and auth to you. `@spfn/core` includes the typed-call layer as one\npart of a whole backend.\n\n---\n\n## Pitfalls\n\n- **There is no root barrel.** `import … from '@spfn/core'` does not resolve. Import from\n  a subpath. The module table above is the complete surface.\n- **Use `@spfn/core/nextjs` for the client, not `@spfn/core/client`.** `package.json`\n  still lists a `./client` export, but the build does not emit it — the entry is disabled\n  and there is no `src/client`. `createApi`, `ApiError` and every client type ship from\n  `@spfn/core/nextjs`. Treat `@spfn/core/client` as non-functional.\n- **The client/server boundary is load-bearing.** `@spfn/core/nextjs/server` pulls in\n  `next/headers` and `next/server`; importing it from a Client Component breaks the\n  build. `@spfn/core/env/loader`, `@spfn/core/event/sse` and `@spfn/core/event/ws` are\n  server-only too. Client code uses the `*/client` and isomorphic entry points.\n- **`db/manager`, `db/schema` and `db/transaction` are not subpaths.** Importing\n  `@spfn/core/db/transaction` fails to resolve. Import those symbols from `@spfn/core/db`.\n- **The client needs no codegen; the proxy does.** A missing route name is a proxy 404.\n- **Contracts are for clients TypeScript cannot reach.** `.contract()` and the build gate\n  exist for a mobile app or an external consumer, compiled and shipped separately. A web\n  client takes its types from `AppRouter` in the same build, so a removed response field\n  already breaks the compile. Do not put `.contract()` on a route only the web app calls.\n- **The proxy decides the real HTTP method.** The browser only sends GET or POST to\n  `/api/rpc/...`; a PUT, PATCH or DELETE route still works because the method comes from\n  the route map.\n- **A package upgrade is not done until `spfn db migrate` has run.** The server refuses to\n  start while a function package has migrations the database has not applied. That is the\n  gate working, not a bug — see\n  [Why does the server refuse to start after a package upgrade?](#why-does-the-server-refuse-to-start-after-a-package-upgrade)\n- **Cache, events and jobs degrade quietly.** `@spfn/core/cache` runs disabled — its\n  getters return `undefined` — when there is no cache config or no `ioredis`, and\n  WebSocket events need the optional `ws` dependency. Do not write code expecting them to\n  throw.\n\n---\n\n## FAQ\n\n**Can I use @spfn/core without Next.js?**\nYes. `next` is an optional peer dependency and the Next.js bridge is two modules\n(`@spfn/core/nextjs`, `@spfn/core/nextjs/server`). The server runs on Hono by itself. You\ngive up the typed client and the RPC proxy, which are the Next.js-side pieces.\n\n**Can I use Prisma instead of Drizzle?**\nNo. `drizzle-orm` is a required peer dependency (`>=1.0.0-rc.4 <2`) and the repository\nlayer is built on it.\n\n**Do I need Redis?**\nOnly for features that use it. `ioredis` is an optional dependency, and without cache\nconfiguration the cache module reports itself disabled instead of failing. The same holds\nfor `ws` and WebSocket events.\n\n**Does @spfn/core require PostgreSQL specifically?**\nYes, 14 or later. The data layer is Drizzle on Postgres, with `postgres.js` as the\ndefault driver; the provider is injectable, which is how PGlite works in tests.\n\n**Why can't I import from `@spfn/core` directly?**\nThere is no `.` entry in `exports` — by design. Subpaths keep server-only code out of\nclient bundles, which a single barrel file cannot do.\n\n**Which Node version?**\n`>=20.0.0`. The package is ESM only.\n\n**Where do my business rules go?**\nIn services and repositories, not in route handlers. A handler validates, calls, and\nreturns. `@spfn/core/authz` covers the one rule that is easy to forget: `requireOwner`\nreturns the resource only if it belongs to the requester, and answers \"not found\" either\nway so the endpoint never reveals that someone else's record exists.\n\n---\n\n## Related packages\n\nOther SPFN packages build on `@spfn/core`:\n\n- [`@spfn/auth`](../auth/README.md) — sessions, social login and RBAC. Mount `authRouter`\n  with `.packages()` and its routes are in the app's generated map; the package registers\n  proxy interceptors automatically. (`authRouteMap` is still exported, and merging it is\n  now a no-op.)\n- [`@spfn/mcp`](../mcp/README.md) — exposes your operations as MCP tools, so an agent can\n  run them instead of you building an admin dashboard.\n- `@spfn/i18n`, `@spfn/storage`, `@spfn/notification`, `@spfn/cms`, `@spfn/monitor`,\n  `@spfn/migrate`, `@spfn/workflow` — see each package's README under\n  [`packages/`](../).\n\n---\n\n## License\n\nMIT © FXY Inc.\n","readmeFilename":"README.md"}