@spfn/core 0.2.0-beta.9 → 0.3.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 (95) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +467 -305
  3. package/dist/authz/index.d.ts +34 -0
  4. package/dist/authz/index.js +810 -0
  5. package/dist/authz/index.js.map +1 -0
  6. package/dist/{boss-DI1r4kTS.d.ts → boss-D16fO2oG.d.ts} +41 -1
  7. package/dist/cache/index.js +42 -30
  8. package/dist/cache/index.js.map +1 -1
  9. package/dist/codegen/index.d.ts +121 -13
  10. package/dist/codegen/index.js +212 -15
  11. package/dist/codegen/index.js.map +1 -1
  12. package/dist/config/index.d.ts +615 -6
  13. package/dist/config/index.js +124 -5
  14. package/dist/config/index.js.map +1 -1
  15. package/dist/contract/index.d.ts +220 -0
  16. package/dist/contract/index.js +558 -0
  17. package/dist/contract/index.js.map +1 -0
  18. package/dist/db/index.d.ts +528 -85
  19. package/dist/db/index.js +831 -122
  20. package/dist/db/index.js.map +1 -1
  21. package/dist/define-middleware-DfDP39Nq.d.ts +167 -0
  22. package/dist/env/index.d.ts +26 -2
  23. package/dist/env/index.js +15 -5
  24. package/dist/env/index.js.map +1 -1
  25. package/dist/env/loader.d.ts +26 -19
  26. package/dist/env/loader.js +32 -25
  27. package/dist/env/loader.js.map +1 -1
  28. package/dist/errors/index.d.ts +10 -0
  29. package/dist/errors/index.js +418 -5
  30. package/dist/errors/index.js.map +1 -1
  31. package/dist/event/index.d.ts +33 -3
  32. package/dist/event/index.js +24 -3
  33. package/dist/event/index.js.map +1 -1
  34. package/dist/event/sse/client.d.ts +42 -3
  35. package/dist/event/sse/client.js +128 -45
  36. package/dist/event/sse/client.js.map +1 -1
  37. package/dist/event/sse/index.d.ts +12 -5
  38. package/dist/event/sse/index.js +280 -32
  39. package/dist/event/sse/index.js.map +1 -1
  40. package/dist/event/ws/client.d.ts +59 -0
  41. package/dist/event/ws/client.js +273 -0
  42. package/dist/event/ws/client.js.map +1 -0
  43. package/dist/event/ws/index.d.ts +94 -0
  44. package/dist/event/ws/index.js +272 -0
  45. package/dist/event/ws/index.js.map +1 -0
  46. package/dist/job/index.d.ts +2 -2
  47. package/dist/job/index.js +155 -42
  48. package/dist/job/index.js.map +1 -1
  49. package/dist/logger/index.d.ts +5 -0
  50. package/dist/logger/index.js +14 -0
  51. package/dist/logger/index.js.map +1 -1
  52. package/dist/middleware/index.d.ts +347 -9
  53. package/dist/middleware/index.js +1462 -15
  54. package/dist/middleware/index.js.map +1 -1
  55. package/dist/nextjs/index.d.ts +2 -2
  56. package/dist/nextjs/index.js +42 -28
  57. package/dist/nextjs/index.js.map +1 -1
  58. package/dist/nextjs/server.d.ts +35 -51
  59. package/dist/nextjs/server.js +126 -60
  60. package/dist/nextjs/server.js.map +1 -1
  61. package/dist/ops/index.d.ts +152 -0
  62. package/dist/ops/index.js +500 -0
  63. package/dist/ops/index.js.map +1 -0
  64. package/dist/route/index.d.ts +8 -694
  65. package/dist/route/index.js +111 -22
  66. package/dist/route/index.js.map +1 -1
  67. package/dist/router-Qbssr11H.d.ts +676 -0
  68. package/dist/security/index.d.ts +83 -0
  69. package/dist/security/index.js +173 -0
  70. package/dist/security/index.js.map +1 -0
  71. package/dist/server/index.d.ts +491 -22
  72. package/dist/server/index.js +1887 -308
  73. package/dist/server/index.js.map +1 -1
  74. package/dist/token-manager-BT5EnUAR.d.ts +278 -0
  75. package/dist/types-2AbaW4Ie.d.ts +205 -0
  76. package/dist/{types-BOPTApC2.d.ts → types-9oszaJqp.d.ts} +7 -2
  77. package/dist/types-D1c57Ko-.d.ts +115 -0
  78. package/dist/types-ZQODsBft.d.ts +282 -0
  79. package/package.json +244 -208
  80. package/dist/router-Di7ENoah.d.ts +0 -151
  81. package/dist/types-B-e_f2dQ.d.ts +0 -121
  82. package/docs/cache.md +0 -133
  83. package/docs/codegen.md +0 -74
  84. package/docs/database.md +0 -346
  85. package/docs/entity.md +0 -539
  86. package/docs/env.md +0 -477
  87. package/docs/errors.md +0 -319
  88. package/docs/event.md +0 -116
  89. package/docs/job.md +0 -131
  90. package/docs/logger.md +0 -108
  91. package/docs/middleware.md +0 -337
  92. package/docs/nextjs.md +0 -241
  93. package/docs/repository.md +0 -496
  94. package/docs/route.md +0 -497
  95. package/docs/server.md +0 -307
