@spfn/core 0.2.0-beta.9 → 0.3.0-beta.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (119) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +693 -279
  3. package/dist/app-config/index.d.ts +96 -0
  4. package/dist/app-config/index.js +58 -0
  5. package/dist/app-config/index.js.map +1 -0
  6. package/dist/authz/index.d.ts +34 -0
  7. package/dist/authz/index.js +430 -0
  8. package/dist/authz/index.js.map +1 -0
  9. package/dist/boss-BiDCbbAQ.d.ts +337 -0
  10. package/dist/cache/index.js +42 -30
  11. package/dist/cache/index.js.map +1 -1
  12. package/dist/codegen/index.d.ts +121 -13
  13. package/dist/codegen/index.js +212 -15
  14. package/dist/codegen/index.js.map +1 -1
  15. package/dist/config/index.d.ts +576 -30
  16. package/dist/config/index.js +136 -17
  17. package/dist/config/index.js.map +1 -1
  18. package/dist/contract/index.d.ts +221 -0
  19. package/dist/contract/index.js +558 -0
  20. package/dist/contract/index.js.map +1 -0
  21. package/dist/db/index.d.ts +704 -94
  22. package/dist/db/index.js +1105 -260
  23. package/dist/db/index.js.map +1 -1
  24. package/dist/define-middleware-CVKgqo8S.d.ts +167 -0
  25. package/dist/env/index.d.ts +26 -2
  26. package/dist/env/index.js +15 -5
  27. package/dist/env/index.js.map +1 -1
  28. package/dist/env/loader.d.ts +26 -19
  29. package/dist/env/loader.js +55 -25
  30. package/dist/env/loader.js.map +1 -1
  31. package/dist/errors/index.d.ts +10 -0
  32. package/dist/errors/index.js +40 -7
  33. package/dist/errors/index.js.map +1 -1
  34. package/dist/event/index.d.ts +33 -3
  35. package/dist/event/index.js +24 -3
  36. package/dist/event/index.js.map +1 -1
  37. package/dist/event/sse/client.d.ts +55 -3
  38. package/dist/event/sse/client.js +164 -45
  39. package/dist/event/sse/client.js.map +1 -1
  40. package/dist/event/sse/index.d.ts +12 -5
  41. package/dist/event/sse/index.js +280 -32
  42. package/dist/event/sse/index.js.map +1 -1
  43. package/dist/event/ws/client.d.ts +59 -0
  44. package/dist/event/ws/client.js +273 -0
  45. package/dist/event/ws/client.js.map +1 -0
  46. package/dist/event/ws/index.d.ts +94 -0
  47. package/dist/event/ws/index.js +272 -0
  48. package/dist/event/ws/index.js.map +1 -0
  49. package/dist/job/index.d.ts +48 -3
  50. package/dist/job/index.js +265 -74
  51. package/dist/job/index.js.map +1 -1
  52. package/dist/logger/index.d.ts +5 -0
  53. package/dist/logger/index.js +14 -12
  54. package/dist/logger/index.js.map +1 -1
  55. package/dist/middleware/index.d.ts +352 -10
  56. package/dist/middleware/index.js +1079 -13
  57. package/dist/middleware/index.js.map +1 -1
  58. package/dist/nextjs/index.d.ts +39 -3
  59. package/dist/nextjs/index.js +82 -29
  60. package/dist/nextjs/index.js.map +1 -1
  61. package/dist/nextjs/server.d.ts +69 -52
  62. package/dist/nextjs/server.js +140 -60
  63. package/dist/nextjs/server.js.map +1 -1
  64. package/dist/ops/index.d.ts +208 -0
  65. package/dist/ops/index.js +800 -0
  66. package/dist/ops/index.js.map +1 -0
  67. package/dist/route/index.d.ts +10 -694
  68. package/dist/route/index.js +112 -23
  69. package/dist/route/index.js.map +1 -1
  70. package/dist/route-builder-2ani2jEI.d.ts +553 -0
  71. package/dist/router-DJdpwuB6.d.ts +127 -0
  72. package/dist/security/index.d.ts +83 -0
  73. package/dist/security/index.js +173 -0
  74. package/dist/security/index.js.map +1 -0
  75. package/dist/server/index.d.ts +619 -31
  76. package/dist/server/index.js +2583 -360
  77. package/dist/server/index.js.map +1 -1
  78. package/dist/token-manager-BT5EnUAR.d.ts +278 -0
  79. package/dist/types-2AbaW4Ie.d.ts +205 -0
  80. package/dist/{types-BOPTApC2.d.ts → types-9oszaJqp.d.ts} +7 -2
  81. package/dist/types-ClQVomgV.d.ts +115 -0
  82. package/dist/types-ZQODsBft.d.ts +282 -0
  83. package/docs/file-upload.md +195 -333
  84. package/package.json +250 -208
  85. package/src/cache/README.md +330 -0
  86. package/src/codegen/README.md +516 -0
  87. package/src/config/README.md +326 -0
  88. package/src/contract/README.md +326 -0
  89. package/src/db/README.md +589 -0
  90. package/src/db/manager/README.md +500 -0
  91. package/src/db/schema/README.md +354 -0
  92. package/src/db/transaction/README.md +822 -0
  93. package/src/env/README.md +651 -0
  94. package/src/errors/README.md +429 -0
  95. package/src/event/README.md +741 -0
  96. package/src/job/README.md +613 -0
  97. package/src/logger/README.md +321 -0
  98. package/src/middleware/README.md +634 -0
  99. package/src/nextjs/README.md +608 -0
  100. package/src/route/README.md +738 -0
  101. package/src/security/README.md +100 -0
  102. package/src/server/README.md +704 -0
  103. package/dist/boss-DI1r4kTS.d.ts +0 -244
  104. package/dist/router-Di7ENoah.d.ts +0 -151
  105. package/dist/types-B-e_f2dQ.d.ts +0 -121
  106. package/docs/cache.md +0 -133
  107. package/docs/codegen.md +0 -74
  108. package/docs/database.md +0 -346
  109. package/docs/entity.md +0 -539
  110. package/docs/env.md +0 -477
  111. package/docs/errors.md +0 -319
  112. package/docs/event.md +0 -116
  113. package/docs/job.md +0 -131
  114. package/docs/logger.md +0 -108
  115. package/docs/middleware.md +0 -337
  116. package/docs/nextjs.md +0 -241
  117. package/docs/repository.md +0 -496
  118. package/docs/route.md +0 -497
  119. package/docs/server.md +0 -307
