@graphoria/server 0.2.1 → 0.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (163) hide show
  1. package/dist/src/ai/agent/providers/ollama.d.ts.map +1 -1
  2. package/dist/src/ai/mcp/create-server.d.ts.map +1 -1
  3. package/dist/src/ai/mcp/index.d.ts +5 -2
  4. package/dist/src/ai/mcp/index.d.ts.map +1 -1
  5. package/dist/src/ai/tools/agent.d.ts.map +1 -1
  6. package/dist/src/ai/tools/core.d.ts.map +1 -1
  7. package/dist/src/ai/tools/query-data.d.ts +2 -2
  8. package/dist/src/ai/tools/query-data.d.ts.map +1 -1
  9. package/dist/src/analyzeQuery/analyzers/fragmentAnalyzer.d.ts.map +1 -1
  10. package/dist/src/analyzeQuery/analyzers/operationAnalyzer.d.ts.map +1 -1
  11. package/dist/src/analyzeQuery/analyzers/selectionAnalyzer.d.ts.map +1 -1
  12. package/dist/src/analyzeQuery/analyzers/variableAnalyzer.d.ts.map +1 -1
  13. package/dist/src/analyzeQuery/depthLimit.d.ts.map +1 -1
  14. package/dist/src/analyzeQuery/directiveUtils.d.ts.map +1 -1
  15. package/dist/src/analyzeQuery/resolveVariables.d.ts +17 -2
  16. package/dist/src/analyzeQuery/resolveVariables.d.ts.map +1 -1
  17. package/dist/src/analyzeQuery/typeUtils.d.ts.map +1 -1
  18. package/dist/src/analyzeQuery/valueExtractors.d.ts.map +1 -1
  19. package/dist/src/authentication/duration.d.ts.map +1 -1
  20. package/dist/src/authentication/index.d.ts.map +1 -1
  21. package/dist/src/authentication/jwt.d.ts.map +1 -1
  22. package/dist/src/authentication/paseto.d.ts.map +1 -1
  23. package/dist/src/authentication/tokenRepository.d.ts.map +1 -1
  24. package/dist/src/cli/seedAuth.d.ts.map +1 -1
  25. package/dist/src/cli/seedAuthArgs.d.ts.map +1 -1
  26. package/dist/src/config/helpers/cronHelper.d.ts.map +1 -1
  27. package/dist/src/config/helpers/operationHelper.d.ts +1 -1
  28. package/dist/src/config/helpers/operationHelper.d.ts.map +1 -1
  29. package/dist/src/config/helpers/queueHelper.d.ts.map +1 -1
  30. package/dist/src/config/index.d.ts.map +1 -1
  31. package/dist/src/config/types/auth.d.ts +11 -5
  32. package/dist/src/config/types/auth.d.ts.map +1 -1
  33. package/dist/src/config/types/auth.test.d.ts +2 -0
  34. package/dist/src/config/types/auth.test.d.ts.map +1 -0
  35. package/dist/src/config/types/db.d.ts +36 -20
  36. package/dist/src/config/types/db.d.ts.map +1 -1
  37. package/dist/src/config/types/operation.d.ts +6 -6
  38. package/dist/src/config/types/queue.d.ts +4 -4
  39. package/dist/src/configuration/getSchemas/index.d.ts +103 -99
  40. package/dist/src/configuration/getSchemas/index.d.ts.map +1 -1
  41. package/dist/src/configuration/getSchemas/mergeEntities/index.d.ts +50 -48
  42. package/dist/src/configuration/getSchemas/mergeEntities/index.d.ts.map +1 -1
  43. package/dist/src/configuration/getSchemas/type-definition-generator/index.d.ts.map +1 -1
  44. package/dist/src/configuration/gql/buildExecute.d.ts.map +1 -1
  45. package/dist/src/configuration/gql/gqlAuthOperations.d.ts.map +1 -1
  46. package/dist/src/configuration/gql/handleGraphQLRequestFactory.d.ts.map +1 -1
  47. package/dist/src/configuration/gql/handleGraphQLSubscriptionFactory.d.ts.map +1 -1
  48. package/dist/src/configuration/index.d.ts +95 -91
  49. package/dist/src/configuration/index.d.ts.map +1 -1
  50. package/dist/src/configuration/rest/generateOpenAPI.d.ts.map +1 -1
  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/configuration/rest/openApiErrors.d.ts.map +1 -1
  54. package/dist/src/configuration/rest/parseStringParams.d.ts.map +1 -1
  55. package/dist/src/console/api.d.ts.map +1 -1
  56. package/dist/src/cron/index.d.ts.map +1 -1
  57. package/dist/src/databases/auth/auth-operations.d.ts.map +1 -1
  58. package/dist/src/databases/auth/password.d.ts.map +1 -1
  59. package/dist/src/databases/common.d.ts +1 -3
  60. package/dist/src/databases/common.d.ts.map +1 -1
  61. package/dist/src/databases/core/executor.d.ts.map +1 -1
  62. package/dist/src/databases/core/identifier.d.ts.map +1 -1
  63. package/dist/src/databases/core/query-builder.d.ts +3 -2
  64. package/dist/src/databases/core/query-builder.d.ts.map +1 -1
  65. package/dist/src/databases/directives.d.ts.map +1 -1
  66. package/dist/src/databases/engines/mssql/auth.d.ts.map +1 -1
  67. package/dist/src/databases/engines/mssql/connection.d.ts.map +1 -1
  68. package/dist/src/databases/engines/mssql/format.d.ts.map +1 -1
  69. package/dist/src/databases/engines/mssql/getStructure.d.ts +12 -12
  70. package/dist/src/databases/engines/mssql/getStructure.d.ts.map +1 -1
  71. package/dist/src/databases/engines/mssql/getViews.d.ts.map +1 -1
  72. package/dist/src/databases/engines/mssql/query/index.d.ts.map +1 -1
  73. package/dist/src/databases/engines/mysql/auth.d.ts.map +1 -1
  74. package/dist/src/databases/engines/mysql/connection.d.ts.map +1 -1
  75. package/dist/src/databases/engines/mysql/format.d.ts.map +1 -1
  76. package/dist/src/databases/engines/mysql/getStructure.d.ts +12 -12
  77. package/dist/src/databases/engines/mysql/getStructure.d.ts.map +1 -1
  78. package/dist/src/databases/engines/mysql/getViews.d.ts.map +1 -1
  79. package/dist/src/databases/engines/mysql/placeholders.d.ts.map +1 -1
  80. package/dist/src/databases/engines/mysql/query/index.d.ts.map +1 -1
  81. package/dist/src/databases/engines/postgresql/auth.d.ts.map +1 -1
  82. package/dist/src/databases/engines/postgresql/connection.d.ts.map +1 -1
  83. package/dist/src/databases/engines/postgresql/format.d.ts.map +1 -1
  84. package/dist/src/databases/engines/postgresql/getStructure.d.ts +12 -12
  85. package/dist/src/databases/engines/postgresql/getStructure.d.ts.map +1 -1
  86. package/dist/src/databases/engines/postgresql/getViews.d.ts.map +1 -1
  87. package/dist/src/databases/engines/postgresql/query/index.d.ts.map +1 -1
  88. package/dist/src/databases/engines/shared/claims.d.ts.map +1 -1
  89. package/dist/src/databases/high-level-operations.d.ts +10 -59
  90. package/dist/src/databases/high-level-operations.d.ts.map +1 -1
  91. package/dist/src/databases/metadata/structure.d.ts +12 -12
  92. package/dist/src/databases/metadata/structure.d.ts.map +1 -1
  93. package/dist/src/databases/schemaBuilder/generateCreateTable/index.d.ts.map +1 -1
  94. package/dist/src/databases/schemaBuilder/generateCreateView/index.d.ts.map +1 -1
  95. package/dist/src/databases/schemaBuilder/generateInsert/index.d.ts.map +1 -1
  96. package/dist/src/databases/schemaBuilder/generateSchemaCreation/index.d.ts.map +1 -1
  97. package/dist/src/databases/schemaBuilder/mssqlToPostgres/convertView.d.ts.map +1 -1
  98. package/dist/src/databases/schemaBuilder/utils.d.ts +2 -2
  99. package/dist/src/databases/schemaBuilder/utils.d.ts.map +1 -1
  100. package/dist/src/databases/sqlTypeUtils.d.ts.map +1 -1
  101. package/dist/src/databases/transformers/data-transformers.d.ts +34 -32
  102. package/dist/src/databases/transformers/data-transformers.d.ts.map +1 -1
  103. package/dist/src/databases/transformers/genResolverName.d.ts.map +1 -1
  104. package/dist/src/databases/transformers/graphqlName.d.ts.map +1 -1
  105. package/dist/src/index.d.ts +6 -5
  106. package/dist/src/index.d.ts.map +1 -1
  107. package/dist/src/logging/index.d.ts.map +1 -1
  108. package/dist/src/queues/kafka.d.ts.map +1 -1
  109. package/dist/src/queues/rabbitmq.d.ts.map +1 -1
  110. package/dist/src/remoteREST/index.d.ts.map +1 -1
  111. package/dist/src/remoteREST/parse.d.ts.map +1 -1
  112. package/dist/src/remoteREST/proxy.d.ts.map +1 -1
  113. package/dist/src/remoteREST/transform.d.ts.map +1 -1
  114. package/dist/src/remoteSchemas/index.d.ts.map +1 -1
  115. package/dist/src/remoteSchemas/introspect.d.ts.map +1 -1
  116. package/dist/src/remoteSchemas/proxy.d.ts.map +1 -1
  117. package/dist/src/remoteSchemas/transform.d.ts.map +1 -1
  118. package/dist/src/singletons/ai.d.ts.map +1 -1
  119. package/dist/src/singletons/authentication.d.ts.map +1 -1
  120. package/dist/src/singletons/cache/lruCacheStore.d.ts.map +1 -1
  121. package/dist/src/singletons/cache/redisCacheStore.d.ts.map +1 -1
  122. package/dist/src/singletons/cache/registry.d.ts.map +1 -1
  123. package/dist/src/singletons/cron.d.ts.map +1 -1
  124. package/dist/src/singletons/databases.d.ts.map +1 -1
  125. package/dist/src/singletons/env.d.ts +190 -187
  126. package/dist/src/singletons/env.d.ts.map +1 -1
  127. package/dist/src/singletons/queues.d.ts.map +1 -1
  128. package/dist/src/subscriptions/strategies/index.d.ts.map +1 -1
  129. package/dist/src/subscriptions/utils/polling.d.ts.map +1 -1
  130. package/dist/src/types/db.d.ts.map +1 -1
  131. package/dist/src/types/env.d.ts +641 -630
  132. package/dist/src/types/env.d.ts.map +1 -1
  133. package/dist/src/types/resolver.d.ts.map +1 -1
  134. package/dist/src/types/zod/auth.d.ts +18 -18
  135. package/dist/src/types/zod/configuration.d.ts +298 -293
  136. package/dist/src/types/zod/configuration.d.ts.map +1 -1
  137. package/dist/src/types/zod/db.d.ts +80 -80
  138. package/dist/src/types/zod/db.d.ts.map +1 -1
  139. package/dist/src/types/zod/queue.d.ts +80 -80
  140. package/dist/src/types/zod/queue.d.ts.map +1 -1
  141. package/dist/src/utils/benchmark.d.ts.map +1 -1
  142. package/dist/src/utils/responses.d.ts.map +1 -1
  143. package/dist/src/utils/safeJSONParse.d.ts.map +1 -1
  144. package/dist/src/utils/selection.d.ts.map +1 -1
  145. package/dist/src/utils/sessionVariables.d.ts +5 -1
  146. package/dist/src/utils/sessionVariables.d.ts.map +1 -1
  147. package/dist/src/utils/writeSchema.d.ts.map +1 -1
  148. package/dist/tsconfig.tsbuildinfo +1 -1
  149. package/package.json +5 -5
  150. package/playgrounds/console/index.html +18 -15
  151. package/playgrounds/graphiql/index.html +854 -622
  152. package/playgrounds/scalar/index.html +5 -5
  153. package/src/ai/README.md +257 -0
  154. package/src/analyzeQuery/analyzers/selectionAnalyzer.ts +7 -1
  155. package/src/analyzeQuery/resolveVariables.ts +130 -16
  156. package/src/config/types/auth.ts +7 -1
  157. package/src/config/types/db.ts +8 -0
  158. package/src/databases/engines/mysql/connection.ts +1 -0
  159. package/src/logging/index.ts +3 -1
  160. package/src/types/db.ts +0 -1
  161. package/src/types/zod/db.ts +1 -7
  162. package/src/types/zod/queue.ts +2 -10
  163. package/src/utils/sessionVariables.ts +7 -1
