@nxara/olio-client 0.1.0-rc.1 → 0.1.1

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 CHANGED
@@ -7,7 +7,7 @@ const { data } = await client.mutation.login({ email, password }, { headers });
7
7
  ```
8
8
 
9
9
  ```sh
10
- bun add @nxara/olio-client
10
+ bun add @nxara/olio-client graphql@16
11
11
  ```
12
12
 
13
13
  `graphql` 16 is a peer dependency. For subscriptions, add [graphql-ws](https://github.com/enisdenjo/graphql-ws) and/or [graphql-sse](https://github.com/enisdenjo/graphql-sse): the client takes your own clients of them.
package/dist/test.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { type ServerOptions } from "graphql-ws";
1
+ import type { ServerOptions } from "graphql-ws";
2
2
  import { type HeadersSource, type MaybePromise } from "./transport.js";
3
3
  import type { Client, Operations, Transports } from "./types.js";
4
4
  type Handler = (request: Request) => MaybePromise<Response>;
@@ -1 +1 @@
1
- {"version":3,"file":"test.d.ts","sourceRoot":"","sources":["../src/test.ts"],"names":[],"mappings":"AACA,OAAO,EAKL,KAAK,aAAa,EACnB,MAAM,YAAY,CAAC;AAGpB,OAAO,EAEL,KAAK,aAAa,EAClB,KAAK,YAAY,EAClB,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,EAAE,MAAM,EAAiB,UAAU,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAEhF,KAAK,OAAO,GAAG,CAAC,OAAO,EAAE,OAAO,KAAK,YAAY,CAAC,QAAQ,CAAC,CAAC;AAM5D,MAAM,MAAM,UAAU,CAAC,CAAC,SAAS,UAAU,GAAG,UAAU,IAAI;IAE1D,IAAI,EAAE,OAAO,CAAC;CACf,GAAG;IACF,QAAQ,EAAE,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,IAAI,GAKzC,aAAa,CAAC,KAAK,EAAE,KAAK,CAAC,GAE3B,OAAO;CACZ,CAAC;AAoFF,wBAAgB,UAAU,CAAC,CAAC,SAAS,UAAU,EAC7C,UAAU,EAAE,CAAC,EACb,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,OAAO,GAAG,KAAK,CAAC,EAC3E,OAAO,GAAE;IAAE,GAAG,CAAC,EAAE,MAAM,GAAG,GAAG,CAAC;IAAC,OAAO,CAAC,EAAE,aAAa,CAAA;CAAO,GAC5D,MAAM,CAAC,CAAC,CAAC,CA0CX"}
1
+ {"version":3,"file":"test.d.ts","sourceRoot":"","sources":["../src/test.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAGhD,OAAO,EAEL,KAAK,aAAa,EAClB,KAAK,YAAY,EAClB,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,EAAE,MAAM,EAAiB,UAAU,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAEhF,KAAK,OAAO,GAAG,CAAC,OAAO,EAAE,OAAO,KAAK,YAAY,CAAC,QAAQ,CAAC,CAAC;AAmB5D,MAAM,MAAM,UAAU,CAAC,CAAC,SAAS,UAAU,GAAG,UAAU,IAAI;IAE1D,IAAI,EAAE,OAAO,CAAC;CACf,GAAG;IACF,QAAQ,EAAE,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,IAAI,GAKzC,aAAa,CAAC,KAAK,EAAE,KAAK,CAAC,GAE3B,OAAO;CACZ,CAAC;AAuFF,wBAAgB,UAAU,CAAC,CAAC,SAAS,UAAU,EAC7C,UAAU,EAAE,CAAC,EACb,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,OAAO,GAAG,KAAK,CAAC,EAC3E,OAAO,GAAE;IAAE,GAAG,CAAC,EAAE,MAAM,GAAG,GAAG,CAAC;IAAC,OAAO,CAAC,EAAE,aAAa,CAAA;CAAO,GAC5D,MAAM,CAAC,CAAC,CAAC,CA6CX"}
package/dist/test.js CHANGED
@@ -1,16 +1,22 @@
1
- import { createClient as createSseClient } from "graphql-sse";
2
- import { CloseCode, createClient as createWsClient, GRAPHQL_TRANSPORT_WS_PROTOCOL, makeServer } from "graphql-ws";
3
1
  import { createClient } from "./index.js";
4
2
  import { resolveHeaders } from "./transport.js";
5
- function memoryWebSocket(options) {
6
- const graphqlWs = makeServer(options);
3
+ const graphqlWs = await import("graphql-ws").catch(() => undefined);
4
+ const graphqlSse = await import("graphql-sse").catch(() => undefined);
5
+ const installed = (module, name) => {
6
+ if (!module) {
7
+ throw new Error(`testClient: install ${name} to test subscriptions over it`);
8
+ }
9
+ return module;
10
+ };
11
+ function memoryWebSocket(ws, options) {
12
+ const graphqlWs = ws.makeServer(options);
7
13
  return class Socket {
8
14
  static CONNECTING = 0;
9
15
  static OPEN = 1;
10
16
  static CLOSING = 2;
11
17
  static CLOSED = 3;
12
18
  readyState = Socket.CONNECTING;
13
- protocol = GRAPHQL_TRANSPORT_WS_PROTOCOL;
19
+ protocol = ws.GRAPHQL_TRANSPORT_WS_PROTOCOL;
14
20
  onopen = null;
15
21
  onmessage = null;
16
22
  onclose = null;
@@ -37,7 +43,7 @@ function memoryWebSocket(options) {
37
43
  }
38
44
  send(data) {
39
45
  queueMicrotask(() => {
40
- this.#receive?.(data).catch((error) => this.#finish(CloseCode.InternalServerError, error instanceof Error ? error.message : String(error)));
46
+ this.#receive?.(data).catch((error) => this.#finish(ws.CloseCode.InternalServerError, error instanceof Error ? error.message : String(error)));
41
47
  });
42
48
  }
43
49
  close(code = 1000, reason = "") {
@@ -70,19 +76,22 @@ export function testClient(operations, server, options = {}) {
70
76
  ? handlers.sse(request)
71
77
  : handlers.http(request);
72
78
  };
79
+ const ws = handlers.ws && installed(graphqlWs, "graphql-ws");
80
+ const sse = handlers.sse && installed(graphqlSse, "graphql-sse");
73
81
  return createClient(operations, {
74
82
  url,
75
83
  headers: options.headers,
76
84
  fetch,
77
- ws: handlers.ws &&
78
- createWsClient({
85
+ ws: ws &&
86
+ handlers.ws &&
87
+ ws.createClient({
79
88
  url: url.replace(/^http/, "ws"),
80
- webSocketImpl: memoryWebSocket(handlers.ws),
89
+ webSocketImpl: memoryWebSocket(ws, handlers.ws),
81
90
  retryAttempts: 0,
82
91
  connectionParams: async () => ({ headers: await headers() })
83
92
  }),
84
- sse: handlers.sse &&
85
- createSseClient({ url, fetchFn: fetch, headers, retryAttempts: 0 })
93
+ sse: sse &&
94
+ sse.createClient({ url, fetchFn: fetch, headers, retryAttempts: 0 })
86
95
  });
87
96
  }
88
97
  //# sourceMappingURL=test.js.map
package/dist/test.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"test.js","sourceRoot":"","sources":["../src/test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"test.js","sourceRoot":"","sources":["../src/test.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nxara/olio-client",
3
- "version": "0.1.0-rc.1",
3
+ "version": "0.1.1",
4
4
  "description": "A typed GraphQL client for Nxara apps: select fields, get typed results.",
5
5
  "keywords": [
6
6
  "client",
@@ -37,18 +37,26 @@
37
37
  "test": "bun test",
38
38
  "check-types": "bun test/generate.ts && tsc -p tsconfig.test.json"
39
39
  },
40
- "dependencies": {
41
- "graphql-sse": "2.6.3",
42
- "graphql-ws": "^6.4.1"
43
- },
44
40
  "devDependencies": {
45
- "@nxara/olio": "0.1.0-rc.1",
46
- "@nxara/olio-codegen": "0.1.0-rc.1",
47
- "@nxara/olio-http": "0.1.0-rc.1",
41
+ "@nxara/olio": "0.1.1",
42
+ "@nxara/olio-codegen": "0.1.1",
43
+ "@nxara/olio-http": "0.1.1",
48
44
  "graphql": "^16.14.2",
45
+ "graphql-sse": "2.6.3",
46
+ "graphql-ws": "^6.4.1",
49
47
  "ky": "^2.2.0"
50
48
  },
51
49
  "peerDependencies": {
52
- "graphql": "^16.13.0"
50
+ "graphql": "^16.13.0",
51
+ "graphql-sse": "^2.6.3",
52
+ "graphql-ws": "^6.4.1"
53
+ },
54
+ "peerDependenciesMeta": {
55
+ "graphql-sse": {
56
+ "optional": true
57
+ },
58
+ "graphql-ws": {
59
+ "optional": true
60
+ }
53
61
  }
54
62
  }
@@ -1,7 +0,0 @@
1
- import type { ClientSchema, Operation } from "./types.js";
2
- export interface Built {
3
- query: string;
4
- variables: Record<string, unknown>;
5
- }
6
- export declare function buildDocument(schema: ClientSchema, operation: Operation, field: string, args: Record<string, unknown> | undefined, selection: Record<string, unknown> | undefined): Built;
7
- //# sourceMappingURL=document.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"document.d.ts","sourceRoot":"","sources":["../src/document.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAc,SAAS,EAAE,MAAM,YAAY,CAAC;AAEtE,MAAM,WAAW,KAAK;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AA6FD,wBAAgB,aAAa,CAC3B,MAAM,EAAE,YAAY,EACpB,SAAS,EAAE,SAAS,EACpB,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,EACzC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,GAC7C,KAAK,CAaP"}
package/dist/document.js DELETED
@@ -1,79 +0,0 @@
1
- const isRecord = (value) => typeof value === "object" && value !== null;
2
- class Variables {
3
- definitions = [];
4
- values = {};
5
- add(path, type, value) {
6
- let name = path.slice(1).join("_").replaceAll(/\W/g, "_");
7
- while (name in this.values)
8
- name += "_";
9
- this.values[name] = value;
10
- this.definitions.push(`$${name}: ${type}`);
11
- return `$${name}`;
12
- }
13
- }
14
- function argumentsText(schema, vars, where, entry, args, path) {
15
- const types = Array.isArray(entry) ? entry[1] : undefined;
16
- if (!types)
17
- throw new Error(`${where} takes no arguments`);
18
- const parts = [];
19
- for (const [name, value] of Object.entries(args)) {
20
- if (value === undefined)
21
- continue;
22
- const type = types[name];
23
- if (!type)
24
- throw new Error(`Unknown argument "${name}" on ${where}`);
25
- parts.push(`${name}: ${vars.add([...path, name], type, value)}`);
26
- }
27
- return parts.length ? `(${parts.join(", ")})` : "";
28
- }
29
- function selectionText(schema, vars, type, selection, path) {
30
- const parts = [];
31
- for (const [key, value] of Object.entries(selection)) {
32
- if (key === "__args" || key === "__typename" || key === "on")
33
- continue;
34
- if (value === false || value === undefined)
35
- continue;
36
- parts.push(fieldText(schema, vars, type, key, value, [
37
- ...path,
38
- key
39
- ]));
40
- }
41
- const on = isRecord(selection.on) ? selection.on : undefined;
42
- for (const [member, sub] of Object.entries(on ?? {})) {
43
- if (!isRecord(sub))
44
- continue;
45
- parts.push(`... on ${member} ${selectionText(schema, vars, member, sub, path)}`);
46
- }
47
- if (selection.__typename === true || on)
48
- parts.unshift("__typename");
49
- return `{ ${parts.join(" ")} }`;
50
- }
51
- function fieldText(schema, vars, parent, key, value, path) {
52
- const where = `${parent}.${key}`;
53
- const entry = schema.types[parent]?.[key];
54
- const args = isRecord(value) && isRecord(value.__args)
55
- ? argumentsText(schema, vars, where, entry, value.__args, path)
56
- : "";
57
- const type = typeof entry === "string" ? entry : entry?.[0];
58
- if (type === undefined || !(type in schema.types))
59
- return `${key}${args}`;
60
- if (!isRecord(value))
61
- throw new Error(`${where} needs a selection of fields`);
62
- return `${key}${args} ${selectionText(schema, vars, type, value, path)}`;
63
- }
64
- export function buildDocument(schema, operation, field, args, selection) {
65
- const root = schema.roots[operation];
66
- if (!root)
67
- throw new Error(`The schema has no ${operation} type`);
68
- const vars = new Variables();
69
- const value = args ? { ...selection, __args: args } : (selection ?? true);
70
- const body = selectionText(schema, vars, root, { [field]: value }, []);
71
- const definitions = vars.definitions.length
72
- ? `(${vars.definitions.join(", ")})`
73
- : "";
74
- return {
75
- query: `${operation} ${field}${definitions} ${body}`,
76
- variables: vars.values
77
- };
78
- }
79
- //# sourceMappingURL=document.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"document.js","sourceRoot":"","sources":["../src/document.ts"],"names":[],"mappings":"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"}
package/dist/sse.d.ts DELETED
@@ -1,9 +0,0 @@
1
- import { type ClientOptions } from "graphql-sse";
2
- import { type Fetch, type HeadersSource, type Transport } from "./transport.js";
3
- export interface SseOptions extends Omit<ClientOptions<boolean>, "url" | "headers" | "fetchFn"> {
4
- url?: string | URL;
5
- headers?: HeadersSource;
6
- fetch?: Fetch;
7
- }
8
- export declare const sse: Transport<SseOptions>;
9
- //# sourceMappingURL=sse.d.ts.map
package/dist/sse.d.ts.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"sse.d.ts","sourceRoot":"","sources":["../src/sse.ts"],"names":[],"mappings":"AAAA,OAAO,EAA6B,KAAK,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5E,OAAO,EAGL,KAAK,KAAK,EACV,KAAK,aAAa,EAClB,KAAK,SAAS,EACf,MAAM,gBAAgB,CAAC;AAGxB,MAAM,WAAW,UAAW,SAAQ,IAAI,CACtC,aAAa,CAAC,OAAO,CAAC,EACtB,KAAK,GAAG,SAAS,GAAG,SAAS,CAC9B;IAEC,GAAG,CAAC,EAAE,MAAM,GAAG,GAAG,CAAC;IACnB,OAAO,CAAC,EAAE,aAAa,CAAC;IAExB,KAAK,CAAC,EAAE,KAAK,CAAC;CACf;AAGD,eAAO,MAAM,GAAG,EAAE,SAAS,CAAC,UAAU,CA2BrC,CAAC"}
package/dist/sse.js DELETED
@@ -1,31 +0,0 @@
1
- import { createClient } from "graphql-sse";
2
- import { asResult, stream } from "./transport.js";
3
- export const sse = {
4
- kind: "sse",
5
- connect(endpoint, options = {}) {
6
- let client;
7
- return {
8
- async *subscribe(document, variables, signal) {
9
- client ??= createClient({
10
- ...options,
11
- url: endpoint.url,
12
- fetchFn: endpoint.fetch,
13
- headers: async () => Object.fromEntries(await endpoint.headers())
14
- });
15
- const events = client.iterate({
16
- query: document.query,
17
- variables: variables,
18
- operationName: document.name
19
- });
20
- for await (const event of stream(events, signal))
21
- yield asResult(event);
22
- },
23
- reconnect() { },
24
- close: async () => {
25
- client?.dispose();
26
- client = undefined;
27
- }
28
- };
29
- }
30
- };
31
- //# sourceMappingURL=sse.js.map
package/dist/sse.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"sse.js","sourceRoot":"","sources":["../src/sse.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAmC,MAAM,aAAa,CAAC;AAE5E,OAAO,EACL,QAAQ,EACR,MAAM,EAIP,MAAM,gBAAgB,CAAC;AAexB,MAAM,CAAC,MAAM,GAAG,GAA0B;IACxC,IAAI,EAAE,KAAK;IACX,OAAO,CAAC,QAAQ,EAAE,OAAO,GAAG,EAAE;QAC5B,IAAI,MAAmC,CAAC;QACxC,OAAO;YACL,KAAK,CAAC,CAAC,SAAS,CAAC,QAAQ,EAAE,SAAS,EAAE,MAAM;gBAC1C,MAAM,KAAK,YAAY,CAAC;oBACtB,GAAG,OAAO;oBACV,GAAG,EAAE,QAAQ,CAAC,GAAG;oBACjB,OAAO,EAAE,QAAQ,CAAC,KAAK;oBACvB,OAAO,EAAE,KAAK,IAAI,EAAE,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,QAAQ,CAAC,OAAO,EAAE,CAAC;iBAClE,CAAC,CAAC;gBACH,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC;oBAC5B,KAAK,EAAE,QAAQ,CAAC,KAAK;oBACrB,SAAS,EAAE,SAAgD;oBAC3D,aAAa,EAAE,QAAQ,CAAC,IAAI;iBAC7B,CAAC,CAAC;gBACH,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;oBAAE,MAAM,QAAQ,CAAC,KAAK,CAAC,CAAC;YAC1E,CAAC;YAED,SAAS,KAAI,CAAC;YACd,KAAK,EAAE,KAAK,IAAI,EAAE;gBAChB,MAAM,EAAE,OAAO,EAAE,CAAC;gBAClB,MAAM,GAAG,SAAS,CAAC;YACrB,CAAC;SACF,CAAC;IACJ,CAAC;CACF,CAAC"}
package/dist/ws.d.ts DELETED
@@ -1,9 +0,0 @@
1
- import { type ClientOptions } from "graphql-ws/client";
2
- import { type MaybePromise, type Transport } from "./transport.js";
3
- export interface WsOptions extends Omit<ClientOptions, "url" | "connectionParams" | "webSocketImpl"> {
4
- url?: string | URL;
5
- connectionParams?: Record<string, unknown> | (() => MaybePromise<Record<string, unknown>>);
6
- webSocket?: unknown;
7
- }
8
- export declare const ws: Transport<WsOptions>;
9
- //# sourceMappingURL=ws.d.ts.map
package/dist/ws.d.ts.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"ws.d.ts","sourceRoot":"","sources":["../src/ws.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,KAAK,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAErE,OAAO,EAGL,KAAK,YAAY,EACjB,KAAK,SAAS,EACf,MAAM,gBAAgB,CAAC;AAIxB,MAAM,WAAW,SAAU,SAAQ,IAAI,CACrC,aAAa,EACb,KAAK,GAAG,kBAAkB,GAAG,eAAe,CAC7C;IAEC,GAAG,CAAC,EAAE,MAAM,GAAG,GAAG,CAAC;IAKnB,gBAAgB,CAAC,EACb,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACvB,CAAC,MAAM,YAAY,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;IAElD,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AA0BD,eAAO,MAAM,EAAE,EAAE,SAAS,CAAC,SAAS,CA4CnC,CAAC"}
package/dist/ws.js DELETED
@@ -1,60 +0,0 @@
1
- import { createClient } from "graphql-ws/client";
2
- import { asResult, stream } from "./transport.js";
3
- const isClose = (error) => typeof error === "object" &&
4
- error !== null &&
5
- "code" in error &&
6
- "reason" in error;
7
- const refused = ({ code, reason }) => ({
8
- data: null,
9
- errors: [
10
- {
11
- message: reason || `WebSocket closed (${code})`,
12
- extensions: { code: "WEBSOCKET_CLOSED", closeCode: code }
13
- }
14
- ]
15
- });
16
- export const ws = {
17
- kind: "ws",
18
- connect(endpoint, options = {}) {
19
- const client = createClient({
20
- lazy: true,
21
- ...options,
22
- url: endpoint.url,
23
- webSocketImpl: options.webSocket,
24
- connectionParams: async () => {
25
- const params = options.connectionParams;
26
- if (params)
27
- return typeof params === "function" ? params() : params;
28
- return { headers: Object.fromEntries(await endpoint.headers()) };
29
- }
30
- });
31
- return {
32
- async *subscribe(document, variables, signal) {
33
- const events = client.iterate({
34
- query: document.query,
35
- variables: variables,
36
- operationName: document.name
37
- });
38
- try {
39
- for await (const event of stream(events, signal))
40
- yield asResult(event);
41
- }
42
- catch (error) {
43
- if (Array.isArray(error)) {
44
- yield asResult({ errors: error });
45
- return;
46
- }
47
- if (!isClose(error) || error.code < 4000 || error.code > 4999) {
48
- throw error;
49
- }
50
- yield refused(error);
51
- }
52
- },
53
- reconnect: () => client.terminate(),
54
- close: async () => {
55
- await client.dispose();
56
- }
57
- };
58
- }
59
- };
60
- //# sourceMappingURL=ws.js.map
package/dist/ws.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"ws.js","sourceRoot":"","sources":["../src/ws.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAsB,MAAM,mBAAmB,CAAC;AAErE,OAAO,EACL,QAAQ,EACR,MAAM,EAGP,MAAM,gBAAgB,CAAC;AA0BxB,MAAM,OAAO,GAAG,CAAC,KAAc,EAAuB,EAAE,CACtD,OAAO,KAAK,KAAK,QAAQ;IACzB,KAAK,KAAK,IAAI;IACd,MAAM,IAAI,KAAK;IACf,QAAQ,IAAI,KAAK,CAAC;AAIpB,MAAM,OAAO,GAAG,CAAC,EAAE,IAAI,EAAE,MAAM,EAAc,EAAiB,EAAE,CAAC,CAAC;IAChE,IAAI,EAAE,IAAI;IACV,MAAM,EAAE;QACN;YACE,OAAO,EAAE,MAAM,IAAI,qBAAqB,IAAI,GAAG;YAC/C,UAAU,EAAE,EAAE,IAAI,EAAE,kBAAkB,EAAE,SAAS,EAAE,IAAI,EAAE;SAC1D;KACF;CACF,CAAC,CAAC;AAGH,MAAM,CAAC,MAAM,EAAE,GAAyB;IACtC,IAAI,EAAE,IAAI;IACV,OAAO,CAAC,QAAQ,EAAE,OAAO,GAAG,EAAE;QAC5B,MAAM,MAAM,GAAG,YAAY,CAAC;YAC1B,IAAI,EAAE,IAAI;YACV,GAAG,OAAO;YACV,GAAG,EAAE,QAAQ,CAAC,GAAG;YACjB,aAAa,EAAE,OAAO,CAAC,SAAS;YAChC,gBAAgB,EAAE,KAAK,IAAI,EAAE;gBAC3B,MAAM,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC;gBACxC,IAAI,MAAM;oBAAE,OAAO,OAAO,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC;gBACpE,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,WAAW,CAAC,MAAM,QAAQ,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC;YACnE,CAAC;SACF,CAAC,CAAC;QACH,OAAO;YACL,KAAK,CAAC,CAAC,SAAS,CAAC,QAAQ,EAAE,SAAS,EAAE,MAAM;gBAC1C,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC;oBAC5B,KAAK,EAAE,QAAQ,CAAC,KAAK;oBACrB,SAAS,EAAE,SAAgD;oBAC3D,aAAa,EAAE,QAAQ,CAAC,IAAI;iBAC7B,CAAC,CAAC;gBACH,IAAI,CAAC;oBACH,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;wBAC9C,MAAM,QAAQ,CAAC,KAAK,CAAC,CAAC;gBAC1B,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBAGf,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;wBACzB,MAAM,QAAQ,CAAC,EAAE,MAAM,EAAE,KAA2B,EAAE,CAAC,CAAC;wBACxD,OAAO;oBACT,CAAC;oBACD,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,GAAG,IAAI,IAAI,KAAK,CAAC,IAAI,GAAG,IAAI,EAAE,CAAC;wBAC9D,MAAM,KAAK,CAAC;oBACd,CAAC;oBACD,MAAM,OAAO,CAAC,KAAK,CAAC,CAAC;gBACvB,CAAC;YACH,CAAC;YAED,SAAS,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,SAAS,EAAE;YACnC,KAAK,EAAE,KAAK,IAAI,EAAE;gBAChB,MAAM,MAAM,CAAC,OAAO,EAAE,CAAC;YACzB,CAAC;SACF,CAAC;IACJ,CAAC;CACF,CAAC"}