@graphoria/server 0.3.0 → 0.5.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 (203) hide show
  1. package/README.md +28 -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/analyzeQuery/analyzers/selectionAnalyzer.d.ts.map +1 -1
  5. package/dist/src/analyzeQuery/depthLimit.d.ts +1 -13
  6. package/dist/src/analyzeQuery/depthLimit.d.ts.map +1 -1
  7. package/dist/src/authentication/capabilities.d.ts +18 -0
  8. package/dist/src/authentication/capabilities.d.ts.map +1 -0
  9. package/dist/src/authentication/capabilities.test.d.ts +2 -0
  10. package/dist/src/authentication/capabilities.test.d.ts.map +1 -0
  11. package/dist/src/authentication/jwt.d.ts.map +1 -1
  12. package/dist/src/authentication/paseto.d.ts.map +1 -1
  13. package/dist/src/authentication/secrets.d.ts +9 -0
  14. package/dist/src/authentication/secrets.d.ts.map +1 -0
  15. package/dist/src/authentication/secrets.test.d.ts +2 -0
  16. package/dist/src/authentication/secrets.test.d.ts.map +1 -0
  17. package/dist/src/authentication/tokenRepository.d.ts.map +1 -1
  18. package/dist/src/config/types/db.d.ts +25 -0
  19. package/dist/src/config/types/db.d.ts.map +1 -1
  20. package/dist/src/configuration/getSchemas/index.d.ts +40 -2
  21. package/dist/src/configuration/getSchemas/index.d.ts.map +1 -1
  22. package/dist/src/configuration/getSchemas/mergeEntities/index.d.ts +20 -1
  23. package/dist/src/configuration/getSchemas/mergeEntities/index.d.ts.map +1 -1
  24. package/dist/src/configuration/gql/gqlAuthOperations.d.ts.map +1 -1
  25. package/dist/src/configuration/gql/handleGraphQLRequestFactory.d.ts.map +1 -1
  26. package/dist/src/configuration/gql/handleGraphQLSubscriptionFactory.d.ts.map +1 -1
  27. package/dist/src/configuration/index.d.ts +30 -1
  28. package/dist/src/configuration/index.d.ts.map +1 -1
  29. package/dist/src/configuration/rest/generateOpenAPI.d.ts.map +1 -1
  30. package/dist/src/configuration/rest/generateOpenAPI.test.d.ts +2 -0
  31. package/dist/src/configuration/rest/generateOpenAPI.test.d.ts.map +1 -0
  32. package/dist/src/configuration/rest/handleRESTRequestFactory.d.ts.map +1 -1
  33. package/dist/src/console/api.d.ts.map +1 -1
  34. package/dist/src/console/session.d.ts +12 -4
  35. package/dist/src/console/session.d.ts.map +1 -1
  36. package/dist/src/cron/index.d.ts.map +1 -1
  37. package/dist/src/databases/common.d.ts +20 -6
  38. package/dist/src/databases/common.d.ts.map +1 -1
  39. package/dist/src/databases/core/executor.d.ts +4 -6
  40. package/dist/src/databases/core/executor.d.ts.map +1 -1
  41. package/dist/src/databases/core/function-mapping.d.ts +2 -3
  42. package/dist/src/databases/core/function-mapping.d.ts.map +1 -1
  43. package/dist/src/databases/core/procedure-arguments.d.ts +17 -0
  44. package/dist/src/databases/core/procedure-arguments.d.ts.map +1 -0
  45. package/dist/src/databases/core/procedure-arguments.test.d.ts +2 -0
  46. package/dist/src/databases/core/procedure-arguments.test.d.ts.map +1 -0
  47. package/dist/src/databases/core/query-builder.d.ts +5 -0
  48. package/dist/src/databases/core/query-builder.d.ts.map +1 -1
  49. package/dist/src/databases/engines/mssql/connection.d.ts +1 -1
  50. package/dist/src/databases/engines/mssql/connection.d.ts.map +1 -1
  51. package/dist/src/databases/engines/mssql/getStructure.d.ts +5 -0
  52. package/dist/src/databases/engines/mssql/getStructure.d.ts.map +1 -1
  53. package/dist/src/databases/engines/mssql/query/index.d.ts +2 -2
  54. package/dist/src/databases/engines/mssql/query/index.d.ts.map +1 -1
  55. package/dist/src/databases/engines/mysql/connection.d.ts +1 -1
  56. package/dist/src/databases/engines/mysql/connection.d.ts.map +1 -1
  57. package/dist/src/databases/engines/mysql/getStructure.d.ts +5 -0
  58. package/dist/src/databases/engines/mysql/getStructure.d.ts.map +1 -1
  59. package/dist/src/databases/engines/mysql/query/index.d.ts +2 -2
  60. package/dist/src/databases/engines/mysql/query/index.d.ts.map +1 -1
  61. package/dist/src/databases/engines/postgresql/connection.d.ts +1 -1
  62. package/dist/src/databases/engines/postgresql/connection.d.ts.map +1 -1
  63. package/dist/src/databases/engines/postgresql/getStructure.d.ts +5 -0
  64. package/dist/src/databases/engines/postgresql/getStructure.d.ts.map +1 -1
  65. package/dist/src/databases/engines/postgresql/query/index.d.ts +2 -2
  66. package/dist/src/databases/engines/postgresql/query/index.d.ts.map +1 -1
  67. package/dist/src/databases/high-level-operations.d.ts +5 -0
  68. package/dist/src/databases/high-level-operations.d.ts.map +1 -1
  69. package/dist/src/databases/metadata/structure.d.ts +5 -0
  70. package/dist/src/databases/metadata/structure.d.ts.map +1 -1
  71. package/dist/src/databases/transformers/data-transformers.d.ts +30 -0
  72. package/dist/src/databases/transformers/data-transformers.d.ts.map +1 -1
  73. package/dist/src/index.d.ts +4 -0
  74. package/dist/src/index.d.ts.map +1 -1
  75. package/dist/src/logging/audit.d.ts +27 -0
  76. package/dist/src/logging/audit.d.ts.map +1 -0
  77. package/dist/src/logging/audit.test.d.ts +2 -0
  78. package/dist/src/logging/audit.test.d.ts.map +1 -0
  79. package/dist/src/logging/slowQuery.d.ts +29 -0
  80. package/dist/src/logging/slowQuery.d.ts.map +1 -0
  81. package/dist/src/logging/slowQuery.test.d.ts +2 -0
  82. package/dist/src/logging/slowQuery.test.d.ts.map +1 -0
  83. package/dist/src/observability/health.d.ts +23 -0
  84. package/dist/src/observability/health.d.ts.map +1 -0
  85. package/dist/src/observability/health.test.d.ts +2 -0
  86. package/dist/src/observability/health.test.d.ts.map +1 -0
  87. package/dist/src/observability/httpMetrics.d.ts +7 -0
  88. package/dist/src/observability/httpMetrics.d.ts.map +1 -0
  89. package/dist/src/observability/httpMetrics.test.d.ts +2 -0
  90. package/dist/src/observability/httpMetrics.test.d.ts.map +1 -0
  91. package/dist/src/observability/httpTracing.d.ts +11 -0
  92. package/dist/src/observability/httpTracing.d.ts.map +1 -0
  93. package/dist/src/observability/httpTracing.test.d.ts +2 -0
  94. package/dist/src/observability/httpTracing.test.d.ts.map +1 -0
  95. package/dist/src/observability/metrics.d.ts +81 -0
  96. package/dist/src/observability/metrics.d.ts.map +1 -0
  97. package/dist/src/observability/metrics.perf.test.d.ts +2 -0
  98. package/dist/src/observability/metrics.perf.test.d.ts.map +1 -0
  99. package/dist/src/observability/metrics.test.d.ts +2 -0
  100. package/dist/src/observability/metrics.test.d.ts.map +1 -0
  101. package/dist/src/observability/metricsRoute.d.ts +19 -0
  102. package/dist/src/observability/metricsRoute.d.ts.map +1 -0
  103. package/dist/src/observability/metricsRoute.test.d.ts +2 -0
  104. package/dist/src/observability/metricsRoute.test.d.ts.map +1 -0
  105. package/dist/src/observability/tracing.d.ts +92 -0
  106. package/dist/src/observability/tracing.d.ts.map +1 -0
  107. package/dist/src/observability/tracing.perf.test.d.ts +2 -0
  108. package/dist/src/observability/tracing.perf.test.d.ts.map +1 -0
  109. package/dist/src/observability/tracing.test.d.ts +2 -0
  110. package/dist/src/observability/tracing.test.d.ts.map +1 -0
  111. package/dist/src/queues/kafka.d.ts +6 -0
  112. package/dist/src/queues/kafka.d.ts.map +1 -1
  113. package/dist/src/queues/kafka.test.d.ts +2 -0
  114. package/dist/src/queues/kafka.test.d.ts.map +1 -0
  115. package/dist/src/queues/rabbitmq.d.ts.map +1 -1
  116. package/dist/src/remoteREST/proxy.d.ts.map +1 -1
  117. package/dist/src/remoteSchemas/proxy.d.ts.map +1 -1
  118. package/dist/src/singletons/cache/redisClient.d.ts +2 -2
  119. package/dist/src/singletons/cache/redisClient.d.ts.map +1 -1
  120. package/dist/src/singletons/databases.d.ts +1 -0
  121. package/dist/src/singletons/databases.d.ts.map +1 -1
  122. package/dist/src/singletons/env.d.ts +37 -4
  123. package/dist/src/singletons/env.d.ts.map +1 -1
  124. package/dist/src/singletons/queues.d.ts +1 -0
  125. package/dist/src/singletons/queues.d.ts.map +1 -1
  126. package/dist/src/subscriptions/strategies/database.d.ts.map +1 -1
  127. package/dist/src/subscriptions/utils/polling.d.ts +1 -0
  128. package/dist/src/subscriptions/utils/polling.d.ts.map +1 -1
  129. package/dist/src/subscriptions/utils/polling.test.d.ts +2 -0
  130. package/dist/src/subscriptions/utils/polling.test.d.ts.map +1 -0
  131. package/dist/src/types/env.d.ts +113 -12
  132. package/dist/src/types/env.d.ts.map +1 -1
  133. package/dist/src/types/zod/configuration.d.ts +25 -0
  134. package/dist/src/types/zod/configuration.d.ts.map +1 -1
  135. package/dist/src/types/zod/db.d.ts +85 -0
  136. package/dist/src/types/zod/db.d.ts.map +1 -1
  137. package/dist/src/utils/rateLimit.d.ts.map +1 -1
  138. package/dist/src/utils/redis.d.ts +17 -0
  139. package/dist/src/utils/redis.d.ts.map +1 -0
  140. package/dist/src/utils/redis.test.d.ts +2 -0
  141. package/dist/src/utils/redis.test.d.ts.map +1 -0
  142. package/dist/src/utils/responses.d.ts +6 -0
  143. package/dist/src/utils/responses.d.ts.map +1 -1
  144. package/dist/src/utils/sessionVariables.d.ts +2 -0
  145. package/dist/src/utils/sessionVariables.d.ts.map +1 -1
  146. package/dist/tsconfig.tsbuildinfo +1 -1
  147. package/package.json +8 -5
  148. package/playgrounds/console/index.html +9 -9
  149. package/playgrounds/graphiql/index.html +549 -686
  150. package/playgrounds/scalar/index.html +1 -1
  151. package/src/ai/mcp/index.ts +19 -14
  152. package/src/analyzeQuery/analyzers/selectionAnalyzer.ts +2 -1
  153. package/src/analyzeQuery/depthLimit.ts +15 -5
  154. package/src/authentication/capabilities.ts +56 -0
  155. package/src/authentication/index.ts +3 -3
  156. package/src/authentication/jwt.ts +30 -25
  157. package/src/authentication/paseto.ts +36 -26
  158. package/src/authentication/secrets.ts +30 -0
  159. package/src/authentication/tokenRepository.ts +2 -3
  160. package/src/config/types/db.ts +16 -2
  161. package/src/configuration/getSchemas/mergeEntities/index.ts +0 -26
  162. package/src/configuration/gql/gqlAuthOperations.ts +26 -0
  163. package/src/configuration/gql/handleGraphQLRequestFactory.ts +241 -148
  164. package/src/configuration/gql/handleGraphQLSubscriptionFactory.ts +9 -0
  165. package/src/configuration/rest/generateOpenAPI.ts +61 -11
  166. package/src/configuration/rest/handleRESTRequestFactory.ts +26 -0
  167. package/src/console/api.ts +64 -24
  168. package/src/console/session.ts +30 -26
  169. package/src/cron/index.ts +59 -36
  170. package/src/databases/common.ts +109 -10
  171. package/src/databases/core/executor.ts +97 -20
  172. package/src/databases/core/function-mapping.ts +1 -2
  173. package/src/databases/core/procedure-arguments.ts +25 -0
  174. package/src/databases/engines/mssql/connection.ts +0 -3
  175. package/src/databases/engines/mssql/query/index.ts +4 -1
  176. package/src/databases/engines/mysql/connection.ts +10 -7
  177. package/src/databases/engines/mysql/query/index.ts +5 -2
  178. package/src/databases/engines/postgresql/connection.ts +10 -7
  179. package/src/databases/engines/postgresql/query/index.ts +5 -2
  180. package/src/databases/high-level-operations.ts +44 -2
  181. package/src/index.ts +200 -76
  182. package/src/logging/audit.ts +86 -0
  183. package/src/logging/slowQuery.ts +59 -0
  184. package/src/observability/health.ts +67 -0
  185. package/src/observability/httpMetrics.ts +37 -0
  186. package/src/observability/httpTracing.ts +48 -0
  187. package/src/observability/metrics.ts +243 -0
  188. package/src/observability/metricsRoute.ts +33 -0
  189. package/src/observability/tracing.ts +421 -0
  190. package/src/queues/kafka.ts +45 -2
  191. package/src/queues/rabbitmq.ts +37 -1
  192. package/src/remoteREST/proxy.ts +17 -0
  193. package/src/remoteSchemas/proxy.ts +17 -0
  194. package/src/singletons/cache/redisClient.ts +4 -5
  195. package/src/singletons/databases.ts +5 -0
  196. package/src/singletons/queues.ts +9 -3
  197. package/src/subscriptions/strategies/database.ts +2 -0
  198. package/src/subscriptions/utils/polling.ts +80 -21
  199. package/src/types/env.ts +53 -8
  200. package/src/utils/rateLimit.ts +6 -1
  201. package/src/utils/redis.ts +71 -0
  202. package/src/utils/responses.ts +12 -0
  203. package/src/utils/sessionVariables.ts +2 -0
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=audit.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"audit.test.d.ts","sourceRoot":"","sources":["../../../src/logging/audit.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,29 @@
1
+ import type { Logger } from "pino";
2
+ /** The GraphQL operation a statement was generated for. Names only, never values. */
3
+ export type QuerySource = {
4
+ operation: {
5
+ type: "query" | "mutation" | "subscription";
6
+ name: string | null;
7
+ fields: string[];
8
+ };
9
+ role?: string | undefined;
10
+ };
11
+ export type SlowQueryRecord = {
12
+ durationMs: number;
13
+ dbType: string;
14
+ dbName: string;
15
+ sql?: string;
16
+ procedure?: string;
17
+ outcome: "success" | "error";
18
+ } & Partial<QuerySource>;
19
+ export type SlowQueryLog = {
20
+ emit(record: SlowQueryRecord & {
21
+ thresholdMs: number;
22
+ }): void;
23
+ };
24
+ export declare const setSlowQueryMs: (ms: number) => void;
25
+ export declare const createSlowQueryLog: (base: Logger) => SlowQueryLog;
26
+ /** Test seam: pass `null` to restore the default log. */
27
+ export declare const setSlowQueryLog: (log: SlowQueryLog | null) => void;
28
+ export declare const reportQueryDuration: (record: SlowQueryRecord) => void;
29
+ //# sourceMappingURL=slowQuery.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"slowQuery.d.ts","sourceRoot":"","sources":["../../../src/logging/slowQuery.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAInC,qFAAqF;AACrF,MAAM,MAAM,WAAW,GAAG;IACxB,SAAS,EAAE;QACT,IAAI,EAAE,OAAO,GAAG,UAAU,GAAG,cAAc,CAAC;QAC5C,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;QACpB,MAAM,EAAE,MAAM,EAAE,CAAC;KAClB,CAAC;IACF,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC3B,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,SAAS,GAAG,OAAO,CAAC;CAC9B,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;AAEzB,MAAM,MAAM,YAAY,GAAG;IACzB,IAAI,CAAC,MAAM,EAAE,eAAe,GAAG;QAAE,WAAW,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;CAC/D,CAAC;AAQF,eAAO,MAAM,cAAc,OAAQ,MAAM,KAAG,IAE3C,CAAC;AAEF,eAAO,MAAM,kBAAkB,SAAU,MAAM,KAAG,YAEhD,CAAC;AAKH,yDAAyD;AACzD,eAAO,MAAM,eAAe,QAAS,YAAY,GAAG,IAAI,KAAG,IAE1D,CAAC;AAQF,eAAO,MAAM,mBAAmB,WAAY,eAAe,KAAG,IAG7D,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=slowQuery.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"slowQuery.test.d.ts","sourceRoot":"","sources":["../../../src/logging/slowQuery.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,23 @@
1
+ import { S200, S503 } from "../utils/responses";
2
+ export type HealthCheck = {
3
+ kind: string;
4
+ name?: string;
5
+ probe: () => Promise<boolean> | boolean;
6
+ };
7
+ export type HealthRoutesOptions = {
8
+ basePath: string;
9
+ /** Read on every readiness request, so a check can follow state that changes after boot. */
10
+ checks: () => HealthCheck[];
11
+ timeoutMs: number;
12
+ };
13
+ /**
14
+ * Unauthenticated probes for an orchestrator. Liveness touches nothing, so a
15
+ * dependency outage never gets the process restarted; readiness pings every
16
+ * dependency and answers 503 while one is down. The body names each check and
17
+ * whether it passed — the reason stays in the log, because a driver error can
18
+ * carry a host and port.
19
+ */
20
+ export declare const createHealthRoutes: ({ basePath, checks, timeoutMs }: HealthRoutesOptions) => {
21
+ [x: string]: (() => S200) | (() => Promise<S200 | S503>);
22
+ };
23
+ //# sourceMappingURL=health.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"health.d.ts","sourceRoot":"","sources":["../../../src/observability/health.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAEhD,MAAM,MAAM,WAAW,GAAG;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC;CACzC,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,4FAA4F;IAC5F,MAAM,EAAE,MAAM,WAAW,EAAE,CAAC;IAC5B,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAgBF;;;;;;GAMG;AACH,eAAO,MAAM,kBAAkB,oCAAqC,mBAAmB;;CA6BtF,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=health.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"health.test.d.ts","sourceRoot":"","sources":["../../../src/observability/health.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Wraps a route handler so the request is counted and timed. The route label is
3
+ * the name of the mounted route, never the URL: a path carries identifiers, and
4
+ * one series per identifier is a cardinality leak.
5
+ */
6
+ export declare const withHttpMetrics: <Req extends Request, Args extends unknown[]>(route: string, handler: (req: Req, ...args: Args) => Response | undefined | Promise<Response | undefined>) => (req: Req, ...args: Args) => Promise<Response | undefined>;
7
+ //# sourceMappingURL=httpMetrics.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"httpMetrics.d.ts","sourceRoot":"","sources":["../../../src/observability/httpMetrics.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AACH,eAAO,MAAM,eAAe,GACzB,GAAG,SAAS,OAAO,EAAE,IAAI,SAAS,OAAO,EAAE,SACnC,MAAM,WACJ,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,IAAI,KAAK,QAAQ,GAAG,SAAS,GAAG,OAAO,CAAC,QAAQ,GAAG,SAAS,CAAC,WAEhF,GAAG,WAAW,IAAI,KAAG,OAAO,CAAC,QAAQ,GAAG,SAAS,CAwB5D,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=httpMetrics.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"httpMetrics.test.d.ts","sourceRoot":"","sources":["../../../src/observability/httpMetrics.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Wraps a route handler so the request roots a trace. The span is named for the
3
+ * mounted route, never the URL: a path carries identifiers and a query string
4
+ * carries caller data, and a span name is exported verbatim.
5
+ *
6
+ * An inbound `traceparent` is continued, so a gateway's span and this one join
7
+ * up. `parent: null` is deliberate — a request is a root, never a child of
8
+ * whatever context the server happened to be in.
9
+ */
10
+ export declare const withHttpTracing: <Req extends Request, Args extends unknown[]>(route: string, handler: (req: Req, ...args: Args) => Response | undefined | Promise<Response | undefined>) => (req: Req, ...args: Args) => Promise<Response | undefined>;
11
+ //# sourceMappingURL=httpTracing.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"httpTracing.d.ts","sourceRoot":"","sources":["../../../src/observability/httpTracing.ts"],"names":[],"mappings":"AAEA;;;;;;;;GAQG;AACH,eAAO,MAAM,eAAe,GACzB,GAAG,SAAS,OAAO,EAAE,IAAI,SAAS,OAAO,EAAE,SACnC,MAAM,WACJ,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,IAAI,KAAK,QAAQ,GAAG,SAAS,GAAG,OAAO,CAAC,QAAQ,GAAG,SAAS,CAAC,WAEhF,GAAG,WAAW,IAAI,KAAG,OAAO,CAAC,QAAQ,GAAG,SAAS,CA+B5D,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=httpTracing.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"httpTracing.test.d.ts","sourceRoot":"","sources":["../../../src/observability/httpTracing.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,81 @@
1
+ declare const METRICS: {
2
+ readonly graphoria_graphql_operations_total: {
3
+ readonly type: "counter";
4
+ readonly help: "GraphQL operations executed, by outcome.";
5
+ readonly labelNames: readonly ["operation", "outcome", "role", "type"];
6
+ };
7
+ readonly graphoria_graphql_operation_duration_seconds: {
8
+ readonly type: "histogram";
9
+ readonly help: "Time spent handling a GraphQL operation, in seconds.";
10
+ readonly labelNames: readonly ["operation", "role", "type"];
11
+ };
12
+ readonly graphoria_http_requests_total: {
13
+ readonly type: "counter";
14
+ readonly help: "HTTP requests answered by the GraphQL and REST routes, by status.";
15
+ readonly labelNames: readonly ["method", "route", "status"];
16
+ };
17
+ readonly graphoria_http_request_duration_seconds: {
18
+ readonly type: "histogram";
19
+ readonly help: "Time spent answering an HTTP request, in seconds.";
20
+ readonly labelNames: readonly ["method", "route"];
21
+ };
22
+ readonly graphoria_cron_runs_total: {
23
+ readonly type: "counter";
24
+ readonly help: "Cron ticks that ran to completion or threw, by job.";
25
+ readonly labelNames: readonly ["job", "outcome"];
26
+ };
27
+ readonly graphoria_cron_run_duration_seconds: {
28
+ readonly type: "histogram";
29
+ readonly help: "Time spent in a cron tick, in seconds.";
30
+ readonly labelNames: readonly ["job"];
31
+ };
32
+ readonly graphoria_queue_messages_published_total: {
33
+ readonly type: "counter";
34
+ readonly help: "Messages handed to a broker, by publisher and outcome.";
35
+ readonly labelNames: readonly ["broker", "outcome", "publisher"];
36
+ };
37
+ readonly graphoria_queue_messages_consumed_total: {
38
+ readonly type: "counter";
39
+ readonly help: "Messages taken from a broker, by consumer and outcome.";
40
+ readonly labelNames: readonly ["broker", "consumer", "outcome", "queue"];
41
+ };
42
+ readonly graphoria_rate_limit_rejections_total: {
43
+ readonly type: "counter";
44
+ readonly help: "Requests refused by the rate limiter, by the role the ceiling was read from.";
45
+ readonly labelNames: readonly ["role"];
46
+ };
47
+ readonly graphoria_graphql_rejections_total: {
48
+ readonly type: "counter";
49
+ readonly help: "GraphQL operations rejected before execution.";
50
+ readonly labelNames: readonly ["reason"];
51
+ };
52
+ };
53
+ export type MetricName = keyof typeof METRICS;
54
+ export type Labels = Record<string, string>;
55
+ export type Registry = {
56
+ inc(metric: MetricName, labels: Labels, value?: number): void;
57
+ observe(metric: MetricName, labels: Labels, seconds: number): void;
58
+ render(): string;
59
+ };
60
+ export type RegistryOptions = {
61
+ /** Distinct values the caller-supplied `operation` label may take, per metric. */
62
+ maxOperationLabels?: number;
63
+ };
64
+ /**
65
+ * A metric store with no dependencies. The `operation` label is the only one a
66
+ * caller controls, so it is the only one capped: past the cap every new name
67
+ * collapses into `other` rather than minting a series the scrape has to carry
68
+ * forever.
69
+ */
70
+ export declare const createRegistry: ({ maxOperationLabels, }?: RegistryOptions) => Registry;
71
+ export declare const configureMetrics: (settings: {
72
+ enabled: boolean;
73
+ } & RegistryOptions) => void;
74
+ /** Test seam: pass `null` to drop the process registry and its recorded series. */
75
+ export declare const setMetricsRegistry: (registry: Registry | null) => void;
76
+ export declare const isMetricsEnabled: () => boolean;
77
+ export declare const incMetric: (metric: MetricName, labels: Labels, value?: number) => void;
78
+ export declare const observeMetric: (metric: MetricName, labels: Labels, seconds: number) => void;
79
+ export declare const renderMetrics: () => string;
80
+ export {};
81
+ //# sourceMappingURL=metrics.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"metrics.d.ts","sourceRoot":"","sources":["../../../src/observability/metrics.ts"],"names":[],"mappings":"AAOA,QAAA,MAAM,OAAO;;iBAET,IAAI,EAAE,SAAS;iBACf,IAAI,EAAE,0CAA0C;iBAChD,UAAU;;;iBAGV,IAAI,EAAE,WAAW;iBACjB,IAAI,EAAE,sDAAsD;iBAC5D,UAAU;;;iBAGV,IAAI,EAAE,SAAS;iBACf,IAAI,EAAE,mEAAmE;iBACzE,UAAU;;;iBAGV,IAAI,EAAE,WAAW;iBACjB,IAAI,EAAE,mDAAmD;iBACzD,UAAU;;;iBAGV,IAAI,EAAE,SAAS;iBACf,IAAI,EAAE,qDAAqD;iBAC3D,UAAU;;;iBAGV,IAAI,EAAE,WAAW;iBACjB,IAAI,EAAE,wCAAwC;iBAC9C,UAAU;;;iBAGV,IAAI,EAAE,SAAS;iBACf,IAAI,EAAE,wDAAwD;iBAC9D,UAAU;;;iBAGV,IAAI,EAAE,SAAS;iBACf,IAAI,EAAE,wDAAwD;iBAC9D,UAAU;;;iBAGV,IAAI,EAAE,SAAS;iBACf,IAAI,EAAE,8EAA8E;iBACpF,UAAU;;;iBAGV,IAAI,EAAE,SAAS;iBACf,IAAI,EAAE,+CAA+C;iBACrD,UAAU;;CAEuC,CAAC;AAEtD,MAAM,MAAM,UAAU,GAAG,MAAM,OAAO,OAAO,CAAC;AAE9C,MAAM,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAE5C,MAAM,MAAM,QAAQ,GAAG;IACrB,GAAG,CAAC,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9D,OAAO,CAAC,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACnE,MAAM,IAAI,MAAM,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,kFAAkF;IAClF,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B,CAAC;AAeF;;;;;GAKG;AACH,eAAO,MAAM,cAAc,6BAExB,eAAe,KAAQ,QAqGzB,CAAC;AAeF,eAAO,MAAM,gBAAgB,aAAc;IAAE,OAAO,EAAE,OAAO,CAAA;CAAE,GAAG,eAAe,KAAG,IAInF,CAAC;AAEF,mFAAmF;AACnF,eAAO,MAAM,kBAAkB,aAAc,QAAQ,GAAG,IAAI,KAAG,IAG9D,CAAC;AAQF,eAAO,MAAM,gBAAgB,QAAO,OAAkB,CAAC;AAEvD,eAAO,MAAM,SAAS,WAAY,UAAU,UAAU,MAAM,qBAAc,IAGzE,CAAC;AAEF,eAAO,MAAM,aAAa,WAAY,UAAU,UAAU,MAAM,WAAW,MAAM,KAAG,IAGnF,CAAC;AAEF,eAAO,MAAM,aAAa,QAAO,MAA6B,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=metrics.perf.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"metrics.perf.test.d.ts","sourceRoot":"","sources":["../../../src/observability/metrics.perf.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=metrics.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"metrics.test.d.ts","sourceRoot":"","sources":["../../../src/observability/metrics.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,19 @@
1
+ import type { CapabilityGrant } from "../authentication/capabilities";
2
+ export type MetricsRouteOptions = {
3
+ path: string;
4
+ /** The header a scoped credential rides in — the admin-secret header. */
5
+ secretHeader: string;
6
+ authorize: (candidate: string | null) => CapabilityGrant | null;
7
+ render: () => string;
8
+ };
9
+ /**
10
+ * A scrape is gated because the exposition names operations, roles and
11
+ * databases. It is deliberately not rate limited: a scrape interval is fixed
12
+ * and counting it against a caller ceiling would drop samples.
13
+ */
14
+ export declare const createMetricsRoute: ({ path, secretHeader, authorize, render, }: MetricsRouteOptions) => {
15
+ [x: string]: {
16
+ GET: (req: Request) => Response;
17
+ };
18
+ };
19
+ //# sourceMappingURL=metricsRoute.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"metricsRoute.d.ts","sourceRoot":"","sources":["../../../src/observability/metricsRoute.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AAItE,MAAM,MAAM,mBAAmB,GAAG;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,yEAAyE;IACzE,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,KAAK,eAAe,GAAG,IAAI,CAAC;IAChE,MAAM,EAAE,MAAM,MAAM,CAAC;CACtB,CAAC;AAIF;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,+CAK5B,mBAAmB;;mBAEP,OAAO;;CAMpB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=metricsRoute.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"metricsRoute.test.d.ts","sourceRoot":"","sources":["../../../src/observability/metricsRoute.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,92 @@
1
+ import type { Logger } from "pino";
2
+ export type SpanKind = "internal" | "server" | "client" | "producer" | "consumer";
3
+ export type SpanStatus = "unset" | "ok" | "error";
4
+ export type AttributeValue = string | number | boolean;
5
+ export type Attributes = Record<string, AttributeValue | undefined>;
6
+ /** What rides in the async context: three scalars, never the span itself. */
7
+ export type SpanContext = {
8
+ traceId: string;
9
+ spanId: string;
10
+ sampled: boolean;
11
+ };
12
+ export type SpanOptions = {
13
+ kind?: SpanKind;
14
+ attributes?: Attributes;
15
+ /** Overrides the active context — the inbound `traceparent`, or a deliberate root. */
16
+ parent?: SpanContext | null;
17
+ };
18
+ export type Span = {
19
+ readonly context: SpanContext;
20
+ setAttribute(key: string, value: AttributeValue | undefined): void;
21
+ setStatus(status: SpanStatus, message?: string): void;
22
+ recordError(error: unknown): void;
23
+ end(): void;
24
+ };
25
+ export type FinishedSpan = {
26
+ traceId: string;
27
+ spanId: string;
28
+ parentSpanId?: string;
29
+ name: string;
30
+ kind: SpanKind;
31
+ startTimeUnixNano: string;
32
+ endTimeUnixNano: string;
33
+ attributes: Attributes;
34
+ status: SpanStatus;
35
+ statusMessage?: string;
36
+ };
37
+ export type Tracer = {
38
+ startSpan(name: string, options?: SpanOptions): Span;
39
+ /** Runs `fn` with `span` active, ends it, and marks it errored if `fn` throws. */
40
+ withSpan<T>(name: string, options: SpanOptions, fn: (span: Span) => T | Promise<T>): Promise<T>;
41
+ active(): SpanContext | undefined;
42
+ flush(): Promise<void>;
43
+ };
44
+ export type TracerOptions = {
45
+ endpoint: string;
46
+ /** `k=v,k2=v2`, sent on every export — an API key for a hosted collector. */
47
+ headers?: string;
48
+ serviceName: string;
49
+ serviceVersion: string;
50
+ sampleRatio?: number;
51
+ maxBatch?: number;
52
+ maxQueue?: number;
53
+ /** `0` starts no timer, which is how a test drives the exporter by hand. */
54
+ exportIntervalMs?: number;
55
+ /** Test seam: where an export failure and a queue overflow are reported. */
56
+ log?: Pick<Logger, "warn">;
57
+ /** Test seam: the transport. Production POSTs with `fetch`. */
58
+ send?: (url: string, init: {
59
+ method: string;
60
+ headers: Record<string, string>;
61
+ body: string;
62
+ }) => Promise<void>;
63
+ };
64
+ export declare const parseTraceparent: (header: string | null | undefined) => SpanContext | undefined;
65
+ export declare const formatTraceparent: (context: SpanContext) => string;
66
+ /**
67
+ * A tracer with no dependencies: W3C ids, OTLP/HTTP JSON, and a bounded export
68
+ * queue. Nothing here reads process state — everything it needs is closed over,
69
+ * so it is unit-testable without booting a server.
70
+ */
71
+ export declare const createTracer: ({ endpoint, headers, serviceName, serviceVersion, sampleRatio, maxBatch, maxQueue, exportIntervalMs, send, log, }: TracerOptions) => Tracer;
72
+ export declare const configureTracing: (next: {
73
+ enabled: boolean;
74
+ endpoint: string;
75
+ headers: string;
76
+ serviceName: string;
77
+ sampleRatio: number;
78
+ }) => void;
79
+ /** Test seam: pass `null` to drop the process tracer and its queued spans. */
80
+ export declare const setTracer: (tracer: Tracer | null) => void;
81
+ export declare const isTracingEnabled: () => boolean;
82
+ export declare const startSpan: (name: string, options?: SpanOptions) => Span | undefined;
83
+ export declare const withSpan: <T>(name: string, options: SpanOptions, fn: (span: Span | undefined) => T | Promise<T>) => Promise<T>;
84
+ /**
85
+ * Runs `fn` with `span` active, leaving its lifetime to the caller. A span that
86
+ * is never ended is never exported, which is how a websocket upgrade — a
87
+ * request that is never answered — produces no span at all.
88
+ */
89
+ export declare const withActiveSpan: <T>(span: Span | undefined, fn: () => T) => T;
90
+ export declare const activeSpanContext: () => SpanContext | undefined;
91
+ export declare const flushSpans: () => Promise<void>;
92
+ //# sourceMappingURL=tracing.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tracing.d.ts","sourceRoot":"","sources":["../../../src/observability/tracing.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=tracing.perf.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tracing.perf.test.d.ts","sourceRoot":"","sources":["../../../src/observability/tracing.perf.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=tracing.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tracing.test.d.ts","sourceRoot":"","sources":["../../../src/observability/tracing.test.ts"],"names":[],"mappings":""}
@@ -1,3 +1,4 @@
1
+ import { Kafka } from "kafkajs";
1
2
  import type { Consumer } from "kafkajs";
2
3
  import type { KafkaConfig } from "../types/zod/queue";
3
4
  export declare const startConsumer: (connectionName: string, name: string, topic: string, consumer: Consumer, _consumerGroup: string) => Promise<void>;
@@ -13,6 +14,11 @@ export type KafkaConnectionManager = {
13
14
  cleanup: () => Promise<void>;
14
15
  onPublishersChanged: (callback: () => void) => void;
15
16
  };
17
+ export type KafkaDependencies = {
18
+ /** Test seam: the manager builds its client through this. */
19
+ createKafka?: (config: ConstructorParameters<typeof Kafka>[0]) => Kafka;
20
+ };
21
+ export declare const createKafkaConnectionManager: (queueConfig: KafkaConfig, { createKafka }?: KafkaDependencies) => KafkaConnectionManager;
16
22
  export declare const startKafkaConnections: (queues: KafkaConfig[]) => Promise<{
17
23
  managers: KafkaConnectionManager[];
18
24
  publisherMap: () => Record<string, KafkaPublisher>;
@@ -1 +1 @@
1
- {"version":3,"file":"kafka.d.ts","sourceRoot":"","sources":["../../../src/queues/kafka.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,QAAQ,EAA6C,MAAM,SAAS,CAAC;AACnF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AA2CtD,eAAO,MAAM,aAAa,mBACR,MAAM,QAChB,MAAM,SACL,MAAM,YACH,QAAQ,kBACF,MAAM,kBAiBvB,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;CACpE,CAAC;AAcF,MAAM,MAAM,sBAAsB,GAAG;IACnC,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7B,aAAa,EAAE,MAAM,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IACpD,WAAW,EAAE,MAAM,OAAO,CAAC;IAC3B,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7B,mBAAmB,EAAE,CAAC,QAAQ,EAAE,MAAM,IAAI,KAAK,IAAI,CAAC;CACrD,CAAC;AAsPF,eAAO,MAAM,qBAAqB,WAAkB,WAAW,EAAE;;;iCAsCrB,MAAM,WAAW,MAAM,GAAG,MAAM,QAAQ,MAAM;;EA6BzF,CAAC"}
1
+ {"version":3,"file":"kafka.d.ts","sourceRoot":"","sources":["../../../src/queues/kafka.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAGhC,OAAO,KAAK,EAAE,QAAQ,EAA6C,MAAM,SAAS,CAAC;AACnF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AA6CtD,eAAO,MAAM,aAAa,mBACR,MAAM,QAChB,MAAM,SACL,MAAM,YACH,QAAQ,kBACF,MAAM,kBA2BvB,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;CACpE,CAAC;AAcF,MAAM,MAAM,sBAAsB,GAAG;IACnC,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7B,aAAa,EAAE,MAAM,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IACpD,WAAW,EAAE,MAAM,OAAO,CAAC;IAC3B,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7B,mBAAmB,EAAE,CAAC,QAAQ,EAAE,MAAM,IAAI,KAAK,IAAI,CAAC;CACrD,CAAC;AAcF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,6DAA6D;IAC7D,WAAW,CAAC,EAAE,CAAC,MAAM,EAAE,qBAAqB,CAAC,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC;CACzE,CAAC;AAEF,eAAO,MAAM,4BAA4B,gBAC1B,WAAW,oBACyB,iBAAiB,KACjE,sBAyPF,CAAC;AAMF,eAAO,MAAM,qBAAqB,WAAkB,WAAW,EAAE;;;iCAsCrB,MAAM,WAAW,MAAM,GAAG,MAAM,QAAQ,MAAM;;EA6BzF,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=kafka.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kafka.test.d.ts","sourceRoot":"","sources":["../../../src/queues/kafka.test.ts"],"names":[],"mappings":""}
@@ -1 +1 @@
1
- {"version":3,"file":"rabbitmq.d.ts","sourceRoot":"","sources":["../../../src/queues/rabbitmq.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAGlC,OAAO,KAAK,EAAE,OAAO,EAAgC,MAAM,SAAS,CAAC;AACrE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAuBzD,eAAO,MAAM,aAAa,mBACR,MAAM,QAChB,MAAM,aACD,MAAM,WACR,OAAO,YACN,CACR,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE;IACP,KAAK,EAAE;QACL,UAAU,EAAE,CAAC,aAAa,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;KAC5F,CAAC;CACH,KACE,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,kBA4B1B,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,KAAK,OAAO,CAAC;CAC7C,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG,cAAc,CAAC;AAa3C,MAAM,MAAM,yBAAyB,GAAG;IACtC,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7B,aAAa,EAAE,MAAM,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;IACvD,WAAW,EAAE,MAAM,OAAO,CAAC;IAC3B,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7B,mBAAmB,EAAE,CAAC,QAAQ,EAAE,MAAM,IAAI,KAAK,IAAI,CAAC;CACrD,CAAC;AAEF,MAAM,MAAM,gCAAgC,GAAG;IAC7C,OAAO,CAAC,EAAE,OAAO,OAAO,CAAC;IACzB,UAAU,CAAC,EAAE,OAAO,UAAU,CAAC;CAChC,CAAC;AAEF,eAAO,MAAM,+BAA+B,gBAC7B,aAAa,YACjB,gCAAgC,KACxC,yBAwJF,CAAC;AAMF,eAAO,MAAM,wBAAwB,WAAkB,aAAa,EAAE;;;iCAsChC,MAAM,WAAW,MAAM,GAAG,MAAM,SAAS,MAAM;;EA6BpF,CAAC"}
1
+ {"version":3,"file":"rabbitmq.d.ts","sourceRoot":"","sources":["../../../src/queues/rabbitmq.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAGlC,OAAO,KAAK,EAAE,OAAO,EAAgC,MAAM,SAAS,CAAC;AACrE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAyBzD,eAAO,MAAM,aAAa,mBACR,MAAM,QAChB,MAAM,aACD,MAAM,WACR,OAAO,YACN,CACR,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE;IACP,KAAK,EAAE;QACL,UAAU,EAAE,CAAC,aAAa,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;KAC5F,CAAC;CACH,KACE,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,kBAsC1B,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,KAAK,OAAO,CAAC;CAC7C,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG,cAAc,CAAC;AAa3C,MAAM,MAAM,yBAAyB,GAAG;IACtC,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7B,aAAa,EAAE,MAAM,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;IACvD,WAAW,EAAE,MAAM,OAAO,CAAC;IAC3B,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7B,mBAAmB,EAAE,CAAC,QAAQ,EAAE,MAAM,IAAI,KAAK,IAAI,CAAC;CACrD,CAAC;AAEF,MAAM,MAAM,gCAAgC,GAAG;IAC7C,OAAO,CAAC,EAAE,OAAO,OAAO,CAAC;IACzB,UAAU,CAAC,EAAE,OAAO,UAAU,CAAC;CAChC,CAAC;AAEF,eAAO,MAAM,+BAA+B,gBAC7B,aAAa,YACjB,gCAAgC,KACxC,yBAgLF,CAAC;AAMF,eAAO,MAAM,wBAAwB,WAAkB,aAAa,EAAE;;;iCAsChC,MAAM,WAAW,MAAM,GAAG,MAAM,SAAS,MAAM;;EA6BpF,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"proxy.d.ts","sourceRoot":"","sources":["../../../src/remoteREST/proxy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAwCnE;;GAEG;AACH,eAAO,MAAM,sBAAsB,UAC1B,eAAe,YACZ,kBAAkB,iBACb,OAAO,cACV,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,eACrB,MAAM,KAClB,OAAO,CAAC,QAAQ,CA0ClB,CAAC"}
1
+ {"version":3,"file":"proxy.d.ts","sourceRoot":"","sources":["../../../src/remoteREST/proxy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AA0CnE;;GAEG;AACH,eAAO,MAAM,sBAAsB,UAC1B,eAAe,YACZ,kBAAkB,iBACb,OAAO,cACV,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,eACrB,MAAM,KAClB,OAAO,CAAC,QAAQ,CAyDlB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"proxy.d.ts","sourceRoot":"","sources":["../../../src/remoteSchemas/proxy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AA2FpD;;GAEG;AACH,eAAO,MAAM,gBAAgB,UACpB,iBAAiB,gBACV,oBAAoB,qBACf,MAAM,aACd,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,iBACnB,OAAO,GAAG,UAAU,kBACnB,OAAO,KACtB,OAAO,CAAC,OAAO,CA2CjB,CAAC"}
1
+ {"version":3,"file":"proxy.d.ts","sourceRoot":"","sources":["../../../src/remoteSchemas/proxy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AA6FpD;;GAEG;AACH,eAAO,MAAM,gBAAgB,UACpB,iBAAiB,gBACV,oBAAoB,qBACf,MAAM,aACd,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,iBACnB,OAAO,GAAG,UAAU,kBACnB,OAAO,KACtB,OAAO,CAAC,OAAO,CA0DjB,CAAC"}
@@ -1,3 +1,3 @@
1
- import { RedisClient as ValkeyClient } from "bun";
2
- export declare const getCacheRedisClient: () => InstanceType<typeof ValkeyClient>;
1
+ import { createRedisClient } from "../../utils/redis";
2
+ export declare const getCacheRedisClient: () => ReturnType<typeof createRedisClient>;
3
3
  //# sourceMappingURL=redisClient.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"redisClient.d.ts","sourceRoot":"","sources":["../../../../src/singletons/cache/redisClient.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,IAAI,YAAY,EAAE,MAAM,KAAK,CAAC;AAMlD,eAAO,MAAM,mBAAmB,QAAO,YAAY,CAAC,OAAO,YAAY,CAKtE,CAAC"}
1
+ {"version":3,"file":"redisClient.d.ts","sourceRoot":"","sources":["../../../../src/singletons/cache/redisClient.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAItD,eAAO,MAAM,mBAAmB,QAAO,UAAU,CAAC,OAAO,iBAAiB,CAKzE,CAAC"}
@@ -17,6 +17,7 @@ export declare const instantiateDatabasesConnections: (databases: Database[]) =>
17
17
  databasesConnections: DatabasesConnections;
18
18
  repositoryMap: RepositoryMap<unknown>;
19
19
  }>;
20
+ export declare const pingConnection: (connection: SQL | ConnectionPool, type: string) => Promise<import("mssql").IResult<any>> | SQL.Query<any>;
20
21
  /**
21
22
  * Close every open database connection and clear the singleton maps. Bun's `SQL`
22
23
  * and mssql's `ConnectionPool` both expose `close()`. Used by
@@ -1 +1 @@
1
- {"version":3,"file":"databases.d.ts","sourceRoot":"","sources":["../../../src/singletons/databases.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAC5C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAM1D;;;GAGG;AACH,MAAM,MAAM,oBAAoB,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,GAAG,cAAc,CAAC,CAAC;AAExE;;;GAGG;AACH,MAAM,MAAM,aAAa,CAAC,WAAW,GAAG,OAAO,IAAI,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;AAE/E,eAAO,MAAM,oBAAoB,EAAE,oBAAyB,CAAC;AAC7D,eAAO,MAAM,aAAa,EAAE,aAAkB,CAAC;AAE/C,eAAO,MAAM,+BAA+B,cAAqB,QAAQ,EAAE;;;EA0B1E,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,mBAAmB,qBAS/B,CAAC"}
1
+ {"version":3,"file":"databases.d.ts","sourceRoot":"","sources":["../../../src/singletons/databases.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAC5C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAM1D;;;GAGG;AACH,MAAM,MAAM,oBAAoB,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,GAAG,cAAc,CAAC,CAAC;AAExE;;;GAGG;AACH,MAAM,MAAM,aAAa,CAAC,WAAW,GAAG,OAAO,IAAI,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;AAE/E,eAAO,MAAM,oBAAoB,EAAE,oBAAyB,CAAC;AAC7D,eAAO,MAAM,aAAa,EAAE,aAAkB,CAAC;AAE/C,eAAO,MAAM,+BAA+B,cAAqB,QAAQ,EAAE;;;EA0B1E,CAAC;AAEF,eAAO,MAAM,cAAc,eAAgB,GAAG,GAAG,cAAc,QAAQ,MAAM,2DAGjC,CAAC;AAE7C;;;;;GAKG;AACH,eAAO,MAAM,mBAAmB,qBAS/B,CAAC"}
@@ -44,6 +44,11 @@ export declare const env: {
44
44
  target?: string | undefined;
45
45
  operator: "eq" | "gt" | "gte" | "is_not_null" | "is_null" | "like" | "lt" | "lte" | "neq";
46
46
  value?: string | number | boolean | undefined;
47
+ ancestor?: {
48
+ schema: string;
49
+ name: string;
50
+ column: string;
51
+ } | undefined;
47
52
  }[] | undefined;
48
53
  }[];
49
54
  description?: string | undefined;
@@ -337,6 +342,11 @@ export declare const env: {
337
342
  target?: string | undefined;
338
343
  operator: "eq" | "gt" | "gte" | "is_not_null" | "is_null" | "like" | "lt" | "lte" | "neq";
339
344
  value?: string | number | boolean | undefined;
345
+ ancestor?: {
346
+ schema: string;
347
+ name: string;
348
+ column: string;
349
+ } | undefined;
340
350
  }[] | undefined;
341
351
  }[];
342
352
  description?: string | undefined;
@@ -429,6 +439,11 @@ export declare const env: {
429
439
  target?: string | undefined;
430
440
  operator: "eq" | "gt" | "gte" | "is_not_null" | "is_null" | "like" | "lt" | "lte" | "neq";
431
441
  value?: string | number | boolean | undefined;
442
+ ancestor?: {
443
+ schema: string;
444
+ name: string;
445
+ column: string;
446
+ } | undefined;
432
447
  }[] | undefined;
433
448
  }[];
434
449
  description?: string | undefined;
@@ -477,20 +492,21 @@ export declare const env: {
477
492
  defaultPageSize: number;
478
493
  maxPageSize: number;
479
494
  queryTimeoutMs: number;
495
+ slowQueryMs: number;
480
496
  maxQueryCost: number;
481
497
  admin: {
482
- secret: string;
498
+ secrets: string[];
483
499
  header: string;
484
500
  };
485
501
  jwt: {
486
- secret: string;
502
+ secrets: string[];
487
503
  expiresIn: string;
488
504
  rtExpiresIn: string;
489
505
  };
490
506
  paseto: {
491
- localKey: string;
507
+ localKeys: string[];
492
508
  secretKey: string;
493
- publicKey: string;
509
+ publicKeys: string[];
494
510
  };
495
511
  rateLimit: {
496
512
  max: number;
@@ -509,19 +525,36 @@ export declare const env: {
509
525
  superadmin: {
510
526
  role: string;
511
527
  };
528
+ metrics: {
529
+ enabled: boolean;
530
+ endpoint: string;
531
+ secrets: string[];
532
+ maxOperationLabels: number;
533
+ };
534
+ tracing: {
535
+ enabled: boolean;
536
+ endpoint: string;
537
+ headers: string;
538
+ serviceName: string;
539
+ sampleRatio: number;
540
+ };
512
541
  console: {
513
542
  enabled: boolean;
514
543
  endpoint: string;
515
544
  sessionExpiresIn: string;
545
+ readSecrets: string[];
546
+ writeSecrets: string[];
516
547
  };
517
548
  ai: {
518
549
  enabled: boolean | undefined;
519
550
  graphqlEnabled: boolean;
520
551
  restEnabled: boolean;
552
+ secrets: string[];
521
553
  mcp: {
522
554
  enabled: boolean | undefined;
523
555
  endpoint: string;
524
556
  requireAdminSecret: boolean;
557
+ secrets: string[];
525
558
  maxQueryDepth: number | undefined;
526
559
  disabledTools: string[];
527
560
  disabledResources: string[];
@@ -1 +1 @@
1
- {"version":3,"file":"env.d.ts","sourceRoot":"","sources":["../../../src/singletons/env.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAA4B,CAAC"}
1
+ {"version":3,"file":"env.d.ts","sourceRoot":"","sources":["../../../src/singletons/env.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAA4B,CAAC"}
@@ -3,6 +3,7 @@ import type { RabbitMQPublisher } from "../queues/rabbitmq";
3
3
  import type { QueueConfig } from "../types/zod/queue";
4
4
  export type QueueConnectionStatus = {
5
5
  type: "rabbitmq" | "kafka";
6
+ name: string;
6
7
  connected: boolean;
7
8
  };
8
9
  export type QueueManager = {
@@ -1 +1 @@
1
- {"version":3,"file":"queues.d.ts","sourceRoot":"","sources":["../../../src/singletons/queues.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAC5D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAMtD,MAAM,MAAM,qBAAqB,GAAG;IAAE,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC;IAAC,SAAS,EAAE,OAAO,CAAA;CAAE,CAAC;AAEvF,MAAM,MAAM,YAAY,GAAG;IACzB,YAAY,EAAE,MAAM,MAAM,CAAC,MAAM,EAAE,iBAAiB,GAAG,cAAc,CAAC,CAAC;IACvE,WAAW,EAAE,CACX,aAAa,EAAE,MAAM,EACrB,OAAO,EAAE,MAAM,GAAG,MAAM,EACxB,GAAG,CAAC,EAAE,MAAM,KACT,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC;IAChC,WAAW,EAAE,MAAM,qBAAqB,EAAE,CAAC;IAC3C,OAAO,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC/B,CAAC;AAEF,eAAO,IAAI,YAAY,EAAE,YAAY,GAAG,SAAS,CAAC;AAElD,eAAO,MAAM,eAAe,YAAa,YAAY,GAAG,SAAS,SAEhE,CAAC;AAEF,eAAO,MAAM,iBAAiB,WAAkB,WAAW,EAAE,kBAyE5D,CAAC"}
1
+ {"version":3,"file":"queues.d.ts","sourceRoot":"","sources":["../../../src/singletons/queues.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAC5D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAMtD,MAAM,MAAM,qBAAqB,GAAG;IAClC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACzB,YAAY,EAAE,MAAM,MAAM,CAAC,MAAM,EAAE,iBAAiB,GAAG,cAAc,CAAC,CAAC;IACvE,WAAW,EAAE,CACX,aAAa,EAAE,MAAM,EACrB,OAAO,EAAE,MAAM,GAAG,MAAM,EACxB,GAAG,CAAC,EAAE,MAAM,KACT,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC;IAChC,WAAW,EAAE,MAAM,qBAAqB,EAAE,CAAC;IAC3C,OAAO,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC/B,CAAC;AAEF,eAAO,IAAI,YAAY,EAAE,YAAY,GAAG,SAAS,CAAC;AAElD,eAAO,MAAM,eAAe,YAAa,YAAY,GAAG,SAAS,SAEhE,CAAC;AAEF,eAAO,MAAM,iBAAiB,WAAkB,WAAW,EAAE,kBA2E5D,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"database.d.ts","sourceRoot":"","sources":["../../../../src/subscriptions/strategies/database.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAA2C,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAI9F;;;;;;;;GAQG;AACH,eAAO,MAAM,kCAAkC,QAAO,oBAsEpD,CAAC"}
1
+ {"version":3,"file":"database.d.ts","sourceRoot":"","sources":["../../../../src/subscriptions/strategies/database.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAA2C,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAI9F;;;;;;;;GAQG;AACH,eAAO,MAAM,kCAAkC,QAAO,oBAwEpD,CAAC"}
@@ -9,6 +9,7 @@ export interface DatabasePollerConfig {
9
9
  subscriptionKey: string;
10
10
  eventEmitter: QueryEventEmitter;
11
11
  pollIntervalMs?: number;
12
+ role?: string | undefined;
12
13
  }
13
14
  /**
14
15
  * Create a database poller that detects changes via hash comparison
@@ -1 +1 @@
1
- {"version":3,"file":"polling.d.ts","sourceRoot":"","sources":["../../../../src/subscriptions/utils/polling.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AACnF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AAEtE,OAAO,KAAK,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAMlE,MAAM,WAAW,oBAAoB;IACnC,QAAQ,EAAE,cAAc,CAAC;IACzB,mBAAmB,EAAE,kBAAkB,EAAE,CAAC;IAC1C,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnC,YAAY,EAAE,eAAe,CAAC;IAC9B,eAAe,EAAE,MAAM,CAAC;IACxB,YAAY,EAAE,iBAAiB,CAAC;IAChC,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AA2BD;;GAEG;AACH,eAAO,MAAM,oBAAoB,WACvB,oBAAoB,KAC3B,OAAO,CAAC,cAAc,CAwExB,CAAC"}
1
+ {"version":3,"file":"polling.d.ts","sourceRoot":"","sources":["../../../../src/subscriptions/utils/polling.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AACnF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AAGtE,OAAO,KAAK,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAOlE,MAAM,WAAW,oBAAoB;IACnC,QAAQ,EAAE,cAAc,CAAC;IACzB,mBAAmB,EAAE,kBAAkB,EAAE,CAAC;IAC1C,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnC,YAAY,EAAE,eAAe,CAAC;IAC9B,eAAe,EAAE,MAAM,CAAC;IACxB,YAAY,EAAE,iBAAiB,CAAC;IAChC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC3B;AA8BD;;GAEG;AACH,eAAO,MAAM,oBAAoB,WACvB,oBAAoB,KAC3B,OAAO,CAAC,cAAc,CA6HxB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=polling.test.d.ts.map