@burdenoff/be-sdk 2026.510.79

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 (220) hide show
  1. package/README.md +173 -0
  2. package/configs/eslint/index.js +492 -0
  3. package/configs/tsconfig/tsconfig.json +53 -0
  4. package/dist/EventQueueFactory-6NMSGECR.js +8 -0
  5. package/dist/EventQueueFactory-6NMSGECR.js.map +1 -0
  6. package/dist/auth/index.d.ts +66 -0
  7. package/dist/auth/index.js +8 -0
  8. package/dist/auth/index.js.map +1 -0
  9. package/dist/cache/index.d.ts +2 -0
  10. package/dist/cache/index.js +6 -0
  11. package/dist/cache/index.js.map +1 -0
  12. package/dist/captcha/index.d.ts +1 -0
  13. package/dist/captcha/index.js +4 -0
  14. package/dist/captcha/index.js.map +1 -0
  15. package/dist/chunk-2HANKZZM.js +245 -0
  16. package/dist/chunk-2HANKZZM.js.map +1 -0
  17. package/dist/chunk-2SD5L2F2.js +816 -0
  18. package/dist/chunk-2SD5L2F2.js.map +1 -0
  19. package/dist/chunk-3O2RQOPV.js +1068 -0
  20. package/dist/chunk-3O2RQOPV.js.map +1 -0
  21. package/dist/chunk-4B43DZIS.js +560 -0
  22. package/dist/chunk-4B43DZIS.js.map +1 -0
  23. package/dist/chunk-4XAEES25.js +2444 -0
  24. package/dist/chunk-4XAEES25.js.map +1 -0
  25. package/dist/chunk-4XGGWW36.js +1405 -0
  26. package/dist/chunk-4XGGWW36.js.map +1 -0
  27. package/dist/chunk-5LXDPGDH.js +245 -0
  28. package/dist/chunk-5LXDPGDH.js.map +1 -0
  29. package/dist/chunk-AI7L22ZJ.js +472 -0
  30. package/dist/chunk-AI7L22ZJ.js.map +1 -0
  31. package/dist/chunk-CBZNP6RF.js +286 -0
  32. package/dist/chunk-CBZNP6RF.js.map +1 -0
  33. package/dist/chunk-ELLX3K54.js +613 -0
  34. package/dist/chunk-ELLX3K54.js.map +1 -0
  35. package/dist/chunk-F5XEAGHQ.js +1875 -0
  36. package/dist/chunk-F5XEAGHQ.js.map +1 -0
  37. package/dist/chunk-FNZEQOJY.js +628 -0
  38. package/dist/chunk-FNZEQOJY.js.map +1 -0
  39. package/dist/chunk-GTEMQXCA.js +516 -0
  40. package/dist/chunk-GTEMQXCA.js.map +1 -0
  41. package/dist/chunk-HIWTWIGQ.js +226 -0
  42. package/dist/chunk-HIWTWIGQ.js.map +1 -0
  43. package/dist/chunk-IYE2NTRX.js +764 -0
  44. package/dist/chunk-IYE2NTRX.js.map +1 -0
  45. package/dist/chunk-J26YGR2U.js +1484 -0
  46. package/dist/chunk-J26YGR2U.js.map +1 -0
  47. package/dist/chunk-JG2FTZPI.js +509 -0
  48. package/dist/chunk-JG2FTZPI.js.map +1 -0
  49. package/dist/chunk-JVBTNSPG.js +1551 -0
  50. package/dist/chunk-JVBTNSPG.js.map +1 -0
  51. package/dist/chunk-L7ZMN2FJ.js +12 -0
  52. package/dist/chunk-L7ZMN2FJ.js.map +1 -0
  53. package/dist/chunk-M5IMU3US.js +473 -0
  54. package/dist/chunk-M5IMU3US.js.map +1 -0
  55. package/dist/chunk-MLW2HPS5.js +1267 -0
  56. package/dist/chunk-MLW2HPS5.js.map +1 -0
  57. package/dist/chunk-MNCGUYLJ.js +269 -0
  58. package/dist/chunk-MNCGUYLJ.js.map +1 -0
  59. package/dist/chunk-MOCUBSTW.js +373 -0
  60. package/dist/chunk-MOCUBSTW.js.map +1 -0
  61. package/dist/chunk-NGMEI42S.js +103 -0
  62. package/dist/chunk-NGMEI42S.js.map +1 -0
  63. package/dist/chunk-NUB5GQTU.js +270 -0
  64. package/dist/chunk-NUB5GQTU.js.map +1 -0
  65. package/dist/chunk-OVSYMNCI.js +145 -0
  66. package/dist/chunk-OVSYMNCI.js.map +1 -0
  67. package/dist/chunk-QLVKMWFA.js +94 -0
  68. package/dist/chunk-QLVKMWFA.js.map +1 -0
  69. package/dist/chunk-SAG6ZYWQ.js +89 -0
  70. package/dist/chunk-SAG6ZYWQ.js.map +1 -0
  71. package/dist/chunk-SAK2JCA7.js +198 -0
  72. package/dist/chunk-SAK2JCA7.js.map +1 -0
  73. package/dist/chunk-SBS4S2PJ.js +100 -0
  74. package/dist/chunk-SBS4S2PJ.js.map +1 -0
  75. package/dist/chunk-SNEOLWXT.js +148 -0
  76. package/dist/chunk-SNEOLWXT.js.map +1 -0
  77. package/dist/chunk-TKBD2ONF.js +564 -0
  78. package/dist/chunk-TKBD2ONF.js.map +1 -0
  79. package/dist/chunk-UBXFIIAW.js +127 -0
  80. package/dist/chunk-UBXFIIAW.js.map +1 -0
  81. package/dist/chunk-VI4VSNTI.js +57 -0
  82. package/dist/chunk-VI4VSNTI.js.map +1 -0
  83. package/dist/chunk-VWCN5PMD.js +268 -0
  84. package/dist/chunk-VWCN5PMD.js.map +1 -0
  85. package/dist/chunk-XC2YD6CF.js +913 -0
  86. package/dist/chunk-XC2YD6CF.js.map +1 -0
  87. package/dist/chunk-XE4OXN2W.js +10 -0
  88. package/dist/chunk-XE4OXN2W.js.map +1 -0
  89. package/dist/chunk-YMZEUTD2.js +110 -0
  90. package/dist/chunk-YMZEUTD2.js.map +1 -0
  91. package/dist/chunk-Z4IRLBWO.js +758 -0
  92. package/dist/chunk-Z4IRLBWO.js.map +1 -0
  93. package/dist/client/internal-client.d.ts +7 -0
  94. package/dist/client/internal-client.js +5 -0
  95. package/dist/client/internal-client.js.map +1 -0
  96. package/dist/client-CSjIrYKS.d.ts +77 -0
  97. package/dist/config-UKE2E3BW.js +4 -0
  98. package/dist/config-UKE2E3BW.js.map +1 -0
  99. package/dist/crypto/index.d.ts +1 -0
  100. package/dist/crypto/index.js +4 -0
  101. package/dist/crypto/index.js.map +1 -0
  102. package/dist/database/index.d.ts +117 -0
  103. package/dist/database/index.js +7 -0
  104. package/dist/database/index.js.map +1 -0
  105. package/dist/dataloader/index.d.ts +1 -0
  106. package/dist/dataloader/index.js +4 -0
  107. package/dist/dataloader/index.js.map +1 -0
  108. package/dist/esm-K6H7EIWK.js +1450 -0
  109. package/dist/esm-K6H7EIWK.js.map +1 -0
  110. package/dist/event-queue/index.d.ts +6 -0
  111. package/dist/event-queue/index.js +10 -0
  112. package/dist/event-queue/index.js.map +1 -0
  113. package/dist/export/index.d.ts +2 -0
  114. package/dist/export/index.js +9 -0
  115. package/dist/export/index.js.map +1 -0
  116. package/dist/feature-flags/index.d.ts +1 -0
  117. package/dist/feature-flags/index.js +4 -0
  118. package/dist/feature-flags/index.js.map +1 -0
  119. package/dist/gateway/index.d.ts +4 -0
  120. package/dist/gateway/index.js +8 -0
  121. package/dist/gateway/index.js.map +1 -0
  122. package/dist/gateway/security/index.d.ts +2 -0
  123. package/dist/gateway/security/index.js +5 -0
  124. package/dist/gateway/security/index.js.map +1 -0
  125. package/dist/graph/index.d.ts +9 -0
  126. package/dist/graph/index.js +13 -0
  127. package/dist/graph/index.js.map +1 -0
  128. package/dist/graph-emitter-Bk0FqD53.d.ts +47 -0
  129. package/dist/graphql/index.d.ts +2 -0
  130. package/dist/graphql/index.js +7 -0
  131. package/dist/graphql/index.js.map +1 -0
  132. package/dist/graphql/services/index.d.ts +24 -0
  133. package/dist/graphql/services/index.js +5 -0
  134. package/dist/graphql/services/index.js.map +1 -0
  135. package/dist/graphql-BAVrUgBF.d.ts +22 -0
  136. package/dist/i18n/index.d.ts +2 -0
  137. package/dist/i18n/index.js +5 -0
  138. package/dist/i18n/index.js.map +1 -0
  139. package/dist/i18n-DA6IPnYy.d.ts +101 -0
  140. package/dist/index-4gKQKZ2B.d.ts +71 -0
  141. package/dist/index-B18rrFru.d.ts +42 -0
  142. package/dist/index-B70b5mYS.d.ts +33 -0
  143. package/dist/index-BMq3lFjj.d.ts +247 -0
  144. package/dist/index-BODgvRtL.d.ts +316 -0
  145. package/dist/index-BS2idbnr.d.ts +874 -0
  146. package/dist/index-BV3G48cH.d.ts +124 -0
  147. package/dist/index-CHbVw5M7.d.ts +73 -0
  148. package/dist/index-Cq_xNjcv.d.ts +602 -0
  149. package/dist/index-CrQgidpx.d.ts +77 -0
  150. package/dist/index-CyVEg86m.d.ts +309 -0
  151. package/dist/index-DOcBnmMe.d.ts +166 -0
  152. package/dist/index-DSOpj8DI.d.ts +17 -0
  153. package/dist/index-DW9q22GH.d.ts +75 -0
  154. package/dist/index-DlFDFyWD.d.ts +55 -0
  155. package/dist/index-DoK0bjhH.d.ts +607 -0
  156. package/dist/index-Dtf6FBaD.d.ts +199 -0
  157. package/dist/index-KVWGHMbS.d.ts +415 -0
  158. package/dist/index-PaojfSdd.d.ts +71 -0
  159. package/dist/index-RU_M5c74.d.ts +163 -0
  160. package/dist/index-UhkH2eaB.d.ts +192 -0
  161. package/dist/index-e_18DzAg.d.ts +18 -0
  162. package/dist/index-jOuh_TKn.d.ts +59 -0
  163. package/dist/index.d.ts +584 -0
  164. package/dist/index.js +2626 -0
  165. package/dist/index.js.map +1 -0
  166. package/dist/init/index.d.ts +2 -0
  167. package/dist/init/index.js +12 -0
  168. package/dist/init/index.js.map +1 -0
  169. package/dist/instrumentation/index.d.ts +3 -0
  170. package/dist/instrumentation/index.js +5 -0
  171. package/dist/instrumentation/index.js.map +1 -0
  172. package/dist/layer/index.d.ts +2 -0
  173. package/dist/layer/index.js +6 -0
  174. package/dist/layer/index.js.map +1 -0
  175. package/dist/layer-DDip18KY.d.ts +67 -0
  176. package/dist/logger/index.d.ts +2 -0
  177. package/dist/logger/index.js +4 -0
  178. package/dist/logger/index.js.map +1 -0
  179. package/dist/middleware/index.d.ts +3 -0
  180. package/dist/middleware/index.js +5 -0
  181. package/dist/middleware/index.js.map +1 -0
  182. package/dist/notifications/index.d.ts +4 -0
  183. package/dist/notifications/index.js +7 -0
  184. package/dist/notifications/index.js.map +1 -0
  185. package/dist/observability/index.d.ts +3 -0
  186. package/dist/observability/index.js +5 -0
  187. package/dist/observability/index.js.map +1 -0
  188. package/dist/pino-logger-RYLGXPHZ.js +5 -0
  189. package/dist/pino-logger-RYLGXPHZ.js.map +1 -0
  190. package/dist/prisma/generator/index.d.ts +1 -0
  191. package/dist/prisma/generator/index.js +228 -0
  192. package/dist/prisma/generator/index.js.map +1 -0
  193. package/dist/prisma/index.d.ts +5 -0
  194. package/dist/prisma/index.js +12 -0
  195. package/dist/prisma/index.js.map +1 -0
  196. package/dist/prisma-extension-krXnYnrN.d.ts +30 -0
  197. package/dist/rbac/index.d.ts +116 -0
  198. package/dist/rbac/index.js +7 -0
  199. package/dist/rbac/index.js.map +1 -0
  200. package/dist/sdk-THO3IWEE.js +136 -0
  201. package/dist/sdk-THO3IWEE.js.map +1 -0
  202. package/dist/server/index.d.ts +359 -0
  203. package/dist/server/index.js +884 -0
  204. package/dist/server/index.js.map +1 -0
  205. package/dist/telemetry/index.d.ts +83 -0
  206. package/dist/telemetry/index.js +209 -0
  207. package/dist/telemetry/index.js.map +1 -0
  208. package/dist/temporal/index.d.ts +148 -0
  209. package/dist/temporal/index.js +6 -0
  210. package/dist/temporal/index.js.map +1 -0
  211. package/dist/tracker/index.d.ts +5 -0
  212. package/dist/tracker/index.js +9 -0
  213. package/dist/tracker/index.js.map +1 -0
  214. package/dist/types-Bo2wkjSP.d.ts +35 -0
  215. package/dist/utils/index.d.ts +1 -0
  216. package/dist/utils/index.js +4 -0
  217. package/dist/utils/index.js.map +1 -0
  218. package/dist/workspace-guard-LHBNK4TG.js +5 -0
  219. package/dist/workspace-guard-LHBNK4TG.js.map +1 -0
  220. package/package.json +241 -0
