zod-compiler 1.0.6 → 1.0.8
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/dist/loader.d.ts +8 -0
- package/dist/loader.d.ts.map +1 -1
- package/dist/loader.js +21 -0
- package/dist/loader.js.map +1 -1
- package/dist/unplugin/hoist-compile.d.ts +49 -0
- package/dist/unplugin/hoist-compile.d.ts.map +1 -0
- package/dist/unplugin/hoist-compile.js +125 -0
- package/dist/unplugin/hoist-compile.js.map +1 -0
- package/dist/unplugin/hoist.d.ts +36 -0
- package/dist/unplugin/hoist.d.ts.map +1 -1
- package/dist/unplugin/hoist.js +333 -86
- package/dist/unplugin/hoist.js.map +1 -1
- package/dist/unplugin/transform.d.ts.map +1 -1
- package/dist/unplugin/transform.js +69 -17
- package/dist/unplugin/transform.js.map +1 -1
- package/package.json +1 -1
package/dist/loader.d.ts
CHANGED
|
@@ -31,4 +31,12 @@ export declare function getFirstPartyModulePaths(): string[] | null;
|
|
|
31
31
|
* when source files change (watch/HMR).
|
|
32
32
|
*/
|
|
33
33
|
export declare function loadSourceFile(filePath: string): Promise<Record<string, unknown>>;
|
|
34
|
+
/**
|
|
35
|
+
* Import a module by SPECIFIER as `fromFile` would: relative specifiers
|
|
36
|
+
* resolve against the importing file's directory; bare specifiers (`zod`)
|
|
37
|
+
* resolve through node_modules / the shared jiti instance, so the value is
|
|
38
|
+
* the same module instance discovery executions see. Used by the hoisted-
|
|
39
|
+
* schema compile step to evaluate hoisted expressions at build time.
|
|
40
|
+
*/
|
|
41
|
+
export declare function loadModule(specifier: string, fromFile: string): Promise<Record<string, unknown>>;
|
|
34
42
|
//# sourceMappingURL=loader.d.ts.map
|
package/dist/loader.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../src/loader.ts"],"names":[],"mappings":"AAoFA;;;;;;;;;;;GAWG;AACH,wBAAgB,qBAAqB,IAAI,IAAI,CAS5C;AAED;;;;;;;;GAQG;AACH,wBAAgB,wBAAwB,IAAI,MAAM,EAAE,GAAG,IAAI,CAW1D;AAiBD;;;;;;;;GAQG;AACH,wBAAsB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAmBvF"}
|
|
1
|
+
{"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../src/loader.ts"],"names":[],"mappings":"AAoFA;;;;;;;;;;;GAWG;AACH,wBAAgB,qBAAqB,IAAI,IAAI,CAS5C;AAED;;;;;;;;GAQG;AACH,wBAAgB,wBAAwB,IAAI,MAAM,EAAE,GAAG,IAAI,CAW1D;AAiBD;;;;;;;;GAQG;AACH,wBAAsB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAmBvF;AAED;;;;;;GAMG;AACH,wBAAsB,UAAU,CAC9B,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAkBlC"}
|
package/dist/loader.js
CHANGED
|
@@ -148,4 +148,25 @@ export async function loadSourceFile(filePath) {
|
|
|
148
148
|
loadQueue = load.then(() => undefined, () => undefined);
|
|
149
149
|
return (await load);
|
|
150
150
|
}
|
|
151
|
+
/**
|
|
152
|
+
* Import a module by SPECIFIER as `fromFile` would: relative specifiers
|
|
153
|
+
* resolve against the importing file's directory; bare specifiers (`zod`)
|
|
154
|
+
* resolve through node_modules / the shared jiti instance, so the value is
|
|
155
|
+
* the same module instance discovery executions see. Used by the hoisted-
|
|
156
|
+
* schema compile step to evaluate hoisted expressions at build time.
|
|
157
|
+
*/
|
|
158
|
+
export async function loadModule(specifier, fromFile) {
|
|
159
|
+
if (specifier.startsWith("./") || specifier.startsWith("../")) {
|
|
160
|
+
return loadSourceFile(path.resolve(path.dirname(path.resolve(fromFile)), specifier));
|
|
161
|
+
}
|
|
162
|
+
const absPath = path.resolve(fromFile);
|
|
163
|
+
const runtime = detectRuntime();
|
|
164
|
+
if (runtime === "bun" || runtime === "deno") {
|
|
165
|
+
return (await import(specifier));
|
|
166
|
+
}
|
|
167
|
+
const jiti = await getJiti(absPath);
|
|
168
|
+
const load = loadQueue.then(() => jiti.import(specifier));
|
|
169
|
+
loadQueue = load.then(() => undefined, () => undefined);
|
|
170
|
+
return (await load);
|
|
171
|
+
}
|
|
151
172
|
//# sourceMappingURL=loader.js.map
|
package/dist/loader.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loader.js","sourceRoot":"","sources":["../src/loader.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"loader.js","sourceRoot":"","sources":["../src/loader.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Build-time compilation of hoisted schemas.
|
|
3
|
+
*
|
|
4
|
+
* After hoistZodSchemasMeta() lifts `z.object({...})` constructions to
|
|
5
|
+
* module-scope `_zh_*` declarations, this step evaluates each hoisted
|
|
6
|
+
* expression with the project's real zod module, runs the regular
|
|
7
|
+
* extract → codegen pipeline on the resulting schema object, and hands the
|
|
8
|
+
* transform a compiled IIFE to splice in as the declaration initializer:
|
|
9
|
+
*
|
|
10
|
+
* const _zh_x = z.object({ id: z.number() });
|
|
11
|
+
* ⇣
|
|
12
|
+
* const _zh_x = /* @__PURE__ *\/ (() => { ... return __mkv(...); })();
|
|
13
|
+
*
|
|
14
|
+
* Eligibility is STRICTER than hoist eligibility. Hoisting only moves an
|
|
15
|
+
* expression; compiling it bakes build-time evaluation results into
|
|
16
|
+
* generated checks, so the construction must be deterministic:
|
|
17
|
+
*
|
|
18
|
+
* - Every EAGER free identifier must be a zod-package binding. Anything
|
|
19
|
+
* else (other imports: `getLimit()`, globals: `new Date()`,
|
|
20
|
+
* `Math.random()`) could evaluate differently at build time vs module
|
|
21
|
+
* load — those schemas stay plainly hoisted.
|
|
22
|
+
* - DEFERRED references (inside refine/transform/default callbacks) are
|
|
23
|
+
* unrestricted: callbacks reach generated code via fn.toString() or stay
|
|
24
|
+
* on the runtime-constructed schema (`__rf` delegation), never via their
|
|
25
|
+
* build-time closure values. If extraction itself needs a deferred value
|
|
26
|
+
* it cannot have (z.lazy(() => ImportedChild)), evaluation throws and the
|
|
27
|
+
* schema falls back to a plain hoist.
|
|
28
|
+
*
|
|
29
|
+
* Every failure path is graceful: the declaration keeps its original zod
|
|
30
|
+
* expression and runtime behavior is unchanged.
|
|
31
|
+
*/
|
|
32
|
+
import type { CodegenMode } from "#src/core/codegen/context.js";
|
|
33
|
+
import type { CompiledSchemaInfo } from "#src/core/pipeline.js";
|
|
34
|
+
import { type HoistedSchema } from "./hoist.js";
|
|
35
|
+
/** A hoisted declaration whose initializer can be replaced with a compiled IIFE. */
|
|
36
|
+
export interface CompiledHoistedSchema {
|
|
37
|
+
/** The `_zh_*` declaration name. */
|
|
38
|
+
name: string;
|
|
39
|
+
/** Original construction expression text (becomes the IIFE's schema expression). */
|
|
40
|
+
text: string;
|
|
41
|
+
/** Compiled validator for the schema. */
|
|
42
|
+
info: CompiledSchemaInfo;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Compile every eligible hoisted schema. Failures are silent per schema —
|
|
46
|
+
* the caller leaves ineligible declarations as plain hoists.
|
|
47
|
+
*/
|
|
48
|
+
export declare function compileHoistedSchemas(schemas: readonly HoistedSchema[], code: string, id: string, mode: CodegenMode): Promise<CompiledHoistedSchema[]>;
|
|
49
|
+
//# sourceMappingURL=hoist-compile.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hoist-compile.d.ts","sourceRoot":"","sources":["../../src/unplugin/hoist-compile.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAGhE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAEhE,OAAO,EAGL,KAAK,aAAa,EAEnB,MAAM,YAAY,CAAC;AAEpB,oFAAoF;AACpF,MAAM,WAAW,qBAAqB;IACpC,oCAAoC;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,oFAAoF;IACpF,IAAI,EAAE,MAAM,CAAC;IACb,yCAAyC;IACzC,IAAI,EAAE,kBAAkB,CAAC;CAC1B;AA6FD;;;GAGG;AACH,wBAAsB,qBAAqB,CACzC,OAAO,EAAE,SAAS,aAAa,EAAE,EACjC,IAAI,EAAE,MAAM,EACZ,EAAE,EAAE,MAAM,EACV,IAAI,EAAE,WAAW,GAChB,OAAO,CAAC,qBAAqB,EAAE,CAAC,CASlC"}
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Build-time compilation of hoisted schemas.
|
|
3
|
+
*
|
|
4
|
+
* After hoistZodSchemasMeta() lifts `z.object({...})` constructions to
|
|
5
|
+
* module-scope `_zh_*` declarations, this step evaluates each hoisted
|
|
6
|
+
* expression with the project's real zod module, runs the regular
|
|
7
|
+
* extract → codegen pipeline on the resulting schema object, and hands the
|
|
8
|
+
* transform a compiled IIFE to splice in as the declaration initializer:
|
|
9
|
+
*
|
|
10
|
+
* const _zh_x = z.object({ id: z.number() });
|
|
11
|
+
* ⇣
|
|
12
|
+
* const _zh_x = /* @__PURE__ *\/ (() => { ... return __mkv(...); })();
|
|
13
|
+
*
|
|
14
|
+
* Eligibility is STRICTER than hoist eligibility. Hoisting only moves an
|
|
15
|
+
* expression; compiling it bakes build-time evaluation results into
|
|
16
|
+
* generated checks, so the construction must be deterministic:
|
|
17
|
+
*
|
|
18
|
+
* - Every EAGER free identifier must be a zod-package binding. Anything
|
|
19
|
+
* else (other imports: `getLimit()`, globals: `new Date()`,
|
|
20
|
+
* `Math.random()`) could evaluate differently at build time vs module
|
|
21
|
+
* load — those schemas stay plainly hoisted.
|
|
22
|
+
* - DEFERRED references (inside refine/transform/default callbacks) are
|
|
23
|
+
* unrestricted: callbacks reach generated code via fn.toString() or stay
|
|
24
|
+
* on the runtime-constructed schema (`__rf` delegation), never via their
|
|
25
|
+
* build-time closure values. If extraction itself needs a deferred value
|
|
26
|
+
* it cannot have (z.lazy(() => ImportedChild)), evaluation throws and the
|
|
27
|
+
* schema falls back to a plain hoist.
|
|
28
|
+
*
|
|
29
|
+
* Every failure path is graceful: the declaration keeps its original zod
|
|
30
|
+
* expression and runtime behavior is unchanged.
|
|
31
|
+
*/
|
|
32
|
+
import { generateValidator } from "#src/core/codegen/index.js";
|
|
33
|
+
import { extractSchema } from "#src/core/extract/index.js";
|
|
34
|
+
import { loadModule } from "#src/loader.js";
|
|
35
|
+
import { analyzeHoistedExpression, collectImportBindings, } from "./hoist.js";
|
|
36
|
+
/** Duck-type check mirroring discovery's isZodSchema. */
|
|
37
|
+
function isZodSchema(value) {
|
|
38
|
+
return (typeof value === "object" &&
|
|
39
|
+
value !== null &&
|
|
40
|
+
"_zod" in value &&
|
|
41
|
+
typeof value._zod === "object");
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Evaluate a hoisted expression with its zod bindings and compile it.
|
|
45
|
+
* Returns null when the schema is ineligible or anything fails.
|
|
46
|
+
*/
|
|
47
|
+
async function compileOne(schema, importDetails, id, mode, moduleCache) {
|
|
48
|
+
const analysis = analyzeHoistedExpression(schema.text);
|
|
49
|
+
if (analysis === null)
|
|
50
|
+
return null;
|
|
51
|
+
// Determinism gate: eager evaluation may only touch zod bindings.
|
|
52
|
+
const free = new Set([...analysis.eagerFree, ...analysis.deferredFree]);
|
|
53
|
+
const bindings = [];
|
|
54
|
+
for (const name of analysis.eagerFree) {
|
|
55
|
+
const detail = importDetails.get(name);
|
|
56
|
+
if (!detail || !isZodSpecifier(detail.specifier))
|
|
57
|
+
return null;
|
|
58
|
+
}
|
|
59
|
+
// Inject every free import binding we can resolve (eager ones are all zod
|
|
60
|
+
// by the gate above; deferred ones are best-effort — extraction only
|
|
61
|
+
// dereferences them for build-time-invoked callbacks like z.lazy getters).
|
|
62
|
+
for (const name of free) {
|
|
63
|
+
const detail = importDetails.get(name);
|
|
64
|
+
if (detail && isZodSpecifier(detail.specifier)) {
|
|
65
|
+
bindings.push({ name, detail });
|
|
66
|
+
}
|
|
67
|
+
else if (analysis.eagerFree.has(name)) {
|
|
68
|
+
return null;
|
|
69
|
+
}
|
|
70
|
+
// deferred non-zod names stay unbound: the evaluated closure would throw
|
|
71
|
+
// if invoked at build time, which the try/catch below converts to a skip.
|
|
72
|
+
}
|
|
73
|
+
try {
|
|
74
|
+
const values = await Promise.all(bindings.map(async ({ detail }) => {
|
|
75
|
+
let loading = moduleCache.get(detail.specifier);
|
|
76
|
+
if (!loading) {
|
|
77
|
+
loading = loadModule(detail.specifier, id);
|
|
78
|
+
moduleCache.set(detail.specifier, loading);
|
|
79
|
+
}
|
|
80
|
+
const mod = await loading;
|
|
81
|
+
return detail.imported === "*" ? mod : mod[detail.imported];
|
|
82
|
+
}));
|
|
83
|
+
const evaluate = new Function(...bindings.map((b) => b.name), `"use strict"; return (${schema.text});`);
|
|
84
|
+
const value = evaluate(...values);
|
|
85
|
+
if (!isZodSchema(value))
|
|
86
|
+
return null;
|
|
87
|
+
const refEntries = [];
|
|
88
|
+
const ir = extractSchema(value, refEntries);
|
|
89
|
+
// A root fallback compiles to a pure delegation wrapper — strictly worse
|
|
90
|
+
// than leaving the plain hoisted construction in place.
|
|
91
|
+
if (ir.type === "fallback")
|
|
92
|
+
return null;
|
|
93
|
+
const codegenResult = generateValidator(ir, schema.name, { mode });
|
|
94
|
+
return {
|
|
95
|
+
name: schema.name,
|
|
96
|
+
text: schema.text,
|
|
97
|
+
info: { exportName: schema.name, codegenResult, refEntries },
|
|
98
|
+
};
|
|
99
|
+
}
|
|
100
|
+
catch {
|
|
101
|
+
return null;
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
function isZodSpecifier(specifier) {
|
|
105
|
+
return (specifier === "zod" ||
|
|
106
|
+
specifier === "zod/v4" ||
|
|
107
|
+
specifier === "zod/mini" ||
|
|
108
|
+
specifier === "zod/v4/mini");
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* Compile every eligible hoisted schema. Failures are silent per schema —
|
|
112
|
+
* the caller leaves ineligible declarations as plain hoists.
|
|
113
|
+
*/
|
|
114
|
+
export async function compileHoistedSchemas(schemas, code, id, mode) {
|
|
115
|
+
const { details } = collectImportBindings(code);
|
|
116
|
+
const moduleCache = new Map();
|
|
117
|
+
const compiled = [];
|
|
118
|
+
for (const schema of schemas) {
|
|
119
|
+
const result = await compileOne(schema, details, id, mode, moduleCache);
|
|
120
|
+
if (result !== null)
|
|
121
|
+
compiled.push(result);
|
|
122
|
+
}
|
|
123
|
+
return compiled;
|
|
124
|
+
}
|
|
125
|
+
//# sourceMappingURL=hoist-compile.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hoist-compile.js","sourceRoot":"","sources":["../../src/unplugin/hoist-compile.ts"],"names":[],"mappings":"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"}
|
package/dist/unplugin/hoist.d.ts
CHANGED
|
@@ -1,8 +1,17 @@
|
|
|
1
|
+
/** How an imported local binding maps onto its source module. */
|
|
2
|
+
export interface ImportDetail {
|
|
3
|
+
/** Module specifier (`"zod"`, `"./shapes"`). */
|
|
4
|
+
specifier: string;
|
|
5
|
+
/** Exported name the binding refers to; `"*"` for namespace imports, `"default"` for default imports. */
|
|
6
|
+
imported: string;
|
|
7
|
+
}
|
|
1
8
|
interface ImportBindings {
|
|
2
9
|
/** Every runtime (non-type) imported binding name. */
|
|
3
10
|
all: Set<string>;
|
|
4
11
|
/** Bindings imported from a zod module (usually just `z`). */
|
|
5
12
|
zod: Set<string>;
|
|
13
|
+
/** Local binding name → source module/export, for build-time evaluation. */
|
|
14
|
+
details: Map<string, ImportDetail>;
|
|
6
15
|
}
|
|
7
16
|
/**
|
|
8
17
|
* Collect runtime import bindings with a regex over import statements.
|
|
@@ -19,10 +28,37 @@ export interface HoistOptions {
|
|
|
19
28
|
*/
|
|
20
29
|
schemaNamePattern?: RegExp | string | null | undefined;
|
|
21
30
|
}
|
|
31
|
+
/**
|
|
32
|
+
* Free-variable analysis of a hoisted expression's source text, for the
|
|
33
|
+
* build-time compile step. Returns null when the text does not parse (it
|
|
34
|
+
* always should — it was extracted by this module).
|
|
35
|
+
*/
|
|
36
|
+
export declare function analyzeHoistedExpression(text: string): {
|
|
37
|
+
eagerFree: Set<string>;
|
|
38
|
+
deferredFree: Set<string>;
|
|
39
|
+
} | null;
|
|
40
|
+
/** A schema construction hoisted to module scope. */
|
|
41
|
+
export interface HoistedSchema {
|
|
42
|
+
/** Module-scope binding name (`_zh_<hash>`). */
|
|
43
|
+
name: string;
|
|
44
|
+
/** Source text of the hoisted construction expression. */
|
|
45
|
+
text: string;
|
|
46
|
+
}
|
|
47
|
+
export interface HoistResult {
|
|
48
|
+
/** The rewritten source. */
|
|
49
|
+
code: string;
|
|
50
|
+
/** One entry per hoisted declaration, in declaration order. */
|
|
51
|
+
schemas: HoistedSchema[];
|
|
52
|
+
}
|
|
22
53
|
/**
|
|
23
54
|
* Hoist eligible Zod schema expressions to module scope.
|
|
24
55
|
* Returns the rewritten source, or null when nothing was hoisted.
|
|
25
56
|
*/
|
|
26
57
|
export declare function hoistZodSchemas(code: string, options?: HoistOptions): string | null;
|
|
58
|
+
/**
|
|
59
|
+
* hoistZodSchemas + metadata about each hoisted declaration, so the
|
|
60
|
+
* transform can compile the hoisted schemas into optimized validators.
|
|
61
|
+
*/
|
|
62
|
+
export declare function hoistZodSchemasMeta(code: string, options?: HoistOptions): HoistResult | null;
|
|
27
63
|
export {};
|
|
28
64
|
//# sourceMappingURL=hoist.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hoist.d.ts","sourceRoot":"","sources":["../../src/unplugin/hoist.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"hoist.d.ts","sourceRoot":"","sources":["../../src/unplugin/hoist.ts"],"names":[],"mappings":"AA2DA,iEAAiE;AACjE,MAAM,WAAW,YAAY;IAC3B,gDAAgD;IAChD,SAAS,EAAE,MAAM,CAAC;IAClB,yGAAyG;IACzG,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,UAAU,cAAc;IACtB,sDAAsD;IACtD,GAAG,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACjB,8DAA8D;IAC9D,GAAG,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACjB,4EAA4E;IAC5E,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;CACpC;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,CAiBlE;AAiyBD,MAAM,WAAW,YAAY;IAC3B;;;;;OAKG;IACH,iBAAiB,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;CACxD;AAED;;;;GAIG;AACH,wBAAgB,wBAAwB,CACtC,IAAI,EAAE,MAAM,GACX;IAAE,SAAS,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAAC,YAAY,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;CAAE,GAAG,IAAI,CAS9D;AAED,qDAAqD;AACrD,MAAM,WAAW,aAAa;IAC5B,gDAAgD;IAChD,IAAI,EAAE,MAAM,CAAC;IACb,0DAA0D;IAC1D,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,WAAW;IAC1B,4BAA4B;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,+DAA+D;IAC/D,OAAO,EAAE,aAAa,EAAE,CAAC;CAC1B;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,YAAY,GAAG,MAAM,GAAG,IAAI,CAEnF;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,YAAY,GAAG,WAAW,GAAG,IAAI,CAmM5F"}
|