@graphoria/server 0.2.3 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +29 -20
- package/dist/src/ai/mcp/index.d.ts +9 -2
- package/dist/src/ai/mcp/index.d.ts.map +1 -1
- 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/analyzers/selectionAnalyzer.d.ts.map +1 -1
- 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/authentication/capabilities.d.ts +18 -0
- package/dist/src/authentication/capabilities.d.ts.map +1 -0
- package/dist/src/authentication/capabilities.test.d.ts +2 -0
- package/dist/src/authentication/capabilities.test.d.ts.map +1 -0
- package/dist/src/authentication/jwt.d.ts.map +1 -1
- package/dist/src/authentication/paseto.d.ts.map +1 -1
- package/dist/src/authentication/secrets.d.ts +9 -0
- package/dist/src/authentication/secrets.d.ts.map +1 -0
- package/dist/src/authentication/secrets.test.d.ts +2 -0
- package/dist/src/authentication/secrets.test.d.ts.map +1 -0
- package/dist/src/config/types/auth.d.ts +8 -0
- package/dist/src/config/types/auth.d.ts.map +1 -1
- package/dist/src/config/types/db.d.ts +2 -0
- 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/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 -6
- package/dist/src/configuration/getSchemas/index.d.ts.map +1 -1
- package/dist/src/configuration/getSchemas/mergeEntities/index.d.ts +3 -1
- package/dist/src/configuration/getSchemas/mergeEntities/index.d.ts.map +1 -1
- package/dist/src/configuration/gql/gqlAuthOperations.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 -3
- package/dist/src/configuration/index.d.ts.map +1 -1
- package/dist/src/configuration/rest/generateOpenAPI.d.ts.map +1 -1
- package/dist/src/configuration/rest/generateOpenAPI.test.d.ts +2 -0
- package/dist/src/configuration/rest/generateOpenAPI.test.d.ts.map +1 -0
- 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 +29 -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/databases/common.d.ts +12 -4
- package/dist/src/databases/common.d.ts.map +1 -1
- package/dist/src/databases/core/executor.d.ts +7 -3
- package/dist/src/databases/core/executor.d.ts.map +1 -1
- package/dist/src/databases/core/function-mapping.d.ts +5 -4
- package/dist/src/databases/core/function-mapping.d.ts.map +1 -1
- package/dist/src/databases/core/procedure-arguments.d.ts +17 -0
- package/dist/src/databases/core/procedure-arguments.d.ts.map +1 -0
- package/dist/src/databases/core/procedure-arguments.test.d.ts +2 -0
- package/dist/src/databases/core/procedure-arguments.test.d.ts.map +1 -0
- 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 +30 -7
- 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 +17 -1
- 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 +26 -7
- 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/logging/audit.d.ts +27 -0
- package/dist/src/logging/audit.d.ts.map +1 -0
- package/dist/src/logging/audit.test.d.ts +2 -0
- package/dist/src/logging/audit.test.d.ts.map +1 -0
- package/dist/src/singletons/env.d.ts +27 -4
- 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 +97 -12
- 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 +6 -0
- package/dist/src/utils/responses.d.ts.map +1 -1
- package/dist/src/utils/sessionVariables.d.ts +2 -0
- package/dist/src/utils/sessionVariables.d.ts.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +5 -5
- package/playgrounds/console/index.html +7 -7
- package/playgrounds/graphiql/index.html +548 -685
- package/src/ai/mcp/index.ts +19 -14
- package/src/ai/tools/core.ts +30 -6
- package/src/analyzeQuery/analyzers/selectionAnalyzer.ts +2 -1
- package/src/analyzeQuery/costLimit.ts +236 -0
- package/src/analyzeQuery/depthLimit.ts +4 -23
- package/src/analyzeQuery/fragments.ts +18 -0
- package/src/authentication/capabilities.ts +54 -0
- package/src/authentication/index.ts +3 -3
- package/src/authentication/jwt.ts +30 -25
- package/src/authentication/paseto.ts +36 -26
- package/src/authentication/secrets.ts +30 -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/mergeEntities/index.ts +0 -26
- package/src/configuration/getSchemas/type-definition-generator/index.ts +1 -1
- package/src/configuration/gql/buildExecute.ts +1 -1
- package/src/configuration/gql/gqlAuthOperations.ts +26 -0
- package/src/configuration/gql/handleGraphQLRequestFactory.ts +97 -15
- package/src/configuration/gql/handleGraphQLSubscriptionFactory.ts +31 -2
- package/src/configuration/index.ts +24 -6
- package/src/configuration/rest/generateOpenAPI.ts +61 -11
- package/src/configuration/rest/handleRESTRequestFactory.ts +32 -4
- package/src/configuration/rest/index.ts +11 -2
- package/src/console/api.ts +102 -16
- package/src/console/session.ts +129 -0
- package/src/databases/common.ts +55 -10
- package/src/databases/core/executor.ts +13 -4
- package/src/databases/core/function-mapping.ts +5 -1
- package/src/databases/core/procedure-arguments.ts +25 -0
- package/src/databases/core/query-builder.ts +7 -0
- package/src/databases/engines/mssql/connection.ts +66 -17
- 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 +40 -20
- 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 +86 -22
- 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 +127 -19
- package/src/logging/audit.ts +86 -0
- 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 +47 -9
- package/src/utils/rateLimit.ts +209 -0
- package/src/utils/responses.ts +16 -0
- package/src/utils/sessionVariables.ts +2 -0
package/README.md
CHANGED
|
@@ -76,26 +76,35 @@ await close(); // release database connections
|
|
|
76
76
|
|
|
77
77
|
The server reads a small set of environment variables. Every variable has a sensible default except `JWT_SECRET` (or PASETO equivalents) and `ADMIN_SECRET`, both of which are required.
|
|
78
78
|
|
|
79
|
-
| Variable | Default | Purpose
|
|
80
|
-
| ---------------------- | ------------------------------ |
|
|
81
|
-
| `PORT` | `3000` | HTTP port for `createBunServer`.
|
|
82
|
-
| `JWT_SECRET` | _required_ | Symmetric secret for JWT signing.
|
|
83
|
-
| `JWT_EXPIRES_IN` | `5m` | Access-token lifetime.
|
|
84
|
-
| `JWT_RT_EXPIRES_IN` | `7d` | Refresh-token lifetime.
|
|
85
|
-
| `PASETO_LOCAL_KEY` | _required for_ `paseto_local` | XChaCha20-Poly1305 key (`k4.local.…`).
|
|
86
|
-
| `PASETO_SECRET_KEY` | _required for_ `paseto_public` | Ed25519 secret (`k4.secret.…`).
|
|
87
|
-
| `PASETO_PUBLIC_KEY` | _required for_ `paseto_public` | Ed25519 public (`k4.public.…`).
|
|
88
|
-
| `ADMIN_SECRET` | _required_ | Bypasses RBAC when sent in the admin header.
|
|
89
|
-
| `
|
|
90
|
-
| `
|
|
91
|
-
| `
|
|
92
|
-
| `
|
|
93
|
-
| `
|
|
94
|
-
| `
|
|
95
|
-
| `
|
|
96
|
-
| `
|
|
97
|
-
|
|
98
|
-
|
|
79
|
+
| Variable | Default | Purpose |
|
|
80
|
+
| ---------------------- | ------------------------------ | ---------------------------------------------------------------------------------------------- |
|
|
81
|
+
| `PORT` | `3000` | HTTP port for `createBunServer`. |
|
|
82
|
+
| `JWT_SECRET` | _required_ | Symmetric secret for JWT signing. Comma-separated list to rotate: first signs, all verify. |
|
|
83
|
+
| `JWT_EXPIRES_IN` | `5m` | Access-token lifetime. |
|
|
84
|
+
| `JWT_RT_EXPIRES_IN` | `7d` | Refresh-token lifetime. |
|
|
85
|
+
| `PASETO_LOCAL_KEY` | _required for_ `paseto_local` | XChaCha20-Poly1305 key (`k4.local.…`). Comma-separated list to rotate. |
|
|
86
|
+
| `PASETO_SECRET_KEY` | _required for_ `paseto_public` | Ed25519 secret (`k4.secret.…`). |
|
|
87
|
+
| `PASETO_PUBLIC_KEY` | _required for_ `paseto_public` | Ed25519 public (`k4.public.…`). Comma-separated list to rotate. |
|
|
88
|
+
| `ADMIN_SECRET` | _required_ | Bypasses RBAC when sent in the admin header. Comma-separated list to rotate. |
|
|
89
|
+
| `CONSOLE_READ_SECRET` | _(unset)_ | Opens the console read-only, and nothing else. Comma-separated list to rotate. |
|
|
90
|
+
| `CONSOLE_WRITE_SECRET` | _(unset)_ | Opens the console with queue publish and cron control, and nothing else. Comma-separated. |
|
|
91
|
+
| `AI_SECRET` | _(unset)_ | Opens the REST agent endpoint, and nothing else. Comma-separated list to rotate. |
|
|
92
|
+
| `AI_MCP_SECRET` | _(unset)_ | Opens the MCP gate when `AI_MCP_REQUIRE_ADMIN_SECRET=true`, and nothing else. Comma-separated. |
|
|
93
|
+
| `REDIS_URL` | `redis://localhost:6379` | Refresh-token rotation + cache. |
|
|
94
|
+
| `GRAPHQL_API_ENDPOINT` | `/graphql` | GraphQL endpoint path. |
|
|
95
|
+
| `REST_API_PREFIX` | `/rest` | REST API prefix. |
|
|
96
|
+
| `GRAPHIQL_ENDPOINT` | `/graphiql` | Built-in GraphiQL playground path. |
|
|
97
|
+
| `SCALAR_ENDPOINT` | `/scalar` | Scalar API documentation path. |
|
|
98
|
+
| `OPENAPI_ENDPOINT` | `/openapi.json` | OpenAPI document path. |
|
|
99
|
+
| `CORS_ENABLED` | `true` | Toggle CORS preflight handler. |
|
|
100
|
+
| `MAX_QUERY_DEPTH` | `8` | Reject caller queries deeper than this. `0` disables the limit. |
|
|
101
|
+
| `DEFAULT_PAGE_SIZE` | `100` | Page size applied to a list field that asks for no limit. `0` leaves it unbounded. |
|
|
102
|
+
| `MAX_PAGE_SIZE` | `1000` | Reject a list field asking for more rows than this. `0` removes the ceiling. |
|
|
103
|
+
|
|
104
|
+
The complete list lives in [`packages/server/src/types/env.ts`](./src/types/env.ts). Two more limits
|
|
105
|
+
are not in the table above because they ship **off** — `MAX_QUERY_COST` and `RATE_LIMIT_MAX` — and a
|
|
106
|
+
third, `QUERY_TIMEOUT_MS`, bounds every statement at `10000` ms. All five are documented together in
|
|
107
|
+
[Resource Limits](../../docs/LIMITS.md).
|
|
99
108
|
|
|
100
109
|
## Configuration helpers
|
|
101
110
|
|
|
@@ -1,14 +1,21 @@
|
|
|
1
|
+
import type { CapabilityAuthorizer } from "../../authentication/capabilities";
|
|
1
2
|
import type { AnalyzedConfiguration } from "../../configuration";
|
|
2
3
|
import type { CreateMcpServerOptions } from "./create-server";
|
|
3
4
|
export type CreateMCPRoutesOptions = CreateMcpServerOptions & {
|
|
4
5
|
requireAdminSecret?: boolean;
|
|
5
|
-
|
|
6
|
+
/** Decides whether the presented header grants `mcp`; without one the gate never opens. */
|
|
7
|
+
authorize?: CapabilityAuthorizer;
|
|
6
8
|
adminSecretHeader?: string;
|
|
7
9
|
};
|
|
10
|
+
type RequestServer = {
|
|
11
|
+
requestIP(req: Request): {
|
|
12
|
+
address: string;
|
|
13
|
+
} | null;
|
|
14
|
+
};
|
|
8
15
|
declare const handleMcpGet: (_req: Request) => Promise<Response>;
|
|
9
16
|
declare const handleMcpDelete: (_req: Request) => Promise<Response>;
|
|
10
17
|
export declare const createMCPRoutes: (analyzedConfiguration: AnalyzedConfiguration, options?: CreateMCPRoutesOptions) => {
|
|
11
|
-
POST: (req: Request) => Promise<Response>;
|
|
18
|
+
POST: (req: Request, bunServer?: RequestServer) => Promise<Response>;
|
|
12
19
|
GET: typeof handleMcpGet;
|
|
13
20
|
DELETE: typeof handleMcpDelete;
|
|
14
21
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/ai/mcp/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/ai/mcp/index.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AAC9E,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AACjE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AAM9D,MAAM,MAAM,sBAAsB,GAAG,sBAAsB,GAAG;IAC5D,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,2FAA2F;IAC3F,SAAS,CAAC,EAAE,oBAAoB,CAAC;IACjC,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B,CAAC;AAeF,KAAK,aAAa,GAAG;IAAE,SAAS,CAAC,GAAG,EAAE,OAAO,GAAG;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAA;CAAE,CAAC;AA2C7E,QAAA,MAAM,YAAY,SAAgB,OAAO,sBAAqD,CAAC;AAE/F,QAAA,MAAM,eAAe,SAAgB,OAAO,sBAAqD,CAAC;AAElG,eAAO,MAAM,eAAe,0BACH,qBAAqB,YACnC,sBAAsB;IAE/B,IAAI,QA/CQ,OAAO,cAAc,aAAa;IAgD9C,GAAG;IACH,MAAM;CACN,CAAC"}
|
|
@@ -18,7 +18,7 @@ export type ValidationError = {
|
|
|
18
18
|
column: number;
|
|
19
19
|
}>;
|
|
20
20
|
};
|
|
21
|
-
export type ValidateQueryFn = (query: string) => {
|
|
21
|
+
export type ValidateQueryFn = (query: string, variables?: Record<string, unknown>) => {
|
|
22
22
|
hasErrors: boolean;
|
|
23
23
|
validationErrors: readonly ValidationError[];
|
|
24
24
|
};
|
|
@@ -26,6 +26,11 @@ export type ValidateQueryFn = (query: string) => {
|
|
|
26
26
|
* Build a query validator for a role. Without a positive depth limit it
|
|
27
27
|
* delegates to the role's own `hasErrors`; with one it layers a depth-limit
|
|
28
28
|
* rule on the standard rule set.
|
|
29
|
+
*
|
|
30
|
+
* The cost budget applies on both branches, and there is no MCP-specific
|
|
31
|
+
* override for it. MCP gets its own depth knob because an agent legitimately
|
|
32
|
+
* writes deeper queries than an application does; nothing makes the same
|
|
33
|
+
* argument for asking a database for more rows.
|
|
29
34
|
*/
|
|
30
35
|
export declare const makeValidateQuery: (role: RoleEntities, maxQueryDepth?: number) => ValidateQueryFn;
|
|
31
36
|
export type GraphqlExecOutcome = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../../../../src/ai/tools/core.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,KAAK,CAAC;AAEtC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;
|
|
1
|
+
{"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../../../../src/ai/tools/core.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,KAAK,CAAC;AAEtC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AAOtE;;;GAGG;AACH,MAAM,MAAM,YAAY,GAAG,eAAe,CAAC;AAE3C,eAAO,MAAM,YAAY,YACvB,OAAO,EACP,WAAW,EACX,eAAe,EACf,aAAa,EACb,kBAAkB,EAClB,iBAAiB,CACT,CAAC;AACX,MAAM,MAAM,UAAU,GAAG,CAAC,OAAO,YAAY,CAAC,CAAC,MAAM,CAAC,CAAC;AAEvD,eAAO,MAAM,iBAAiB,QACvB,MAAM,SACJ,WAAW,GAAG;IAAE,IAAI,CAAC,EAAE,QAAQ,GAAG,IAAI,CAAA;CAAE,KAC9C,UAA6D,CAAC;AAEjE,eAAO,MAAM,yBAAyB,UAAW,MAAM,KAAG,OAKzD,CAAC;AAyJF,MAAM,MAAM,eAAe,GAAG;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,aAAa,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAC7D,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG,CAC5B,KAAK,EAAE,MAAM,EACb,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAChC;IACH,SAAS,EAAE,OAAO,CAAC;IACnB,gBAAgB,EAAE,SAAS,eAAe,EAAE,CAAC;CAC9C,CAAC;AAEF;;;;;;;;;GASG;AACH,eAAO,MAAM,iBAAiB,SACrB,YAAY,kBAAkB,MAAM,KAAG,eAwB7C,CAAC;AAIJ,MAAM,MAAM,kBAAkB,GAC1B;IAAE,IAAI,EAAE,WAAW,CAAA;CAAE,GACrB;IAAE,IAAI,EAAE,YAAY,CAAC;IAAC,MAAM,EAAE,eAAe,EAAE,CAAA;CAAE,GACjD;IAAE,IAAI,EAAE,IAAI,CAAC;IAAC,MAAM,EAAE,OAAO,CAAA;CAAE,GAC/B;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AAEvC;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,SACvB,YAAY,iBACH,eAAe,wBACR;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,KAC3E,OAAO,CAAC,kBAAkB,CA0B5B,CAAC;AAIF,MAAM,MAAM,cAAc,GAAG;IAC3B,IAAI,EAAE,UAAU,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,gBAAgB,SACrB,YAAY,oBACA;IAAE,IAAI,CAAC,EAAE,UAAU,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,KACvD,cAAc,EA+EhB,CAAC;AAIF;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,SACvB,YAAY,kBACF;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,UAAU,CAAA;CAAE,KAClD,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IA0G5B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"core.test.d.ts","sourceRoot":"","sources":["../../../../src/ai/tools/core.test.ts"],"names":[],"mappings":""}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"selectionAnalyzer.d.ts","sourceRoot":"","sources":["../../../../src/analyzeQuery/analyzers/selectionAnalyzer.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"selectionAnalyzer.d.ts","sourceRoot":"","sources":["../../../../src/analyzeQuery/analyzers/selectionAnalyzer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,iBAAiB,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAE3E,OAAO,KAAK,EAAa,aAAa,EAAE,MAAM,SAAS,CAAC;AACxD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8CAA8C,CAAC;AACnF,OAAO,KAAK,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAMtE,eAAO,MAAM,iBAAiB,eAChB,SAAS,aAAa,EAAE,cACxB,iBAAiB,YACnB,cAAc,aACb,aAAa,qBACL,kBAAkB,EAAE,sBACnB,kBAAkB,EAAE,KACvC,iBAAiB,EA4H2B,CAAC"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { GraphQLError } from "graphql";
|
|
2
|
+
import type { DocumentNode, GraphQLSchema } from "graphql";
|
|
3
|
+
/**
|
|
4
|
+
* Page bounds the estimate is drawn against. `maxPageSize` is carried, not read:
|
|
5
|
+
* a resolved limit above it is rejected at execution, so the walk never has to
|
|
6
|
+
* clamp — but the estimator needs it the day that ordering changes.
|
|
7
|
+
*/
|
|
8
|
+
export type CostPageLimits = {
|
|
9
|
+
defaultPageSize: number;
|
|
10
|
+
maxPageSize: number;
|
|
11
|
+
};
|
|
12
|
+
/**
|
|
13
|
+
* Estimate how many rows a document asks a database for, before executing it.
|
|
14
|
+
*
|
|
15
|
+
* Every field costs 1 for itself plus the cost of its children multiplied by the
|
|
16
|
+
* page size it requests — the `limit` argument for a list field, resolved through
|
|
17
|
+
* `variables`, falling back to `defaultPageSize`; 1 for anything that returns a
|
|
18
|
+
* single row. Fragment spreads are expanded, so moving a fan-out into a fragment
|
|
19
|
+
* does not hide it.
|
|
20
|
+
*
|
|
21
|
+
* A document carrying several operations is scored by its most expensive one:
|
|
22
|
+
* a request executes one of them.
|
|
23
|
+
*/
|
|
24
|
+
export declare const estimateQueryCost: (document: DocumentNode, schema: GraphQLSchema, variables: Record<string, unknown>, pageLimits: CostPageLimits) => number;
|
|
25
|
+
/**
|
|
26
|
+
* Reject a document whose estimated cost exceeds `maxCost`. Returns `null` when
|
|
27
|
+
* it is within budget.
|
|
28
|
+
*/
|
|
29
|
+
export declare const checkQueryCost: (document: DocumentNode, schema: GraphQLSchema, variables: Record<string, unknown>, pageLimits: CostPageLimits, maxCost: number) => GraphQLError | null;
|
|
30
|
+
//# sourceMappingURL=costLimit.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"costLimit.d.ts","sourceRoot":"","sources":["../../../src/analyzeQuery/costLimit.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAA2B,MAAM,SAAS,CAAC;AAEhE,OAAO,KAAK,EACV,YAAY,EAGZ,aAAa,EAId,MAAM,SAAS,CAAC;AAKjB;;;;GAIG;AACH,MAAM,MAAM,cAAc,GAAG;IAC3B,eAAe,EAAE,MAAM,CAAC;IACxB,WAAW,EAAE,MAAM,CAAC;CACrB,CAAC;AA4KF;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,iBAAiB,aAClB,YAAY,UACd,aAAa,aACV,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,cACtB,cAAc,KACzB,MAA0E,CAAC;AAE9E;;;GAGG;AACH,eAAO,MAAM,cAAc,aACf,YAAY,UACd,aAAa,aACV,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,cACtB,cAAc,WACjB,MAAM,KACd,YAAY,GAAG,IAWjB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"costLimit.test.d.ts","sourceRoot":"","sources":["../../../src/analyzeQuery/costLimit.test.ts"],"names":[],"mappings":""}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"depthLimit.d.ts","sourceRoot":"","sources":["../../../src/analyzeQuery/depthLimit.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"depthLimit.d.ts","sourceRoot":"","sources":["../../../src/analyzeQuery/depthLimit.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAW,UAAU,EAA0B,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAgE9F;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,cAAc,aACd,MAAM,eACP,iBAAiB,KAAG,UAuB7B,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { DocumentNode, FragmentDefinitionNode } from "graphql";
|
|
2
|
+
/**
|
|
3
|
+
* Collect all fragment definitions from a document.
|
|
4
|
+
*/
|
|
5
|
+
export declare const collectFragments: (document: DocumentNode) => Map<string, FragmentDefinitionNode>;
|
|
6
|
+
//# sourceMappingURL=fragments.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fragments.d.ts","sourceRoot":"","sources":["../../../src/analyzeQuery/fragments.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAC;AAEpE;;GAEG;AACH,eAAO,MAAM,gBAAgB,aAAc,YAAY,KAAG,GAAG,CAAC,MAAM,EAAE,sBAAsB,CAU3F,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { Env } from "../types/env";
|
|
2
|
+
export type Capability = "console:read" | "console:write" | "ai" | "mcp";
|
|
3
|
+
/** `superset` is true when the admin secret, not a scoped credential, matched. */
|
|
4
|
+
export type CapabilityGrant = {
|
|
5
|
+
superset: boolean;
|
|
6
|
+
};
|
|
7
|
+
export type CapabilityAuthorizer = (candidate: string | null, capability: Capability) => CapabilityGrant | null;
|
|
8
|
+
type WarnLog = {
|
|
9
|
+
warn: (obj: object, msg: string) => void;
|
|
10
|
+
};
|
|
11
|
+
/**
|
|
12
|
+
* Decides whether a presented secret grants a capability. The admin secret
|
|
13
|
+
* grants all of them and is reported as the superset so the caller can tell
|
|
14
|
+
* the two apart; it is also logged, since a scoped credential would have done.
|
|
15
|
+
*/
|
|
16
|
+
export declare const createCapabilityAuthorizer: (env: Env, log?: WarnLog) => CapabilityAuthorizer;
|
|
17
|
+
export {};
|
|
18
|
+
//# sourceMappingURL=capabilities.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"capabilities.d.ts","sourceRoot":"","sources":["../../../src/authentication/capabilities.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,cAAc,CAAC;AAKxC,MAAM,MAAM,UAAU,GAAG,cAAc,GAAG,eAAe,GAAG,IAAI,GAAG,KAAK,CAAC;AAEzE,kFAAkF;AAClF,MAAM,MAAM,eAAe,GAAG;IAAE,QAAQ,EAAE,OAAO,CAAA;CAAE,CAAC;AAEpD,MAAM,MAAM,oBAAoB,GAAG,CACjC,SAAS,EAAE,MAAM,GAAG,IAAI,EACxB,UAAU,EAAE,UAAU,KACnB,eAAe,GAAG,IAAI,CAAC;AAE5B,KAAK,OAAO,GAAG;IAAE,IAAI,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,KAAK,IAAI,CAAA;CAAE,CAAC;AAiB5D;;;;GAIG;AACH,eAAO,MAAM,0BAA0B,QAChC,GAAG,QACH,OAAO,KACX,oBAaF,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"capabilities.test.d.ts","sourceRoot":"","sources":["../../../src/authentication/capabilities.test.ts"],"names":[],"mappings":""}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"jwt.d.ts","sourceRoot":"","sources":["../../../src/authentication/jwt.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"jwt.d.ts","sourceRoot":"","sources":["../../../src/authentication/jwt.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,MAAM,CAAC;AACvC,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,cAAc,CAAC;AAExC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,KAAK,EAAE,yBAAyB,EAAE,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAWpG,YAAY,EAAE,yBAAyB,EAAE,YAAY,EAAE,aAAa,EAAE,CAAC;AAEvE,MAAM,MAAM,eAAe,GAAG,UAAU,GACtC,yBAAyB,GAAG;IAC1B,GAAG,EAAE,MAAM,CAAC;CACb,CAAC;AAKJ,eAAO,MAAM,gBAAgB,QACtB,GAAG,4BACkB,eAAe,KACxC,YAoMF,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"paseto.d.ts","sourceRoot":"","sources":["../../../src/authentication/paseto.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"paseto.d.ts","sourceRoot":"","sources":["../../../src/authentication/paseto.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,cAAc,CAAC;AAExC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,KAAK,EAA0D,YAAY,EAAE,MAAM,SAAS,CAAC;AA+BpG,KAAK,UAAU,GAAG,OAAO,GAAG,QAAQ,CAAC;AAErC,eAAO,MAAM,mBAAmB,QACzB,GAAG,QACF,UAAU,4BACU,eAAe,KACxC,YAgOF,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export declare const safeCompare: (a: string, b: string) => boolean;
|
|
2
|
+
/**
|
|
3
|
+
* True when `candidate` equals any entry of a rotating secret set. The first
|
|
4
|
+
* entry is the current secret; a match further along means a caller still
|
|
5
|
+
* holds a previous one, which is logged so the operator knows when it is safe
|
|
6
|
+
* to drop it.
|
|
7
|
+
*/
|
|
8
|
+
export declare const matchesAnySecret: (candidate: string | null, secrets: string[]) => boolean;
|
|
9
|
+
//# sourceMappingURL=secrets.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"secrets.d.ts","sourceRoot":"","sources":["../../../src/authentication/secrets.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,WAAW,MAAO,MAAM,KAAK,MAAM,KAAG,OASlD,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB,cAAe,MAAM,GAAG,IAAI,WAAW,MAAM,EAAE,KAAG,OAO9E,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"secrets.test.d.ts","sourceRoot":"","sources":["../../../src/authentication/secrets.test.ts"],"names":[],"mappings":""}
|
|
@@ -92,6 +92,10 @@ export declare const RolePermissionZod: z.ZodDefault<z.ZodObject<{
|
|
|
92
92
|
operations: z.ZodDefault<z.ZodOptional<z.ZodUnion<readonly [z.ZodArray<z.ZodString>, z.ZodLiteral<"ALL">]>>>;
|
|
93
93
|
remoteSchemas: z.ZodDefault<z.ZodOptional<z.ZodUnion<readonly [z.ZodArray<z.ZodString>, z.ZodLiteral<"ALL">]>>>;
|
|
94
94
|
remoteREST: z.ZodDefault<z.ZodOptional<z.ZodUnion<readonly [z.ZodArray<z.ZodString>, z.ZodLiteral<"ALL">]>>>;
|
|
95
|
+
rateLimit: z.ZodOptional<z.ZodObject<{
|
|
96
|
+
max: z.ZodNumber;
|
|
97
|
+
windowMs: z.ZodOptional<z.ZodNumber>;
|
|
98
|
+
}, z.core.$strict>>;
|
|
95
99
|
}, z.core.$strict>>;
|
|
96
100
|
export type RolePermission = z.input<typeof RolePermissionZod>;
|
|
97
101
|
/**
|
|
@@ -123,6 +127,10 @@ export declare const AuthConfigZod: z.ZodDefault<z.ZodOptional<z.ZodObject<{
|
|
|
123
127
|
operations: z.ZodDefault<z.ZodOptional<z.ZodUnion<readonly [z.ZodArray<z.ZodString>, z.ZodLiteral<"ALL">]>>>;
|
|
124
128
|
remoteSchemas: z.ZodDefault<z.ZodOptional<z.ZodUnion<readonly [z.ZodArray<z.ZodString>, z.ZodLiteral<"ALL">]>>>;
|
|
125
129
|
remoteREST: z.ZodDefault<z.ZodOptional<z.ZodUnion<readonly [z.ZodArray<z.ZodString>, z.ZodLiteral<"ALL">]>>>;
|
|
130
|
+
rateLimit: z.ZodOptional<z.ZodObject<{
|
|
131
|
+
max: z.ZodNumber;
|
|
132
|
+
windowMs: z.ZodOptional<z.ZodNumber>;
|
|
133
|
+
}, z.core.$strict>>;
|
|
126
134
|
}, z.core.$strict>>>>>;
|
|
127
135
|
}, z.core.$strict>>>;
|
|
128
136
|
export type AuthConfig = z.input<typeof AuthConfigZod>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../../../src/config/types/auth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAaxB;;GAEG;AACH,eAAO,MAAM,iBAAiB;;;;;;;EAO5B,CAAC;AAEH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAE/D;;GAEG;AACH,eAAO,MAAM,gBAAgB;;;;;;;;;;kBAG3B,CAAC;AAEH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAE7D;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,YAC3B,IAAI,EACJ,KAAK,EACL,IAAI,EACJ,KAAK,EACL,IAAI,EACJ,KAAK,EACL,MAAM,EACN,IAAI,EACJ,SAAS,EACT,SAAS,EACT,aAAa,EACb,UAAU,CACF,CAAC;AAEX,MAAM,MAAM,cAAc,GAAG,CAAC,OAAO,gBAAgB,CAAC,CAAC,MAAM,CAAC,CAAC;AAE/D;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,kBAAkB,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAKjE,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAMjE;;GAEG;AACH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;kBAO7B,CAAC;AAEH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAEjE;;GAEG;AACH,eAAO,MAAM,iBAAiB
|
|
1
|
+
{"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../../../src/config/types/auth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAaxB;;GAEG;AACH,eAAO,MAAM,iBAAiB;;;;;;;EAO5B,CAAC;AAEH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAE/D;;GAEG;AACH,eAAO,MAAM,gBAAgB;;;;;;;;;;kBAG3B,CAAC;AAEH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAE7D;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,YAC3B,IAAI,EACJ,KAAK,EACL,IAAI,EACJ,KAAK,EACL,IAAI,EACJ,KAAK,EACL,MAAM,EACN,IAAI,EACJ,SAAS,EACT,SAAS,EACT,aAAa,EACb,UAAU,CACF,CAAC;AAEX,MAAM,MAAM,cAAc,GAAG,CAAC,OAAO,gBAAgB,CAAC,CAAC,MAAM,CAAC,CAAC;AAE/D;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,kBAAkB,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAKjE,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAMjE;;GAEG;AACH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;kBAO7B,CAAC;AAEH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAEjE;;GAEG;AACH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;mBAmD1B,CAAC;AAEL,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAM/D;;GAEG;AACH,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oBAuBtB,CAAC;AAEL,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,CAAC"}
|
|
@@ -157,6 +157,7 @@ export declare const MSSQLConnectionOptionsZod: z.ZodObject<{
|
|
|
157
157
|
max: z.ZodDefault<z.ZodNumber>;
|
|
158
158
|
min: z.ZodDefault<z.ZodNumber>;
|
|
159
159
|
idleTimeout: z.ZodDefault<z.ZodNumber>;
|
|
160
|
+
acquireTimeout: z.ZodDefault<z.ZodNumber>;
|
|
160
161
|
}, z.core.$strict>>;
|
|
161
162
|
connectionTimeout: z.ZodDefault<z.ZodNumber>;
|
|
162
163
|
requestTimeout: z.ZodDefault<z.ZodNumber>;
|
|
@@ -255,6 +256,7 @@ export declare const DatabaseConnectionZod: z.ZodObject<{
|
|
|
255
256
|
max: z.ZodDefault<z.ZodNumber>;
|
|
256
257
|
min: z.ZodDefault<z.ZodNumber>;
|
|
257
258
|
idleTimeout: z.ZodDefault<z.ZodNumber>;
|
|
259
|
+
acquireTimeout: z.ZodDefault<z.ZodNumber>;
|
|
258
260
|
}, z.core.$strict>>;
|
|
259
261
|
connectionTimeout: z.ZodDefault<z.ZodNumber>;
|
|
260
262
|
requestTimeout: z.ZodDefault<z.ZodNumber>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"db.d.ts","sourceRoot":"","sources":["../../../../src/config/types/db.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAC/B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAe5C,MAAM,MAAM,YAAY,GAAG,OAAO,GAAG,IAAI,GAAG,OAAO,CAAC;AAMpD,4EAA4E;AAC5E,eAAO,MAAM,gCAAgC,YAC3C,IAAI,EACJ,KAAK,EACL,IAAI,EACJ,KAAK,EACL,IAAI,EACJ,KAAK,EACL,MAAM,EACN,SAAS,EACT,aAAa,CACL,CAAC;AAEX;;;;;GAKG;AACH,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;kBAkBlC,CAAC;AAEJ,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAM7E,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;kBAM/B,CAAC;AAEH,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAMrE,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAO/B,CAAC;AAEH,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAMrE,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAmBlC,CAAC;AAEH,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAM3E;;;GAGG;AACH,eAAO,MAAM,0BAA0B;;;;;;;;;kBAuBrC,CAAC;AAEH,MAAM,MAAM,uBAAuB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC;AAEjF;;;GAGG;AACH,eAAO,MAAM,yBAAyB
|
|
1
|
+
{"version":3,"file":"db.d.ts","sourceRoot":"","sources":["../../../../src/config/types/db.ts"],"names":[],"mappings":"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"}
|
|
@@ -103,6 +103,7 @@ export declare const OperationZod: z.ZodObject<{
|
|
|
103
103
|
updateAgeOnHas: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
104
104
|
ttlAutopurge: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
105
105
|
}, z.core.$strict>>;
|
|
106
|
+
timeout: z.ZodOptional<z.ZodNumber>;
|
|
106
107
|
}, z.core.$strict>;
|
|
107
108
|
export type Operation = z.input<typeof OperationZod>;
|
|
108
109
|
export declare const OperationsZod: z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
@@ -142,6 +143,7 @@ export declare const OperationsZod: z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
|
142
143
|
updateAgeOnHas: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
143
144
|
ttlAutopurge: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
144
145
|
}, z.core.$strict>>;
|
|
146
|
+
timeout: z.ZodOptional<z.ZodNumber>;
|
|
145
147
|
}, z.core.$strict>>;
|
|
146
148
|
export type Operations = z.input<typeof OperationsZod>;
|
|
147
149
|
/**
|
|
@@ -232,6 +234,8 @@ export type BaseOperation<TInput, TOutput, TInitData> = {
|
|
|
232
234
|
graphql?: OperationGraphQLConfig;
|
|
233
235
|
/** Cache configuration */
|
|
234
236
|
cache?: OperationCacheConfig;
|
|
237
|
+
/** Statement timeout in milliseconds. Overrides `QUERY_TIMEOUT_MS` for this operation. */
|
|
238
|
+
timeout?: number;
|
|
235
239
|
};
|
|
236
240
|
/**
|
|
237
241
|
* Query-based operation - executes a GraphQL query
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"operation.d.ts","sourceRoot":"","sources":["../../../../src/config/types/operation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAEnD;;;;GAIG;AACH,MAAM,MAAM,gBAAgB,GAAG;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AAEzD;;;;GAIG;AACH,MAAM,MAAM,aAAa,CAAC,MAAM,IAAI,MAAM,SAAS,MAAM,GACrD,OAAO,GAEP,MAAM,SAAS;IAAE,SAAS,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,KAAK,MAAM,OAAO,CAAA;CAAE,GAC9D,OAAO,GACP,OAAO,CAAC;AAMd;;GAEG;AACH,eAAO,MAAM,sBAAsB;;;;;;;;;;;;kBAMjC,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,yBAAyB;;;kBAGpC,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,uBAAuB;;;;;;;;kBAQlC,CAAC;AAMH;;GAEG;AACH,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAEzE;;GAEG;AACH,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAE/E;;GAEG;AACH,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAM3E,eAAO,MAAM,YAAY
|
|
1
|
+
{"version":3,"file":"operation.d.ts","sourceRoot":"","sources":["../../../../src/config/types/operation.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"operation.test.d.ts","sourceRoot":"","sources":["../../../../src/config/types/operation.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import type { Configuration } from "../types/configuration";
|
|
2
|
+
import type { ProcedureResolver, TableResolver } from "../types/db";
|
|
3
|
+
/**
|
|
4
|
+
* Everything the configuration is allowed to point at that only exists once the
|
|
5
|
+
* databases have been introspected.
|
|
6
|
+
*/
|
|
7
|
+
export type KnownEntities = {
|
|
8
|
+
tables: TableResolver[];
|
|
9
|
+
storedProcedures: ProcedureResolver[];
|
|
10
|
+
/**
|
|
11
|
+
* Every table name a database reported, keyed by database name and recorded
|
|
12
|
+
* *before* exclusions are applied. `excludedTables` names are absent from
|
|
13
|
+
* `tables` by construction, so they cannot be resolved against it.
|
|
14
|
+
*/
|
|
15
|
+
tableNamesByDatabase: Record<string, string[]>;
|
|
16
|
+
};
|
|
17
|
+
/**
|
|
18
|
+
* Every name a configuration points at that resolves to nothing, with the config
|
|
19
|
+
* path that carries it. Returns them all rather than throwing on the first, so a
|
|
20
|
+
* misconfigured deployment is fixed in one pass.
|
|
21
|
+
*
|
|
22
|
+
* A permission naming something that does not exist fails closed — the role
|
|
23
|
+
* simply loses the entity — which is why these never surfaced on their own: the
|
|
24
|
+
* rule the operator wrote silently does not apply.
|
|
25
|
+
*/
|
|
26
|
+
export declare const collectCrossReferenceErrors: (configuration: Configuration, known: KnownEntities) => string[];
|
|
27
|
+
//# sourceMappingURL=crossReferences.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"crossReferences.d.ts","sourceRoot":"","sources":["../../../src/configuration/crossReferences.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,KAAK,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAKpE;;;GAGG;AACH,MAAM,MAAM,aAAa,GAAG;IAC1B,MAAM,EAAE,aAAa,EAAE,CAAC;IACxB,gBAAgB,EAAE,iBAAiB,EAAE,CAAC;IACtC;;;;OAIG;IACH,oBAAoB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;CAChD,CAAC;AA+GF;;;;;;;;GAQG;AACH,eAAO,MAAM,2BAA2B,kBACvB,aAAa,SACrB,aAAa,KACnB,MAAM,EAmMR,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"crossReferences.test.d.ts","sourceRoot":"","sources":["../../../src/configuration/crossReferences.test.ts"],"names":[],"mappings":""}
|
|
@@ -22,11 +22,41 @@ export declare const getHandlers: (entities: MergedEntities, gqlEntities: GetGQL
|
|
|
22
22
|
_no_data: string;
|
|
23
23
|
};
|
|
24
24
|
};
|
|
25
|
-
hasErrors: (query: string
|
|
25
|
+
hasErrors: (query: string, options?: {
|
|
26
|
+
enforceDepthLimit?: boolean;
|
|
27
|
+
enforceCostLimit?: boolean;
|
|
28
|
+
variables?: Record<string, unknown>;
|
|
29
|
+
}) => {
|
|
26
30
|
hasErrors: boolean;
|
|
27
31
|
validationErrors: readonly import("graphql").GraphQLError[];
|
|
28
32
|
};
|
|
29
|
-
handler: (query: string | import("../../analyzeQuery/types").AnalysisResult, variables?: Record<string, unknown>, req?: Bun.BunRequest, session?: import("../../utils/sessionVariables").SessionContext
|
|
33
|
+
handler: (query: string | import("../../analyzeQuery/types").AnalysisResult, variables?: Record<string, unknown>, req?: Bun.BunRequest, session?: import("../../utils/sessionVariables").SessionContext, options?: {
|
|
34
|
+
enforcePageLimits?: boolean;
|
|
35
|
+
timeoutMs?: number;
|
|
36
|
+
}) => Promise<{
|
|
37
|
+
data: any;
|
|
38
|
+
}>;
|
|
39
|
+
operatorQuery: (query: Parameters<(query: string | import("../../analyzeQuery/types").AnalysisResult, variables?: Record<string, unknown>, req?: Bun.BunRequest, session?: import("../../utils/sessionVariables").SessionContext, options?: {
|
|
40
|
+
enforcePageLimits?: boolean;
|
|
41
|
+
timeoutMs?: number;
|
|
42
|
+
}) => Promise<{
|
|
43
|
+
data: any;
|
|
44
|
+
}>>[0], variables?: Parameters<(query: string | import("../../analyzeQuery/types").AnalysisResult, variables?: Record<string, unknown>, req?: Bun.BunRequest, session?: import("../../utils/sessionVariables").SessionContext, options?: {
|
|
45
|
+
enforcePageLimits?: boolean;
|
|
46
|
+
timeoutMs?: number;
|
|
47
|
+
}) => Promise<{
|
|
48
|
+
data: any;
|
|
49
|
+
}>>[1], req?: Parameters<(query: string | import("../../analyzeQuery/types").AnalysisResult, variables?: Record<string, unknown>, req?: Bun.BunRequest, session?: import("../../utils/sessionVariables").SessionContext, options?: {
|
|
50
|
+
enforcePageLimits?: boolean;
|
|
51
|
+
timeoutMs?: number;
|
|
52
|
+
}) => Promise<{
|
|
53
|
+
data: any;
|
|
54
|
+
}>>[2], session?: Parameters<(query: string | import("../../analyzeQuery/types").AnalysisResult, variables?: Record<string, unknown>, req?: Bun.BunRequest, session?: import("../../utils/sessionVariables").SessionContext, options?: {
|
|
55
|
+
enforcePageLimits?: boolean;
|
|
56
|
+
timeoutMs?: number;
|
|
57
|
+
}) => Promise<{
|
|
58
|
+
data: any;
|
|
59
|
+
}>>[3], timeoutMs?: number) => Promise<{
|
|
30
60
|
data: any;
|
|
31
61
|
}>;
|
|
32
62
|
};
|
|
@@ -52,11 +82,41 @@ export declare const getSchema: (entityOfRole: EntitiesOfRole, auth?: Auth | nul
|
|
|
52
82
|
_no_data: string;
|
|
53
83
|
};
|
|
54
84
|
};
|
|
55
|
-
hasErrors: (query: string
|
|
85
|
+
hasErrors: (query: string, options?: {
|
|
86
|
+
enforceDepthLimit?: boolean;
|
|
87
|
+
enforceCostLimit?: boolean;
|
|
88
|
+
variables?: Record<string, unknown>;
|
|
89
|
+
}) => {
|
|
56
90
|
hasErrors: boolean;
|
|
57
91
|
validationErrors: readonly import("graphql").GraphQLError[];
|
|
58
92
|
};
|
|
59
|
-
handler: (query: string | import("../../analyzeQuery/types").AnalysisResult, variables?: Record<string, unknown>, req?: Bun.BunRequest, session?: import("../../utils/sessionVariables").SessionContext
|
|
93
|
+
handler: (query: string | import("../../analyzeQuery/types").AnalysisResult, variables?: Record<string, unknown>, req?: Bun.BunRequest, session?: import("../../utils/sessionVariables").SessionContext, options?: {
|
|
94
|
+
enforcePageLimits?: boolean;
|
|
95
|
+
timeoutMs?: number;
|
|
96
|
+
}) => Promise<{
|
|
97
|
+
data: any;
|
|
98
|
+
}>;
|
|
99
|
+
operatorQuery: (query: Parameters<(query: string | import("../../analyzeQuery/types").AnalysisResult, variables?: Record<string, unknown>, req?: Bun.BunRequest, session?: import("../../utils/sessionVariables").SessionContext, options?: {
|
|
100
|
+
enforcePageLimits?: boolean;
|
|
101
|
+
timeoutMs?: number;
|
|
102
|
+
}) => Promise<{
|
|
103
|
+
data: any;
|
|
104
|
+
}>>[0], variables?: Parameters<(query: string | import("../../analyzeQuery/types").AnalysisResult, variables?: Record<string, unknown>, req?: Bun.BunRequest, session?: import("../../utils/sessionVariables").SessionContext, options?: {
|
|
105
|
+
enforcePageLimits?: boolean;
|
|
106
|
+
timeoutMs?: number;
|
|
107
|
+
}) => Promise<{
|
|
108
|
+
data: any;
|
|
109
|
+
}>>[1], req?: Parameters<(query: string | import("../../analyzeQuery/types").AnalysisResult, variables?: Record<string, unknown>, req?: Bun.BunRequest, session?: import("../../utils/sessionVariables").SessionContext, options?: {
|
|
110
|
+
enforcePageLimits?: boolean;
|
|
111
|
+
timeoutMs?: number;
|
|
112
|
+
}) => Promise<{
|
|
113
|
+
data: any;
|
|
114
|
+
}>>[2], session?: Parameters<(query: string | import("../../analyzeQuery/types").AnalysisResult, variables?: Record<string, unknown>, req?: Bun.BunRequest, session?: import("../../utils/sessionVariables").SessionContext, options?: {
|
|
115
|
+
enforcePageLimits?: boolean;
|
|
116
|
+
timeoutMs?: number;
|
|
117
|
+
}) => Promise<{
|
|
118
|
+
data: any;
|
|
119
|
+
}>>[3], timeoutMs?: number) => Promise<{
|
|
60
120
|
data: any;
|
|
61
121
|
}>;
|
|
62
122
|
};
|
|
@@ -128,6 +188,7 @@ export declare const getSchema: (entityOfRole: EntitiesOfRole, auth?: Auth | nul
|
|
|
128
188
|
max: number;
|
|
129
189
|
min: number;
|
|
130
190
|
idleTimeout: number;
|
|
191
|
+
acquireTimeout: number;
|
|
131
192
|
};
|
|
132
193
|
connectionTimeout: number;
|
|
133
194
|
requestTimeout: number;
|
|
@@ -236,6 +297,7 @@ export declare const getSchema: (entityOfRole: EntitiesOfRole, auth?: Auth | nul
|
|
|
236
297
|
max: number;
|
|
237
298
|
min: number;
|
|
238
299
|
idleTimeout: number;
|
|
300
|
+
acquireTimeout: number;
|
|
239
301
|
};
|
|
240
302
|
connectionTimeout: number;
|
|
241
303
|
requestTimeout: number;
|
|
@@ -439,6 +501,7 @@ export declare const getSchema: (entityOfRole: EntitiesOfRole, auth?: Auth | nul
|
|
|
439
501
|
updateAgeOnHas: boolean;
|
|
440
502
|
ttlAutopurge: boolean;
|
|
441
503
|
} | undefined;
|
|
504
|
+
timeout?: number | undefined;
|
|
442
505
|
}>;
|
|
443
506
|
resolverRegistry: import("../../types/resolver").ResolverRegistry;
|
|
444
507
|
getResolverSource: (resolverName: string) => import("./mergeEntities").EntitySource | undefined;
|
|
@@ -485,7 +548,6 @@ export declare const getSchema: (entityOfRole: EntitiesOfRole, auth?: Auth | nul
|
|
|
485
548
|
};
|
|
486
549
|
isVirtualColumn: (table: string, column: string) => import("../../types/configuration").VirtualColumn | undefined;
|
|
487
550
|
columnSqlName: (table: string, fieldName: string) => string;
|
|
488
|
-
getColumnTypeForOpenApi: (table: string, column: string) => string;
|
|
489
551
|
};
|
|
490
552
|
export type GetSchemaReturn = ReturnType<typeof getSchema>;
|
|
491
553
|
export declare const getSchemas: (tablesAndStoredProceduresForRole: Record<string, EntitiesOfRole>, auth: Auth, gqlSuperadminHandler: HandleGraphQLRequest) => Record<string, {
|
|
@@ -552,6 +614,7 @@ export declare const getSchemas: (tablesAndStoredProceduresForRole: Record<strin
|
|
|
552
614
|
max: number;
|
|
553
615
|
min: number;
|
|
554
616
|
idleTimeout: number;
|
|
617
|
+
acquireTimeout: number;
|
|
555
618
|
};
|
|
556
619
|
connectionTimeout: number;
|
|
557
620
|
requestTimeout: number;
|
|
@@ -660,6 +723,7 @@ export declare const getSchemas: (tablesAndStoredProceduresForRole: Record<strin
|
|
|
660
723
|
max: number;
|
|
661
724
|
min: number;
|
|
662
725
|
idleTimeout: number;
|
|
726
|
+
acquireTimeout: number;
|
|
663
727
|
};
|
|
664
728
|
connectionTimeout: number;
|
|
665
729
|
requestTimeout: number;
|
|
@@ -863,6 +927,7 @@ export declare const getSchemas: (tablesAndStoredProceduresForRole: Record<strin
|
|
|
863
927
|
updateAgeOnHas: boolean;
|
|
864
928
|
ttlAutopurge: boolean;
|
|
865
929
|
} | undefined;
|
|
930
|
+
timeout?: number | undefined;
|
|
866
931
|
}>;
|
|
867
932
|
resolverRegistry: import("../../types/resolver").ResolverRegistry;
|
|
868
933
|
getResolverSource: (resolverName: string) => import("./mergeEntities").EntitySource | undefined;
|
|
@@ -909,7 +974,6 @@ export declare const getSchemas: (tablesAndStoredProceduresForRole: Record<strin
|
|
|
909
974
|
};
|
|
910
975
|
isVirtualColumn: (table: string, column: string) => import("../../types/configuration").VirtualColumn | undefined;
|
|
911
976
|
columnSqlName: (table: string, fieldName: string) => string;
|
|
912
|
-
getColumnTypeForOpenApi: (table: string, column: string) => string;
|
|
913
977
|
} & {
|
|
914
978
|
typeDefs: string;
|
|
915
979
|
schema: GraphQLSchema;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/configuration/getSchemas/index.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC7C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uCAAuC,CAAC;AAC5E,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,2BAA2B,CAAC;AACtD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAC;AAC/E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAOtD,eAAO,MAAM,sBAAsB,WAAY,aAAa,yCAAoC,CAAC;AAEjG,eAAO,MAAM,cAAc,mBAAoB,cAAc,YAAW,OAAO;;;;CAO9E,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC;AAErE,eAAO,MAAM,WAAW,aACZ,cAAc,eACX,oBAAoB,SAC3B,IAAI,GAAG,IAAI,yBACK,oBAAoB,GAAG,IAAI
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/configuration/getSchemas/index.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC7C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uCAAuC,CAAC;AAC5E,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,2BAA2B,CAAC;AACtD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAC;AAC/E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAOtD,eAAO,MAAM,sBAAsB,WAAY,aAAa,yCAAoC,CAAC;AAEjG,eAAO,MAAM,cAAc,mBAAoB,cAAc,YAAW,OAAO;;;;CAO9E,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC;AAErE,eAAO,MAAM,WAAW,aACZ,cAAc,eACX,oBAAoB,SAC3B,IAAI,GAAG,IAAI,yBACK,oBAAoB,GAAG,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAQlD,CAAC;AAEF,MAAM,MAAM,8BAA8B,GAAG,OAAO,CAAC,UAAU,CAAC,OAAO,WAAW,CAAC,CAAC,CAAC;AAErF,eAAO,MAAM,SAAS,iBACN,cAAc,SACtB,IAAI,GAAG,IAAI,yBACK,oBAAoB,GAAG,IAAI,cACtC,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAWnB,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG,UAAU,CAAC,OAAO,SAAS,CAAC,CAAC;AAE3D,eAAO,MAAM,UAAU,qCACa,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,QAC1D,IAAI,wBACY,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cAM1B,8BAA8B;EAS/C,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG,OAAO,CAAC,UAAU,CAAC,OAAO,UAAU,CAAC,CAAC,CAAC"}
|