@@ -0,0 +1,163 @@
1
+ import { f as GatewayRequestHeaders, S as ServiceLayer, C as CircuitBreakerConfig, g as GatewayRetryConfig } from './layer-DDip18KY.js';
2
+ import { i as index$1 } from './index-UhkH2eaB.js';
3
+
4
+ interface GatewayClientConfig {
5
+ layer: ServiceLayer;
6
+ serviceName: string;
7
+ serviceIdentity?: string;
8
+ internalGatewayUrl?: string;
9
+ crossLayerGatewayUrl?: string;
10
+ timeout?: number;
11
+ circuitBreaker?: Partial<CircuitBreakerConfig>;
12
+ retry?: Partial<GatewayRetryConfig>;
13
+ enableLogging?: boolean;
14
+ defaultHeaders?: GatewayRequestHeaders;
15
+ }
16
+ declare enum CircuitState {
17
+ CLOSED = "CLOSED",
18
+ OPEN = "OPEN",
19
+ HALF_OPEN = "HALF_OPEN"
20
+ }
21
+ interface ICircuitBreaker {
22
+ getState(): CircuitState;
23
+ recordSuccess(): void;
24
+ recordFailure(): void;
25
+ allowRequest(): boolean;
26
+ forceOpen(): void;
27
+ forceClose(): void;
28
+ getStats(): CircuitBreakerStats;
29
+ }
30
+ interface CircuitBreakerStats {
31
+ state: CircuitState;
32
+ failures: number;
33
+ successes: number;
34
+ consecutiveFailures: number;
35
+ lastFailureTime: number | null;
36
+ lastSuccessTime: number | null;
37
+ openedAt: number | null;
38
+ }
39
+ interface GraphQLRequestOptions {
40
+ query: string;
41
+ variables?: Record<string, unknown>;
42
+ operationName?: string;
43
+ headers?: GatewayRequestHeaders;
44
+ timeout?: number;
45
+ skipCircuitBreaker?: boolean;
46
+ skipRetry?: boolean;
47
+ }
48
+ interface GraphQLResponse<T = unknown> {
49
+ data?: T;
50
+ errors?: GraphQLError[];
51
+ }
52
+ interface GraphQLError {
53
+ message: string;
54
+ locations?: Array<{
55
+ line: number;
56
+ column: number;
57
+ }>;
58
+ path?: Array<string | number>;
59
+ extensions?: Record<string, unknown>;
60
+ }
61
+ interface IGatewayClient {
62
+ internalQuery<T = unknown>(options: GraphQLRequestOptions): Promise<GraphQLResponse<T>>;
63
+ crossLayerQuery<T = unknown>(options: GraphQLRequestOptions): Promise<GraphQLResponse<T>>;
64
+ query<T = unknown>(gatewayUrl: string, options: GraphQLRequestOptions): Promise<GraphQLResponse<T>>;
65
+ getInternalCircuitBreaker(): ICircuitBreaker;
66
+ getCrossLayerCircuitBreaker(): ICircuitBreaker;
67
+ getHealthStatus(): GatewayClientHealth;
68
+ updateDefaultHeaders(headers: Partial<GatewayRequestHeaders>): void;
69
+ }
70
+ interface GatewayClientHealth {
71
+ internal: {
72
+ url: string;
73
+ circuitState: CircuitState;
74
+ stats: CircuitBreakerStats;
75
+ };
76
+ crossLayer: {
77
+ url: string;
78
+ circuitState: CircuitState;
79
+ stats: CircuitBreakerStats;
80
+ };
81
+ }
82
+ declare enum GatewayErrorType {
83
+ NETWORK_ERROR = "NETWORK_ERROR",
84
+ TIMEOUT_ERROR = "TIMEOUT_ERROR",
85
+ CIRCUIT_OPEN = "CIRCUIT_OPEN",
86
+ GRAPHQL_ERROR = "GRAPHQL_ERROR",
87
+ UNKNOWN_ERROR = "UNKNOWN_ERROR"
88
+ }
89
+ declare class GatewayError extends Error {
90
+ type: GatewayErrorType;
91
+ gatewayUrl: string;
92
+ statusCode?: number;
93
+ graphqlErrors?: GraphQLError[];
94
+ cause?: Error;
95
+ constructor(message: string, type: GatewayErrorType, gatewayUrl: string, options?: {
96
+ statusCode?: number;
97
+ graphqlErrors?: GraphQLError[];
98
+ cause?: Error;
99
+ });
100
+ }
101
+ interface RequestContext {
102
+ requestId: string;
103
+ actorId?: string;
104
+ workspaceId?: string;
105
+ startTime: number;
106
+ callType: 'internal' | 'cross-layer' | 'direct';
107
+ }
108
+
109
+ declare class GatewayClient implements IGatewayClient {
110
+ private config;
111
+ private layerManager;
112
+ private internalCircuitBreaker;
113
+ private crossLayerCircuitBreaker;
114
+ private retryConfig;
115
+ private defaultHeaders;
116
+ constructor(config: GatewayClientConfig);
117
+ private getInternalUrl;
118
+ private getCrossLayerUrl;
119
+ internalQuery<T = unknown>(options: GraphQLRequestOptions): Promise<GraphQLResponse<T>>;
120
+ crossLayerQuery<T = unknown>(options: GraphQLRequestOptions): Promise<GraphQLResponse<T>>;
121
+ query<T = unknown>(gatewayUrl: string, options: GraphQLRequestOptions): Promise<GraphQLResponse<T>>;
122
+ getInternalCircuitBreaker(): ICircuitBreaker;
123
+ getCrossLayerCircuitBreaker(): ICircuitBreaker;
124
+ getHealthStatus(): GatewayClientHealth;
125
+ updateDefaultHeaders(headers: Partial<GatewayRequestHeaders>): void;
126
+ private createRequestContext;
127
+ private shouldRetryError;
128
+ private calculateRetryDelay;
129
+ private logRetryAttempt;
130
+ private executeWithRetry;
131
+ private buildRequestHeaders;
132
+ private handleGraphQLErrors;
133
+ private handleFetchError;
134
+ private executeRequest;
135
+ private sleep;
136
+ }
137
+ declare function createGatewayClient(config: GatewayClientConfig): GatewayClient;
138
+ declare function createGatewayClientFromEnv(): GatewayClient;
139
+
140
+ type index_CircuitBreakerStats = CircuitBreakerStats;
141
+ type index_CircuitState = CircuitState;
142
+ declare const index_CircuitState: typeof CircuitState;
143
+ type index_GatewayClient = GatewayClient;
144
+ declare const index_GatewayClient: typeof GatewayClient;
145
+ type index_GatewayClientConfig = GatewayClientConfig;
146
+ type index_GatewayClientHealth = GatewayClientHealth;
147
+ type index_GatewayError = GatewayError;
148
+ declare const index_GatewayError: typeof GatewayError;
149
+ type index_GatewayErrorType = GatewayErrorType;
150
+ declare const index_GatewayErrorType: typeof GatewayErrorType;
151
+ type index_GraphQLError = GraphQLError;
152
+ type index_GraphQLRequestOptions = GraphQLRequestOptions;
153
+ type index_GraphQLResponse<T = unknown> = GraphQLResponse<T>;
154
+ type index_ICircuitBreaker = ICircuitBreaker;
155
+ type index_IGatewayClient = IGatewayClient;
156
+ type index_RequestContext = RequestContext;
157
+ declare const index_createGatewayClient: typeof createGatewayClient;
158
+ declare const index_createGatewayClientFromEnv: typeof createGatewayClientFromEnv;
159
+ declare namespace index {
160
+ export { type index_CircuitBreakerStats as CircuitBreakerStats, index_CircuitState as CircuitState, index_GatewayClient as GatewayClient, type index_GatewayClientConfig as GatewayClientConfig, type index_GatewayClientHealth as GatewayClientHealth, index_GatewayError as GatewayError, index_GatewayErrorType as GatewayErrorType, type index_GraphQLError as GraphQLError, type index_GraphQLRequestOptions as GraphQLRequestOptions, type index_GraphQLResponse as GraphQLResponse, type index_ICircuitBreaker as ICircuitBreaker, type index_IGatewayClient as IGatewayClient, type index_RequestContext as RequestContext, index$1 as Security, index_createGatewayClient as createGatewayClient, index_createGatewayClientFromEnv as createGatewayClientFromEnv };
161
+ }
162
+
163
+ export { type CircuitBreakerStats as C, GatewayClient as G, type ICircuitBreaker as I, type RequestContext as R, CircuitState as a, type GatewayClientConfig as b, type GatewayClientHealth as c, GatewayError as d, GatewayErrorType as e, type GraphQLError as f, type GraphQLRequestOptions as g, type GraphQLResponse as h, index as i, type IGatewayClient as j, createGatewayClient as k, createGatewayClientFromEnv as l };
@@ -0,0 +1,192 @@
1
+ import { Plugin } from 'graphql-yoga';
2
+
3
+ type Tier = 'public' | 'user' | 'app' | 'service' | 'super_admin';
4
+ interface TierLimits {
5
+ points: number;
6
+ duration: number;
7
+ burst: number;
8
+ }
9
+ interface ActorContext {
10
+ tier: Tier;
11
+ identity: string;
12
+ headers: {
13
+ actorId?: string;
14
+ actorType?: string;
15
+ actorRole?: string;
16
+ workspaceId?: string;
17
+ tenantId?: string;
18
+ orgId?: string;
19
+ appId?: string;
20
+ ip?: string;
21
+ };
22
+ }
23
+ type CostMap = Record<string, number>;
24
+ interface RateLimitResult {
25
+ allowed: boolean;
26
+ remaining: number;
27
+ resetAtMs: number;
28
+ limit: number;
29
+ }
30
+ interface ArmorConfig {
31
+ maxAliases: number;
32
+ maxTokens: number;
33
+ maxDirectives: number;
34
+ characterLimit: number;
35
+ costLimit: number;
36
+ observe: boolean;
37
+ }
38
+ interface QueryComplexityConfig {
39
+ enabled: boolean;
40
+ maxCost: number;
41
+ costMap: CostMap;
42
+ observe: boolean;
43
+ }
44
+ interface RateLimitConfig {
45
+ tiers: Record<Tier, TierLimits>;
46
+ keyPrefix: string;
47
+ observeOnly: boolean;
48
+ failClosed: boolean;
49
+ }
50
+ interface OperationTimeoutConfig {
51
+ timeoutMs: number;
52
+ }
53
+ interface OtelConfig {
54
+ enabled: boolean;
55
+ serviceName: string;
56
+ endpoint: string;
57
+ environment: string;
58
+ version?: string;
59
+ }
60
+ interface GatewaySecurityOptions {
61
+ gatewayName: string;
62
+ enabled: boolean;
63
+ armor: ArmorConfig;
64
+ queryComplexity: QueryComplexityConfig;
65
+ rateLimit: RateLimitConfig;
66
+ operationTimeout: OperationTimeoutConfig;
67
+ otel: OtelConfig;
68
+ }
69
+ interface SecurityValkeyClient {
70
+ get(key: string): Promise<string | null>;
71
+ set(key: string, value: string, options?: {
72
+ EX?: number;
73
+ }): Promise<string | null>;
74
+ incrBy(key: string, amount: number): Promise<number>;
75
+ expire(key: string, seconds: number): Promise<boolean>;
76
+ ttl(key: string): Promise<number>;
77
+ ping(): Promise<string>;
78
+ }
79
+
80
+ type HeaderGetter = (name: string) => string | null | undefined;
81
+ declare const resolveActor: (getHeader: HeaderGetter) => ActorContext;
82
+
83
+ declare const DEFAULT_COST_MAP: CostMap;
84
+ declare const mergeCostMap: (base: CostMap, override: CostMap) => CostMap;
85
+
86
+ declare const DEFAULT_ARMOR_CONFIG: ArmorConfig;
87
+ declare const resolveSecurityOptionsFromEnv: (gatewayName: string, costMapOverride?: CostMap) => GatewaySecurityOptions;
88
+
89
+ declare const DEFAULT_TIERS: Record<Tier, TierLimits>;
90
+ declare const resolveTiersFromEnv: (base?: Record<Tier, TierLimits>) => Record<Tier, TierLimits>;
91
+
92
+ declare class MemoryValkey implements SecurityValkeyClient {
93
+ private store;
94
+ private prune;
95
+ get(key: string): Promise<string | null>;
96
+ set(key: string, value: string, options?: {
97
+ EX?: number;
98
+ }): Promise<string | null>;
99
+ incrBy(key: string, amount: number): Promise<number>;
100
+ expire(key: string, seconds: number): Promise<boolean>;
101
+ ttl(key: string): Promise<number>;
102
+ ping(): Promise<string>;
103
+ }
104
+ declare const initializeSecurityValkey: (gatewayName: string) => Promise<SecurityValkeyClient>;
105
+ declare const getSecurityValkey: () => SecurityValkeyClient;
106
+ declare const __setSecurityValkeyForTest: (client: SecurityValkeyClient | null) => void;
107
+
108
+ type CounterLike = {
109
+ inc(labels?: Record<string, string>, value?: number): void;
110
+ };
111
+ interface Metrics {
112
+ rateLimit: CounterLike;
113
+ complexityRejected: CounterLike;
114
+ armorRejected: CounterLike;
115
+ valkeyFailover: CounterLike;
116
+ operationTimeout: CounterLike;
117
+ }
118
+ declare const initializeMetrics: () => Promise<Metrics>;
119
+ declare const getMetrics: () => Metrics;
120
+ declare const scrapeMetrics: () => Promise<{
121
+ body: string;
122
+ contentType: string;
123
+ } | null>;
124
+ declare const __resetMetricsForTest: () => void;
125
+
126
+ declare const createArmorPlugins: (cfg: ArmorConfig) => Promise<Plugin[]>;
127
+
128
+ interface OperationTimeoutPluginDeps {
129
+ config: OperationTimeoutConfig;
130
+ }
131
+ declare const createOperationTimeoutPlugin: (deps: OperationTimeoutPluginDeps) => Plugin;
132
+
133
+ declare const initializeOtel: (cfg: OtelConfig) => Promise<void>;
134
+ declare const shutdownOtel: () => Promise<void>;
135
+ declare const createOtelPlugin: (cfg: OtelConfig) => Promise<Plugin>;
136
+
137
+ interface QueryComplexityPluginDeps {
138
+ config: QueryComplexityConfig;
139
+ }
140
+ declare const createQueryComplexityPlugin: (deps: QueryComplexityPluginDeps) => Plugin;
141
+
142
+ interface RateLimitPluginDeps {
143
+ valkey: SecurityValkeyClient;
144
+ config: RateLimitConfig;
145
+ }
146
+ declare const checkRateLimit: (deps: RateLimitPluginDeps, actor: ActorContext) => Promise<RateLimitResult>;
147
+ declare const createRateLimitPlugin: (deps: RateLimitPluginDeps) => Plugin;
148
+
149
+ declare const buildSecurityPlugins: (options: GatewaySecurityOptions) => Promise<Plugin[]>;
150
+
151
+ type index_ActorContext = ActorContext;
152
+ type index_ArmorConfig = ArmorConfig;
153
+ type index_CostMap = CostMap;
154
+ declare const index_DEFAULT_ARMOR_CONFIG: typeof DEFAULT_ARMOR_CONFIG;
155
+ declare const index_DEFAULT_COST_MAP: typeof DEFAULT_COST_MAP;
156
+ declare const index_DEFAULT_TIERS: typeof DEFAULT_TIERS;
157
+ type index_GatewaySecurityOptions = GatewaySecurityOptions;
158
+ type index_MemoryValkey = MemoryValkey;
159
+ declare const index_MemoryValkey: typeof MemoryValkey;
160
+ type index_OperationTimeoutConfig = OperationTimeoutConfig;
161
+ type index_OtelConfig = OtelConfig;
162
+ type index_QueryComplexityConfig = QueryComplexityConfig;
163
+ type index_RateLimitConfig = RateLimitConfig;
164
+ type index_RateLimitResult = RateLimitResult;
165
+ type index_SecurityValkeyClient = SecurityValkeyClient;
166
+ type index_Tier = Tier;
167
+ type index_TierLimits = TierLimits;
168
+ declare const index___resetMetricsForTest: typeof __resetMetricsForTest;
169
+ declare const index___setSecurityValkeyForTest: typeof __setSecurityValkeyForTest;
170
+ declare const index_buildSecurityPlugins: typeof buildSecurityPlugins;
171
+ declare const index_checkRateLimit: typeof checkRateLimit;
172
+ declare const index_createArmorPlugins: typeof createArmorPlugins;
173
+ declare const index_createOperationTimeoutPlugin: typeof createOperationTimeoutPlugin;
174
+ declare const index_createOtelPlugin: typeof createOtelPlugin;
175
+ declare const index_createQueryComplexityPlugin: typeof createQueryComplexityPlugin;
176
+ declare const index_createRateLimitPlugin: typeof createRateLimitPlugin;
177
+ declare const index_getMetrics: typeof getMetrics;
178
+ declare const index_getSecurityValkey: typeof getSecurityValkey;
179
+ declare const index_initializeMetrics: typeof initializeMetrics;
180
+ declare const index_initializeOtel: typeof initializeOtel;
181
+ declare const index_initializeSecurityValkey: typeof initializeSecurityValkey;
182
+ declare const index_mergeCostMap: typeof mergeCostMap;
183
+ declare const index_resolveActor: typeof resolveActor;
184
+ declare const index_resolveSecurityOptionsFromEnv: typeof resolveSecurityOptionsFromEnv;
185
+ declare const index_resolveTiersFromEnv: typeof resolveTiersFromEnv;
186
+ declare const index_scrapeMetrics: typeof scrapeMetrics;
187
+ declare const index_shutdownOtel: typeof shutdownOtel;
188
+ declare namespace index {
189
+ export { type index_ActorContext as ActorContext, type index_ArmorConfig as ArmorConfig, type index_CostMap as CostMap, index_DEFAULT_ARMOR_CONFIG as DEFAULT_ARMOR_CONFIG, index_DEFAULT_COST_MAP as DEFAULT_COST_MAP, index_DEFAULT_TIERS as DEFAULT_TIERS, type index_GatewaySecurityOptions as GatewaySecurityOptions, index_MemoryValkey as MemoryValkey, type index_OperationTimeoutConfig as OperationTimeoutConfig, type index_OtelConfig as OtelConfig, type index_QueryComplexityConfig as QueryComplexityConfig, type index_RateLimitConfig as RateLimitConfig, type index_RateLimitResult as RateLimitResult, type index_SecurityValkeyClient as SecurityValkeyClient, type index_Tier as Tier, type index_TierLimits as TierLimits, index___resetMetricsForTest as __resetMetricsForTest, index___setSecurityValkeyForTest as __setSecurityValkeyForTest, index_buildSecurityPlugins as buildSecurityPlugins, index_checkRateLimit as checkRateLimit, index_createArmorPlugins as createArmorPlugins, index_createOperationTimeoutPlugin as createOperationTimeoutPlugin, index_createOtelPlugin as createOtelPlugin, index_createQueryComplexityPlugin as createQueryComplexityPlugin, index_createRateLimitPlugin as createRateLimitPlugin, index_getMetrics as getMetrics, index_getSecurityValkey as getSecurityValkey, index_initializeMetrics as initializeMetrics, index_initializeOtel as initializeOtel, index_initializeSecurityValkey as initializeSecurityValkey, index_mergeCostMap as mergeCostMap, index_resolveActor as resolveActor, index_resolveSecurityOptionsFromEnv as resolveSecurityOptionsFromEnv, index_resolveTiersFromEnv as resolveTiersFromEnv, index_scrapeMetrics as scrapeMetrics, index_shutdownOtel as shutdownOtel };
190
+ }
191
+
192
+ export { type ActorContext as A, type CostMap as C, DEFAULT_ARMOR_CONFIG as D, type GatewaySecurityOptions as G, MemoryValkey as M, type OperationTimeoutConfig as O, type QueryComplexityConfig as Q, type RateLimitConfig as R, type SecurityValkeyClient as S, type Tier as T, __resetMetricsForTest as _, type ArmorConfig as a, DEFAULT_COST_MAP as b, DEFAULT_TIERS as c, type OtelConfig as d, type RateLimitResult as e, type TierLimits as f, __setSecurityValkeyForTest as g, buildSecurityPlugins as h, index as i, checkRateLimit as j, createArmorPlugins as k, createOperationTimeoutPlugin as l, createOtelPlugin as m, createQueryComplexityPlugin as n, createRateLimitPlugin as o, getMetrics as p, getSecurityValkey as q, initializeMetrics as r, initializeOtel as s, initializeSecurityValkey as t, mergeCostMap as u, resolveActor as v, resolveSecurityOptionsFromEnv as w, resolveTiersFromEnv as x, scrapeMetrics as y, shutdownOtel as z };
@@ -0,0 +1,18 @@
1
+ declare function encrypt(text: string, key: string): string;
2
+ declare function decrypt(encryptedText: string, key: string): string;
3
+ declare function generateEncryptionKey(): string;
4
+ declare function isEncrypted(text: string): boolean;
5
+ declare function encryptIfNeeded(text: string, key: string): string;
6
+ declare function decryptIfNeeded(text: string, key: string): string;
7
+
8
+ declare const index_decrypt: typeof decrypt;
9
+ declare const index_decryptIfNeeded: typeof decryptIfNeeded;
10
+ declare const index_encrypt: typeof encrypt;
11
+ declare const index_encryptIfNeeded: typeof encryptIfNeeded;
12
+ declare const index_generateEncryptionKey: typeof generateEncryptionKey;
13
+ declare const index_isEncrypted: typeof isEncrypted;
14
+ declare namespace index {
15
+ export { index_decrypt as decrypt, index_decryptIfNeeded as decryptIfNeeded, index_encrypt as encrypt, index_encryptIfNeeded as encryptIfNeeded, index_generateEncryptionKey as generateEncryptionKey, index_isEncrypted as isEncrypted };
16
+ }
17
+
18
+ export { decryptIfNeeded as a, encryptIfNeeded as b, isEncrypted as c, decrypt as d, encrypt as e, generateEncryptionKey as g, index as i };
@@ -0,0 +1,59 @@
1
+ type FlagType = 'BOOLEAN' | 'STRING' | 'NUMBER' | 'JSON';
2
+ interface EvaluationContext {
3
+ actorId?: string;
4
+ actorType?: 'user' | 'app' | 'service' | 'super_admin';
5
+ workspaceId: string;
6
+ }
7
+ interface ResolutionDetails<T> {
8
+ value: T;
9
+ variant?: string;
10
+ reason: string;
11
+ flagType: FlagType;
12
+ errorCode?: string;
13
+ }
14
+ interface FlagEvaluation {
15
+ key: string;
16
+ value: unknown;
17
+ variant: string | null;
18
+ reason: string;
19
+ flagType: FlagType;
20
+ errorCode: string | null;
21
+ }
22
+ interface FeatureFlagProviderConfig {
23
+ gatewayUrl: string;
24
+ cacheTtlSeconds?: number;
25
+ serviceToken?: string;
26
+ defaultActorType?: 'user' | 'app' | 'service' | 'super_admin';
27
+ }
28
+
29
+ declare class FeatureFlagProvider {
30
+ private readonly gatewayUrl;
31
+ private readonly cacheTtlMs;
32
+ private readonly serviceToken?;
33
+ private readonly defaultActorType;
34
+ private readonly cache;
35
+ constructor(config: FeatureFlagProviderConfig);
36
+ resolveBoolean(flagKey: string, defaultValue: boolean, context: EvaluationContext): Promise<ResolutionDetails<boolean>>;
37
+ resolveString(flagKey: string, defaultValue: string, context: EvaluationContext): Promise<ResolutionDetails<string>>;
38
+ resolveNumber(flagKey: string, defaultValue: number, context: EvaluationContext): Promise<ResolutionDetails<number>>;
39
+ resolveObject<T extends Record<string, unknown>>(flagKey: string, defaultValue: T, context: EvaluationContext): Promise<ResolutionDetails<T>>;
40
+ isEnabled(flagKey: string, context?: EvaluationContext): Promise<boolean>;
41
+ evaluateAll(context: EvaluationContext, keys?: string[]): Promise<Map<string, ResolutionDetails<unknown>>>;
42
+ invalidateCache(context?: EvaluationContext): void;
43
+ private getEvaluation;
44
+ private fetchEvaluations;
45
+ private buildCacheKey;
46
+ }
47
+
48
+ type index_EvaluationContext = EvaluationContext;
49
+ type index_FeatureFlagProvider = FeatureFlagProvider;
50
+ declare const index_FeatureFlagProvider: typeof FeatureFlagProvider;
51
+ type index_FeatureFlagProviderConfig = FeatureFlagProviderConfig;
52
+ type index_FlagEvaluation = FlagEvaluation;
53
+ type index_FlagType = FlagType;
54
+ type index_ResolutionDetails<T> = ResolutionDetails<T>;
55
+ declare namespace index {
56
+ export { type index_EvaluationContext as EvaluationContext, index_FeatureFlagProvider as FeatureFlagProvider, type index_FeatureFlagProviderConfig as FeatureFlagProviderConfig, type index_FlagEvaluation as FlagEvaluation, type index_FlagType as FlagType, type index_ResolutionDetails as ResolutionDetails };
57
+ }
58
+
59
+ export { type EvaluationContext as E, FeatureFlagProvider as F, type ResolutionDetails as R, type FeatureFlagProviderConfig as a, type FlagEvaluation as b, type FlagType as c, index as i };