@graphoria/server 0.2.3 → 0.4.0

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 (183) hide show
  1. package/README.md +29 -20
  2. package/dist/src/ai/mcp/index.d.ts +9 -2
  3. package/dist/src/ai/mcp/index.d.ts.map +1 -1
  4. package/dist/src/ai/tools/core.d.ts +6 -1
  5. package/dist/src/ai/tools/core.d.ts.map +1 -1
  6. package/dist/src/ai/tools/core.test.d.ts +2 -0
  7. package/dist/src/ai/tools/core.test.d.ts.map +1 -0
  8. package/dist/src/analyzeQuery/analyzers/selectionAnalyzer.d.ts.map +1 -1
  9. package/dist/src/analyzeQuery/costLimit.d.ts +30 -0
  10. package/dist/src/analyzeQuery/costLimit.d.ts.map +1 -0
  11. package/dist/src/analyzeQuery/costLimit.test.d.ts +2 -0
  12. package/dist/src/analyzeQuery/costLimit.test.d.ts.map +1 -0
  13. package/dist/src/analyzeQuery/depthLimit.d.ts.map +1 -1
  14. package/dist/src/analyzeQuery/fragments.d.ts +6 -0
  15. package/dist/src/analyzeQuery/fragments.d.ts.map +1 -0
  16. package/dist/src/authentication/capabilities.d.ts +18 -0
  17. package/dist/src/authentication/capabilities.d.ts.map +1 -0
  18. package/dist/src/authentication/capabilities.test.d.ts +2 -0
  19. package/dist/src/authentication/capabilities.test.d.ts.map +1 -0
  20. package/dist/src/authentication/jwt.d.ts.map +1 -1
  21. package/dist/src/authentication/paseto.d.ts.map +1 -1
  22. package/dist/src/authentication/secrets.d.ts +9 -0
  23. package/dist/src/authentication/secrets.d.ts.map +1 -0
  24. package/dist/src/authentication/secrets.test.d.ts +2 -0
  25. package/dist/src/authentication/secrets.test.d.ts.map +1 -0
  26. package/dist/src/config/types/auth.d.ts +8 -0
  27. package/dist/src/config/types/auth.d.ts.map +1 -1
  28. package/dist/src/config/types/db.d.ts +2 -0
  29. package/dist/src/config/types/db.d.ts.map +1 -1
  30. package/dist/src/config/types/operation.d.ts +4 -0
  31. package/dist/src/config/types/operation.d.ts.map +1 -1
  32. package/dist/src/config/types/operation.test.d.ts +2 -0
  33. package/dist/src/config/types/operation.test.d.ts.map +1 -0
  34. package/dist/src/configuration/crossReferences.d.ts +27 -0
  35. package/dist/src/configuration/crossReferences.d.ts.map +1 -0
  36. package/dist/src/configuration/crossReferences.test.d.ts +2 -0
  37. package/dist/src/configuration/crossReferences.test.d.ts.map +1 -0
  38. package/dist/src/configuration/getSchemas/index.d.ts +70 -6
  39. package/dist/src/configuration/getSchemas/index.d.ts.map +1 -1
  40. package/dist/src/configuration/getSchemas/mergeEntities/index.d.ts +3 -1
  41. package/dist/src/configuration/getSchemas/mergeEntities/index.d.ts.map +1 -1
  42. package/dist/src/configuration/gql/gqlAuthOperations.d.ts.map +1 -1
  43. package/dist/src/configuration/gql/handleGraphQLRequestFactory.d.ts +32 -2
  44. package/dist/src/configuration/gql/handleGraphQLRequestFactory.d.ts.map +1 -1
  45. package/dist/src/configuration/gql/handleGraphQLSubscriptionFactory.d.ts.map +1 -1
  46. package/dist/src/configuration/index.d.ts +41 -3
  47. package/dist/src/configuration/index.d.ts.map +1 -1
  48. package/dist/src/configuration/rest/generateOpenAPI.d.ts.map +1 -1
  49. package/dist/src/configuration/rest/generateOpenAPI.test.d.ts +2 -0
  50. package/dist/src/configuration/rest/generateOpenAPI.test.d.ts.map +1 -0
  51. package/dist/src/configuration/rest/handleRESTRequestFactory.d.ts.map +1 -1
  52. package/dist/src/configuration/rest/index.d.ts.map +1 -1
  53. package/dist/src/console/api.d.ts +7 -5
  54. package/dist/src/console/api.d.ts.map +1 -1
  55. package/dist/src/console/session.d.ts +29 -0
  56. package/dist/src/console/session.d.ts.map +1 -0
  57. package/dist/src/console/session.test.d.ts +2 -0
  58. package/dist/src/console/session.test.d.ts.map +1 -0
  59. package/dist/src/databases/common.d.ts +12 -4
  60. package/dist/src/databases/common.d.ts.map +1 -1
  61. package/dist/src/databases/core/executor.d.ts +7 -3
  62. package/dist/src/databases/core/executor.d.ts.map +1 -1
  63. package/dist/src/databases/core/function-mapping.d.ts +5 -4
  64. package/dist/src/databases/core/function-mapping.d.ts.map +1 -1
  65. package/dist/src/databases/core/procedure-arguments.d.ts +17 -0
  66. package/dist/src/databases/core/procedure-arguments.d.ts.map +1 -0
  67. package/dist/src/databases/core/procedure-arguments.test.d.ts +2 -0
  68. package/dist/src/databases/core/procedure-arguments.test.d.ts.map +1 -0
  69. package/dist/src/databases/core/query-builder.d.ts +7 -1
  70. package/dist/src/databases/core/query-builder.d.ts.map +1 -1
  71. package/dist/src/databases/engines/mssql/connection.d.ts +30 -7
  72. package/dist/src/databases/engines/mssql/connection.d.ts.map +1 -1
  73. package/dist/src/databases/engines/mssql/connection.test.d.ts +2 -0
  74. package/dist/src/databases/engines/mssql/connection.test.d.ts.map +1 -0
  75. package/dist/src/databases/engines/mssql/format.d.ts +2 -1
  76. package/dist/src/databases/engines/mssql/format.d.ts.map +1 -1
  77. package/dist/src/databases/engines/mssql/query/index.d.ts +3 -2
  78. package/dist/src/databases/engines/mssql/query/index.d.ts.map +1 -1
  79. package/dist/src/databases/engines/mysql/connection.d.ts +17 -1
  80. package/dist/src/databases/engines/mysql/connection.d.ts.map +1 -1
  81. package/dist/src/databases/engines/mysql/connection.test.d.ts +2 -0
  82. package/dist/src/databases/engines/mysql/connection.test.d.ts.map +1 -0
  83. package/dist/src/databases/engines/mysql/format.d.ts +2 -1
  84. package/dist/src/databases/engines/mysql/format.d.ts.map +1 -1
  85. package/dist/src/databases/engines/mysql/query/index.d.ts +3 -2
  86. package/dist/src/databases/engines/mysql/query/index.d.ts.map +1 -1
  87. package/dist/src/databases/engines/postgresql/connection.d.ts +26 -7
  88. package/dist/src/databases/engines/postgresql/connection.d.ts.map +1 -1
  89. package/dist/src/databases/engines/postgresql/connection.test.d.ts +2 -0
  90. package/dist/src/databases/engines/postgresql/connection.test.d.ts.map +1 -0
  91. package/dist/src/databases/engines/postgresql/format.d.ts +2 -1
  92. package/dist/src/databases/engines/postgresql/format.d.ts.map +1 -1
  93. package/dist/src/databases/engines/postgresql/query/index.d.ts +3 -2
  94. package/dist/src/databases/engines/postgresql/query/index.d.ts.map +1 -1
  95. package/dist/src/databases/high-level-operations.d.ts +2 -0
  96. package/dist/src/databases/high-level-operations.d.ts.map +1 -1
  97. package/dist/src/databases/transformers/data-transformers.d.ts +2 -0
  98. package/dist/src/databases/transformers/data-transformers.d.ts.map +1 -1
  99. package/dist/src/index.d.ts.map +1 -1
  100. package/dist/src/logging/audit.d.ts +27 -0
  101. package/dist/src/logging/audit.d.ts.map +1 -0
  102. package/dist/src/logging/audit.test.d.ts +2 -0
  103. package/dist/src/logging/audit.test.d.ts.map +1 -0
  104. package/dist/src/singletons/env.d.ts +27 -4
  105. package/dist/src/singletons/env.d.ts.map +1 -1
  106. package/dist/src/singletons/queryTimeout.d.ts +3 -0
  107. package/dist/src/singletons/queryTimeout.d.ts.map +1 -0
  108. package/dist/src/subscriptions/strategies/database.d.ts.map +1 -1
  109. package/dist/src/subscriptions/strategies/database.test.d.ts +2 -0
  110. package/dist/src/subscriptions/strategies/database.test.d.ts.map +1 -0
  111. package/dist/src/subscriptions/types.d.ts +4 -1
  112. package/dist/src/subscriptions/types.d.ts.map +1 -1
  113. package/dist/src/subscriptions/utils/polling.d.ts.map +1 -1
  114. package/dist/src/types/env.d.ts +97 -12
  115. package/dist/src/types/env.d.ts.map +1 -1
  116. package/dist/src/types/zod/auth.d.ts +12 -0
  117. package/dist/src/types/zod/auth.d.ts.map +1 -1
  118. package/dist/src/types/zod/configuration.d.ts +28 -0
  119. package/dist/src/types/zod/configuration.d.ts.map +1 -1
  120. package/dist/src/utils/rateLimit.d.ts +65 -0
  121. package/dist/src/utils/rateLimit.d.ts.map +1 -0
  122. package/dist/src/utils/rateLimit.test.d.ts +2 -0
  123. package/dist/src/utils/rateLimit.test.d.ts.map +1 -0
  124. package/dist/src/utils/responses.d.ts +6 -0
  125. package/dist/src/utils/responses.d.ts.map +1 -1
  126. package/dist/src/utils/sessionVariables.d.ts +2 -0
  127. package/dist/src/utils/sessionVariables.d.ts.map +1 -1
  128. package/dist/tsconfig.tsbuildinfo +1 -1
  129. package/package.json +5 -5
  130. package/playgrounds/console/index.html +7 -7
  131. package/playgrounds/graphiql/index.html +548 -685
  132. package/src/ai/mcp/index.ts +19 -14
  133. package/src/ai/tools/core.ts +30 -6
  134. package/src/analyzeQuery/analyzers/selectionAnalyzer.ts +2 -1
  135. package/src/analyzeQuery/costLimit.ts +236 -0
  136. package/src/analyzeQuery/depthLimit.ts +4 -23
  137. package/src/analyzeQuery/fragments.ts +18 -0
  138. package/src/authentication/capabilities.ts +54 -0
  139. package/src/authentication/index.ts +3 -3
  140. package/src/authentication/jwt.ts +30 -25
  141. package/src/authentication/paseto.ts +36 -26
  142. package/src/authentication/secrets.ts +30 -0
  143. package/src/config/types/auth.ts +7 -0
  144. package/src/config/types/db.ts +7 -0
  145. package/src/config/types/operation.ts +4 -0
  146. package/src/configuration/crossReferences.ts +340 -0
  147. package/src/configuration/getSchemas/mergeEntities/index.ts +0 -26
  148. package/src/configuration/getSchemas/type-definition-generator/index.ts +1 -1
  149. package/src/configuration/gql/buildExecute.ts +1 -1
  150. package/src/configuration/gql/gqlAuthOperations.ts +26 -0
  151. package/src/configuration/gql/handleGraphQLRequestFactory.ts +97 -15
  152. package/src/configuration/gql/handleGraphQLSubscriptionFactory.ts +31 -2
  153. package/src/configuration/index.ts +24 -6
  154. package/src/configuration/rest/generateOpenAPI.ts +61 -11
  155. package/src/configuration/rest/handleRESTRequestFactory.ts +32 -4
  156. package/src/configuration/rest/index.ts +11 -2
  157. package/src/console/api.ts +102 -16
  158. package/src/console/session.ts +129 -0
  159. package/src/databases/common.ts +55 -10
  160. package/src/databases/core/executor.ts +13 -4
  161. package/src/databases/core/function-mapping.ts +5 -1
  162. package/src/databases/core/procedure-arguments.ts +25 -0
  163. package/src/databases/core/query-builder.ts +7 -0
  164. package/src/databases/engines/mssql/connection.ts +66 -17
  165. package/src/databases/engines/mssql/format.ts +3 -1
  166. package/src/databases/engines/mssql/query/index.ts +12 -2
  167. package/src/databases/engines/mysql/connection.ts +40 -20
  168. package/src/databases/engines/mysql/format.ts +3 -1
  169. package/src/databases/engines/mysql/query/index.ts +25 -4
  170. package/src/databases/engines/postgresql/connection.ts +86 -22
  171. package/src/databases/engines/postgresql/format.ts +3 -1
  172. package/src/databases/engines/postgresql/query/index.ts +12 -3
  173. package/src/databases/high-level-operations.ts +13 -2
  174. package/src/index.ts +127 -19
  175. package/src/logging/audit.ts +86 -0
  176. package/src/singletons/queryTimeout.ts +20 -0
  177. package/src/subscriptions/strategies/database.ts +19 -3
  178. package/src/subscriptions/types.ts +4 -1
  179. package/src/subscriptions/utils/polling.ts +6 -3
  180. package/src/types/env.ts +47 -9
  181. package/src/utils/rateLimit.ts +209 -0
  182. package/src/utils/responses.ts +16 -0
  183. package/src/utils/sessionVariables.ts +2 -0