@@ -3,160 +3,6 @@ export declare const env: {
3
3
  nodeEnv: string;
4
4
  version: string;
5
5
  configuration: string | {
6
- enabledDatabases: {
7
- name: string;
8
- enabled: boolean;
9
- type: "mssql" | "mysql" | "pg";
10
- connection: {
11
- host: string;
12
- port: number;
13
- user: string;
14
- password: string;
15
- database: string;
16
- };
17
- fieldNaming: string;
18
- repository?: import("../config").CustomRepositoryFactory<import("../config").DatabaseType> | undefined;
19
- onConnect?: import("../config").OnConnectHandler<import("../config").DatabaseType> | undefined;
20
- schema?: {
21
- database: Record<string, {
22
- columns: {
23
- name: string;
24
- dataType: string;
25
- isNullable: boolean;
26
- description: string | null;
27
- virtual?: boolean | undefined;
28
- function?: string | undefined;
29
- params?: string[] | undefined;
30
- expression?: string | undefined;
31
- }[];
32
- relationships: {
33
- schema: string;
34
- name: string;
35
- columns: {
36
- source: string;
37
- target: string;
38
- }[];
39
- conditions?: {
40
- operator: "eq" | "neq" | "gt" | "gte" | "lt" | "lte" | "like" | "is_null" | "is_not_null";
41
- source?: string | undefined;
42
- target?: string | undefined;
43
- value?: string | number | boolean | undefined;
44
- }[] | undefined;
45
- }[];
46
- columnDescriptions: Record<string, string>;
47
- description?: string | undefined;
48
- }>;
49
- excludedTables: string[];
50
- } | undefined;
51
- connectionOptions?: {
52
- max: number;
53
- idleTimeout: number;
54
- connectionTimeout: number;
55
- maxLifetime: number;
56
- tls: boolean;
57
- prepare: boolean;
58
- bigint: boolean;
59
- } | {
60
- pool: {
61
- max: number;
62
- min: number;
63
- idleTimeout: number;
64
- };
65
- connectionTimeout: number;
66
- requestTimeout: number;
67
- encrypt: boolean;
68
- trustServerCertificate: boolean;
69
- trustedConnection: boolean;
70
- parseJSON: boolean;
71
- } | undefined;
72
- }[];
73
- auth: {
74
- databaseEntity: {
75
- name: string;
76
- enabled: boolean;
77
- type: "mssql" | "mysql" | "pg";
78
- connection: {
79
- host: string;
80
- port: number;
81
- user: string;
82
- password: string;
83
- database: string;
84
- };
85
- fieldNaming: string;
86
- repository?: import("../config").CustomRepositoryFactory<import("../config").DatabaseType> | undefined;
87
- onConnect?: import("../config").OnConnectHandler<import("../config").DatabaseType> | undefined;
88
- schema?: {
89
- database: Record<string, {
90
- columns: {
91
- name: string;
92
- dataType: string;
93
- isNullable: boolean;
94
- description: string | null;
95
- virtual?: boolean | undefined;
96
- function?: string | undefined;
97
- params?: string[] | undefined;
98
- expression?: string | undefined;
99
- }[];
100
- relationships: {
101
- schema: string;
102
- name: string;
103
- columns: {
104
- source: string;
105
- target: string;
106
- }[];
107
- conditions?: {
108
- operator: "eq" | "neq" | "gt" | "gte" | "lt" | "lte" | "like" | "is_null" | "is_not_null";
109
- source?: string | undefined;
110
- target?: string | undefined;
111
- value?: string | number | boolean | undefined;
112
- }[] | undefined;
113
- }[];
114
- columnDescriptions: Record<string, string>;
115
- description?: string | undefined;
116
- }>;
117
- excludedTables: string[];
118
- } | undefined;
119
- connectionOptions?: {
120
- max: number;
121
- idleTimeout: number;
122
- connectionTimeout: number;
123
- maxLifetime: number;
124
- tls: boolean;
125
- prepare: boolean;
126
- bigint: boolean;
127
- } | {
128
- pool: {
129
- max: number;
130
- min: number;
131
- idleTimeout: number;
132
- };
133
- connectionTimeout: number;
134
- requestTimeout: number;
135
- encrypt: boolean;
136
- trustServerCertificate: boolean;
137
- trustedConnection: boolean;
138
- parseJSON: boolean;
139
- } | undefined;
140
- };
141
- permissions: {
142
- [k: string]: {
143
- tables: "ALL" | {
144
- [x: string]: {
145
- columns: "ALL" | string[];
146
- } & import("../types/configuration").TableFilter;
147
- };
148
- storedProcedures: string[] | "ALL";
149
- queues: string[] | "ALL";
150
- operations: string[] | "ALL";
151
- remoteSchemas: string[] | "ALL";
152
- remoteREST: string[] | "ALL";
153
- };
154
- };
155
- enabled: boolean;
156
- database: string;
157
- schema: string;
158
- autoCreateTables: boolean;
159
- };
160
6
  name: string;
161
7
  version: string;
162
8
  tokenStrategy: "jwt" | "paseto_local" | "paseto_public";
@@ -194,14 +40,14 @@ export declare const env: {
194
40
  target: string;
195
41
  }[];
196
42
  conditions?: {
197
- operator: "eq" | "neq" | "gt" | "gte" | "lt" | "lte" | "like" | "is_null" | "is_not_null";
198
43
  source?: string | undefined;
199
44
  target?: string | undefined;
45
+ operator: "eq" | "gt" | "gte" | "is_not_null" | "is_null" | "like" | "lt" | "lte" | "neq";
200
46
  value?: string | number | boolean | undefined;
201
47
  }[] | undefined;
202
48
  }[];
203
- columnDescriptions: Record<string, string>;
204
49
  description?: string | undefined;
50
+ columnDescriptions: Record<string, string>;
205
51
  }>;