package/package.json CHANGED
@@ -1,210 +1,252 @@
1
1
  {
2
- "name": "@spfn/core",
3
- "version": "0.2.0-beta.9",
4
- "description": "SPFN Framework Core - File-based routing, transactions, repository pattern",
5
- "type": "module",
6
- "exports": {
7
- "./client": {
8
- "types": "./dist/client/index.d.ts",
9
- "import": "./dist/client/index.js",
10
- "require": "./dist/client/index.js"
11
- },
12
- "./nextjs": {
13
- "types": "./dist/nextjs/index.d.ts",
14
- "import": "./dist/nextjs/index.js",
15
- "require": "./dist/nextjs/index.js"
16
- },
17
- "./nextjs/server": {
18
- "types": "./dist/nextjs/server.d.ts",
19
- "import": "./dist/nextjs/server.js",
20
- "require": "./dist/nextjs/server.js"
21
- },
22
- "./route": {
23
- "types": "./dist/route/index.d.ts",
24
- "import": "./dist/route/index.js",
25
- "require": "./dist/route/index.js"
26
- },
27
- "./route/types": {
28
- "types": "./dist/route/types.d.ts",
29
- "import": "./dist/route/types.js",
30
- "require": "./dist/route/types.js"
31
- },
32
- "./db": {
33
- "types": "./dist/db/index.d.ts",
34
- "import": "./dist/db/index.js",
35
- "require": "./dist/db/index.js"
36
- },
37
- "./server": {
38
- "types": "./dist/server/index.d.ts",
39
- "import": "./dist/server/index.js",
40
- "require": "./dist/server/index.js"
41
- },
42
- "./errors": {
43
- "types": "./dist/errors/index.d.ts",
44
- "import": "./dist/errors/index.js",
45
- "require": "./dist/errors/index.js"
46
- },
47
- "./middleware": {
48
- "types": "./dist/middleware/index.d.ts",
49
- "import": "./dist/middleware/index.js",
50
- "require": "./dist/middleware/index.js"
51
- },
52
- "./cache": {
53
- "types": "./dist/cache/index.d.ts",
54
- "import": "./dist/cache/index.js",
55
- "require": "./dist/cache/index.js"
56
- },
57
- "./codegen": {
58
- "types": "./dist/codegen/index.d.ts",
59
- "import": "./dist/codegen/index.js",
60
- "require": "./dist/codegen/index.js"
61
- },
62
- "./env": {
63
- "types": "./dist/env/index.d.ts",
64
- "import": "./dist/env/index.js",
65
- "require": "./dist/env/index.js"
66
- },
67
- "./env/loader": {
68
- "types": "./dist/env/loader.d.ts",
69
- "import": "./dist/env/loader.js",
70
- "require": "./dist/env/loader.js"
71
- },
72
- "./logger": {
73
- "types": "./dist/logger/index.d.ts",
74
- "import": "./dist/logger/index.js",
75
- "require": "./dist/logger/index.js"
76
- },
77
- "./config": {
78
- "types": "./dist/config/index.d.ts",
79
- "import": "./dist/config/index.js",
80
- "require": "./dist/config/index.js"
81
- },
82
- "./job": {
83
- "types": "./dist/job/index.d.ts",
84
- "import": "./dist/job/index.js",
85
- "require": "./dist/job/index.js"
86
- },
87
- "./event": {
88
- "types": "./dist/event/index.d.ts",
89
- "import": "./dist/event/index.js",
90
- "require": "./dist/event/index.js"
91
- },
92
- "./event/sse": {
93
- "types": "./dist/event/sse/index.d.ts",
94
- "import": "./dist/event/sse/index.js",
95
- "require": "./dist/event/sse/index.js"
96
- },
97
- "./event/sse/client": {
98
- "types": "./dist/event/sse/client.d.ts",
99
- "import": "./dist/event/sse/client.js",
100
- "require": "./dist/event/sse/client.js"
101
- }
102
- },
103
- "keywords": [
104
- "spfn",
105
- "nextjs",
106
- "backend",
107
- "framework",
108
- "typescript",
109
- "type-safe",
110
- "api",
111
- "rest-api",
112
- "crud",
113
- "database",
114
- "orm",
115
- "drizzle-orm",
116
- "postgres",
117
- "redis",
118
- "hono",
119
- "fullstack",
120
- "server",
121
- "scalable",
122
- "auto-generated",
123
- "file-based-routing",
124
- "transaction",
125
- "repository-pattern"
126
- ],
127
- "author": "Ray Im <rayim@inflike.com>",
128
- "license": "MIT",
129
- "repository": {
130
- "type": "git",
131
- "url": "https://github.com/spfn/spfn.git",
132
- "directory": "packages/core"
133
- },
134
- "bugs": {
135
- "url": "https://github.com/spfn/spfn/issues"
136
- },
137
- "homepage": "https://github.com/spfn/spfn/tree/main/packages/core#readme",
138
- "engines": {
139
- "node": ">=18.18.0"
140
- },
141
- "dependencies": {
142
- "@hono/node-server": "^1.0.0",
143
- "@sinclair/typebox": "^0.34.0",
144
- "chalk": "^5.6.2",
145
- "chokidar": "^4.0.3",
146
- "dotenv": "^17.2.3",
147
- "drizzle-orm": "^0.45.0",
148
- "drizzle-typebox": "^0.1.0",
149
- "hono": "^4.10.6",
150
- "jiti": "^2.6.1",
151
- "micromatch": "^4.0.8",
152
- "pg-boss": "^11.1.2",
153
- "postgres": "^3.4.0",
154
- "typescript": "^5.3.3",
155
- "zod": "^4.1.11"
156
- },
157
- "optionalDependencies": {
158
- "ioredis": "^5.4.1"
159
- },
160
- "devDependencies": {
161
- "@types/micromatch": "^4.0.9",
162
- "@types/node": "^20.11.0",
163
- "@vitest/coverage-v8": "^4.0.6",
164
- "drizzle-kit": "^0.31.6",
165
- "madge": "^8.0.0",
166
- "next": "^16.0.0",
167
- "tsup": "^8.5.0",
168
- "vitest": "^4.0.6"
169
- },
170
- "peerDependencies": {
171
- "next": "^15.0.0 || ^16.0.0"
172
- },
173
- "peerDependenciesMeta": {
174
- "next": {
175
- "optional": true
2
+ "name": "@spfn/core",
3
+ "version": "0.3.0-beta.10",
4
+ "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",
5
+ "type": "module",
6
+ "exports": {
7
+ "./client": {
8
+ "types": "./dist/client/index.d.ts",
9
+ "import": "./dist/client/index.js",
10
+ "require": "./dist/client/index.js"
11
+ },
12
+ "./nextjs": {
13
+ "types": "./dist/nextjs/index.d.ts",
14
+ "import": "./dist/nextjs/index.js",
15
+ "require": "./dist/nextjs/index.js"
16
+ },
17
+ "./nextjs/server": {
18
+ "types": "./dist/nextjs/server.d.ts",
19
+ "import": "./dist/nextjs/server.js",
20
+ "require": "./dist/nextjs/server.js"
21
+ },
22
+ "./route": {
23
+ "types": "./dist/route/index.d.ts",
24
+ "import": "./dist/route/index.js",
25
+ "require": "./dist/route/index.js"
26
+ },
27
+ "./route/types": {
28
+ "types": "./dist/route/types.d.ts",
29
+ "import": "./dist/route/types.js",
30
+ "require": "./dist/route/types.js"
31
+ },
32
+ "./db": {
33
+ "types": "./dist/db/index.d.ts",
34
+ "import": "./dist/db/index.js",
35
+ "require": "./dist/db/index.js"
36
+ },
37
+ "./server": {
38
+ "types": "./dist/server/index.d.ts",
39
+ "import": "./dist/server/index.js",
40
+ "require": "./dist/server/index.js"
41
+ },
42
+ "./errors": {
43
+ "types": "./dist/errors/index.d.ts",
44
+ "import": "./dist/errors/index.js",
45
+ "require": "./dist/errors/index.js"
46
+ },
47
+ "./middleware": {
48
+ "types": "./dist/middleware/index.d.ts",
49
+ "import": "./dist/middleware/index.js",
50
+ "require": "./dist/middleware/index.js"
51
+ },
52
+ "./security": {
53
+ "types": "./dist/security/index.d.ts",
54
+ "import": "./dist/security/index.js",
55
+ "require": "./dist/security/index.js"
56
+ },
57
+ "./authz": {
58
+ "types": "./dist/authz/index.d.ts",
59
+ "import": "./dist/authz/index.js",
60
+ "require": "./dist/authz/index.js"
61
+ },
62
+ "./cache": {
63
+ "types": "./dist/cache/index.d.ts",
64
+ "import": "./dist/cache/index.js",
65
+ "require": "./dist/cache/index.js"
66
+ },
67
+ "./codegen": {
68
+ "types": "./dist/codegen/index.d.ts",
69
+ "import": "./dist/codegen/index.js",
70
+ "require": "./dist/codegen/index.js"
71
+ },
72
+ "./contract": {
73
+ "types": "./dist/contract/index.d.ts",
74
+ "import": "./dist/contract/index.js",
75
+ "require": "./dist/contract/index.js"
76
+ },
77
+ "./ops": {
78
+ "types": "./dist/ops/index.d.ts",
79
+ "import": "./dist/ops/index.js",
80
+ "require": "./dist/ops/index.js"
81
+ },
82
+ "./env": {
83
+ "types": "./dist/env/index.d.ts",
84
+ "import": "./dist/env/index.js",
85
+ "require": "./dist/env/index.js"
86
+ },
87
+ "./env/loader": {
88
+ "types": "./dist/env/loader.d.ts",
89
+ "import": "./dist/env/loader.js",
90
+ "require": "./dist/env/loader.js"
91
+ },
92
+ "./logger": {
93
+ "types": "./dist/logger/index.d.ts",
94
+ "import": "./dist/logger/index.js",
95
+ "require": "./dist/logger/index.js"
96
+ },
97
+ "./config": {
98
+ "types": "./dist/config/index.d.ts",
99
+ "import": "./dist/config/index.js",
100
+ "require": "./dist/config/index.js"
101
+ },
102
+ "./app-config": {
103
+ "types": "./dist/app-config/index.d.ts",
104
+ "import": "./dist/app-config/index.js",
105
+ "require": "./dist/app-config/index.js"
106
+ },
107
+ "./job": {
108
+ "types": "./dist/job/index.d.ts",
109
+ "import": "./dist/job/index.js",
110
+ "require": "./dist/job/index.js"
111
+ },
112
+ "./event": {
113
+ "types": "./dist/event/index.d.ts",
114
+ "import": "./dist/event/index.js",
115
+ "require": "./dist/event/index.js"
116
+ },
117
+ "./event/sse": {
118
+ "types": "./dist/event/sse/index.d.ts",
119
+ "import": "./dist/event/sse/index.js",
120
+ "require": "./dist/event/sse/index.js"
121
+ },
122
+ "./event/sse/client": {
123
+ "types": "./dist/event/sse/client.d.ts",
124
+ "import": "./dist/event/sse/client.js",
125
+ "require": "./dist/event/sse/client.js"
126
+ },
127
+ "./event/ws": {
128
+ "types": "./dist/event/ws/index.d.ts",
129
+ "import": "./dist/event/ws/index.js",
130
+ "require": "./dist/event/ws/index.js"
131
+ },
132
+ "./event/ws/client": {
133
+ "types": "./dist/event/ws/client.d.ts",
134
+ "import": "./dist/event/ws/client.js",
135
+ "require": "./dist/event/ws/client.js"
136
+ }
137
+ },
138
+ "scripts": {
139
+ "build": "pnpm check:circular && tsup",
140
+ "prepack": "node -e \"require('fs').copyFileSync('../../LICENSE','LICENSE')\"",
141
+ "dev": "tsup",
142
+ "test": "vitest run",
143
+ "test:watch": "vitest",
144
+ "test:coverage": "vitest run --coverage",
145
+ "test:logger": "vitest run src/logger",
146
+ "test:errors": "vitest run src/errors",
147
+ "test:codegen": "vitest run src/codegen",
148
+ "test:route": "vitest run src/route",
149
+ "test:client": "vitest run src/client",
150
+ "test:middleware": "vitest run src/middleware",
151
+ "test:env": "vitest run src/env",
152
+ "test:cache": "vitest run src/cache",
153
+ "test:db": "vitest run src/db",
154
+ "test:server": "vitest run src/server",
155
+ "check:circular": "madge --circular --extensions ts src/",
156
+ "type-check": "tsc --noEmit",
157
+ "publish:alpha": "node ../../scripts/publish-package.mjs alpha",
158
+ "publish:beta": "node ../../scripts/publish-package.mjs beta",
159
+ "publish:latest": "node ../../scripts/publish-package.mjs latest"
160
+ },
161
+ "keywords": [
162
+ "spfn",
163
+ "nextjs",
164
+ "backend",
165
+ "framework",
166
+ "typescript",
167
+ "type-safe",
168
+ "api",
169
+ "rest-api",
170
+ "crud",
171
+ "database",
172
+ "orm",
173
+ "drizzle-orm",
174
+ "postgres",
175
+ "redis",
176
+ "hono",
177
+ "fullstack",
178
+ "full-stack-framework",
179
+ "ai-coding-agent",
180
+ "claude-code",
181
+ "file-based-routing",
182
+ "transaction",
183
+ "repository-pattern"
184
+ ],
185
+ "author": "Ray Im <rayim@fxy.global>",
186
+ "license": "MIT",
187
+ "repository": {
188
+ "type": "git",
189
+ "url": "git+https://github.com/fxylabs/spfn.git",
190
+ "directory": "packages/core"
191
+ },
192
+ "bugs": {
193
+ "url": "https://github.com/fxylabs/spfn/issues"
194
+ },
195
+ "homepage": "https://github.com/fxylabs/spfn/tree/main/packages/core#readme",
196
+ "engines": {
197
+ "node": ">=20.0.0"
198
+ },
199
+ "dependencies": {
200
+ "@hono/node-server": "^2.0.5",
201
+ "@sinclair/typebox": "^0.34.0",
202
+ "chalk": "^5.6.2",
203
+ "chokidar": "^4.0.3",
204
+ "dotenv": "^17.2.3",
205
+ "drizzle-typebox": "^0.3.3",
206
+ "hono": "^4.13.5",
207
+ "jiti": "^2.6.1",
208
+ "micromatch": "^4.0.8",
209
+ "pg-boss": "^11.1.2",
210
+ "postgres": "^3.4.0",
211
+ "typescript": "^5.3.3",
212
+ "undici": "^7.29.0",
213
+ "zod": "^4.4.3"
214
+ },
215
+ "optionalDependencies": {
216
+ "ioredis": "^5.4.1",
217
+ "ws": "^8.21.0"
218
+ },
219
+ "devDependencies": {
220
+ "@electric-sql/pglite": "0.5.4",
221
+ "@types/micromatch": "^4.0.9",
222
+ "@types/node": "^20.11.0",
223
+ "@types/ws": "^8.18.1",
224
+ "@vitest/coverage-v8": "^4.0.6",
225
+ "drizzle-kit": "1.0.0-rc.4",
226
+ "drizzle-orm": "1.0.0-rc.4",
227
+ "madge": "^8.0.0",
228
+ "next": "^16.3.3",
229
+ "tsup": "^8.5.0",
230
+ "vitest": "^4.0.6"
231
+ },
232
+ "peerDependencies": {
233
+ "drizzle-orm": ">=1.0.0-rc.4 <2",
234
+ "next": "^16.3.3"
235
+ },
236
+ "peerDependenciesMeta": {
237
+ "next": {
238
+ "optional": true
239
+ }
240
+ },
241
+ "files": [
242
+ "dist",
243
+ "docs",
244
+ "README.md",
245
+ "LICENSE",
246
+ "src/**/README.md"
247
+ ],
248
+ "publishConfig": {
249
+ "access": "public",
250
+ "tag": "beta"
176
251
  }
177
- },
178
- "files": [
179
- "dist",
180
- "docs",
181
- "README.md",
182
- "LICENSE"
183
- ],
184
- "publishConfig": {
185
- "access": "public",
186
- "tag": "beta"
187
- },
188
- "scripts": {
189
- "build": "pnpm check:circular && tsup",
190
- "dev": "tsup",
191
- "test": "vitest run",
192
- "test:watch": "vitest",
193
- "test:coverage": "vitest run --config vitest.unit.config.ts --coverage",
194
- "test:logger": "vitest run src/logger",
195
- "test:errors": "vitest run src/errors",
196
- "test:codegen": "vitest run src/codegen",
197
- "test:route": "vitest run src/route",
198
- "test:client": "vitest run src/client",
199
- "test:middleware": "vitest run src/middleware",
200
- "test:env": "vitest run src/env",
201
- "test:cache": "vitest run src/cache --config vitest.integration.config.ts",
202
- "test:db": "vitest run src/db --config vitest.integration.config.ts",
203
- "test:server": "vitest run src/server --config vitest.integration.config.ts",
204
- "docker:test:up": "docker compose -f docker-compose.test.yml up -d",
205
- "docker:test:down": "docker compose -f docker-compose.test.yml down",
206
- "docker:test:logs": "docker compose -f docker-compose.test.yml logs -f",
207
- "check:circular": "madge --circular --extensions ts src/",
208
- "type-check": "tsc --noEmit"
209
- }
210
- }
252
+ }