@@ -2,7 +2,7 @@ import { z } from "zod";
2
2
  export declare const EnvZod: z.ZodPipe<z.ZodObject<{
3
3
  PORT: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
4
4
  NODE_ENV: z.ZodDefault<z.ZodString>;
5
- ADMIN_SECRET: z.ZodString;
5
+ ADMIN_SECRET: z.ZodPipe<z.ZodString, z.ZodTransform<string[], string>>;
6
6
  CONFIGURATION: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodPipe<z.ZodObject<{
7
7
  name: z.ZodString;
8
8
  version: z.ZodString;
@@ -80,6 +80,7 @@ export declare const EnvZod: z.ZodPipe<z.ZodObject<{
80
80
  max: z.ZodDefault<z.ZodNumber>;
81
81
  min: z.ZodDefault<z.ZodNumber>;
82
82
  idleTimeout: z.ZodDefault<z.ZodNumber>;
83
+ acquireTimeout: z.ZodDefault<z.ZodNumber>;
83
84
  }, z.core.$strict>>;
84
85
  connectionTimeout: z.ZodDefault<z.ZodNumber>;
85
86
  requestTimeout: z.ZodDefault<z.ZodNumber>;
@@ -458,6 +459,7 @@ export declare const EnvZod: z.ZodPipe<z.ZodObject<{
458
459
  updateAgeOnHas: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
459
460
  ttlAutopurge: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
460
461
  }, z.core.$strict>>;
462
+ timeout: z.ZodOptional<z.ZodNumber>;
461
463
  }, z.core.$strict>>>>;
462
464
  auth: z.ZodPipe<z.ZodDefault<z.ZodOptional<z.ZodObject<{
463
465
  enabled: z.ZodBoolean;
@@ -485,6 +487,10 @@ export declare const EnvZod: z.ZodPipe<z.ZodObject<{
485
487
  operations: z.ZodDefault<z.ZodOptional<z.ZodUnion<readonly [z.ZodArray<z.ZodString>, z.ZodLiteral<"ALL">]>>>;
486
488
  remoteSchemas: z.ZodDefault<z.ZodOptional<z.ZodUnion<readonly [z.ZodArray<z.ZodString>, z.ZodLiteral<"ALL">]>>>;
487
489
  remoteREST: z.ZodDefault<z.ZodOptional<z.ZodUnion<readonly [z.ZodArray<z.ZodString>, z.ZodLiteral<"ALL">]>>>;
490
+ rateLimit: z.ZodOptional<z.ZodObject<{
491
+ max: z.ZodNumber;
492
+ windowMs: z.ZodOptional<z.ZodNumber>;
493
+ }, z.core.$strict>>;
488
494
  }, z.core.$strict>>>>>;
489
495
  }, z.core.$strict>>>, z.ZodTransform<{
490
496
  enabled: boolean;
@@ -498,6 +504,10 @@ export declare const EnvZod: z.ZodPipe<z.ZodObject<{
498
504
  operations: "ALL" | string[];
499
505
  remoteSchemas: "ALL" | string[];
500
506
  remoteREST: "ALL" | string[];
507
+ rateLimit?: {
508
+ max: number;
509
+ windowMs?: number | undefined;
510
+ } | undefined;
501
511
  tables: "ALL" | {
502
512
  [x: string]: {
503
513
  columns: "ALL" | string[];
@@ -524,6 +534,10 @@ export declare const EnvZod: z.ZodPipe<z.ZodObject<{
524
534
  operations: "ALL" | string[];
525
535
  remoteSchemas: "ALL" | string[];
526
536
  remoteREST: "ALL" | string[];
537
+ rateLimit?: {
538
+ max: number;
539
+ windowMs?: number | undefined;
540
+ } | undefined;
527
541
  }>;
528
542
  }>>;
529
543
  remoteSchemas: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodObject<{
@@ -620,6 +634,7 @@ export declare const EnvZod: z.ZodPipe<z.ZodObject<{
620
634
  max: number;
621
635
  min: number;
622
636
  idleTimeout: number;
637
+ acquireTimeout: number;
623
638
  };
624
639
  connectionTimeout: number;
625
640
  requestTimeout: number;
@@ -820,6 +835,7 @@ export declare const EnvZod: z.ZodPipe<z.ZodObject<{
820
835
  updateAgeOnHas: boolean;
821
836
  ttlAutopurge: boolean;
822
837
  } | undefined;
838
+ timeout?: number | undefined;
823
839
  }>;
824
840
  remoteSchemas: {
825
841
  name: string;
@@ -911,6 +927,7 @@ export declare const EnvZod: z.ZodPipe<z.ZodObject<{
911
927
  max: number;
912
928
  min: number;
913
929
  idleTimeout: number;
930
+ acquireTimeout: number;
914
931
  };
915
932
  connectionTimeout: number;
916
933
  requestTimeout: number;
@@ -932,6 +949,10 @@ export declare const EnvZod: z.ZodPipe<z.ZodObject<{
932
949
  operations: "ALL" | string[];
933
950
  remoteSchemas: "ALL" | string[];
934
951
  remoteREST: "ALL" | string[];
952
+ rateLimit?: {
953
+ max: number;
954
+ windowMs?: number | undefined;
955
+ } | undefined;
935
956
  tables: "ALL" | {
936
957
  [x: string]: {
937
958
  columns: "ALL" | string[];
@@ -998,6 +1019,7 @@ export declare const EnvZod: z.ZodPipe<z.ZodObject<{
998
1019
  max: number;
999
1020
  min: number;
1000
1021
  idleTimeout: number;
1022
+ acquireTimeout: number;
1001
1023
  };
1002
1024
  connectionTimeout: number;
1003
1025
  requestTimeout: number;
@@ -1071,6 +1093,7 @@ export declare const EnvZod: z.ZodPipe<z.ZodObject<{
1071
1093
  max: number;
1072
1094
  min: number;
1073
1095
  idleTimeout: number;
1096
+ acquireTimeout: number;
1074
1097
  };
1075
1098
  connectionTimeout: number;
1076
1099
  requestTimeout: number;
@@ -1271,6 +1294,7 @@ export declare const EnvZod: z.ZodPipe<z.ZodObject<{
1271
1294
  updateAgeOnHas: boolean;
1272
1295
  ttlAutopurge: boolean;
1273
1296
  } | undefined;
1297
+ timeout?: number | undefined;
1274
1298
  }>;
1275
1299
  auth: {
1276
1300
  enabled: boolean;
@@ -1284,6 +1308,10 @@ export declare const EnvZod: z.ZodPipe<z.ZodObject<{
1284
1308
  operations: "ALL" | string[];
1285
1309
  remoteSchemas: "ALL" | string[];
1286
1310
  remoteREST: "ALL" | string[];
1311
+ rateLimit?: {
1312
+ max: number;
1313
+ windowMs?: number | undefined;
1314
+ } | undefined;
1287
1315
  tables: "ALL" | {
1288
1316
  [x: string]: {
1289
1317
  columns: "ALL" | string[];
@@ -1325,12 +1353,12 @@ export declare const EnvZod: z.ZodPipe<z.ZodObject<{
1325
1353
  };
1326
1354
  }>>]>>;
1327
1355
  ANONYMOUS_ROLE: z.ZodDefault<z.ZodString>;
1328
- JWT_SECRET: z.ZodDefault<z.ZodOptional<z.ZodString>>;
1356
+ JWT_SECRET: z.ZodPipe<z.ZodDefault<z.ZodString>, z.ZodTransform<string[], string>>;
1329
1357
  JWT_EXPIRES_IN: z.ZodDefault<z.ZodString>;
1330
1358
  JWT_RT_EXPIRES_IN: z.ZodDefault<z.ZodString>;
1331
- PASETO_LOCAL_KEY: z.ZodDefault<z.ZodOptional<z.ZodString>>;
1359
+ PASETO_LOCAL_KEY: z.ZodPipe<z.ZodDefault<z.ZodString>, z.ZodTransform<string[], string>>;
1332
1360
  PASETO_SECRET_KEY: z.ZodDefault<z.ZodOptional<z.ZodString>>;
1333
- PASETO_PUBLIC_KEY: z.ZodDefault<z.ZodOptional<z.ZodString>>;
1361
+ PASETO_PUBLIC_KEY: z.ZodPipe<z.ZodDefault<z.ZodString>, z.ZodTransform<string[], string>>;
1334
1362
  AUTH_STRATEGY: z.ZodOptional<z.ZodEnum<{
1335
1363
  jwt: "jwt";
1336
1364
  paseto_local: "paseto_local";
@@ -1351,18 +1379,31 @@ export declare const EnvZod: z.ZodPipe<z.ZodObject<{
1351
1379
  SUPERADMIN_ROLE: z.ZodDefault<z.ZodString>;
1352
1380
  CONSOLE_ENABLED: z.ZodDefault<z.ZodCodec<z.ZodString, z.ZodBoolean>>;
1353
1381
  CONSOLE_ENDPOINT: z.ZodDefault<z.ZodString>;
1382
+ CONSOLE_SESSION_EXPIRES_IN: z.ZodDefault<z.ZodString>;
1383
+ CONSOLE_READ_SECRET: z.ZodPipe<z.ZodDefault<z.ZodString>, z.ZodTransform<string[], string>>;
1384
+ CONSOLE_WRITE_SECRET: z.ZodPipe<z.ZodDefault<z.ZodString>, z.ZodTransform<string[], string>>;
1354
1385
  PREFIX: z.ZodDefault<z.ZodString>;
1355
1386
  CORS_ENABLED: z.ZodDefault<z.ZodCodec<z.ZodString, z.ZodBoolean>>;
1356
1387
  PRINT_SCHEMAS: z.ZodDefault<z.ZodCodec<z.ZodString, z.ZodBoolean>>;
1357
1388
  SCHEMAS_OUTPUT_DIR: z.ZodDefault<z.ZodString>;
1358
1389
  QUERY_ON_RESPONSE: z.ZodDefault<z.ZodCodec<z.ZodString, z.ZodBoolean>>;
1359
1390
  MAX_QUERY_DEPTH: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
1391
+ DEFAULT_PAGE_SIZE: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
1392
+ MAX_PAGE_SIZE: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
1393
+ QUERY_TIMEOUT_MS: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
1394
+ MAX_QUERY_COST: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
1395
+ RATE_LIMIT_MAX: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
1396
+ RATE_LIMIT_ANONYMOUS_MAX: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
1397
+ RATE_LIMIT_WINDOW_MS: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
1398
+ RATE_LIMIT_TRUST_PROXY: z.ZodDefault<z.ZodCodec<z.ZodString, z.ZodBoolean>>;
1360
1399
  AI_ENABLED: z.ZodOptional<z.ZodCodec<z.ZodString, z.ZodBoolean>>;
1361
1400
  AI_GRAPHQL_ENABLED: z.ZodDefault<z.ZodCodec<z.ZodString, z.ZodBoolean>>;
1362
1401
  AI_REST_ENABLED: z.ZodDefault<z.ZodCodec<z.ZodString, z.ZodBoolean>>;
1402
+ AI_SECRET: z.ZodPipe<z.ZodDefault<z.ZodString>, z.ZodTransform<string[], string>>;
1363
1403
  AI_MCP_ENABLED: z.ZodOptional<z.ZodCodec<z.ZodString, z.ZodBoolean>>;
1364
1404
  AI_MCP_ENDPOINT: z.ZodDefault<z.ZodString>;
1365
1405
  AI_MCP_REQUIRE_ADMIN_SECRET: z.ZodDefault<z.ZodCodec<z.ZodString, z.ZodBoolean>>;
1406
+ AI_MCP_SECRET: z.ZodPipe<z.ZodDefault<z.ZodString>, z.ZodTransform<string[], string>>;
1366
1407
  AI_MCP_MAX_QUERY_DEPTH: z.ZodOptional<z.ZodCoercedNumber<unknown>>;
1367
1408
  AI_MCP_DISABLED_TOOLS: z.ZodDefault<z.ZodString>;
1368
1409
  AI_MCP_DISABLED_RESOURCES: z.ZodDefault<z.ZodString>;
@@ -1436,6 +1477,7 @@ export declare const EnvZod: z.ZodPipe<z.ZodObject<{
1436
1477
  max: number;
1437
1478
  min: number;
1438
1479
  idleTimeout: number;
1480
+ acquireTimeout: number;
1439
1481
  };
1440
1482
  connectionTimeout: number;
1441
1483
  requestTimeout: number;
@@ -1636,6 +1678,7 @@ export declare const EnvZod: z.ZodPipe<z.ZodObject<{
1636
1678
  updateAgeOnHas: boolean;
1637
1679
  ttlAutopurge: boolean;
1638
1680
  } | undefined;
1681
+ timeout?: number | undefined;
1639
1682
  }>;
1640
1683
  remoteSchemas: {
1641
1684
  name: string;
@@ -1727,6 +1770,7 @@ export declare const EnvZod: z.ZodPipe<z.ZodObject<{
1727
1770
  max: number;
1728
1771
  min: number;
1729
1772
  idleTimeout: number;
1773
+ acquireTimeout: number;
1730
1774
  };
1731
1775
  connectionTimeout: number;
1732
1776
  requestTimeout: number;
@@ -1748,6 +1792,10 @@ export declare const EnvZod: z.ZodPipe<z.ZodObject<{
1748
1792
  operations: "ALL" | string[];
1749
1793
  remoteSchemas: "ALL" | string[];
1750
1794
  remoteREST: "ALL" | string[];
1795
+ rateLimit?: {
1796
+ max: number;
1797
+ windowMs?: number | undefined;
1798
+ } | undefined;
1751
1799
  tables: "ALL" | {
1752
1800
  [x: string]: {
1753
1801
  columns: "ALL" | string[];
@@ -1814,6 +1862,7 @@ export declare const EnvZod: z.ZodPipe<z.ZodObject<{
1814
1862
  max: number;
1815
1863
  min: number;
1816
1864
  idleTimeout: number;
1865
+ acquireTimeout: number;
1817
1866
  };
1818
1867
  connectionTimeout: number;
1819
1868
  requestTimeout: number;
@@ -1837,19 +1886,29 @@ export declare const EnvZod: z.ZodPipe<z.ZodObject<{
1837
1886
  authStrategy: "jwt" | "paseto_local" | "paseto_public" | undefined;
1838
1887
  queryOnResponse: boolean;
1839
1888
  maxQueryDepth: number;
1889
+ defaultPageSize: number;
1890
+ maxPageSize: number;
1891
+ queryTimeoutMs: number;
1892
+ maxQueryCost: number;
1840
1893
  admin: {
1841
- secret: string;
1894
+ secrets: string[];
1842
1895
  header: string;
1843
1896
  };
1844
1897
  jwt: {
1845
- secret: string;
1898
+ secrets: string[];
1846
1899
  expiresIn: string;
1847
1900
  rtExpiresIn: string;
1848
1901
  };
1849
1902
  paseto: {
1850
- localKey: string;
1903
+ localKeys: string[];
1851
1904
  secretKey: string;
1852
- publicKey: string;
1905
+ publicKeys: string[];
1906
+ };
1907
+ rateLimit: {
1908
+ max: number;
1909
+ anonymousMax: number;
1910
+ windowMs: number;
1911
+ trustProxy: boolean;
1853
1912
  };
1854
1913
  cache: {
1855
1914
  store: "memory" | "redis";
@@ -1865,15 +1924,20 @@ export declare const EnvZod: z.ZodPipe<z.ZodObject<{
1865
1924
  console: {
1866
1925
  enabled: boolean;
1867
1926
  endpoint: string;
1927
+ sessionExpiresIn: string;
1928
+ readSecrets: string[];
1929
+ writeSecrets: string[];
1868
1930
  };
1869
1931
  ai: {
1870
1932
  enabled: boolean | undefined;
1871
1933
  graphqlEnabled: boolean;
1872
1934
  restEnabled: boolean;
1935
+ secrets: string[];
1873
1936
  mcp: {
1874
1937
  enabled: boolean | undefined;
1875
1938
  endpoint: string;
1876
1939
  requireAdminSecret: boolean;
1940
+ secrets: string[];
1877
1941
  maxQueryDepth: number | undefined;
1878
1942
  disabledTools: string[];
1879
1943
  disabledResources: string[];
@@ -1885,7 +1949,7 @@ export declare const EnvZod: z.ZodPipe<z.ZodObject<{
1885
1949
  }, {
1886
1950
  PORT: number;
1887
1951
  NODE_ENV: string;
1888
- ADMIN_SECRET: string;
1952
+ ADMIN_SECRET: string[];
1889
1953
  CONFIGURATION?: string | {
1890
1954
  name: string;
1891
1955
  version: string;
@@ -1949,6 +2013,7 @@ export declare const EnvZod: z.ZodPipe<z.ZodObject<{
1949
2013
  max: number;
1950
2014
  min: number;
1951
2015
  idleTimeout: number;
2016
+ acquireTimeout: number;
1952
2017
  };
1953
2018
  connectionTimeout: number;
1954
2019
  requestTimeout: number;
@@ -2149,6 +2214,7 @@ export declare const EnvZod: z.ZodPipe<z.ZodObject<{
2149
2214
  updateAgeOnHas: boolean;
2150
2215
  ttlAutopurge: boolean;
2151
2216
  } | undefined;
2217
+ timeout?: number | undefined;
2152
2218
  }>;
2153
2219
  remoteSchemas: {
2154
2220
  name: string;
@@ -2240,6 +2306,7 @@ export declare const EnvZod: z.ZodPipe<z.ZodObject<{
2240
2306
  max: number;
2241
2307
  min: number;
2242
2308
  idleTimeout: number;
2309
+ acquireTimeout: number;
2243
2310
  };
2244
2311
  connectionTimeout: number;
2245
2312
  requestTimeout: number;
@@ -2261,6 +2328,10 @@ export declare const EnvZod: z.ZodPipe<z.ZodObject<{
2261
2328
  operations: "ALL" | string[];
2262
2329
  remoteSchemas: "ALL" | string[];
2263
2330
  remoteREST: "ALL" | string[];
2331
+ rateLimit?: {
2332
+ max: number;
2333
+ windowMs?: number | undefined;
2334
+ } | undefined;
2264
2335
  tables: "ALL" | {
2265
2336
  [x: string]: {
2266
2337
  columns: "ALL" | string[];
@@ -2327,6 +2398,7 @@ export declare const EnvZod: z.ZodPipe<z.ZodObject<{
2327
2398
  max: number;
2328
2399
  min: number;
2329
2400
  idleTimeout: number;
2401
+ acquireTimeout: number;
2330
2402
  };
2331
2403
  connectionTimeout: number;
2332
2404
  requestTimeout: number;
@@ -2339,12 +2411,12 @@ export declare const EnvZod: z.ZodPipe<z.ZodObject<{
2339
2411
  };
2340
2412
  } | undefined;
2341
2413
  ANONYMOUS_ROLE: string;
2342
- JWT_SECRET: string;
2414
+ JWT_SECRET: string[];
2343
2415
  JWT_EXPIRES_IN: string;
2344
2416
  JWT_RT_EXPIRES_IN: string;
2345
- PASETO_LOCAL_KEY: string;
2417
+ PASETO_LOCAL_KEY: string[];
2346
2418
  PASETO_SECRET_KEY: string;
2347
- PASETO_PUBLIC_KEY: string;
2419
+ PASETO_PUBLIC_KEY: string[];
2348
2420
  AUTH_STRATEGY?: "jwt" | "paseto_local" | "paseto_public" | undefined;
2349
2421
  REDIS_URL: string;
2350
2422
  CACHE_STORE: "memory" | "redis";
@@ -2358,18 +2430,31 @@ export declare const EnvZod: z.ZodPipe<z.ZodObject<{
2358
2430
  SUPERADMIN_ROLE: string;
2359
2431
  CONSOLE_ENABLED: boolean;
2360
2432
  CONSOLE_ENDPOINT: string;
2433
+ CONSOLE_SESSION_EXPIRES_IN: string;
2434
+ CONSOLE_READ_SECRET: string[];
2435
+ CONSOLE_WRITE_SECRET: string[];
2361
2436
  PREFIX: string;
2362
2437
  CORS_ENABLED: boolean;
2363
2438
  PRINT_SCHEMAS: boolean;
2364
2439
  SCHEMAS_OUTPUT_DIR: string;
2365
2440
  QUERY_ON_RESPONSE: boolean;
2366
2441
  MAX_QUERY_DEPTH: number;
2442
+ DEFAULT_PAGE_SIZE: number;
2443
+ MAX_PAGE_SIZE: number;
2444
+ QUERY_TIMEOUT_MS: number;
2445
+ MAX_QUERY_COST: number;
2446
+ RATE_LIMIT_MAX: number;
2447
+ RATE_LIMIT_ANONYMOUS_MAX: number;
2448
+ RATE_LIMIT_WINDOW_MS: number;
2449
+ RATE_LIMIT_TRUST_PROXY: boolean;
2367
2450
  AI_ENABLED?: boolean | undefined;
2368
2451
  AI_GRAPHQL_ENABLED: boolean;
2369
2452
  AI_REST_ENABLED: boolean;
2453
+ AI_SECRET: string[];
2370
2454
  AI_MCP_ENABLED?: boolean | undefined;
2371
2455
  AI_MCP_ENDPOINT: string;
2372
2456
  AI_MCP_REQUIRE_ADMIN_SECRET: boolean;
2457
+ AI_MCP_SECRET: string[];
2373
2458
  AI_MCP_MAX_QUERY_DEPTH?: number | undefined;
2374
2459
  AI_MCP_DISABLED_TOOLS: string;
2375
2460
  AI_MCP_DISABLED_RESOURCES: string;
@@ -1 +1 @@
1
- {"version":3,"file":"env.d.ts","sourceRoot":"","sources":["../../../src/types/env.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAKxB,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAgEb,MAAM;QACN,MAAM;;;QAGN,MAAM;QACN,SAAS;QACT,WAAW;;;QAGX,QAAQ;QACR,SAAS;QACT,SAAS;;;QAGT,KAAK;QACL,QAAQ;;;QAGR,KAAK;QACL,SAAS;;;QAGT,IAAI;;;QAGJ,OAAO;QACP,QAAQ;;;QAGR,OAAO;QACP,cAAc;QACd,WAAW;QACX,GAAG;YACD,OAAO;YACP,QAAQ;YACR,kBAAkB;YAClB,aAAa;YACb,aAAa;YAKb,iBAAiB;YAKjB,eAAe;;QAMjB,YAAY;QACZ,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAEf,CAAC;AAEN,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,MAAM,CAAC,CAAC;AAC9C,MAAM,MAAM,GAAG,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,MAAM,CAAC,GAAG;IACzC,MAAM,CAAC,EAAE,OAAO,MAAM,EAAE,MAAM,GAAG,OAAO,MAAM,EAAE,aAAa,CAAC;CAC/D,CAAC;AAEF,OAAO,QAAQ,KAAK,CAAC;IACnB,UAAU,GAAI,SAAQ,QAAQ;QAC5B,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB;CACF"}
1
+ {"version":3,"file":"env.d.ts","sourceRoot":"","sources":["../../../src/types/env.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAexB,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAiFb,OAAO;QACP,MAAM;;;QAGN,OAAO;QACP,SAAS;QACT,WAAW;;;QAGX,SAAS;QACT,SAAS;QACT,UAAU;;;QAGV,GAAG;QACH,YAAY;QACZ,QAAQ;QACR,UAAU;;;QAGV,KAAK;QACL,QAAQ;;;QAGR,KAAK;QACL,SAAS;;;QAGT,IAAI;;;QAGJ,OAAO;QACP,QAAQ;QACR,gBAAgB;QAChB,WAAW;QACX,YAAY;;;QAGZ,OAAO;QACP,cAAc;QACd,WAAW;QACX,OAAO;QACP,GAAG;YACD,OAAO;YACP,QAAQ;YACR,kBAAkB;YAClB,OAAO;YACP,aAAa;YACb,aAAa;YAKb,iBAAiB;YAKjB,eAAe;;QAMjB,YAAY;QACZ,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAEf,CAAC;AAEN,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,MAAM,CAAC,CAAC;AAC9C,MAAM,MAAM,GAAG,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,MAAM,CAAC,GAAG;IACzC,MAAM,CAAC,EAAE,OAAO,MAAM,EAAE,MAAM,GAAG,OAAO,MAAM,EAAE,aAAa,CAAC;CAC/D,CAAC;AAEF,OAAO,QAAQ,KAAK,CAAC;IACnB,UAAU,GAAI,SAAQ,QAAQ;QAC5B,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB;CACF"}
@@ -36,6 +36,10 @@ export declare const AuthZod: import("zod").ZodPipe<import("zod").ZodDefault<imp
36
36
  operations: import("zod").ZodDefault<import("zod").ZodOptional<import("zod").ZodUnion<readonly [import("zod").ZodArray<import("zod").ZodString>, import("zod").ZodLiteral<"ALL">]>>>;
37
37
  remoteSchemas: import("zod").ZodDefault<import("zod").ZodOptional<import("zod").ZodUnion<readonly [import("zod").ZodArray<import("zod").ZodString>, import("zod").ZodLiteral<"ALL">]>>>;
38
38
  remoteREST: import("zod").ZodDefault<import("zod").ZodOptional<import("zod").ZodUnion<readonly [import("zod").ZodArray<import("zod").ZodString>, import("zod").ZodLiteral<"ALL">]>>>;
39
+ rateLimit: import("zod").ZodOptional<import("zod").ZodObject<{
40
+ max: import("zod").ZodNumber;
41
+ windowMs: import("zod").ZodOptional<import("zod").ZodNumber>;
42
+ }, import("zod/v4/core").$strict>>;
39
43
  }, import("zod/v4/core").$strict>>>>>;
40
44
  }, import("zod/v4/core").$strict>>>, import("zod").ZodTransform<{
41
45
  enabled: boolean;
@@ -49,6 +53,10 @@ export declare const AuthZod: import("zod").ZodPipe<import("zod").ZodDefault<imp
49
53
  operations: "ALL" | string[];
50
54
  remoteSchemas: "ALL" | string[];
51
55
  remoteREST: "ALL" | string[];
56
+ rateLimit?: {
57
+ max: number;
58
+ windowMs?: number | undefined;
59
+ } | undefined;
52
60
  tables: "ALL" | TablePermissionsDictionary;
53
61
  };
54
62
  };
@@ -71,6 +79,10 @@ export declare const AuthZod: import("zod").ZodPipe<import("zod").ZodDefault<imp
71
79
  operations: "ALL" | string[];
72
80
  remoteSchemas: "ALL" | string[];
73
81
  remoteREST: "ALL" | string[];
82
+ rateLimit?: {
83
+ max: number;
84
+ windowMs?: number | undefined;
85
+ } | undefined;
74
86
  }>;
75
87
  }>>;
76
88
  //# sourceMappingURL=auth.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../../../src/types/zod/auth.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAGpD,YAAY,EACV,cAAc,EACd,aAAa,EACb,eAAe,EACf,eAAe,EACf,cAAc,EACd,UAAU,GACX,MAAM,cAAc,CAAC;AAEtB,OAAO,EACL,iBAAiB,EACjB,gBAAgB,EAChB,kBAAkB,EAClB,kBAAkB,EAClB,iBAAiB,EACjB,aAAa,GACd,MAAM,cAAc,CAAC;AAMtB,KAAK,0BAA0B,GAAG,MAAM,CACtC,MAAM,EACN;IACE,OAAO,EAAE,KAAK,GAAG,MAAM,EAAE,CAAC;CAC3B,GAAG,WAAW,CAChB,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsDlB,CAAC"}
1
+ {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../../../src/types/zod/auth.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAGpD,YAAY,EACV,cAAc,EACd,aAAa,EACb,eAAe,EACf,eAAe,EACf,cAAc,EACd,UAAU,GACX,MAAM,cAAc,CAAC;AAEtB,OAAO,EACL,iBAAiB,EACjB,gBAAgB,EAChB,kBAAkB,EAClB,kBAAkB,EAClB,iBAAiB,EACjB,aAAa,GACd,MAAM,cAAc,CAAC;AAMtB,KAAK,0BAA0B,GAAG,MAAM,CACtC,MAAM,EACN;IACE,OAAO,EAAE,KAAK,GAAG,MAAM,EAAE,CAAC;CAC3B,GAAG,WAAW,CAChB,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsDlB,CAAC"}
@@ -76,6 +76,7 @@ export declare const ConfigurationZod: z.ZodPipe<z.ZodObject<{
76
76
  max: z.ZodDefault<z.ZodNumber>;
77
77
  min: z.ZodDefault<z.ZodNumber>;
78
78
  idleTimeout: z.ZodDefault<z.ZodNumber>;
79
+ acquireTimeout: z.ZodDefault<z.ZodNumber>;
79
80
  }, z.core.$strict>>;
80
81
  connectionTimeout: z.ZodDefault<z.ZodNumber>;
81
82
  requestTimeout: z.ZodDefault<z.ZodNumber>;
@@ -454,6 +455,7 @@ export declare const ConfigurationZod: z.ZodPipe<z.ZodObject<{
454
455
  updateAgeOnHas: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
455
456
  ttlAutopurge: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
456
457
  }, z.core.$strict>>;
458
+ timeout: z.ZodOptional<z.ZodNumber>;
457
459
  }, z.core.$strict>>>>;
458
460
  auth: z.ZodPipe<z.ZodDefault<z.ZodOptional<z.ZodObject<{
459
461
  enabled: z.ZodBoolean;
@@ -481,6 +483,10 @@ export declare const ConfigurationZod: z.ZodPipe<z.ZodObject<{
481
483
  operations: z.ZodDefault<z.ZodOptional<z.ZodUnion<readonly [z.ZodArray<z.ZodString>, z.ZodLiteral<"ALL">]>>>;
482
484
  remoteSchemas: z.ZodDefault<z.ZodOptional<z.ZodUnion<readonly [z.ZodArray<z.ZodString>, z.ZodLiteral<"ALL">]>>>;
483
485
  remoteREST: z.ZodDefault<z.ZodOptional<z.ZodUnion<readonly [z.ZodArray<z.ZodString>, z.ZodLiteral<"ALL">]>>>;
486
+ rateLimit: z.ZodOptional<z.ZodObject<{
487
+ max: z.ZodNumber;
488
+ windowMs: z.ZodOptional<z.ZodNumber>;
489
+ }, z.core.$strict>>;
484
490
  }, z.core.$strict>>>>>;
485
491
  }, z.core.$strict>>>, z.ZodTransform<{
486
492
  enabled: boolean;
@@ -494,6 +500,10 @@ export declare const ConfigurationZod: z.ZodPipe<z.ZodObject<{
494
500
  operations: "ALL" | string[];
495
501
  remoteSchemas: "ALL" | string[];
496
502
  remoteREST: "ALL" | string[];
503
+ rateLimit?: {
504
+ max: number;
505
+ windowMs?: number | undefined;
506
+ } | undefined;
497
507
  tables: "ALL" | {
498
508
  [x: string]: {
499
509
  columns: "ALL" | string[];
@@ -520,6 +530,10 @@ export declare const ConfigurationZod: z.ZodPipe<z.ZodObject<{
520
530
  operations: "ALL" | string[];
521
531
  remoteSchemas: "ALL" | string[];
522
532
  remoteREST: "ALL" | string[];
533
+ rateLimit?: {
534
+ max: number;
535
+ windowMs?: number | undefined;
536
+ } | undefined;
523
537
  }>;
524
538
  }>>;
525
539
  remoteSchemas: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodObject<{
@@ -616,6 +630,7 @@ export declare const ConfigurationZod: z.ZodPipe<z.ZodObject<{
616
630
  max: number;
617
631
  min: number;
618
632
  idleTimeout: number;
633
+ acquireTimeout: number;
619
634
  };
620
635
  connectionTimeout: number;
621
636
  requestTimeout: number;
@@ -816,6 +831,7 @@ export declare const ConfigurationZod: z.ZodPipe<z.ZodObject<{
816
831
  updateAgeOnHas: boolean;
817
832
  ttlAutopurge: boolean;
818
833
  } | undefined;
834
+ timeout?: number | undefined;
819
835
  }>;
820
836
  remoteSchemas: {
821
837
  name: string;
@@ -907,6 +923,7 @@ export declare const ConfigurationZod: z.ZodPipe<z.ZodObject<{
907
923
  max: number;
908
924
  min: number;
909
925
  idleTimeout: number;
926
+ acquireTimeout: number;
910
927
  };
911
928
  connectionTimeout: number;
912
929
  requestTimeout: number;
@@ -928,6 +945,10 @@ export declare const ConfigurationZod: z.ZodPipe<z.ZodObject<{
928
945
  operations: "ALL" | string[];
929
946
  remoteSchemas: "ALL" | string[];
930
947
  remoteREST: "ALL" | string[];
948
+ rateLimit?: {
949
+ max: number;
950
+ windowMs?: number | undefined;
951
+ } | undefined;
931
952
  tables: "ALL" | {
932
953
  [x: string]: {
933
954
  columns: "ALL" | string[];
@@ -994,6 +1015,7 @@ export declare const ConfigurationZod: z.ZodPipe<z.ZodObject<{
994
1015
  max: number;
995
1016
  min: number;
996
1017
  idleTimeout: number;
1018
+ acquireTimeout: number;
997
1019
  };
998
1020
  connectionTimeout: number;
999
1021
  requestTimeout: number;
@@ -1067,6 +1089,7 @@ export declare const ConfigurationZod: z.ZodPipe<z.ZodObject<{
1067
1089
  max: number;
1068
1090
  min: number;
1069
1091
  idleTimeout: number;
1092
+ acquireTimeout: number;
1070
1093
  };
1071
1094
  connectionTimeout: number;
1072
1095
  requestTimeout: number;
@@ -1267,6 +1290,7 @@ export declare const ConfigurationZod: z.ZodPipe<z.ZodObject<{
1267
1290
  updateAgeOnHas: boolean;
1268
1291
  ttlAutopurge: boolean;
1269
1292
  } | undefined;
1293
+ timeout?: number | undefined;
1270
1294
  }>;
1271
1295
  auth: {
1272
1296
  enabled: boolean;
@@ -1280,6 +1304,10 @@ export declare const ConfigurationZod: z.ZodPipe<z.ZodObject<{
1280
1304
  operations: "ALL" | string[];
1281
1305
  remoteSchemas: "ALL" | string[];
1282
1306
  remoteREST: "ALL" | string[];
1307
+ rateLimit?: {
1308
+ max: number;
1309
+ windowMs?: number | undefined;
1310
+ } | undefined;
1283
1311
  tables: "ALL" | {
1284
1312
  [x: string]: {
1285
1313
  columns: "ALL" | string[];
@@ -1 +1 @@
1
- {"version":3,"file":"configuration.d.ts","sourceRoot":"","sources":["../../../../src/types/zod/configuration.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAYxB,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCxB,CAAC"}
1
+ {"version":3,"file":"configuration.d.ts","sourceRoot":"","sources":["../../../../src/types/zod/configuration.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAYxB,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCxB,CAAC"}
@@ -0,0 +1,65 @@
1
+ export type ConsumeResult = {
2
+ allowed: boolean;
3
+ retryAfterMs: number;
4
+ };
5
+ /**
6
+ * One method, everything per call: a role with its own limit shares the store
7
+ * with every other role rather than needing an instance of its own.
8
+ */
9
+ export interface RateLimitStore {
10
+ consume(key: string, capacity: number, refillPerMs: number, ttlMs: number): Promise<ConsumeResult>;
11
+ }
12
+ export type MemoryRateLimitStoreOptions = {
13
+ now?: () => number;
14
+ maxKeys?: number;
15
+ };
16
+ export declare const createMemoryRateLimitStore: ({ now, maxKeys, }?: MemoryRateLimitStoreOptions) => RateLimitStore;
17
+ export type RateLimitRedisClient = {
18
+ send(command: string, args: string[]): Promise<unknown>;
19
+ };
20
+ type RateLimitLogger = {
21
+ warn(obj: object, msg: string): void;
22
+ };
23
+ export type RedisRateLimitStoreOptions = {
24
+ now?: () => number;
25
+ log?: RateLimitLogger;
26
+ };
27
+ export declare const createRedisRateLimitStore: (client: RateLimitRedisClient, { now, log }?: RedisRateLimitStoreOptions) => RateLimitStore;
28
+ export type RateLimitSettings = {
29
+ max: number;
30
+ anonymousMax: number;
31
+ windowMs: number;
32
+ trustProxy: boolean;
33
+ };
34
+ type RoleRateLimit = {
35
+ rateLimit?: {
36
+ max: number;
37
+ windowMs?: number;
38
+ } | undefined;
39
+ };
40
+ export type RateLimiter = {
41
+ check(session: {
42
+ role?: string | undefined;
43
+ sub?: string | undefined;
44
+ } | null, address: string | undefined): Promise<ConsumeResult>;
45
+ };
46
+ export type CreateRateLimiterOptions = {
47
+ settings: RateLimitSettings;
48
+ anonymousRole: string;
49
+ permissions?: Record<string, RoleRateLimit | undefined>;
50
+ /** A factory is only called once a limit is configured, so a disabled
51
+ * limiter never constructs a store — or a Redis client. */
52
+ store?: RateLimitStore | (() => RateLimitStore);
53
+ };
54
+ export declare const resolveClientAddress: (req: Request, server: {
55
+ requestIP(req: Request): {
56
+ address: string;
57
+ } | null;
58
+ } | undefined, trustProxy: boolean) => string | undefined;
59
+ /**
60
+ * `undefined` when nothing is configured, so the caller can skip the wrapper
61
+ * entirely and the shipped default costs nothing per request.
62
+ */
63
+ export declare const createRateLimiter: ({ settings, anonymousRole, permissions, store, }: CreateRateLimiterOptions) => RateLimiter | undefined;
64
+ export {};
65
+ //# sourceMappingURL=rateLimit.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rateLimit.d.ts","sourceRoot":"","sources":["../../../src/utils/rateLimit.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,aAAa,GAAG;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,YAAY,EAAE,MAAM,CAAA;CAAE,CAAC;AAEvE;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC7B,OAAO,CACL,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,aAAa,CAAC,CAAC;CAC3B;AAID,MAAM,MAAM,2BAA2B,GAAG;IACxC,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAIF,eAAO,MAAM,0BAA0B,uBAGpC,2BAA2B,KAAQ,cAuBrC,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IACjC,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CACzD,CAAC;AAEF,KAAK,eAAe,GAAG;IAAE,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,CAAC;AAEhE,MAAM,MAAM,0BAA0B,GAAG;IACvC,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;IACnB,GAAG,CAAC,EAAE,eAAe,CAAC;CACvB,CAAC;AAiBF,eAAO,MAAM,yBAAyB,WAC5B,oBAAoB,iBACoB,0BAA0B,KACzE,cAoCF,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,GAAG,EAAE,MAAM,CAAC;IACZ,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,OAAO,CAAC;CACrB,CAAC;AAEF,KAAK,aAAa,GAAG;IAAE,SAAS,CAAC,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,SAAS,CAAA;CAAE,CAAC;AAEpF,MAAM,MAAM,WAAW,GAAG;IACxB,KAAK,CACH,OAAO,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;KAAE,GAAG,IAAI,EACvE,OAAO,EAAE,MAAM,GAAG,SAAS,GAC1B,OAAO,CAAC,aAAa,CAAC,CAAC;CAC3B,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAAG;IACrC,QAAQ,EAAE,iBAAiB,CAAC;IAC5B,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,GAAG,SAAS,CAAC,CAAC;IACxD;+DAC2D;IAC3D,KAAK,CAAC,EAAE,cAAc,GAAG,CAAC,MAAM,cAAc,CAAC,CAAC;CACjD,CAAC;AAMF,eAAO,MAAM,oBAAoB,QAC1B,OAAO,UACJ;IAAE,SAAS,CAAC,GAAG,EAAE,OAAO,GAAG;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAA;CAAE,GAAG,SAAS,cAC/D,OAAO,KAClB,MAAM,GAAG,SAOX,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,iBAAiB,qDAK3B,wBAAwB,KAAG,WAAW,GAAG,SAkC3C,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=rateLimit.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rateLimit.test.d.ts","sourceRoot":"","sources":["../../../src/utils/rateLimit.test.ts"],"names":[],"mappings":""}
@@ -10,9 +10,15 @@ export declare class S400 extends ClientResponse {
10
10
  export declare class S401 extends ClientResponse {
11
11
  constructor(body?: object | null, init?: ResponseInit);
12
12
  }
13
+ export declare class S403 extends ClientResponse {
14
+ constructor(body?: object | null, init?: ResponseInit);
15
+ }
13
16
  export declare class S404 extends ClientResponse {
14
17
  constructor(body?: object | null, init?: ResponseInit);
15
18
  }
19
+ export declare class S429 extends ClientResponse {
20
+ constructor(retryAfterMs: number);
21
+ }
16
22
  export declare class S500 extends ClientResponse {
17
23
  constructor(body?: object | null, init?: ResponseInit);
18
24
  }
@@ -1 +1 @@
1
- {"version":3,"file":"responses.d.ts","sourceRoot":"","sources":["../../../src/utils/responses.ts"],"names":[],"mappings":"AAAA,qBAAa,cAAe,SAAQ,QAAQ;IAC1C,YAAY,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,EAAE,IAAI,CAAC,EAAE,YAAY,EASpD;CACF;AAED,qBAAa,IAAK,SAAQ,cAAc;IACtC,YAAY,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,EAAE,IAAI,CAAC,EAAE,YAAY,EAEpD;CACF;AAED,qBAAa,IAAK,SAAQ,cAAc;IACtC,YAAY,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,EAAE,IAAI,CAAC,EAAE,YAAY,EAEpD;CACF;AAED,qBAAa,IAAK,SAAQ,cAAc;IACtC,YAAY,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,EAAE,IAAI,CAAC,EAAE,YAAY,EAEpD;CACF;AAED,qBAAa,IAAK,SAAQ,cAAc;IACtC,YAAY,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,EAAE,IAAI,CAAC,EAAE,YAAY,EAEpD;CACF;AAED,qBAAa,IAAK,SAAQ,cAAc;IACtC,YAAY,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,EAAE,IAAI,CAAC,EAAE,YAAY,EAEpD;CACF"}
1
+ {"version":3,"file":"responses.d.ts","sourceRoot":"","sources":["../../../src/utils/responses.ts"],"names":[],"mappings":"AAAA,qBAAa,cAAe,SAAQ,QAAQ;IAC1C,YAAY,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,EAAE,IAAI,CAAC,EAAE,YAAY,EASpD;CACF;AAED,qBAAa,IAAK,SAAQ,cAAc;IACtC,YAAY,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,EAAE,IAAI,CAAC,EAAE,YAAY,EAEpD;CACF;AAED,qBAAa,IAAK,SAAQ,cAAc;IACtC,YAAY,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,EAAE,IAAI,CAAC,EAAE,YAAY,EAEpD;CACF;AAED,qBAAa,IAAK,SAAQ,cAAc;IACtC,YAAY,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,EAAE,IAAI,CAAC,EAAE,YAAY,EAEpD;CACF;AAED,qBAAa,IAAK,SAAQ,cAAc;IACtC,YAAY,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,EAAE,IAAI,CAAC,EAAE,YAAY,EAEpD;CACF;AAED,qBAAa,IAAK,SAAQ,cAAc;IACtC,YAAY,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,EAAE,IAAI,CAAC,EAAE,YAAY,EAEpD;CACF;AAED,qBAAa,IAAK,SAAQ,cAAc;IACtC,YAAY,YAAY,EAAE,MAAM,EAM/B;CACF;AAED,qBAAa,IAAK,SAAQ,cAAc;IACtC,YAAY,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,EAAE,IAAI,CAAC,EAAE,YAAY,EAEpD;CACF"}
@@ -12,6 +12,8 @@ export type SessionContext = {
12
12
  iat?: number;
13
13
  exp?: number;
14
14
  nbf?: number;
15
+ /** Set when the admin secret, not a token, produced this session. */
16
+ authMethod?: "admin_secret";
15
17
  [key: string]: unknown;
16
18
  };
17
19
  /**