206
52
  excludedTables: string[];
207
53
  } | undefined;
@@ -211,6 +57,7 @@ export declare const env: {
211
57
  connectionTimeout: number;
212
58
  maxLifetime: number;
213
59
  tls: boolean;
60
+ allowPublicKeyRetrieval: boolean;
214
61
  prepare: boolean;
215
62
  bigint: boolean;
216
63
  } | {
@@ -231,10 +78,16 @@ export declare const env: {
231
78
  name: string;
232
79
  autoSetup: boolean;
233
80
  enabled: boolean;
81
+ reconnect?: {
82
+ initialDelay: number;
83
+ maxDelay: number;
84
+ multiplier: number;
85
+ maxAttempts: number;
86
+ } | undefined;
234
87
  publishers: Record<string, {
235
88
  topic: string;
236
- persistent: boolean;
237
89
  routingKey?: string | undefined;
90
+ persistent: boolean;
238
91
  headers?: Record<string, string> | undefined;
239
92
  }>;
240
93
  subscribers: Record<string, {
@@ -247,7 +100,7 @@ export declare const env: {
247
100
  handler?: import("../config").SubscriberHandler | undefined;
248
101
  }>;
249
102
  topics: Record<string, {
250
- type: "topic" | "headers" | "direct" | "fanout";
103
+ type: "direct" | "fanout" | "headers" | "topic";
251
104
  durable: boolean;
252
105
  autoDelete: boolean;
253
106
  }>;
@@ -255,16 +108,10 @@ export declare const env: {
255
108
  connection: string | {
256
109
  hostname: string;
257
110
  port: number;
258
- vhost: string;
259
111
  username?: string | undefined;
260
112
  password?: string | undefined;
113
+ vhost: string;
261
114
  };
262
- reconnect?: {
263
- initialDelay: number;
264
- maxDelay: number;
265
- multiplier: number;
266
- maxAttempts: number;
267
- } | undefined;
268
115
  } & {
269
116
  exchanges: Array<{
270
117
  name: string;
@@ -301,10 +148,16 @@ export declare const env: {
301
148
  name: string;
302
149
  autoSetup: boolean;
303
150
  enabled: boolean;
151
+ reconnect?: {
152
+ initialDelay: number;
153
+ maxDelay: number;
154
+ multiplier: number;
155
+ maxAttempts: number;
156
+ } | undefined;
304
157
  publishers: Record<string, {
305
158
  topic: string;
306
- persistent: boolean;
307
159
  routingKey?: string | undefined;
160
+ persistent: boolean;
308
161
  headers?: Record<string, string> | undefined;
309
162
  }>;
310
163
  subscribers: Record<string, {
@@ -317,27 +170,21 @@ export declare const env: {
317
170
  handler?: import("../config").SubscriberHandler | undefined;
318
171
  }>;
319
172
  topics: Record<string, {
320
- type: "topic" | "headers" | "direct" | "fanout";
173
+ type: "direct" | "fanout" | "headers" | "topic";
321
174
  durable: boolean;
322
175
  autoDelete: boolean;
323
176
  }>;
324
177
  type: "kafka";
325
178
  connection: string | {
326
179
  brokers: string | string[];
327
- ssl: boolean;
328
180
  clientId?: string | undefined;
181
+ ssl: boolean;
329
182
  sasl?: {
330
183
  mechanism: "plain" | "scram-sha-256" | "scram-sha-512";
331
184
  username: string;
332
185
  password: string;
333
186
  } | undefined;
334
187
  };
335
- reconnect?: {
336
- initialDelay: number;
337
- maxDelay: number;
338
- multiplier: number;
339
- maxAttempts: number;
340
- } | undefined;
341
188
  } & {
342
189
  exchanges: Array<{
343
190
  name: string;
@@ -374,24 +221,20 @@ export declare const env: {
374
221
  cron: {
375
222
  name: string;
376
223
  pattern: string;
377
- paused: boolean;
378
- catchErrors: boolean;
379
224
  query?: string | undefined;
380
225
  variables?: Record<string, unknown> | undefined;
381
226
  timezone?: string | undefined;
227
+ paused: boolean;
382
228
  maxRuns?: number | undefined;
383
229
  interval?: number | undefined;
384
230
  startAt?: string | undefined;
385
231
  stopAt?: string | undefined;
386
232
  protect?: boolean | undefined;
233
+ catchErrors: boolean;
387
234
  context?: Record<string, any> | undefined;
388
235
  onTick?: import("../types/zod/cron").TickCallback<Record<string, unknown>> | undefined;
389
236
  }[];
390
237
  operations: Record<string, {
391
- graphql: {
392
- enabled: boolean;
393
- name?: string | undefined;
394
- };
395
238
  description?: string | undefined;
396
239
  query?: string | undefined;
397
240
  handler?: import("../config").OperationHandler<any, any, any> | undefined;
@@ -404,51 +247,211 @@ export declare const env: {
404
247
  } | undefined;
405
248
  rest?: {
406
249
  path: string;
407
- method: "GET" | "POST" | "PUT" | "PATCH" | "DELETE";
250
+ method: "DELETE" | "GET" | "PATCH" | "POST" | "PUT";
408
251
  pathParams?: import("zod").ZodType<unknown, unknown, import("zod/v4/core").$ZodTypeInternals<unknown, unknown>> | undefined;
409
252
  queryParams?: import("zod").ZodType<unknown, unknown, import("zod/v4/core").$ZodTypeInternals<unknown, unknown>> | undefined;
410
253
  body?: import("zod").ZodType<unknown, unknown, import("zod/v4/core").$ZodTypeInternals<unknown, unknown>> | undefined;
411
254
  } | undefined;
255
+ graphql: {
256
+ enabled: boolean;
257
+ name?: string | undefined;
258
+ };
412
259
  cache?: {
413
- updateAgeOnHas: boolean;
414
- ttlAutopurge: boolean;
415
260
  max?: number | undefined;
416
261
  maxSize?: number | undefined;
417
262
  ttl?: number | undefined;
418
263
  allowStale?: boolean | undefined;
419
264
  updateAgeOnGet?: boolean | undefined;
265
+ updateAgeOnHas: boolean;
266
+ ttlAutopurge: boolean;
420
267
  } | undefined;
421
268
  }>;
422
269
  remoteSchemas: {
423
270
  name: string;
424
271
  url: string;
425
272
  enabled: boolean;
426
- timeout: number;
427
273
  prefix?: string | undefined;
428
274
  headers?: Record<string, string> | undefined;
429
275
  forwardHeaders?: string[] | undefined;
276
+ timeout: number;
430
277
  introspection?: {
431
278
  interval: number;
432
279
  } | undefined;
433
280
  }[];
434
281
  remoteREST: {
435
282
  name: string;
436
- enabled: boolean;
437
- timeout: number;
438
283
  url?: string | undefined;
439
284
  specUrl?: string | undefined;
440
285
  specPath?: string | undefined;
286
+ enabled: boolean;
441
287
  prefix?: string | undefined;
442
288
  headers?: Record<string, string> | undefined;
443
289
  forwardHeaders?: string[] | undefined;
290
+ timeout: number;
444
291
  }[];
445
292
  ai: {
446
293
  enabled: boolean;
294
+ systemPrompt?: string | undefined;
447
295
  endpoint: string;
448
296
  mcp: {
449
297
  enabled: boolean;
450
298
  };
451
- systemPrompt?: string | undefined;
299
+ };
300
+ enabledDatabases: {
301
+ name: string;
302
+ enabled: boolean;
303
+ type: "mssql" | "mysql" | "pg";
304
+ connection: {
305
+ host: string;
306
+ port: number;
307
+ user: string;
308
+ password: string;
309
+ database: string;
310
+ };
311
+ fieldNaming: string;
312
+ repository?: import("../config").CustomRepositoryFactory<import("../config").DatabaseType> | undefined;
313
+ onConnect?: import("../config").OnConnectHandler<import("../config").DatabaseType> | undefined;
314
+ schema?: {
315
+ database: Record<string, {
316
+ columns: {
317
+ name: string;
318
+ dataType: string;
319
+ isNullable: boolean;
320
+ description: string | null;
321
+ virtual?: boolean | undefined;
322
+ function?: string | undefined;
323
+ params?: string[] | undefined;
324
+ expression?: string | undefined;
325
+ }[];
326
+ relationships: {
327
+ schema: string;
328
+ name: string;
329
+ columns: {
330
+ source: string;
331
+ target: string;
332
+ }[];
333
+ conditions?: {
334
+ source?: string | undefined;
335
+ target?: string | undefined;
336
+ operator: "eq" | "gt" | "gte" | "is_not_null" | "is_null" | "like" | "lt" | "lte" | "neq";
337
+ value?: string | number | boolean | undefined;
338
+ }[] | undefined;
339
+ }[];
340
+ description?: string | undefined;
341
+ columnDescriptions: Record<string, string>;
342
+ }>;
343
+ excludedTables: string[];
344
+ } | undefined;
345
+ connectionOptions?: {
346
+ max: number;
347
+ idleTimeout: number;
348
+ connectionTimeout: number;
349
+ maxLifetime: number;
350
+ tls: boolean;
351
+ allowPublicKeyRetrieval: boolean;
352
+ prepare: boolean;
353
+ bigint: boolean;
354
+ } | {
355
+ pool: {
356
+ max: number;
357
+ min: number;
358
+ idleTimeout: number;
359
+ };
360
+ connectionTimeout: number;
361
+ requestTimeout: number;
362
+ encrypt: boolean;
363
+ trustServerCertificate: boolean;
364
+ trustedConnection: boolean;
365
+ parseJSON: boolean;
366
+ } | undefined;
367
+ }[];
368
+ auth: {
369
+ enabled: boolean;
370
+ database: string;
371
+ schema: string;
372
+ autoCreateTables: boolean;
373
+ permissions: {
374
+ [k: string]: {
375
+ storedProcedures: "ALL" | string[];
376
+ queues: "ALL" | string[];
377
+ operations: "ALL" | string[];
378
+ remoteSchemas: "ALL" | string[];
379
+ remoteREST: "ALL" | string[];
380
+ tables: "ALL" | {
381
+ [x: string]: {
382
+ columns: "ALL" | string[];
383
+ } & import("../types/configuration").TableFilter;
384
+ };
385
+ };
386
+ };
387
+ databaseEntity: {
388
+ name: string;
389
+ enabled: boolean;
390
+ type: "mssql" | "mysql" | "pg";
391
+ connection: {
392
+ host: string;
393
+ port: number;
394
+ user: string;
395
+ password: string;
396
+ database: string;
397
+ };
398
+ fieldNaming: string;
399
+ repository?: import("../config").CustomRepositoryFactory<import("../config").DatabaseType> | undefined;
400
+ onConnect?: import("../config").OnConnectHandler<import("../config").DatabaseType> | undefined;
401
+ schema?: {
402
+ database: Record<string, {
403
+ columns: {
404
+ name: string;
405
+ dataType: string;
406
+ isNullable: boolean;
407
+ description: string | null;
408
+ virtual?: boolean | undefined;
409
+ function?: string | undefined;
410
+ params?: string[] | undefined;
411
+ expression?: string | undefined;
412
+ }[];
413
+ relationships: {
414
+ schema: string;
415
+ name: string;
416
+ columns: {
417
+ source: string;
418
+ target: string;
419
+ }[];
420
+ conditions?: {
421
+ source?: string | undefined;
422
+ target?: string | undefined;
423
+ operator: "eq" | "gt" | "gte" | "is_not_null" | "is_null" | "like" | "lt" | "lte" | "neq";
424
+ value?: string | number | boolean | undefined;
425
+ }[] | undefined;
426
+ }[];
427
+ description?: string | undefined;
428
+ columnDescriptions: Record<string, string>;
429
+ }>;
430
+ excludedTables: string[];
431
+ } | undefined;
432
+ connectionOptions?: {
433
+ max: number;
434
+ idleTimeout: number;
435
+ connectionTimeout: number;
436
+ maxLifetime: number;
437
+ tls: boolean;
438
+ allowPublicKeyRetrieval: boolean;
439
+ prepare: boolean;
440
+ bigint: boolean;
441
+ } | {
442
+ pool: {
443
+ max: number;
444
+ min: number;
445
+ idleTimeout: number;
446
+ };
447
+ connectionTimeout: number;
448
+ requestTimeout: number;
449
+ encrypt: boolean;
450
+ trustServerCertificate: boolean;
451
+ trustedConnection: boolean;
452
+ parseJSON: boolean;
453
+ } | undefined;
454
+ };
452
455
  };
453
456
  } | undefined;
454
457
  prefix: string;
@@ -1 +1 @@
1
- {"version":3,"file":"env.d.ts","sourceRoot":"","sources":["../../../src/singletons/env.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;uBACg8D,CAAC;2BAAW,CAAC;8BAAqB,CAAC;;;;;;2BAA4H,CAAC;kCAAc,CAAC;+BAAkB,CAAC;;;;;;qBAAuF,CAAC;uBAAqB,CAAC;;;;;4BAAsF,CAAC;2BAAW,CAAC;8BAAqB,CAAC;;uBAAwB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;uBAAlc,CAAC;2BAAW,CAAC;8BAAqB,CAAC;;;;;;2BAA4H,CAAC;kCAAc,CAAC;+BAAkB,CAAC;;;;;;qBAAuF,CAAC;uBAAqB,CAAC;;;;;4BAAsF,CAAC;2BAAW,CAAC;8BAAqB,CAAC;;uBAAwB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CADt2E,CAAC"}
1
+ {"version":3,"file":"env.d.ts","sourceRoot":"","sources":["../../../src/singletons/env.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAA4B,CAAC"}
@@ -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,GAAI,SAAS,YAAY,GAAG,SAAS,SAEhE,CAAC;AAEF,eAAO,MAAM,iBAAiB,GAAU,QAAQ,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;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 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/subscriptions/strategies/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,4BAA4B,EAAE,MAAM,UAAU,CAAC;AAKnF;;GAEG;AACH,eAAO,MAAM,kCAAkC,QAAO,4BAWrD,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,oBAAoB,GAC/B,UAAU,4BAA4B,EACtC,QAAQ,MAAM,GAAG,SAAS,KACzB,oBAAoB,GAAG,SAMzB,CAAC;AAGF,OAAO,EAAE,kCAAkC,EAAE,MAAM,YAAY,CAAC;AAChE,OAAO,EAAE,+BAA+B,EAAE,MAAM,SAAS,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/subscriptions/strategies/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,4BAA4B,EAAE,MAAM,UAAU,CAAC;AAKnF;;GAEG;AACH,eAAO,MAAM,kCAAkC,QAAO,4BAWrD,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,oBAAoB,aACrB,4BAA4B,UAC9B,MAAM,GAAG,SAAS,KACzB,oBAAoB,GAAG,SAMzB,CAAC;AAGF,OAAO,EAAE,kCAAkC,EAAE,MAAM,YAAY,CAAC;AAChE,OAAO,EAAE,+BAA+B,EAAE,MAAM,SAAS,CAAC"}
@@ -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;AAKlE,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,GAC/B,QAAQ,oBAAoB,KAC3B,OAAO,CAAC,cAAc,CAsExB,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;AAEtE,OAAO,KAAK,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAKlE,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,CAsExB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"db.d.ts","sourceRoot":"","sources":["../../../src/types/db.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,KAAK,EACV,sBAAsB,EACtB,yBAAyB,EACzB,kBAAkB,EACnB,MAAM,cAAc,CAAC;AACtB,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAElE,OAAO,EACL,oBAAoB,EACpB,sBAAsB,EACtB,kBAAkB,EAClB,YAAY,EACZ,cAAc,EACd,QAAQ,EACR,OAAO,EAER,MAAM,UAAU,CAAC;AAGlB,YAAY,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAEnD;;;;;;;;;;;;;;;;;;GAkBG;AAGH,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,cAAc,CAAC,CAAC;AAC1D,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,YAAY,CAAC,CAAC;AACtD,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAG1E,MAAM,MAAM,MAAM,GAAG,WAAW,GAAG,aAAa,CAAC;AAGjD,MAAM,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,QAAQ,CAAC,CAAC;AAC7C,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAIjE,MAAM,MAAM,oBAAoB,GAAG,UAAU,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAChF,KAAK,cAAc,GAAG,UAAU,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAG5D,MAAM,MAAM,aAAa,GAAG,IAAI,CAAC,cAAc,EAAE,SAAS,CAAC,GAAG;IAC5D,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,cAAc,CAAC,EAAE,WAAW,CAAC;CAC9B,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG,UAAU,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAG1E,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AACrE,MAAM,MAAM,MAAM,GAAG,iBAAiB,CAAC,QAAQ,CAAC,CAAC;AACjD,MAAM,MAAM,gBAAgB,GAAG,iBAAiB,CAAC,kBAAkB,CAAC,CAAC;AAGrE,MAAM,MAAM,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,OAAO,CAAC,CAAC;AAG3C,OAAO,EACL,oBAAoB,EACpB,sBAAsB,EACtB,kBAAkB,EAClB,YAAY,EACZ,cAAc,EACd,QAAQ,EACR,gBAAgB,EAChB,OAAO,GACR,MAAM,UAAU,CAAC"}
1
+ {"version":3,"file":"db.d.ts","sourceRoot":"","sources":["../../../src/types/db.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,KAAK,EACV,sBAAsB,EACtB,yBAAyB,EACzB,kBAAkB,EACnB,MAAM,cAAc,CAAC;AACtB,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAElE,OAAO,EACL,oBAAoB,EACpB,sBAAsB,EACtB,kBAAkB,EAClB,YAAY,EACZ,cAAc,EACd,QAAQ,EACR,OAAO,EACR,MAAM,UAAU,CAAC;AAGlB,YAAY,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAEnD;;;;;;;;;;;;;;;;;;GAkBG;AAGH,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,cAAc,CAAC,CAAC;AAC1D,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,YAAY,CAAC,CAAC;AACtD,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAG1E,MAAM,MAAM,MAAM,GAAG,WAAW,GAAG,aAAa,CAAC;AAGjD,MAAM,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,QAAQ,CAAC,CAAC;AAC7C,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAIjE,MAAM,MAAM,oBAAoB,GAAG,UAAU,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAChF,KAAK,cAAc,GAAG,UAAU,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAG5D,MAAM,MAAM,aAAa,GAAG,IAAI,CAAC,cAAc,EAAE,SAAS,CAAC,GAAG;IAC5D,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,cAAc,CAAC,EAAE,WAAW,CAAC;CAC9B,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG,UAAU,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAG1E,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AACrE,MAAM,MAAM,MAAM,GAAG,iBAAiB,CAAC,QAAQ,CAAC,CAAC;AACjD,MAAM,MAAM,gBAAgB,GAAG,iBAAiB,CAAC,kBAAkB,CAAC,CAAC;AAGrE,MAAM,MAAM,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,OAAO,CAAC,CAAC;AAG3C,OAAO,EACL,oBAAoB,EACpB,sBAAsB,EACtB,kBAAkB,EAClB,YAAY,EACZ,cAAc,EACd,QAAQ,EACR,gBAAgB,EAChB,OAAO,GACR,MAAM,UAAU,CAAC"}