@@ -20,9 +20,9 @@ import { parsePostgresUrl, parseRedisUrl } from '@spfn/core/env';
20
20
  * ```
21
21
  */
22
22
  declare const coreEnvSchema: {
23
- NODE_ENV: Omit<_spfn_core_env.EnvVarSchema<"production" | "local" | "development" | "test">, "key" | "type" | "validator"> & {
23
+ NODE_ENV: Omit<_spfn_core_env.EnvVarSchema<"production" | "local" | "development" | "staging" | "test">, "key" | "type" | "validator"> & {
24
24
  type: "enum";
25
- validator: (val: string) => "production" | "local" | "development" | "test";
25
+ validator: (val: string) => "production" | "local" | "development" | "staging" | "test";
26
26
  } & {
27
27
  key: "NODE_ENV";
28
28
  };
@@ -34,6 +34,7 @@ declare const coreEnvSchema: {
34
34
  examples: string[];
35
35
  } & {
36
36
  type: "string";
37
+ validator: (value: string) => string;
37
38
  } & {
38
39
  key: "DATABASE_URL";
39
40
  };
@@ -45,6 +46,7 @@ declare const coreEnvSchema: {
45
46
  examples: string[];
46
47
  } & {
47
48
  type: "string";
49
+ validator: (value: string) => string;
48
50
  } & {
49
51
  key: "DATABASE_WRITE_URL";
50
52
  };
@@ -56,6 +58,7 @@ declare const coreEnvSchema: {
56
58
  examples: string[];
57
59
  } & {
58
60
  type: "string";
61
+ validator: (value: string) => string;
59
62
  } & {
60
63
  key: "DATABASE_READ_URL";
61
64
  };
@@ -69,6 +72,16 @@ declare const coreEnvSchema: {
69
72
  } & {
70
73
  key: "DB_POOL_MAX";
71
74
  };
75
+ DB_POOL_READ_MAX: {
76
+ description: string;
77
+ required: boolean;
78
+ examples: number[];
79
+ } & {
80
+ type: "number";
81
+ validator: (value: string) => number;
82
+ } & {
83
+ key: "DB_POOL_READ_MAX";
84
+ };
72
85
  DB_POOL_IDLE_TIMEOUT: {
73
86
  description: string;
74
87
  default: number;
@@ -209,6 +222,26 @@ declare const coreEnvSchema: {
209
222
  } & {
210
223
  key: "TRANSACTION_TIMEOUT";
211
224
  };
225
+ TRANSACTION_IDLE_TIMEOUT: {
226
+ description: string;
227
+ default: number;
228
+ examples: number[];
229
+ } & {
230
+ type: "number";
231
+ validator: (value: string) => number;
232
+ } & {
233
+ key: "TRANSACTION_IDLE_TIMEOUT";
234
+ };
235
+ JOB_POLLING_INTERVAL_SECONDS: {
236
+ description: string;
237
+ default: number;
238
+ examples: number[];
239
+ } & {
240
+ type: "number";
241
+ validator: (value: string) => number;
242
+ } & {
243
+ key: "JOB_POLLING_INTERVAL_SECONDS";
244
+ };
212
245
  DB_DEBUG_TRACE: {
213
246
  description: string;
214
247
  default: boolean;
@@ -219,6 +252,16 @@ declare const coreEnvSchema: {
219
252
  } & {
220
253
  key: "DB_DEBUG_TRACE";
221
254
  };
255
+ SPFN_ALLOW_PENDING_MIGRATIONS: {
256
+ description: string;
257
+ default: boolean;
258
+ examples: boolean[];
259
+ } & {
260
+ type: "boolean";
261
+ validator: (value: string) => boolean;
262
+ } & {
263
+ key: "SPFN_ALLOW_PENDING_MIGRATIONS";
264
+ };
222
265
  DRIZZLE_SCHEMA_PATH: {
223
266
  description: string;
224
267
  required: boolean;
@@ -226,6 +269,7 @@ declare const coreEnvSchema: {
226
269
  examples: string[];
227
270
  } & {
228
271
  type: "string";
272
+ validator: (value: string) => string;
229
273
  } & {
230
274
  key: "DRIZZLE_SCHEMA_PATH";
231
275
  };
@@ -236,6 +280,7 @@ declare const coreEnvSchema: {
236
280
  examples: string[];
237
281
  } & {
238
282
  type: "string";
283
+ validator: (value: string) => string;
239
284
  } & {
240
285
  key: "DRIZZLE_OUT_DIR";
241
286
  };
@@ -253,6 +298,7 @@ declare const coreEnvSchema: {
253
298
  examples: string[];
254
299
  } & {
255
300
  type: "string";
301
+ validator: (value: string) => string;
256
302
  } & {
257
303
  key: "CACHE_URL";
258
304
  };
@@ -264,6 +310,7 @@ declare const coreEnvSchema: {
264
310
  examples: string[];
265
311
  } & {
266
312
  type: "string";
313
+ validator: (value: string) => string;
267
314
  } & {
268
315
  key: "CACHE_WRITE_URL";
269
316
  };
@@ -275,6 +322,7 @@ declare const coreEnvSchema: {
275
322
  examples: string[];
276
323
  } & {
277
324
  type: "string";
325
+ validator: (value: string) => string;
278
326
  } & {
279
327
  key: "CACHE_READ_URL";
280
328
  };
@@ -284,6 +332,7 @@ declare const coreEnvSchema: {
284
332
  examples: string[];
285
333
  } & {
286
334
  type: "string";
335
+ validator: (value: string) => string;
287
336
  } & {
288
337
  key: "CACHE_SENTINEL_HOSTS";
289
338
  };
@@ -293,6 +342,7 @@ declare const coreEnvSchema: {
293
342
  examples: string[];
294
343
  } & {
295
344
  type: "string";
345
+ validator: (value: string) => string;
296
346
  } & {
297
347
  key: "CACHE_CLUSTER_NODES";
298
348
  };
@@ -302,6 +352,7 @@ declare const coreEnvSchema: {
302
352
  examples: string[];
303
353
  } & {
304
354
  type: "string";
355
+ validator: (value: string) => string;
305
356
  } & {
306
357
  key: "CACHE_MASTER_NAME";
307
358
  };
@@ -312,6 +363,7 @@ declare const coreEnvSchema: {
312
363
  examples: string[];
313
364
  } & {
314
365
  type: "string";
366
+ validator: (value: string) => string;
315
367
  } & {
316
368
  key: "CACHE_PASSWORD";
317
369
  };
@@ -325,6 +377,36 @@ declare const coreEnvSchema: {
325
377
  } & {
326
378
  key: "CACHE_TLS_REJECT_UNAUTHORIZED";
327
379
  };
380
+ CACHE_MAX_RETRIES_PER_REQUEST: {
381
+ description: string;
382
+ default: number;
383
+ examples: number[];
384
+ } & {
385
+ type: "number";
386
+ validator: (value: string) => number;
387
+ } & {
388
+ key: "CACHE_MAX_RETRIES_PER_REQUEST";
389
+ };
390
+ CACHE_ENABLE_OFFLINE_QUEUE: {
391
+ description: string;
392
+ default: boolean;
393
+ examples: boolean[];
394
+ } & {
395
+ type: "boolean";
396
+ validator: (value: string) => boolean;
397
+ } & {
398
+ key: "CACHE_ENABLE_OFFLINE_QUEUE";
399
+ };
400
+ DB_MAX_ROWS: {
401
+ description: string;
402
+ default: number;
403
+ examples: number[];
404
+ } & {
405
+ type: "number";
406
+ validator: (value: string) => number;
407
+ } & {
408
+ key: "DB_MAX_ROWS";
409
+ };
328
410
  PORT: {
329
411
  description: string;
330
412
  default: number;
@@ -342,6 +424,7 @@ declare const coreEnvSchema: {
342
424
  examples: string[];
343
425
  } & {
344
426
  type: "string";
427
+ validator: (value: string) => string;
345
428
  } & {
346
429
  key: "HOST";
347
430
  };
@@ -385,6 +468,36 @@ declare const coreEnvSchema: {
385
468
  } & {
386
469
  key: "SHUTDOWN_TIMEOUT";
387
470
  };
471
+ FETCH_CONNECT_TIMEOUT: {
472
+ description: string;
473
+ default: number;
474
+ examples: number[];
475
+ } & {
476
+ type: "number";
477
+ validator: (value: string) => number;
478
+ } & {
479
+ key: "FETCH_CONNECT_TIMEOUT";
480
+ };
481
+ FETCH_HEADERS_TIMEOUT: {
482
+ description: string;
483
+ default: number;
484
+ examples: number[];
485
+ } & {
486
+ type: "number";
487
+ validator: (value: string) => number;
488
+ } & {
489
+ key: "FETCH_HEADERS_TIMEOUT";
490
+ };
491
+ FETCH_BODY_TIMEOUT: {
492
+ description: string;
493
+ default: number;
494
+ examples: number[];
495
+ } & {
496
+ type: "number";
497
+ validator: (value: string) => number;
498
+ } & {
499
+ key: "FETCH_BODY_TIMEOUT";
500
+ };
388
501
  SPFN_API_URL: {
389
502
  description: string;
390
503
  required: boolean;
@@ -415,6 +528,96 @@ declare const coreEnvSchema: {
415
528
  } & {
416
529
  key: "SPFN_APP_URL";
417
530
  };
531
+ RPC_PROXY_TIMEOUT: {
532
+ description: string;
533
+ default: number;
534
+ nextjs: boolean;
535
+ examples: number[];
536
+ } & {
537
+ type: "number";
538
+ validator: (value: string) => number;
539
+ } & {
540
+ key: "RPC_PROXY_TIMEOUT";
541
+ };
542
+ SPFN_PROXY_SECRET: {
543
+ description: string;
544
+ required: boolean;
545
+ sensitive: boolean;
546
+ nextjs: boolean;
547
+ examples: string[];
548
+ } & {
549
+ type: "string";
550
+ validator: (value: string) => string;
551
+ } & {
552
+ key: "SPFN_PROXY_SECRET";
553
+ };
554
+ SPFN_PROXY_SECRET_PREVIOUS: {
555
+ description: string;
556
+ required: boolean;
557
+ sensitive: boolean;
558
+ nextjs: boolean;
559
+ examples: string[];
560
+ } & {
561
+ type: "string";
562
+ validator: (value: string) => string;
563
+ } & {
564
+ key: "SPFN_PROXY_SECRET_PREVIOUS";
565
+ };
566
+ TRUSTED_PROXY_HOPS: {
567
+ description: string;
568
+ default: number;
569
+ nextjs: boolean;
570
+ examples: number[];
571
+ } & {
572
+ type: "number";
573
+ validator: (value: string) => number;
574
+ } & {
575
+ key: "TRUSTED_PROXY_HOPS";
576
+ };
577
+ RATE_LIMIT_MODE: Omit<_spfn_core_env.EnvVarSchema<"off" | "on">, "key" | "type" | "validator"> & {
578
+ type: "enum";
579
+ validator: (val: string) => "off" | "on";
580
+ } & {
581
+ key: "RATE_LIMIT_MODE";
582
+ };
583
+ RATE_LIMIT_DEFAULT_LIMIT: {
584
+ description: string;
585
+ default: number;
586
+ examples: number[];
587
+ } & {
588
+ type: "number";
589
+ validator: (value: string) => number;
590
+ } & {
591
+ key: "RATE_LIMIT_DEFAULT_LIMIT";
592
+ };
593
+ RATE_LIMIT_DEFAULT_WINDOW_MS: {
594
+ description: string;
595
+ default: number;
596
+ examples: number[];
597
+ } & {
598
+ type: "number";
599
+ validator: (value: string) => number;
600
+ } & {
601
+ key: "RATE_LIMIT_DEFAULT_WINDOW_MS";
602
+ };
603
+ RATE_LIMIT_FAIL_CLOSED: {
604
+ description: string;
605
+ default: boolean;
606
+ } & {
607
+ type: "boolean";
608
+ validator: (value: string) => boolean;
609
+ } & {
610
+ key: "RATE_LIMIT_FAIL_CLOSED";
611
+ };
612
+ SAFE_FETCH_BLOCK_PRIVATE_IPS: {
613
+ description: string;
614
+ default: boolean;
615
+ } & {
616
+ type: "boolean";
617
+ validator: (value: string) => boolean;
618
+ } & {
619
+ key: "SAFE_FETCH_BLOCK_PRIVATE_IPS";
620
+ };
418
621
  };
419
622
 
420
623
  /**
@@ -427,9 +630,9 @@ declare const coreEnvSchema: {
427
630
  * ```
