zod-compiler 1.0.13 → 1.0.14
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 +41 -0
- package/dist/unplugin/disk-cache.d.ts +88 -15
- package/dist/unplugin/disk-cache.d.ts.map +1 -1
- package/dist/unplugin/disk-cache.js +282 -27
- package/dist/unplugin/disk-cache.js.map +1 -1
- package/dist/unplugin/index.d.ts.map +1 -1
- package/dist/unplugin/index.js +34 -22
- package/dist/unplugin/index.js.map +1 -1
- package/dist/unplugin/transform.d.ts.map +1 -1
- package/dist/unplugin/transform.js +14 -0
- package/dist/unplugin/transform.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -161,6 +161,7 @@ npx zod-compiler generate src/ --watch
|
|
|
161
161
|
| `verbose` | `boolean` | `false` | Log per-schema compilation status during build |
|
|
162
162
|
| `hoist` | `boolean` | `true` | Hoist Zod schemas defined inside function bodies to module scope so they're constructed once instead of per call (babel-plugin-zod-hoist equivalent). Only expressions built purely from imports and literals are hoisted |
|
|
163
163
|
| `apply` | `"build" \| "serve" \| "all"` | builds + Vitest | **Vite only**: when the plugin runs. By default, production builds and test runs are compiled (so tests exercise what ships); plain dev servers use the Zod fallback. `"all"` also compiles the dev server; `"build"` also skips tests |
|
|
164
|
+
| `cache` | `boolean \| string` | `true` | Persistent transform cache (`node_modules/.cache/zod-compiler`, or a custom directory). Skips discovery + codegen across processes when nothing changed; entries self-validate against dependency content hashes |
|
|
164
165
|
|
|
165
166
|
```typescript
|
|
166
167
|
zodCompiler({
|
|
@@ -250,6 +251,46 @@ zodCompiler({
|
|
|
250
251
|
| Build-time file execution | Zod-importing files that may export schemas (pre-filtered) | Files with `import ... from "zod-compiler"` |
|
|
251
252
|
| Best for | New projects, framework integration | Gradual adoption, selective optimization |
|
|
252
253
|
|
|
254
|
+
### Large projects and CI
|
|
255
|
+
|
|
256
|
+
Discovery executes each schema file — and transitively its first-party import
|
|
257
|
+
graph — inside the bundler's single-threaded process. In a repository where
|
|
258
|
+
schema files pull in thousands of modules, the **first cold run** is the
|
|
259
|
+
expensive part: subsequent runs hit the persistent cache and skip discovery
|
|
260
|
+
entirely. On saturated CI hosts a cold discovery of a huge graph can stall the
|
|
261
|
+
bundler's event loop long enough to trip test timeouts (the plugin warns when
|
|
262
|
+
a single file's discovery exceeds 5s). Three levers, in order of impact:
|
|
263
|
+
|
|
264
|
+
**1. Persist the cache across CI runs.** The cache directory is small
|
|
265
|
+
(dependency snapshots are content-addressed and shared between entries) and
|
|
266
|
+
entries self-validate against dependency content hashes — restoring a stale
|
|
267
|
+
cache can only cause recompiles, never stale output:
|
|
268
|
+
|
|
269
|
+
```yaml
|
|
270
|
+
# GitHub Actions
|
|
271
|
+
- uses: actions/cache@v4
|
|
272
|
+
with:
|
|
273
|
+
path: node_modules/.cache/zod-compiler
|
|
274
|
+
key: zod-compiler-${{ runner.os }}-${{ hashFiles('pnpm-lock.yaml') }}
|
|
275
|
+
restore-keys: zod-compiler-${{ runner.os }}-
|
|
276
|
+
```
|
|
277
|
+
|
|
278
|
+
**2. Scope what gets discovered.** `include` limits discovery to your schema
|
|
279
|
+
directories. If test startup latency matters more than test-time validator
|
|
280
|
+
performance, run hoist-only in Vitest and compile only real builds:
|
|
281
|
+
|
|
282
|
+
```typescript
|
|
283
|
+
// vitest.config.ts — hoisting still applies; validation uses plain Zod
|
|
284
|
+
zodCompiler({ autoDiscover: false });
|
|
285
|
+
|
|
286
|
+
// vite.config.ts (build)
|
|
287
|
+
zodCompiler({ autoDiscover: true, include: ["src/schemas"] });
|
|
288
|
+
```
|
|
289
|
+
|
|
290
|
+
**3. Measure before tuning.** `ZOD_COMPILER_TIMING=1` prints per-phase wall
|
|
291
|
+
time (hoist / static-filter / discover / compile) on exit, so you can see
|
|
292
|
+
whether discovery or codegen dominates and which files pay it.
|
|
293
|
+
|
|
253
294
|
## Framework Examples
|
|
254
295
|
|
|
255
296
|
### tRPC
|
|
@@ -10,10 +10,32 @@
|
|
|
10
10
|
*
|
|
11
11
|
* Entries are keyed by a hash of (plugin version, zod version, transform
|
|
12
12
|
* options, file id, file content) and validated against a recorded snapshot
|
|
13
|
-
* of
|
|
14
|
-
*
|
|
15
|
-
*
|
|
16
|
-
*
|
|
13
|
+
* of first-party files. Validation uses an mtime+size fast path and falls
|
|
14
|
+
* back to content hashing, so a `touch` without changes still hits. A
|
|
15
|
+
* superset of true dependencies only over-invalidates, never serves stale
|
|
16
|
+
* output.
|
|
17
|
+
*
|
|
18
|
+
* Layout (CACHE_FORMAT 2): dependency snapshots are CONTENT-ADDRESSED and
|
|
19
|
+
* shared — `deps/<sha1>.json` holds the {path → hash/mtime/size} map, and
|
|
20
|
+
* each entry stores only the dep-set id. The v1 format inlined the full dep
|
|
21
|
+
* map into every entry; in a large-codebase field report 835 superset-
|
|
22
|
+
* fallback entries each embedded a ~1,900-file point-in-time snapshot (813
|
|
23
|
+
* DISTINCT snapshots — the executed-modules superset grows as the build
|
|
24
|
+
* progresses, so per-entry copies cannot even dedupe), totalling 283 MB
|
|
25
|
+
* that any commit invalidated wholesale. Sharing dep-sets also means each
|
|
26
|
+
* unique set is parsed and validated once per process instead of once per
|
|
27
|
+
* entry.
|
|
28
|
+
*
|
|
29
|
+
* Superset fallbacks (entries whose static dep crawl was incomplete) are
|
|
30
|
+
* DEFERRED: queued in memory and flushed in buildEnd / process exit against
|
|
31
|
+
* a single end-of-build superset snapshot, so every superset entry of a
|
|
32
|
+
* build shares ONE dep-set file (recording the still-growing snapshot at
|
|
33
|
+
* save time is what produced 813 distinct copies). Deferred entries are
|
|
34
|
+
* dropped on watchChange — a dependency edited between queueing and flush
|
|
35
|
+
* would pair post-change hashes with a pre-change result, which is the one
|
|
36
|
+
* combination that can serve stale output. A killed process loses only its
|
|
37
|
+
* pending superset entries (the static-complete majority persists
|
|
38
|
+
* immediately); the next run re-pays discovery for those files alone.
|
|
17
39
|
*
|
|
18
40
|
* Writes are atomic (tmp file + rename) so concurrent bundler processes
|
|
19
41
|
* (vitest workspace projects) can share one cache directory safely.
|
|
@@ -22,16 +44,11 @@ export interface CacheEntryStats {
|
|
|
22
44
|
schemas: number;
|
|
23
45
|
optimized: number;
|
|
24
46
|
}
|
|
25
|
-
interface DepRecord {
|
|
26
|
-
hash: string;
|
|
27
|
-
mtimeMs: number;
|
|
28
|
-
size: number;
|
|
29
|
-
}
|
|
30
47
|
export interface CacheEntry {
|
|
31
48
|
/** Transformed code, or null when the transform produced no change. */
|
|
32
49
|
result: string | null;
|
|
33
|
-
/**
|
|
34
|
-
|
|
50
|
+
/** Content-addressed id of the shared dep-set file (deps/<id>.json). */
|
|
51
|
+
depset: string;
|
|
35
52
|
/** Build stats to replay on cache hits (only present when schemas compiled). */
|
|
36
53
|
stats?: CacheEntryStats;
|
|
37
54
|
/** Composed sourcemap for `result` (original → transformed). */
|
|
@@ -46,12 +63,16 @@ export interface CacheSourceMap {
|
|
|
46
63
|
mappings: string;
|
|
47
64
|
file?: string | null;
|
|
48
65
|
}
|
|
49
|
-
/** Reset the per-process dep
|
|
66
|
+
/** Reset the per-process dep validation memos (watch-mode file changes). */
|
|
50
67
|
export declare function resetDepValidationMemo(): void;
|
|
51
68
|
export declare class DiskCache {
|
|
52
69
|
private readonly dir;
|
|
53
70
|
private readonly optionsKey;
|
|
54
|
-
|
|
71
|
+
/** Superset snapshot provider (loader's executed first-party modules). */
|
|
72
|
+
private readonly superset;
|
|
73
|
+
private pending;
|
|
74
|
+
private initialized;
|
|
75
|
+
constructor(dir: string, optionsKey: string, superset?: () => string[] | null);
|
|
55
76
|
/**
|
|
56
77
|
* Resolve the cache directory: an explicit string wins; otherwise
|
|
57
78
|
* node_modules/.cache/zod-compiler under cwd (falling back to a
|
|
@@ -60,9 +81,61 @@ export declare class DiskCache {
|
|
|
60
81
|
static resolveDir(cacheOption: string | true): string;
|
|
61
82
|
key(id: string, code: string): string;
|
|
62
83
|
private entryPath;
|
|
63
|
-
|
|
84
|
+
private depsetPath;
|
|
85
|
+
/**
|
|
86
|
+
* One-time directory init: wipe on format mismatch (v1 inline-deps caches
|
|
87
|
+
* reached 283 MB in the field — disposable by definition), then a
|
|
88
|
+
* throttled GC pass. Best-effort throughout; a concurrent wipe/GC from
|
|
89
|
+
* another process can only cause cache misses, never stale hits.
|
|
90
|
+
*/
|
|
91
|
+
private ensureDir;
|
|
92
|
+
/**
|
|
93
|
+
* Throttled sweep: entries older than MAX_ENTRY_AGE_MS (orphaned by key
|
|
94
|
+
* churn — content/version/options keys never repeat once inputs change)
|
|
95
|
+
* and dep-set files no surviving entry references. Runs at most once per
|
|
96
|
+
* GC_INTERVAL_MS per directory; the marker is claimed BEFORE sweeping so
|
|
97
|
+
* concurrent processes skip. Deleting a dep-set raced by a concurrent
|
|
98
|
+
* entry write only costs that entry a future miss — save() re-creates
|
|
99
|
+
* absent dep-set files.
|
|
100
|
+
*/
|
|
101
|
+
private maybeGc;
|
|
102
|
+
/** Load an entry and validate its dep-set. Any failure → null. */
|
|
64
103
|
load(key: string): CacheEntry | null;
|
|
104
|
+
/**
|
|
105
|
+
* Validate every dep in a dep-set, once per process per set: superset
|
|
106
|
+
* entries all share one set, so the ~N-file validation (and the JSON
|
|
107
|
+
* parse) happens once instead of once per entry.
|
|
108
|
+
*/
|
|
109
|
+
private validateDepset;
|
|
110
|
+
/**
|
|
111
|
+
* Stat + hash every dep into a content-addressed record map. The id hashes
|
|
112
|
+
* sorted (path, content-hash) pairs ONLY — mtimes are validation fast-path
|
|
113
|
+
* hints and must not fork the file name across checkouts/touches. Returns
|
|
114
|
+
* null when any dep cannot be read (an unvalidatable set must not persist).
|
|
115
|
+
*/
|
|
116
|
+
private buildDepset;
|
|
117
|
+
/** Write a dep-set file if absent (content-addressed: same id ⟹ same bytes). */
|
|
118
|
+
private writeDepset;
|
|
119
|
+
private writeEntry;
|
|
120
|
+
/** Persist an entry whose dependency set is fully known (static crawl complete). */
|
|
65
121
|
save(key: string, result: string | null, depPaths: readonly string[], stats?: CacheEntryStats, map?: CacheSourceMap | null): void;
|
|
122
|
+
/**
|
|
123
|
+
* Queue an entry whose static dep crawl was incomplete. Persisted by
|
|
124
|
+
* flushDeferred() against ONE end-of-build superset snapshot — recording
|
|
125
|
+
* the snapshot at save time gave every entry a distinct point-in-time
|
|
126
|
+
* copy (the executed-modules set grows as discovery progresses).
|
|
127
|
+
*/
|
|
128
|
+
saveDeferred(key: string, result: string | null, stats?: CacheEntryStats, map?: CacheSourceMap | null): void;
|
|
129
|
+
/**
|
|
130
|
+
* Flush queued superset entries against the current loader snapshot.
|
|
131
|
+
* Wired to buildEnd and (as a fallback) process exit; idempotent.
|
|
132
|
+
*/
|
|
133
|
+
flushDeferred(): void;
|
|
134
|
+
/**
|
|
135
|
+
* Discard queued superset entries (watch-mode file change): their results
|
|
136
|
+
* predate the change, but a flush would record post-change dep hashes —
|
|
137
|
+
* the one pairing that could validate a stale result.
|
|
138
|
+
*/
|
|
139
|
+
dropDeferred(): void;
|
|
66
140
|
}
|
|
67
|
-
export {};
|
|
68
141
|
//# sourceMappingURL=disk-cache.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"disk-cache.d.ts","sourceRoot":"","sources":["../../src/unplugin/disk-cache.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"disk-cache.d.ts","sourceRoot":"","sources":["../../src/unplugin/disk-cache.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AAmBH,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;CACnB;AAQD,MAAM,WAAW,UAAU;IACzB,uEAAuE;IACvE,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,wEAAwE;IACxE,MAAM,EAAE,MAAM,CAAC;IACf,gFAAgF;IAChF,KAAK,CAAC,EAAE,eAAe,CAAC;IACxB,gEAAgE;IAChE,GAAG,CAAC,EAAE,cAAc,GAAG,IAAI,CAAC;CAC7B;AAED,0EAA0E;AAC1E,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC;IAC3B,cAAc,CAAC,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC;IACnC,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB;AA2HD,4EAA4E;AAC5E,wBAAgB,sBAAsB,IAAI,IAAI,CAG7C;AAiBD,qBAAa,SAAS;IACpB,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAS;IAC7B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,0EAA0E;IAC1E,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAiC;IAC1D,OAAO,CAAC,OAAO,CAAsB;IACrC,OAAO,CAAC,WAAW,CAAS;gBAEhB,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,MAAM,EAAE,GAAG,IAAI;IAM7E;;;;OAIG;IACH,MAAM,CAAC,UAAU,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM;IAOrD,GAAG,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM;IAMrC,OAAO,CAAC,SAAS;IAIjB,OAAO,CAAC,UAAU;IAIlB;;;;;OAKG;IACH,OAAO,CAAC,SAAS;IAwBjB;;;;;;;;OAQG;IACH,OAAO,CAAC,OAAO;IAyCf,kEAAkE;IAClE,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI;IAepC;;;;OAIG;IACH,OAAO,CAAC,cAAc;IA8BtB;;;;;OAKG;IACH,OAAO,CAAC,WAAW;IAcnB,gFAAgF;IAChF,OAAO,CAAC,WAAW;IAanB,OAAO,CAAC,UAAU;IA8BlB,oFAAoF;IACpF,IAAI,CACF,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,MAAM,GAAG,IAAI,EACrB,QAAQ,EAAE,SAAS,MAAM,EAAE,EAC3B,KAAK,CAAC,EAAE,eAAe,EACvB,GAAG,CAAC,EAAE,cAAc,GAAG,IAAI,GAC1B,IAAI;IAQP;;;;;OAKG;IACH,YAAY,CACV,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,MAAM,GAAG,IAAI,EACrB,KAAK,CAAC,EAAE,eAAe,EACvB,GAAG,CAAC,EAAE,cAAc,GAAG,IAAI,GAC1B,IAAI;IAMP;;;OAGG;IACH,aAAa,IAAI,IAAI;IAerB;;;;OAIG;IACH,YAAY,IAAI,IAAI;CAGrB"}
|
|
@@ -10,10 +10,32 @@
|
|
|
10
10
|
*
|
|
11
11
|
* Entries are keyed by a hash of (plugin version, zod version, transform
|
|
12
12
|
* options, file id, file content) and validated against a recorded snapshot
|
|
13
|
-
* of
|
|
14
|
-
*
|
|
15
|
-
*
|
|
16
|
-
*
|
|
13
|
+
* of first-party files. Validation uses an mtime+size fast path and falls
|
|
14
|
+
* back to content hashing, so a `touch` without changes still hits. A
|
|
15
|
+
* superset of true dependencies only over-invalidates, never serves stale
|
|
16
|
+
* output.
|
|
17
|
+
*
|
|
18
|
+
* Layout (CACHE_FORMAT 2): dependency snapshots are CONTENT-ADDRESSED and
|
|
19
|
+
* shared — `deps/<sha1>.json` holds the {path → hash/mtime/size} map, and
|
|
20
|
+
* each entry stores only the dep-set id. The v1 format inlined the full dep
|
|
21
|
+
* map into every entry; in a large-codebase field report 835 superset-
|
|
22
|
+
* fallback entries each embedded a ~1,900-file point-in-time snapshot (813
|
|
23
|
+
* DISTINCT snapshots — the executed-modules superset grows as the build
|
|
24
|
+
* progresses, so per-entry copies cannot even dedupe), totalling 283 MB
|
|
25
|
+
* that any commit invalidated wholesale. Sharing dep-sets also means each
|
|
26
|
+
* unique set is parsed and validated once per process instead of once per
|
|
27
|
+
* entry.
|
|
28
|
+
*
|
|
29
|
+
* Superset fallbacks (entries whose static dep crawl was incomplete) are
|
|
30
|
+
* DEFERRED: queued in memory and flushed in buildEnd / process exit against
|
|
31
|
+
* a single end-of-build superset snapshot, so every superset entry of a
|
|
32
|
+
* build shares ONE dep-set file (recording the still-growing snapshot at
|
|
33
|
+
* save time is what produced 813 distinct copies). Deferred entries are
|
|
34
|
+
* dropped on watchChange — a dependency edited between queueing and flush
|
|
35
|
+
* would pair post-change hashes with a pre-change result, which is the one
|
|
36
|
+
* combination that can serve stale output. A killed process loses only its
|
|
37
|
+
* pending superset entries (the static-complete majority persists
|
|
38
|
+
* immediately); the next run re-pays discovery for those files alone.
|
|
17
39
|
*
|
|
18
40
|
* Writes are atomic (tmp file + rename) so concurrent bundler processes
|
|
19
41
|
* (vitest workspace projects) can share one cache directory safely.
|
|
@@ -22,6 +44,17 @@ import { createHash } from "node:crypto";
|
|
|
22
44
|
import * as fs from "node:fs";
|
|
23
45
|
import * as path from "node:path";
|
|
24
46
|
import { fileURLToPath } from "node:url";
|
|
47
|
+
/** Bump when the on-disk layout changes; mismatched directories are wiped. */
|
|
48
|
+
const CACHE_FORMAT = 2;
|
|
49
|
+
const META_FILE = "_meta.json";
|
|
50
|
+
const GC_MARKER = "_gc";
|
|
51
|
+
const DEPSET_DIR = "deps";
|
|
52
|
+
/** GC at most once per day per cache directory. */
|
|
53
|
+
const GC_INTERVAL_MS = 24 * 60 * 60 * 1000;
|
|
54
|
+
/** Entries unread for this long are presumed orphaned by key churn. */
|
|
55
|
+
const MAX_ENTRY_AGE_MS = 30 * 24 * 60 * 60 * 1000;
|
|
56
|
+
/** Stale atomic-write temp files (crashed processes) older than this are removed. */
|
|
57
|
+
const MAX_TMP_AGE_MS = 60 * 60 * 1000;
|
|
25
58
|
function sha1(data) {
|
|
26
59
|
return createHash("sha1").update(data).digest("hex");
|
|
27
60
|
}
|
|
@@ -99,10 +132,12 @@ const ZOD_VERSION = readZodVersion();
|
|
|
99
132
|
const BUILD_FINGERPRINT = readBuildFingerprint();
|
|
100
133
|
/**
|
|
101
134
|
* Per-process memo: path → current stat (+ lazily computed content hash).
|
|
102
|
-
* One fs.stat per file per process regardless of how many
|
|
135
|
+
* One fs.stat per file per process regardless of how many dep-sets
|
|
103
136
|
* reference it; content is read at most once.
|
|
104
137
|
*/
|
|
105
138
|
const depStatMemo = new Map();
|
|
139
|
+
/** Per-process memo: dep-set file path → validation verdict. */
|
|
140
|
+
const depsetVerdictMemo = new Map();
|
|
106
141
|
function statDep(depPath) {
|
|
107
142
|
const memo = depStatMemo.get(depPath);
|
|
108
143
|
if (memo !== undefined)
|
|
@@ -129,16 +164,36 @@ function hashDep(depPath, stat) {
|
|
|
129
164
|
return null;
|
|
130
165
|
}
|
|
131
166
|
}
|
|
132
|
-
/** Reset the per-process dep
|
|
167
|
+
/** Reset the per-process dep validation memos (watch-mode file changes). */
|
|
133
168
|
export function resetDepValidationMemo() {
|
|
134
169
|
depStatMemo.clear();
|
|
170
|
+
depsetVerdictMemo.clear();
|
|
171
|
+
}
|
|
172
|
+
/** Instances with pending deferred entries, flushed on process exit. */
|
|
173
|
+
const flushOnExit = new Set();
|
|
174
|
+
let exitHookInstalled = false;
|
|
175
|
+
function registerExitFlush(cache) {
|
|
176
|
+
flushOnExit.add(cache);
|
|
177
|
+
if (!exitHookInstalled) {
|
|
178
|
+
exitHookInstalled = true;
|
|
179
|
+
// 'exit' allows only synchronous work; every write below is sync.
|
|
180
|
+
process.once("exit", () => {
|
|
181
|
+
for (const c of flushOnExit)
|
|
182
|
+
c.flushDeferred();
|
|
183
|
+
});
|
|
184
|
+
}
|
|
135
185
|
}
|
|
136
186
|
export class DiskCache {
|
|
137
187
|
dir;
|
|
138
188
|
optionsKey;
|
|
139
|
-
|
|
189
|
+
/** Superset snapshot provider (loader's executed first-party modules). */
|
|
190
|
+
superset;
|
|
191
|
+
pending = [];
|
|
192
|
+
initialized = false;
|
|
193
|
+
constructor(dir, optionsKey, superset) {
|
|
140
194
|
this.dir = dir;
|
|
141
195
|
this.optionsKey = optionsKey;
|
|
196
|
+
this.superset = superset ?? null;
|
|
142
197
|
}
|
|
143
198
|
/**
|
|
144
199
|
* Resolve the cache directory: an explicit string wins; otherwise
|
|
@@ -159,8 +214,100 @@ export class DiskCache {
|
|
|
159
214
|
entryPath(key) {
|
|
160
215
|
return path.join(this.dir, `${key}.json`);
|
|
161
216
|
}
|
|
162
|
-
|
|
217
|
+
depsetPath(id) {
|
|
218
|
+
return path.join(this.dir, DEPSET_DIR, `${id}.json`);
|
|
219
|
+
}
|
|
220
|
+
/**
|
|
221
|
+
* One-time directory init: wipe on format mismatch (v1 inline-deps caches
|
|
222
|
+
* reached 283 MB in the field — disposable by definition), then a
|
|
223
|
+
* throttled GC pass. Best-effort throughout; a concurrent wipe/GC from
|
|
224
|
+
* another process can only cause cache misses, never stale hits.
|
|
225
|
+
*/
|
|
226
|
+
ensureDir() {
|
|
227
|
+
if (this.initialized)
|
|
228
|
+
return;
|
|
229
|
+
this.initialized = true;
|
|
230
|
+
try {
|
|
231
|
+
const metaPath = path.join(this.dir, META_FILE);
|
|
232
|
+
let format = 0;
|
|
233
|
+
try {
|
|
234
|
+
format = JSON.parse(fs.readFileSync(metaPath, "utf8")).format ?? 0;
|
|
235
|
+
}
|
|
236
|
+
catch {
|
|
237
|
+
// missing or unreadable marker — treat as foreign format
|
|
238
|
+
}
|
|
239
|
+
if (format !== CACHE_FORMAT) {
|
|
240
|
+
fs.rmSync(this.dir, { recursive: true, force: true });
|
|
241
|
+
fs.mkdirSync(path.join(this.dir, DEPSET_DIR), { recursive: true });
|
|
242
|
+
fs.writeFileSync(metaPath, JSON.stringify({ format: CACHE_FORMAT }));
|
|
243
|
+
}
|
|
244
|
+
else {
|
|
245
|
+
fs.mkdirSync(path.join(this.dir, DEPSET_DIR), { recursive: true });
|
|
246
|
+
this.maybeGc();
|
|
247
|
+
}
|
|
248
|
+
}
|
|
249
|
+
catch {
|
|
250
|
+
// cache stays best-effort
|
|
251
|
+
}
|
|
252
|
+
}
|
|
253
|
+
/**
|
|
254
|
+
* Throttled sweep: entries older than MAX_ENTRY_AGE_MS (orphaned by key
|
|
255
|
+
* churn — content/version/options keys never repeat once inputs change)
|
|
256
|
+
* and dep-set files no surviving entry references. Runs at most once per
|
|
257
|
+
* GC_INTERVAL_MS per directory; the marker is claimed BEFORE sweeping so
|
|
258
|
+
* concurrent processes skip. Deleting a dep-set raced by a concurrent
|
|
259
|
+
* entry write only costs that entry a future miss — save() re-creates
|
|
260
|
+
* absent dep-set files.
|
|
261
|
+
*/
|
|
262
|
+
maybeGc() {
|
|
263
|
+
const marker = path.join(this.dir, GC_MARKER);
|
|
264
|
+
try {
|
|
265
|
+
const stat = fs.statSync(marker, { throwIfNoEntry: false });
|
|
266
|
+
if (stat !== undefined && Date.now() - stat.mtimeMs < GC_INTERVAL_MS)
|
|
267
|
+
return;
|
|
268
|
+
fs.writeFileSync(marker, "");
|
|
269
|
+
const now = Date.now();
|
|
270
|
+
const referenced = new Set();
|
|
271
|
+
for (const name of fs.readdirSync(this.dir)) {
|
|
272
|
+
const p = path.join(this.dir, name);
|
|
273
|
+
if (name.endsWith(".tmp")) {
|
|
274
|
+
const st = fs.statSync(p, { throwIfNoEntry: false });
|
|
275
|
+
if (st !== undefined && now - st.mtimeMs > MAX_TMP_AGE_MS)
|
|
276
|
+
fs.rmSync(p, { force: true });
|
|
277
|
+
continue;
|
|
278
|
+
}
|
|
279
|
+
if (!name.endsWith(".json") || name === META_FILE)
|
|
280
|
+
continue;
|
|
281
|
+
try {
|
|
282
|
+
const st = fs.statSync(p);
|
|
283
|
+
if (now - st.mtimeMs > MAX_ENTRY_AGE_MS) {
|
|
284
|
+
fs.rmSync(p, { force: true });
|
|
285
|
+
continue;
|
|
286
|
+
}
|
|
287
|
+
const entry = JSON.parse(fs.readFileSync(p, "utf8"));
|
|
288
|
+
if (typeof entry.depset === "string")
|
|
289
|
+
referenced.add(entry.depset);
|
|
290
|
+
}
|
|
291
|
+
catch {
|
|
292
|
+
fs.rmSync(p, { force: true });
|
|
293
|
+
}
|
|
294
|
+
}
|
|
295
|
+
for (const name of fs.readdirSync(path.join(this.dir, DEPSET_DIR))) {
|
|
296
|
+
if (!name.endsWith(".json"))
|
|
297
|
+
continue;
|
|
298
|
+
const id = name.slice(0, -".json".length);
|
|
299
|
+
if (!referenced.has(id)) {
|
|
300
|
+
fs.rmSync(path.join(this.dir, DEPSET_DIR, name), { force: true });
|
|
301
|
+
}
|
|
302
|
+
}
|
|
303
|
+
}
|
|
304
|
+
catch {
|
|
305
|
+
// best effort
|
|
306
|
+
}
|
|
307
|
+
}
|
|
308
|
+
/** Load an entry and validate its dep-set. Any failure → null. */
|
|
163
309
|
load(key) {
|
|
310
|
+
this.ensureDir();
|
|
164
311
|
let entry;
|
|
165
312
|
try {
|
|
166
313
|
entry = JSON.parse(fs.readFileSync(this.entryPath(key), "utf8"));
|
|
@@ -168,32 +315,89 @@ export class DiskCache {
|
|
|
168
315
|
catch {
|
|
169
316
|
return null;
|
|
170
317
|
}
|
|
171
|
-
if (entry === null || typeof entry !== "object" || typeof entry.
|
|
318
|
+
if (entry === null || typeof entry !== "object" || typeof entry.depset !== "string") {
|
|
172
319
|
return null;
|
|
173
320
|
}
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
if (current === null)
|
|
177
|
-
return null;
|
|
178
|
-
if (current.mtimeMs === recorded.mtimeMs && current.size === recorded.size)
|
|
179
|
-
continue;
|
|
180
|
-
if (hashDep(depPath, current) !== recorded.hash)
|
|
181
|
-
return null;
|
|
182
|
-
}
|
|
321
|
+
if (!this.validateDepset(entry.depset))
|
|
322
|
+
return null;
|
|
183
323
|
return entry;
|
|
184
324
|
}
|
|
185
|
-
|
|
186
|
-
|
|
325
|
+
/**
|
|
326
|
+
* Validate every dep in a dep-set, once per process per set: superset
|
|
327
|
+
* entries all share one set, so the ~N-file validation (and the JSON
|
|
328
|
+
* parse) happens once instead of once per entry.
|
|
329
|
+
*/
|
|
330
|
+
validateDepset(id) {
|
|
331
|
+
const depsetFile = this.depsetPath(id);
|
|
332
|
+
const memo = depsetVerdictMemo.get(depsetFile);
|
|
333
|
+
if (memo !== undefined)
|
|
334
|
+
return memo;
|
|
335
|
+
let verdict = true;
|
|
336
|
+
try {
|
|
337
|
+
const parsed = JSON.parse(fs.readFileSync(depsetFile, "utf8"));
|
|
338
|
+
if (parsed === null || typeof parsed !== "object" || typeof parsed.files !== "object") {
|
|
339
|
+
verdict = false;
|
|
340
|
+
}
|
|
341
|
+
else {
|
|
342
|
+
for (const [depPath, recorded] of Object.entries(parsed.files)) {
|
|
343
|
+
const current = statDep(depPath);
|
|
344
|
+
if (current === null) {
|
|
345
|
+
verdict = false;
|
|
346
|
+
break;
|
|
347
|
+
}
|
|
348
|
+
if (current.mtimeMs === recorded.mtimeMs && current.size === recorded.size)
|
|
349
|
+
continue;
|
|
350
|
+
if (hashDep(depPath, current) !== recorded.hash) {
|
|
351
|
+
verdict = false;
|
|
352
|
+
break;
|
|
353
|
+
}
|
|
354
|
+
}
|
|
355
|
+
}
|
|
356
|
+
}
|
|
357
|
+
catch {
|
|
358
|
+
verdict = false;
|
|
359
|
+
}
|
|
360
|
+
depsetVerdictMemo.set(depsetFile, verdict);
|
|
361
|
+
return verdict;
|
|
362
|
+
}
|
|
363
|
+
/**
|
|
364
|
+
* Stat + hash every dep into a content-addressed record map. The id hashes
|
|
365
|
+
* sorted (path, content-hash) pairs ONLY — mtimes are validation fast-path
|
|
366
|
+
* hints and must not fork the file name across checkouts/touches. Returns
|
|
367
|
+
* null when any dep cannot be read (an unvalidatable set must not persist).
|
|
368
|
+
*/
|
|
369
|
+
buildDepset(depPaths) {
|
|
370
|
+
const records = {};
|
|
187
371
|
for (const depPath of depPaths) {
|
|
372
|
+
if (records[depPath] !== undefined)
|
|
373
|
+
continue;
|
|
188
374
|
const stat = statDep(depPath);
|
|
189
375
|
const hash = stat === null ? null : hashDep(depPath, stat);
|
|
190
|
-
if (stat === null || hash === null)
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
376
|
+
if (stat === null || hash === null)
|
|
377
|
+
return null;
|
|
378
|
+
records[depPath] = { hash, mtimeMs: stat.mtimeMs, size: stat.size };
|
|
379
|
+
}
|
|
380
|
+
const sorted = Object.keys(records).sort();
|
|
381
|
+
const id = sha1(sorted.map((p) => `${p}\0${records[p].hash}`).join("\n"));
|
|
382
|
+
return { id, content: { files: records } };
|
|
383
|
+
}
|
|
384
|
+
/** Write a dep-set file if absent (content-addressed: same id ⟹ same bytes). */
|
|
385
|
+
writeDepset(id, content) {
|
|
386
|
+
const file = this.depsetPath(id);
|
|
387
|
+
try {
|
|
388
|
+
if (fs.existsSync(file))
|
|
389
|
+
return true;
|
|
390
|
+
const tmp = `${file}.${process.pid}.tmp`;
|
|
391
|
+
fs.writeFileSync(tmp, JSON.stringify(content));
|
|
392
|
+
fs.renameSync(tmp, file);
|
|
393
|
+
return true;
|
|
394
|
+
}
|
|
395
|
+
catch {
|
|
396
|
+
return false;
|
|
195
397
|
}
|
|
196
|
-
|
|
398
|
+
}
|
|
399
|
+
writeEntry(key, depsetId, result, stats, map) {
|
|
400
|
+
const entry = { result, depset: depsetId };
|
|
197
401
|
if (stats)
|
|
198
402
|
entry.stats = stats;
|
|
199
403
|
if (map !== undefined && map !== null) {
|
|
@@ -208,7 +412,6 @@ export class DiskCache {
|
|
|
208
412
|
};
|
|
209
413
|
}
|
|
210
414
|
try {
|
|
211
|
-
fs.mkdirSync(this.dir, { recursive: true });
|
|
212
415
|
const file = this.entryPath(key);
|
|
213
416
|
const tmp = `${file}.${process.pid}.tmp`;
|
|
214
417
|
fs.writeFileSync(tmp, JSON.stringify(entry));
|
|
@@ -218,5 +421,57 @@ export class DiskCache {
|
|
|
218
421
|
// Cache writes are best-effort; failures only cost a recompute.
|
|
219
422
|
}
|
|
220
423
|
}
|
|
424
|
+
/** Persist an entry whose dependency set is fully known (static crawl complete). */
|
|
425
|
+
save(key, result, depPaths, stats, map) {
|
|
426
|
+
this.ensureDir();
|
|
427
|
+
const built = this.buildDepset(depPaths);
|
|
428
|
+
if (built === null)
|
|
429
|
+
return;
|
|
430
|
+
if (!this.writeDepset(built.id, built.content))
|
|
431
|
+
return;
|
|
432
|
+
this.writeEntry(key, built.id, result, stats, map);
|
|
433
|
+
}
|
|
434
|
+
/**
|
|
435
|
+
* Queue an entry whose static dep crawl was incomplete. Persisted by
|
|
436
|
+
* flushDeferred() against ONE end-of-build superset snapshot — recording
|
|
437
|
+
* the snapshot at save time gave every entry a distinct point-in-time
|
|
438
|
+
* copy (the executed-modules set grows as discovery progresses).
|
|
439
|
+
*/
|
|
440
|
+
saveDeferred(key, result, stats, map) {
|
|
441
|
+
if (this.superset === null)
|
|
442
|
+
return;
|
|
443
|
+
this.pending.push({ key, result, stats, map });
|
|
444
|
+
registerExitFlush(this);
|
|
445
|
+
}
|
|
446
|
+
/**
|
|
447
|
+
* Flush queued superset entries against the current loader snapshot.
|
|
448
|
+
* Wired to buildEnd and (as a fallback) process exit; idempotent.
|
|
449
|
+
*/
|
|
450
|
+
flushDeferred() {
|
|
451
|
+
if (this.pending.length === 0)
|
|
452
|
+
return;
|
|
453
|
+
const pending = this.pending;
|
|
454
|
+
this.pending = [];
|
|
455
|
+
const snapshot = this.superset === null ? null : this.superset();
|
|
456
|
+
if (snapshot === null)
|
|
457
|
+
return;
|
|
458
|
+
this.ensureDir();
|
|
459
|
+
const built = this.buildDepset(snapshot);
|
|
460
|
+
if (built === null)
|
|
461
|
+
return;
|
|
462
|
+
if (!this.writeDepset(built.id, built.content))
|
|
463
|
+
return;
|
|
464
|
+
for (const p of pending) {
|
|
465
|
+
this.writeEntry(p.key, built.id, p.result, p.stats, p.map);
|
|
466
|
+
}
|
|
467
|
+
}
|
|
468
|
+
/**
|
|
469
|
+
* Discard queued superset entries (watch-mode file change): their results
|
|
470
|
+
* predate the change, but a flush would record post-change dep hashes —
|
|
471
|
+
* the one pairing that could validate a stale result.
|
|
472
|
+
*/
|
|
473
|
+
dropDeferred() {
|
|
474
|
+
this.pending = [];
|
|
475
|
+
}
|
|
221
476
|
}
|
|
222
477
|
//# sourceMappingURL=disk-cache.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"disk-cache.js","sourceRoot":"","sources":["../../src/unplugin/disk-cache.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"disk-cache.js","sourceRoot":"","sources":["../../src/unplugin/disk-cache.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/unplugin/index.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAc,wBAAwB,EAAE,MAAM,YAAY,CAAC;AAiCvE,eAAO,MAAM,QAAQ,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/unplugin/index.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAc,wBAAwB,EAAE,MAAM,YAAY,CAAC;AAiCvE,eAAO,MAAM,QAAQ,oFAsMpB,CAAC;AAEF,YAAY,EAAE,wBAAwB,EAAE,MAAM,YAAY,CAAC"}
|
package/dist/unplugin/index.js
CHANGED
|
@@ -51,7 +51,7 @@ export const unplugin = createUnplugin((options, meta) => {
|
|
|
51
51
|
hoist: typeof options?.hoist === "object"
|
|
52
52
|
? String(options.hoist.schemaNamePattern ?? "default")
|
|
53
53
|
: (options?.hoist ?? true),
|
|
54
|
-
}));
|
|
54
|
+
}), getFirstPartyModulePaths);
|
|
55
55
|
// Vite only (other bundlers ignore the field): when the plugin runs.
|
|
56
56
|
// The default compiles production builds AND test runs — tests should
|
|
57
57
|
// exercise (and benefit from) the validators that ship — while plain dev
|
|
@@ -137,29 +137,35 @@ export const unplugin = createUnplugin((options, meta) => {
|
|
|
137
137
|
// discovery (whose cost is what the cache exists to avoid). Textual
|
|
138
138
|
// bail-outs are cheaper than a cache probe — never persisted.
|
|
139
139
|
if (diskCache !== null && diskKey !== null && (result !== null || discoveryRan)) {
|
|
140
|
-
//
|
|
141
|
-
//
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
//
|
|
140
|
+
// TS narrows fileStats to null here (assignment happens inside a
|
|
141
|
+
// callback it cannot track) — widen back.
|
|
142
|
+
const s = fileStats;
|
|
143
|
+
const stats = s === null ? undefined : { schemas: s.schemas, optimized: s.optimized };
|
|
144
|
+
if (!discoveryRan) {
|
|
145
|
+
// Discovery-free results (hoist-only rewrites) are pure functions
|
|
146
|
+
// of the file content: no deps.
|
|
147
|
+
diskCache.save(diskKey, result, [], stats, map);
|
|
148
|
+
}
|
|
149
|
+
else {
|
|
150
|
+
// Per-file dependency sets: the file's static first-party import
|
|
151
|
+
// graph, so editing an unrelated file no longer invalidates this
|
|
152
|
+
// entry (the global superset recorded the whole project — in
|
|
153
|
+
// large codebases every commit wiped the entire cache). The
|
|
154
|
+
// entry file itself is always a dep: the cache key hashes the
|
|
152
155
|
// content the BUNDLER passed, but discovery executed the file
|
|
153
156
|
// from DISK — recording it guards the (rare) divergence between
|
|
154
|
-
// the two.
|
|
157
|
+
// the two. When the graph cannot be fully analyzed (non-literal
|
|
158
|
+
// dynamic imports, unresolvable relative specifiers), the entry
|
|
159
|
+
// is deferred and flushed in buildEnd against ONE end-of-build
|
|
160
|
+
// executed-modules superset — immediate snapshots gave every
|
|
161
|
+
// entry a distinct point-in-time copy (283 MB in the field).
|
|
155
162
|
const staticDeps = collectStaticDeps(id);
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
diskCache.save(diskKey, result, deps, s === null ? undefined : { schemas: s.schemas, optimized: s.optimized }, map);
|
|
163
|
+
if (staticDeps.complete) {
|
|
164
|
+
diskCache.save(diskKey, result, [id, ...staticDeps.deps], stats, map);
|
|
165
|
+
}
|
|
166
|
+
else {
|
|
167
|
+
diskCache.saveDeferred(diskKey, result, stats, map);
|
|
168
|
+
}
|
|
163
169
|
}
|
|
164
170
|
}
|
|
165
171
|
if (!result)
|
|
@@ -175,13 +181,19 @@ export const unplugin = createUnplugin((options, meta) => {
|
|
|
175
181
|
// the module cache (executions) and the transform result cache are
|
|
176
182
|
// invalidated wholesale. node_modules stay warm in the loader. Disk
|
|
177
183
|
// cache entries self-validate via dep hashes — only the per-process
|
|
178
|
-
// stat memo needs resetting so changed files re-hash.
|
|
184
|
+
// stat memo needs resetting so changed files re-hash. Pending
|
|
185
|
+
// deferred entries predate the change and must not flush against
|
|
186
|
+
// post-change dep hashes.
|
|
179
187
|
invalidateModuleCache();
|
|
180
188
|
resetDepValidationMemo();
|
|
181
189
|
resetDepGraphMemo();
|
|
190
|
+
diskCache?.dropDeferred();
|
|
182
191
|
cache.clear();
|
|
183
192
|
},
|
|
184
193
|
buildEnd() {
|
|
194
|
+
// The loader's executed-modules superset is final here — persist the
|
|
195
|
+
// queued incomplete-crawl entries against one shared snapshot.
|
|
196
|
+
diskCache?.flushDeferred();
|
|
185
197
|
if (!verbose)
|
|
186
198
|
return;
|
|
187
199
|
if (stats.schemas === 0)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/unplugin/index.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,cAAc,CAAC;AACnC,OAAO,EAAE,cAAc,EAA4B,MAAM,UAAU,CAAC;AAEpE,OAAO,EAAE,wBAAwB,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AACjF,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACtE,OAAO,EAAE,SAAS,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AACpE,OAAO,EACL,GAAG,EACH,eAAe,EAEf,oBAAoB,GACrB,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AACnD,OAAO,EACL,WAAW,EACX,mBAAmB,EACnB,gBAAgB,EAChB,kBAAkB,EAClB,aAAa,GACd,MAAM,cAAc,CAAC;AAEtB;;;;;GAKG;AACH,MAAM,yBAAyB,GAAG,IAAI,GAAG,CAAC;IACxC,MAAM;IACN,QAAQ;IACR,UAAU;IACV,SAAS;IACT,MAAM;IACN,KAAK;IACL,QAAQ;IACR,SAAS;CACV,CAAC,CAAC;AAEH,gFAAgF;AAChF,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC;AAErD,sEAAsE;AACtE,MAAM,WAAW,GAAG,wBAAwB,CAAC;AAE7C,MAAM,CAAC,MAAM,QAAQ,GAAG,cAAc,CACpC,CAAC,OAA6C,EAAE,IAAyB,EAAE,EAAE;IAC3E,MAAM,KAAK,GAAG,IAAI,qBAAqB,EAAE,CAAC;IAC1C,uEAAuE;IACvE,wEAAwE;IACxE,2EAA2E;IAC3E,MAAM,KAAK,GAAG,IAAI,GAAG,EAGlB,CAAC;IACJ,MAAM,OAAO,GAAG,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IAC1C,MAAM,IAAI,GAAgB,yBAAyB,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC;IAC5F,MAAM,SAAS,GAAG,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,kBAAkB,CAAC;IACzF,0EAA0E;IAC1E,yEAAyE;IACzE,2EAA2E;IAC3E,0EAA0E;IAC1E,oCAAoC;IACpC,MAAM,WAAW,GAAG,OAAO,EAAE,KAAK,IAAI,IAAI,CAAC;IAC3C,MAAM,SAAS,GACb,WAAW,KAAK,KAAK;QACnB,CAAC,CAAC,IAAI;QACN,CAAC,CAAC,IAAI,SAAS,CACX,SAAS,CAAC,UAAU,CAAC,WAAW,CAAC,EACjC,IAAI,CAAC,SAAS,CAAC;YACb,IAAI;YACJ,SAAS;YACT,SAAS,EAAE,OAAO,EAAE,SAAS,IAAI,IAAI;YACrC,YAAY,EAAE,OAAO,EAAE,YAAY,IAAI,KAAK;YAC5C,KAAK,EACH,OAAO,OAAO,EAAE,KAAK,KAAK,QAAQ;gBAChC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,iBAAiB,IAAI,SAAS,CAAC;gBACtD,CAAC,CAAC,CAAC,OAAO,EAAE,KAAK,IAAI,IAAI,CAAC;SAC/B,CAAC,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/unplugin/index.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,cAAc,CAAC;AACnC,OAAO,EAAE,cAAc,EAA4B,MAAM,UAAU,CAAC;AAEpE,OAAO,EAAE,wBAAwB,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AACjF,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACtE,OAAO,EAAE,SAAS,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AACpE,OAAO,EACL,GAAG,EACH,eAAe,EAEf,oBAAoB,GACrB,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AACnD,OAAO,EACL,WAAW,EACX,mBAAmB,EACnB,gBAAgB,EAChB,kBAAkB,EAClB,aAAa,GACd,MAAM,cAAc,CAAC;AAEtB;;;;;GAKG;AACH,MAAM,yBAAyB,GAAG,IAAI,GAAG,CAAC;IACxC,MAAM;IACN,QAAQ;IACR,UAAU;IACV,SAAS;IACT,MAAM;IACN,KAAK;IACL,QAAQ;IACR,SAAS;CACV,CAAC,CAAC;AAEH,gFAAgF;AAChF,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC;AAErD,sEAAsE;AACtE,MAAM,WAAW,GAAG,wBAAwB,CAAC;AAE7C,MAAM,CAAC,MAAM,QAAQ,GAAG,cAAc,CACpC,CAAC,OAA6C,EAAE,IAAyB,EAAE,EAAE;IAC3E,MAAM,KAAK,GAAG,IAAI,qBAAqB,EAAE,CAAC;IAC1C,uEAAuE;IACvE,wEAAwE;IACxE,2EAA2E;IAC3E,MAAM,KAAK,GAAG,IAAI,GAAG,EAGlB,CAAC;IACJ,MAAM,OAAO,GAAG,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IAC1C,MAAM,IAAI,GAAgB,yBAAyB,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC;IAC5F,MAAM,SAAS,GAAG,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,kBAAkB,CAAC;IACzF,0EAA0E;IAC1E,yEAAyE;IACzE,2EAA2E;IAC3E,0EAA0E;IAC1E,oCAAoC;IACpC,MAAM,WAAW,GAAG,OAAO,EAAE,KAAK,IAAI,IAAI,CAAC;IAC3C,MAAM,SAAS,GACb,WAAW,KAAK,KAAK;QACnB,CAAC,CAAC,IAAI;QACN,CAAC,CAAC,IAAI,SAAS,CACX,SAAS,CAAC,UAAU,CAAC,WAAW,CAAC,EACjC,IAAI,CAAC,SAAS,CAAC;YACb,IAAI;YACJ,SAAS;YACT,SAAS,EAAE,OAAO,EAAE,SAAS,IAAI,IAAI;YACrC,YAAY,EAAE,OAAO,EAAE,YAAY,IAAI,KAAK;YAC5C,KAAK,EACH,OAAO,OAAO,EAAE,KAAK,KAAK,QAAQ;gBAChC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,iBAAiB,IAAI,SAAS,CAAC;gBACtD,CAAC,CAAC,CAAC,OAAO,EAAE,KAAK,IAAI,IAAI,CAAC;SAC/B,CAAC,EACF,wBAAwB,CACzB,CAAC;IACR,qEAAqE;IACrE,sEAAsE;IACtE,yEAAyE;IACzE,sEAAsE;IACtE,qEAAqE;IACrE,MAAM,SAAS,GACb,OAAO,EAAE,KAAK,KAAK,KAAK;QACtB,CAAC,CAAC,SAAS;QACX,CAAC,CAAC,CAAC,OAAO,EAAE,KAAK;YACf,CAAC,CAAC,OAAgB,EAAE,GAAsC,EAAE,EAAE,CAC5D,GAAG,CAAC,OAAO,KAAK,OAAO,IAAI,GAAG,CAAC,IAAI,KAAK,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC;IAEhG,OAAO;QACL,IAAI,EAAE,cAAc;QACpB,OAAO,EAAE,KAAc;QAEvB,IAAI,EAAE,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE;QAEzD,SAAS,CAAC,EAAU;YAClB,OAAO,gBAAgB,CAAC,EAAE,CAAC,CAAC;QAC9B,CAAC;QAED,WAAW,CAAC,EAAU;YACpB,OAAO,EAAE,KAAK,mBAAmB,CAAC;QACpC,CAAC;QAED,IAAI,CAAC,EAAU;YACb,OAAO,WAAW,CAAC,EAAE,CAAC,CAAC;QACzB,CAAC;QAED,gBAAgB,CAAC,EAAU;YACzB,OAAO,eAAe,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;QACtC,CAAC;QAED,KAAK,CAAC,SAAS,CAAC,IAAY,EAAE,EAAU;YACtC,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAC7B,IAAI,MAAM,IAAI,MAAM,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;gBACnC,OAAO,MAAM,CAAC,MAAM,KAAK,IAAI;oBAC3B,CAAC,CAAC,SAAS;oBACX,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,IAAI,IAAI,EAAE,CAAC;YACvD,CAAC;YACD,IAAI,MAAM,EAAE,CAAC;gBACX,iEAAiE;gBACjE,6DAA6D;gBAC7D,qBAAqB,EAAE,CAAC;YAC1B,CAAC;YAED,qEAAqE;YACrE,oEAAoE;YACpE,wDAAwD;YACxD,MAAM,OAAO,GAAG,SAAS,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;YACpE,IAAI,SAAS,KAAK,IAAI,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;gBAC3C,MAAM,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBACtC,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;oBACnB,KAAK,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,IAAI,IAAI,EAAE,CAAC,CAAC;oBACtE,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;wBAChB,KAAK,CAAC,GAAG,CAAC;4BACR,KAAK,EAAE,CAAC;4BACR,OAAO,EAAE,KAAK,CAAC,KAAK,CAAC,OAAO;4BAC5B,SAAS,EAAE,KAAK,CAAC,KAAK,CAAC,SAAS;4BAChC,MAAM,EAAE,CAAC;yBACV,CAAC,CAAC;oBACL,CAAC;oBACD,IAAI,OAAO,IAAI,KAAK,CAAC,MAAM,KAAK,IAAI,EAAE,CAAC;wBACrC,GAAG,CAAC,8BAA8B,EAAE,EAAE,CAAC,CAAC;oBAC1C,CAAC;oBACD,OAAO,KAAK,CAAC,MAAM,KAAK,IAAI;wBAC1B,CAAC,CAAC,SAAS;wBACX,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,MAAM,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,IAAI,IAAI,EAAE,CAAC;gBACrD,CAAC;YACH,CAAC;YAED,IAAI,YAAY,GAAG,KAAK,CAAC;YACzB,IAAI,SAAS,GAAsB,IAAI,CAAC;YACxC,MAAM,MAAM,GAAG,MAAM,oBAAoB,CAAC,IAAI,EAAE,EAAE,EAAE;gBAClD,IAAI;gBACJ,SAAS;gBACT,OAAO;gBACP,SAAS,EAAE,OAAO,EAAE,SAAS;gBAC7B,YAAY,EAAE,OAAO,EAAE,YAAY;gBACnC,KAAK,EAAE,OAAO,EAAE,KAAK;gBACrB,WAAW;oBACT,YAAY,GAAG,IAAI,CAAC;gBACtB,CAAC;gBACD,YAAY,CAAC,CAAC;oBACZ,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;oBACb,SAAS,GAAG,CAAC,CAAC;gBAChB,CAAC;aACF,CAAC,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC;YACpD,MAAM,GAAG,GAAG,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;YAChD,KAAK,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;YAErC,oEAAoE;YACpE,oEAAoE;YACpE,8DAA8D;YAC9D,IAAI,SAAS,KAAK,IAAI,IAAI,OAAO,KAAK,IAAI,IAAI,CAAC,MAAM,KAAK,IAAI,IAAI,YAAY,CAAC,EAAE,CAAC;gBAChF,iEAAiE;gBACjE,0CAA0C;gBAC1C,MAAM,CAAC,GAAG,SAA8B,CAAC;gBACzC,MAAM,KAAK,GAAG,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,SAAS,EAAE,CAAC,CAAC,SAAS,EAAE,CAAC;gBACtF,IAAI,CAAC,YAAY,EAAE,CAAC;oBAClB,kEAAkE;oBAClE,gCAAgC;oBAChC,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;gBAClD,CAAC;qBAAM,CAAC;oBACN,iEAAiE;oBACjE,iEAAiE;oBACjE,6DAA6D;oBAC7D,4DAA4D;oBAC5D,8DAA8D;oBAC9D,8DAA8D;oBAC9D,gEAAgE;oBAChE,gEAAgE;oBAChE,gEAAgE;oBAChE,+DAA+D;oBAC/D,6DAA6D;oBAC7D,6DAA6D;oBAC7D,MAAM,UAAU,GAAG,iBAAiB,CAAC,EAAE,CAAC,CAAC;oBACzC,IAAI,UAAU,CAAC,QAAQ,EAAE,CAAC;wBACxB,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE,GAAG,UAAU,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;oBACxE,CAAC;yBAAM,CAAC;wBACN,SAAS,CAAC,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;oBACtD,CAAC;gBACH,CAAC;YACH,CAAC;YAED,IAAI,CAAC,MAAM;gBAAE,OAAO;YACpB,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;QAC/B,CAAC;QAED,WAAW,CAAC,EAAU;YACpB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC;gBAAE,OAAO;YAClC,IAAI,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC;gBAAE,OAAO;YACxC,mEAAmE;YACnE,mEAAmE;YACnE,oEAAoE;YACpE,oEAAoE;YACpE,8DAA8D;YAC9D,iEAAiE;YACjE,0BAA0B;YAC1B,qBAAqB,EAAE,CAAC;YACxB,sBAAsB,EAAE,CAAC;YACzB,iBAAiB,EAAE,CAAC;YACpB,SAAS,EAAE,YAAY,EAAE,CAAC;YAC1B,KAAK,CAAC,KAAK,EAAE,CAAC;QAChB,CAAC;QAED,QAAQ;YACN,qEAAqE;YACrE,+DAA+D;YAC/D,SAAS,EAAE,aAAa,EAAE,CAAC;YAC3B,IAAI,CAAC,OAAO;gBAAE,OAAO;YACrB,IAAI,KAAK,CAAC,OAAO,KAAK,CAAC;gBAAE,OAAO;YAChC,GAAG,CACD,kBAAkB,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,OAAO,6BAA6B,KAAK,CAAC,KAAK,UAAU;gBAClG,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,MAAM,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CACvD,CAAC;YACF,KAAK,CAAC,KAAK,EAAE,CAAC;QAChB,CAAC;KACF,CAAC;AACJ,CAAC,CACF,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transform.d.ts","sourceRoot":"","sources":["../../src/unplugin/transform.ts"],"names":[],"mappings":"AAaA,OAAO,EAEL,KAAK,kBAAkB,EAExB,MAAM,uBAAuB,CAAC;AAO/B,OAAO,KAAK,EAAE,gBAAgB,EAAE,wBAAwB,EAAE,MAAM,YAAY,CAAC;AAG7E,gFAAgF;AAChF,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC;IAC3B,cAAc,CAAC,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC;IACnC,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB;
|
|
1
|
+
{"version":3,"file":"transform.d.ts","sourceRoot":"","sources":["../../src/unplugin/transform.ts"],"names":[],"mappings":"AAaA,OAAO,EAEL,KAAK,kBAAkB,EAExB,MAAM,uBAAuB,CAAC;AAO/B,OAAO,KAAK,EAAE,gBAAgB,EAAE,wBAAwB,EAAE,MAAM,YAAY,CAAC;AAG7E,gFAAgF;AAChF,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC;IAC3B,cAAc,CAAC,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC;IACnC,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB;AAyFD;;GAEG;AACH,wBAAgB,eAAe,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,wBAAwB,GAAG,OAAO,CAevF;AAED,wBAAgB,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAGrC;AAOD,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,kBAAkB,GAAG,IAAI,CAAC;CAChC;AAED;;;;GAIG;AACH,wBAAsB,aAAa,CACjC,IAAI,EAAE,MAAM,EACZ,EAAE,EAAE,MAAM,EACV,OAAO,EAAE,gBAAgB,GACxB,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAGxB;AAED;;;;GAIG;AACH,wBAAsB,oBAAoB,CACxC,IAAI,EAAE,MAAM,EACZ,EAAE,EAAE,MAAM,EACV,OAAO,EAAE,gBAAgB,GACxB,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC,CAuOjC;AAkED;;GAEG;AACH,wBAAgB,aAAa,CAC3B,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,kBAAkB,EAAE,EAC7B,OAAO,CAAC,EAAE;IAAE,SAAS,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;CAAE,GAC5C,MAAM,CAER;AA0CD;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAUrE;AAED;;;GAGG;AACH,wBAAgB,yBAAyB,CACvC,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,kBAAkB,EAAE,EAC7B,OAAO,CAAC,EAAE;IAAE,SAAS,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;CAAE,GAC5C,MAAM,CAER;AAgCD;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAExD"}
|
|
@@ -59,6 +59,8 @@ const HAS_RUNTIME_ZOD_IMPORT = /import\s+(?!type\s)[^;]*from\s+["']zod["']/;
|
|
|
59
59
|
* attribute plugin overhead in real builds/test runs.
|
|
60
60
|
*/
|
|
61
61
|
const TIMING = process.env["ZOD_COMPILER_TIMING"] === "1";
|
|
62
|
+
/** A single file's discovery exceeding this is worth an actionable warning. */
|
|
63
|
+
const SLOW_DISCOVERY_WARN_MS = 5_000;
|
|
62
64
|
const phaseTotals = new Map();
|
|
63
65
|
let timingHookInstalled = false;
|
|
64
66
|
function timePhase(phase, fn) {
|
|
@@ -225,6 +227,7 @@ export async function transformCodeWithMap(code, id, options) {
|
|
|
225
227
|
// the shared loader; watch/HMR changes invalidate via invalidateModuleCache().
|
|
226
228
|
options.onDiscovery?.();
|
|
227
229
|
let schemas;
|
|
230
|
+
const discoverStart = performance.now();
|
|
228
231
|
try {
|
|
229
232
|
schemas = await timePhase("discover", () => discoverSchemas(id, { autoDiscover }));
|
|
230
233
|
}
|
|
@@ -240,6 +243,17 @@ export async function transformCodeWithMap(code, id, options) {
|
|
|
240
243
|
}
|
|
241
244
|
throw new Error(`[zod-compiler] Failed to load schemas from ${id}: ${msg}`);
|
|
242
245
|
}
|
|
246
|
+
const discoverMs = performance.now() - discoverStart;
|
|
247
|
+
if (discoverMs >= SLOW_DISCOVERY_WARN_MS) {
|
|
248
|
+
// Discovery executes the file's whole first-party import graph inside
|
|
249
|
+
// the bundler's single-threaded process — on saturated CI hosts a large
|
|
250
|
+
// graph can stall the event loop long enough to trip test timeouts.
|
|
251
|
+
// Surface the cost with the two effective remedies.
|
|
252
|
+
warn(`Discovery of ${id} took ${(discoverMs / 1000).toFixed(1)}s executing its import graph ` +
|
|
253
|
+
`in the bundler process. Persist node_modules/.cache/zod-compiler across CI runs to pay ` +
|
|
254
|
+
`this once, or narrow autoDiscover/include for test runs (see README "Large projects ` +
|
|
255
|
+
`and CI"). ZOD_COMPILER_TIMING=1 prints a per-phase breakdown.`);
|
|
256
|
+
}
|
|
243
257
|
if (schemas.length === 0)
|
|
244
258
|
return finishHoistOnly();
|
|
245
259
|
// Lean mode (Vite/Rollup/etc.) uses virtual:zod-compiler/runtime imports for cross-file dedup.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transform.js","sourceRoot":"","sources":["../../src/unplugin/transform.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"transform.js","sourceRoot":"","sources":["../../src/unplugin/transform.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,uBAAuB,CAAC;AAC9C,OAAO,EAAE,iBAAiB,EAAE,MAAM,OAAO,CAAC;AAC1C,OAAO,WAAW,MAAM,cAAc,CAAC;AACvC,OAAO,SAAS,MAAM,WAAW,CAAC;AAElC,OAAO,EACL,QAAQ,EACR,iBAAiB,EACjB,YAAY,EACZ,iBAAiB,EACjB,iBAAiB,EACjB,mBAAmB,GACpB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,oBAAoB,EAEpB,cAAc,GACf,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,UAAU,EAA6B,MAAM,YAAY,CAAC;AACnE,OAAO,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AACjD,OAAO,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAE3D,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAYlD;;;;;;GAMG;AACH,MAAM,eAAe;IACnB,OAAO,CAAS;IACC,MAAM,CAAS;IACf,IAAI,GAAc,EAAE,CAAC;IAEtC,YAAY,QAAgB,EAAE,MAAc;QAC1C,IAAI,CAAC,OAAO,GAAG,QAAQ,CAAC;QACxB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED,KAAK,CAAC,KAAsB,EAAE,MAAkB;QAC9C,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,MAAM,KAAK,SAAS;YAAE,OAAO;QACvD,MAAM,CAAC,GAAG,IAAI,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACxC,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;YACtB,IAAI,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,GAAG,EAAE,CAAC;gBACtB,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;YAChC,CAAC;iBAAM,CAAC;gBACN,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;YACtC,CAAC;QACH,CAAC;QACD,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACzB,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;QAC3C,CAAC;QACD,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC;QAC5B,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IAClG,CAAC;IAED,uEAAuE;IACvE,GAAG;QACD,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC;QACxC,MAAM,KAAK,GAAG,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC;QACvC,OAAO,SAAS,CACd,KAAwC,EACxC,GAAG,EAAE,CAAC,IAAI,CACsB,CAAC;IACrC,CAAC;CACF;AAED,2DAA2D;AAC3D,MAAM,sBAAsB,GAAG,4CAA4C,CAAC;AAE5E;;;;GAIG;AACH,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,KAAK,GAAG,CAAC;AAE1D,+EAA+E;AAC/E,MAAM,sBAAsB,GAAG,KAAK,CAAC;AACrC,MAAM,WAAW,GAAG,IAAI,GAAG,EAAyC,CAAC;AACrE,IAAI,mBAAmB,GAAG,KAAK,CAAC;AAEhC,SAAS,SAAS,CAAI,KAAa,EAAE,EAAW;IAC9C,IAAI,CAAC,MAAM;QAAE,OAAO,EAAE,EAAE,CAAC;IACzB,MAAM,EAAE,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;IAC7B,MAAM,IAAI,GAAG,GAAS,EAAE;QACtB,MAAM,EAAE,GAAG,WAAW,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC;QAClC,MAAM,GAAG,GAAG,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;QAC1D,GAAG,CAAC,EAAE,IAAI,EAAE,CAAC;QACb,GAAG,CAAC,KAAK,EAAE,CAAC;QACZ,WAAW,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IAC9B,CAAC,CAAC;IACF,IAAI,CAAC,mBAAmB,EAAE,CAAC;QACzB,mBAAmB,GAAG,IAAI,CAAC;QAC3B,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE;YACtB,MAAM,IAAI,GAAG,CAAC,GAAG,WAAW,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YAC1E,KAAK,MAAM,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC;gBACzC,GAAG,CAAC,UAAU,IAAI,KAAK,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,KAAK,UAAU,CAAC,CAAC;YAClE,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IACD,MAAM,CAAC,GAAG,EAAE,EAAE,CAAC;IACf,IAAI,CAAC,YAAY,OAAO,EAAE,CAAC;QACzB,OAAO,CAAC,CAAC,OAAO,CAAC,IAAI,CAAM,CAAC;IAC9B,CAAC;IACD,IAAI,EAAE,CAAC;IACP,OAAO,CAAC,CAAC;AACX,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,EAAU,EAAE,OAAkC;IAC5E,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAE,CAAC;QAAE,OAAO,KAAK,CAAC;IAC9C,IAAI,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC;QAAE,OAAO,KAAK,CAAC;IAC9C,IAAI,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC;QAAE,OAAO,KAAK,CAAC;IACvC,IAAI,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC;QAAE,OAAO,KAAK,CAAC;IAE7E,IAAI,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,EAAE,OAAO,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;QACzF,OAAO,KAAK,CAAC;IACf,IACE,OAAO,EAAE,OAAO;QAChB,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,EAAE,OAAO,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;QAEtF,OAAO,KAAK,CAAC;IAEf,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,GAAG,CAAC,GAAW;IAC7B,uDAAuD;IACvD,OAAO,CAAC,GAAG,CAAC,kBAAkB,GAAG,EAAE,CAAC,CAAC;AACvC,CAAC;AAED,SAAS,IAAI,CAAC,GAAW;IACvB,uDAAuD;IACvD,OAAO,CAAC,IAAI,CAAC,kBAAkB,GAAG,EAAE,CAAC,CAAC;AACxC,CAAC;AAOD;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,IAAY,EACZ,EAAU,EACV,OAAyB;IAEzB,MAAM,MAAM,GAAG,MAAM,oBAAoB,CAAC,IAAI,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC;IAC7D,OAAO,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC;AAC9C,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,IAAY,EACZ,EAAU,EACV,OAAyB;IAEzB,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,KAAK,IAAI,CAAC;IACzC,MAAM,YAAY,GAAG,OAAO,CAAC,YAAY,KAAK,IAAI,CAAC;IACnD,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAC1B,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IAE7C,uEAAuE;IACvE,wEAAwE;IACxE,0EAA0E;IAC1E,kDAAkD;IAClD,IAAI,cAAc,GAA2C,IAAI,CAAC;IAClE,IAAI,OAAO,CAAC,KAAK,KAAK,KAAK,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;QACvD,cAAc,GAAG,SAAS,CAAC,OAAO,EAAE,GAAG,EAAE,CACvC,mBAAmB,CAAC,IAAI,EAAE,OAAO,OAAO,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CACzF,CAAC;QACF,IAAI,cAAc,KAAK,IAAI,EAAE,CAAC;YAC5B,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,KAAK,EAAE,cAAc,CAAC,MAAM,CAAC,CAAC;YAC1D,IAAI,OAAO,EAAE,CAAC;gBACZ,GAAG,CAAC,iCAAiC,EAAE,EAAE,CAAC,CAAC;YAC7C,CAAC;QACH,CAAC;IACH,CAAC;IAED,uEAAuE;IACvE,sEAAsE;IACtE,iEAAiE;IACjE,yEAAyE;IACzE,sEAAsE;IACtE,2CAA2C;IAC3C,MAAM,YAAY,GAAG,IAAI,GAAG,EAAU,CAAC;IACvC,IAAI,kBAAkB,GAAG,CAAC,CAAC;IAC3B,IAAI,YAAY,IAAI,cAAc,KAAK,IAAI,IAAI,cAAc,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACjF,MAAM,aAAa,GAAG,MAAM,SAAS,CAAC,eAAe,EAAE,GAAG,EAAE,CAC1D,qBAAqB,CAAC,cAAc,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,CAAC,CAC9D,CAAC;QACF,MAAM,WAAW,GAAW,EAAE,CAAC;QAC/B,KAAK,MAAM,CAAC,IAAI,aAAa,EAAE,CAAC;YAC9B,MAAM,IAAI,GAAG,SAAS,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,IAAI,GAAG,CAAC;YAC5C,MAAM,EAAE,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YACxC,IAAI,EAAE,KAAK,CAAC,CAAC;gBAAE,SAAS;YACxB,MAAM,IAAI,GAAG,YAAY,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC;YAC5E,WAAW,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC,IAAI,MAAM,IAAI,GAAG,EAAE,CAAC,CAAC;YAC3F,kBAAkB,EAAE,CAAC;YACrB,KAAK,MAAM,MAAM,IAAI,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE,CAAC;gBACtD,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YAC3B,CAAC;YACD,IAAI,OAAO,EAAE,CAAC;gBACZ,GAAG,CAAC,OAAO,CAAC,CAAC,IAAI,4BAA4B,CAAC,CAAC;YACjD,CAAC;QACH,CAAC;QACD,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QAC1B,IAAI,kBAAkB,GAAG,CAAC,EAAE,CAAC;YAC3B,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YAC1B,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAC5B,CAAC;IACH,CAAC;IAED,2EAA2E;IAC3E,qEAAqE;IACrE,2BAA2B;IAC3B,MAAM,eAAe,GAAG,GAA2B,EAAE;QACnD,IAAI,MAAM,CAAC,OAAO,KAAK,IAAI;YAAE,OAAO,IAAI,CAAC;QACzC,IAAI,kBAAkB,GAAG,CAAC,EAAE,CAAC;YAC3B,OAAO,CAAC,YAAY,EAAE,CAAC;gBACrB,KAAK,EAAE,CAAC;gBACR,OAAO,EAAE,cAAc,EAAE,OAAO,CAAC,MAAM,IAAI,CAAC;gBAC5C,SAAS,EAAE,kBAAkB;gBAC7B,MAAM,EAAE,CAAC;aACV,CAAC,CAAC;YACH,MAAM,MAAM,GAAG,oBAAoB,CAAC,MAAM,CAAC,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;YAC3F,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;gBACpB,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;YAChD,CAAC;QACH,CAAC;QACD,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,OAAO,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,EAAE,EAAE,CAAC;IACrD,CAAC,CAAC;IAEF,uBAAuB;IACvB,IAAI,YAAY,EAAE,CAAC;QACjB,mEAAmE;QACnE,4DAA4D;QAC5D,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;YAAE,OAAO,eAAe,EAAE,CAAC;IAC7E,CAAC;SAAM,CAAC;QACN,sEAAsE;QACtE,gEAAgE;QAChE,wEAAwE;QACxE,oEAAoE;QACpE,wEAAwE;QACxE,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;YACjF,OAAO,eAAe,EAAE,CAAC;IAC7B,CAAC;IAED,yEAAyE;IACzE,0EAA0E;IAC1E,6DAA6D;IAC7D,IAAI,CAAC,CAAC,MAAM,SAAS,CAAC,eAAe,EAAE,GAAG,EAAE,CAAC,gBAAgB,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;QACjF,OAAO,eAAe,EAAE,CAAC;IAE3B,0EAA0E;IAC1E,+EAA+E;IAC/E,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC;IACxB,IAAI,OAA2B,CAAC;IAChC,MAAM,aAAa,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;IACxC,IAAI,CAAC;QACH,OAAO,GAAG,MAAM,SAAS,CAAC,UAAU,EAAE,GAAG,EAAE,CAAC,eAAe,CAAC,EAAE,EAAE,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC;IACrF,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,MAAM,GAAG,GAAG,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QACvD,oEAAoE;QACpE,+DAA+D;QAC/D,IAAI,YAAY,EAAE,CAAC;YACjB,IAAI,OAAO,EAAE,CAAC;gBACZ,IAAI,CAAC,YAAY,EAAE,KAAK,GAAG,EAAE,CAAC,CAAC;YACjC,CAAC;YACD,OAAO,eAAe,EAAE,CAAC;QAC3B,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,8CAA8C,EAAE,KAAK,GAAG,EAAE,CAAC,CAAC;IAC9E,CAAC;IACD,MAAM,UAAU,GAAG,WAAW,CAAC,GAAG,EAAE,GAAG,aAAa,CAAC;IACrD,IAAI,UAAU,IAAI,sBAAsB,EAAE,CAAC;QACzC,sEAAsE;QACtE,wEAAwE;QACxE,oEAAoE;QACpE,oDAAoD;QACpD,IAAI,CACF,gBAAgB,EAAE,SAAS,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,+BAA+B;YACtF,yFAAyF;YACzF,sFAAsF;YACtF,+DAA+D,CAClE,CAAC;IACJ,CAAC;IACD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,eAAe,EAAE,CAAC;IAEnD,+FAA+F;IAC/F,wEAAwE;IACxE,IAAI,WAAW,GAAG,CAAC,CAAC;IACpB,MAAM,QAAQ,GAAG,SAAS,CAAC,SAAS,EAAE,GAAG,EAAE,CACzC,cAAc,CAAC,OAAO,EAAE;QACtB,IAAI;QACJ,OAAO,CAAC,UAAU,EAAE,KAAK;YACvB,WAAW,EAAE,CAAC;YACd,IAAI,CACF,sBAAsB,UAAU,QAAQ,EAAE,KAAK,KAAK,CAAC,OAAO,qBAAqB,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY,QAAQ,CAC1H,CAAC;QACJ,CAAC;KACF,CAAC,CACH,CAAC;IAEF,IAAI,OAAO,EAAE,CAAC;QACZ,IAAI,YAAY,EAAE,CAAC;YACjB,GAAG,CACD,qBAAqB,EAAE,KAAK,OAAO,CAAC,MAAM,cAAc,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,SAAS,CAC/F,CAAC;QACJ,CAAC;QACD,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;YACzB,MAAM,OAAO,GAAG,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC;YACpC,MAAM,QAAQ,GAAG,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,OAAO,OAAO,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;YACjF,GAAG,CAAC,OAAO,CAAC,CAAC,UAAU,GAAG,QAAQ,EAAE,CAAC,CAAC;QACxC,CAAC;QACD,IAAI,WAAW,GAAG,CAAC,EAAE,CAAC;YACpB,GAAG,CAAC,OAAO,WAAW,mBAAmB,CAAC,CAAC;QAC7C,CAAC;IACH,CAAC;IAED,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,eAAe,EAAE,CAAC;IAEpD,gEAAgE;IAChE,4DAA4D;IAC5D,OAAO,CAAC,YAAY,EAAE,CAAC;QACrB,KAAK,EAAE,CAAC;QACR,OAAO,EAAE,OAAO,CAAC,MAAM,GAAG,CAAC,cAAc,EAAE,OAAO,CAAC,MAAM,IAAI,CAAC,CAAC;QAC/D,SAAS,EAAE,QAAQ,CAAC,MAAM,GAAG,kBAAkB;QAC/C,MAAM,EAAE,WAAW;KACpB,CAAC,CAAC;IAEH,yEAAyE;IACzE,gEAAgE;IAChE,MAAM,WAAW,GAAG,oBAAoB,CAAC,QAAQ,CAAC,CAAC;IACnD,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IACzB,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IACzB,KAAK,MAAM,MAAM,IAAI,YAAY,EAAE,CAAC;QAClC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAC1B,CAAC;IAED,0EAA0E;IAC1E,0EAA0E;IAC1E,uEAAuE;IACvE,yEAAyE;IACzE,yCAAyC;IACzC,IAAI,YAAY,EAAE,CAAC;QACjB,4DAA4D;QAC5D,MAAM,kBAAkB,GAAG,IAAI,GAAG,EAAU,CAAC;QAC7C,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;YACzB,MAAM,OAAO,GAAG,IAAI,MAAM,CAAC,MAAM,CAAC,CAAC,UAAU,yBAAyB,CAAC,CAAC;YACxE,IAAI,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;gBACjC,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;YACvC,CAAC;QACH,CAAC;QACD,MAAM,kBAAkB,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;QACxF,MAAM,uBAAuB,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;QAE9F,MAAM,KAAK,GAAW,EAAE,CAAC;QACzB,yEAAyE;QACzE,sEAAsE;QACtE,kCAAkC;QAClC,IAAI,kBAAkB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAClC,KAAK,CAAC,IAAI,CACR,GAAG,0BAA0B,CAAC,MAAM,CAAC,OAAO,EAAE,kBAAkB,EAAE;gBAChE,SAAS,EAAE,OAAO,CAAC,SAAS;aAC7B,CAAC,CACH,CAAC;QACJ,CAAC;QACD,iCAAiC;QACjC,IAAI,uBAAuB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvC,KAAK,CAAC,IAAI,CACR,GAAG,wBAAwB,CAAC,MAAM,CAAC,OAAO,EAAE,uBAAuB,EAAE;gBACnE,SAAS,EAAE,OAAO,CAAC,SAAS;aAC7B,CAAC,CACH,CAAC;QACJ,CAAC;QACD,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACtB,CAAC;SAAM,CAAC;QACN,MAAM,CAAC,KAAK,CACV,0BAA0B,CAAC,MAAM,CAAC,OAAO,EAAE,QAAQ,EAAE,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC,CACvF,CAAC;IACJ,CAAC;IAED,MAAM,MAAM,GAAG,oBAAoB,CAAC,MAAM,CAAC,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;IAC1F,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;QACpB,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;IAChD,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,OAAO,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,EAAE,EAAE,CAAC;AACrD,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,0EAA0E;AAC1E,SAAS,oBAAoB,CAC3B,IAAY,EACZ,WAAwB,EACxB,IAAiB,EACjB,YAAoB,kBAAkB;IAEtC,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;QACpB,IAAI,WAAW,CAAC,IAAI,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC;QACxC,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC;YAAE,OAAO,IAAI,CAAC;QAC1C,MAAM,KAAK,GAAG,CAAC,GAAG,WAAW,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjD,OAAO,YAAY,KAAK,YAAY,SAAS,MAAM,CAAC;IACtD,CAAC;IACD,+EAA+E;IAC/E,mEAAmE;IACnE,mEAAmE;IACnE,wEAAwE;IACxE,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;QAAE,OAAO,IAAI,CAAC;IACzC,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,qBAAqB,CAAC,EAAE,CAAC;QAC1C,MAAM,CAAC,IAAI,CAAC,iBAAiB,EAAE,mBAAmB,CAAC,CAAC;IACtD,CAAC;IACD,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,CAAC;QACtC,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IACjC,CAAC;IACD,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,CAAC;QACtC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACxB,CAAC;IACD,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CAAC,EAAE,CAAC;QACnE,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IACjC,CAAC;IACD,OAAO,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;AAC7D,CAAC;AAED;;;;GAIG;AACH,SAAS,iBAAiB,CAAC,IAAY,EAAE,SAAiB;IACxD,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,KAAK,IAAI,CAAC,GAAG,SAAS,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACjD,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG;YAAE,KAAK,EAAE,CAAC;aACxB,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;YACzB,KAAK,EAAE,CAAC;YACR,IAAI,KAAK,KAAK,CAAC;gBAAE,OAAO,CAAC,CAAC;QAC5B,CAAC;IACH,CAAC;IACD,OAAO,CAAC,CAAC,CAAC;AACZ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,aAAa,CAC3B,IAAY,EACZ,OAA6B,EAC7B,OAA6C;IAE7C,OAAO,UAAU,CAAC,IAAI,EAAE,0BAA0B,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;AAC9E,CAAC;AAED;;;;;GAKG;AACH,SAAS,0BAA0B,CACjC,IAAY,EACZ,OAA6B,EAC7B,OAA6C;IAE7C,MAAM,KAAK,GAAW,EAAE,CAAC;IACzB,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,sFAAsF;QACtF,MAAM,aAAa,GAAG,IAAI,MAAM,CAC9B,OAAO,MAAM,CAAC,UAAU,2DAA2D,CACpF,CAAC;QACF,MAAM,KAAK,GAAG,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACvC,IAAI,CAAC,KAAK;YAAE,SAAS;QAErB,0DAA0D;QAC1D,MAAM,cAAc,GAAG,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;QACzD,MAAM,eAAe,GAAG,iBAAiB,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;QAChE,IAAI,eAAe,KAAK,CAAC,CAAC;YAAE,SAAS;QAErC,MAAM,aAAa,GAAG,IAAI;aACvB,KAAK,CAAC,cAAc,GAAG,CAAC,EAAE,eAAe,CAAC;aAC1C,IAAI,EAAE;aACN,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QACxB,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAC9B,KAAK,CAAC,IAAI,CAAC;YACT,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,GAAG,EAAE,eAAe,GAAG,CAAC;YACxB,IAAI,EAAE,MAAM,GAAG,YAAY,CAAC,aAAa,EAAE,MAAM,EAAE,OAAO,CAAC;SAC5D,CAAC,CAAC;IACL,CAAC;IACD,KAAK,CAAC,IAAI,CAAC,GAAG,+BAA+B,CAAC,IAAI,CAAC,CAAC,CAAC;IACrD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,iBAAiB,CAAC,IAAY,EAAE,KAAa;IAC3D,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,iBAAiB,CAAC,IAAI,EAAE,KAAK,EAAE;YAC1C,WAAW,EAAE,QAAQ;YACrB,UAAU,EAAE,QAAQ;SACrB,CAAC,CAAC;QACH,OAAO,IAAI,CAAC,GAAG,CAAC;IAClB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,CAAC,CAAC,CAAC;IACZ,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,yBAAyB,CACvC,IAAY,EACZ,OAA6B,EAC7B,OAA6C;IAE7C,OAAO,UAAU,CAAC,IAAI,EAAE,wBAAwB,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;AAC5E,CAAC;AAED,8EAA8E;AAC9E,SAAS,wBAAwB,CAC/B,IAAY,EACZ,OAA6B,EAC7B,OAA6C;IAE7C,MAAM,KAAK,GAAW,EAAE,CAAC;IACzB,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,MAAM,WAAW,GAAG,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC;QAC7E,uEAAuE;QACvE,MAAM,aAAa,GAAG,IAAI,MAAM,CAC9B,wCAAwC,WAAW,2BAA2B,CAC/E,CAAC;QACF,MAAM,KAAK,GAAG,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACvC,IAAI,CAAC,KAAK;YAAE,SAAS;QAErB,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;QAC/C,MAAM,MAAM,GAAG,iBAAiB,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QACjD,IAAI,MAAM,KAAK,CAAC,CAAC;YAAE,SAAS;QAE5B,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC;QACzD,KAAK,CAAC,IAAI,CAAC;YACT,KAAK,EAAE,QAAQ;YACf,GAAG,EAAE,MAAM;YACX,IAAI,EAAE,YAAY,CAAC,YAAY,EAAE,MAAM,EAAE,OAAO,CAAC;SAClD,CAAC,CAAC;IACL,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,mBAAmB,CAAC,IAAY;IAC9C,OAAO,UAAU,CAAC,IAAI,EAAE,+BAA+B,CAAC,IAAI,CAAC,CAAC,CAAC;AACjE,CAAC;AAED,iFAAiF;AACjF,SAAS,+BAA+B,CAAC,IAAY;IACnD,8DAA8D;IAC9D,MAAM,aAAa,GAAG,uDAAuD,CAAC;IAC9E,MAAM,KAAK,GAAW,EAAE,CAAC;IACzB,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC;QACjD,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAC/B,MAAM,KAAK,GAAG,OAAO;aAClB,KAAK,CAAC,GAAG,CAAC;aACV,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;aACpB,MAAM,CAAC,OAAO,CAAC,CAAC;QACnB,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC;QACvD,MAAM,IAAI,GACR,SAAS,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,yBAAyB,CAAC;QAC1F,IAAI,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;YACtB,KAAK,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,GAAG,EAAE,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;QAC/E,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC"}
|