@distilled.cloud/core 1.0.0-rc.1 → 1.0.0-rc.10
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/LICENSE +201 -0
- package/lib/api.d.ts.map +1 -1
- package/lib/api.js +16 -4
- package/lib/api.js.map +1 -1
- package/lib/category.d.ts +4 -4
- package/lib/category.js +4 -4
- package/lib/codegen/boolean-string-enums.d.ts +36 -0
- package/lib/codegen/boolean-string-enums.d.ts.map +1 -0
- package/lib/codegen/boolean-string-enums.js +94 -0
- package/lib/codegen/boolean-string-enums.js.map +1 -0
- package/lib/codegen/boolean-string-enums.test.d.ts +2 -0
- package/lib/codegen/boolean-string-enums.test.d.ts.map +1 -0
- package/lib/codegen/boolean-string-enums.test.js +147 -0
- package/lib/codegen/boolean-string-enums.test.js.map +1 -0
- package/lib/codegen/cli.d.ts +56 -6
- package/lib/codegen/cli.d.ts.map +1 -1
- package/lib/codegen/cli.js +59 -75
- package/lib/codegen/cli.js.map +1 -1
- package/lib/codegen/emit.d.ts +3 -7
- package/lib/codegen/emit.d.ts.map +1 -1
- package/lib/codegen/emit.js +6 -10
- package/lib/codegen/emit.js.map +1 -1
- package/lib/codegen/generator.d.ts.map +1 -1
- package/lib/codegen/generator.js +142 -20
- package/lib/codegen/generator.js.map +1 -1
- package/lib/codegen/graphql-client.d.ts +62 -0
- package/lib/codegen/graphql-client.d.ts.map +1 -0
- package/lib/codegen/graphql-client.js +294 -0
- package/lib/codegen/graphql-client.js.map +1 -0
- package/lib/codegen/graphql-client.test.d.ts +2 -0
- package/lib/codegen/graphql-client.test.d.ts.map +1 -0
- package/lib/codegen/graphql-client.test.js +311 -0
- package/lib/codegen/graphql-client.test.js.map +1 -0
- package/lib/codegen/graphql.d.ts +207 -0
- package/lib/codegen/graphql.d.ts.map +1 -0
- package/lib/codegen/graphql.js +799 -0
- package/lib/codegen/graphql.js.map +1 -0
- package/lib/codegen/openapi-cli.d.ts +17 -3
- package/lib/codegen/openapi-cli.d.ts.map +1 -1
- package/lib/codegen/openapi-cli.js +50 -48
- package/lib/codegen/openapi-cli.js.map +1 -1
- package/lib/codegen/openapi.d.ts +69 -6
- package/lib/codegen/openapi.d.ts.map +1 -1
- package/lib/codegen/openapi.js +173 -16
- package/lib/codegen/openapi.js.map +1 -1
- package/lib/codegen/patches.d.ts +65 -0
- package/lib/codegen/patches.d.ts.map +1 -0
- package/lib/codegen/patches.js +236 -0
- package/lib/codegen/patches.js.map +1 -0
- package/lib/codegen/patches.test.d.ts +2 -0
- package/lib/codegen/patches.test.d.ts.map +1 -0
- package/lib/codegen/patches.test.js +105 -0
- package/lib/codegen/patches.test.js.map +1 -0
- package/lib/codegen/proto.d.ts +121 -0
- package/lib/codegen/proto.d.ts.map +1 -0
- package/lib/codegen/proto.js +962 -0
- package/lib/codegen/proto.js.map +1 -0
- package/lib/codegen/rewrite-operation-ids.d.ts +131 -0
- package/lib/codegen/rewrite-operation-ids.d.ts.map +1 -0
- package/lib/codegen/rewrite-operation-ids.js +1079 -0
- package/lib/codegen/rewrite-operation-ids.js.map +1 -0
- package/lib/codegen/rewrite-operation-ids.test.d.ts +2 -0
- package/lib/codegen/rewrite-operation-ids.test.d.ts.map +1 -0
- package/lib/codegen/rewrite-operation-ids.test.js +533 -0
- package/lib/codegen/rewrite-operation-ids.test.js.map +1 -0
- package/lib/codegen/spec-path.d.ts +16 -0
- package/lib/codegen/spec-path.d.ts.map +1 -0
- package/lib/codegen/spec-path.js +101 -0
- package/lib/codegen/spec-path.js.map +1 -0
- package/lib/errors.d.ts.map +1 -1
- package/lib/errors.js +17 -13
- package/lib/errors.js.map +1 -1
- package/lib/graphql.d.ts +284 -0
- package/lib/graphql.d.ts.map +1 -0
- package/lib/graphql.fixture.d.ts +249 -0
- package/lib/graphql.fixture.d.ts.map +1 -0
- package/lib/graphql.fixture.js +240 -0
- package/lib/graphql.fixture.js.map +1 -0
- package/lib/graphql.js +718 -0
- package/lib/graphql.js.map +1 -0
- package/lib/graphql.test.d.ts +2 -0
- package/lib/graphql.test.d.ts.map +1 -0
- package/lib/graphql.test.js +780 -0
- package/lib/graphql.test.js.map +1 -0
- package/lib/graphql.types.d.ts +2 -0
- package/lib/graphql.types.d.ts.map +1 -0
- package/lib/graphql.types.js +45 -0
- package/lib/graphql.types.js.map +1 -0
- package/lib/json-patch.d.ts +18 -11
- package/lib/json-patch.d.ts.map +1 -1
- package/lib/json-patch.js +63 -25
- package/lib/json-patch.js.map +1 -1
- package/lib/pagination.d.ts +43 -3
- package/lib/pagination.d.ts.map +1 -1
- package/lib/pagination.js +91 -5
- package/lib/pagination.js.map +1 -1
- package/lib/protocol-http.d.ts.map +1 -1
- package/lib/protocol-http.js +62 -26
- package/lib/protocol-http.js.map +1 -1
- package/lib/protocol-http.test.d.ts +2 -0
- package/lib/protocol-http.test.d.ts.map +1 -0
- package/lib/protocol-http.test.js +88 -0
- package/lib/protocol-http.test.js.map +1 -0
- package/lib/protocol-rest.d.ts +12 -2
- package/lib/protocol-rest.d.ts.map +1 -1
- package/lib/protocol-rest.js +17 -3
- package/lib/protocol-rest.js.map +1 -1
- package/lib/retry.js +1 -1
- package/lib/schema.d.ts +1 -1
- package/lib/schema.d.ts.map +1 -1
- package/lib/schema.js +1 -1
- package/lib/schema.js.map +1 -1
- package/lib/trait.d.ts +27 -3
- package/lib/trait.d.ts.map +1 -1
- package/lib/trait.js +17 -1
- package/lib/trait.js.map +1 -1
- package/package.json +13 -10
- package/src/api.ts +18 -4
- package/src/category.ts +4 -4
- package/src/codegen/boolean-string-enums.test.ts +168 -0
- package/src/codegen/boolean-string-enums.ts +106 -0
- package/src/codegen/cli.ts +127 -110
- package/src/codegen/emit.ts +6 -10
- package/src/codegen/generator.ts +151 -21
- package/src/codegen/graphql-client.test.ts +386 -0
- package/src/codegen/graphql-client.ts +419 -0
- package/src/codegen/graphql.ts +1217 -0
- package/src/codegen/openapi-cli.ts +75 -59
- package/src/codegen/openapi.ts +255 -16
- package/src/codegen/patches.test.ts +130 -0
- package/src/codegen/patches.ts +291 -0
- package/src/codegen/proto.ts +1128 -0
- package/src/codegen/rewrite-operation-ids.test.ts +563 -0
- package/src/codegen/rewrite-operation-ids.ts +1206 -0
- package/src/codegen/spec-path.ts +115 -0
- package/src/errors.ts +20 -25
- package/src/graphql.fixture.ts +371 -0
- package/src/graphql.test.ts +974 -0
- package/src/graphql.ts +1321 -0
- package/src/graphql.types.ts +185 -0
- package/src/json-patch.ts +82 -25
- package/src/pagination.ts +134 -7
- package/src/protocol-http.test.ts +107 -0
- package/src/protocol-http.ts +67 -31
- package/src/protocol-rest.ts +28 -4
- package/src/retry.ts +1 -1
- package/src/schema.ts +2 -2
- package/src/trait.ts +39 -3
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/** Set to a non-empty value to read specs from `specs/.local` instead. */
|
|
2
|
+
export declare const LOCAL_ENV = "DISTILLED_SPECS_LOCAL";
|
|
3
|
+
/** The local working copy of a mirror, relative to a package root. */
|
|
4
|
+
export declare const LOCAL_DIR: string;
|
|
5
|
+
/** Repository name of the mirror feeding `packages/<pkg>`. */
|
|
6
|
+
export declare const mirrorRepositoryName: (pkg: string) => string;
|
|
7
|
+
/** Whether this process reads specs from `specs/.local`. */
|
|
8
|
+
export declare const isLocalSpecs: () => boolean;
|
|
9
|
+
/**
|
|
10
|
+
* Resolve a package-relative spec path to an absolute one.
|
|
11
|
+
*
|
|
12
|
+
* @param root absolute package root (`path.resolve(import.meta.dir, "..")`)
|
|
13
|
+
* @param specPath the production path, relative to `root` (or absolute)
|
|
14
|
+
*/
|
|
15
|
+
export declare const resolveSpecPath: (root: string, specPath: string) => string;
|
|
16
|
+
//# sourceMappingURL=spec-path.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"spec-path.d.ts","sourceRoot":"","sources":["../../src/codegen/spec-path.ts"],"names":[],"mappings":"AAoCA,0EAA0E;AAC1E,eAAO,MAAM,SAAS,0BAA0B,CAAC;AAEjD,sEAAsE;AACtE,eAAO,MAAM,SAAS,QAA+B,CAAC;AAEtD,8DAA8D;AAC9D,eAAO,MAAM,oBAAoB,QAAS,MAAM,WAAyB,CAAC;AAE1E,4DAA4D;AAC5D,eAAO,MAAM,YAAY,QAAO,OACc,CAAC;AAyB/C;;;;;GAKG;AACH,eAAO,MAAM,eAAe,SAAU,MAAM,YAAY,MAAM,KAAG,MAoChE,CAAC"}
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Spec path resolution — the seam between a production spec mirror and a
|
|
3
|
+
* local working copy of one (dev-time only).
|
|
4
|
+
*
|
|
5
|
+
* Every SDK package reads its specs from `packages/<pkg>/specs/`. In
|
|
6
|
+
* production that directory holds a submodule of the package's mirror
|
|
7
|
+
* repository, `distilled-mirror/spec-mirror-<pkg>`, whose layout is fixed:
|
|
8
|
+
*
|
|
9
|
+
* packages/<pkg>/specs/spec-mirror-<pkg>/
|
|
10
|
+
* ├── .meta/ fetch-specs.ts + its package.json
|
|
11
|
+
* └── specs/ what the generator reads
|
|
12
|
+
*
|
|
13
|
+
* A contributor adding a provider cannot create that repository — it lives in
|
|
14
|
+
* an org they have no write access to, and it is only created once the
|
|
15
|
+
* `distilled-submodules` stack deploys on merge to main. So `pnpm specs:local
|
|
16
|
+
* <pkg>` runs the same `fetch-specs.ts` into a gitignored directory shaped
|
|
17
|
+
* exactly like the mirror:
|
|
18
|
+
*
|
|
19
|
+
* packages/<pkg>/specs/.local/
|
|
20
|
+
* ├── .meta/
|
|
21
|
+
* └── specs/
|
|
22
|
+
*
|
|
23
|
+
* Setting {@link LOCAL_ENV} then re-roots every spec read into it. Nothing in
|
|
24
|
+
* the package's source changes — the `specPath` a `convert.ts` declares stays
|
|
25
|
+
* the production one — so there is no `.local` reference that could be
|
|
26
|
+
* committed by accident, and the switch is impossible to leave on: it lives
|
|
27
|
+
* in the environment of one command, never in a file.
|
|
28
|
+
*
|
|
29
|
+
* The opt-in is deliberate rather than a fallback-when-missing. A silent
|
|
30
|
+
* fallback would regenerate an SDK from a stale `.local` copy the moment a
|
|
31
|
+
* submodule failed to check out, and the result — committed, formatted,
|
|
32
|
+
* plausible — would be indistinguishable from a real regeneration.
|
|
33
|
+
*/
|
|
34
|
+
import * as fs from "node:fs";
|
|
35
|
+
import * as path from "node:path";
|
|
36
|
+
/** Set to a non-empty value to read specs from `specs/.local` instead. */
|
|
37
|
+
export const LOCAL_ENV = "DISTILLED_SPECS_LOCAL";
|
|
38
|
+
/** The local working copy of a mirror, relative to a package root. */
|
|
39
|
+
export const LOCAL_DIR = path.join("specs", ".local");
|
|
40
|
+
/** Repository name of the mirror feeding `packages/<pkg>`. */
|
|
41
|
+
export const mirrorRepositoryName = (pkg) => `spec-mirror-${pkg}`;
|
|
42
|
+
/** Whether this process reads specs from `specs/.local`. */
|
|
43
|
+
export const isLocalSpecs = () => (process.env[LOCAL_ENV] ?? "").trim() !== "";
|
|
44
|
+
let announced = false;
|
|
45
|
+
/**
|
|
46
|
+
* The path within a mirror's `specs/` directory that `specPath` names.
|
|
47
|
+
*
|
|
48
|
+
* Spec paths take one of two shapes — `specs/<mirror>/specs/<tail>` for a
|
|
49
|
+
* submodule and `specs/<tail>` for a committed file — and in both the tail is
|
|
50
|
+
* everything after the LAST `specs` segment. That one rule covers the
|
|
51
|
+
* submodule form, the committed form, the nested forms
|
|
52
|
+
* (`specs/<mirror>/specs/models/<service>/...`) and the directory form
|
|
53
|
+
* (`specs/<mirror>/specs`, whose tail is empty — the mirror's `specs/`
|
|
54
|
+
* directory itself) without needing to know which it was handed.
|
|
55
|
+
*
|
|
56
|
+
* `undefined` means there is no `specs` segment at all, which local mode
|
|
57
|
+
* cannot interpret.
|
|
58
|
+
*/
|
|
59
|
+
const tailWithinSpecs = (specPath) => {
|
|
60
|
+
const segments = specPath.split(/[/\\]/).filter((s) => s !== "" && s !== ".");
|
|
61
|
+
const last = segments.lastIndexOf("specs");
|
|
62
|
+
if (last === -1)
|
|
63
|
+
return undefined;
|
|
64
|
+
return segments.slice(last + 1).join(path.sep);
|
|
65
|
+
};
|
|
66
|
+
/**
|
|
67
|
+
* Resolve a package-relative spec path to an absolute one.
|
|
68
|
+
*
|
|
69
|
+
* @param root absolute package root (`path.resolve(import.meta.dir, "..")`)
|
|
70
|
+
* @param specPath the production path, relative to `root` (or absolute)
|
|
71
|
+
*/
|
|
72
|
+
export const resolveSpecPath = (root, specPath) => {
|
|
73
|
+
const production = path.resolve(root, specPath);
|
|
74
|
+
if (!isLocalSpecs() || path.isAbsolute(specPath))
|
|
75
|
+
return production;
|
|
76
|
+
const tail = tailWithinSpecs(specPath);
|
|
77
|
+
if (tail === undefined) {
|
|
78
|
+
throw new Error(`${LOCAL_ENV} is set, but "${specPath}" has no \`specs/\` segment to ` +
|
|
79
|
+
`re-root. Local mode only understands paths under the package's ` +
|
|
80
|
+
`specs/ directory.`);
|
|
81
|
+
}
|
|
82
|
+
if (!announced) {
|
|
83
|
+
announced = true;
|
|
84
|
+
// stderr, not stdout: generate-all captures stdout per package and only
|
|
85
|
+
// prints it on failure, and this is exactly the line you need to see on
|
|
86
|
+
// a run that succeeded against the wrong specs.
|
|
87
|
+
console.error(`⚠ ${LOCAL_ENV} — reading specs from ${LOCAL_DIR}, not the mirror submodule.`);
|
|
88
|
+
}
|
|
89
|
+
const local = path.join(root, LOCAL_DIR, "specs", tail);
|
|
90
|
+
if (!fs.existsSync(local)) {
|
|
91
|
+
// A missing local spec is a setup mistake, not a generator bug, and the
|
|
92
|
+
// ENOENT the caller would otherwise raise names a path nobody recognises.
|
|
93
|
+
throw new Error(`${local} does not exist. Materialise this package's mirror first:\n` +
|
|
94
|
+
` pnpm specs:local ${path.basename(root)}\n` +
|
|
95
|
+
`If that succeeds and this path is still missing, the package's ` +
|
|
96
|
+
`declared spec path (${specPath}) is not mirror-shaped yet — it must ` +
|
|
97
|
+
`read \`specs/<mirror>/specs/<file>\` for local mode to find it.`);
|
|
98
|
+
}
|
|
99
|
+
return local;
|
|
100
|
+
};
|
|
101
|
+
//# sourceMappingURL=spec-path.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"spec-path.js","sourceRoot":"","sources":["../../src/codegen/spec-path.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAElC,0EAA0E;AAC1E,MAAM,CAAC,MAAM,SAAS,GAAG,uBAAuB,CAAC;AAEjD,sEAAsE;AACtE,MAAM,CAAC,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;AAEtD,8DAA8D;AAC9D,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,GAAW,EAAE,EAAE,CAAC,eAAe,GAAG,EAAE,CAAC;AAE1E,4DAA4D;AAC5D,MAAM,CAAC,MAAM,YAAY,GAAG,GAAY,EAAE,CACxC,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC;AAE/C,IAAI,SAAS,GAAG,KAAK,CAAC;AAEtB;;;;;;;;;;;;;GAaG;AACH,MAAM,eAAe,GAAG,CAAC,QAAgB,EAAsB,EAAE;IAC/D,MAAM,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;IAC9E,MAAM,IAAI,GAAG,QAAQ,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IAC3C,IAAI,IAAI,KAAK,CAAC,CAAC;QAAE,OAAO,SAAS,CAAC;IAClC,OAAO,QAAQ,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACjD,CAAC,CAAC;AAEF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,IAAY,EAAE,QAAgB,EAAU,EAAE;IACxE,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IAChD,IAAI,CAAC,YAAY,EAAE,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC;QAAE,OAAO,UAAU,CAAC;IAEpE,MAAM,IAAI,GAAG,eAAe,CAAC,QAAQ,CAAC,CAAC;IACvC,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QACvB,MAAM,IAAI,KAAK,CACb,GAAG,SAAS,iBAAiB,QAAQ,iCAAiC;YACpE,iEAAiE;YACjE,mBAAmB,CACtB,CAAC;IACJ,CAAC;IAED,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,SAAS,GAAG,IAAI,CAAC;QACjB,wEAAwE;QACxE,wEAAwE;QACxE,gDAAgD;QAChD,OAAO,CAAC,KAAK,CACX,MAAM,SAAS,yBAAyB,SAAS,6BAA6B,CAC/E,CAAC;IACJ,CAAC;IAED,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;IACxD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;QAC1B,wEAAwE;QACxE,0EAA0E;QAC1E,MAAM,IAAI,KAAK,CACb,GAAG,KAAK,6DAA6D;YACnE,sBAAsB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI;YAC7C,iEAAiE;YACjE,uBAAuB,QAAQ,uCAAuC;YACtE,iEAAiE,CACpE,CAAC;IACJ,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC,CAAC"}
|
package/lib/errors.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,KAAK,QAAQ,MAAM,iBAAiB,CAAC;AAC5C,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAC;AAM1C;;;;;;;;GAQG;AACH,eAAO,MAAM,cAAc,sDAE1B,CAAC;;;;;;;;AAMF;;GAEG;AACH,qBAAa,YAAa,SAAQ,iBAGJ;CAAG;;;;;;;;AAEjC;;GAEG;AACH,qBAAa,SAAU,SAAQ,
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,KAAK,QAAQ,MAAM,iBAAiB,CAAC;AAC5C,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAC;AAM1C;;;;;;;;GAQG;AACH,eAAO,MAAM,cAAc,sDAE1B,CAAC;;;;;;;;AAMF;;GAEG;AACH,qBAAa,YAAa,SAAQ,iBAGJ;CAAG;;;;;;;;AAEjC;;GAEG;AACH,qBAAa,SAAU,SAAQ,cAEA;CAAG;;;;;;;;AAElC;;GAEG;AACH,qBAAa,QAAS,SAAQ,aAEK;CAAG;;;;;;;;AAEtC;;GAEG;AACH,qBAAa,UAAW,SAAQ,eAEK;CAAG;;;;;;;;AAExC;;GAEG;AACH,qBAAa,QAAS,SAAQ,aAEK;CAAG;;;;;;;;AAEtC;;GAEG;AACH,qBAAa,mBAAoB,SAAQ,wBAGL;CAAG;;;;;;;;;;;AAEvC;;GAEG;AACH,qBAAa,eAAgB,SAAQ,oBASpC;CAAG;;;;;;;;;;;AAEJ;;GAEG;AACH,qBAAa,MAAO,SAAQ,WAG+B;CAAG;;;;;;;;;;;;AAE9D;;;;;;;GAOG;AACH,qBAAa,mBAAoB,SAAQ,wBAOiB;CAAG;;;;;;;;;;;AAE7D;;GAEG;AACH,qBAAa,UAAW,SAAQ,eAG2B;CAAG;;;;;;;;;;;AAE9D;;GAEG;AACH,qBAAa,kBAAmB,SAAQ,uBAMkB;CAAG;;;;;;;;;;;AAE7D;;GAEG;AACH,qBAAa,cAAe,SAAQ,mBAMsB;CAAG;;;;;;;;AAE7D;;GAEG;AACH,qBAAa,WAAY,SAAQ,gBAGM;CAAG;AAM1C;;GAEG;AACH,eAAO,MAAM,eAAe;aAC1B,GAAG;aACH,GAAG;aACH,GAAG;aACH,GAAG;aACH,GAAG;aACH,GAAG;aACH,GAAG;aACH,GAAG;aACH,GAAG;aACH,GAAG;aACH,GAAG;aACH,GAAG;CACK,CAAC;AAEX;;;GAGG;AACH,eAAO,MAAM,sBAAsB,aAA0C,CAAC;AAE9E;;;;;;;;;GASG;AACH,eAAO,MAAM,uBAAuB,aAA0C,CAAC;AAE/E;;GAEG;AACH,eAAO,MAAM,UAAU,2QAab,CAAC;AAEX;;;GAGG;AACH,eAAO,MAAM,cAAc,yJAOjB,CAAC;AAEX,MAAM,MAAM,aAAa,GAAG,YAAY,CAAC,CAAC,OAAO,cAAc,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;AAE1E,eAAO,MAAM,SAAS,EAAG,6BAAsC,CAAC"}
|
package/lib/errors.js
CHANGED
|
@@ -27,41 +27,45 @@ export const DurationSchema = Schema.declare(Duration.isDuration);
|
|
|
27
27
|
/**
|
|
28
28
|
* Unauthorized - Authentication failure (401).
|
|
29
29
|
*/
|
|
30
|
-
export class Unauthorized extends Schema.
|
|
30
|
+
export class Unauthorized extends Schema.TaggedError()("Unauthorized", { message: Schema.String }).pipe(Category.withAuthError) {
|
|
31
31
|
}
|
|
32
32
|
/**
|
|
33
33
|
* Forbidden - Access denied (403).
|
|
34
34
|
*/
|
|
35
|
-
export class Forbidden extends Schema.
|
|
35
|
+
export class Forbidden extends Schema.TaggedError()("Forbidden", {
|
|
36
|
+
message: Schema.String,
|
|
37
|
+
}).pipe(Category.withAuthError) {
|
|
36
38
|
}
|
|
37
39
|
/**
|
|
38
40
|
* NotFound - Resource not found (404).
|
|
39
41
|
*/
|
|
40
|
-
export class NotFound extends Schema.
|
|
42
|
+
export class NotFound extends Schema.TaggedError()("NotFound", {
|
|
41
43
|
message: Schema.String,
|
|
42
44
|
}).pipe(Category.withNotFoundError) {
|
|
43
45
|
}
|
|
44
46
|
/**
|
|
45
47
|
* BadRequest - Invalid request (400).
|
|
46
48
|
*/
|
|
47
|
-
export class BadRequest extends Schema.
|
|
49
|
+
export class BadRequest extends Schema.TaggedError()("BadRequest", {
|
|
50
|
+
message: Schema.String,
|
|
51
|
+
}).pipe(Category.withBadRequestError) {
|
|
48
52
|
}
|
|
49
53
|
/**
|
|
50
54
|
* Conflict - Resource conflict (409).
|
|
51
55
|
*/
|
|
52
|
-
export class Conflict extends Schema.
|
|
56
|
+
export class Conflict extends Schema.TaggedError()("Conflict", {
|
|
53
57
|
message: Schema.String,
|
|
54
58
|
}).pipe(Category.withConflictError) {
|
|
55
59
|
}
|
|
56
60
|
/**
|
|
57
61
|
* UnprocessableEntity - Validation error (422).
|
|
58
62
|
*/
|
|
59
|
-
export class UnprocessableEntity extends Schema.
|
|
63
|
+
export class UnprocessableEntity extends Schema.TaggedError()("UnprocessableEntity", { message: Schema.String }).pipe(Category.withBadRequestError) {
|
|
60
64
|
}
|
|
61
65
|
/**
|
|
62
66
|
* TooManyRequests - Rate limited (429).
|
|
63
67
|
*/
|
|
64
|
-
export class TooManyRequests extends Schema.
|
|
68
|
+
export class TooManyRequests extends Schema.TaggedError()("TooManyRequests", {
|
|
65
69
|
message: Schema.String,
|
|
66
70
|
retryAfter: Schema.optional(DurationSchema),
|
|
67
71
|
}).pipe(Category.withThrottlingError, Category.withRetryable({ throttling: true })) {
|
|
@@ -69,7 +73,7 @@ export class TooManyRequests extends Schema.TaggedErrorClass()("TooManyRequests"
|
|
|
69
73
|
/**
|
|
70
74
|
* Locked - Resource locked (423).
|
|
71
75
|
*/
|
|
72
|
-
export class Locked extends Schema.
|
|
76
|
+
export class Locked extends Schema.TaggedError()("Locked", {
|
|
73
77
|
message: Schema.String,
|
|
74
78
|
retryAfter: Schema.optional(DurationSchema),
|
|
75
79
|
}).pipe(Category.withLockedError, Category.withRetryable()) {
|
|
@@ -82,7 +86,7 @@ export class Locked extends Schema.TaggedErrorClass()("Locked", {
|
|
|
82
86
|
* 200 envelope carrying `{ code: 10002, message: "An unknown error has
|
|
83
87
|
* occurred" }` for transient backend failures on some endpoints).
|
|
84
88
|
*/
|
|
85
|
-
export class InternalServerError extends Schema.
|
|
89
|
+
export class InternalServerError extends Schema.TaggedError()("InternalServerError", {
|
|
86
90
|
message: Schema.String,
|
|
87
91
|
code: Schema.optional(Schema.Number),
|
|
88
92
|
retryAfter: Schema.optional(DurationSchema),
|
|
@@ -91,7 +95,7 @@ export class InternalServerError extends Schema.TaggedErrorClass()("InternalServ
|
|
|
91
95
|
/**
|
|
92
96
|
* BadGateway - Bad gateway (502).
|
|
93
97
|
*/
|
|
94
|
-
export class BadGateway extends Schema.
|
|
98
|
+
export class BadGateway extends Schema.TaggedError()("BadGateway", {
|
|
95
99
|
message: Schema.String,
|
|
96
100
|
retryAfter: Schema.optional(DurationSchema),
|
|
97
101
|
}).pipe(Category.withServerError, Category.withRetryable()) {
|
|
@@ -99,7 +103,7 @@ export class BadGateway extends Schema.TaggedErrorClass()("BadGateway", {
|
|
|
99
103
|
/**
|
|
100
104
|
* ServiceUnavailable - Service unavailable (503).
|
|
101
105
|
*/
|
|
102
|
-
export class ServiceUnavailable extends Schema.
|
|
106
|
+
export class ServiceUnavailable extends Schema.TaggedError()("ServiceUnavailable", {
|
|
103
107
|
message: Schema.String,
|
|
104
108
|
retryAfter: Schema.optional(DurationSchema),
|
|
105
109
|
}).pipe(Category.withServerError, Category.withRetryable()) {
|
|
@@ -107,7 +111,7 @@ export class ServiceUnavailable extends Schema.TaggedErrorClass()("ServiceUnavai
|
|
|
107
111
|
/**
|
|
108
112
|
* GatewayTimeout - Gateway timeout (504).
|
|
109
113
|
*/
|
|
110
|
-
export class GatewayTimeout extends Schema.
|
|
114
|
+
export class GatewayTimeout extends Schema.TaggedError()("GatewayTimeout", {
|
|
111
115
|
message: Schema.String,
|
|
112
116
|
retryAfter: Schema.optional(DurationSchema),
|
|
113
117
|
}).pipe(Category.withServerError, Category.withRetryable()) {
|
|
@@ -115,7 +119,7 @@ export class GatewayTimeout extends Schema.TaggedErrorClass()("GatewayTimeout",
|
|
|
115
119
|
/**
|
|
116
120
|
* Configuration error - missing or invalid configuration.
|
|
117
121
|
*/
|
|
118
|
-
export class ConfigError extends Schema.
|
|
122
|
+
export class ConfigError extends Schema.TaggedError()("ConfigError", { message: Schema.String }).pipe(Category.withConfigurationError) {
|
|
119
123
|
}
|
|
120
124
|
// ============================================================================
|
|
121
125
|
// Error Maps
|
package/lib/errors.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,KAAK,QAAQ,MAAM,iBAAiB,CAAC;AAC5C,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAC;AAE1C,+EAA+E;AAC/E,wBAAwB;AACxB,+EAA+E;AAE/E;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,MAAM,CAAC,OAAO,CAC1C,QAAQ,CAAC,UAAU,CACpB,CAAC;AAEF,+EAA+E;AAC/E,mCAAmC;AACnC,+EAA+E;AAE/E;;GAEG;AACH,MAAM,OAAO,YAAa,SAAQ,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"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"}
|
package/lib/graphql.d.ts
ADDED
|
@@ -0,0 +1,284 @@
|
|
|
1
|
+
import * as Effect from "effect/Effect";
|
|
2
|
+
import * as S from "effect/Schema";
|
|
3
|
+
import * as Stream from "effect/Stream";
|
|
4
|
+
import type { GraphQLModel } from "./codegen/graphql-client.ts";
|
|
5
|
+
export type { GraphQLModel } from "./codegen/graphql-client.ts";
|
|
6
|
+
/** A generated field's arguments, GraphQL output reference, and error tags. */
|
|
7
|
+
export interface Field<Args, Ref extends string, E extends string = never> {
|
|
8
|
+
readonly args: Args;
|
|
9
|
+
readonly type: Ref;
|
|
10
|
+
readonly errors: E;
|
|
11
|
+
}
|
|
12
|
+
export interface Schema {
|
|
13
|
+
types: Record<string, Record<string, Field<any, string, string>>>;
|
|
14
|
+
scalars: Record<string, unknown>;
|
|
15
|
+
errors: Record<string, GraphQLIssue>;
|
|
16
|
+
possibleTypes: Record<string, string>;
|
|
17
|
+
query: string;
|
|
18
|
+
mutation: string;
|
|
19
|
+
subscription: string;
|
|
20
|
+
globalErrors: string;
|
|
21
|
+
}
|
|
22
|
+
type Named<T extends string> = T extends `${infer R}!` ? Named<R> : T extends `[${infer R}]` ? Named<R> : T;
|
|
23
|
+
type Fields<C extends Schema, N extends string> = N extends keyof C["types"] ? C["types"][N] : {};
|
|
24
|
+
type TypeOf<F> = F extends Field<any, infer T, any> ? T : never;
|
|
25
|
+
type ArgsOf<F> = F extends Field<infer A, any, any> ? A : never;
|
|
26
|
+
type TagsOf<F> = F extends Field<any, any, infer E> ? E : never;
|
|
27
|
+
type Where<A> = {} extends A ? {
|
|
28
|
+
readonly where?: A;
|
|
29
|
+
} : {
|
|
30
|
+
readonly where: A;
|
|
31
|
+
};
|
|
32
|
+
type Directives = {
|
|
33
|
+
readonly $include?: boolean;
|
|
34
|
+
readonly $skip?: boolean;
|
|
35
|
+
};
|
|
36
|
+
type FieldSelection<C extends Schema, F> = Named<TypeOf<F>> extends keyof C["scalars"] ? ({} extends ArgsOf<F> ? boolean : never) | (Where<ArgsOf<F>> & Directives & {
|
|
37
|
+
readonly select?: true;
|
|
38
|
+
}) : (keyof ArgsOf<F> extends never ? Selection<C, Named<TypeOf<F>>> : never) | (Where<ArgsOf<F>> & Directives & {
|
|
39
|
+
readonly select: Selection<C, Named<TypeOf<F>>>;
|
|
40
|
+
});
|
|
41
|
+
type Alias<C extends Schema, N extends string> = {
|
|
42
|
+
[K in keyof Fields<C, N>]: {
|
|
43
|
+
readonly [P in K]: FieldSelection<C, Fields<C, N>[K]>;
|
|
44
|
+
};
|
|
45
|
+
}[keyof Fields<C, N>];
|
|
46
|
+
/** Mobius-style field selection. Arguments are passed in `where`. */
|
|
47
|
+
export type Selection<C extends Schema, N extends string> = {
|
|
48
|
+
readonly [K in keyof Fields<C, N>]?: FieldSelection<C, Fields<C, N>[K]>;
|
|
49
|
+
} & {
|
|
50
|
+
readonly __typename?: boolean;
|
|
51
|
+
readonly __alias?: Readonly<Record<string, Alias<C, N>>>;
|
|
52
|
+
readonly __on?: N extends keyof C["possibleTypes"] ? {
|
|
53
|
+
readonly [K in C["possibleTypes"][N]]?: Selection<C, K>;
|
|
54
|
+
} : never;
|
|
55
|
+
};
|
|
56
|
+
type Selected<Q> = Q extends {
|
|
57
|
+
readonly select: infer P;
|
|
58
|
+
} ? P : Q;
|
|
59
|
+
type Keys<Q> = {
|
|
60
|
+
[K in keyof Q]: Q[K] extends false | undefined ? never : K;
|
|
61
|
+
}[keyof Q];
|
|
62
|
+
type Simplify<A> = {
|
|
63
|
+
[K in keyof A]: A[K];
|
|
64
|
+
};
|
|
65
|
+
type AliasValue<C extends Schema, N extends string, Q> = {
|
|
66
|
+
[K in Extract<Keys<Q>, keyof Fields<C, N>>]: Result<C, TypeOf<Fields<C, N>[K]>, Selected<Q[K]>>;
|
|
67
|
+
}[Extract<Keys<Q>, keyof Fields<C, N>>];
|
|
68
|
+
type AliasResult<C extends Schema, N extends string, Q> = Q extends {
|
|
69
|
+
readonly __alias: infer A;
|
|
70
|
+
} ? Simplify<{
|
|
71
|
+
[K in keyof A as Conditional<A[K][keyof A[K]]> extends true ? never : K]: AliasValue<C, N, A[K]>;
|
|
72
|
+
} & {
|
|
73
|
+
[K in keyof A as Conditional<A[K][keyof A[K]]> extends true ? K : never]?: AliasValue<C, N, A[K]>;
|
|
74
|
+
}> : {};
|
|
75
|
+
type Conditional<Q> = boolean extends Q ? true : Q extends {
|
|
76
|
+
readonly $include: infer I;
|
|
77
|
+
} ? [I] extends [true] ? Q extends {
|
|
78
|
+
readonly $skip: infer S;
|
|
79
|
+
} ? [S] extends [false] ? false : true : false : true : Q extends {
|
|
80
|
+
readonly $skip: infer S;
|
|
81
|
+
} ? [S] extends [false] ? false : true : false;
|
|
82
|
+
type ObjectFields<C extends Schema, N extends string, Q> = {
|
|
83
|
+
[K in Extract<Keys<Q>, keyof Fields<C, N>> as Conditional<Q[K]> extends true ? never : K]: Result<C, TypeOf<Fields<C, N>[K]>, Selected<Q[K]>>;
|
|
84
|
+
} & {
|
|
85
|
+
[K in Extract<Keys<Q>, keyof Fields<C, N>> as Conditional<Q[K]> extends true ? K : never]?: Result<C, TypeOf<Fields<C, N>[K]>, Selected<Q[K]>>;
|
|
86
|
+
};
|
|
87
|
+
type ObjectResult<C extends Schema, N extends string, Q> = Simplify<ObjectFields<C, N, Q> & (Q extends {
|
|
88
|
+
readonly __typename: true;
|
|
89
|
+
} ? {
|
|
90
|
+
__typename: N;
|
|
91
|
+
} : {}) & AliasResult<C, N, Q>>;
|
|
92
|
+
type Branch<C extends Schema, N extends string, Q, T extends string> = T extends unknown ? Simplify<Omit<ObjectResult<C, N, Q>, "__typename"> & (Q extends {
|
|
93
|
+
readonly __on: infer O;
|
|
94
|
+
} ? T extends keyof O ? ObjectResult<C, T, O[T]> : {} : {}) & {
|
|
95
|
+
__typename: T;
|
|
96
|
+
}> : never;
|
|
97
|
+
type Value<C extends Schema, T extends string, Q> = T extends `[${infer I}]` ? Array<Result<C, I, Q>> : T extends keyof C["scalars"] ? C["scalars"][T] : T extends keyof C["possibleTypes"] ? Branch<C, T, Q, C["possibleTypes"][T]> : ObjectResult<C, T, Q>;
|
|
98
|
+
/** Selected output, preserving list and nullable wrappers. */
|
|
99
|
+
export type Result<C extends Schema, Ref extends string, Q> = Ref extends `${infer T}!` ? Value<C, T, Q> : Value<C, Ref, Q> | null;
|
|
100
|
+
type SelectionTags<C extends Schema, N extends string, Q> = string extends N ? string : Q extends object ? {
|
|
101
|
+
[K in Extract<Keys<Q>, keyof Fields<C, N>>]: TagsOf<Fields<C, N>[K]> | SelectionTags<C, Named<TypeOf<Fields<C, N>[K]>>, Selected<Q[K]>>;
|
|
102
|
+
}[Extract<Keys<Q>, keyof Fields<C, N>>] | (Q extends {
|
|
103
|
+
readonly __on: infer O;
|
|
104
|
+
} ? {
|
|
105
|
+
[K in keyof O & string]: SelectionTags<C, K, O[K]>;
|
|
106
|
+
}[keyof O & string] : never) | (Q extends {
|
|
107
|
+
readonly __alias: infer A;
|
|
108
|
+
} ? {
|
|
109
|
+
[K in keyof A]: SelectionTags<C, N, A[K]>;
|
|
110
|
+
}[keyof A] : never) : never;
|
|
111
|
+
/** Known selected errors plus provider-wide errors and an honest fallback. */
|
|
112
|
+
export type Errors<C extends Schema, N extends string, Q> = (SelectionTags<C, N, Q> extends infer Tags ? C["errors"][Extract<C["globalErrors"] | Tags, keyof C["errors"]>] : never) | UnknownGraphQLError;
|
|
113
|
+
type Root<C extends Schema, K extends OperationKind> = K extends "query" ? C["query"] : C["mutation"];
|
|
114
|
+
type OperationSelection<C extends Schema, N extends string, K extends keyof Fields<C, N>, Q> = {
|
|
115
|
+
[P in K]: {
|
|
116
|
+
select: Q;
|
|
117
|
+
};
|
|
118
|
+
};
|
|
119
|
+
export declare const errorFields: {
|
|
120
|
+
message: S.String;
|
|
121
|
+
code: S.optional<S.String>;
|
|
122
|
+
path: S.optional<S.$Array<S.Union<readonly [S.String, S.Number]>>>;
|
|
123
|
+
locations: S.optional<S.$Array<S.Struct<{
|
|
124
|
+
readonly line: S.Number;
|
|
125
|
+
readonly column: S.Number;
|
|
126
|
+
}>>>;
|
|
127
|
+
extensions: S.optional<S.Unknown>;
|
|
128
|
+
traceId: S.optional<S.String>;
|
|
129
|
+
status: S.optional<S.Number>;
|
|
130
|
+
retryAfter: S.optional<S.Number>;
|
|
131
|
+
};
|
|
132
|
+
export interface GraphQLIssue {
|
|
133
|
+
readonly _tag: string;
|
|
134
|
+
readonly message: string;
|
|
135
|
+
readonly code?: string;
|
|
136
|
+
readonly path?: ReadonlyArray<string | number>;
|
|
137
|
+
readonly locations?: ReadonlyArray<{
|
|
138
|
+
readonly line: number;
|
|
139
|
+
readonly column: number;
|
|
140
|
+
}>;
|
|
141
|
+
readonly extensions?: unknown;
|
|
142
|
+
readonly traceId?: string;
|
|
143
|
+
readonly status?: number;
|
|
144
|
+
/** Server retry hint in seconds. */
|
|
145
|
+
readonly retryAfter?: number;
|
|
146
|
+
}
|
|
147
|
+
declare const UnknownGraphQLError_base: S.Class<UnknownGraphQLError, S.TaggedStruct<"UnknownGraphQLError", {
|
|
148
|
+
readonly message: S.String;
|
|
149
|
+
readonly code: S.optional<S.String>;
|
|
150
|
+
readonly path: S.optional<S.$Array<S.Union<readonly [S.String, S.Number]>>>;
|
|
151
|
+
readonly locations: S.optional<S.$Array<S.Struct<{
|
|
152
|
+
readonly line: S.Number;
|
|
153
|
+
readonly column: S.Number;
|
|
154
|
+
}>>>;
|
|
155
|
+
readonly extensions: S.optional<S.Unknown>;
|
|
156
|
+
readonly traceId: S.optional<S.String>;
|
|
157
|
+
readonly status: S.optional<S.Number>;
|
|
158
|
+
readonly retryAfter: S.optional<S.Number>;
|
|
159
|
+
readonly coordinate: S.optional<S.String>;
|
|
160
|
+
}>, import("effect/Cause").YieldableError>;
|
|
161
|
+
export declare class UnknownGraphQLError extends UnknownGraphQLError_base {
|
|
162
|
+
}
|
|
163
|
+
declare const GraphQLFailure_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => import("effect/Cause").YieldableError & {
|
|
164
|
+
readonly _tag: "GraphQLFailure";
|
|
165
|
+
} & Readonly<A>;
|
|
166
|
+
/** All errors from one GraphQL execution, with the original partial response. */
|
|
167
|
+
export declare class GraphQLFailure<E extends GraphQLIssue = GraphQLIssue> extends GraphQLFailure_base<{
|
|
168
|
+
readonly errors: readonly [E, ...E[]];
|
|
169
|
+
readonly data: unknown;
|
|
170
|
+
readonly status: number;
|
|
171
|
+
}> {
|
|
172
|
+
get message(): string;
|
|
173
|
+
}
|
|
174
|
+
declare const GraphQLTransportError_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => import("effect/Cause").YieldableError & {
|
|
175
|
+
readonly _tag: "GraphQLTransportError";
|
|
176
|
+
} & Readonly<A>;
|
|
177
|
+
export declare class GraphQLTransportError extends GraphQLTransportError_base<{
|
|
178
|
+
readonly message: string;
|
|
179
|
+
readonly cause?: unknown;
|
|
180
|
+
readonly status?: number;
|
|
181
|
+
readonly retryAfter?: number;
|
|
182
|
+
}> {
|
|
183
|
+
}
|
|
184
|
+
declare const GraphQLDecodeError_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => import("effect/Cause").YieldableError & {
|
|
185
|
+
readonly _tag: "GraphQLDecodeError";
|
|
186
|
+
} & Readonly<A>;
|
|
187
|
+
export declare class GraphQLDecodeError extends GraphQLDecodeError_base<{
|
|
188
|
+
readonly message: string;
|
|
189
|
+
readonly path?: ReadonlyArray<string | number>;
|
|
190
|
+
readonly cause?: unknown;
|
|
191
|
+
}> {
|
|
192
|
+
}
|
|
193
|
+
declare const GraphQLRequestError_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => import("effect/Cause").YieldableError & {
|
|
194
|
+
readonly _tag: "GraphQLRequestError";
|
|
195
|
+
} & Readonly<A>;
|
|
196
|
+
export declare class GraphQLRequestError extends GraphQLRequestError_base<{
|
|
197
|
+
readonly message: string;
|
|
198
|
+
}> {
|
|
199
|
+
}
|
|
200
|
+
export type ClientError = GraphQLTransportError | GraphQLDecodeError | GraphQLRequestError;
|
|
201
|
+
/** True only when every issue has an allowed tag; mixed failures are never hidden. */
|
|
202
|
+
export declare const isErrorTag: (error: unknown, tags: string | readonly string[]) => boolean;
|
|
203
|
+
/** Recover only an aggregate whose every issue matches. The original aggregate is also supplied. */
|
|
204
|
+
export declare const catchTags: <const T extends readonly string[] | string, B, E2, R2>(tags: T, handler: (error: GraphQLIssue & {
|
|
205
|
+
readonly _tag: T extends string ? T : T[number];
|
|
206
|
+
}, failure: GraphQLFailure) => Effect.Effect<B, E2, R2>) => <A, E, R>(self: Effect.Effect<A, E, R>) => Effect.Effect<A | B, E | E2, R | R2>;
|
|
207
|
+
export type OperationKind = "query" | "mutation";
|
|
208
|
+
export interface GraphQLRequest {
|
|
209
|
+
readonly query: string;
|
|
210
|
+
readonly variables: Record<string, unknown>;
|
|
211
|
+
readonly operationName: string;
|
|
212
|
+
readonly kind: OperationKind;
|
|
213
|
+
}
|
|
214
|
+
export interface GraphQLResponse {
|
|
215
|
+
readonly body: unknown;
|
|
216
|
+
readonly status: number;
|
|
217
|
+
readonly headers: Readonly<Record<string, string | undefined>>;
|
|
218
|
+
}
|
|
219
|
+
export type Transport<R> = (request: GraphQLRequest) => Effect.Effect<GraphQLResponse, GraphQLTransportError | GraphQLDecodeError, R>;
|
|
220
|
+
interface Position {
|
|
221
|
+
readonly field: string;
|
|
222
|
+
readonly key: string;
|
|
223
|
+
readonly coordinate: string;
|
|
224
|
+
readonly type: string;
|
|
225
|
+
readonly errors: readonly string[];
|
|
226
|
+
readonly children: readonly Position[];
|
|
227
|
+
readonly branches: Readonly<Record<string, readonly Position[]>>;
|
|
228
|
+
readonly typename?: boolean;
|
|
229
|
+
readonly conditional: boolean;
|
|
230
|
+
}
|
|
231
|
+
export interface CompiledQuery extends GraphQLRequest {
|
|
232
|
+
readonly rootType: string;
|
|
233
|
+
readonly positions: readonly Position[];
|
|
234
|
+
}
|
|
235
|
+
/** Compile one selection to a GraphQL AST, variables, and an error/decoder path map. */
|
|
236
|
+
export declare const compile: (model: GraphQLModel, kind: OperationKind, selection: unknown, operationName?: string) => CompiledQuery;
|
|
237
|
+
type ErrorConstructor = new (args: any) => GraphQLIssue;
|
|
238
|
+
export interface Report<A, E extends GraphQLIssue> {
|
|
239
|
+
readonly data: A | null | undefined;
|
|
240
|
+
readonly errors: ReadonlyArray<E>;
|
|
241
|
+
readonly status: number;
|
|
242
|
+
readonly extensions?: unknown;
|
|
243
|
+
}
|
|
244
|
+
type Failure<C extends Schema, N extends string, Q> = ClientError | GraphQLFailure<Errors<C, N, Q>>;
|
|
245
|
+
type FieldAt<C extends Schema, N extends string, K extends string> = K extends keyof Fields<C, N> ? Fields<C, N>[K] : never;
|
|
246
|
+
type ConnectionEdge<C extends Schema, Ref extends string> = Named<TypeOf<FieldAt<C, Named<Ref>, "edges">>>;
|
|
247
|
+
type ConnectionNode<C extends Schema, Ref extends string> = TypeOf<FieldAt<C, ConnectionEdge<C, Ref>, "node">>;
|
|
248
|
+
export interface ObjectOperation<C extends Schema, K extends OperationKind, N extends keyof Fields<C, Root<C, K>> & string, R> {
|
|
249
|
+
<const Q extends Selection<C, Named<TypeOf<Fields<C, Root<C, K>>[N]>>>>(args: ArgsOf<Fields<C, Root<C, K>>[N]>, select: Q): Effect.Effect<Result<C, TypeOf<Fields<C, Root<C, K>>[N]>, Q>, Failure<C, Root<C, K>, OperationSelection<C, Root<C, K>, N, Q>>, R>;
|
|
250
|
+
}
|
|
251
|
+
export interface ScalarOperation<C extends Schema, K extends OperationKind, N extends keyof Fields<C, Root<C, K>> & string, R> {
|
|
252
|
+
(args: ArgsOf<Fields<C, Root<C, K>>[N]>): Effect.Effect<Result<C, TypeOf<Fields<C, Root<C, K>>[N]>, true>, Failure<C, Root<C, K>, OperationSelection<C, Root<C, K>, N, true>>, R>;
|
|
253
|
+
}
|
|
254
|
+
export interface Pagination<C extends Schema, K extends OperationKind, N extends keyof Fields<C, Root<C, K>> & string, R> {
|
|
255
|
+
pages<const Q extends Selection<C, Named<TypeOf<Fields<C, Root<C, K>>[N]>>>>(args: ArgsOf<Fields<C, Root<C, K>>[N]>, select: Q): Stream.Stream<Result<C, TypeOf<Fields<C, Root<C, K>>[N]>, Q>, ClientError | GraphQLFailure<Errors<C, Root<C, K>, OperationSelection<C, Root<C, K>, N, Q>> | Errors<C, Named<TypeOf<Fields<C, Root<C, K>>[N]>>, {
|
|
256
|
+
pageInfo: {
|
|
257
|
+
endCursor: true;
|
|
258
|
+
hasNextPage: true;
|
|
259
|
+
};
|
|
260
|
+
}>>, R>;
|
|
261
|
+
items<const Q extends Selection<C, Named<ConnectionNode<C, TypeOf<Fields<C, Root<C, K>>[N]>>>>>(args: ArgsOf<Fields<C, Root<C, K>>[N]>, select: Q): Stream.Stream<Result<C, ConnectionNode<C, TypeOf<Fields<C, Root<C, K>>[N]>>, Q>, Failure<C, Root<C, K>, OperationSelection<C, Root<C, K>, N, {
|
|
262
|
+
edges: {
|
|
263
|
+
node: Q;
|
|
264
|
+
};
|
|
265
|
+
pageInfo: {
|
|
266
|
+
endCursor: true;
|
|
267
|
+
hasNextPage: true;
|
|
268
|
+
};
|
|
269
|
+
}>>, R>;
|
|
270
|
+
}
|
|
271
|
+
export type Operation<C extends Schema, K extends OperationKind, N extends keyof Fields<C, Root<C, K>> & string, R> = Named<TypeOf<Fields<C, Root<C, K>>[N]>> extends keyof C["scalars"] ? ScalarOperation<C, K, N, R> : ObjectOperation<C, K, N, R> & (K extends "query" ? "after" extends keyof ArgsOf<Fields<C, Root<C, K>>[N]> ? [ConnectionNode<C, TypeOf<Fields<C, Root<C, K>>[N]>>] extends [
|
|
272
|
+
never
|
|
273
|
+
] ? {} : Pagination<C, K, N, R> : {} : {});
|
|
274
|
+
/** Construct an Effect client; credentials and HTTP are resolved by the transport per call. */
|
|
275
|
+
export declare const makeClient: <C extends Schema, R>(model: GraphQLModel, transport: Transport<R>, classes: Readonly<Record<string, ErrorConstructor>>) => {
|
|
276
|
+
query: <const Q extends Selection<C, C["query"]>>(selection: Q) => Effect.Effect<Result<C, `${C["query"]}!`, Q>, Failure<C, C["query"], Q>, R>;
|
|
277
|
+
mutation: <const Q extends Selection<C, C["mutation"]>>(selection: Q) => Effect.Effect<Result<C, `${C["mutation"]}!`, Q>, Failure<C, C["mutation"], Q>, R>;
|
|
278
|
+
report: {
|
|
279
|
+
query: <const Q extends Selection<C, C["query"]>>(selection: Q) => Effect.Effect<Report<Result<C, `${C["query"]}!`, Q>, Errors<C, C["query"], Q>>, ClientError, R>;
|
|
280
|
+
mutation: <const Q extends Selection<C, C["mutation"]>>(selection: Q) => Effect.Effect<Report<Result<C, `${C["mutation"]}!`, Q>, Errors<C, C["mutation"], Q>>, ClientError, R>;
|
|
281
|
+
};
|
|
282
|
+
operation: <K extends OperationKind, N extends keyof Fields<C, Root<C, K>> & string>(kind: K, name: N) => Operation<C, K, N, R>;
|
|
283
|
+
};
|
|
284
|
+
//# sourceMappingURL=graphql.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"graphql.d.ts","sourceRoot":"","sources":["../src/graphql.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAExC,OAAO,KAAK,CAAC,MAAM,eAAe,CAAC;AAEnC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AASxC,OAAO,KAAK,EAAE,YAAY,EAAgB,MAAM,6BAA6B,CAAC;AAE9E,YAAY,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAEhE,+EAA+E;AAC/E,MAAM,WAAW,KAAK,CAAC,IAAI,EAAE,GAAG,SAAS,MAAM,EAAE,CAAC,SAAS,MAAM,GAAG,KAAK;IACvE,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;IACpB,QAAQ,CAAC,IAAI,EAAE,GAAG,CAAC;IACnB,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;CACpB;AAED,MAAM,WAAW,MAAM;IACrB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;IAClE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IACrC,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtC,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,KAAK,KAAK,CAAC,CAAC,SAAS,MAAM,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,GAAG,GAClD,KAAK,CAAC,CAAC,CAAC,GACR,CAAC,SAAS,IAAI,MAAM,CAAC,GAAG,GACtB,KAAK,CAAC,CAAC,CAAC,GACR,CAAC,CAAC;AACR,KAAK,MAAM,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,MAAM,IAAI,CAAC,SAAS,MAAM,CAAC,CAAC,OAAO,CAAC,GACxE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GACb,EAAE,CAAC;AACP,KAAK,MAAM,CAAC,CAAC,IAAI,CAAC,SAAS,KAAK,CAAC,GAAG,EAAE,MAAM,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;AAChE,KAAK,MAAM,CAAC,CAAC,IAAI,CAAC,SAAS,KAAK,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;AAChE,KAAK,MAAM,CAAC,CAAC,IAAI,CAAC,SAAS,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;AAChE,KAAK,KAAK,CAAC,CAAC,IAAI,EAAE,SAAS,CAAC,GAAG;IAAE,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;CAAE,GAAG;IAAE,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAA;CAAE,CAAC;AAC9E,KAAK,UAAU,GAAG;IAAE,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC;AAC5E,KAAK,cAAc,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,IACrC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,MAAM,CAAC,CAAC,SAAS,CAAC,GAEnC,CAAC,EAAE,SAAS,MAAM,CAAC,CAAC,CAAC,GAAG,OAAO,GAAG,KAAK,CAAC,GACxC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,UAAU,GAAG;IAAE,QAAQ,CAAC,MAAM,CAAC,EAAE,IAAI,CAAA;CAAE,CAAC,GAE5D,CAAC,MAAM,MAAM,CAAC,CAAC,CAAC,SAAS,KAAK,GAC1B,SAAS,CAAC,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,GAC9B,KAAK,CAAC,GACV,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GACf,UAAU,GAAG;IAAE,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;CAAE,CAAC,CAAC;AAC9E,KAAK,KAAK,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,MAAM,IAAI;KAC9C,CAAC,IAAI,MAAM,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG;QACzB,QAAQ,EAAE,CAAC,IAAI,CAAC,GAAG,cAAc,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;KACtD;CACF,CAAC,MAAM,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAEtB,qEAAqE;AACrE,MAAM,MAAM,SAAS,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,MAAM,IAAI;IAC1D,QAAQ,EAAE,CAAC,IAAI,MAAM,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,cAAc,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CACxE,GAAG;IACF,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAC;IAC9B,QAAQ,CAAC,OAAO,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IACzD,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,SAAS,MAAM,CAAC,CAAC,eAAe,CAAC,GAC9C;QAAE,QAAQ,EAAE,CAAC,IAAI,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC;KAAE,GAC3D,KAAK,CAAC;CACX,CAAC;AACF,KAAK,QAAQ,CAAC,CAAC,IAAI,CAAC,SAAS;IAAE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAAE,GAAG,CAAC,GAAG,CAAC,CAAC;AAClE,KAAK,IAAI,CAAC,CAAC,IAAI;KACZ,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,KAAK,GAAG,SAAS,GAAG,KAAK,GAAG,CAAC;CAC3D,CAAC,MAAM,CAAC,CAAC,CAAC;AACX,KAAK,QAAQ,CAAC,CAAC,IAAI;KAAG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CAAE,CAAC;AAC5C,KAAK,UAAU,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,MAAM,EAAE,CAAC,IAAI;KACtD,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,MAAM,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,MAAM,CACjD,CAAC,EACD,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EACvB,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CACf;CACF,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,MAAM,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AACxC,KAAK,WAAW,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,MAAM,EAAE,CAAC,IAAI,CAAC,SAAS;IAClE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;CAC3B,GACG,QAAQ,CACN;KAEI,CAAC,IAAI,MAAM,CAAC,IAAI,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,IAAI,GAAG,KAAK,GAAG,CAAC,GACrE,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;CAC1B,GAAG;KAEA,CAAC,IAAI,MAAM,CAAC,IAAI,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,IAAI,GAAG,CAAC,GAAG,KAAK,CACvE,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;CAC3B,CACF,GACD,EAAE,CAAC;AACP,KAAK,WAAW,CAAC,CAAC,IAAI,OAAO,SAAS,CAAC,GACnC,IAAI,GACJ,CAAC,SAAS;IAAE,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAA;CAAE,GACtC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,GAChB,CAAC,SAAS;IAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,CAAA;CAAE,GACnC,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,GACjB,KAAK,GACL,IAAI,GACN,KAAK,GACP,IAAI,GACN,CAAC,SAAS;IAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,CAAA;CAAE,GACnC,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,GACjB,KAAK,GACL,IAAI,GACN,KAAK,CAAC;AACd,KAAK,YAAY,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,MAAM,EAAE,CAAC,IAAI;KAEvD,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,MAAM,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,IAAI,GACvE,KAAK,GACL,CAAC,GACJ,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CACtD,GAAG;KAEA,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,MAAM,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,IAAI,GACvE,CAAC,GACD,KAAK,CACV,CAAC,EAAE,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CACvD,CAAC;AACF,KAAK,YAAY,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,MAAM,EAAE,CAAC,IAAI,QAAQ,CACjE,YAAY,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GACnB,CAAC,CAAC,SAAS;IAAE,QAAQ,CAAC,UAAU,EAAE,IAAI,CAAA;CAAE,GAAG;IAAE,UAAU,EAAE,CAAC,CAAA;CAAE,GAAG,EAAE,CAAC,GAClE,WAAW,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CACvB,CAAC;AACF,KAAK,MAAM,CACT,CAAC,SAAS,MAAM,EAChB,CAAC,SAAS,MAAM,EAChB,CAAC,EACD,CAAC,SAAS,MAAM,IACd,CAAC,SAAS,OAAO,GACjB,QAAQ,CACN,IAAI,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,YAAY,CAAC,GACvC,CAAC,CAAC,SAAS;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;CAAE,GACjC,CAAC,SAAS,MAAM,CAAC,GACf,YAAY,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GACxB,EAAE,GACJ,EAAE,CAAC,GAAG;IAAE,UAAU,EAAE,CAAC,CAAA;CAAE,CAC9B,GACD,KAAK,CAAC;AACV,KAAK,KAAK,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,MAAM,EAAE,CAAC,IAAI,CAAC,SAAS,IAAI,MAAM,CAAC,GAAG,GACxE,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GACtB,CAAC,SAAS,MAAM,CAAC,CAAC,SAAS,CAAC,GAC1B,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,GACf,CAAC,SAAS,MAAM,CAAC,CAAC,eAAe,CAAC,GAChC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,GACtC,YAAY,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAC9B,8DAA8D;AAC9D,MAAM,MAAM,MAAM,CAChB,CAAC,SAAS,MAAM,EAChB,GAAG,SAAS,MAAM,EAClB,CAAC,IACC,GAAG,SAAS,GAAG,MAAM,CAAC,GAAG,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC;AACzE,KAAK,aAAa,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,MAAM,EAAE,CAAC,IAAI,MAAM,SAAS,CAAC,GACxE,MAAM,GACN,CAAC,SAAS,MAAM,GAEV;KACG,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,MAAM,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GACtC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GACvB,aAAa,CACX,CAAC,EACD,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAC9B,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CACf;CACN,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,MAAM,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GACvC,CAAC,CAAC,SAAS;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;CAAE,GACjC;KAAG,CAAC,IAAI,MAAM,CAAC,GAAG,MAAM,GAAG,aAAa,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;CAAE,CAAC,MAAM,CAAC,GAC5D,MAAM,CAAC,GACT,KAAK,CAAC,GACV,CAAC,CAAC,SAAS;IAAE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;CAAE,GACpC;KAAG,CAAC,IAAI,MAAM,CAAC,GAAG,aAAa,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;CAAE,CAAC,MAAM,CAAC,CAAC,GACtD,KAAK,CAAC,GACd,KAAK,CAAC;AACZ,8EAA8E;AAC9E,MAAM,MAAM,MAAM,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,MAAM,EAAE,CAAC,IACpD,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,SAAS,MAAM,IAAI,GACtC,CAAC,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,cAAc,CAAC,GAAG,IAAI,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,GACjE,KAAK,CAAC,GACV,mBAAmB,CAAC;AACxB,KAAK,IAAI,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,aAAa,IAAI,CAAC,SAAS,OAAO,GACpE,CAAC,CAAC,OAAO,CAAC,GACV,CAAC,CAAC,UAAU,CAAC,CAAC;AAClB,KAAK,kBAAkB,CACrB,CAAC,SAAS,MAAM,EAChB,CAAC,SAAS,MAAM,EAChB,CAAC,SAAS,MAAM,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,EAC5B,CAAC,IACC;KAAG,CAAC,IAAI,CAAC,GAAG;QAAE,MAAM,EAAE,CAAC,CAAA;KAAE;CAAE,CAAC;AAEhC,eAAO,MAAM,WAAW;IACtB,OAAO;IACP,IAAI;IACJ,IAAI;IACJ,SAAS;;;;IAGT,UAAU;IACV,OAAO;IACP,MAAM;IACN,UAAU;CACX,CAAC;AACF,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,IAAI,CAAC,EAAE,aAAa,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC;IAC/C,QAAQ,CAAC,SAAS,CAAC,EAAE,aAAa,CAAC;QACjC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;KACzB,CAAC,CAAC;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAC;IAC9B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,oCAAoC;IACpC,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;CAC9B;;;;;;;;;;;;;;;AACD,qBAAa,mBAAoB,SAAQ,wBAMxC;CAAG;;;;AACJ,iFAAiF;AACjF,qBAAa,cAAc,CACzB,CAAC,SAAS,YAAY,GAAG,YAAY,CACrC,SAAQ,oBAAmC;IAC3C,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;IACtC,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB,CAAC;IACA,IAAI,OAAO,IAAI,MAAM,CAOpB;CACF;;;;AACD,qBAAa,qBAAsB,SAAQ,2BAEzC;IACA,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;CAC9B,CAAC;CAAG;;;;AACL,qBAAa,kBAAmB,SAAQ,wBAAuC;IAC7E,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,IAAI,CAAC,EAAE,aAAa,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC;IAC/C,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;CAC1B,CAAC;CAAG;;;;AACL,qBAAa,mBAAoB,SAAQ,yBAEvC;IAAE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;CAAG;AAClC,MAAM,MAAM,WAAW,GACnB,qBAAqB,GACrB,kBAAkB,GAClB,mBAAmB,CAAC;AAExB,sFAAsF;AACtF,eAAO,MAAM,UAAU,UACd,OAAO,QACR,MAAM,GAAG,SAAS,MAAM,EAAE,KAC/B,OAOF,CAAC;AACF,oGAAoG;AACpG,eAAO,MAAM,SAAS,GACnB,KAAK,CAAC,CAAC,SAAS,SAAS,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,QAC9C,CAAC,WACE,CACP,KAAK,EAAE,YAAY,GAAG;IAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,SAAS,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAA;CAAE,EACzE,OAAO,EAAE,cAAc,KACpB,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,MAE9B,CAAC,EAAE,CAAC,EAAE,CAAC,QACA,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAC3B,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,CAUnC,CAAC;AAEN,MAAM,MAAM,aAAa,GAAG,OAAO,GAAG,UAAU,CAAC;AACjD,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC5C,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC;CAC9B;AACD,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC;CAChE;AACD,MAAM,MAAM,SAAS,CAAC,CAAC,IAAI,CACzB,OAAO,EAAE,cAAc,KACpB,MAAM,CAAC,MAAM,CAChB,eAAe,EACf,qBAAqB,GAAG,kBAAkB,EAC1C,CAAC,CACF,CAAC;AACF,UAAU,QAAQ;IAChB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;IACnC,QAAQ,CAAC,QAAQ,EAAE,SAAS,QAAQ,EAAE,CAAC;IACvC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,QAAQ,EAAE,CAAC,CAAC,CAAC;IACjE,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC;CAC/B;AACD,MAAM,WAAW,aAAc,SAAQ,cAAc;IACnD,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,SAAS,EAAE,SAAS,QAAQ,EAAE,CAAC;CACzC;AA8FD,wFAAwF;AACxF,eAAO,MAAM,OAAO,UACX,YAAY,QACb,aAAa,aACR,OAAO,6BAEjB,aAgNF,CAAC;AA4JF,KAAK,gBAAgB,GAAG,KAAK,IAAI,EAAE,GAAG,KAAK,YAAY,CAAC;AA8GxD,MAAM,WAAW,MAAM,CAAC,CAAC,EAAE,CAAC,SAAS,YAAY;IAC/C,QAAQ,CAAC,IAAI,EAAE,CAAC,GAAG,IAAI,GAAG,SAAS,CAAC;IACpC,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC;IAClC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAC;CAC/B;AACD,KAAK,OAAO,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,MAAM,EAAE,CAAC,IAC9C,WAAW,GACX,cAAc,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AACpC,KAAK,OAAO,CACV,CAAC,SAAS,MAAM,EAChB,CAAC,SAAS,MAAM,EAChB,CAAC,SAAS,MAAM,IACd,CAAC,SAAS,MAAM,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;AAC3D,KAAK,cAAc,CAAC,CAAC,SAAS,MAAM,EAAE,GAAG,SAAS,MAAM,IAAI,KAAK,CAC/D,MAAM,CAAC,OAAO,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,CAAC,CACxC,CAAC;AACF,KAAK,cAAc,CAAC,CAAC,SAAS,MAAM,EAAE,GAAG,SAAS,MAAM,IAAI,MAAM,CAChE,OAAO,CAAC,CAAC,EAAE,cAAc,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,MAAM,CAAC,CAC3C,CAAC;AAEF,MAAM,WAAW,eAAe,CAC9B,CAAC,SAAS,MAAM,EAChB,CAAC,SAAS,aAAa,EACvB,CAAC,SAAS,MAAM,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,MAAM,EAC9C,CAAC;IAED,CAAC,KAAK,CAAC,CAAC,SAAS,SAAS,CAAC,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EACpE,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EACtC,MAAM,EAAE,CAAC,GACR,MAAM,CAAC,MAAM,CACd,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAC9C,OAAO,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,kBAAkB,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAC/D,CAAC,CACF,CAAC;CACH;AACD,MAAM,WAAW,eAAe,CAC9B,CAAC,SAAS,MAAM,EAChB,CAAC,SAAS,aAAa,EACvB,CAAC,SAAS,MAAM,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,MAAM,EAC9C,CAAC;IAED,CACE,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GACrC,MAAM,CAAC,MAAM,CACd,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,EACjD,OAAO,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,kBAAkB,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,EAClE,CAAC,CACF,CAAC;CACH;AACD,MAAM,WAAW,UAAU,CACzB,CAAC,SAAS,MAAM,EAChB,CAAC,SAAS,aAAa,EACvB,CAAC,SAAS,MAAM,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,MAAM,EAC9C,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,CAAC,SAAS,SAAS,CAAC,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EACzE,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EACtC,MAAM,EAAE,CAAC,GACR,MAAM,CAAC,MAAM,CACd,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAC5C,WAAW,GACX,cAAc,CACV,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,kBAAkB,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAC9D,MAAM,CACJ,CAAC,EACD,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EACvC;QAAE,QAAQ,EAAE;YAAE,SAAS,EAAE,IAAI,CAAC;YAAC,WAAW,EAAE,IAAI,CAAA;SAAE,CAAA;KAAE,CACrD,CACJ,EACH,CAAC,CACF,CAAC;IACF,KAAK,CACH,KAAK,CAAC,CAAC,SAAS,SAAS,CACvB,CAAC,EACD,KAAK,CAAC,cAAc,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAC3D,EAED,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EACtC,MAAM,EAAE,CAAC,GACR,MAAM,CAAC,MAAM,CACd,MAAM,CAAC,CAAC,EAAE,cAAc,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EACjE,OAAO,CACL,CAAC,EACD,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,EACV,kBAAkB,CAChB,CAAC,EACD,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,EACV,CAAC,EACD;QAAE,KAAK,EAAE;YAAE,IAAI,EAAE,CAAC,CAAA;SAAE,CAAC;QAAC,QAAQ,EAAE;YAAE,SAAS,EAAE,IAAI,CAAC;YAAC,WAAW,EAAE,IAAI,CAAA;SAAE,CAAA;KAAE,CACzE,CACF,EACD,CAAC,CACF,CAAC;CACH;AACD,MAAM,MAAM,SAAS,CACnB,CAAC,SAAS,MAAM,EAChB,CAAC,SAAS,aAAa,EACvB,CAAC,SAAS,MAAM,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,MAAM,EAC9C,CAAC,IAED,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,MAAM,CAAC,CAAC,SAAS,CAAC,GAC9D,eAAe,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAC3B,eAAe,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GACzB,CAAC,CAAC,SAAS,OAAO,GACd,OAAO,SAAS,MAAM,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GACpD,CAAC,cAAc,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS;IAC5D,KAAK;CACN,GACC,EAAE,GACF,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GACxB,EAAE,GACJ,EAAE,CAAC,CAAC;AAEhB,+FAA+F;AAC/F,eAAO,MAAM,UAAU,GAAI,CAAC,SAAS,MAAM,EAAE,CAAC,SACrC,YAAY,aACR,SAAS,CAAC,CAAC,CAAC,WACd,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;YA8PzC,KAAK,CAAC,CAAC,SAAS,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,aACnC,CAAC,KACX,MAAM,CAAC,MAAM,CACd,MAAM,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,EAC9B,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,EACzB,CAAC,CACF;eACU,KAAK,CAAC,CAAC,SAAS,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC,aACzC,CAAC,KACX,MAAM,CAAC,MAAM,CACd,MAAM,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,CAAC,EACjC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,EAC5B,CAAC,CACF;;QAEC,KAAK,GAAG,KAAK,CAAC,CAAC,SAAS,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,aACnC,CAAC,KACX,MAAM,CAAC,MAAM,CACd,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,EAChE,WAAW,EACX,CAAC,CACF;QACD,QAAQ,GAAG,KAAK,CAAC,CAAC,SAAS,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC,aACzC,CAAC,KACX,MAAM,CAAC,MAAM,CACd,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,EACtE,WAAW,EACX,CAAC,CACF;;gBA7JH,CAAC,SAAS,aAAa,EACvB,CAAC,SAAS,MAAM,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,MAAM,QAExC,CAAC,QACD,CAAC,KACN,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;CA4JzB,CAAC"}
|