428
631
  */
429
632
  declare const registry: _spfn_core_env.EnvRegistry<{
430
- NODE_ENV: Omit<_spfn_core_env.EnvVarSchema<"production" | "local" | "development" | "test">, "key" | "type" | "validator"> & {
633
+ NODE_ENV: Omit<_spfn_core_env.EnvVarSchema<"production" | "local" | "development" | "staging" | "test">, "key" | "type" | "validator"> & {
431
634
  type: "enum";
432
- validator: (val: string) => "production" | "local" | "development" | "test";
635
+ validator: (val: string) => "production" | "local" | "development" | "staging" | "test";
433
636
  } & {
434
637
  key: "NODE_ENV";
435
638
  };
@@ -441,6 +644,7 @@ declare const registry: _spfn_core_env.EnvRegistry<{
441
644
  examples: string[];
442
645
  } & {
443
646
  type: "string";
647
+ validator: (value: string) => string;
444
648
  } & {
445
649
  key: "DATABASE_URL";
446
650
  };
@@ -452,6 +656,7 @@ declare const registry: _spfn_core_env.EnvRegistry<{
452
656
  examples: string[];
453
657
  } & {
454
658
  type: "string";
659
+ validator: (value: string) => string;
455
660
  } & {
456
661
  key: "DATABASE_WRITE_URL";
457
662
  };
@@ -463,6 +668,7 @@ declare const registry: _spfn_core_env.EnvRegistry<{
463
668
  examples: string[];
464
669
  } & {
465
670
  type: "string";
671
+ validator: (value: string) => string;
466
672
  } & {
467
673
  key: "DATABASE_READ_URL";
468
674
  };
@@ -476,6 +682,16 @@ declare const registry: _spfn_core_env.EnvRegistry<{
476
682
  } & {
477
683
  key: "DB_POOL_MAX";
478
684
  };
685
+ DB_POOL_READ_MAX: {
686
+ description: string;
687
+ required: boolean;
688
+ examples: number[];
689
+ } & {
690
+ type: "number";
691
+ validator: (value: string) => number;
692
+ } & {
693
+ key: "DB_POOL_READ_MAX";
694
+ };
479
695
  DB_POOL_IDLE_TIMEOUT: {
480
696
  description: string;
481
697
  default: number;
@@ -616,6 +832,26 @@ declare const registry: _spfn_core_env.EnvRegistry<{
616
832
  } & {
617
833
  key: "TRANSACTION_TIMEOUT";
618
834
  };
835
+ TRANSACTION_IDLE_TIMEOUT: {
836
+ description: string;
837
+ default: number;
838
+ examples: number[];
839
+ } & {
840
+ type: "number";
841
+ validator: (value: string) => number;
842
+ } & {
843
+ key: "TRANSACTION_IDLE_TIMEOUT";
844
+ };
845
+ JOB_POLLING_INTERVAL_SECONDS: {
846
+ description: string;
847
+ default: number;
848
+ examples: number[];
849
+ } & {
850
+ type: "number";
851
+ validator: (value: string) => number;
852
+ } & {
853
+ key: "JOB_POLLING_INTERVAL_SECONDS";
854
+ };
619
855
  DB_DEBUG_TRACE: {
620
856
  description: string;
621
857
  default: boolean;
@@ -626,6 +862,16 @@ declare const registry: _spfn_core_env.EnvRegistry<{
626
862
  } & {
627
863
  key: "DB_DEBUG_TRACE";
628
864
  };
865
+ SPFN_ALLOW_PENDING_MIGRATIONS: {
866
+ description: string;
867
+ default: boolean;
868
+ examples: boolean[];
869
+ } & {
870
+ type: "boolean";
871
+ validator: (value: string) => boolean;
872
+ } & {
873
+ key: "SPFN_ALLOW_PENDING_MIGRATIONS";
874
+ };
629
875
  DRIZZLE_SCHEMA_PATH: {
630
876
  description: string;
631
877
  required: boolean;
@@ -633,6 +879,7 @@ declare const registry: _spfn_core_env.EnvRegistry<{
633
879
  examples: string[];
634
880
  } & {
635
881
  type: "string";
882
+ validator: (value: string) => string;
636
883
  } & {
637
884
  key: "DRIZZLE_SCHEMA_PATH";
638
885
  };
@@ -643,6 +890,7 @@ declare const registry: _spfn_core_env.EnvRegistry<{
643
890
  examples: string[];
644
891
  } & {
645
892
  type: "string";
893
+ validator: (value: string) => string;
646
894
  } & {
647
895
  key: "DRIZZLE_OUT_DIR";
648
896
  };
@@ -660,6 +908,7 @@ declare const registry: _spfn_core_env.EnvRegistry<{
660
908
  examples: string[];
661
909
  } & {
662
910
  type: "string";
911
+ validator: (value: string) => string;
663
912
  } & {
664
913
  key: "CACHE_URL";
665
914
  };
@@ -671,6 +920,7 @@ declare const registry: _spfn_core_env.EnvRegistry<{
671
920
  examples: string[];
672
921
  } & {
673
922
  type: "string";
923
+ validator: (value: string) => string;
674
924
  } & {
675
925
  key: "CACHE_WRITE_URL";
676
926
  };
@@ -682,6 +932,7 @@ declare const registry: _spfn_core_env.EnvRegistry<{
682
932
  examples: string[];
683
933
  } & {
684
934
  type: "string";
935
+ validator: (value: string) => string;
685
936
  } & {
686
937
  key: "CACHE_READ_URL";
687
938
  };
@@ -691,6 +942,7 @@ declare const registry: _spfn_core_env.EnvRegistry<{
691
942
  examples: string[];
692
943
  } & {
693
944
  type: "string";
945
+ validator: (value: string) => string;
694
946
  } & {
695
947
  key: "CACHE_SENTINEL_HOSTS";
696
948
  };
@@ -700,6 +952,7 @@ declare const registry: _spfn_core_env.EnvRegistry<{
700
952
  examples: string[];
701
953
  } & {
702
954
  type: "string";
955
+ validator: (value: string) => string;
703
956
  } & {
704
957
  key: "CACHE_CLUSTER_NODES";
705
958
  };
@@ -709,6 +962,7 @@ declare const registry: _spfn_core_env.EnvRegistry<{
709
962
  examples: string[];
710
963
  } & {
711
964
  type: "string";
965
+ validator: (value: string) => string;
712
966
  } & {
713
967
  key: "CACHE_MASTER_NAME";
714
968
  };
@@ -719,6 +973,7 @@ declare const registry: _spfn_core_env.EnvRegistry<{
719
973
  examples: string[];
720
974
  } & {
721
975
  type: "string";
976
+ validator: (value: string) => string;
722
977
  } & {
723
978
  key: "CACHE_PASSWORD";
724
979
  };
@@ -732,6 +987,36 @@ declare const registry: _spfn_core_env.EnvRegistry<{
732
987
  } & {
733
988
  key: "CACHE_TLS_REJECT_UNAUTHORIZED";
734
989
  };
990
+ CACHE_MAX_RETRIES_PER_REQUEST: {
991
+ description: string;
992
+ default: number;
993
+ examples: number[];
994
+ } & {
995
+ type: "number";
996
+ validator: (value: string) => number;
997
+ } & {
998
+ key: "CACHE_MAX_RETRIES_PER_REQUEST";
999
+ };
1000
+ CACHE_ENABLE_OFFLINE_QUEUE: {
1001
+ description: string;
1002
+ default: boolean;
1003
+ examples: boolean[];
1004
+ } & {
1005
+ type: "boolean";
1006
+ validator: (value: string) => boolean;
1007
+ } & {
1008
+ key: "CACHE_ENABLE_OFFLINE_QUEUE";
1009
+ };
1010
+ DB_MAX_ROWS: {
1011
+ description: string;
1012
+ default: number;
1013
+ examples: number[];
1014
+ } & {
1015
+ type: "number";
1016
+ validator: (value: string) => number;
1017
+ } & {
1018
+ key: "DB_MAX_ROWS";
1019
+ };
735
1020
  PORT: {
736
1021
  description: string;
737
1022
  default: number;
@@ -749,6 +1034,7 @@ declare const registry: _spfn_core_env.EnvRegistry<{
749
1034
  examples: string[];
750
1035
  } & {
751
1036
  type: "string";
1037
+ validator: (value: string) => string;
752
1038
  } & {
753
1039
  key: "HOST";
754
1040
  };
@@ -792,6 +1078,36 @@ declare const registry: _spfn_core_env.EnvRegistry<{
792
1078
  } & {
793
1079
  key: "SHUTDOWN_TIMEOUT";
794
1080
  };
1081
+ FETCH_CONNECT_TIMEOUT: {
1082
+ description: string;
1083
+ default: number;
1084
+ examples: number[];
1085
+ } & {
1086
+ type: "number";
1087
+ validator: (value: string) => number;
1088
+ } & {
1089
+ key: "FETCH_CONNECT_TIMEOUT";
1090
+ };
1091
+ FETCH_HEADERS_TIMEOUT: {
1092
+ description: string;
1093
+ default: number;
1094
+ examples: number[];
1095
+ } & {
1096
+ type: "number";
1097
+ validator: (value: string) => number;
1098
+ } & {
1099
+ key: "FETCH_HEADERS_TIMEOUT";
1100
+ };
1101
+ FETCH_BODY_TIMEOUT: {
1102
+ description: string;
1103
+ default: number;
1104
+ examples: number[];
1105
+ } & {
1106
+ type: "number";
1107
+ validator: (value: string) => number;
1108
+ } & {
1109
+ key: "FETCH_BODY_TIMEOUT";
1110
+ };
795
1111
  SPFN_API_URL: {
796
1112
  description: string;
797
1113
  required: boolean;
@@ -822,14 +1138,104 @@ declare const registry: _spfn_core_env.EnvRegistry<{
822
1138
  } & {
823
1139
  key: "SPFN_APP_URL";
824
1140
  };
1141
+ RPC_PROXY_TIMEOUT: {
1142
+ description: string;
1143
+ default: number;
1144
+ nextjs: boolean;
1145
+ examples: number[];
1146
+ } & {
1147
+ type: "number";
1148
+ validator: (value: string) => number;
1149
+ } & {
1150
+ key: "RPC_PROXY_TIMEOUT";
1151
+ };
1152
+ SPFN_PROXY_SECRET: {
1153
+ description: string;
1154
+ required: boolean;
1155
+ sensitive: boolean;
1156
+ nextjs: boolean;
1157
+ examples: string[];
1158
+ } & {
1159
+ type: "string";
1160
+ validator: (value: string) => string;
1161
+ } & {
1162
+ key: "SPFN_PROXY_SECRET";
1163
+ };
1164
+ SPFN_PROXY_SECRET_PREVIOUS: {
1165
+ description: string;
1166
+ required: boolean;
1167
+ sensitive: boolean;
1168
+ nextjs: boolean;
1169
+ examples: string[];
1170
+ } & {
1171
+ type: "string";
1172
+ validator: (value: string) => string;
1173
+ } & {
1174
+ key: "SPFN_PROXY_SECRET_PREVIOUS";
1175
+ };
1176
+ TRUSTED_PROXY_HOPS: {
1177
+ description: string;
1178
+ default: number;
1179
+ nextjs: boolean;
1180
+ examples: number[];
1181
+ } & {
1182
+ type: "number";
1183
+ validator: (value: string) => number;
1184
+ } & {
1185
+ key: "TRUSTED_PROXY_HOPS";
1186
+ };
1187
+ RATE_LIMIT_MODE: Omit<_spfn_core_env.EnvVarSchema<"off" | "on">, "key" | "type" | "validator"> & {
1188
+ type: "enum";
1189
+ validator: (val: string) => "off" | "on";
1190
+ } & {
1191
+ key: "RATE_LIMIT_MODE";
1192
+ };
1193
+ RATE_LIMIT_DEFAULT_LIMIT: {
1194
+ description: string;
1195
+ default: number;
1196
+ examples: number[];
1197
+ } & {
1198
+ type: "number";
1199
+ validator: (value: string) => number;
1200
+ } & {
1201
+ key: "RATE_LIMIT_DEFAULT_LIMIT";
1202
+ };
1203
+ RATE_LIMIT_DEFAULT_WINDOW_MS: {
1204
+ description: string;
1205
+ default: number;
1206
+ examples: number[];
1207
+ } & {
1208
+ type: "number";
1209
+ validator: (value: string) => number;
1210
+ } & {
1211
+ key: "RATE_LIMIT_DEFAULT_WINDOW_MS";
1212
+ };
1213
+ RATE_LIMIT_FAIL_CLOSED: {
1214
+ description: string;
1215
+ default: boolean;
1216
+ } & {
1217
+ type: "boolean";
1218
+ validator: (value: string) => boolean;
1219
+ } & {
1220
+ key: "RATE_LIMIT_FAIL_CLOSED";
1221
+ };
1222
+ SAFE_FETCH_BLOCK_PRIVATE_IPS: {
1223
+ description: string;
1224
+ default: boolean;
1225
+ } & {
1226
+ type: "boolean";
1227
+ validator: (value: string) => boolean;
1228
+ } & {
1229
+ key: "SAFE_FETCH_BLOCK_PRIVATE_IPS";
1230
+ };
825
1231
  }>;
826
1232
  /**
827
1233
  * Validated environment configuration
828
1234
  */
829
1235
  declare const env: _spfn_core_env.InferEnvType<{
830
- NODE_ENV: Omit<_spfn_core_env.EnvVarSchema<"production" | "local" | "development" | "test">, "key" | "type" | "validator"> & {
1236
+ NODE_ENV: Omit<_spfn_core_env.EnvVarSchema<"production" | "local" | "development" | "staging" | "test">, "key" | "type" | "validator"> & {
831
1237
  type: "enum";
832
- validator: (val: string) => "production" | "local" | "development" | "test";
1238
+ validator: (val: string) => "production" | "local" | "development" | "staging" | "test";
833
1239
  } & {
834
1240
  key: "NODE_ENV";
835
1241
  };
@@ -841,6 +1247,7 @@ declare const env: _spfn_core_env.InferEnvType<{
841
1247
  examples: string[];
842
1248
  } & {
843
1249
  type: "string";
1250
+ validator: (value: string) => string;
844
1251
  } & {
845
1252
  key: "DATABASE_URL";
846
1253
  };
@@ -852,6 +1259,7 @@ declare const env: _spfn_core_env.InferEnvType<{
852
1259
  examples: string[];
853
1260
  } & {
854
1261
  type: "string";
1262
+ validator: (value: string) => string;
855
1263
  } & {
856
1264
  key: "DATABASE_WRITE_URL";
857
1265
  };
@@ -863,6 +1271,7 @@ declare const env: _spfn_core_env.InferEnvType<{
863
1271
  examples: string[];
864
1272
  } & {
865
1273
  type: "string";
1274
+ validator: (value: string) => string;
866
1275
  } & {
867
1276
  key: "DATABASE_READ_URL";
868
1277
  };
@@ -876,6 +1285,16 @@ declare const env: _spfn_core_env.InferEnvType<{
876
1285
  } & {
877
1286
  key: "DB_POOL_MAX";
878
1287
  };
1288
+ DB_POOL_READ_MAX: {
1289
+ description: string;
1290
+ required: boolean;
1291
+ examples: number[];
1292
+ } & {
1293
+ type: "number";
1294
+ validator: (value: string) => number;
1295
+ } & {
1296
+ key: "DB_POOL_READ_MAX";
1297
+ };
879
1298
  DB_POOL_IDLE_TIMEOUT: {
880
1299
  description: string;
881
1300
  default: number;
@@ -1016,6 +1435,26 @@ declare const env: _spfn_core_env.InferEnvType<{
1016
1435
  } & {
1017
1436
  key: "TRANSACTION_TIMEOUT";
1018
1437
  };
1438
+ TRANSACTION_IDLE_TIMEOUT: {
1439
+ description: string;
1440
+ default: number;
1441
+ examples: number[];
1442
+ } & {
1443
+ type: "number";
1444
+ validator: (value: string) => number;
1445
+ } & {
1446
+ key: "TRANSACTION_IDLE_TIMEOUT";
1447
+ };
1448
+ JOB_POLLING_INTERVAL_SECONDS: {
1449
+ description: string;
1450
+ default: number;
1451
+ examples: number[];
1452
+ } & {
1453
+ type: "number";
1454
+ validator: (value: string) => number;
1455
+ } & {
1456
+ key: "JOB_POLLING_INTERVAL_SECONDS";
1457
+ };
1019
1458
  DB_DEBUG_TRACE: {
1020
1459
  description: string;
1021
1460
  default: boolean;
@@ -1026,6 +1465,16 @@ declare const env: _spfn_core_env.InferEnvType<{
1026
1465
  } & {
1027
1466
  key: "DB_DEBUG_TRACE";
1028
1467
  };
1468
+ SPFN_ALLOW_PENDING_MIGRATIONS: {
1469
+ description: string;
1470
+ default: boolean;
1471
+ examples: boolean[];
1472
+ } & {
1473
+ type: "boolean";
1474
+ validator: (value: string) => boolean;
1475
+ } & {
1476
+ key: "SPFN_ALLOW_PENDING_MIGRATIONS";
1477
+ };
1029
1478
  DRIZZLE_SCHEMA_PATH: {
1030
1479
  description: string;
1031
1480
  required: boolean;
@@ -1033,6 +1482,7 @@ declare const env: _spfn_core_env.InferEnvType<{
1033
1482
  examples: string[];
1034
1483
  } & {
1035
1484
  type: "string";
1485
+ validator: (value: string) => string;
1036
1486
  } & {
1037
1487
  key: "DRIZZLE_SCHEMA_PATH";
1038
1488
  };
@@ -1043,6 +1493,7 @@ declare const env: _spfn_core_env.InferEnvType<{
1043
1493
  examples: string[];
1044
1494
  } & {
1045
1495
  type: "string";
1496
+ validator: (value: string) => string;
1046
1497
  } & {
1047
1498
  key: "DRIZZLE_OUT_DIR";
1048
1499
  };
@@ -1060,6 +1511,7 @@ declare const env: _spfn_core_env.InferEnvType<{
1060
1511
  examples: string[];
1061
1512
  } & {
1062
1513
  type: "string";
1514
+ validator: (value: string) => string;
1063
1515
  } & {
1064
1516
  key: "CACHE_URL";
1065
1517
  };
@@ -1071,6 +1523,7 @@ declare const env: _spfn_core_env.InferEnvType<{
1071
1523
  examples: string[];
1072
1524
  } & {
1073
1525
  type: "string";
1526
+ validator: (value: string) => string;
1074
1527
  } & {
1075
1528
  key: "CACHE_WRITE_URL";
1076
1529
  };
@@ -1082,6 +1535,7 @@ declare const env: _spfn_core_env.InferEnvType<{
1082
1535
  examples: string[];
1083
1536
  } & {
1084
1537
  type: "string";
1538
+ validator: (value: string) => string;
1085
1539
  } & {
1086
1540
  key: "CACHE_READ_URL";
1087
1541
  };
@@ -1091,6 +1545,7 @@ declare const env: _spfn_core_env.InferEnvType<{
1091
1545
  examples: string[];
1092
1546
  } & {
1093
1547
  type: "string";
1548
+ validator: (value: string) => string;
1094
1549
  } & {
1095
1550
  key: "CACHE_SENTINEL_HOSTS";
1096
1551
  };
@@ -1100,6 +1555,7 @@ declare const env: _spfn_core_env.InferEnvType<{
1100
1555
  examples: string[];
1101
1556
  } & {
1102
1557
  type: "string";
1558
+ validator: (value: string) => string;
1103
1559
  } & {
1104
1560
  key: "CACHE_CLUSTER_NODES";
1105
1561
  };
@@ -1109,6 +1565,7 @@ declare const env: _spfn_core_env.InferEnvType<{
1109
1565
  examples: string[];
1110
1566
  } & {
1111
1567
  type: "string";
1568
+ validator: (value: string) => string;
1112
1569
  } & {
1113
1570
  key: "CACHE_MASTER_NAME";
1114
1571
  };
@@ -1119,6 +1576,7 @@ declare const env: _spfn_core_env.InferEnvType<{
1119
1576
  examples: string[];
1120
1577
  } & {
1121
1578
  type: "string";
1579
+ validator: (value: string) => string;
1122
1580
  } & {
1123
1581
  key: "CACHE_PASSWORD";
1124
1582
  };
@@ -1132,6 +1590,36 @@ declare const env: _spfn_core_env.InferEnvType<{
1132
1590
  } & {
1133
1591
  key: "CACHE_TLS_REJECT_UNAUTHORIZED";
1134
1592
  };
1593
+ CACHE_MAX_RETRIES_PER_REQUEST: {
1594
+ description: string;
1595
+ default: number;
1596
+ examples: number[];
1597
+ } & {
1598
+ type: "number";
1599
+ validator: (value: string) => number;
1600
+ } & {
1601
+ key: "CACHE_MAX_RETRIES_PER_REQUEST";
1602
+ };
1603
+ CACHE_ENABLE_OFFLINE_QUEUE: {
1604
+ description: string;
1605
+ default: boolean;
1606
+ examples: boolean[];
1607
+ } & {
1608
+ type: "boolean";
1609
+ validator: (value: string) => boolean;
1610
+ } & {
1611
+ key: "CACHE_ENABLE_OFFLINE_QUEUE";
1612
+ };
1613
+ DB_MAX_ROWS: {
1614
+ description: string;
1615
+ default: number;
1616
+ examples: number[];
1617
+ } & {
1618
+ type: "number";
1619
+ validator: (value: string) => number;
1620
+ } & {
1621
+ key: "DB_MAX_ROWS";
1622
+ };
1135
1623
  PORT: {
1136
1624
  description: string;
1137
1625
  default: number;
@@ -1149,6 +1637,7 @@ declare const env: _spfn_core_env.InferEnvType<{
1149
1637
  examples: string[];
1150
1638
  } & {
1151
1639
  type: "string";
1640
+ validator: (value: string) => string;
1152
1641
  } & {
1153
1642
  key: "HOST";
1154
1643
  };
@@ -1192,6 +1681,36 @@ declare const env: _spfn_core_env.InferEnvType<{
1192
1681
  } & {
1193
1682
  key: "SHUTDOWN_TIMEOUT";
1194
1683
  };
1684
+ FETCH_CONNECT_TIMEOUT: {
1685
+ description: string;
1686
+ default: number;
1687
+ examples: number[];
1688
+ } & {
1689
+ type: "number";
1690
+ validator: (value: string) => number;
1691
+ } & {
1692
+ key: "FETCH_CONNECT_TIMEOUT";
1693
+ };
1694
+ FETCH_HEADERS_TIMEOUT: {
1695
+ description: string;
1696
+ default: number;
1697
+ examples: number[];
1698
+ } & {
1699
+ type: "number";
1700
+ validator: (value: string) => number;
1701
+ } & {
1702
+ key: "FETCH_HEADERS_TIMEOUT";
1703
+ };
1704
+ FETCH_BODY_TIMEOUT: {
1705
+ description: string;
1706
+ default: number;
1707
+ examples: number[];
1708
+ } & {
1709
+ type: "number";
1710
+ validator: (value: string) => number;
1711
+ } & {
1712
+ key: "FETCH_BODY_TIMEOUT";
1713
+ };
1195
1714
  SPFN_API_URL: {
1196
1715
  description: string;
1197
1716
  required: boolean;
@@ -1222,6 +1741,96 @@ declare const env: _spfn_core_env.InferEnvType<{
1222
1741
  } & {
1223
1742
  key: "SPFN_APP_URL";
1224
1743
  };
1744
+ RPC_PROXY_TIMEOUT: {
1745
+ description: string;
1746
+ default: number;
1747
+ nextjs: boolean;
1748
+ examples: number[];
1749
+ } & {
1750
+ type: "number";
1751
+ validator: (value: string) => number;
1752
+ } & {
1753
+ key: "RPC_PROXY_TIMEOUT";
1754
+ };
1755
+ SPFN_PROXY_SECRET: {
1756
+ description: string;
1757
+ required: boolean;
1758
+ sensitive: boolean;
1759
+ nextjs: boolean;
1760
+ examples: string[];
1761
+ } & {
1762
+ type: "string";
1763
+ validator: (value: string) => string;
1764
+ } & {
1765
+ key: "SPFN_PROXY_SECRET";
1766
+ };
1767
+ SPFN_PROXY_SECRET_PREVIOUS: {
1768
+ description: string;
1769
+ required: boolean;
1770
+ sensitive: boolean;
1771
+ nextjs: boolean;
1772
+ examples: string[];
1773
+ } & {
1774
+ type: "string";
1775
+ validator: (value: string) => string;
1776
+ } & {
1777
+ key: "SPFN_PROXY_SECRET_PREVIOUS";
1778
+ };
1779
+ TRUSTED_PROXY_HOPS: {
1780
+ description: string;
1781
+ default: number;
1782
+ nextjs: boolean;
1783
+ examples: number[];
1784
+ } & {
1785
+ type: "number";
1786
+ validator: (value: string) => number;
1787
+ } & {
1788
+ key: "TRUSTED_PROXY_HOPS";
1789
+ };
1790
+ RATE_LIMIT_MODE: Omit<_spfn_core_env.EnvVarSchema<"off" | "on">, "key" | "type" | "validator"> & {
1791
+ type: "enum";
1792
+ validator: (val: string) => "off" | "on";
1793
+ } & {
1794
+ key: "RATE_LIMIT_MODE";
1795
+ };
1796
+ RATE_LIMIT_DEFAULT_LIMIT: {
1797
+ description: string;
1798
+ default: number;
1799
+ examples: number[];
1800
+ } & {
1801
+ type: "number";
1802
+ validator: (value: string) => number;
1803
+ } & {
1804
+ key: "RATE_LIMIT_DEFAULT_LIMIT";
1805
+ };
1806
+ RATE_LIMIT_DEFAULT_WINDOW_MS: {
1807
+ description: string;
1808
+ default: number;
1809
+ examples: number[];
1810
+ } & {
1811
+ type: "number";
1812
+ validator: (value: string) => number;
1813
+ } & {
1814
+ key: "RATE_LIMIT_DEFAULT_WINDOW_MS";
1815
+ };
1816
+ RATE_LIMIT_FAIL_CLOSED: {
1817
+ description: string;
1818
+ default: boolean;
1819
+ } & {
1820
+ type: "boolean";
1821
+ validator: (value: string) => boolean;
1822
+ } & {
1823
+ key: "RATE_LIMIT_FAIL_CLOSED";
1824
+ };
1825
+ SAFE_FETCH_BLOCK_PRIVATE_IPS: {
1826
+ description: string;
1827
+ default: boolean;
1828
+ } & {
1829
+ type: "boolean";
1830
+ validator: (value: string) => boolean;
1831
+ } & {
1832
+ key: "SAFE_FETCH_BLOCK_PRIVATE_IPS";
1833
+ };
1225
1834
  }>;
1226
1835
 
1227
1836
  export { env, coreEnvSchema as envSchema, registry };