@spfn/core 0.1.0-alpha.88 → 0.2.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 (97) hide show
  1. package/README.md +298 -466
  2. package/dist/boss-DI1r4kTS.d.ts +244 -0
  3. package/dist/cache/index.d.ts +13 -33
  4. package/dist/cache/index.js +14 -703
  5. package/dist/cache/index.js.map +1 -1
  6. package/dist/codegen/index.d.ts +214 -17
  7. package/dist/codegen/index.js +231 -1420
  8. package/dist/codegen/index.js.map +1 -1
  9. package/dist/config/index.d.ts +1227 -0
  10. package/dist/config/index.js +273 -0
  11. package/dist/config/index.js.map +1 -0
  12. package/dist/db/index.d.ts +741 -59
  13. package/dist/db/index.js +1063 -1226
  14. package/dist/db/index.js.map +1 -1
  15. package/dist/env/index.d.ts +658 -308
  16. package/dist/env/index.js +503 -928
  17. package/dist/env/index.js.map +1 -1
  18. package/dist/env/loader.d.ts +87 -0
  19. package/dist/env/loader.js +70 -0
  20. package/dist/env/loader.js.map +1 -0
  21. package/dist/errors/index.d.ts +417 -29
  22. package/dist/errors/index.js +359 -98
  23. package/dist/errors/index.js.map +1 -1
  24. package/dist/event/index.d.ts +41 -0
  25. package/dist/event/index.js +131 -0
  26. package/dist/event/index.js.map +1 -0
  27. package/dist/event/sse/client.d.ts +82 -0
  28. package/dist/event/sse/client.js +115 -0
  29. package/dist/event/sse/client.js.map +1 -0
  30. package/dist/event/sse/index.d.ts +40 -0
  31. package/dist/event/sse/index.js +92 -0
  32. package/dist/event/sse/index.js.map +1 -0
  33. package/dist/job/index.d.ts +218 -0
  34. package/dist/job/index.js +410 -0
  35. package/dist/job/index.js.map +1 -0
  36. package/dist/logger/index.d.ts +20 -79
  37. package/dist/logger/index.js +82 -387
  38. package/dist/logger/index.js.map +1 -1
  39. package/dist/middleware/index.d.ts +102 -20
  40. package/dist/middleware/index.js +51 -705
  41. package/dist/middleware/index.js.map +1 -1
  42. package/dist/nextjs/index.d.ts +120 -0
  43. package/dist/nextjs/index.js +448 -0
  44. package/dist/nextjs/index.js.map +1 -0
  45. package/dist/{client/nextjs/index.d.ts → nextjs/server.d.ts} +335 -262
  46. package/dist/nextjs/server.js +637 -0
  47. package/dist/nextjs/server.js.map +1 -0
  48. package/dist/route/index.d.ts +879 -25
  49. package/dist/route/index.js +697 -1271
  50. package/dist/route/index.js.map +1 -1
  51. package/dist/route/types.d.ts +9 -0
  52. package/dist/route/types.js +3 -0
  53. package/dist/route/types.js.map +1 -0
  54. package/dist/router-Di7ENoah.d.ts +151 -0
  55. package/dist/server/index.d.ts +345 -64
  56. package/dist/server/index.js +1174 -3233
  57. package/dist/server/index.js.map +1 -1
  58. package/dist/types-B-e_f2dQ.d.ts +121 -0
  59. package/dist/types-BGl4QL1w.d.ts +77 -0
  60. package/dist/types-BOPTApC2.d.ts +245 -0
  61. package/docs/cache.md +133 -0
  62. package/docs/codegen.md +74 -0
  63. package/docs/database.md +346 -0
  64. package/docs/entity.md +539 -0
  65. package/docs/env.md +477 -0
  66. package/docs/errors.md +319 -0
  67. package/docs/event.md +116 -0
  68. package/docs/file-upload.md +717 -0
  69. package/docs/job.md +131 -0
  70. package/docs/logger.md +108 -0
  71. package/docs/middleware.md +337 -0
  72. package/docs/nextjs.md +241 -0
  73. package/docs/repository.md +496 -0
  74. package/docs/route.md +497 -0
  75. package/docs/server.md +307 -0
  76. package/package.json +68 -48
  77. package/dist/auto-loader-JFaZ9gON.d.ts +0 -80
  78. package/dist/client/index.d.ts +0 -358
  79. package/dist/client/index.js +0 -357
  80. package/dist/client/index.js.map +0 -1
  81. package/dist/client/nextjs/index.js +0 -371
  82. package/dist/client/nextjs/index.js.map +0 -1
  83. package/dist/codegen/generators/index.d.ts +0 -19
  84. package/dist/codegen/generators/index.js +0 -1404
  85. package/dist/codegen/generators/index.js.map +0 -1
  86. package/dist/database-errors-BNNmLTJE.d.ts +0 -86
  87. package/dist/events/index.d.ts +0 -183
  88. package/dist/events/index.js +0 -77
  89. package/dist/events/index.js.map +0 -1
  90. package/dist/index-DHiAqhKv.d.ts +0 -101
  91. package/dist/index.d.ts +0 -8
  92. package/dist/index.js +0 -3674
  93. package/dist/index.js.map +0 -1
  94. package/dist/types/index.d.ts +0 -121
  95. package/dist/types/index.js +0 -38
  96. package/dist/types/index.js.map +0 -1
  97. package/dist/types-BXibIEyj.d.ts +0 -60
