grafserv 0.1.1-beta.8 → 0.1.1-beta.9
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/CHANGELOG.md +39 -0
- package/README.md +1 -0
- package/dist/core/base.d.ts +11 -2
- package/dist/core/base.d.ts.map +1 -1
- package/dist/core/base.js +228 -13
- package/dist/core/base.js.map +1 -1
- package/dist/envelop/index.d.ts +12 -0
- package/dist/envelop/index.d.ts.map +1 -0
- package/dist/envelop/index.js +69 -0
- package/dist/envelop/index.js.map +1 -0
- package/dist/hooks.d.ts +5 -1
- package/dist/hooks.d.ts.map +1 -1
- package/dist/hooks.js +12 -0
- package/dist/hooks.js.map +1 -1
- package/dist/index.d.ts +8 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/interfaces.d.ts +17 -2
- package/dist/interfaces.d.ts.map +1 -1
- package/dist/interfaces.js.map +1 -1
- package/dist/middleware/graphiql.d.ts +3 -1
- package/dist/middleware/graphiql.d.ts.map +1 -1
- package/dist/middleware/graphiql.js +1 -3
- package/dist/middleware/graphiql.js.map +1 -1
- package/dist/middleware/graphql.d.ts +4 -4
- package/dist/middleware/graphql.d.ts.map +1 -1
- package/dist/middleware/graphql.js +32 -62
- package/dist/middleware/graphql.js.map +1 -1
- package/dist/utils.d.ts +4 -0
- package/dist/utils.d.ts.map +1 -1
- package/dist/utils.js +31 -60
- package/dist/utils.js.map +1 -1
- package/dist/version.d.ts +2 -0
- package/dist/version.d.ts.map +1 -0
- package/dist/version.js +6 -0
- package/dist/version.js.map +1 -0
- package/package.json +16 -7
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,44 @@
|
|
|
1
1
|
# grafserv
|
|
2
2
|
|
|
3
|
+
## 0.1.1-beta.9
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- [#2046](https://github.com/graphile/crystal/pull/2046)
|
|
8
|
+
[`a5a0816bd`](https://github.com/graphile/crystal/commit/a5a0816bddc85a841770202db57457ff13137852)
|
|
9
|
+
Thanks [@benjie](https://github.com/benjie)! - Massive refactor of Grafserv
|
|
10
|
+
internals.
|
|
11
|
+
|
|
12
|
+
- Updated dependencies
|
|
13
|
+
[[`357d475f5`](https://github.com/graphile/crystal/commit/357d475f54fecc8c51892e0346d6872b34132430),
|
|
14
|
+
[`3551725e7`](https://github.com/graphile/crystal/commit/3551725e71c3ed876554e19e5ab2c1dcb0fb1143),
|
|
15
|
+
[`80836471e`](https://github.com/graphile/crystal/commit/80836471e5cedb29dee63bc5002550c4f1713cfd),
|
|
16
|
+
[`a5c20fefb`](https://github.com/graphile/crystal/commit/a5c20fefb571dea6d1187515dc48dd547e9e6204),
|
|
17
|
+
[`1ce08980e`](https://github.com/graphile/crystal/commit/1ce08980e2a52ed9bc81564d248c19648ecd3616),
|
|
18
|
+
[`dff4f2535`](https://github.com/graphile/crystal/commit/dff4f2535ac6ce893089b312fcd5fffcd98573a5),
|
|
19
|
+
[`a287a57c2`](https://github.com/graphile/crystal/commit/a287a57c2765da0fb6a132ea0953f64453210ceb),
|
|
20
|
+
[`2fe56f9a6`](https://github.com/graphile/crystal/commit/2fe56f9a6dac03484ace45c29c2223a65f9ca1db),
|
|
21
|
+
[`fed603d71`](https://github.com/graphile/crystal/commit/fed603d719c02f33e12190f925c9e3b06c581fac),
|
|
22
|
+
[`ed6e0d278`](https://github.com/graphile/crystal/commit/ed6e0d2788217a1c419634837f4208013eaf2923),
|
|
23
|
+
[`e82e4911e`](https://github.com/graphile/crystal/commit/e82e4911e32138df1b90ec0fde555ea963018d21),
|
|
24
|
+
[`42ece5aa6`](https://github.com/graphile/crystal/commit/42ece5aa6ca05345ebc17fb5c7d55df3b79b7612),
|
|
25
|
+
[`e0d69e518`](https://github.com/graphile/crystal/commit/e0d69e518a98c70f9b90f59d243ce33978c1b5a1),
|
|
26
|
+
[`db8ceed0f`](https://github.com/graphile/crystal/commit/db8ceed0f17923eb78ff09c9f3f28800a5c7e3b6),
|
|
27
|
+
[`6699388ec`](https://github.com/graphile/crystal/commit/6699388ec167d35c71220ce5d9113cac578da6cb),
|
|
28
|
+
[`966203504`](https://github.com/graphile/crystal/commit/96620350467ab8c65b56adf2f055e19450f8e772),
|
|
29
|
+
[`c1645b249`](https://github.com/graphile/crystal/commit/c1645b249aae949a548cd916e536ccfb63e5ab35),
|
|
30
|
+
[`ed8bbaa3c`](https://github.com/graphile/crystal/commit/ed8bbaa3cd1563a7601ca8c6b0412633b0ea4ce9),
|
|
31
|
+
[`a0e82b9c5`](https://github.com/graphile/crystal/commit/a0e82b9c5f4e585f1af1e147299cd07944ece6f8),
|
|
32
|
+
[`14e2412ee`](https://github.com/graphile/crystal/commit/14e2412ee368e8d53abf6774c7f0069f32d4e8a3),
|
|
33
|
+
[`57ab0e1e7`](https://github.com/graphile/crystal/commit/57ab0e1e72c01213b21d3efc539cd655d83d993a),
|
|
34
|
+
[`8442242e4`](https://github.com/graphile/crystal/commit/8442242e43cac7d89ca0c413cf42c9fabf6f247f),
|
|
35
|
+
[`64ce7b765`](https://github.com/graphile/crystal/commit/64ce7b7650530251aec38a51089da66f914c19b4),
|
|
36
|
+
[`cba842357`](https://github.com/graphile/crystal/commit/cba84235786acbd77ade53bae7a3fba4a9be1eb7),
|
|
37
|
+
[`2fa77d0f2`](https://github.com/graphile/crystal/commit/2fa77d0f237cdb98d3dafb6b5e4083a2c6c38673)]:
|
|
38
|
+
- grafast@0.1.1-beta.7
|
|
39
|
+
- graphile-config@0.0.1-beta.8
|
|
40
|
+
- ruru@2.0.0-beta.12
|
|
41
|
+
|
|
3
42
|
## 0.1.1-beta.8
|
|
4
43
|
|
|
5
44
|
### Patch Changes
|
package/README.md
CHANGED
|
@@ -30,6 +30,7 @@ And please give some love to our featured sponsors 🤩:
|
|
|
30
30
|
<td align="center"><a href="https://stellate.co/"><img src="https://graphile.org/images/sponsors/Stellate.png" width="90" height="90" alt="Stellate" /><br />Stellate</a> *</td>
|
|
31
31
|
</tr><tr>
|
|
32
32
|
<td align="center"><a href="https://gosteelhead.com/"><img src="https://graphile.org/images/sponsors/steelhead.svg" width="90" height="90" alt="Steelhead" /><br />Steelhead</a> *</td>
|
|
33
|
+
<td align="center"><a href="https://www.sylvera.com/"><img src="https://graphile.org/images/sponsors/sylvera.svg" width="90" height="90" alt="Sylvera" /><br />Sylvera</a> *</td>
|
|
33
34
|
</tr></table>
|
|
34
35
|
|
|
35
36
|
<em>\* Sponsors the entire Graphile suite</em>
|
package/dist/core/base.d.ts
CHANGED
|
@@ -1,17 +1,21 @@
|
|
|
1
1
|
import type { PromiseOrDirect, TypedEventEmitter } from "grafast";
|
|
2
2
|
import type { GraphQLSchema } from "grafast/graphql";
|
|
3
|
-
import type { ErrorResult, GrafservConfig, HandlerResult, RequestDigest, Result, SchemaChangeEvent } from "../interfaces.js";
|
|
3
|
+
import type { DynamicOptions, ErrorResult, ExecutionConfig, GrafservConfig, HandlerResult, RequestDigest, Result, SchemaChangeEvent } from "../interfaces.js";
|
|
4
4
|
import { makeGraphiQLHandler } from "../middleware/graphiql.js";
|
|
5
5
|
import { makeGraphQLHandler } from "../middleware/graphql.js";
|
|
6
6
|
export declare class GrafservBase {
|
|
7
7
|
private releaseHandlers;
|
|
8
8
|
private releasing;
|
|
9
|
+
dynamicOptions: DynamicOptions;
|
|
10
|
+
getExecutionConfig(_ctx: Partial<Grafast.RequestContext>): PromiseOrDirect<ExecutionConfig>;
|
|
9
11
|
resolvedPreset: GraphileConfig.ResolvedPreset;
|
|
10
12
|
protected schema: GraphQLSchema | PromiseLike<GraphQLSchema> | null;
|
|
11
13
|
protected schemaError: PromiseLike<GraphQLSchema> | null;
|
|
12
14
|
protected eventEmitter: TypedEventEmitter<{
|
|
13
15
|
"schema:ready": GraphQLSchema;
|
|
14
16
|
"schema:error": any;
|
|
17
|
+
"dynamicOptions:ready": Record<string, never>;
|
|
18
|
+
"dynamicOptions:error": any;
|
|
15
19
|
}>;
|
|
16
20
|
private initialized;
|
|
17
21
|
graphqlHandler: ReturnType<typeof makeGraphQLHandler>;
|
|
@@ -23,9 +27,14 @@ export declare class GrafservBase {
|
|
|
23
27
|
getSchema(): PromiseOrDirect<GraphQLSchema>;
|
|
24
28
|
release(): Promise<void>;
|
|
25
29
|
onRelease(cb: () => PromiseOrDirect<void>): void;
|
|
26
|
-
|
|
30
|
+
private _settingPreset;
|
|
31
|
+
setPreset(newPreset: GraphileConfig.Preset): PromiseOrDirect<void>;
|
|
27
32
|
setSchema(newSchema: GraphQLSchema): void;
|
|
28
33
|
private refreshHandlers;
|
|
34
|
+
private waitForGraphqlHandler;
|
|
35
|
+
private waitForGraphiqlHandler;
|
|
36
|
+
private failedGraphqlHandler;
|
|
37
|
+
private failedGraphiqlHandler;
|
|
29
38
|
makeStream(): AsyncIterableIterator<SchemaChangeEvent>;
|
|
30
39
|
}
|
|
31
40
|
export declare function convertHandlerResultToResult(handlerResult: HandlerResult | null): PromiseOrDirect<Result | null>;
|
package/dist/core/base.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../src/core/base.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../src/core/base.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAQlE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAMrD,OAAO,KAAK,EAEV,cAAc,EACd,WAAW,EAEX,eAAe,EACf,cAAc,EACd,aAAa,EAIb,aAAa,EACb,MAAM,EACN,iBAAiB,EAClB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,EAEL,kBAAkB,EAEnB,MAAM,0BAA0B,CAAC;AAUlC,qBAAa,YAAY;IACvB,OAAO,CAAC,eAAe,CAA0C;IACjE,OAAO,CAAC,SAAS,CAAS;IACnB,cAAc,EAAE,cAAc,CAAC;IAC/B,kBAAkB,CACvB,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,cAAc,CAAC,GACpC,eAAe,CAAC,eAAe,CAAC;IAG5B,cAAc,EAAE,cAAc,CAAC,cAAc,CAAC;IAGrD,SAAS,CAAC,MAAM,EAAE,aAAa,GAAG,WAAW,CAAC,aAAa,CAAC,GAAG,IAAI,CAAC;IACpE,SAAS,CAAC,WAAW,EAAE,WAAW,CAAC,aAAa,CAAC,GAAG,IAAI,CAAC;IACzD,SAAS,CAAC,YAAY,EAAE,iBAAiB,CAAC;QACxC,cAAc,EAAE,aAAa,CAAC;QAC9B,cAAc,EAAE,GAAG,CAAC;QACpB,sBAAsB,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QAC9C,sBAAsB,EAAE,GAAG,CAAC;KAC7B,CAAC,CAAC;IACH,OAAO,CAAC,WAAW,CAAS;IACrB,cAAc,EAAG,UAAU,CAAC,OAAO,kBAAkB,CAAC,CAAC;IACvD,eAAe,EAAG,UAAU,CAAC,OAAO,mBAAmB,CAAC,CAAC;gBAEpD,MAAM,EAAE,cAAc;IAgClC,OAAO,CAAC,eAAe;IA0DvB,SAAS,CAAC,cAAc,CACtB,OAAO,EAAE,aAAa,GACrB,eAAe,CAAC,MAAM,GAAG,IAAI,CAAC;IA0B1B,SAAS,IAAI,cAAc,CAAC,cAAc;IAI1C,SAAS,IAAI,eAAe,CAAC,aAAa,CAAC;IAIrC,OAAO;IAeb,SAAS,CAAC,EAAE,EAAE,MAAM,eAAe,CAAC,IAAI,CAAC;IAShD,OAAO,CAAC,cAAc,CAAS;IACxB,SAAS,CAAC,SAAS,EAAE,cAAc,CAAC,MAAM,GAAG,eAAe,CAAC,IAAI,CAAC;IA2ClE,SAAS,CAAC,SAAS,EAAE,aAAa;IAuBzC,OAAO,CAAC,eAAe;IAavB,OAAO,CAAC,qBAAqB,CAuCzB;IAEJ,OAAO,CAAC,sBAAsB,CAwC1B;IAEJ,OAAO,CAAC,oBAAoB,CAcxB;IAEJ,OAAO,CAAC,qBAAqB,CAczB;IAGG,UAAU,IAAI,qBAAqB,CAAC,iBAAiB,CAAC;CAyD9D;AA+FD,wBAAgB,4BAA4B,CAC1C,aAAa,EAAE,aAAa,GAAG,IAAI,GAClC,eAAe,CAAC,MAAM,GAAG,IAAI,CAAC,CAoLhC;AAED,eAAO,MAAM,yBAAyB,UAC7B,KAAK,GAAG;IAAE,UAAU,CAAC,EAAE,MAAM,CAAA;CAAE,KACrC,WASF,CAAC"}
|
package/dist/core/base.js
CHANGED
|
@@ -6,19 +6,123 @@ const eventemitter3_1 = tslib_1.__importDefault(require("eventemitter3"));
|
|
|
6
6
|
const grafast_1 = require("grafast");
|
|
7
7
|
const graphql = tslib_1.__importStar(require("grafast/graphql"));
|
|
8
8
|
const graphile_config_1 = require("graphile-config");
|
|
9
|
+
const hooks_js_1 = require("../hooks.js");
|
|
9
10
|
const mapIterator_js_1 = require("../mapIterator.js");
|
|
10
11
|
const graphiql_js_1 = require("../middleware/graphiql.js");
|
|
11
12
|
const graphql_js_1 = require("../middleware/graphql.js");
|
|
12
13
|
const options_js_1 = require("../options.js");
|
|
13
14
|
const utils_js_1 = require("../utils.js");
|
|
15
|
+
const failedToBuildHandlersError = new graphql.GraphQLError("Unknown error occurred.");
|
|
14
16
|
const { isSchema, validateSchema } = graphql;
|
|
15
17
|
class GrafservBase {
|
|
18
|
+
getExecutionConfig(_ctx) {
|
|
19
|
+
throw new Error("Overwritten in constructor");
|
|
20
|
+
}
|
|
16
21
|
constructor(config) {
|
|
17
22
|
this.releaseHandlers = [];
|
|
18
23
|
this.releasing = false;
|
|
19
24
|
this.initialized = false;
|
|
25
|
+
this._settingPreset = false;
|
|
26
|
+
this.waitForGraphqlHandler = function (...args) {
|
|
27
|
+
const [request] = args;
|
|
28
|
+
const deferred = (0, grafast_1.defer)();
|
|
29
|
+
const { dynamicOptions } = this;
|
|
30
|
+
const onReady = () => {
|
|
31
|
+
this.eventEmitter.off("dynamicOptions:ready", onReady);
|
|
32
|
+
this.eventEmitter.off("dynamicOptions:error", onError);
|
|
33
|
+
Promise.resolve()
|
|
34
|
+
.then(() => this.graphqlHandler(...args))
|
|
35
|
+
.then(deferred.resolve, deferred.reject);
|
|
36
|
+
};
|
|
37
|
+
const onError = (e) => {
|
|
38
|
+
this.eventEmitter.off("dynamicOptions:ready", onReady);
|
|
39
|
+
this.eventEmitter.off("dynamicOptions:error", onError);
|
|
40
|
+
const graphqlError = new graphql.GraphQLError("Unknown error occurred", null, null, null, null, e);
|
|
41
|
+
deferred.resolve({
|
|
42
|
+
type: "graphql",
|
|
43
|
+
request,
|
|
44
|
+
dynamicOptions,
|
|
45
|
+
payload: { errors: [graphqlError] },
|
|
46
|
+
statusCode: graphqlError.extensions?.statusCode ?? 503,
|
|
47
|
+
// Fall back to application/json; this is when an unexpected error happens
|
|
48
|
+
// so it shouldn't be hit.
|
|
49
|
+
contentType: graphql_js_1.APPLICATION_JSON,
|
|
50
|
+
});
|
|
51
|
+
};
|
|
52
|
+
this.eventEmitter.on("dynamicOptions:ready", onReady);
|
|
53
|
+
this.eventEmitter.on("dynamicOptions:error", onError);
|
|
54
|
+
setTimeout(onError, 5000, new Error("Server initialization timed out"));
|
|
55
|
+
return Promise.resolve(deferred);
|
|
56
|
+
};
|
|
57
|
+
this.waitForGraphiqlHandler = function (...args) {
|
|
58
|
+
const [request] = args;
|
|
59
|
+
const { dynamicOptions } = this;
|
|
60
|
+
const deferred = (0, grafast_1.defer)();
|
|
61
|
+
const onReady = () => {
|
|
62
|
+
this.eventEmitter.off("dynamicOptions:ready", onReady);
|
|
63
|
+
this.eventEmitter.off("dynamicOptions:error", onError);
|
|
64
|
+
Promise.resolve()
|
|
65
|
+
.then(() => this.graphiqlHandler(...args))
|
|
66
|
+
.then(deferred.resolve, deferred.reject);
|
|
67
|
+
};
|
|
68
|
+
const onError = (e) => {
|
|
69
|
+
this.eventEmitter.off("dynamicOptions:ready", onReady);
|
|
70
|
+
this.eventEmitter.off("dynamicOptions:error", onError);
|
|
71
|
+
const graphqlError = new graphql.GraphQLError("Unknown error occurred", null, null, null, null, e);
|
|
72
|
+
// TODO: this should be an HTML response
|
|
73
|
+
deferred.resolve({
|
|
74
|
+
type: "graphql",
|
|
75
|
+
request,
|
|
76
|
+
dynamicOptions,
|
|
77
|
+
payload: { errors: [graphqlError] },
|
|
78
|
+
statusCode: graphqlError.extensions?.statusCode ?? 503,
|
|
79
|
+
// Fall back to application/json; this is when an unexpected error happens
|
|
80
|
+
// so it shouldn't be hit.
|
|
81
|
+
contentType: graphql_js_1.APPLICATION_JSON,
|
|
82
|
+
});
|
|
83
|
+
};
|
|
84
|
+
this.eventEmitter.on("dynamicOptions:ready", onReady);
|
|
85
|
+
this.eventEmitter.on("dynamicOptions:error", onError);
|
|
86
|
+
setTimeout(onError, 5000, new Error("Server initialization timed out"));
|
|
87
|
+
return Promise.resolve(deferred);
|
|
88
|
+
};
|
|
89
|
+
this.failedGraphqlHandler = function (...args) {
|
|
90
|
+
const [request] = args;
|
|
91
|
+
const { dynamicOptions } = this;
|
|
92
|
+
return {
|
|
93
|
+
type: "graphql",
|
|
94
|
+
request,
|
|
95
|
+
dynamicOptions,
|
|
96
|
+
payload: { errors: [failedToBuildHandlersError] },
|
|
97
|
+
statusCode: 503,
|
|
98
|
+
// Fall back to application/json; this is when an unexpected error happens
|
|
99
|
+
// so it shouldn't be hit.
|
|
100
|
+
contentType: graphql_js_1.APPLICATION_JSON,
|
|
101
|
+
};
|
|
102
|
+
};
|
|
103
|
+
this.failedGraphiqlHandler = function (...args) {
|
|
104
|
+
const [request] = args;
|
|
105
|
+
const { dynamicOptions } = this;
|
|
106
|
+
return {
|
|
107
|
+
type: "graphql",
|
|
108
|
+
request,
|
|
109
|
+
dynamicOptions,
|
|
110
|
+
payload: { errors: [failedToBuildHandlersError] },
|
|
111
|
+
statusCode: 503,
|
|
112
|
+
// Fall back to application/json; this is when an unexpected error happens
|
|
113
|
+
// so it shouldn't be hit.
|
|
114
|
+
contentType: graphql_js_1.APPLICATION_JSON,
|
|
115
|
+
};
|
|
116
|
+
};
|
|
20
117
|
this.eventEmitter = new eventemitter3_1.default();
|
|
21
|
-
this.
|
|
118
|
+
this.resolvedPreset = config.preset ? (0, graphile_config_1.resolvePresets)([config.preset]) : {};
|
|
119
|
+
this.dynamicOptions = {
|
|
120
|
+
validationRules: [...graphql.specifiedRules],
|
|
121
|
+
getExecutionConfig: defaultMakeGetExecutionConfig(),
|
|
122
|
+
...(0, options_js_1.optionsFromConfig)(this.resolvedPreset),
|
|
123
|
+
};
|
|
124
|
+
this.getExecutionConfig = this.dynamicOptions.getExecutionConfig;
|
|
125
|
+
this.hooks = (0, hooks_js_1.getGrafservHooks)(this.resolvedPreset);
|
|
22
126
|
this.schemaError = null;
|
|
23
127
|
this.schema = config.schema;
|
|
24
128
|
if ((0, grafast_1.isPromiseLike)(config.schema)) {
|
|
@@ -34,11 +138,15 @@ class GrafservBase {
|
|
|
34
138
|
else {
|
|
35
139
|
this.eventEmitter.emit("schema:ready", config.schema);
|
|
36
140
|
}
|
|
37
|
-
this.
|
|
38
|
-
this.
|
|
141
|
+
this.graphqlHandler = this.waitForGraphqlHandler;
|
|
142
|
+
this.graphiqlHandler = this.waitForGraphiqlHandler;
|
|
143
|
+
this.setPreset(this.resolvedPreset);
|
|
39
144
|
}
|
|
40
145
|
_processRequest(inRequest) {
|
|
41
146
|
const request = (0, utils_js_1.normalizeRequest)(inRequest);
|
|
147
|
+
if (!this.dynamicOptions) {
|
|
148
|
+
throw new Error(`GrafservInternalError<1377f225-31b7-4a81-a56e-a28e18a19899>: Attempted to process request prematurely`);
|
|
149
|
+
}
|
|
42
150
|
const dynamicOptions = this.dynamicOptions;
|
|
43
151
|
const forceCORS = !!this.resolvedPreset.grafserv?.dangerouslyAllowAllCORSRequests &&
|
|
44
152
|
request.method === "OPTIONS";
|
|
@@ -52,14 +160,14 @@ class GrafservBase {
|
|
|
52
160
|
request.method === "GET" &&
|
|
53
161
|
request.path === dynamicOptions.graphiqlPath) {
|
|
54
162
|
if (forceCORS)
|
|
55
|
-
return optionsResponse(request,
|
|
163
|
+
return optionsResponse(request, dynamicOptions);
|
|
56
164
|
return this.graphiqlHandler(request);
|
|
57
165
|
}
|
|
58
166
|
if (dynamicOptions.watch &&
|
|
59
167
|
request.method === "GET" &&
|
|
60
168
|
request.path === dynamicOptions.eventStreamPath) {
|
|
61
169
|
if (forceCORS)
|
|
62
|
-
return optionsResponse(request,
|
|
170
|
+
return optionsResponse(request, dynamicOptions);
|
|
63
171
|
const stream = this.makeStream();
|
|
64
172
|
return {
|
|
65
173
|
type: "event-stream",
|
|
@@ -137,12 +245,42 @@ class GrafservBase {
|
|
|
137
245
|
this.releaseHandlers.push(cb);
|
|
138
246
|
}
|
|
139
247
|
setPreset(newPreset) {
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
if (this.dynamicOptions !== newOptions) {
|
|
143
|
-
this.dynamicOptions = newOptions;
|
|
144
|
-
this.refreshHandlers();
|
|
248
|
+
if (this._settingPreset) {
|
|
249
|
+
throw new Error(`Setting a preset is currently in progress; please wait for it to complete.`);
|
|
145
250
|
}
|
|
251
|
+
this._settingPreset = true;
|
|
252
|
+
const resolvedPreset = (0, graphile_config_1.resolvePresets)([newPreset]);
|
|
253
|
+
const hooks = (0, hooks_js_1.getGrafservHooks)(this.resolvedPreset);
|
|
254
|
+
// Note: this gets directly mutated
|
|
255
|
+
const dynamicOptions = {
|
|
256
|
+
validationRules: [...graphql.specifiedRules],
|
|
257
|
+
getExecutionConfig: defaultMakeGetExecutionConfig(),
|
|
258
|
+
...(0, options_js_1.optionsFromConfig)(resolvedPreset),
|
|
259
|
+
};
|
|
260
|
+
const initResult = hooks.process("init", dynamicOptions);
|
|
261
|
+
return (Promise.resolve(initResult)
|
|
262
|
+
.then(() => {
|
|
263
|
+
// Overwrite all the `this.*` properties at once
|
|
264
|
+
this.resolvedPreset = resolvedPreset;
|
|
265
|
+
this.hooks = hooks;
|
|
266
|
+
this.dynamicOptions = dynamicOptions;
|
|
267
|
+
this.initialized = true;
|
|
268
|
+
// ENHANCE: this.graphqlHandler?.release()?
|
|
269
|
+
this.refreshHandlers();
|
|
270
|
+
this.getExecutionConfig = dynamicOptions.getExecutionConfig;
|
|
271
|
+
// MUST come after the handlers have been refreshed, otherwise we'll
|
|
272
|
+
// get infinite loops
|
|
273
|
+
this.eventEmitter.emit("dynamicOptions:ready", {});
|
|
274
|
+
})
|
|
275
|
+
.then(null, (e) => {
|
|
276
|
+
this.graphqlHandler = this.failedGraphqlHandler;
|
|
277
|
+
this.graphiqlHandler = this.failedGraphiqlHandler;
|
|
278
|
+
this.eventEmitter.emit("dynamicOptions:error", e);
|
|
279
|
+
})
|
|
280
|
+
// Finally:
|
|
281
|
+
.then(() => {
|
|
282
|
+
this._settingPreset = false;
|
|
283
|
+
}));
|
|
146
284
|
}
|
|
147
285
|
setSchema(newSchema) {
|
|
148
286
|
if (!newSchema) {
|
|
@@ -164,11 +302,11 @@ class GrafservBase {
|
|
|
164
302
|
}
|
|
165
303
|
refreshHandlers() {
|
|
166
304
|
if (!this.initialized) {
|
|
305
|
+
// This will be handled once `setPreset` completes
|
|
167
306
|
return;
|
|
168
307
|
}
|
|
169
|
-
|
|
170
|
-
this.
|
|
171
|
-
this.graphiqlHandler = (0, graphiql_js_1.makeGraphiQLHandler)(this.resolvedPreset, this.dynamicOptions);
|
|
308
|
+
this.graphqlHandler = (0, graphql_js_1.makeGraphQLHandler)(this);
|
|
309
|
+
this.graphiqlHandler = (0, graphiql_js_1.makeGraphiQLHandler)(this.resolvedPreset, this.hooks, this.dynamicOptions);
|
|
172
310
|
}
|
|
173
311
|
// TODO: Rename this, or make it a middleware, or something
|
|
174
312
|
makeStream() {
|
|
@@ -228,6 +366,83 @@ class GrafservBase {
|
|
|
228
366
|
}
|
|
229
367
|
}
|
|
230
368
|
exports.GrafservBase = GrafservBase;
|
|
369
|
+
function defaultMakeGetExecutionConfig() {
|
|
370
|
+
let latestSchema;
|
|
371
|
+
let latestSchemaOrPromise;
|
|
372
|
+
let latestParseAndValidate;
|
|
373
|
+
let schemaPrepare = null;
|
|
374
|
+
return function getExecutionConfig() {
|
|
375
|
+
// Get up to date schema, in case we're in watch mode
|
|
376
|
+
const schemaOrPromise = this.getSchema();
|
|
377
|
+
const { resolvedPreset, dynamicOptions } = this;
|
|
378
|
+
if (schemaOrPromise !== latestSchemaOrPromise) {
|
|
379
|
+
latestSchemaOrPromise = schemaOrPromise;
|
|
380
|
+
if ("then" in schemaOrPromise) {
|
|
381
|
+
schemaPrepare = (async () => {
|
|
382
|
+
latestSchema = await schemaOrPromise;
|
|
383
|
+
latestSchemaOrPromise = schemaOrPromise;
|
|
384
|
+
latestParseAndValidate = (0, graphql_js_1.makeParseAndValidateFunction)(latestSchema, resolvedPreset, dynamicOptions);
|
|
385
|
+
schemaPrepare = null;
|
|
386
|
+
return true;
|
|
387
|
+
})();
|
|
388
|
+
}
|
|
389
|
+
else {
|
|
390
|
+
if (latestSchema === schemaOrPromise) {
|
|
391
|
+
// No action necessary
|
|
392
|
+
}
|
|
393
|
+
else {
|
|
394
|
+
latestSchema = schemaOrPromise;
|
|
395
|
+
latestParseAndValidate = (0, graphql_js_1.makeParseAndValidateFunction)(latestSchema, resolvedPreset, dynamicOptions);
|
|
396
|
+
}
|
|
397
|
+
}
|
|
398
|
+
}
|
|
399
|
+
if (schemaPrepare !== null) {
|
|
400
|
+
const sleeper = (0, utils_js_1.sleep)(dynamicOptions.schemaWaitTime);
|
|
401
|
+
const schemaReadyPromise = Promise.race([schemaPrepare, sleeper.promise]);
|
|
402
|
+
return schemaReadyPromise.then((schemaReady) => {
|
|
403
|
+
sleeper.release();
|
|
404
|
+
if (schemaReady !== true) {
|
|
405
|
+
// Handle missing schema
|
|
406
|
+
throw new Error(`Schema isn't ready`);
|
|
407
|
+
}
|
|
408
|
+
return {
|
|
409
|
+
schema: latestSchema,
|
|
410
|
+
parseAndValidate: latestParseAndValidate,
|
|
411
|
+
resolvedPreset,
|
|
412
|
+
execute: grafast_1.execute,
|
|
413
|
+
subscribe: grafast_1.subscribe,
|
|
414
|
+
contextValue: Object.create(null),
|
|
415
|
+
};
|
|
416
|
+
});
|
|
417
|
+
}
|
|
418
|
+
/*
|
|
419
|
+
if (schemaOrPromise == null) {
|
|
420
|
+
const err = Promise.reject(
|
|
421
|
+
new GraphQLError(
|
|
422
|
+
"The schema is currently unavailable",
|
|
423
|
+
null,
|
|
424
|
+
null,
|
|
425
|
+
null,
|
|
426
|
+
null,
|
|
427
|
+
null,
|
|
428
|
+
{
|
|
429
|
+
statusCode: 503,
|
|
430
|
+
},
|
|
431
|
+
),
|
|
432
|
+
);
|
|
433
|
+
return () => err;
|
|
434
|
+
}
|
|
435
|
+
*/
|
|
436
|
+
return {
|
|
437
|
+
schema: latestSchema,
|
|
438
|
+
parseAndValidate: latestParseAndValidate,
|
|
439
|
+
resolvedPreset,
|
|
440
|
+
execute: grafast_1.execute,
|
|
441
|
+
subscribe: grafast_1.subscribe,
|
|
442
|
+
contextValue: Object.create(null),
|
|
443
|
+
};
|
|
444
|
+
};
|
|
445
|
+
}
|
|
231
446
|
const END = Buffer.from("\r\n-----\r\n", "utf8");
|
|
232
447
|
const DIVIDE = Buffer.from(`\r\n---\r\nContent-Type: application/json\r\n\r\n`, "utf8");
|
|
233
448
|
function convertHandlerResultToResult(handlerResult) {
|
package/dist/core/base.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base.js","sourceRoot":"","sources":["../../src/core/base.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"base.js","sourceRoot":"","sources":["../../src/core/base.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { type GetEnvelopedFn } from "@envelop/core";
|
|
2
|
+
import type { GraphileConfig } from "graphile-config";
|
|
3
|
+
declare global {
|
|
4
|
+
namespace GraphileConfig {
|
|
5
|
+
interface GrafservOptions {
|
|
6
|
+
getEnveloped?: GetEnvelopedFn<any>;
|
|
7
|
+
}
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
export declare const GrafservEnvelopPlugin: GraphileConfig.Plugin;
|
|
11
|
+
export declare const GrafservEnvelopPreset: GraphileConfig.Preset;
|
|
12
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/envelop/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,cAAc,EAIpB,MAAM,eAAe,CAAC;AACvB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAKtD,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,cAAc,CAAC;QACvB,UAAU,eAAe;YACvB,YAAY,CAAC,EAAE,cAAc,CAAC,GAAG,CAAC,CAAC;SACpC;KACF;CACF;AAED,eAAO,MAAM,qBAAqB,EAAE,cAAc,CAAC,MA6DlD,CAAC;AAEF,eAAO,MAAM,qBAAqB,EAAE,cAAc,CAAC,MAQlD,CAAC"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.GrafservEnvelopPreset = exports.GrafservEnvelopPlugin = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const core_1 = require("@envelop/core");
|
|
6
|
+
const graphql = tslib_1.__importStar(require("graphql"));
|
|
7
|
+
const version_js_1 = require("../version.js");
|
|
8
|
+
exports.GrafservEnvelopPlugin = {
|
|
9
|
+
name: "GrafservEnvelopPlugin",
|
|
10
|
+
version: version_js_1.version,
|
|
11
|
+
grafserv: {
|
|
12
|
+
hooks: {
|
|
13
|
+
init(info, event) {
|
|
14
|
+
const userGetEnveloped = info.resolvedPreset.grafserv?.getEnveloped;
|
|
15
|
+
if (!userGetEnveloped) {
|
|
16
|
+
throw new Error(`GrafservEnvelopPlugin is enabled, but there is no 'preset.grafserv.getEnveloped' method to call`);
|
|
17
|
+
}
|
|
18
|
+
const originalGetExecutionConfig = event.getExecutionConfig;
|
|
19
|
+
event.getExecutionConfig = async function getExecutionConfig(ctx) {
|
|
20
|
+
const config = await originalGetExecutionConfig.call(this, ctx);
|
|
21
|
+
const getEnveloped = (0, core_1.envelop)({
|
|
22
|
+
plugins: [
|
|
23
|
+
// PERF: memoize argument if it makes any difference
|
|
24
|
+
(0, core_1.useEngine)({
|
|
25
|
+
...graphql,
|
|
26
|
+
execute: config.execute,
|
|
27
|
+
subscribe: config.subscribe,
|
|
28
|
+
specifiedRules: event.validationRules,
|
|
29
|
+
}),
|
|
30
|
+
(0, core_1.useSchema)(config.schema),
|
|
31
|
+
(0, core_1.useEnvelop)(userGetEnveloped),
|
|
32
|
+
],
|
|
33
|
+
});
|
|
34
|
+
const { schema, execute, subscribe, contextFactory, parse: envelopedParse, validate: envelopedValidate, } = getEnveloped(ctx);
|
|
35
|
+
const parseAndValidate = (query) => {
|
|
36
|
+
const source = new graphql.Source(query, "GraphQL HTTP Request");
|
|
37
|
+
let document;
|
|
38
|
+
try {
|
|
39
|
+
document = envelopedParse(source);
|
|
40
|
+
}
|
|
41
|
+
catch (e) {
|
|
42
|
+
return { errors: [e] };
|
|
43
|
+
}
|
|
44
|
+
const errors = envelopedValidate(schema, document);
|
|
45
|
+
return errors.length ? { errors } : { document };
|
|
46
|
+
};
|
|
47
|
+
return {
|
|
48
|
+
...config,
|
|
49
|
+
contextValue: contextFactory(ctx),
|
|
50
|
+
schema,
|
|
51
|
+
execute,
|
|
52
|
+
subscribe,
|
|
53
|
+
parseAndValidate,
|
|
54
|
+
};
|
|
55
|
+
};
|
|
56
|
+
},
|
|
57
|
+
},
|
|
58
|
+
},
|
|
59
|
+
};
|
|
60
|
+
exports.GrafservEnvelopPreset = {
|
|
61
|
+
plugins: [exports.GrafservEnvelopPlugin],
|
|
62
|
+
grafserv: {
|
|
63
|
+
// Let Envelop handle error masking
|
|
64
|
+
maskError(e) {
|
|
65
|
+
return e;
|
|
66
|
+
},
|
|
67
|
+
},
|
|
68
|
+
};
|
|
69
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/envelop/index.ts"],"names":[],"mappings":";;;;AAAA,wCAMuB;AAEvB,yDAAmC;AAEnC,8CAAwC;AAU3B,QAAA,qBAAqB,GAA0B;IAC1D,IAAI,EAAE,uBAAuB;IAC7B,OAAO,EAAP,oBAAO;IAEP,QAAQ,EAAE;QACR,KAAK,EAAE;YACL,IAAI,CAAC,IAAI,EAAE,KAAK;gBACd,MAAM,gBAAgB,GAAG,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,YAAY,CAAC;gBACpE,IAAI,CAAC,gBAAgB,EAAE;oBACrB,MAAM,IAAI,KAAK,CACb,iGAAiG,CAClG,CAAC;iBACH;gBACD,MAAM,0BAA0B,GAAG,KAAK,CAAC,kBAAkB,CAAC;gBAC5D,KAAK,CAAC,kBAAkB,GAAG,KAAK,UAAU,kBAAkB,CAAC,GAAG;oBAC9D,MAAM,MAAM,GAAG,MAAM,0BAA0B,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;oBAChE,MAAM,YAAY,GAAG,IAAA,cAAO,EAAC;wBAC3B,OAAO,EAAE;4BACP,oDAAoD;4BACpD,IAAA,gBAAS,EAAC;gCACR,GAAG,OAAO;gCACV,OAAO,EAAE,MAAM,CAAC,OAAO;gCACvB,SAAS,EAAE,MAAM,CAAC,SAAS;gCAC3B,cAAc,EAAE,KAAK,CAAC,eAAe;6BACtC,CAAC;4BACF,IAAA,gBAAS,EAAC,MAAM,CAAC,MAAM,CAAC;4BACxB,IAAA,iBAAU,EAAC,gBAAgB,CAAC;yBAC7B;qBACF,CAAC,CAAC;oBACH,MAAM,EACJ,MAAM,EACN,OAAO,EACP,SAAS,EACT,cAAc,EACd,KAAK,EAAE,cAAc,EACrB,QAAQ,EAAE,iBAAiB,GAC5B,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;oBACtB,MAAM,gBAAgB,GAAG,CAAC,KAAa,EAAE,EAAE;wBACzC,MAAM,MAAM,GAAG,IAAI,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,sBAAsB,CAAC,CAAC;wBACjE,IAAI,QAAQ,CAAC;wBACb,IAAI;4BACF,QAAQ,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;yBACnC;wBAAC,OAAO,CAAC,EAAE;4BACV,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;yBACxB;wBACD,MAAM,MAAM,GAAG,iBAAiB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;wBACnD,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC;oBACnD,CAAC,CAAC;oBAEF,OAAO;wBACL,GAAG,MAAM;wBACT,YAAY,EAAE,cAAc,CAAC,GAAG,CAAC;wBACjC,MAAM;wBACN,OAAO;wBACP,SAAS;wBACT,gBAAgB;qBACjB,CAAC;gBACJ,CAAC,CAAC;YACJ,CAAC;SACF;KACF;CACF,CAAC;AAEW,QAAA,qBAAqB,GAA0B;IAC1D,OAAO,EAAE,CAAC,6BAAqB,CAAC;IAChC,QAAQ,EAAE;QACR,mCAAmC;QACnC,SAAS,CAAC,CAAC;YACT,OAAO,CAAC,CAAC;QACX,CAAC;KACF;CACF,CAAC"}
|
package/dist/hooks.d.ts
CHANGED
|
@@ -1,3 +1,7 @@
|
|
|
1
1
|
import { AsyncHooks } from "graphile-config";
|
|
2
|
-
|
|
2
|
+
declare const $$hooks: unique symbol;
|
|
3
|
+
export declare function getGrafservHooks(resolvedPreset: GraphileConfig.ResolvedPreset & {
|
|
4
|
+
[$$hooks]?: AsyncHooks<GraphileConfig.GrafservHooks>;
|
|
5
|
+
}): AsyncHooks<GraphileConfig.GrafservHooks>;
|
|
6
|
+
export {};
|
|
3
7
|
//# sourceMappingURL=hooks.d.ts.map
|
package/dist/hooks.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../src/hooks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,UAAU,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../src/hooks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAIzD,QAAA,MAAM,OAAO,eAAkB,CAAC;AAEhC,wBAAgB,gBAAgB,CAC9B,cAAc,EAAE,cAAc,CAAC,cAAc,GAAG;IAC9C,CAAC,OAAO,CAAC,CAAC,EAAE,UAAU,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC;CACtD,4CA0BF"}
|
package/dist/hooks.js
CHANGED
|
@@ -2,7 +2,13 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.getGrafservHooks = void 0;
|
|
4
4
|
const graphile_config_1 = require("graphile-config");
|
|
5
|
+
// We could use a global WeakMap, but storing directly onto the resolvedPreset
|
|
6
|
+
// should use more traditional garbage collection.
|
|
7
|
+
const $$hooks = Symbol("hooks");
|
|
5
8
|
function getGrafservHooks(resolvedPreset) {
|
|
9
|
+
if (resolvedPreset[$$hooks]) {
|
|
10
|
+
return resolvedPreset[$$hooks];
|
|
11
|
+
}
|
|
6
12
|
const hooks = new graphile_config_1.AsyncHooks();
|
|
7
13
|
(0, graphile_config_1.applyHooks)(resolvedPreset.plugins, (p) => p.grafserv?.hooks, (name, fn, _plugin) => {
|
|
8
14
|
const context = {
|
|
@@ -10,6 +16,12 @@ function getGrafservHooks(resolvedPreset) {
|
|
|
10
16
|
};
|
|
11
17
|
hooks.hook(name, ((...args) => fn(context, ...args)));
|
|
12
18
|
});
|
|
19
|
+
try {
|
|
20
|
+
resolvedPreset[$$hooks] = hooks;
|
|
21
|
+
}
|
|
22
|
+
catch {
|
|
23
|
+
// Ignore - preset must be readonly
|
|
24
|
+
}
|
|
13
25
|
return hooks;
|
|
14
26
|
}
|
|
15
27
|
exports.getGrafservHooks = getGrafservHooks;
|
package/dist/hooks.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hooks.js","sourceRoot":"","sources":["../src/hooks.ts"],"names":[],"mappings":";;;AAAA,qDAAyD;AAEzD,SAAgB,gBAAgB,CAC9B,
|
|
1
|
+
{"version":3,"file":"hooks.js","sourceRoot":"","sources":["../src/hooks.ts"],"names":[],"mappings":";;;AAAA,qDAAyD;AAEzD,8EAA8E;AAC9E,kDAAkD;AAClD,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;AAEhC,SAAgB,gBAAgB,CAC9B,cAEC;IAED,IAAI,cAAc,CAAC,OAAO,CAAC,EAAE;QAC3B,OAAO,cAAc,CAAC,OAAO,CAAC,CAAC;KAChC;IACD,MAAM,KAAK,GAAG,IAAI,4BAAU,EAAgC,CAAC;IAC7D,IAAA,4BAAU,EACR,cAAc,CAAC,OAAO,EACtB,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE,KAAK,EACxB,CAAC,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE;QACpB,MAAM,OAAO,GAAG;YACd,cAAc;SACf,CAAC;QAED,KAAK,CAAC,IAAY,CACjB,IAAW,EACX,CAAC,CAAC,GAAG,IAAW,EAAE,EAAE,CAAE,EAAU,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,CAAQ,CAC3D,CAAC;IACJ,CAAC,CACF,CAAC;IACF,IAAI;QACF,cAAc,CAAC,OAAO,CAAC,GAAG,KAAK,CAAC;KACjC;IAAC,MAAM;QACN,mCAAmC;KACpC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AA7BD,4CA6BC"}
|