@graphoria/server 0.2.2 → 0.3.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.
- package/README.md +25 -20
- package/dist/src/ai/tools/core.d.ts +6 -1
- package/dist/src/ai/tools/core.d.ts.map +1 -1
- package/dist/src/ai/tools/core.test.d.ts +2 -0
- package/dist/src/ai/tools/core.test.d.ts.map +1 -0
- package/dist/src/analyzeQuery/costLimit.d.ts +30 -0
- package/dist/src/analyzeQuery/costLimit.d.ts.map +1 -0
- package/dist/src/analyzeQuery/costLimit.test.d.ts +2 -0
- package/dist/src/analyzeQuery/costLimit.test.d.ts.map +1 -0
- package/dist/src/analyzeQuery/depthLimit.d.ts.map +1 -1
- package/dist/src/analyzeQuery/fragments.d.ts +6 -0
- package/dist/src/analyzeQuery/fragments.d.ts.map +1 -0
- package/dist/src/config/types/ai.d.ts +0 -6
- package/dist/src/config/types/ai.d.ts.map +1 -1
- package/dist/src/config/types/auth.d.ts +8 -29
- package/dist/src/config/types/auth.d.ts.map +1 -1
- package/dist/src/config/types/cron.d.ts +0 -94
- package/dist/src/config/types/cron.d.ts.map +1 -1
- package/dist/src/config/types/db.d.ts +2 -87
- package/dist/src/config/types/db.d.ts.map +1 -1
- package/dist/src/config/types/operation.d.ts +4 -0
- package/dist/src/config/types/operation.d.ts.map +1 -1
- package/dist/src/config/types/operation.test.d.ts +2 -0
- package/dist/src/config/types/operation.test.d.ts.map +1 -0
- package/dist/src/config/types/queue.d.ts +0 -47
- package/dist/src/config/types/queue.d.ts.map +1 -1
- package/dist/src/config/types/remote-rest.d.ts +0 -9
- package/dist/src/config/types/remote-rest.d.ts.map +1 -1
- package/dist/src/config/types/remote-schema.d.ts +0 -10
- package/dist/src/config/types/remote-schema.d.ts.map +1 -1
- package/dist/src/configuration/crossReferences.d.ts +27 -0
- package/dist/src/configuration/crossReferences.d.ts.map +1 -0
- package/dist/src/configuration/crossReferences.test.d.ts +2 -0
- package/dist/src/configuration/crossReferences.test.d.ts.map +1 -0
- package/dist/src/configuration/getSchemas/index.d.ts +70 -4
- package/dist/src/configuration/getSchemas/index.d.ts.map +1 -1
- package/dist/src/configuration/getSchemas/mergeEntities/index.d.ts +3 -0
- package/dist/src/configuration/getSchemas/mergeEntities/index.d.ts.map +1 -1
- package/dist/src/configuration/gql/handleGraphQLRequestFactory.d.ts +32 -2
- package/dist/src/configuration/gql/handleGraphQLRequestFactory.d.ts.map +1 -1
- package/dist/src/configuration/gql/handleGraphQLSubscriptionFactory.d.ts.map +1 -1
- package/dist/src/configuration/index.d.ts +41 -2
- package/dist/src/configuration/index.d.ts.map +1 -1
- package/dist/src/configuration/rest/handleRESTRequestFactory.d.ts.map +1 -1
- package/dist/src/configuration/rest/index.d.ts.map +1 -1
- package/dist/src/console/api.d.ts +7 -5
- package/dist/src/console/api.d.ts.map +1 -1
- package/dist/src/console/session.d.ts +21 -0
- package/dist/src/console/session.d.ts.map +1 -0
- package/dist/src/console/session.test.d.ts +2 -0
- package/dist/src/console/session.test.d.ts.map +1 -0
- package/dist/src/cron/index.d.ts +1 -1
- package/dist/src/cron/index.d.ts.map +1 -1
- package/dist/src/cron/index.test.d.ts +2 -0
- package/dist/src/cron/index.test.d.ts.map +1 -0
- package/dist/src/databases/common.d.ts +12 -4
- package/dist/src/databases/common.d.ts.map +1 -1
- package/dist/src/databases/core/executor.d.ts +6 -2
- package/dist/src/databases/core/executor.d.ts.map +1 -1
- package/dist/src/databases/core/function-mapping.d.ts +4 -3
- package/dist/src/databases/core/function-mapping.d.ts.map +1 -1
- package/dist/src/databases/core/query-builder.d.ts +7 -1
- package/dist/src/databases/core/query-builder.d.ts.map +1 -1
- package/dist/src/databases/engines/mssql/connection.d.ts +29 -6
- package/dist/src/databases/engines/mssql/connection.d.ts.map +1 -1
- package/dist/src/databases/engines/mssql/connection.test.d.ts +2 -0
- package/dist/src/databases/engines/mssql/connection.test.d.ts.map +1 -0
- package/dist/src/databases/engines/mssql/format.d.ts +2 -1
- package/dist/src/databases/engines/mssql/format.d.ts.map +1 -1
- package/dist/src/databases/engines/mssql/query/index.d.ts +3 -2
- package/dist/src/databases/engines/mssql/query/index.d.ts.map +1 -1
- package/dist/src/databases/engines/mysql/connection.d.ts +16 -0
- package/dist/src/databases/engines/mysql/connection.d.ts.map +1 -1
- package/dist/src/databases/engines/mysql/connection.test.d.ts +2 -0
- package/dist/src/databases/engines/mysql/connection.test.d.ts.map +1 -0
- package/dist/src/databases/engines/mysql/format.d.ts +2 -1
- package/dist/src/databases/engines/mysql/format.d.ts.map +1 -1
- package/dist/src/databases/engines/mysql/query/index.d.ts +3 -2
- package/dist/src/databases/engines/mysql/query/index.d.ts.map +1 -1
- package/dist/src/databases/engines/postgresql/connection.d.ts +25 -6
- package/dist/src/databases/engines/postgresql/connection.d.ts.map +1 -1
- package/dist/src/databases/engines/postgresql/connection.test.d.ts +2 -0
- package/dist/src/databases/engines/postgresql/connection.test.d.ts.map +1 -0
- package/dist/src/databases/engines/postgresql/format.d.ts +2 -1
- package/dist/src/databases/engines/postgresql/format.d.ts.map +1 -1
- package/dist/src/databases/engines/postgresql/query/index.d.ts +3 -2
- package/dist/src/databases/engines/postgresql/query/index.d.ts.map +1 -1
- package/dist/src/databases/high-level-operations.d.ts +2 -0
- package/dist/src/databases/high-level-operations.d.ts.map +1 -1
- package/dist/src/databases/transformers/data-transformers.d.ts +2 -0
- package/dist/src/databases/transformers/data-transformers.d.ts.map +1 -1
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/singletons/env.d.ts +19 -0
- package/dist/src/singletons/env.d.ts.map +1 -1
- package/dist/src/singletons/queryTimeout.d.ts +3 -0
- package/dist/src/singletons/queryTimeout.d.ts.map +1 -0
- package/dist/src/subscriptions/strategies/database.d.ts.map +1 -1
- package/dist/src/subscriptions/strategies/database.test.d.ts +2 -0
- package/dist/src/subscriptions/strategies/database.test.d.ts.map +1 -0
- package/dist/src/subscriptions/types.d.ts +4 -1
- package/dist/src/subscriptions/types.d.ts.map +1 -1
- package/dist/src/subscriptions/utils/polling.d.ts.map +1 -1
- package/dist/src/types/env.d.ts +73 -0
- package/dist/src/types/env.d.ts.map +1 -1
- package/dist/src/types/zod/auth.d.ts +12 -0
- package/dist/src/types/zod/auth.d.ts.map +1 -1
- package/dist/src/types/zod/configuration.d.ts +28 -0
- package/dist/src/types/zod/configuration.d.ts.map +1 -1
- package/dist/src/utils/rateLimit.d.ts +65 -0
- package/dist/src/utils/rateLimit.d.ts.map +1 -0
- package/dist/src/utils/rateLimit.test.d.ts +2 -0
- package/dist/src/utils/rateLimit.test.d.ts.map +1 -0
- package/dist/src/utils/responses.d.ts +3 -0
- package/dist/src/utils/responses.d.ts.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +13 -13
- package/playgrounds/console/index.html +7 -7
- package/playgrounds/graphiql/index.html +535 -536
- package/playgrounds/scalar/index.html +1 -1
- package/src/ai/tools/core.ts +30 -6
- package/src/analyzeQuery/costLimit.ts +236 -0
- package/src/analyzeQuery/depthLimit.ts +4 -23
- package/src/analyzeQuery/fragments.ts +18 -0
- package/src/config/types/auth.ts +7 -0
- package/src/config/types/db.ts +7 -0
- package/src/config/types/operation.ts +4 -0
- package/src/configuration/crossReferences.ts +340 -0
- package/src/configuration/getSchemas/type-definition-generator/index.ts +1 -1
- package/src/configuration/gql/buildExecute.ts +1 -1
- package/src/configuration/gql/handleGraphQLRequestFactory.ts +80 -10
- package/src/configuration/gql/handleGraphQLSubscriptionFactory.ts +22 -2
- package/src/configuration/index.ts +24 -6
- package/src/configuration/rest/handleRESTRequestFactory.ts +6 -4
- package/src/configuration/rest/index.ts +11 -2
- package/src/console/api.ts +51 -10
- package/src/console/session.ts +125 -0
- package/src/cron/index.ts +6 -2
- package/src/databases/common.ts +55 -10
- package/src/databases/core/executor.ts +12 -2
- package/src/databases/core/function-mapping.ts +5 -0
- package/src/databases/core/query-builder.ts +7 -0
- package/src/databases/engines/mssql/connection.ts +66 -14
- package/src/databases/engines/mssql/format.ts +3 -1
- package/src/databases/engines/mssql/query/index.ts +12 -2
- package/src/databases/engines/mysql/connection.ts +30 -13
- package/src/databases/engines/mysql/format.ts +3 -1
- package/src/databases/engines/mysql/query/index.ts +25 -4
- package/src/databases/engines/postgresql/connection.ts +76 -15
- package/src/databases/engines/postgresql/format.ts +3 -1
- package/src/databases/engines/postgresql/query/index.ts +12 -3
- package/src/databases/high-level-operations.ts +13 -2
- package/src/index.ts +82 -13
- package/src/singletons/queryTimeout.ts +20 -0
- package/src/subscriptions/strategies/database.ts +19 -3
- package/src/subscriptions/types.ts +4 -1
- package/src/subscriptions/utils/polling.ts +6 -3
- package/src/types/env.ts +21 -1
- package/src/utils/rateLimit.ts +209 -0
- package/src/utils/responses.ts +10 -0
- package/src/ai/README.md +0 -257
|
@@ -2,13 +2,36 @@ import { ConnectionPool } from "mssql";
|
|
|
2
2
|
import type { VariableDefinition } from "../../../analyzeQuery/types";
|
|
3
3
|
import type { Database } from "../../../types/configuration";
|
|
4
4
|
import type { ProcedureResolver } from "../../../types/db";
|
|
5
|
+
export declare const poolOptions: (db: Database, timeoutMs?: number) => {
|
|
6
|
+
server: string;
|
|
7
|
+
port: number;
|
|
8
|
+
user: string;
|
|
9
|
+
password: string;
|
|
10
|
+
database: string;
|
|
11
|
+
connectionTimeout: number;
|
|
12
|
+
requestTimeout: number;
|
|
13
|
+
options: {
|
|
14
|
+
encrypt: boolean;
|
|
15
|
+
trustServerCertificate: boolean;
|
|
16
|
+
trustedConnection: boolean;
|
|
17
|
+
};
|
|
18
|
+
pool: {
|
|
19
|
+
max: number;
|
|
20
|
+
min: number;
|
|
21
|
+
idleTimeoutMillis: number;
|
|
22
|
+
acquireTimeoutMillis: number;
|
|
23
|
+
};
|
|
24
|
+
parseJSON: boolean;
|
|
25
|
+
};
|
|
26
|
+
/** The bound the pool already applies, so the executor can tell an override from the default. */
|
|
27
|
+
export declare const poolRequestTimeoutMs: (db: Database) => number;
|
|
5
28
|
export declare const getPool: (db: Database) => Promise<ConnectionPool>;
|
|
6
29
|
export declare const getPoolSingleton: (db: Database) => Promise<ConnectionPool>;
|
|
7
|
-
export declare const executeQueryFactory: (singleQuery?: boolean) => <T>(query: string, db: Database, variablesDefinition?: VariableDefinition[], params?: Record<string, unknown
|
|
8
|
-
export declare const executeQuery: <T>(query: string, db: Database, variablesDefinition?: VariableDefinition[], params?: Record<string, unknown
|
|
9
|
-
export declare const executeQuerySingle: <T>(query: string, db: Database, variablesDefinition?: VariableDefinition[], params?: Record<string, unknown
|
|
10
|
-
export declare const executeQueryJSONFactory: (singleQuery?: boolean) => <T>(query: string, db: Database, variablesDefinition?: VariableDefinition[], params?: Record<string, unknown
|
|
11
|
-
export declare const executeQueryJSON: <T>(query: string, db: Database, variablesDefinition?: VariableDefinition[], params?: Record<string, unknown
|
|
12
|
-
export declare const executeQueryJSONSingle: <T>(query: string, db: Database, variablesDefinition?: VariableDefinition[], params?: Record<string, unknown
|
|
30
|
+
export declare const executeQueryFactory: (singleQuery?: boolean) => <T>(query: string, db: Database, variablesDefinition?: VariableDefinition[], params?: Record<string, unknown>, timeoutMs?: number) => Promise<import("mssql").IRecordSet<T extends any[] ? T[0] : T>>;
|
|
31
|
+
export declare const executeQuery: <T>(query: string, db: Database, variablesDefinition?: VariableDefinition[], params?: Record<string, unknown>, timeoutMs?: number) => Promise<import("mssql").IRecordSet<T extends any[] ? T[0] : T>>;
|
|
32
|
+
export declare const executeQuerySingle: <T>(query: string, db: Database, variablesDefinition?: VariableDefinition[], params?: Record<string, unknown>, timeoutMs?: number) => Promise<import("mssql").IRecordSet<T extends any[] ? T[0] : T>>;
|
|
33
|
+
export declare const executeQueryJSONFactory: (singleQuery?: boolean) => <T>(query: string, db: Database, variablesDefinition?: VariableDefinition[], params?: Record<string, unknown>, timeoutMs?: number) => Promise<T>;
|
|
34
|
+
export declare const executeQueryJSON: <T>(query: string, db: Database, variablesDefinition?: VariableDefinition[], params?: Record<string, unknown>, timeoutMs?: number) => Promise<T>;
|
|
35
|
+
export declare const executeQueryJSONSingle: <T>(query: string, db: Database, variablesDefinition?: VariableDefinition[], params?: Record<string, unknown>, timeoutMs?: number) => Promise<T>;
|
|
13
36
|
export declare const callStoredProcedure: (sp: ProcedureResolver, variablesDefinition: VariableDefinition[], variables?: Record<string, unknown>) => Promise<boolean>;
|
|
14
37
|
//# sourceMappingURL=connection.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"connection.d.ts","sourceRoot":"","sources":["../../../../../src/databases/engines/mssql/connection.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAA4C,MAAM,OAAO,CAAC;AAGjF,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AACtE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"connection.d.ts","sourceRoot":"","sources":["../../../../../src/databases/engines/mssql/connection.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAA4C,MAAM,OAAO,CAAC;AAGjF,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AACtE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAgB3D,eAAO,MAAM,WAAW,OAAQ,QAAQ,cAAa,MAAM;IAQvD,MAAM;IACN,IAAI;IACJ,IAAI;IACJ,QAAQ;IACR,QAAQ;IACR,iBAAiB;IAKjB,cAAc;IAMd,OAAO;QACL,OAAO;QACP,sBAAsB;QACtB,iBAAiB;;IAEnB,IAAI;QACF,GAAG;QACH,GAAG;QACH,iBAAiB;QACjB,oBAAoB;;IAEtB,SAAS;CAEZ,CAAC;AAEF,iGAAiG;AACjG,eAAO,MAAM,oBAAoB,OAAQ,QAAQ,WAAmC,CAAC;AAgBrF,eAAO,MAAM,OAAO,OAAc,QAAQ,4BAUzC,CAAC;AAEF,eAAO,MAAM,gBAAgB,OAAc,QAAQ,4BACF,CAAC;AAElD,eAAO,MAAM,mBAAmB,8BAEvB,CAAC,SACC,MAAM,MACT,QAAQ,wBACS,kBAAkB,EAAE,WACjC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,cACnB,MAAM,oEAiCnB,CAAC;AAEJ,eAAO,MAAM,YAAY,GAxChB,CAAC,SACC,MAAM,MACT,QAAQ,wBACS,kBAAkB,EAAE,WACjC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,cACnB,MAAM,oEAmC2B,CAAC;AAClD,eAAO,MAAM,kBAAkB,GAzCtB,CAAC,SACC,MAAM,MACT,QAAQ,wBACS,kBAAkB,EAAE,WACjC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,cACnB,MAAM,oEAoCqC,CAAC;AAE5D,eAAO,MAAM,uBAAuB,8BAE3B,CAAC,SACC,MAAM,MACT,QAAQ,wBACS,kBAAkB,EAAE,WACjC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,cACnB,MAAM,KACjB,OAAO,CAAC,CAAC,CAUX,CAAC;AAEJ,eAAO,MAAM,gBAAgB,GAlBpB,CAAC,SACC,MAAM,MACT,QAAQ,wBACS,kBAAkB,EAAE,WACjC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,cACnB,MAAM,KACjB,OAAO,CAAC,CAAC,CAY2C,CAAC;AAC1D,eAAO,MAAM,sBAAsB,GAnB1B,CAAC,SACC,MAAM,MACT,QAAQ,wBACS,kBAAkB,EAAE,WACjC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,cACnB,MAAM,KACjB,OAAO,CAAC,CAAC,CAaqD,CAAC;AAEpE,eAAO,MAAM,mBAAmB,OAC1B,iBAAiB,uBACA,kBAAkB,EAAE,cAC9B,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,qBAwCnC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"connection.test.d.ts","sourceRoot":"","sources":["../../../../../src/databases/engines/mssql/connection.test.ts"],"names":[],"mappings":""}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { AnalysisResult } from "../../../analyzeQuery/types";
|
|
2
2
|
import type { MergedEntities } from "../../../configuration/getSchemas/mergeEntities";
|
|
3
|
+
import type { PageLimits } from "../../common";
|
|
3
4
|
export declare const format: (sql: string) => string;
|
|
4
|
-
export declare const genSql: (entitites: MergedEntities, query: AnalysisResult, variables?: Record<string, unknown>, hash?: boolean) => string;
|
|
5
|
+
export declare const genSql: (entitites: MergedEntities, query: AnalysisResult, variables?: Record<string, unknown>, hash?: boolean, pageLimits?: PageLimits | null) => string;
|
|
5
6
|
//# sourceMappingURL=format.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"format.d.ts","sourceRoot":"","sources":["../../../../../src/databases/engines/mssql/format.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iDAAiD,CAAC;
|
|
1
|
+
{"version":3,"file":"format.d.ts","sourceRoot":"","sources":["../../../../../src/databases/engines/mssql/format.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iDAAiD,CAAC;AACtF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAI/C,eAAO,MAAM,MAAM,QAAS,MAAM,WAI9B,CAAC;AAEL,eAAO,MAAM,MAAM,cACN,cAAc,SAClB,cAAc,cACV,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,+BAEtB,UAAU,GAAG,IAAI,WAK9B,CAAC"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import type { OperationAnalysis, SelectionAnalysis, VariableDefinition } from "../../../../analyzeQuery/types";
|
|
2
2
|
import type { MergedEntities } from "../../../../configuration/getSchemas/mergeEntities";
|
|
3
|
-
|
|
3
|
+
import type { PageLimits } from "../../../common";
|
|
4
|
+
export declare const generateSQL: (entities: MergedEntities, operation: OperationAnalysis, variables?: Record<string, unknown>, forHashMethod?: boolean, pageLimits?: PageLimits | null) => string;
|
|
4
5
|
export declare const buildSQLForField: (entities: MergedEntities, variablesDefinition: VariableDefinition[], variables: Record<string, unknown> | undefined, field: SelectionAnalysis, parentTableName: string | null, parentTableAlias: string | null, level: number, aliasMap: {
|
|
5
6
|
[alias: string]: string;
|
|
6
|
-
}) => string;
|
|
7
|
+
}, pageLimits: PageLimits | null) => string;
|
|
7
8
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/databases/engines/mssql/query/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,EACnB,MAAM,gCAAgC,CAAC;AACxC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oDAAoD,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/databases/engines/mssql/query/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,EACnB,MAAM,gCAAgC,CAAC;AACxC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oDAAoD,CAAC;AACzF,OAAO,KAAK,EAAe,UAAU,EAAE,MAAM,iBAAiB,CAAC;AA2J/D,eAAO,MAAM,WAAW,aACZ,cAAc,aACb,iBAAiB,cACjB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,kBACnB,OAAO,eACV,UAAU,GAAG,IAAI,KAC5B,MAwFF,CAAC;AAEF,eAAO,MAAM,gBAAgB,aACjB,cAAc,uBACH,kBAAkB,EAAE,aAC9B,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,qBAC3B,iBAAiB,mBACP,MAAM,GAAG,IAAI,oBACZ,MAAM,GAAG,IAAI,SACxB,MAAM,YACH;IAAE,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAA;CAAE,cACzB,UAAU,GAAG,IAAI,KAC5B,MA4FF,CAAC"}
|
|
@@ -2,6 +2,22 @@ import { SQL } from "bun";
|
|
|
2
2
|
import type { VariableDefinition } from "../../../analyzeQuery/types";
|
|
3
3
|
import type { Database } from "../../../types/configuration";
|
|
4
4
|
import type { ProcedureResolver } from "../../../types/db";
|
|
5
|
+
export declare const poolOptions: (db: Database) => {
|
|
6
|
+
host: string;
|
|
7
|
+
port: number;
|
|
8
|
+
username: string;
|
|
9
|
+
password: string;
|
|
10
|
+
database: string;
|
|
11
|
+
adapter: "mysql";
|
|
12
|
+
max: number;
|
|
13
|
+
idleTimeout: number;
|
|
14
|
+
connectionTimeout: number;
|
|
15
|
+
maxLifetime: number;
|
|
16
|
+
tls: boolean;
|
|
17
|
+
allowPublicKeyRetrieval: boolean;
|
|
18
|
+
prepare: boolean;
|
|
19
|
+
bigint: boolean;
|
|
20
|
+
};
|
|
5
21
|
export declare const getPool: (db: Database) => Promise<SQL>;
|
|
6
22
|
export declare const getPoolSingleton: (db: Database) => Promise<SQL>;
|
|
7
23
|
export declare const executeQueryFactory: (singleQuery?: boolean) => <T>(query: string, db: Database, variablesDefinition?: VariableDefinition[], values?: Record<string, unknown>) => Promise<T>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"connection.d.ts","sourceRoot":"","sources":["../../../../../src/databases/engines/mysql/connection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAG1B,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AACtE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"connection.d.ts","sourceRoot":"","sources":["../../../../../src/databases/engines/mysql/connection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAG1B,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AACtE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAc3D,eAAO,MAAM,WAAW,OAAQ,QAAQ;IAOpC,IAAI;IACJ,IAAI;IACJ,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,OAAO,EAAE,OAAO;IAChB,GAAG;IACH,WAAW;IACX,iBAAiB;IACjB,WAAW;IACX,GAAG;IACH,uBAAuB;IACvB,OAAO;IACP,MAAM;CAET,CAAC;AAEF,eAAO,MAAM,OAAO,OAAc,QAAQ,iBAMzC,CAAC;AAEF,eAAO,MAAM,gBAAgB,OAAc,QAAQ,iBAAyC,CAAC;AAE7F,eAAO,MAAM,mBAAmB,8BAEvB,CAAC,SACC,MAAM,MACT,QAAQ,wBACS,kBAAkB,EAAE,WACjC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,eAchC,CAAC;AAEJ,eAAO,MAAM,YAAY,GApBhB,CAAC,SACC,MAAM,MACT,QAAQ,wBACS,kBAAkB,EAAE,WACjC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,eAgBc,CAAC;AAClD,eAAO,MAAM,kBAAkB,GArBtB,CAAC,SACC,MAAM,MACT,QAAQ,wBACS,kBAAkB,EAAE,WACjC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,eAiBwB,CAAC;AAE5D,eAAO,MAAM,uBAAuB,8BAE3B,CAAC,SACC,MAAM,MACT,QAAQ,wBACS,kBAAkB,EAAE,WACjC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,eAUhC,CAAC;AAEJ,eAAO,MAAM,gBAAgB,GAhBpB,CAAC,SACC,MAAM,MACT,QAAQ,wBACS,kBAAkB,EAAE,WACjC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,eAYsB,CAAC;AAC1D,eAAO,MAAM,sBAAsB,GAjB1B,CAAC,SACC,MAAM,MACT,QAAQ,wBACS,kBAAkB,EAAE,WACjC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,eAagC,CAAC;AAEpE,eAAO,MAAM,mBAAmB,OAC1B,iBAAiB,uBACA,kBAAkB,EAAE,aAC9B,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,qBAgBnC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"connection.test.d.ts","sourceRoot":"","sources":["../../../../../src/databases/engines/mysql/connection.test.ts"],"names":[],"mappings":""}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { AnalysisResult } from "../../../analyzeQuery/types";
|
|
2
2
|
import type { MergedEntities } from "../../../configuration/getSchemas/mergeEntities";
|
|
3
|
+
import type { PageLimits } from "../../common";
|
|
3
4
|
export declare const format: (sql: string) => string;
|
|
4
|
-
export declare const genSql: (entitites: MergedEntities, query: AnalysisResult, variables?: Record<string, unknown>, hash?: boolean) => string;
|
|
5
|
+
export declare const genSql: (entitites: MergedEntities, query: AnalysisResult, variables?: Record<string, unknown>, hash?: boolean, pageLimits?: PageLimits | null) => string;
|
|
5
6
|
//# sourceMappingURL=format.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"format.d.ts","sourceRoot":"","sources":["../../../../../src/databases/engines/mysql/format.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iDAAiD,CAAC;
|
|
1
|
+
{"version":3,"file":"format.d.ts","sourceRoot":"","sources":["../../../../../src/databases/engines/mysql/format.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iDAAiD,CAAC;AACtF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAI/C,eAAO,MAAM,MAAM,QAAS,MAAM,WAI9B,CAAC;AAEL,eAAO,MAAM,MAAM,cACN,cAAc,SAClB,cAAc,cACV,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,+BAEtB,UAAU,GAAG,IAAI,WAK9B,CAAC"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import type { OperationAnalysis, SelectionAnalysis, VariableDefinition } from "../../../../analyzeQuery/types";
|
|
2
2
|
import type { MergedEntities } from "../../../../configuration/getSchemas/mergeEntities";
|
|
3
|
-
|
|
3
|
+
import type { PageLimits } from "../../../common";
|
|
4
|
+
export declare const generateSQL: (entities: MergedEntities, operation: OperationAnalysis, variables?: Record<string, unknown>, forHashMethod?: boolean, pageLimits?: PageLimits | null, timeoutMs?: number) => string;
|
|
4
5
|
export declare const buildSQLForField: (entities: MergedEntities, variablesDefinition: VariableDefinition[], variables: Record<string, unknown> | undefined, field: SelectionAnalysis, parentTableName: string | null, parentTableAlias: string | null, level: number, aliasMap: {
|
|
5
6
|
[alias: string]: string;
|
|
6
|
-
}) => string;
|
|
7
|
+
}, pageLimits: PageLimits | null) => string;
|
|
7
8
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/databases/engines/mysql/query/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,EACnB,MAAM,gCAAgC,CAAC;AACxC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oDAAoD,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/databases/engines/mysql/query/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,EACnB,MAAM,gCAAgC,CAAC;AACxC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oDAAoD,CAAC;AACzF,OAAO,KAAK,EAAe,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAqJ/D,eAAO,MAAM,WAAW,aACZ,cAAc,aACb,iBAAiB,cACjB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,kBACnB,OAAO,eACV,UAAU,GAAG,IAAI,cACjB,MAAM,KACjB,MAqFF,CAAC;AAEF,eAAO,MAAM,gBAAgB,aACjB,cAAc,uBACH,kBAAkB,EAAE,aAC9B,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,qBAC3B,iBAAiB,mBACP,MAAM,GAAG,IAAI,oBACZ,MAAM,GAAG,IAAI,SACxB,MAAM,YACH;IAAE,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAA;CAAE,cACzB,UAAU,GAAG,IAAI,KAC5B,MA+GF,CAAC"}
|
|
@@ -2,13 +2,32 @@ import { SQL } from "bun";
|
|
|
2
2
|
import type { VariableDefinition } from "../../../analyzeQuery/types";
|
|
3
3
|
import type { Database } from "../../../types/configuration";
|
|
4
4
|
import type { ProcedureResolver } from "../../../types/db";
|
|
5
|
+
export declare const poolOptions: (db: Database, timeoutMs?: number) => {
|
|
6
|
+
host: string;
|
|
7
|
+
port: number;
|
|
8
|
+
user: string;
|
|
9
|
+
password: string;
|
|
10
|
+
database: string;
|
|
11
|
+
max: number;
|
|
12
|
+
idleTimeout: number;
|
|
13
|
+
connectionTimeout: number;
|
|
14
|
+
maxLifetime: number;
|
|
15
|
+
tls: boolean;
|
|
16
|
+
prepare: boolean;
|
|
17
|
+
bigint: boolean;
|
|
18
|
+
connection?: {
|
|
19
|
+
statement_timeout: string;
|
|
20
|
+
} | undefined;
|
|
21
|
+
};
|
|
22
|
+
/** The bound the pool already applies, so the executor can tell an override from the default. */
|
|
23
|
+
export declare const poolStatementTimeoutMs: (db: Database) => number;
|
|
5
24
|
export declare const getPool: (db: Database) => Promise<SQL>;
|
|
6
25
|
export declare const getPoolSingleton: (db: Database) => Promise<SQL>;
|
|
7
|
-
export declare const executeQueryFactory: (singleQuery?: boolean) => <T>(query: string, db: Database, variablesDefinition: VariableDefinition[], values?: Record<string, unknown
|
|
8
|
-
export declare const executeQuery: <T>(query: string, db: Database, variablesDefinition: VariableDefinition[], values?: Record<string, unknown
|
|
9
|
-
export declare const executeQuerySingle: <T>(query: string, db: Database, variablesDefinition: VariableDefinition[], values?: Record<string, unknown
|
|
10
|
-
export declare const executeQueryJSONFactory: (singleQuery?: boolean) => <T>(query: string, db: Database, variablesDefinition?: VariableDefinition[], values?: Record<string, unknown
|
|
11
|
-
export declare const executeQueryJSON: <T>(query: string, db: Database, variablesDefinition?: VariableDefinition[], values?: Record<string, unknown
|
|
12
|
-
export declare const executeQueryJSONSingle: <T>(query: string, db: Database, variablesDefinition?: VariableDefinition[], values?: Record<string, unknown
|
|
26
|
+
export declare const executeQueryFactory: (singleQuery?: boolean) => <T>(query: string, db: Database, variablesDefinition: VariableDefinition[], values?: Record<string, unknown>, timeoutMs?: number) => Promise<T>;
|
|
27
|
+
export declare const executeQuery: <T>(query: string, db: Database, variablesDefinition: VariableDefinition[], values?: Record<string, unknown>, timeoutMs?: number) => Promise<T>;
|
|
28
|
+
export declare const executeQuerySingle: <T>(query: string, db: Database, variablesDefinition: VariableDefinition[], values?: Record<string, unknown>, timeoutMs?: number) => Promise<T>;
|
|
29
|
+
export declare const executeQueryJSONFactory: (singleQuery?: boolean) => <T>(query: string, db: Database, variablesDefinition?: VariableDefinition[], values?: Record<string, unknown>, timeoutMs?: number) => Promise<T>;
|
|
30
|
+
export declare const executeQueryJSON: <T>(query: string, db: Database, variablesDefinition?: VariableDefinition[], values?: Record<string, unknown>, timeoutMs?: number) => Promise<T>;
|
|
31
|
+
export declare const executeQueryJSONSingle: <T>(query: string, db: Database, variablesDefinition?: VariableDefinition[], values?: Record<string, unknown>, timeoutMs?: number) => Promise<T>;
|
|
13
32
|
export declare const callStoredProcedure: (sp: ProcedureResolver, variablesDefinition: VariableDefinition[], variables: Record<string, unknown>) => Promise<unknown>;
|
|
14
33
|
//# sourceMappingURL=connection.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"connection.d.ts","sourceRoot":"","sources":["../../../../../src/databases/engines/postgresql/connection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAG1B,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AACtE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"connection.d.ts","sourceRoot":"","sources":["../../../../../src/databases/engines/postgresql/connection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAG1B,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AACtE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAc3D,eAAO,MAAM,WAAW,OAAQ,QAAQ,cAAa,MAAM;;;;;;;;;;;;;;;;CAyB1D,CAAC;AAEF,iGAAiG;AACjG,eAAO,MAAM,sBAAsB,OAAQ,QAAQ,WACS,CAAC;AAE7D,eAAO,MAAM,OAAO,OAAc,QAAQ,iBAMzC,CAAC;AAEF,eAAO,MAAM,gBAAgB,OAAc,QAAQ,iBAAyC,CAAC;AA+B7F,eAAO,MAAM,mBAAmB,8BAEvB,CAAC,SACC,MAAM,MACT,QAAQ,uBACS,kBAAkB,EAAE,WACjC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,cACnB,MAAM,eAgBnB,CAAC;AAEJ,eAAO,MAAM,YAAY,GAvBhB,CAAC,SACC,MAAM,MACT,QAAQ,uBACS,kBAAkB,EAAE,WACjC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,cACnB,MAAM,eAkB2B,CAAC;AAClD,eAAO,MAAM,kBAAkB,GAxBtB,CAAC,SACC,MAAM,MACT,QAAQ,uBACS,kBAAkB,EAAE,WACjC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,cACnB,MAAM,eAmBqC,CAAC;AAE5D,eAAO,MAAM,uBAAuB,8BAE3B,CAAC,SACC,MAAM,MACT,QAAQ,wBACS,kBAAkB,EAAE,WACjC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,cACnB,MAAM,eAWnB,CAAC;AAEJ,eAAO,MAAM,gBAAgB,GAlBpB,CAAC,SACC,MAAM,MACT,QAAQ,wBACS,kBAAkB,EAAE,WACjC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,cACnB,MAAM,eAamC,CAAC;AAC1D,eAAO,MAAM,sBAAsB,GAnB1B,CAAC,SACC,MAAM,MACT,QAAQ,wBACS,kBAAkB,EAAE,WACjC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,cACnB,MAAM,eAc6C,CAAC;AAEpE,eAAO,MAAM,mBAAmB,OAC1B,iBAAiB,uBACA,kBAAkB,EAAE,aAC9B,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,qBAgBnC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"connection.test.d.ts","sourceRoot":"","sources":["../../../../../src/databases/engines/postgresql/connection.test.ts"],"names":[],"mappings":""}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { AnalysisResult } from "../../../analyzeQuery/types";
|
|
2
2
|
import type { MergedEntities } from "../../../configuration/getSchemas/mergeEntities";
|
|
3
|
+
import type { PageLimits } from "../../common";
|
|
3
4
|
export declare const format: (sql: string) => string;
|
|
4
|
-
export declare const genSql: (entitites: MergedEntities, query: AnalysisResult, variables?: Record<string, unknown>, hash?: boolean) => string;
|
|
5
|
+
export declare const genSql: (entitites: MergedEntities, query: AnalysisResult, variables?: Record<string, unknown>, hash?: boolean, pageLimits?: PageLimits | null) => string;
|
|
5
6
|
//# sourceMappingURL=format.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"format.d.ts","sourceRoot":"","sources":["../../../../../src/databases/engines/postgresql/format.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iDAAiD,CAAC;
|
|
1
|
+
{"version":3,"file":"format.d.ts","sourceRoot":"","sources":["../../../../../src/databases/engines/postgresql/format.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iDAAiD,CAAC;AACtF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAI/C,eAAO,MAAM,MAAM,QAAS,MAAM,WAI9B,CAAC;AAEL,eAAO,MAAM,MAAM,cACN,cAAc,SAClB,cAAc,cACV,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,+BAEtB,UAAU,GAAG,IAAI,WAK9B,CAAC"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import type { OperationAnalysis, SelectionAnalysis, VariableDefinition } from "../../../../analyzeQuery/types";
|
|
2
2
|
import type { MergedEntities } from "../../../../configuration/getSchemas/mergeEntities";
|
|
3
|
-
|
|
3
|
+
import type { PageLimits } from "../../../common";
|
|
4
|
+
export declare const generateSQL: (entities: MergedEntities, operation: OperationAnalysis, variables?: Record<string, unknown>, forHashMethod?: boolean, pageLimits?: PageLimits | null) => string;
|
|
4
5
|
export declare const buildSQLForField: (entities: MergedEntities, variablesDefinition: VariableDefinition[], variables: Record<string, unknown> | undefined, field: SelectionAnalysis, parentTableName: string | null, parentTableAlias: string | null, level: number, aliasMap: {
|
|
5
6
|
[alias: string]: string;
|
|
6
|
-
}) => string;
|
|
7
|
+
}, pageLimits: PageLimits | null) => string;
|
|
7
8
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/databases/engines/postgresql/query/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,EACnB,MAAM,gCAAgC,CAAC;AACxC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oDAAoD,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/databases/engines/postgresql/query/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,EACnB,MAAM,gCAAgC,CAAC;AACxC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oDAAoD,CAAC;AACzF,OAAO,KAAK,EAAe,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAiJ/D,eAAO,MAAM,WAAW,aACZ,cAAc,aACb,iBAAiB,cACjB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,kBACnB,OAAO,eACV,UAAU,GAAG,IAAI,KAC5B,MA2EF,CAAC;AAEF,eAAO,MAAM,gBAAgB,aACjB,cAAc,uBACH,kBAAkB,EAAE,aAC9B,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,qBAC3B,iBAAiB,mBACP,MAAM,GAAG,IAAI,oBACZ,MAAM,GAAG,IAAI,SACxB,MAAM,YACH;IAAE,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAA;CAAE,cACzB,UAAU,GAAG,IAAI,KAC5B,MAwGF,CAAC"}
|
|
@@ -68,6 +68,7 @@ export declare const getDatabasesStructure: (databases: Database[], auth?: Auth,
|
|
|
68
68
|
max: number;
|
|
69
69
|
min: number;
|
|
70
70
|
idleTimeout: number;
|
|
71
|
+
acquireTimeout: number;
|
|
71
72
|
};
|
|
72
73
|
connectionTimeout: number;
|
|
73
74
|
requestTimeout: number;
|
|
@@ -96,6 +97,7 @@ export declare const getDatabasesStructure: (databases: Database[], auth?: Auth,
|
|
|
96
97
|
dashedNameLS: string;
|
|
97
98
|
schemaName: string;
|
|
98
99
|
}[];
|
|
100
|
+
tableNamesByDatabase: Record<string, string[]>;
|
|
99
101
|
}>;
|
|
100
102
|
export type EntitiesOfRole = {
|
|
101
103
|
tables: TableResolver[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"high-level-operations.d.ts","sourceRoot":"","sources":["../../../src/databases/high-level-operations.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAC9D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AACnE,OAAO,KAAK,EACV,IAAI,EACJ,QAAQ,EACR,YAAY,EACZ,UAAU,EACV,WAAW,EAGZ,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,EAAE,iBAAiB,EAAe,aAAa,EAAU,MAAM,aAAa,CAAC;AAEzF,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAI5D;;GAEG;AAEH,eAAO,MAAM,qBAAqB,cACrB,QAAQ,EAAE,SACd,IAAI
|
|
1
|
+
{"version":3,"file":"high-level-operations.d.ts","sourceRoot":"","sources":["../../../src/databases/high-level-operations.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAC9D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AACnE,OAAO,KAAK,EACV,IAAI,EACJ,QAAQ,EACR,YAAY,EACZ,UAAU,EACV,WAAW,EAGZ,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,EAAE,iBAAiB,EAAe,aAAa,EAAU,MAAM,aAAa,CAAC;AAEzF,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAI5D;;GAEG;AAEH,eAAO,MAAM,qBAAqB,cACrB,QAAQ,EAAE,SACd,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA2IZ,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAC3B,MAAM,EAAE,aAAa,EAAE,CAAC;IACxB,gBAAgB,EAAE,iBAAiB,EAAE,CAAC;IACtC,MAAM,EAAE,YAAY,EAAE,CAAC;IACvB,UAAU,EAAE,UAAU,CAAC;IACvB,aAAa,EAAE,oBAAoB,EAAE,CAAC;IACtC,UAAU,EAAE,kBAAkB,EAAE,CAAC;CAClC,CAAC;AAmCF,eAAO,MAAM,kBAAkB,WACrB,aAAa,EAAE,oBACL,iBAAiB,EAAE,UAC7B,YAAY,EAAE,cACV,UAAU,uBACF,WAAW,kBAChB,oBAAoB,EAAE,eACzB,kBAAkB,EAAE,mCA4F/B,CAAC"}
|
|
@@ -82,6 +82,7 @@ export declare const buildTableResolver: (tables: Tables, table: Table, db: Data
|
|
|
82
82
|
max: number;
|
|
83
83
|
min: number;
|
|
84
84
|
idleTimeout: number;
|
|
85
|
+
acquireTimeout: number;
|
|
85
86
|
};
|
|
86
87
|
connectionTimeout: number;
|
|
87
88
|
requestTimeout: number;
|
|
@@ -224,6 +225,7 @@ export declare const buildProcedureResolver: (sp: StoredProcedure, db: Database)
|
|
|
224
225
|
max: number;
|
|
225
226
|
min: number;
|
|
226
227
|
idleTimeout: number;
|
|
228
|
+
acquireTimeout: number;
|
|
227
229
|
};
|
|
228
230
|
connectionTimeout: number;
|
|
229
231
|
requestTimeout: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"data-transformers.d.ts","sourceRoot":"","sources":["../../../../src/databases/transformers/data-transformers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AACzE,OAAO,KAAK,EAAwB,eAAe,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAK3F;;GAEG;AAEH,eAAO,MAAM,yBAAyB,UAC7B,KAAK,cACA,aAAa,CAAC,MAAM,CAAC,MAC7B,QAAQ;;;;;;;;;;;;;;;;;;CAiEb,CAAC;AAEF,eAAO,MAAM,kBAAkB,WAAY,MAAM,SAAS,KAAK,MAAM,QAAQ
|
|
1
|
+
{"version":3,"file":"data-transformers.d.ts","sourceRoot":"","sources":["../../../../src/databases/transformers/data-transformers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AACzE,OAAO,KAAK,EAAwB,eAAe,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAK3F;;GAEG;AAEH,eAAO,MAAM,yBAAyB,UAC7B,KAAK,cACA,aAAa,CAAC,MAAM,CAAC,MAC7B,QAAQ;;;;;;;;;;;;;;;;;;CAiEb,CAAC;AAEF,eAAO,MAAM,kBAAkB,WAAY,MAAM,SAAS,KAAK,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgC5E,CAAC;AAEF,eAAO,MAAM,sBAAsB,OAAQ,eAAe,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgBvE,CAAC"}
|
package/dist/src/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,KAAK,CAAC;AAEtC,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AAYvC,OAAO,EAAE,mBAAmB,EAAmC,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,KAAK,CAAC;AAEtC,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AAYvC,OAAO,EAAE,mBAAmB,EAAmC,MAAM,wBAAwB,CAAC;AAc9F,OAAO,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAGrD,OAAO,EAAE,gBAAgB,EAAE,CAAC;AAE5B,KAAK,YAAY,GACb,QAAQ,GACR,CAAC,CAAC,GAAG,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,QAAQ,GAAG,OAAO,CAAC,QAAQ,GAAG,SAAS,CAAC,CAAC,CAAC;AAEjG,KAAK,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC;AAqF7E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,eAAO,MAAM,mBAAmB,aAAoB,OAAO,CAAC,GAAG,CAAC;;;;;;;;;;;;EAc/D,CAAC;AAuRF;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAsB,cAAc,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,GAAG,CAAC;;;;;;;;;;;;;;;;;;;;;;;;GAoB1D;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAsB,eAAe,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,GAAG,CAAC;;;;;;;;;;;;;;;;;;;GAW3D"}
|
|
@@ -65,6 +65,7 @@ export declare const env: {
|
|
|
65
65
|
max: number;
|
|
66
66
|
min: number;
|
|
67
67
|
idleTimeout: number;
|
|
68
|
+
acquireTimeout: number;
|
|
68
69
|
};
|
|
69
70
|
connectionTimeout: number;
|
|
70
71
|
requestTimeout: number;
|
|
@@ -265,6 +266,7 @@ export declare const env: {
|
|
|
265
266
|
updateAgeOnHas: boolean;
|
|
266
267
|
ttlAutopurge: boolean;
|
|
267
268
|
} | undefined;
|
|
269
|
+
timeout?: number | undefined;
|
|
268
270
|
}>;
|
|
269
271
|
remoteSchemas: {
|
|
270
272
|
name: string;
|
|
@@ -356,6 +358,7 @@ export declare const env: {
|
|
|
356
358
|
max: number;
|
|
357
359
|
min: number;
|
|
358
360
|
idleTimeout: number;
|
|
361
|
+
acquireTimeout: number;
|
|
359
362
|
};
|
|
360
363
|
connectionTimeout: number;
|
|
361
364
|
requestTimeout: number;
|
|
@@ -377,6 +380,10 @@ export declare const env: {
|
|
|
377
380
|
operations: "ALL" | string[];
|
|
378
381
|
remoteSchemas: "ALL" | string[];
|
|
379
382
|
remoteREST: "ALL" | string[];
|
|
383
|
+
rateLimit?: {
|
|
384
|
+
max: number;
|
|
385
|
+
windowMs?: number | undefined;
|
|
386
|
+
} | undefined;
|
|
380
387
|
tables: "ALL" | {
|
|
381
388
|
[x: string]: {
|
|
382
389
|
columns: "ALL" | string[];
|
|
@@ -443,6 +450,7 @@ export declare const env: {
|
|
|
443
450
|
max: number;
|
|
444
451
|
min: number;
|
|
445
452
|
idleTimeout: number;
|
|
453
|
+
acquireTimeout: number;
|
|
446
454
|
};
|
|
447
455
|
connectionTimeout: number;
|
|
448
456
|
requestTimeout: number;
|
|
@@ -466,6 +474,10 @@ export declare const env: {
|
|
|
466
474
|
authStrategy: "jwt" | "paseto_local" | "paseto_public" | undefined;
|
|
467
475
|
queryOnResponse: boolean;
|
|
468
476
|
maxQueryDepth: number;
|
|
477
|
+
defaultPageSize: number;
|
|
478
|
+
maxPageSize: number;
|
|
479
|
+
queryTimeoutMs: number;
|
|
480
|
+
maxQueryCost: number;
|
|
469
481
|
admin: {
|
|
470
482
|
secret: string;
|
|
471
483
|
header: string;
|
|
@@ -480,6 +492,12 @@ export declare const env: {
|
|
|
480
492
|
secretKey: string;
|
|
481
493
|
publicKey: string;
|
|
482
494
|
};
|
|
495
|
+
rateLimit: {
|
|
496
|
+
max: number;
|
|
497
|
+
anonymousMax: number;
|
|
498
|
+
windowMs: number;
|
|
499
|
+
trustProxy: boolean;
|
|
500
|
+
};
|
|
483
501
|
cache: {
|
|
484
502
|
store: "memory" | "redis";
|
|
485
503
|
redisUrl: string;
|
|
@@ -494,6 +512,7 @@ export declare const env: {
|
|
|
494
512
|
console: {
|
|
495
513
|
enabled: boolean;
|
|
496
514
|
endpoint: string;
|
|
515
|
+
sessionExpiresIn: string;
|
|
497
516
|
};
|
|
498
517
|
ai: {
|
|
499
518
|
enabled: boolean | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"env.d.ts","sourceRoot":"","sources":["../../../src/singletons/env.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,GAAG
|
|
1
|
+
{"version":3,"file":"env.d.ts","sourceRoot":"","sources":["../../../src/singletons/env.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAA4B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"queryTimeout.d.ts","sourceRoot":"","sources":["../../../src/singletons/queryTimeout.ts"],"names":[],"mappings":"AAeA,eAAO,MAAM,iBAAiB,OAAQ,MAAM,SAE3C,CAAC;AAEF,eAAO,MAAM,iBAAiB,cAAuB,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,
|
|
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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"database.test.d.ts","sourceRoot":"","sources":["../../../../src/subscriptions/strategies/database.test.ts"],"names":[],"mappings":""}
|
|
@@ -2,6 +2,7 @@ import type { ServerWebSocket } from "bun";
|
|
|
2
2
|
import type { AnalysisResult, SelectionAnalysis, VariableDefinition } from "../analyzeQuery/types";
|
|
3
3
|
import type { GetSchemaReturn } from "../configuration/getSchemas";
|
|
4
4
|
import type { createQueryEventEmitter } from "../utils/event-emitter";
|
|
5
|
+
import type { SessionContext } from "../utils/sessionVariables";
|
|
5
6
|
/**
|
|
6
7
|
* Type for the query event emitter instance
|
|
7
8
|
*/
|
|
@@ -21,7 +22,7 @@ export interface SubscriptionContext {
|
|
|
21
22
|
ws: ServerWebSocket<unknown>;
|
|
22
23
|
/** Unique subscription ID from the client */
|
|
23
24
|
subscriptionId: string;
|
|
24
|
-
/** Analyzed GraphQL query */
|
|
25
|
+
/** Analyzed GraphQL query, with variables and `$session.*` already resolved */
|
|
25
26
|
analysis: AnalysisResult;
|
|
26
27
|
/** The first field being subscribed to */
|
|
27
28
|
field: SelectionAnalysis;
|
|
@@ -31,6 +32,8 @@ export interface SubscriptionContext {
|
|
|
31
32
|
variables: Record<string, unknown>;
|
|
32
33
|
/** Schema and entity information for the current role */
|
|
33
34
|
schemaEntity: GetSchemaReturn;
|
|
35
|
+
/** The caller this subscription belongs to. Load-bearing: it keys the group. */
|
|
36
|
+
session: SessionContext;
|
|
34
37
|
/** Shared event emitter for broadcasting updates */
|
|
35
38
|
eventEmitter: QueryEventEmitter;
|
|
36
39
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/subscriptions/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,KAAK,CAAC;AAC3C,OAAO,KAAK,EAAE,cAAc,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AACnG,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/subscriptions/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,KAAK,CAAC;AAC3C,OAAO,KAAK,EAAE,cAAc,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AACnG,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AACtE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAEhE;;GAEG;AACH,MAAM,MAAM,iBAAiB,GAAG,UAAU,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAE3E;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,KAAK,IAAI,KAAK,GAAG,SAAS,CAAC;IAC3B,IAAI,IAAI,IAAI,CAAC;CACd;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,+BAA+B;IAC/B,EAAE,EAAE,eAAe,CAAC,OAAO,CAAC,CAAC;IAC7B,6CAA6C;IAC7C,cAAc,EAAE,MAAM,CAAC;IACvB,+EAA+E;IAC/E,QAAQ,EAAE,cAAc,CAAC;IACzB,0CAA0C;IAC1C,KAAK,EAAE,iBAAiB,CAAC;IACzB,0CAA0C;IAC1C,mBAAmB,EAAE,kBAAkB,EAAE,CAAC;IAC1C,oFAAoF;IACpF,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnC,yDAAyD;IACzD,YAAY,EAAE,eAAe,CAAC;IAC9B,gFAAgF;IAChF,OAAO,EAAE,cAAc,CAAC;IACxB,oDAAoD;IACpD,YAAY,EAAE,iBAAiB,CAAC;CACjC;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,qDAAqD;IACrD,OAAO,CAAC,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACrC,8FAA8F;IAC9F,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC;;OAEG;IACH,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAExB;;OAEG;IACH,SAAS,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC;IAErE;;OAEG;IACH,kBAAkB,CAAC,OAAO,EAAE,mBAAmB,GAAG,MAAM,CAAC;CAC1D;AAED;;GAEG;AACH,MAAM,MAAM,4BAA4B,GAAG,GAAG,CAAC,MAAM,EAAE,oBAAoB,CAAC,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;
|
|
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"}
|