zod-compiler 1.0.10 → 1.0.12
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/unplugin/dep-graph.d.ts +15 -1
- package/dist/unplugin/dep-graph.d.ts.map +1 -1
- package/dist/unplugin/dep-graph.js +157 -87
- package/dist/unplugin/dep-graph.js.map +1 -1
- package/dist/unplugin/disk-cache.d.ts +12 -1
- package/dist/unplugin/disk-cache.d.ts.map +1 -1
- package/dist/unplugin/disk-cache.js +12 -1
- package/dist/unplugin/disk-cache.js.map +1 -1
- package/dist/unplugin/edits.d.ts +30 -0
- package/dist/unplugin/edits.d.ts.map +1 -0
- package/dist/unplugin/edits.js +40 -0
- package/dist/unplugin/edits.js.map +1 -0
- package/dist/unplugin/hoist.d.ts +8 -0
- package/dist/unplugin/hoist.d.ts.map +1 -1
- package/dist/unplugin/hoist.js +9 -8
- package/dist/unplugin/hoist.js.map +1 -1
- package/dist/unplugin/index.d.ts.map +1 -1
- package/dist/unplugin/index.js +14 -15
- package/dist/unplugin/index.js.map +1 -1
- package/dist/unplugin/transform.d.ts +20 -0
- package/dist/unplugin/transform.d.ts.map +1 -1
- package/dist/unplugin/transform.js +148 -47
- package/dist/unplugin/transform.js.map +1 -1
- package/package.json +4 -1
|
@@ -21,6 +21,20 @@
|
|
|
21
21
|
* `complete: false` and the caller falls back to the superset. A static
|
|
22
22
|
* crawl may only replace the superset when it provably covers everything
|
|
23
23
|
* the file can load.
|
|
24
|
+
*
|
|
25
|
+
* Cost discipline (this runs serialized on the bundler's main process, once
|
|
26
|
+
* per discovery file, over closures that reach thousands of files):
|
|
27
|
+
* - every existence probe uses `statSync(p, { throwIfNoEntry: false })` —
|
|
28
|
+
* a thrown ENOENT pays V8 error-plus-stack construction, and a cold crawl
|
|
29
|
+
* issues these probes by the million (the dominant cost in field samples);
|
|
30
|
+
* - resolution is memoized at every level: realpath per path, createRequire
|
|
31
|
+
* per directory, resolved specifier per (directory, specifier), and the
|
|
32
|
+
* full edge list per file (mtime-validated) — repeat crawls over the
|
|
33
|
+
* shared core graph are Map lookups plus one cheap stat per file;
|
|
34
|
+
* - the BFS aborts the moment the graph becomes unanalyzable: the caller
|
|
35
|
+
* discards an incomplete result for the superset anyway, so finishing the
|
|
36
|
+
* crawl would be pure waste (and incomplete is the COMMON outcome on
|
|
37
|
+
* large graphs — one dynamic import anywhere poisons the whole closure).
|
|
24
38
|
*/
|
|
25
39
|
export interface StaticDeps {
|
|
26
40
|
/** Absolute real paths of first-party files reachable from the entry. */
|
|
@@ -28,7 +42,7 @@ export interface StaticDeps {
|
|
|
28
42
|
/** False when the graph could not be fully analyzed — use the superset. */
|
|
29
43
|
complete: boolean;
|
|
30
44
|
}
|
|
31
|
-
/** Reset the per-process
|
|
45
|
+
/** Reset the per-process dep-graph memos (watch-mode file changes). */
|
|
32
46
|
export declare function resetDepGraphMemo(): void;
|
|
33
47
|
/**
|
|
34
48
|
* Compute the static first-party dependency closure of `entryFile`.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dep-graph.d.ts","sourceRoot":"","sources":["../../src/unplugin/dep-graph.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"dep-graph.d.ts","sourceRoot":"","sources":["../../src/unplugin/dep-graph.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AAOH,MAAM,WAAW,UAAU;IACzB,yEAAyE;IACzE,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,2EAA2E;IAC3E,QAAQ,EAAE,OAAO,CAAC;CACnB;AAgCD,uEAAuE;AACvE,wBAAgB,iBAAiB,IAAI,IAAI,CAKxC;AA6LD;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,UAAU,CAwB/D"}
|
|
@@ -21,6 +21,20 @@
|
|
|
21
21
|
* `complete: false` and the caller falls back to the superset. A static
|
|
22
22
|
* crawl may only replace the superset when it provably covers everything
|
|
23
23
|
* the file can load.
|
|
24
|
+
*
|
|
25
|
+
* Cost discipline (this runs serialized on the bundler's main process, once
|
|
26
|
+
* per discovery file, over closures that reach thousands of files):
|
|
27
|
+
* - every existence probe uses `statSync(p, { throwIfNoEntry: false })` —
|
|
28
|
+
* a thrown ENOENT pays V8 error-plus-stack construction, and a cold crawl
|
|
29
|
+
* issues these probes by the million (the dominant cost in field samples);
|
|
30
|
+
* - resolution is memoized at every level: realpath per path, createRequire
|
|
31
|
+
* per directory, resolved specifier per (directory, specifier), and the
|
|
32
|
+
* full edge list per file (mtime-validated) — repeat crawls over the
|
|
33
|
+
* shared core graph are Map lookups plus one cheap stat per file;
|
|
34
|
+
* - the BFS aborts the moment the graph becomes unanalyzable: the caller
|
|
35
|
+
* discards an incomplete result for the superset anyway, so finishing the
|
|
36
|
+
* crawl would be pure waste (and incomplete is the COMMON outcome on
|
|
37
|
+
* large graphs — one dynamic import anywhere poisons the whole closure).
|
|
24
38
|
*/
|
|
25
39
|
import * as fs from "node:fs";
|
|
26
40
|
import { createRequire } from "node:module";
|
|
@@ -32,92 +46,119 @@ const NODE_MODULES_SEGMENT = `${path.sep}node_modules${path.sep}`;
|
|
|
32
46
|
const SKIP_SPECIFIER = /^(?:node:|data:|virtual:|\0)/;
|
|
33
47
|
/** Runaway guard — graphs larger than this fall back to the superset. */
|
|
34
48
|
const MAX_FILES = 10_000;
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
49
|
+
const INCOMPLETE = { deps: [], complete: false };
|
|
50
|
+
/**
|
|
51
|
+
* Per-process memos. The file node memo is revalidated by mtime on every
|
|
52
|
+
* visit; the resolution memos (specifier, realpath, require) depend on the
|
|
53
|
+
* filesystem layout rather than file contents and are only dropped by
|
|
54
|
+
* resetDepGraphMemo() — the same wholesale invalidation watch mode already
|
|
55
|
+
* applies to the module cache (a memoized resolution can only go stale when
|
|
56
|
+
* files appear/move, which fires watchChange).
|
|
57
|
+
*/
|
|
58
|
+
const nodeMemo = new Map();
|
|
59
|
+
const resolveMemo = new Map();
|
|
60
|
+
const realpathMemo = new Map();
|
|
61
|
+
const requireMemo = new Map();
|
|
62
|
+
/** Reset the per-process dep-graph memos (watch-mode file changes). */
|
|
38
63
|
export function resetDepGraphMemo() {
|
|
39
|
-
|
|
64
|
+
nodeMemo.clear();
|
|
65
|
+
resolveMemo.clear();
|
|
66
|
+
realpathMemo.clear();
|
|
67
|
+
requireMemo.clear();
|
|
40
68
|
}
|
|
41
69
|
const STATIC_SPECIFIER = /(?:\bfrom\s*|\bimport\s+|\bimport\s*\(\s*|\brequire\s*\(\s*)["']([^"'\n]+)["']/g;
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
catch {
|
|
49
|
-
scanMemo.set(filePath, null);
|
|
50
|
-
return null;
|
|
51
|
-
}
|
|
52
|
-
const memo = scanMemo.get(filePath);
|
|
53
|
-
if (memo !== undefined && memo !== null && memo.mtimeMs === mtimeMs)
|
|
54
|
-
return memo;
|
|
55
|
-
let source;
|
|
70
|
+
// No /g flag: `.test()` on a global regex resumes from lastIndex of the
|
|
71
|
+
// PREVIOUS file's match, silently missing dynamic imports (a missed
|
|
72
|
+
// detection records a falsely-complete dep set — stale cache).
|
|
73
|
+
const DYNAMIC_CALL = /\b(?:import|require)\s*\(\s*(?!["'])[^)\s]/;
|
|
74
|
+
/** statSync that reports ENOENT as undefined instead of an exception. */
|
|
75
|
+
function tryStat(p) {
|
|
56
76
|
try {
|
|
57
|
-
|
|
77
|
+
return fs.statSync(p, { throwIfNoEntry: false });
|
|
58
78
|
}
|
|
59
79
|
catch {
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
const specifiers = [];
|
|
64
|
-
for (const m of source.matchAll(STATIC_SPECIFIER)) {
|
|
65
|
-
const spec = m[1];
|
|
66
|
-
if (spec)
|
|
67
|
-
specifiers.push(spec);
|
|
80
|
+
// Non-ENOENT errors (ENOTDIR from probing `file.ts/index.ts`, EACCES):
|
|
81
|
+
// treat as absent.
|
|
82
|
+
return undefined;
|
|
68
83
|
}
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
const scan = {
|
|
73
|
-
mtimeMs,
|
|
74
|
-
specifiers,
|
|
75
|
-
hasDynamic: DYNAMIC_CALL.test(source),
|
|
76
|
-
};
|
|
77
|
-
scanMemo.set(filePath, scan);
|
|
78
|
-
return scan;
|
|
84
|
+
}
|
|
85
|
+
function tryFile(p) {
|
|
86
|
+
return tryStat(p)?.isFile() ? p : null;
|
|
79
87
|
}
|
|
80
88
|
/** Probe a path (possibly extensionless) to an existing file. */
|
|
81
89
|
function probeFile(base) {
|
|
82
|
-
const
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
90
|
+
const hasExtension = path.extname(base) !== "";
|
|
91
|
+
if (hasExtension) {
|
|
92
|
+
if (tryFile(base))
|
|
93
|
+
return base;
|
|
94
|
+
// Extensioned path that doesn't exist as-is: TS source referenced with a
|
|
95
|
+
// .js specifier (nodenext style). Probe the extension-family swap before
|
|
96
|
+
// the append/index probes — in nodenext codebases this is the common hit
|
|
97
|
+
// and skips ~16 dead probes per import.
|
|
98
|
+
if (/\.[cm]?js$/.test(base)) {
|
|
99
|
+
const hit = tryFile(base.replace(/\.([cm]?)js$/, ".$1ts")) ??
|
|
100
|
+
tryFile(base.replace(/\.[cm]?js$/, ".tsx"));
|
|
101
|
+
if (hit)
|
|
102
|
+
return hit;
|
|
88
103
|
}
|
|
89
|
-
}
|
|
90
|
-
if (path.extname(base) !== "" && tryStat(base))
|
|
91
|
-
return base;
|
|
104
|
+
}
|
|
92
105
|
for (const ext of SOURCE_EXTENSIONS) {
|
|
93
|
-
const hit =
|
|
106
|
+
const hit = tryFile(base + ext);
|
|
94
107
|
if (hit)
|
|
95
108
|
return hit;
|
|
96
109
|
}
|
|
97
110
|
for (const ext of SOURCE_EXTENSIONS) {
|
|
98
|
-
const hit =
|
|
111
|
+
const hit = tryFile(path.join(base, `index${ext}`));
|
|
99
112
|
if (hit)
|
|
100
113
|
return hit;
|
|
101
114
|
}
|
|
102
|
-
//
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
115
|
+
// Extensionless path that exists exactly (e.g. ./bin/cli).
|
|
116
|
+
return hasExtension ? null : tryFile(base);
|
|
117
|
+
}
|
|
118
|
+
function realpathOf(p) {
|
|
119
|
+
let real = realpathMemo.get(p);
|
|
120
|
+
if (real === undefined) {
|
|
121
|
+
try {
|
|
122
|
+
real = fs.realpathSync(p);
|
|
123
|
+
}
|
|
124
|
+
catch {
|
|
125
|
+
real = p; // keep the unresolved path
|
|
126
|
+
}
|
|
127
|
+
realpathMemo.set(p, real);
|
|
109
128
|
}
|
|
110
|
-
return
|
|
129
|
+
return real;
|
|
130
|
+
}
|
|
131
|
+
function firstPartyOrNull(resolved) {
|
|
132
|
+
const real = realpathOf(resolved);
|
|
133
|
+
return real.includes(NODE_MODULES_SEGMENT) ? null : real;
|
|
134
|
+
}
|
|
135
|
+
/** Node resolution is a function of the importing DIRECTORY, not the file. */
|
|
136
|
+
function requireFor(dir) {
|
|
137
|
+
let req = requireMemo.get(dir);
|
|
138
|
+
if (req === undefined) {
|
|
139
|
+
req = createRequire(path.join(dir, "__zod_compiler_resolve__.js"));
|
|
140
|
+
requireMemo.set(dir, req);
|
|
141
|
+
}
|
|
142
|
+
return req;
|
|
111
143
|
}
|
|
112
144
|
/**
|
|
113
|
-
* Resolve one specifier from a
|
|
145
|
+
* Resolve one specifier from a directory. Returns:
|
|
114
146
|
* - an absolute path (first-party file to record + crawl)
|
|
115
147
|
* - null when the dep is intentionally out of scope (node_modules, builtins)
|
|
116
148
|
* - "incomplete" when resolution failed and the graph cannot be trusted
|
|
117
149
|
*/
|
|
118
|
-
function resolveSpecifier(rawSpec,
|
|
150
|
+
function resolveSpecifier(rawSpec, fromDir, aliases) {
|
|
119
151
|
if (SKIP_SPECIFIER.test(rawSpec))
|
|
120
152
|
return null;
|
|
153
|
+
const memoKey = `${fromDir}\0${rawSpec}`;
|
|
154
|
+
const memoized = resolveMemo.get(memoKey);
|
|
155
|
+
if (memoized !== undefined)
|
|
156
|
+
return memoized;
|
|
157
|
+
const result = resolveSpecifierUncached(rawSpec, fromDir, aliases);
|
|
158
|
+
resolveMemo.set(memoKey, result);
|
|
159
|
+
return result;
|
|
160
|
+
}
|
|
161
|
+
function resolveSpecifierUncached(rawSpec, fromDir, aliases) {
|
|
121
162
|
// Vite-style resource queries (./logo.svg?url, ./shader.glsl?raw) resolve
|
|
122
163
|
// to the underlying file.
|
|
123
164
|
const q = rawSpec.indexOf("?");
|
|
@@ -125,7 +166,7 @@ function resolveSpecifier(rawSpec, fromFile, aliases) {
|
|
|
125
166
|
if (spec === "")
|
|
126
167
|
return null;
|
|
127
168
|
if (spec.startsWith("./") || spec.startsWith("../")) {
|
|
128
|
-
const hit = probeFile(path.resolve(
|
|
169
|
+
const hit = probeFile(path.resolve(fromDir, spec));
|
|
129
170
|
return hit === null ? "incomplete" : firstPartyOrNull(hit);
|
|
130
171
|
}
|
|
131
172
|
for (const [prefix, target] of Object.entries(aliases)) {
|
|
@@ -136,11 +177,11 @@ function resolveSpecifier(rawSpec, fromFile, aliases) {
|
|
|
136
177
|
}
|
|
137
178
|
}
|
|
138
179
|
// Bare specifier (package) or package.json "imports" (#...): node
|
|
139
|
-
// resolution from the importing
|
|
180
|
+
// resolution from the importing directory. node_modules results are out of
|
|
140
181
|
// scope (zod's version is part of the cache key); symlinked workspace
|
|
141
182
|
// packages realpath outside node_modules and are crawled as first-party.
|
|
142
183
|
try {
|
|
143
|
-
const resolved =
|
|
184
|
+
const resolved = requireFor(fromDir).resolve(spec);
|
|
144
185
|
if (!path.isAbsolute(resolved))
|
|
145
186
|
return null; // node builtin
|
|
146
187
|
return firstPartyOrNull(resolved);
|
|
@@ -155,15 +196,53 @@ function resolveSpecifier(rawSpec, fromFile, aliases) {
|
|
|
155
196
|
return spec.startsWith("#") ? "incomplete" : null;
|
|
156
197
|
}
|
|
157
198
|
}
|
|
158
|
-
|
|
159
|
-
|
|
199
|
+
/**
|
|
200
|
+
* Scan + resolve one file into its edge list. Memoized by mtime, so the
|
|
201
|
+
* shared core graph is read and resolved once per process — each entry's
|
|
202
|
+
* closure walk after that is one cheap stat plus Map lookups per file.
|
|
203
|
+
* Returns null for unreadable files.
|
|
204
|
+
*/
|
|
205
|
+
function fileNode(filePath) {
|
|
206
|
+
const stat = tryStat(filePath);
|
|
207
|
+
if (stat === undefined || !stat.isFile()) {
|
|
208
|
+
nodeMemo.set(filePath, null);
|
|
209
|
+
return null;
|
|
210
|
+
}
|
|
211
|
+
const memo = nodeMemo.get(filePath);
|
|
212
|
+
if (memo !== undefined && memo !== null && memo.mtimeMs === stat.mtimeMs)
|
|
213
|
+
return memo;
|
|
214
|
+
let source;
|
|
160
215
|
try {
|
|
161
|
-
|
|
216
|
+
source = fs.readFileSync(filePath, "utf8");
|
|
162
217
|
}
|
|
163
218
|
catch {
|
|
164
|
-
|
|
219
|
+
nodeMemo.set(filePath, null);
|
|
220
|
+
return null;
|
|
165
221
|
}
|
|
166
|
-
|
|
222
|
+
// String/comment contents can false-positive both patterns; extra
|
|
223
|
+
// specifiers only add deps (safe), a false `incomplete` only falls back
|
|
224
|
+
// to the superset (safe).
|
|
225
|
+
let incomplete = DYNAMIC_CALL.test(source);
|
|
226
|
+
const edges = [];
|
|
227
|
+
const seen = new Set();
|
|
228
|
+
const dir = path.dirname(filePath);
|
|
229
|
+
const aliases = resolveTsconfigAliases(dir);
|
|
230
|
+
for (const m of source.matchAll(STATIC_SPECIFIER)) {
|
|
231
|
+
const spec = m[1];
|
|
232
|
+
if (!spec)
|
|
233
|
+
continue;
|
|
234
|
+
const resolved = resolveSpecifier(spec, dir, aliases);
|
|
235
|
+
if (resolved === "incomplete") {
|
|
236
|
+
incomplete = true;
|
|
237
|
+
}
|
|
238
|
+
else if (resolved !== null && !seen.has(resolved)) {
|
|
239
|
+
seen.add(resolved);
|
|
240
|
+
edges.push(resolved);
|
|
241
|
+
}
|
|
242
|
+
}
|
|
243
|
+
const node = { mtimeMs: stat.mtimeMs, edges, incomplete };
|
|
244
|
+
nodeMemo.set(filePath, node);
|
|
245
|
+
return node;
|
|
167
246
|
}
|
|
168
247
|
/**
|
|
169
248
|
* Compute the static first-party dependency closure of `entryFile`.
|
|
@@ -172,35 +251,26 @@ function firstPartyOrNull(resolved) {
|
|
|
172
251
|
export function collectStaticDeps(entryFile) {
|
|
173
252
|
const entry = firstPartyOrNull(path.resolve(entryFile));
|
|
174
253
|
if (entry === null)
|
|
175
|
-
return
|
|
254
|
+
return INCOMPLETE;
|
|
176
255
|
const visited = new Set([entry]);
|
|
177
256
|
const queue = [entry];
|
|
178
|
-
let complete = true;
|
|
179
257
|
while (queue.length > 0) {
|
|
180
258
|
if (visited.size > MAX_FILES)
|
|
181
|
-
return
|
|
259
|
+
return INCOMPLETE;
|
|
182
260
|
const file = queue.pop();
|
|
183
|
-
const
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
for (const spec of scan.specifiers) {
|
|
193
|
-
const resolved = resolveSpecifier(spec, file, aliases);
|
|
194
|
-
if (resolved === "incomplete") {
|
|
195
|
-
complete = false;
|
|
196
|
-
}
|
|
197
|
-
else if (resolved !== null && !visited.has(resolved)) {
|
|
198
|
-
visited.add(resolved);
|
|
199
|
-
queue.push(resolved);
|
|
261
|
+
const node = fileNode(file);
|
|
262
|
+
// Any unanalyzable node poisons the whole closure; the caller falls back
|
|
263
|
+
// to the superset, so abort instead of crawling to exhaustion.
|
|
264
|
+
if (node === null || node.incomplete)
|
|
265
|
+
return INCOMPLETE;
|
|
266
|
+
for (const dep of node.edges) {
|
|
267
|
+
if (!visited.has(dep)) {
|
|
268
|
+
visited.add(dep);
|
|
269
|
+
queue.push(dep);
|
|
200
270
|
}
|
|
201
271
|
}
|
|
202
272
|
}
|
|
203
273
|
visited.delete(entry);
|
|
204
|
-
return { deps: [...visited], complete };
|
|
274
|
+
return { deps: [...visited], complete: true };
|
|
205
275
|
}
|
|
206
276
|
//# sourceMappingURL=dep-graph.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dep-graph.js","sourceRoot":"","sources":["../../src/unplugin/dep-graph.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"dep-graph.js","sourceRoot":"","sources":["../../src/unplugin/dep-graph.ts"],"names":[],"mappings":"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"}
|
|
@@ -34,6 +34,17 @@ export interface CacheEntry {
|
|
|
34
34
|
deps: Record<string, DepRecord>;
|
|
35
35
|
/** Build stats to replay on cache hits (only present when schemas compiled). */
|
|
36
36
|
stats?: CacheEntryStats;
|
|
37
|
+
/** Composed sourcemap for `result` (original → transformed). */
|
|
38
|
+
map?: CacheSourceMap | null;
|
|
39
|
+
}
|
|
40
|
+
/** JSON shape of the persisted sourcemap (mirrors TransformSourceMap). */
|
|
41
|
+
export interface CacheSourceMap {
|
|
42
|
+
version: number;
|
|
43
|
+
sources: (string | null)[];
|
|
44
|
+
sourcesContent?: (string | null)[];
|
|
45
|
+
names: string[];
|
|
46
|
+
mappings: string;
|
|
47
|
+
file?: string | null;
|
|
37
48
|
}
|
|
38
49
|
/** Reset the per-process dep stat memo (watch-mode file changes). */
|
|
39
50
|
export declare function resetDepValidationMemo(): void;
|
|
@@ -51,7 +62,7 @@ export declare class DiskCache {
|
|
|
51
62
|
private entryPath;
|
|
52
63
|
/** Load an entry and validate every recorded dep. Any failure → null. */
|
|
53
64
|
load(key: string): CacheEntry | null;
|
|
54
|
-
save(key: string, result: string | null, depPaths: readonly string[], stats?: CacheEntryStats): void;
|
|
65
|
+
save(key: string, result: string | null, depPaths: readonly string[], stats?: CacheEntryStats, map?: CacheSourceMap | null): void;
|
|
55
66
|
}
|
|
56
67
|
export {};
|
|
57
68
|
//# 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;;;;;;;;;;;;;;;;;;;GAmBG;AAOH,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,UAAU,SAAS;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,UAAU;IACzB,uEAAuE;IACvE,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,oEAAoE;IACpE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IAChC,gFAAgF;IAChF,KAAK,CAAC,EAAE,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"disk-cache.d.ts","sourceRoot":"","sources":["../../src/unplugin/disk-cache.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAOH,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,UAAU,SAAS;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,UAAU;IACzB,uEAAuE;IACvE,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,oEAAoE;IACpE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IAChC,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;AA6GD,qEAAqE;AACrE,wBAAgB,sBAAsB,IAAI,IAAI,CAE7C;AAED,qBAAa,SAAS;IACpB,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAS;IAC7B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;gBAExB,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM;IAK3C;;;;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,yEAAyE;IACzE,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI;IAmBpC,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;CAkCR"}
|
|
@@ -182,7 +182,7 @@ export class DiskCache {
|
|
|
182
182
|
}
|
|
183
183
|
return entry;
|
|
184
184
|
}
|
|
185
|
-
save(key, result, depPaths, stats) {
|
|
185
|
+
save(key, result, depPaths, stats, map) {
|
|
186
186
|
const deps = {};
|
|
187
187
|
for (const depPath of depPaths) {
|
|
188
188
|
const stat = statDep(depPath);
|
|
@@ -196,6 +196,17 @@ export class DiskCache {
|
|
|
196
196
|
const entry = { result, deps };
|
|
197
197
|
if (stats)
|
|
198
198
|
entry.stats = stats;
|
|
199
|
+
if (map !== undefined && map !== null) {
|
|
200
|
+
// The remapping result is a class instance; persist its JSON fields.
|
|
201
|
+
entry.map = {
|
|
202
|
+
version: map.version,
|
|
203
|
+
sources: map.sources,
|
|
204
|
+
...(map.sourcesContent !== undefined ? { sourcesContent: map.sourcesContent } : {}),
|
|
205
|
+
names: map.names,
|
|
206
|
+
mappings: map.mappings,
|
|
207
|
+
...(map.file !== undefined ? { file: map.file } : {}),
|
|
208
|
+
};
|
|
209
|
+
}
|
|
199
210
|
try {
|
|
200
211
|
fs.mkdirSync(this.dir, { recursive: true });
|
|
201
212
|
const file = this.entryPath(key);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"disk-cache.js","sourceRoot":"","sources":["../../src/unplugin/disk-cache.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"disk-cache.js","sourceRoot":"","sources":["../../src/unplugin/disk-cache.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Edit primitives shared by the transform pipeline stages.
|
|
3
|
+
*
|
|
4
|
+
* Every stage (hoist → hoisted-schema compile → rewrites → runtime inject)
|
|
5
|
+
* describes its changes as non-overlapping `Edit` splices (plus at most one
|
|
6
|
+
* insertion) against the STAGE INPUT. The same edit list is applied two
|
|
7
|
+
* ways: `applyEdits()` produces the stage output string, and the pipeline
|
|
8
|
+
* applies it to a MagicString to produce the stage's sourcemap — deriving
|
|
9
|
+
* both from one list makes code/map divergence impossible.
|
|
10
|
+
*/
|
|
11
|
+
export interface Edit {
|
|
12
|
+
/** Start offset in the stage-input string. */
|
|
13
|
+
start: number;
|
|
14
|
+
/** End offset (exclusive) in the stage-input string. */
|
|
15
|
+
end: number;
|
|
16
|
+
/** Replacement text. */
|
|
17
|
+
text: string;
|
|
18
|
+
}
|
|
19
|
+
export interface Insertion {
|
|
20
|
+
/** Offset in the stage-input string to insert at. */
|
|
21
|
+
offset: number;
|
|
22
|
+
text: string;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Apply non-overlapping edits (any order) and an optional insertion to a
|
|
26
|
+
* string. Mirrors MagicString.overwrite + appendLeft semantics: an insertion
|
|
27
|
+
* at an edit boundary lands before the edit's replacement.
|
|
28
|
+
*/
|
|
29
|
+
export declare function applyEdits(code: string, edits: readonly Edit[], insert?: Insertion): string;
|
|
30
|
+
//# sourceMappingURL=edits.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"edits.d.ts","sourceRoot":"","sources":["../../src/unplugin/edits.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,MAAM,WAAW,IAAI;IACnB,8CAA8C;IAC9C,KAAK,EAAE,MAAM,CAAC;IACd,wDAAwD;IACxD,GAAG,EAAE,MAAM,CAAC;IACZ,wBAAwB;IACxB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,SAAS;IACxB,qDAAqD;IACrD,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,IAAI,EAAE,EAAE,MAAM,CAAC,EAAE,SAAS,GAAG,MAAM,CAoB3F"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Edit primitives shared by the transform pipeline stages.
|
|
3
|
+
*
|
|
4
|
+
* Every stage (hoist → hoisted-schema compile → rewrites → runtime inject)
|
|
5
|
+
* describes its changes as non-overlapping `Edit` splices (plus at most one
|
|
6
|
+
* insertion) against the STAGE INPUT. The same edit list is applied two
|
|
7
|
+
* ways: `applyEdits()` produces the stage output string, and the pipeline
|
|
8
|
+
* applies it to a MagicString to produce the stage's sourcemap — deriving
|
|
9
|
+
* both from one list makes code/map divergence impossible.
|
|
10
|
+
*/
|
|
11
|
+
/**
|
|
12
|
+
* Apply non-overlapping edits (any order) and an optional insertion to a
|
|
13
|
+
* string. Mirrors MagicString.overwrite + appendLeft semantics: an insertion
|
|
14
|
+
* at an edit boundary lands before the edit's replacement.
|
|
15
|
+
*/
|
|
16
|
+
export function applyEdits(code, edits, insert) {
|
|
17
|
+
const ops = [...edits];
|
|
18
|
+
if (insert)
|
|
19
|
+
ops.push({ ...insert, insertion: true });
|
|
20
|
+
ops.sort((a, b) => {
|
|
21
|
+
const aStart = "insertion" in a ? a.offset : a.start;
|
|
22
|
+
const bStart = "insertion" in b ? b.offset : b.start;
|
|
23
|
+
if (aStart !== bStart)
|
|
24
|
+
return bStart - aStart;
|
|
25
|
+
// Same position: apply the insertion last so it ends up BEFORE the
|
|
26
|
+
// replacement text in the output (appendLeft semantics).
|
|
27
|
+
return "insertion" in a ? -1 : 1;
|
|
28
|
+
});
|
|
29
|
+
let result = code;
|
|
30
|
+
for (const op of ops) {
|
|
31
|
+
if ("insertion" in op) {
|
|
32
|
+
result = result.slice(0, op.offset) + op.text + result.slice(op.offset);
|
|
33
|
+
}
|
|
34
|
+
else {
|
|
35
|
+
result = result.slice(0, op.start) + op.text + result.slice(op.end);
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
return result;
|
|
39
|
+
}
|
|
40
|
+
//# sourceMappingURL=edits.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"edits.js","sourceRoot":"","sources":["../../src/unplugin/edits.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAiBH;;;;GAIG;AACH,MAAM,UAAU,UAAU,CAAC,IAAY,EAAE,KAAsB,EAAE,MAAkB;IACjF,MAAM,GAAG,GAAoD,CAAC,GAAG,KAAK,CAAC,CAAC;IACxE,IAAI,MAAM;QAAE,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACrD,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QAChB,MAAM,MAAM,GAAG,WAAW,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;QACrD,MAAM,MAAM,GAAG,WAAW,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;QACrD,IAAI,MAAM,KAAK,MAAM;YAAE,OAAO,MAAM,GAAG,MAAM,CAAC;QAC9C,mEAAmE;QACnE,yDAAyD;QACzD,OAAO,WAAW,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACnC,CAAC,CAAC,CAAC;IACH,IAAI,MAAM,GAAG,IAAI,CAAC;IAClB,KAAK,MAAM,EAAE,IAAI,GAAG,EAAE,CAAC;QACrB,IAAI,WAAW,IAAI,EAAE,EAAE,CAAC;YACtB,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;QAC1E,CAAC;aAAM,CAAC;YACN,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;QACtE,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
package/dist/unplugin/hoist.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { type Edit, type Insertion } from "./edits.js";
|
|
1
2
|
/** How an imported local binding maps onto its source module. */
|
|
2
3
|
export interface ImportDetail {
|
|
3
4
|
/** Module specifier (`"zod"`, `"./shapes"`). */
|
|
@@ -49,6 +50,13 @@ export interface HoistResult {
|
|
|
49
50
|
code: string;
|
|
50
51
|
/** One entry per hoisted declaration, in declaration order. */
|
|
51
52
|
schemas: HoistedSchema[];
|
|
53
|
+
/**
|
|
54
|
+
* The splices (input coordinates) that produced `code`, for sourcemap
|
|
55
|
+
* generation: expression → `_zh_*` replacements plus the declaration-block
|
|
56
|
+
* insertion. `code === applyEdits(input, edits, insert)` by construction.
|
|
57
|
+
*/
|
|
58
|
+
edits: Edit[];
|
|
59
|
+
insert: Insertion;
|
|
52
60
|
}
|
|
53
61
|
/**
|
|
54
62
|
* Hoist eligible Zod schema expressions to module scope.
|
|
@@ -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":"AAEA,OAAO,EAAc,KAAK,IAAI,EAAE,KAAK,SAAS,EAAE,MAAM,YAAY,CAAC;AA0DnE,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;IACzB;;;;OAIG;IACH,KAAK,EAAE,IAAI,EAAE,CAAC;IACd,MAAM,EAAE,SAAS,CAAC;CACnB;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,CAkM5F"}
|