@spfn/core 0.1.0-alpha.88 → 0.2.0-beta.2

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 (71) hide show
  1. package/README.md +1046 -384
  2. package/dist/boss-D-fGtVgM.d.ts +187 -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 +167 -17
  7. package/dist/codegen/index.js +76 -1419
  8. package/dist/codegen/index.js.map +1 -1
  9. package/dist/config/index.d.ts +1191 -0
  10. package/dist/config/index.js +264 -0
  11. package/dist/config/index.js.map +1 -0
  12. package/dist/db/index.d.ts +728 -59
  13. package/dist/db/index.js +1028 -1225
  14. package/dist/db/index.js.map +1 -1
  15. package/dist/env/index.d.ts +579 -308
  16. package/dist/env/index.js +438 -930
  17. package/dist/env/index.js.map +1 -1
  18. package/dist/errors/index.d.ts +417 -29
  19. package/dist/errors/index.js +359 -98
  20. package/dist/errors/index.js.map +1 -1
  21. package/dist/event/index.d.ts +108 -0
  22. package/dist/event/index.js +122 -0
  23. package/dist/event/index.js.map +1 -0
  24. package/dist/job/index.d.ts +172 -0
  25. package/dist/job/index.js +361 -0
  26. package/dist/job/index.js.map +1 -0
  27. package/dist/logger/index.d.ts +20 -79
  28. package/dist/logger/index.js +82 -387
  29. package/dist/logger/index.js.map +1 -1
  30. package/dist/middleware/index.d.ts +2 -11
  31. package/dist/middleware/index.js +49 -703
  32. package/dist/middleware/index.js.map +1 -1
  33. package/dist/nextjs/index.d.ts +120 -0
  34. package/dist/nextjs/index.js +416 -0
  35. package/dist/nextjs/index.js.map +1 -0
  36. package/dist/{client/nextjs/index.d.ts → nextjs/server.d.ts} +288 -262
  37. package/dist/nextjs/server.js +568 -0
  38. package/dist/nextjs/server.js.map +1 -0
  39. package/dist/route/index.d.ts +686 -25
  40. package/dist/route/index.js +440 -1287
  41. package/dist/route/index.js.map +1 -1
  42. package/dist/route/types.d.ts +38 -0
  43. package/dist/route/types.js +3 -0
  44. package/dist/route/types.js.map +1 -0
  45. package/dist/server/index.d.ts +201 -67
  46. package/dist/server/index.js +921 -3182
  47. package/dist/server/index.js.map +1 -1
  48. package/dist/types-BGl4QL1w.d.ts +77 -0
  49. package/dist/types-DRG2XMTR.d.ts +157 -0
  50. package/package.json +52 -47
  51. package/dist/auto-loader-JFaZ9gON.d.ts +0 -80
  52. package/dist/client/index.d.ts +0 -358
  53. package/dist/client/index.js +0 -357
  54. package/dist/client/index.js.map +0 -1
  55. package/dist/client/nextjs/index.js +0 -371
  56. package/dist/client/nextjs/index.js.map +0 -1
  57. package/dist/codegen/generators/index.d.ts +0 -19
  58. package/dist/codegen/generators/index.js +0 -1404
  59. package/dist/codegen/generators/index.js.map +0 -1
  60. package/dist/database-errors-BNNmLTJE.d.ts +0 -86
  61. package/dist/events/index.d.ts +0 -183
  62. package/dist/events/index.js +0 -77
  63. package/dist/events/index.js.map +0 -1
  64. package/dist/index-DHiAqhKv.d.ts +0 -101
  65. package/dist/index.d.ts +0 -8
  66. package/dist/index.js +0 -3674
  67. package/dist/index.js.map +0 -1
  68. package/dist/types/index.d.ts +0 -121
  69. package/dist/types/index.js +0 -38
  70. package/dist/types/index.js.map +0 -1
  71. package/dist/types-BXibIEyj.d.ts +0 -60