@@ -0,0 +1,1227 @@
1
+ import * as _spfn_core_env from '@spfn/core/env';
2
+ import { parsePostgresUrl, parseRedisUrl } from '@spfn/core/env';
3
+
4
+ /**
5
+ * Core package environment variable schema
6
+ *
7
+ * Defines all environment variables with:
8
+ * - Type information
9
+ * - Default values
10
+ * - Validation rules
11
+ * - Documentation
12
+ *
13
+ * @example
14
+ * ```typescript
15
+ * import { coreEnvSchema } from '@spfn/core/config';
16
+ *
17
+ * // Access schema information
18
+ * console.log(coreEnvSchema.DB_POOL_MAX.description);
19
+ * console.log(coreEnvSchema.DB_POOL_MAX.default);
20
+ * ```
21
+ */
22
+ declare const coreEnvSchema: {
23
+ NODE_ENV: Omit<_spfn_core_env.EnvVarSchema<"production" | "local" | "development" | "test">, "key" | "type" | "validator"> & {
24
+ type: "enum";
25
+ validator: (val: string) => "production" | "local" | "development" | "test";
26
+ } & {
27
+ key: "NODE_ENV";
28
+ };
29
+ DATABASE_URL: {
30
+ description: string;
31
+ required: boolean;
32
+ sensitive: boolean;
33
+ validator: typeof parsePostgresUrl;
34
+ examples: string[];
35
+ } & {
36
+ type: "string";
37
+ } & {
38
+ key: "DATABASE_URL";
39
+ };
40
+ DATABASE_WRITE_URL: {
41
+ description: string;
42
+ required: boolean;
43
+ sensitive: boolean;
44
+ validator: typeof parsePostgresUrl;
45
+ examples: string[];
46
+ } & {
47
+ type: "string";
48
+ } & {
49
+ key: "DATABASE_WRITE_URL";
50
+ };
51
+ DATABASE_READ_URL: {
52
+ description: string;
53
+ required: boolean;
54
+ sensitive: boolean;
55
+ validator: typeof parsePostgresUrl;
56
+ examples: string[];
57
+ } & {
58
+ type: "string";
59
+ } & {
60
+ key: "DATABASE_READ_URL";
61
+ };
62
+ DB_POOL_MAX: {
63
+ description: string;
64
+ default: number;
65
+ examples: number[];
66
+ } & {
67
+ type: "number";
68
+ validator: (value: string) => number;
69
+ } & {
70
+ key: "DB_POOL_MAX";
71
+ };
72
+ DB_POOL_IDLE_TIMEOUT: {
73
+ description: string;
74
+ default: number;
75
+ examples: number[];
76
+ } & {
77
+ type: "number";
78
+ validator: (value: string) => number;
79
+ } & {
80
+ key: "DB_POOL_IDLE_TIMEOUT";
81
+ };
82
+ DB_RETRY_MAX: {
83
+ description: string;
84
+ default: number;
85
+ examples: number[];
86
+ } & {
87
+ type: "number";
88
+ validator: (value: string) => number;
89
+ } & {
90
+ key: "DB_RETRY_MAX";
91
+ };
92
+ DB_RETRY_INITIAL_DELAY: {
93
+ description: string;
94
+ default: number;
95
+ examples: number[];
96
+ } & {
97
+ type: "number";
98
+ validator: (value: string) => number;
99
+ } & {
100
+ key: "DB_RETRY_INITIAL_DELAY";
101
+ };
102
+ DB_RETRY_MAX_DELAY: {
103
+ description: string;
104
+ default: number;
105
+ examples: number[];
106
+ } & {
107
+ type: "number";
108
+ validator: (value: string) => number;
109
+ } & {
110
+ key: "DB_RETRY_MAX_DELAY";
111
+ };
112
+ DB_RETRY_FACTOR: {
113
+ description: string;
114
+ default: number;
115
+ examples: number[];
116
+ } & {
117
+ type: "number";
118
+ validator: (value: string) => number;
119
+ } & {
120
+ key: "DB_RETRY_FACTOR";
121
+ };
122
+ DB_HEALTH_CHECK_ENABLED: {
123
+ description: string;
124
+ default: boolean;
125
+ examples: boolean[];
126
+ } & {
127
+ type: "boolean";
128
+ validator: (value: string) => boolean;
129
+ } & {
130
+ key: "DB_HEALTH_CHECK_ENABLED";
131
+ };
132
+ DB_HEALTH_CHECK_INTERVAL: {
133
+ description: string;
134
+ default: number;
135
+ examples: number[];
136
+ } & {
137
+ type: "number";
138
+ validator: (value: string) => number;
139
+ } & {
140
+ key: "DB_HEALTH_CHECK_INTERVAL";
141
+ };
142
+ DB_HEALTH_CHECK_RECONNECT: {
143
+ description: string;
144
+ default: boolean;
145
+ examples: boolean[];
146
+ } & {
147
+ type: "boolean";
148
+ validator: (value: string) => boolean;
149
+ } & {
150
+ key: "DB_HEALTH_CHECK_RECONNECT";
151
+ };
152
+ DB_HEALTH_CHECK_MAX_RETRIES: {
153
+ description: string;
154
+ default: number;
155
+ examples: number[];
156
+ } & {
157
+ type: "number";
158
+ validator: (value: string) => number;
159
+ } & {
160
+ key: "DB_HEALTH_CHECK_MAX_RETRIES";
161
+ };
162
+ DB_HEALTH_CHECK_RETRY_INTERVAL: {
163
+ description: string;
164
+ default: number;
165
+ examples: number[];
166
+ } & {
167
+ type: "number";
168
+ validator: (value: string) => number;
169
+ } & {
170
+ key: "DB_HEALTH_CHECK_RETRY_INTERVAL";
171
+ };
172
+ DB_MONITORING_ENABLED: {
173
+ description: string;
174
+ default: boolean;
175
+ examples: boolean[];
176
+ } & {
177
+ type: "boolean";
178
+ validator: (value: string) => boolean;
179
+ } & {
180
+ key: "DB_MONITORING_ENABLED";
181
+ };
182
+ DB_MONITORING_SLOW_THRESHOLD: {
183
+ description: string;
184
+ default: number;
185
+ examples: number[];
186
+ } & {
187
+ type: "number";
188
+ validator: (value: string) => number;
189
+ } & {
190
+ key: "DB_MONITORING_SLOW_THRESHOLD";
191
+ };
192
+ DB_MONITORING_LOG_QUERIES: {
193
+ description: string;
194
+ default: boolean;
195
+ examples: boolean[];
196
+ } & {
197
+ type: "boolean";
198
+ validator: (value: string) => boolean;
199
+ } & {
200
+ key: "DB_MONITORING_LOG_QUERIES";
201
+ };
202
+ TRANSACTION_TIMEOUT: {
203
+ description: string;
204
+ default: number;
205
+ examples: number[];
206
+ } & {
207
+ type: "number";
208
+ validator: (value: string) => number;
209
+ } & {
210
+ key: "TRANSACTION_TIMEOUT";
211
+ };
212
+ DB_DEBUG_TRACE: {
213
+ description: string;
214
+ default: boolean;
215
+ examples: boolean[];
216
+ } & {
217
+ type: "boolean";
218
+ validator: (value: string) => boolean;
219
+ } & {
220
+ key: "DB_DEBUG_TRACE";
221
+ };
222
+ DRIZZLE_SCHEMA_PATH: {
223
+ description: string;
224
+ required: boolean;
225
+ default: string;
226
+ examples: string[];
227
+ } & {
228
+ type: "string";
229
+ } & {
230
+ key: "DRIZZLE_SCHEMA_PATH";
231
+ };
232
+ DRIZZLE_OUT_DIR: {
233
+ description: string;
234
+ required: boolean;
235
+ default: string;
236
+ examples: string[];
237
+ } & {
238
+ type: "string";
239
+ } & {
240
+ key: "DRIZZLE_OUT_DIR";
241
+ };
242
+ SPFN_LOG_LEVEL: Omit<_spfn_core_env.EnvVarSchema<"debug" | "info" | "warn" | "error" | "fatal">, "key" | "type" | "validator"> & {
243
+ type: "enum";
244
+ validator: (val: string) => "debug" | "info" | "warn" | "error" | "fatal";
245
+ } & {
246
+ key: "SPFN_LOG_LEVEL";
247
+ };
248
+ CACHE_URL: {
249
+ description: string;
250
+ required: boolean;
251
+ sensitive: boolean;
252
+ validator: typeof parseRedisUrl;
253
+ examples: string[];
254
+ } & {
255
+ type: "string";
256
+ } & {
257
+ key: "CACHE_URL";
258
+ };
259
+ CACHE_WRITE_URL: {
260
+ description: string;
261
+ required: boolean;
262
+ sensitive: boolean;
263
+ validator: typeof parseRedisUrl;
264
+ examples: string[];
265
+ } & {
266
+ type: "string";
267
+ } & {
268
+ key: "CACHE_WRITE_URL";
269
+ };
270
+ CACHE_READ_URL: {
271
+ description: string;
272
+ required: boolean;
273
+ sensitive: boolean;
274
+ validator: typeof parseRedisUrl;
275
+ examples: string[];
276
+ } & {
277
+ type: "string";
278
+ } & {
279
+ key: "CACHE_READ_URL";
280
+ };
281
+ CACHE_SENTINEL_HOSTS: {
282
+ description: string;
283
+ required: boolean;
284
+ examples: string[];
285
+ } & {
286
+ type: "string";
287
+ } & {
288
+ key: "CACHE_SENTINEL_HOSTS";
289
+ };
290
+ CACHE_CLUSTER_NODES: {
291
+ description: string;
292
+ required: boolean;
293
+ examples: string[];
294
+ } & {
295
+ type: "string";
296
+ } & {
297
+ key: "CACHE_CLUSTER_NODES";
298
+ };
299
+ CACHE_MASTER_NAME: {
300
+ description: string;
301
+ required: boolean;
302
+ examples: string[];
303
+ } & {
304
+ type: "string";
305
+ } & {
306
+ key: "CACHE_MASTER_NAME";
307
+ };
308
+ CACHE_PASSWORD: {
309
+ description: string;
310
+ required: boolean;
311
+ sensitive: boolean;
312
+ examples: string[];
313
+ } & {
314
+ type: "string";
315
+ } & {
316
+ key: "CACHE_PASSWORD";
317
+ };
318
+ CACHE_TLS_REJECT_UNAUTHORIZED: {
319
+ description: string;
320
+ default: boolean;
321
+ examples: boolean[];
322
+ } & {
323
+ type: "boolean";
324
+ validator: (value: string) => boolean;
325
+ } & {
326
+ key: "CACHE_TLS_REJECT_UNAUTHORIZED";
327
+ };
328
+ PORT: {
329
+ description: string;
330
+ default: number;
331
+ examples: number[];
332
+ } & {
333
+ type: "number";
334
+ validator: (value: string) => number;
335
+ } & {
336
+ key: "PORT";
337
+ };
338
+ HOST: {
339
+ description: string;
340
+ default: string;
341
+ required: boolean;
342
+ examples: string[];
343
+ } & {
344
+ type: "string";
345
+ } & {
346
+ key: "HOST";
347
+ };
348
+ SERVER_TIMEOUT: {
349
+ description: string;
350
+ default: number;
351
+ examples: number[];
352
+ } & {
353
+ type: "number";
354
+ validator: (value: string) => number;
355
+ } & {
356
+ key: "SERVER_TIMEOUT";
357
+ };
358
+ SERVER_KEEPALIVE_TIMEOUT: {
359
+ description: string;
360
+ default: number;
361
+ examples: number[];
362
+ } & {
363
+ type: "number";
364
+ validator: (value: string) => number;
365
+ } & {
366
+ key: "SERVER_KEEPALIVE_TIMEOUT";
367
+ };
368
+ SERVER_HEADERS_TIMEOUT: {
369
+ description: string;
370
+ default: number;
371
+ examples: number[];
372
+ } & {
373
+ type: "number";
374
+ validator: (value: string) => number;
375
+ } & {
376
+ key: "SERVER_HEADERS_TIMEOUT";
377
+ };
378
+ SHUTDOWN_TIMEOUT: {
379
+ description: string;
380
+ default: number;
381
+ examples: number[];
382
+ } & {
383
+ type: "number";
384
+ validator: (value: string) => number;
385
+ } & {
386
+ key: "SHUTDOWN_TIMEOUT";
387
+ };
388
+ SPFN_API_URL: {
389
+ description: string;
390
+ required: boolean;
391
+ nextjs: boolean;
392
+ examples: string[];
393
+ } & {
394
+ type: "url";
395
+ } & {
396
+ key: "SPFN_API_URL";
397
+ };
398
+ NEXT_PUBLIC_SPFN_API_URL: {
399
+ description: string;
400
+ required: boolean;
401
+ nextjs: boolean;
402
+ examples: string[];
403
+ } & {
404
+ type: "url";
405
+ } & {
406
+ key: "NEXT_PUBLIC_SPFN_API_URL";
407
+ };
408
+ SPFN_APP_URL: {
409
+ description: string;
410
+ required: boolean;
411
+ nextjs: boolean;
412
+ examples: string[];
413
+ } & {
414
+ type: "url";
415
+ } & {
416
+ key: "SPFN_APP_URL";
417
+ };
418
+ };
419
+
420
+ /**
421
+ * Environment registry
422
+ *
423
+ * @example
424
+ * ```typescript
425
+ * // Reset for testing
426
+ * registry.reset();
427
+ * ```
428
+ */
429
+ declare const registry: _spfn_core_env.EnvRegistry<{
430
+ NODE_ENV: Omit<_spfn_core_env.EnvVarSchema<"production" | "local" | "development" | "test">, "key" | "type" | "validator"> & {
431
+ type: "enum";
432
+ validator: (val: string) => "production" | "local" | "development" | "test";
433
+ } & {
434
+ key: "NODE_ENV";
435
+ };
436
+ DATABASE_URL: {
437
+ description: string;
438
+ required: boolean;
439
+ sensitive: boolean;
440
+ validator: typeof _spfn_core_env.parsePostgresUrl;
441
+ examples: string[];
442
+ } & {
443
+ type: "string";
444
+ } & {
445
+ key: "DATABASE_URL";
446
+ };
447
+ DATABASE_WRITE_URL: {
448
+ description: string;
449
+ required: boolean;
450
+ sensitive: boolean;
451
+ validator: typeof _spfn_core_env.parsePostgresUrl;
452
+ examples: string[];
453
+ } & {
454
+ type: "string";
455
+ } & {
456
+ key: "DATABASE_WRITE_URL";
457
+ };
458
+ DATABASE_READ_URL: {
459
+ description: string;
460
+ required: boolean;
461
+ sensitive: boolean;
462
+ validator: typeof _spfn_core_env.parsePostgresUrl;
463
+ examples: string[];
464
+ } & {
465
+ type: "string";
466
+ } & {
467
+ key: "DATABASE_READ_URL";
468
+ };
469
+ DB_POOL_MAX: {
470
+ description: string;
471
+ default: number;
472
+ examples: number[];
473
+ } & {
474
+ type: "number";
475
+ validator: (value: string) => number;
476
+ } & {
477
+ key: "DB_POOL_MAX";
478
+ };
479
+ DB_POOL_IDLE_TIMEOUT: {
480
+ description: string;
481
+ default: number;
482
+ examples: number[];
483
+ } & {
484
+ type: "number";
485
+ validator: (value: string) => number;
486
+ } & {
487
+ key: "DB_POOL_IDLE_TIMEOUT";
488
+ };
489
+ DB_RETRY_MAX: {
490
+ description: string;
491
+ default: number;
492
+ examples: number[];
493
+ } & {
494
+ type: "number";
495
+ validator: (value: string) => number;
496
+ } & {
497
+ key: "DB_RETRY_MAX";
498
+ };
499
+ DB_RETRY_INITIAL_DELAY: {
500
+ description: string;
501
+ default: number;
502
+ examples: number[];
503
+ } & {
504
+ type: "number";
505
+ validator: (value: string) => number;
506
+ } & {
507
+ key: "DB_RETRY_INITIAL_DELAY";
508
+ };
509
+ DB_RETRY_MAX_DELAY: {
510
+ description: string;
511
+ default: number;
512
+ examples: number[];
513
+ } & {
514
+ type: "number";
515
+ validator: (value: string) => number;
516
+ } & {
517
+ key: "DB_RETRY_MAX_DELAY";
518
+ };
519
+ DB_RETRY_FACTOR: {
520
+ description: string;
521
+ default: number;
522
+ examples: number[];
523
+ } & {
524
+ type: "number";
525
+ validator: (value: string) => number;
526
+ } & {
527
+ key: "DB_RETRY_FACTOR";
528
+ };
529
+ DB_HEALTH_CHECK_ENABLED: {
530
+ description: string;
531
+ default: boolean;
532
+ examples: boolean[];
533
+ } & {
534
+ type: "boolean";
535
+ validator: (value: string) => boolean;
536
+ } & {
537
+ key: "DB_HEALTH_CHECK_ENABLED";
538
+ };
539
+ DB_HEALTH_CHECK_INTERVAL: {
540
+ description: string;
541
+ default: number;
542
+ examples: number[];
543
+ } & {
544
+ type: "number";
545
+ validator: (value: string) => number;
546
+ } & {
547
+ key: "DB_HEALTH_CHECK_INTERVAL";
548
+ };
549
+ DB_HEALTH_CHECK_RECONNECT: {
550
+ description: string;
551
+ default: boolean;
552
+ examples: boolean[];
553
+ } & {
554
+ type: "boolean";
555
+ validator: (value: string) => boolean;
556
+ } & {
557
+ key: "DB_HEALTH_CHECK_RECONNECT";
558
+ };
559
+ DB_HEALTH_CHECK_MAX_RETRIES: {
560
+ description: string;
561
+ default: number;
562
+ examples: number[];
563
+ } & {
564
+ type: "number";
565
+ validator: (value: string) => number;
566
+ } & {
567
+ key: "DB_HEALTH_CHECK_MAX_RETRIES";
568
+ };
569
+ DB_HEALTH_CHECK_RETRY_INTERVAL: {
570
+ description: string;
571
+ default: number;
572
+ examples: number[];
573
+ } & {
574
+ type: "number";
575
+ validator: (value: string) => number;
576
+ } & {
577
+ key: "DB_HEALTH_CHECK_RETRY_INTERVAL";
578
+ };
579
+ DB_MONITORING_ENABLED: {
580
+ description: string;
581
+ default: boolean;
582
+ examples: boolean[];
583
+ } & {
584
+ type: "boolean";
585
+ validator: (value: string) => boolean;
586
+ } & {
587
+ key: "DB_MONITORING_ENABLED";
588
+ };
589
+ DB_MONITORING_SLOW_THRESHOLD: {
590
+ description: string;
591
+ default: number;
592
+ examples: number[];
593
+ } & {
594
+ type: "number";
595
+ validator: (value: string) => number;
596
+ } & {
597
+ key: "DB_MONITORING_SLOW_THRESHOLD";
598
+ };
599
+ DB_MONITORING_LOG_QUERIES: {
600
+ description: string;
601
+ default: boolean;
602
+ examples: boolean[];
603
+ } & {
604
+ type: "boolean";
605
+ validator: (value: string) => boolean;
606
+ } & {
607
+ key: "DB_MONITORING_LOG_QUERIES";
608
+ };
609
+ TRANSACTION_TIMEOUT: {
610
+ description: string;
611
+ default: number;
612
+ examples: number[];
613
+ } & {
614
+ type: "number";
615
+ validator: (value: string) => number;
616
+ } & {
617
+ key: "TRANSACTION_TIMEOUT";
618
+ };
619
+ DB_DEBUG_TRACE: {
620
+ description: string;
621
+ default: boolean;
622
+ examples: boolean[];
623
+ } & {
624
+ type: "boolean";
625
+ validator: (value: string) => boolean;
626
+ } & {
627
+ key: "DB_DEBUG_TRACE";
628
+ };
629
+ DRIZZLE_SCHEMA_PATH: {
630
+ description: string;
631
+ required: boolean;
632
+ default: string;
633
+ examples: string[];
634
+ } & {
635
+ type: "string";
636
+ } & {
637
+ key: "DRIZZLE_SCHEMA_PATH";
638
+ };
639
+ DRIZZLE_OUT_DIR: {
640
+ description: string;
641
+ required: boolean;
642
+ default: string;
643
+ examples: string[];
644
+ } & {
645
+ type: "string";
646
+ } & {
647
+ key: "DRIZZLE_OUT_DIR";
648
+ };
649
+ SPFN_LOG_LEVEL: Omit<_spfn_core_env.EnvVarSchema<"debug" | "info" | "warn" | "error" | "fatal">, "key" | "type" | "validator"> & {
650
+ type: "enum";
651
+ validator: (val: string) => "debug" | "info" | "warn" | "error" | "fatal";
652
+ } & {
653
+ key: "SPFN_LOG_LEVEL";
654
+ };
655
+ CACHE_URL: {
656
+ description: string;
657
+ required: boolean;
658
+ sensitive: boolean;
659
+ validator: typeof _spfn_core_env.parseRedisUrl;
660
+ examples: string[];
661
+ } & {
662
+ type: "string";
663
+ } & {
664
+ key: "CACHE_URL";
665
+ };
666
+ CACHE_WRITE_URL: {
667
+ description: string;
668
+ required: boolean;
669
+ sensitive: boolean;
670
+ validator: typeof _spfn_core_env.parseRedisUrl;
671
+ examples: string[];
672
+ } & {
673
+ type: "string";
674
+ } & {
675
+ key: "CACHE_WRITE_URL";
676
+ };
677
+ CACHE_READ_URL: {
678
+ description: string;
679
+ required: boolean;
680
+ sensitive: boolean;
681
+ validator: typeof _spfn_core_env.parseRedisUrl;
682
+ examples: string[];
683
+ } & {
684
+ type: "string";
685
+ } & {
686
+ key: "CACHE_READ_URL";
687
+ };
688
+ CACHE_SENTINEL_HOSTS: {
689
+ description: string;
690
+ required: boolean;
691
+ examples: string[];
692
+ } & {
693
+ type: "string";
694
+ } & {
695
+ key: "CACHE_SENTINEL_HOSTS";
696
+ };
697
+ CACHE_CLUSTER_NODES: {
698
+ description: string;
699
+ required: boolean;
700
+ examples: string[];
701
+ } & {
702
+ type: "string";
703
+ } & {
704
+ key: "CACHE_CLUSTER_NODES";
705
+ };
706
+ CACHE_MASTER_NAME: {
707
+ description: string;
708
+ required: boolean;
709
+ examples: string[];
710
+ } & {
711
+ type: "string";
712
+ } & {
713
+ key: "CACHE_MASTER_NAME";
714
+ };
715
+ CACHE_PASSWORD: {
716
+ description: string;
717
+ required: boolean;
718
+ sensitive: boolean;
719
+ examples: string[];
720
+ } & {
721
+ type: "string";
722
+ } & {
723
+ key: "CACHE_PASSWORD";
724
+ };
725
+ CACHE_TLS_REJECT_UNAUTHORIZED: {
726
+ description: string;
727
+ default: boolean;
728
+ examples: boolean[];
729
+ } & {
730
+ type: "boolean";
731
+ validator: (value: string) => boolean;
732
+ } & {
733
+ key: "CACHE_TLS_REJECT_UNAUTHORIZED";
734
+ };
735
+ PORT: {
736
+ description: string;
737
+ default: number;
738
+ examples: number[];
739
+ } & {
740
+ type: "number";
741
+ validator: (value: string) => number;
742
+ } & {
743
+ key: "PORT";
744
+ };
745
+ HOST: {
746
+ description: string;
747
+ default: string;
748
+ required: boolean;
749
+ examples: string[];
750
+ } & {
751
+ type: "string";
752
+ } & {
753
+ key: "HOST";
754
+ };
755
+ SERVER_TIMEOUT: {
756
+ description: string;
757
+ default: number;
758
+ examples: number[];
759
+ } & {
760
+ type: "number";
761
+ validator: (value: string) => number;
762
+ } & {
763
+ key: "SERVER_TIMEOUT";
764
+ };
765
+ SERVER_KEEPALIVE_TIMEOUT: {
766
+ description: string;
767
+ default: number;
768
+ examples: number[];
769
+ } & {
770
+ type: "number";
771
+ validator: (value: string) => number;
772
+ } & {
773
+ key: "SERVER_KEEPALIVE_TIMEOUT";
774
+ };
775
+ SERVER_HEADERS_TIMEOUT: {
776
+ description: string;
777
+ default: number;
778
+ examples: number[];
779
+ } & {
780
+ type: "number";
781
+ validator: (value: string) => number;
782
+ } & {
783
+ key: "SERVER_HEADERS_TIMEOUT";
784
+ };
785
+ SHUTDOWN_TIMEOUT: {
786
+ description: string;
787
+ default: number;
788
+ examples: number[];
789
+ } & {
790
+ type: "number";
791
+ validator: (value: string) => number;
792
+ } & {
793
+ key: "SHUTDOWN_TIMEOUT";
794
+ };
795
+ SPFN_API_URL: {
796
+ description: string;
797
+ required: boolean;
798
+ nextjs: boolean;
799
+ examples: string[];
800
+ } & {
801
+ type: "url";
802
+ } & {
803
+ key: "SPFN_API_URL";
804
+ };
805
+ NEXT_PUBLIC_SPFN_API_URL: {
806
+ description: string;
807
+ required: boolean;
808
+ nextjs: boolean;
809
+ examples: string[];
810
+ } & {
811
+ type: "url";
812
+ } & {
813
+ key: "NEXT_PUBLIC_SPFN_API_URL";
814
+ };
815
+ SPFN_APP_URL: {
816
+ description: string;
817
+ required: boolean;
818
+ nextjs: boolean;
819
+ examples: string[];
820
+ } & {
821
+ type: "url";
822
+ } & {
823
+ key: "SPFN_APP_URL";
824
+ };
825
+ }>;
826
+ /**
827
+ * Validated environment configuration
828
+ */
829
+ declare const env: _spfn_core_env.InferEnvType<{
830
+ NODE_ENV: Omit<_spfn_core_env.EnvVarSchema<"production" | "local" | "development" | "test">, "key" | "type" | "validator"> & {
831
+ type: "enum";
832
+ validator: (val: string) => "production" | "local" | "development" | "test";
833
+ } & {
834
+ key: "NODE_ENV";
835
+ };
836
+ DATABASE_URL: {
837
+ description: string;
838
+ required: boolean;
839
+ sensitive: boolean;
840
+ validator: typeof _spfn_core_env.parsePostgresUrl;
841
+ examples: string[];
842
+ } & {
843
+ type: "string";
844
+ } & {
845
+ key: "DATABASE_URL";
846
+ };
847
+ DATABASE_WRITE_URL: {
848
+ description: string;
849
+ required: boolean;
850
+ sensitive: boolean;
851
+ validator: typeof _spfn_core_env.parsePostgresUrl;
852
+ examples: string[];
853
+ } & {
854
+ type: "string";
855
+ } & {
856
+ key: "DATABASE_WRITE_URL";
857
+ };
858
+ DATABASE_READ_URL: {
859
+ description: string;
860
+ required: boolean;
861
+ sensitive: boolean;
862
+ validator: typeof _spfn_core_env.parsePostgresUrl;
863
+ examples: string[];
864
+ } & {
865
+ type: "string";
866
+ } & {
867
+ key: "DATABASE_READ_URL";
868
+ };
869
+ DB_POOL_MAX: {
870
+ description: string;
871
+ default: number;
872
+ examples: number[];
873
+ } & {
874
+ type: "number";
875
+ validator: (value: string) => number;
876
+ } & {
877
+ key: "DB_POOL_MAX";
878
+ };
879
+ DB_POOL_IDLE_TIMEOUT: {
880
+ description: string;
881
+ default: number;
882
+ examples: number[];
883
+ } & {
884
+ type: "number";
885
+ validator: (value: string) => number;
886
+ } & {
887
+ key: "DB_POOL_IDLE_TIMEOUT";
888
+ };
889
+ DB_RETRY_MAX: {
890
+ description: string;
891
+ default: number;
892
+ examples: number[];
893
+ } & {
894
+ type: "number";
895
+ validator: (value: string) => number;
896
+ } & {
897
+ key: "DB_RETRY_MAX";
898
+ };
899
+ DB_RETRY_INITIAL_DELAY: {
900
+ description: string;
901
+ default: number;
902
+ examples: number[];
903
+ } & {
904
+ type: "number";
905
+ validator: (value: string) => number;
906
+ } & {
907
+ key: "DB_RETRY_INITIAL_DELAY";
908
+ };
909
+ DB_RETRY_MAX_DELAY: {
910
+ description: string;
911
+ default: number;
912
+ examples: number[];
913
+ } & {
914
+ type: "number";
915
+ validator: (value: string) => number;
916
+ } & {
917
+ key: "DB_RETRY_MAX_DELAY";
918
+ };
919
+ DB_RETRY_FACTOR: {
920
+ description: string;
921
+ default: number;
922
+ examples: number[];
923
+ } & {
924
+ type: "number";
925
+ validator: (value: string) => number;
926
+ } & {
927
+ key: "DB_RETRY_FACTOR";
928
+ };
929
+ DB_HEALTH_CHECK_ENABLED: {
930
+ description: string;
931
+ default: boolean;
932
+ examples: boolean[];
933
+ } & {
934
+ type: "boolean";
935
+ validator: (value: string) => boolean;
936
+ } & {
937
+ key: "DB_HEALTH_CHECK_ENABLED";
938
+ };
939
+ DB_HEALTH_CHECK_INTERVAL: {
940
+ description: string;
941
+ default: number;
942
+ examples: number[];
943
+ } & {
944
+ type: "number";
945
+ validator: (value: string) => number;
946
+ } & {
947
+ key: "DB_HEALTH_CHECK_INTERVAL";
948
+ };
949
+ DB_HEALTH_CHECK_RECONNECT: {
950
+ description: string;
951
+ default: boolean;
952
+ examples: boolean[];
953
+ } & {
954
+ type: "boolean";
955
+ validator: (value: string) => boolean;
956
+ } & {
957
+ key: "DB_HEALTH_CHECK_RECONNECT";
958
+ };
959
+ DB_HEALTH_CHECK_MAX_RETRIES: {
960
+ description: string;
961
+ default: number;
962
+ examples: number[];
963
+ } & {
964
+ type: "number";
965
+ validator: (value: string) => number;
966
+ } & {
967
+ key: "DB_HEALTH_CHECK_MAX_RETRIES";
968
+ };
969
+ DB_HEALTH_CHECK_RETRY_INTERVAL: {
970
+ description: string;
971
+ default: number;
972
+ examples: number[];
973
+ } & {
974
+ type: "number";
975
+ validator: (value: string) => number;
976
+ } & {
977
+ key: "DB_HEALTH_CHECK_RETRY_INTERVAL";
978
+ };
979
+ DB_MONITORING_ENABLED: {
980
+ description: string;
981
+ default: boolean;
982
+ examples: boolean[];
983
+ } & {
984
+ type: "boolean";
985
+ validator: (value: string) => boolean;
986
+ } & {
987
+ key: "DB_MONITORING_ENABLED";
988
+ };
989
+ DB_MONITORING_SLOW_THRESHOLD: {
990
+ description: string;
991
+ default: number;
992
+ examples: number[];
993
+ } & {
994
+ type: "number";
995
+ validator: (value: string) => number;
996
+ } & {
997
+ key: "DB_MONITORING_SLOW_THRESHOLD";
998
+ };
999
+ DB_MONITORING_LOG_QUERIES: {
1000
+ description: string;
1001
+ default: boolean;
1002
+ examples: boolean[];
1003
+ } & {
1004
+ type: "boolean";
1005
+ validator: (value: string) => boolean;
1006
+ } & {
1007
+ key: "DB_MONITORING_LOG_QUERIES";
1008
+ };
1009
+ TRANSACTION_TIMEOUT: {
1010
+ description: string;
1011
+ default: number;
1012
+ examples: number[];
1013
+ } & {
1014
+ type: "number";
1015
+ validator: (value: string) => number;
1016
+ } & {
1017
+ key: "TRANSACTION_TIMEOUT";
1018
+ };
1019
+ DB_DEBUG_TRACE: {
1020
+ description: string;
1021
+ default: boolean;
1022
+ examples: boolean[];
1023
+ } & {
1024
+ type: "boolean";
1025
+ validator: (value: string) => boolean;
1026
+ } & {
1027
+ key: "DB_DEBUG_TRACE";
1028
+ };
1029
+ DRIZZLE_SCHEMA_PATH: {
1030
+ description: string;
1031
+ required: boolean;
1032
+ default: string;
1033
+ examples: string[];
1034
+ } & {
1035
+ type: "string";
1036
+ } & {
1037
+ key: "DRIZZLE_SCHEMA_PATH";
1038
+ };
1039
+ DRIZZLE_OUT_DIR: {
1040
+ description: string;
1041
+ required: boolean;
1042
+ default: string;
1043
+ examples: string[];
1044
+ } & {
1045
+ type: "string";
1046
+ } & {
1047
+ key: "DRIZZLE_OUT_DIR";
1048
+ };
1049
+ SPFN_LOG_LEVEL: Omit<_spfn_core_env.EnvVarSchema<"debug" | "info" | "warn" | "error" | "fatal">, "key" | "type" | "validator"> & {
1050
+ type: "enum";
1051
+ validator: (val: string) => "debug" | "info" | "warn" | "error" | "fatal";
1052
+ } & {
1053
+ key: "SPFN_LOG_LEVEL";
1054
+ };
1055
+ CACHE_URL: {
1056
+ description: string;
1057
+ required: boolean;
1058
+ sensitive: boolean;
1059
+ validator: typeof _spfn_core_env.parseRedisUrl;
1060
+ examples: string[];
1061
+ } & {
1062
+ type: "string";
1063
+ } & {
1064
+ key: "CACHE_URL";
1065
+ };
1066
+ CACHE_WRITE_URL: {
1067
+ description: string;
1068
+ required: boolean;
1069
+ sensitive: boolean;
1070
+ validator: typeof _spfn_core_env.parseRedisUrl;
1071
+ examples: string[];
1072
+ } & {
1073
+ type: "string";
1074
+ } & {
1075
+ key: "CACHE_WRITE_URL";
1076
+ };
1077
+ CACHE_READ_URL: {
1078
+ description: string;
1079
+ required: boolean;
1080
+ sensitive: boolean;
1081
+ validator: typeof _spfn_core_env.parseRedisUrl;
1082
+ examples: string[];
1083
+ } & {
1084
+ type: "string";
1085
+ } & {
1086
+ key: "CACHE_READ_URL";
1087
+ };
1088
+ CACHE_SENTINEL_HOSTS: {
1089
+ description: string;
1090
+ required: boolean;
1091
+ examples: string[];
1092
+ } & {
1093
+ type: "string";
1094
+ } & {
1095
+ key: "CACHE_SENTINEL_HOSTS";
1096
+ };
1097
+ CACHE_CLUSTER_NODES: {
1098
+ description: string;
1099
+ required: boolean;
1100
+ examples: string[];
1101
+ } & {
1102
+ type: "string";
1103
+ } & {
1104
+ key: "CACHE_CLUSTER_NODES";
1105
+ };
1106
+ CACHE_MASTER_NAME: {
1107
+ description: string;
1108
+ required: boolean;
1109
+ examples: string[];
1110
+ } & {
1111
+ type: "string";
1112
+ } & {
1113
+ key: "CACHE_MASTER_NAME";
1114
+ };
1115
+ CACHE_PASSWORD: {
1116
+ description: string;
1117
+ required: boolean;
1118
+ sensitive: boolean;
1119
+ examples: string[];
1120
+ } & {
1121
+ type: "string";
1122
+ } & {
1123
+ key: "CACHE_PASSWORD";
1124
+ };
1125
+ CACHE_TLS_REJECT_UNAUTHORIZED: {
1126
+ description: string;
1127
+ default: boolean;
1128
+ examples: boolean[];
1129
+ } & {
1130
+ type: "boolean";
1131
+ validator: (value: string) => boolean;
1132
+ } & {
1133
+ key: "CACHE_TLS_REJECT_UNAUTHORIZED";
1134
+ };
1135
+ PORT: {
1136
+ description: string;
1137
+ default: number;
1138
+ examples: number[];
1139
+ } & {
1140
+ type: "number";
1141
+ validator: (value: string) => number;
1142
+ } & {
1143
+ key: "PORT";
1144
+ };
1145
+ HOST: {
1146
+ description: string;
1147
+ default: string;
1148
+ required: boolean;
1149
+ examples: string[];
1150
+ } & {
1151
+ type: "string";
1152
+ } & {
1153
+ key: "HOST";
1154
+ };
1155
+ SERVER_TIMEOUT: {
1156
+ description: string;
1157
+ default: number;
1158
+ examples: number[];
1159
+ } & {
1160
+ type: "number";
1161
+ validator: (value: string) => number;
1162
+ } & {
1163
+ key: "SERVER_TIMEOUT";
1164
+ };
1165
+ SERVER_KEEPALIVE_TIMEOUT: {
1166
+ description: string;
1167
+ default: number;
1168
+ examples: number[];
1169
+ } & {
1170
+ type: "number";
1171
+ validator: (value: string) => number;
1172
+ } & {
1173
+ key: "SERVER_KEEPALIVE_TIMEOUT";
1174
+ };
1175
+ SERVER_HEADERS_TIMEOUT: {
1176
+ description: string;
1177
+ default: number;
1178
+ examples: number[];
1179
+ } & {
1180
+ type: "number";
1181
+ validator: (value: string) => number;
1182
+ } & {
1183
+ key: "SERVER_HEADERS_TIMEOUT";
1184
+ };
1185
+ SHUTDOWN_TIMEOUT: {
1186
+ description: string;
1187
+ default: number;
1188
+ examples: number[];
1189
+ } & {
1190
+ type: "number";
1191
+ validator: (value: string) => number;
1192
+ } & {
1193
+ key: "SHUTDOWN_TIMEOUT";
1194
+ };
1195
+ SPFN_API_URL: {
1196
+ description: string;
1197
+ required: boolean;
1198
+ nextjs: boolean;
1199
+ examples: string[];
1200
+ } & {
1201
+ type: "url";
1202
+ } & {
1203
+ key: "SPFN_API_URL";
1204
+ };
1205
+ NEXT_PUBLIC_SPFN_API_URL: {
1206
+ description: string;
1207
+ required: boolean;
1208
+ nextjs: boolean;
1209
+ examples: string[];
1210
+ } & {
1211
+ type: "url";
1212
+ } & {
1213
+ key: "NEXT_PUBLIC_SPFN_API_URL";
1214
+ };
1215
+ SPFN_APP_URL: {
1216
+ description: string;
1217
+ required: boolean;
1218
+ nextjs: boolean;
1219
+ examples: string[];
1220
+ } & {
1221
+ type: "url";
1222
+ } & {
1223
+ key: "SPFN_APP_URL";
1224
+ };
1225
+ }>;
1226
+
1227
+ export { env, coreEnvSchema as envSchema, registry };