@spfn/core 0.2.0-beta.6 → 0.2.0-beta.66
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.
- package/LICENSE +1 -1
- package/README.md +183 -1281
- package/dist/authz/index.d.ts +34 -0
- package/dist/authz/index.js +415 -0
- package/dist/authz/index.js.map +1 -0
- package/dist/{boss-DI1r4kTS.d.ts → boss-gXhgctn6.d.ts} +40 -0
- package/dist/cache/index.js +42 -30
- package/dist/cache/index.js.map +1 -1
- package/dist/codegen/index.d.ts +55 -8
- package/dist/codegen/index.js +183 -7
- package/dist/codegen/index.js.map +1 -1
- package/dist/config/index.d.ts +585 -6
- package/dist/config/index.js +116 -5
- package/dist/config/index.js.map +1 -1
- package/dist/db/index.d.ts +379 -75
- package/dist/db/index.js +625 -113
- package/dist/db/index.js.map +1 -1
- package/dist/define-middleware-DuXD8Hvu.d.ts +167 -0
- package/dist/env/index.d.ts +26 -2
- package/dist/env/index.js +15 -5
- package/dist/env/index.js.map +1 -1
- package/dist/env/loader.d.ts +26 -19
- package/dist/env/loader.js +32 -25
- package/dist/env/loader.js.map +1 -1
- package/dist/errors/index.d.ts +10 -0
- package/dist/errors/index.js +20 -2
- package/dist/errors/index.js.map +1 -1
- package/dist/event/index.d.ts +33 -3
- package/dist/event/index.js +24 -3
- package/dist/event/index.js.map +1 -1
- package/dist/event/sse/client.d.ts +42 -3
- package/dist/event/sse/client.js +128 -45
- package/dist/event/sse/client.js.map +1 -1
- package/dist/event/sse/index.d.ts +12 -5
- package/dist/event/sse/index.js +271 -32
- package/dist/event/sse/index.js.map +1 -1
- package/dist/event/ws/client.d.ts +59 -0
- package/dist/event/ws/client.js +273 -0
- package/dist/event/ws/client.js.map +1 -0
- package/dist/event/ws/index.d.ts +94 -0
- package/dist/event/ws/index.js +272 -0
- package/dist/event/ws/index.js.map +1 -0
- package/dist/job/index.d.ts +2 -2
- package/dist/job/index.js +155 -42
- package/dist/job/index.js.map +1 -1
- package/dist/logger/index.d.ts +5 -0
- package/dist/logger/index.js +14 -0
- package/dist/logger/index.js.map +1 -1
- package/dist/middleware/index.d.ts +243 -2
- package/dist/middleware/index.js +1323 -13
- package/dist/middleware/index.js.map +1 -1
- package/dist/nextjs/index.d.ts +2 -2
- package/dist/nextjs/index.js +77 -31
- package/dist/nextjs/index.js.map +1 -1
- package/dist/nextjs/server.d.ts +53 -23
- package/dist/nextjs/server.js +197 -66
- package/dist/nextjs/server.js.map +1 -1
- package/dist/route/index.d.ts +138 -146
- package/dist/route/index.js +238 -22
- package/dist/route/index.js.map +1 -1
- package/dist/security/index.d.ts +83 -0
- package/dist/security/index.js +173 -0
- package/dist/security/index.js.map +1 -0
- package/dist/server/index.d.ts +458 -17
- package/dist/server/index.js +1756 -277
- package/dist/server/index.js.map +1 -1
- package/dist/{router-Di7ENoah.d.ts → token-manager-jKD_EsSE.d.ts} +121 -1
- package/dist/{types-D_N_U-Py.d.ts → types-7Mhoxnnt.d.ts} +21 -1
- package/dist/types-BFB72jbM.d.ts +282 -0
- package/dist/types-DVjf37yO.d.ts +205 -0
- package/docs/file-upload.md +717 -0
- package/package.json +237 -208
- package/dist/types-B-e_f2dQ.d.ts +0 -121
package/package.json
CHANGED
|
@@ -1,210 +1,239 @@
|
|
|
1
1
|
{
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
"
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
"
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
"
|
|
175
|
-
|
|
2
|
+
"name": "@spfn/core",
|
|
3
|
+
"version": "0.2.0-beta.66",
|
|
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
|
+
"./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
|
+
"./env": {
|
|
73
|
+
"types": "./dist/env/index.d.ts",
|
|
74
|
+
"import": "./dist/env/index.js",
|
|
75
|
+
"require": "./dist/env/index.js"
|
|
76
|
+
},
|
|
77
|
+
"./env/loader": {
|
|
78
|
+
"types": "./dist/env/loader.d.ts",
|
|
79
|
+
"import": "./dist/env/loader.js",
|
|
80
|
+
"require": "./dist/env/loader.js"
|
|
81
|
+
},
|
|
82
|
+
"./logger": {
|
|
83
|
+
"types": "./dist/logger/index.d.ts",
|
|
84
|
+
"import": "./dist/logger/index.js",
|
|
85
|
+
"require": "./dist/logger/index.js"
|
|
86
|
+
},
|
|
87
|
+
"./config": {
|
|
88
|
+
"types": "./dist/config/index.d.ts",
|
|
89
|
+
"import": "./dist/config/index.js",
|
|
90
|
+
"require": "./dist/config/index.js"
|
|
91
|
+
},
|
|
92
|
+
"./job": {
|
|
93
|
+
"types": "./dist/job/index.d.ts",
|
|
94
|
+
"import": "./dist/job/index.js",
|
|
95
|
+
"require": "./dist/job/index.js"
|
|
96
|
+
},
|
|
97
|
+
"./event": {
|
|
98
|
+
"types": "./dist/event/index.d.ts",
|
|
99
|
+
"import": "./dist/event/index.js",
|
|
100
|
+
"require": "./dist/event/index.js"
|
|
101
|
+
},
|
|
102
|
+
"./event/sse": {
|
|
103
|
+
"types": "./dist/event/sse/index.d.ts",
|
|
104
|
+
"import": "./dist/event/sse/index.js",
|
|
105
|
+
"require": "./dist/event/sse/index.js"
|
|
106
|
+
},
|
|
107
|
+
"./event/sse/client": {
|
|
108
|
+
"types": "./dist/event/sse/client.d.ts",
|
|
109
|
+
"import": "./dist/event/sse/client.js",
|
|
110
|
+
"require": "./dist/event/sse/client.js"
|
|
111
|
+
},
|
|
112
|
+
"./event/ws": {
|
|
113
|
+
"types": "./dist/event/ws/index.d.ts",
|
|
114
|
+
"import": "./dist/event/ws/index.js",
|
|
115
|
+
"require": "./dist/event/ws/index.js"
|
|
116
|
+
},
|
|
117
|
+
"./event/ws/client": {
|
|
118
|
+
"types": "./dist/event/ws/client.d.ts",
|
|
119
|
+
"import": "./dist/event/ws/client.js",
|
|
120
|
+
"require": "./dist/event/ws/client.js"
|
|
121
|
+
}
|
|
122
|
+
},
|
|
123
|
+
"scripts": {
|
|
124
|
+
"build": "pnpm check:circular && tsup",
|
|
125
|
+
"prepack": "node -e \"require('fs').copyFileSync('../../LICENSE','LICENSE')\"",
|
|
126
|
+
"dev": "tsup",
|
|
127
|
+
"test": "vitest run",
|
|
128
|
+
"test:watch": "vitest",
|
|
129
|
+
"test:coverage": "vitest run --coverage",
|
|
130
|
+
"test:logger": "vitest run src/logger",
|
|
131
|
+
"test:errors": "vitest run src/errors",
|
|
132
|
+
"test:codegen": "vitest run src/codegen",
|
|
133
|
+
"test:route": "vitest run src/route",
|
|
134
|
+
"test:client": "vitest run src/client",
|
|
135
|
+
"test:middleware": "vitest run src/middleware",
|
|
136
|
+
"test:env": "vitest run src/env",
|
|
137
|
+
"test:cache": "vitest run src/cache --config vitest.integration.config.ts",
|
|
138
|
+
"test:db": "vitest run src/db --config vitest.integration.config.ts",
|
|
139
|
+
"test:server": "vitest run src/server --config vitest.integration.config.ts",
|
|
140
|
+
"docker:test:up": "docker compose -f docker-compose.test.yml up -d",
|
|
141
|
+
"docker:test:down": "docker compose -f docker-compose.test.yml down",
|
|
142
|
+
"docker:test:logs": "docker compose -f docker-compose.test.yml logs -f",
|
|
143
|
+
"check:circular": "madge --circular --extensions ts src/",
|
|
144
|
+
"type-check": "tsc --noEmit",
|
|
145
|
+
"publish:alpha": "npm publish --access public --tag alpha",
|
|
146
|
+
"publish:beta": "npm publish --access public --tag beta",
|
|
147
|
+
"publish:latest": "npm publish --access public"
|
|
148
|
+
},
|
|
149
|
+
"keywords": [
|
|
150
|
+
"spfn",
|
|
151
|
+
"nextjs",
|
|
152
|
+
"backend",
|
|
153
|
+
"framework",
|
|
154
|
+
"typescript",
|
|
155
|
+
"type-safe",
|
|
156
|
+
"api",
|
|
157
|
+
"rest-api",
|
|
158
|
+
"crud",
|
|
159
|
+
"database",
|
|
160
|
+
"orm",
|
|
161
|
+
"drizzle-orm",
|
|
162
|
+
"postgres",
|
|
163
|
+
"redis",
|
|
164
|
+
"hono",
|
|
165
|
+
"fullstack",
|
|
166
|
+
"server",
|
|
167
|
+
"scalable",
|
|
168
|
+
"auto-generated",
|
|
169
|
+
"file-based-routing",
|
|
170
|
+
"transaction",
|
|
171
|
+
"repository-pattern"
|
|
172
|
+
],
|
|
173
|
+
"author": "Ray Im <rayim@fxy.global>",
|
|
174
|
+
"license": "MIT",
|
|
175
|
+
"repository": {
|
|
176
|
+
"type": "git",
|
|
177
|
+
"url": "git+https://github.com/fxylabs/spfn.git",
|
|
178
|
+
"directory": "packages/core"
|
|
179
|
+
},
|
|
180
|
+
"bugs": {
|
|
181
|
+
"url": "https://github.com/fxylabs/spfn/issues"
|
|
182
|
+
},
|
|
183
|
+
"homepage": "https://github.com/fxylabs/spfn/tree/main/packages/core#readme",
|
|
184
|
+
"engines": {
|
|
185
|
+
"node": ">=18.18.0"
|
|
186
|
+
},
|
|
187
|
+
"dependencies": {
|
|
188
|
+
"@hono/node-server": "^1.19.13",
|
|
189
|
+
"@sinclair/typebox": "^0.34.0",
|
|
190
|
+
"chalk": "^5.6.2",
|
|
191
|
+
"chokidar": "^4.0.3",
|
|
192
|
+
"dotenv": "^17.2.3",
|
|
193
|
+
"drizzle-typebox": "^0.3.3",
|
|
194
|
+
"hono": "^4.12.25",
|
|
195
|
+
"jiti": "^2.6.1",
|
|
196
|
+
"micromatch": "^4.0.8",
|
|
197
|
+
"pg-boss": "^11.1.2",
|
|
198
|
+
"postgres": "^3.4.0",
|
|
199
|
+
"typescript": "^5.3.3",
|
|
200
|
+
"undici": "^7.28.0",
|
|
201
|
+
"zod": "^4.4.3"
|
|
202
|
+
},
|
|
203
|
+
"optionalDependencies": {
|
|
204
|
+
"ioredis": "^5.4.1",
|
|
205
|
+
"ws": "^8.21.0"
|
|
206
|
+
},
|
|
207
|
+
"devDependencies": {
|
|
208
|
+
"@electric-sql/pglite": "0.5.4",
|
|
209
|
+
"@types/micromatch": "^4.0.9",
|
|
210
|
+
"@types/node": "^20.11.0",
|
|
211
|
+
"@types/ws": "^8.18.1",
|
|
212
|
+
"@vitest/coverage-v8": "^4.0.6",
|
|
213
|
+
"drizzle-kit": "1.0.0-rc.4",
|
|
214
|
+
"drizzle-orm": "1.0.0-rc.4",
|
|
215
|
+
"madge": "^8.0.0",
|
|
216
|
+
"next": "^16.0.0",
|
|
217
|
+
"tsup": "^8.5.0",
|
|
218
|
+
"vitest": "^4.0.6"
|
|
219
|
+
},
|
|
220
|
+
"peerDependencies": {
|
|
221
|
+
"drizzle-orm": ">=1.0.0-rc.4 <2",
|
|
222
|
+
"next": "^15.0.0 || ^16.0.0"
|
|
223
|
+
},
|
|
224
|
+
"peerDependenciesMeta": {
|
|
225
|
+
"next": {
|
|
226
|
+
"optional": true
|
|
227
|
+
}
|
|
228
|
+
},
|
|
229
|
+
"files": [
|
|
230
|
+
"dist",
|
|
231
|
+
"docs",
|
|
232
|
+
"README.md",
|
|
233
|
+
"LICENSE"
|
|
234
|
+
],
|
|
235
|
+
"publishConfig": {
|
|
236
|
+
"access": "public",
|
|
237
|
+
"tag": "beta"
|
|
176
238
|
}
|
|
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
|
-
}
|
|
239
|
+
}
|
package/dist/types-B-e_f2dQ.d.ts
DELETED
|
@@ -1,121 +0,0 @@
|
|
|
1
|
-
import { E as EventRouterDef, I as InferEventNames, b as InferEventPayload } from './router-Di7ENoah.js';
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* SSE Types
|
|
5
|
-
*
|
|
6
|
-
* Type definitions for Server-Sent Events
|
|
7
|
-
*/
|
|
8
|
-
|
|
9
|
-
/**
|
|
10
|
-
* SSE message sent from server
|
|
11
|
-
*/
|
|
12
|
-
interface SSEMessage<TEvent extends string = string, TPayload = unknown> {
|
|
13
|
-
/** Event name */
|
|
14
|
-
event: TEvent;
|
|
15
|
-
/** Event payload */
|
|
16
|
-
data: TPayload;
|
|
17
|
-
/** Optional message ID for reconnection */
|
|
18
|
-
id?: string;
|
|
19
|
-
}
|
|
20
|
-
/**
|
|
21
|
-
* SSE Handler configuration
|
|
22
|
-
*/
|
|
23
|
-
interface SSEHandlerConfig {
|
|
24
|
-
/**
|
|
25
|
-
* Keep-alive ping interval in milliseconds
|
|
26
|
-
* @default 30000
|
|
27
|
-
*/
|
|
28
|
-
pingInterval?: number;
|
|
29
|
-
/**
|
|
30
|
-
* Custom headers for SSE response
|
|
31
|
-
*/
|
|
32
|
-
headers?: Record<string, string>;
|
|
33
|
-
}
|
|
34
|
-
/**
|
|
35
|
-
* SSE Client configuration
|
|
36
|
-
*/
|
|
37
|
-
interface SSEClientConfig {
|
|
38
|
-
/**
|
|
39
|
-
* Backend API host URL
|
|
40
|
-
* @default NEXT_PUBLIC_SPFN_API_URL || 'http://localhost:8790'
|
|
41
|
-
* @example 'http://localhost:8790'
|
|
42
|
-
* @example 'https://api.example.com'
|
|
43
|
-
*/
|
|
44
|
-
host?: string;
|
|
45
|
-
/**
|
|
46
|
-
* SSE endpoint pathname
|
|
47
|
-
* @default '/events/stream'
|
|
48
|
-
*/
|
|
49
|
-
pathname?: string;
|
|
50
|
-
/**
|
|
51
|
-
* Full URL (overrides host + pathname)
|
|
52
|
-
* @deprecated Use host and pathname instead
|
|
53
|
-
* @example 'http://localhost:8790/events/stream'
|
|
54
|
-
*/
|
|
55
|
-
url?: string;
|
|
56
|
-
/**
|
|
57
|
-
* Auto reconnect on disconnect
|
|
58
|
-
* @default true
|
|
59
|
-
*/
|
|
60
|
-
reconnect?: boolean;
|
|
61
|
-
/**
|
|
62
|
-
* Reconnect delay in milliseconds
|
|
63
|
-
* @default 3000
|
|
64
|
-
*/
|
|
65
|
-
reconnectDelay?: number;
|
|
66
|
-
/**
|
|
67
|
-
* Maximum reconnect attempts (0 = infinite)
|
|
68
|
-
* @default 0
|
|
69
|
-
*/
|
|
70
|
-
maxReconnectAttempts?: number;
|
|
71
|
-
/**
|
|
72
|
-
* Include credentials (cookies) in request
|
|
73
|
-
* @default false
|
|
74
|
-
*/
|
|
75
|
-
withCredentials?: boolean;
|
|
76
|
-
}
|
|
77
|
-
/**
|
|
78
|
-
* Event handler function
|
|
79
|
-
*/
|
|
80
|
-
type SSEEventHandler<TPayload> = (payload: TPayload) => void;
|
|
81
|
-
/**
|
|
82
|
-
* Event handlers map for EventRouter
|
|
83
|
-
*/
|
|
84
|
-
type SSEEventHandlers<TRouter extends EventRouterDef<any>> = {
|
|
85
|
-
[K in InferEventNames<TRouter>]?: SSEEventHandler<InferEventPayload<TRouter, K>>;
|
|
86
|
-
};
|
|
87
|
-
/**
|
|
88
|
-
* Subscription options
|
|
89
|
-
*/
|
|
90
|
-
interface SSESubscribeOptions<TRouter extends EventRouterDef<any>> {
|
|
91
|
-
/**
|
|
92
|
-
* Events to subscribe
|
|
93
|
-
*/
|
|
94
|
-
events: InferEventNames<TRouter>[];
|
|
95
|
-
/**
|
|
96
|
-
* Event handlers
|
|
97
|
-
*/
|
|
98
|
-
handlers: SSEEventHandlers<TRouter>;
|
|
99
|
-
/**
|
|
100
|
-
* Called when connection opens
|
|
101
|
-
*/
|
|
102
|
-
onOpen?: () => void;
|
|
103
|
-
/**
|
|
104
|
-
* Called on connection error
|
|
105
|
-
*/
|
|
106
|
-
onError?: (error: Event) => void;
|
|
107
|
-
/**
|
|
108
|
-
* Called when reconnecting
|
|
109
|
-
*/
|
|
110
|
-
onReconnect?: (attempt: number) => void;
|
|
111
|
-
}
|
|
112
|
-
/**
|
|
113
|
-
* SSE connection state
|
|
114
|
-
*/
|
|
115
|
-
type SSEConnectionState = 'connecting' | 'open' | 'closed' | 'error';
|
|
116
|
-
/**
|
|
117
|
-
* Unsubscribe function
|
|
118
|
-
*/
|
|
119
|
-
type SSEUnsubscribe = () => void;
|
|
120
|
-
|
|
121
|
-
export type { SSEHandlerConfig as S, SSEMessage as a, SSEClientConfig as b, SSEEventHandler as c, SSEEventHandlers as d, SSESubscribeOptions as e, SSEConnectionState as f, SSEUnsubscribe as g };
|