@@ -0,0 +1,1191 @@
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
+ examples: string[];
392
+ } & {
393
+ type: "url";
394
+ } & {
395
+ key: "SPFN_API_URL";
396
+ };
397
+ SPFN_APP_URL: {
398
+ description: string;
399
+ required: boolean;
400
+ examples: string[];
401
+ } & {
402
+ type: "url";
403
+ } & {
404
+ key: "SPFN_APP_URL";
405
+ };
406
+ };
407
+
408
+ /**
409
+ * Environment registry
410
+ *
411
+ * @example
412
+ * ```typescript
413
+ * // Reset for testing
414
+ * registry.reset();
415
+ * ```
416
+ */
417
+ declare const registry: _spfn_core_env.EnvRegistry<{
418
+ NODE_ENV: Omit<_spfn_core_env.EnvVarSchema<"production" | "local" | "development" | "test">, "key" | "type" | "validator"> & {
419
+ type: "enum";
420
+ validator: (val: string) => "production" | "local" | "development" | "test";
421
+ } & {
422
+ key: "NODE_ENV";
423
+ };
424
+ DATABASE_URL: {
425
+ description: string;
426
+ required: boolean;
427
+ sensitive: boolean;
428
+ validator: typeof _spfn_core_env.parsePostgresUrl;
429
+ examples: string[];
430
+ } & {
431
+ type: "string";
432
+ } & {
433
+ key: "DATABASE_URL";
434
+ };
435
+ DATABASE_WRITE_URL: {
436
+ description: string;
437
+ required: boolean;
438
+ sensitive: boolean;
439
+ validator: typeof _spfn_core_env.parsePostgresUrl;
440
+ examples: string[];
441
+ } & {
442
+ type: "string";
443
+ } & {
444
+ key: "DATABASE_WRITE_URL";
445
+ };
446
+ DATABASE_READ_URL: {
447
+ description: string;
448
+ required: boolean;
449
+ sensitive: boolean;
450
+ validator: typeof _spfn_core_env.parsePostgresUrl;
451
+ examples: string[];
452
+ } & {
453
+ type: "string";
454
+ } & {
455
+ key: "DATABASE_READ_URL";
456
+ };
457
+ DB_POOL_MAX: {
458
+ description: string;
459
+ default: number;
460
+ examples: number[];
461
+ } & {
462
+ type: "number";
463
+ validator: (value: string) => number;
464
+ } & {
465
+ key: "DB_POOL_MAX";
466
+ };
467
+ DB_POOL_IDLE_TIMEOUT: {
468
+ description: string;
469
+ default: number;
470
+ examples: number[];
471
+ } & {
472
+ type: "number";
473
+ validator: (value: string) => number;
474
+ } & {
475
+ key: "DB_POOL_IDLE_TIMEOUT";
476
+ };
477
+ DB_RETRY_MAX: {
478
+ description: string;
479
+ default: number;
480
+ examples: number[];
481
+ } & {
482
+ type: "number";
483
+ validator: (value: string) => number;
484
+ } & {
485
+ key: "DB_RETRY_MAX";
486
+ };
487
+ DB_RETRY_INITIAL_DELAY: {
488
+ description: string;
489
+ default: number;
490
+ examples: number[];
491
+ } & {
492
+ type: "number";
493
+ validator: (value: string) => number;
494
+ } & {
495
+ key: "DB_RETRY_INITIAL_DELAY";
496
+ };
497
+ DB_RETRY_MAX_DELAY: {
498
+ description: string;
499
+ default: number;
500
+ examples: number[];
501
+ } & {
502
+ type: "number";
503
+ validator: (value: string) => number;
504
+ } & {
505
+ key: "DB_RETRY_MAX_DELAY";
506
+ };
507
+ DB_RETRY_FACTOR: {
508
+ description: string;
509
+ default: number;
510
+ examples: number[];
511
+ } & {
512
+ type: "number";
513
+ validator: (value: string) => number;
514
+ } & {
515
+ key: "DB_RETRY_FACTOR";
516
+ };
517
+ DB_HEALTH_CHECK_ENABLED: {
518
+ description: string;
519
+ default: boolean;
520
+ examples: boolean[];
521
+ } & {
522
+ type: "boolean";
523
+ validator: (value: string) => boolean;
524
+ } & {
525
+ key: "DB_HEALTH_CHECK_ENABLED";
526
+ };
527
+ DB_HEALTH_CHECK_INTERVAL: {
528
+ description: string;
529
+ default: number;
530
+ examples: number[];
531
+ } & {
532
+ type: "number";
533
+ validator: (value: string) => number;
534
+ } & {
535
+ key: "DB_HEALTH_CHECK_INTERVAL";
536
+ };
537
+ DB_HEALTH_CHECK_RECONNECT: {
538
+ description: string;
539
+ default: boolean;
540
+ examples: boolean[];
541
+ } & {
542
+ type: "boolean";
543
+ validator: (value: string) => boolean;
544
+ } & {
545
+ key: "DB_HEALTH_CHECK_RECONNECT";
546
+ };
547
+ DB_HEALTH_CHECK_MAX_RETRIES: {
548
+ description: string;
549
+ default: number;
550
+ examples: number[];
551
+ } & {
552
+ type: "number";
553
+ validator: (value: string) => number;
554
+ } & {
555
+ key: "DB_HEALTH_CHECK_MAX_RETRIES";
556
+ };
557
+ DB_HEALTH_CHECK_RETRY_INTERVAL: {
558
+ description: string;
559
+ default: number;
560
+ examples: number[];
561
+ } & {
562
+ type: "number";
563
+ validator: (value: string) => number;
564
+ } & {
565
+ key: "DB_HEALTH_CHECK_RETRY_INTERVAL";
566
+ };
567
+ DB_MONITORING_ENABLED: {
568
+ description: string;
569
+ default: boolean;
570
+ examples: boolean[];
571
+ } & {
572
+ type: "boolean";
573
+ validator: (value: string) => boolean;
574
+ } & {
575
+ key: "DB_MONITORING_ENABLED";
576
+ };
577
+ DB_MONITORING_SLOW_THRESHOLD: {
578
+ description: string;
579
+ default: number;
580
+ examples: number[];
581
+ } & {
582
+ type: "number";
583
+ validator: (value: string) => number;
584
+ } & {
585
+ key: "DB_MONITORING_SLOW_THRESHOLD";
586
+ };
587
+ DB_MONITORING_LOG_QUERIES: {
588
+ description: string;
589
+ default: boolean;
590
+ examples: boolean[];
591
+ } & {
592
+ type: "boolean";
593
+ validator: (value: string) => boolean;
594
+ } & {
595
+ key: "DB_MONITORING_LOG_QUERIES";
596
+ };
597
+ TRANSACTION_TIMEOUT: {
598
+ description: string;
599
+ default: number;
600
+ examples: number[];
601
+ } & {
602
+ type: "number";
603
+ validator: (value: string) => number;
604
+ } & {
605
+ key: "TRANSACTION_TIMEOUT";
606
+ };
607
+ DB_DEBUG_TRACE: {
608
+ description: string;
609
+ default: boolean;
610
+ examples: boolean[];
611
+ } & {
612
+ type: "boolean";
613
+ validator: (value: string) => boolean;
614
+ } & {
615
+ key: "DB_DEBUG_TRACE";
616
+ };
617
+ DRIZZLE_SCHEMA_PATH: {
618
+ description: string;
619
+ required: boolean;
620
+ default: string;
621
+ examples: string[];
622
+ } & {
623
+ type: "string";
624
+ } & {
625
+ key: "DRIZZLE_SCHEMA_PATH";
626
+ };
627
+ DRIZZLE_OUT_DIR: {
628
+ description: string;
629
+ required: boolean;
630
+ default: string;
631
+ examples: string[];
632
+ } & {
633
+ type: "string";
634
+ } & {
635
+ key: "DRIZZLE_OUT_DIR";
636
+ };
637
+ SPFN_LOG_LEVEL: Omit<_spfn_core_env.EnvVarSchema<"debug" | "info" | "warn" | "error" | "fatal">, "key" | "type" | "validator"> & {
638
+ type: "enum";
639
+ validator: (val: string) => "debug" | "info" | "warn" | "error" | "fatal";
640
+ } & {
641
+ key: "SPFN_LOG_LEVEL";
642
+ };
643
+ CACHE_URL: {
644
+ description: string;
645
+ required: boolean;
646
+ sensitive: boolean;
647
+ validator: typeof _spfn_core_env.parseRedisUrl;
648
+ examples: string[];
649
+ } & {
650
+ type: "string";
651
+ } & {
652
+ key: "CACHE_URL";
653
+ };
654
+ CACHE_WRITE_URL: {
655
+ description: string;
656
+ required: boolean;
657
+ sensitive: boolean;
658
+ validator: typeof _spfn_core_env.parseRedisUrl;
659
+ examples: string[];
660
+ } & {
661
+ type: "string";
662
+ } & {
663
+ key: "CACHE_WRITE_URL";
664
+ };
665
+ CACHE_READ_URL: {
666
+ description: string;
667
+ required: boolean;
668
+ sensitive: boolean;
669
+ validator: typeof _spfn_core_env.parseRedisUrl;
670
+ examples: string[];
671
+ } & {
672
+ type: "string";
673
+ } & {
674
+ key: "CACHE_READ_URL";
675
+ };
676
+ CACHE_SENTINEL_HOSTS: {
677
+ description: string;
678
+ required: boolean;
679
+ examples: string[];
680
+ } & {
681
+ type: "string";
682
+ } & {
683
+ key: "CACHE_SENTINEL_HOSTS";
684
+ };
685
+ CACHE_CLUSTER_NODES: {
686
+ description: string;
687
+ required: boolean;
688
+ examples: string[];
689
+ } & {
690
+ type: "string";
691
+ } & {
692
+ key: "CACHE_CLUSTER_NODES";
693
+ };
694
+ CACHE_MASTER_NAME: {
695
+ description: string;
696
+ required: boolean;
697
+ examples: string[];
698
+ } & {
699
+ type: "string";
700
+ } & {
701
+ key: "CACHE_MASTER_NAME";
702
+ };
703
+ CACHE_PASSWORD: {
704
+ description: string;
705
+ required: boolean;
706
+ sensitive: boolean;
707
+ examples: string[];
708
+ } & {
709
+ type: "string";
710
+ } & {
711
+ key: "CACHE_PASSWORD";
712
+ };
713
+ CACHE_TLS_REJECT_UNAUTHORIZED: {
714
+ description: string;
715
+ default: boolean;
716
+ examples: boolean[];
717
+ } & {
718
+ type: "boolean";
719
+ validator: (value: string) => boolean;
720
+ } & {
721
+ key: "CACHE_TLS_REJECT_UNAUTHORIZED";
722
+ };
723
+ PORT: {
724
+ description: string;
725
+ default: number;
726
+ examples: number[];
727
+ } & {
728
+ type: "number";
729
+ validator: (value: string) => number;
730
+ } & {
731
+ key: "PORT";
732
+ };
733
+ HOST: {
734
+ description: string;
735
+ default: string;
736
+ required: boolean;
737
+ examples: string[];
738
+ } & {
739
+ type: "string";
740
+ } & {
741
+ key: "HOST";
742
+ };
743
+ SERVER_TIMEOUT: {
744
+ description: string;
745
+ default: number;
746
+ examples: number[];
747
+ } & {
748
+ type: "number";
749
+ validator: (value: string) => number;
750
+ } & {
751
+ key: "SERVER_TIMEOUT";
752
+ };
753
+ SERVER_KEEPALIVE_TIMEOUT: {
754
+ description: string;
755
+ default: number;
756
+ examples: number[];
757
+ } & {
758
+ type: "number";
759
+ validator: (value: string) => number;
760
+ } & {
761
+ key: "SERVER_KEEPALIVE_TIMEOUT";
762
+ };
763
+ SERVER_HEADERS_TIMEOUT: {
764
+ description: string;
765
+ default: number;
766
+ examples: number[];
767
+ } & {
768
+ type: "number";
769
+ validator: (value: string) => number;
770
+ } & {
771
+ key: "SERVER_HEADERS_TIMEOUT";
772
+ };
773
+ SHUTDOWN_TIMEOUT: {
774
+ description: string;
775
+ default: number;
776
+ examples: number[];
777
+ } & {
778
+ type: "number";
779
+ validator: (value: string) => number;
780
+ } & {
781
+ key: "SHUTDOWN_TIMEOUT";
782
+ };
783
+ SPFN_API_URL: {
784
+ description: string;
785
+ required: boolean;
786
+ examples: string[];
787
+ } & {
788
+ type: "url";
789
+ } & {
790
+ key: "SPFN_API_URL";
791
+ };
792
+ SPFN_APP_URL: {
793
+ description: string;
794
+ required: boolean;
795
+ examples: string[];
796
+ } & {
797
+ type: "url";
798
+ } & {
799
+ key: "SPFN_APP_URL";
800
+ };
801
+ }>;
802
+ /**
803
+ * Validated environment configuration
804
+ */
805
+ declare const env: _spfn_core_env.InferEnvType<{
806
+ NODE_ENV: Omit<_spfn_core_env.EnvVarSchema<"production" | "local" | "development" | "test">, "key" | "type" | "validator"> & {
807
+ type: "enum";
808
+ validator: (val: string) => "production" | "local" | "development" | "test";
809
+ } & {
810
+ key: "NODE_ENV";
811
+ };
812
+ DATABASE_URL: {
813
+ description: string;
814
+ required: boolean;
815
+ sensitive: boolean;
816
+ validator: typeof _spfn_core_env.parsePostgresUrl;
817
+ examples: string[];
818
+ } & {
819
+ type: "string";
820
+ } & {
821
+ key: "DATABASE_URL";
822
+ };
823
+ DATABASE_WRITE_URL: {
824
+ description: string;
825
+ required: boolean;
826
+ sensitive: boolean;
827
+ validator: typeof _spfn_core_env.parsePostgresUrl;
828
+ examples: string[];
829
+ } & {
830
+ type: "string";
831
+ } & {
832
+ key: "DATABASE_WRITE_URL";
833
+ };
834
+ DATABASE_READ_URL: {
835
+ description: string;
836
+ required: boolean;
837
+ sensitive: boolean;
838
+ validator: typeof _spfn_core_env.parsePostgresUrl;
839
+ examples: string[];
840
+ } & {
841
+ type: "string";
842
+ } & {
843
+ key: "DATABASE_READ_URL";
844
+ };
845
+ DB_POOL_MAX: {
846
+ description: string;
847
+ default: number;
848
+ examples: number[];
849
+ } & {
850
+ type: "number";
851
+ validator: (value: string) => number;
852
+ } & {
853
+ key: "DB_POOL_MAX";
854
+ };
855
+ DB_POOL_IDLE_TIMEOUT: {
856
+ description: string;
857
+ default: number;
858
+ examples: number[];
859
+ } & {
860
+ type: "number";
861
+ validator: (value: string) => number;
862
+ } & {
863
+ key: "DB_POOL_IDLE_TIMEOUT";
864
+ };
865
+ DB_RETRY_MAX: {
866
+ description: string;
867
+ default: number;
868
+ examples: number[];
869
+ } & {
870
+ type: "number";
871
+ validator: (value: string) => number;
872
+ } & {
873
+ key: "DB_RETRY_MAX";
874
+ };
875
+ DB_RETRY_INITIAL_DELAY: {
876
+ description: string;
877
+ default: number;
878
+ examples: number[];
879
+ } & {
880
+ type: "number";
881
+ validator: (value: string) => number;
882
+ } & {
883
+ key: "DB_RETRY_INITIAL_DELAY";
884
+ };
885
+ DB_RETRY_MAX_DELAY: {
886
+ description: string;
887
+ default: number;
888
+ examples: number[];
889
+ } & {
890
+ type: "number";
891
+ validator: (value: string) => number;
892
+ } & {
893
+ key: "DB_RETRY_MAX_DELAY";
894
+ };
895
+ DB_RETRY_FACTOR: {
896
+ description: string;
897
+ default: number;
898
+ examples: number[];
899
+ } & {
900
+ type: "number";
901
+ validator: (value: string) => number;
902
+ } & {
903
+ key: "DB_RETRY_FACTOR";
904
+ };
905
+ DB_HEALTH_CHECK_ENABLED: {
906
+ description: string;
907
+ default: boolean;
908
+ examples: boolean[];
909
+ } & {
910
+ type: "boolean";
911
+ validator: (value: string) => boolean;
912
+ } & {
913
+ key: "DB_HEALTH_CHECK_ENABLED";
914
+ };
915
+ DB_HEALTH_CHECK_INTERVAL: {
916
+ description: string;
917
+ default: number;
918
+ examples: number[];
919
+ } & {
920
+ type: "number";
921
+ validator: (value: string) => number;
922
+ } & {
923
+ key: "DB_HEALTH_CHECK_INTERVAL";
924
+ };
925
+ DB_HEALTH_CHECK_RECONNECT: {
926
+ description: string;
927
+ default: boolean;
928
+ examples: boolean[];
929
+ } & {
930
+ type: "boolean";
931
+ validator: (value: string) => boolean;
932
+ } & {
933
+ key: "DB_HEALTH_CHECK_RECONNECT";
934
+ };
935
+ DB_HEALTH_CHECK_MAX_RETRIES: {
936
+ description: string;
937
+ default: number;
938
+ examples: number[];
939
+ } & {
940
+ type: "number";
941
+ validator: (value: string) => number;
942
+ } & {
943
+ key: "DB_HEALTH_CHECK_MAX_RETRIES";
944
+ };
945
+ DB_HEALTH_CHECK_RETRY_INTERVAL: {
946
+ description: string;
947
+ default: number;
948
+ examples: number[];
949
+ } & {
950
+ type: "number";
951
+ validator: (value: string) => number;
952
+ } & {
953
+ key: "DB_HEALTH_CHECK_RETRY_INTERVAL";
954
+ };
955
+ DB_MONITORING_ENABLED: {
956
+ description: string;
957
+ default: boolean;
958
+ examples: boolean[];
959
+ } & {
960
+ type: "boolean";
961
+ validator: (value: string) => boolean;
962
+ } & {
963
+ key: "DB_MONITORING_ENABLED";
964
+ };
965
+ DB_MONITORING_SLOW_THRESHOLD: {
966
+ description: string;
967
+ default: number;
968
+ examples: number[];
969
+ } & {
970
+ type: "number";
971
+ validator: (value: string) => number;
972
+ } & {
973
+ key: "DB_MONITORING_SLOW_THRESHOLD";
974
+ };
975
+ DB_MONITORING_LOG_QUERIES: {
976
+ description: string;
977
+ default: boolean;
978
+ examples: boolean[];
979
+ } & {
980
+ type: "boolean";
981
+ validator: (value: string) => boolean;
982
+ } & {
983
+ key: "DB_MONITORING_LOG_QUERIES";
984
+ };
985
+ TRANSACTION_TIMEOUT: {
986
+ description: string;
987
+ default: number;
988
+ examples: number[];
989
+ } & {
990
+ type: "number";
991
+ validator: (value: string) => number;
992
+ } & {
993
+ key: "TRANSACTION_TIMEOUT";
994
+ };
995
+ DB_DEBUG_TRACE: {
996
+ description: string;
997
+ default: boolean;
998
+ examples: boolean[];
999
+ } & {
1000
+ type: "boolean";
1001
+ validator: (value: string) => boolean;
1002
+ } & {
1003
+ key: "DB_DEBUG_TRACE";
1004
+ };
1005
+ DRIZZLE_SCHEMA_PATH: {
1006
+ description: string;
1007
+ required: boolean;
1008
+ default: string;
1009
+ examples: string[];
1010
+ } & {
1011
+ type: "string";
1012
+ } & {
1013
+ key: "DRIZZLE_SCHEMA_PATH";
1014
+ };
1015
+ DRIZZLE_OUT_DIR: {
1016
+ description: string;
1017
+ required: boolean;
1018
+ default: string;
1019
+ examples: string[];
1020
+ } & {
1021
+ type: "string";
1022
+ } & {
1023
+ key: "DRIZZLE_OUT_DIR";
1024
+ };
1025
+ SPFN_LOG_LEVEL: Omit<_spfn_core_env.EnvVarSchema<"debug" | "info" | "warn" | "error" | "fatal">, "key" | "type" | "validator"> & {
1026
+ type: "enum";
1027
+ validator: (val: string) => "debug" | "info" | "warn" | "error" | "fatal";
1028
+ } & {
1029
+ key: "SPFN_LOG_LEVEL";
1030
+ };
1031
+ CACHE_URL: {
1032
+ description: string;
1033
+ required: boolean;
1034
+ sensitive: boolean;
1035
+ validator: typeof _spfn_core_env.parseRedisUrl;
1036
+ examples: string[];
1037
+ } & {
1038
+ type: "string";
1039
+ } & {
1040
+ key: "CACHE_URL";
1041
+ };
1042
+ CACHE_WRITE_URL: {
1043
+ description: string;
1044
+ required: boolean;
1045
+ sensitive: boolean;
1046
+ validator: typeof _spfn_core_env.parseRedisUrl;
1047
+ examples: string[];
1048
+ } & {
1049
+ type: "string";
1050
+ } & {
1051
+ key: "CACHE_WRITE_URL";
1052
+ };
1053
+ CACHE_READ_URL: {
1054
+ description: string;
1055
+ required: boolean;
1056
+ sensitive: boolean;
1057
+ validator: typeof _spfn_core_env.parseRedisUrl;
1058
+ examples: string[];
1059
+ } & {
1060
+ type: "string";
1061
+ } & {
1062
+ key: "CACHE_READ_URL";
1063
+ };
1064
+ CACHE_SENTINEL_HOSTS: {
1065
+ description: string;
1066
+ required: boolean;
1067
+ examples: string[];
1068
+ } & {
1069
+ type: "string";
1070
+ } & {
1071
+ key: "CACHE_SENTINEL_HOSTS";
1072
+ };
1073
+ CACHE_CLUSTER_NODES: {
1074
+ description: string;
1075
+ required: boolean;
1076
+ examples: string[];
1077
+ } & {
1078
+ type: "string";
1079
+ } & {
1080
+ key: "CACHE_CLUSTER_NODES";
1081
+ };
1082
+ CACHE_MASTER_NAME: {
1083
+ description: string;
1084
+ required: boolean;
1085
+ examples: string[];
1086
+ } & {
1087
+ type: "string";
1088
+ } & {
1089
+ key: "CACHE_MASTER_NAME";
1090
+ };
1091
+ CACHE_PASSWORD: {
1092
+ description: string;
1093
+ required: boolean;
1094
+ sensitive: boolean;
1095
+ examples: string[];
1096
+ } & {
1097
+ type: "string";
1098
+ } & {
1099
+ key: "CACHE_PASSWORD";
1100
+ };
1101
+ CACHE_TLS_REJECT_UNAUTHORIZED: {
1102
+ description: string;
1103
+ default: boolean;
1104
+ examples: boolean[];
1105
+ } & {
1106
+ type: "boolean";
1107
+ validator: (value: string) => boolean;
1108
+ } & {
1109
+ key: "CACHE_TLS_REJECT_UNAUTHORIZED";
1110
+ };
1111
+ PORT: {
1112
+ description: string;
1113
+ default: number;
1114
+ examples: number[];
1115
+ } & {
1116
+ type: "number";
1117
+ validator: (value: string) => number;
1118
+ } & {
1119
+ key: "PORT";
1120
+ };
1121
+ HOST: {
1122
+ description: string;
1123
+ default: string;
1124
+ required: boolean;
1125
+ examples: string[];
1126
+ } & {
1127
+ type: "string";
1128
+ } & {
1129
+ key: "HOST";
1130
+ };
1131
+ SERVER_TIMEOUT: {
1132
+ description: string;
1133
+ default: number;
1134
+ examples: number[];
1135
+ } & {
1136
+ type: "number";
1137
+ validator: (value: string) => number;
1138
+ } & {
1139
+ key: "SERVER_TIMEOUT";
1140
+ };
1141
+ SERVER_KEEPALIVE_TIMEOUT: {
1142
+ description: string;
1143
+ default: number;
1144
+ examples: number[];
1145
+ } & {
1146
+ type: "number";
1147
+ validator: (value: string) => number;
1148
+ } & {
1149
+ key: "SERVER_KEEPALIVE_TIMEOUT";
1150
+ };
1151
+ SERVER_HEADERS_TIMEOUT: {
1152
+ description: string;
1153
+ default: number;
1154
+ examples: number[];
1155
+ } & {
1156
+ type: "number";
1157
+ validator: (value: string) => number;
1158
+ } & {
1159
+ key: "SERVER_HEADERS_TIMEOUT";
1160
+ };
1161
+ SHUTDOWN_TIMEOUT: {
1162
+ description: string;
1163
+ default: number;
1164
+ examples: number[];
1165
+ } & {
1166
+ type: "number";
1167
+ validator: (value: string) => number;
1168
+ } & {
1169
+ key: "SHUTDOWN_TIMEOUT";
1170
+ };
1171
+ SPFN_API_URL: {
1172
+ description: string;
1173
+ required: boolean;
1174
+ examples: string[];
1175
+ } & {
1176
+ type: "url";
1177
+ } & {
1178
+ key: "SPFN_API_URL";
1179
+ };
1180
+ SPFN_APP_URL: {
1181
+ description: string;
1182
+ required: boolean;
1183
+ examples: string[];
1184
+ } & {
1185
+ type: "url";
1186
+ } & {
1187
+ key: "SPFN_APP_URL";
1188
+ };
1189
+ }>;
1190
+
1191
+ export { env, coreEnvSchema as envSchema, registry };