zod-aot 0.0.6 → 0.0.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -39,15 +39,18 @@ Measured with `vitest bench` on Node.js (Apple M-series):
39
39
  | large object (10 nested items) | 111K ops/s | 4.8M ops/s | **43x** |
40
40
  | large object (100 nested items) | 11.9K ops/s | 713K ops/s | **60x** |
41
41
  | event log (combined) | 431K ops/s | 5.0M ops/s | **12x** |
42
+ | partial fallback object (transform) | 1.2M ops/s | 3.0M ops/s | **2.5x** |
43
+ | partial fallback array 10 (transform) | 447K ops/s | 2.1M ops/s | **4.6x** |
44
+ | partial fallback array 50 (transform) | 100K ops/s | 467K ops/s | **4.7x** |
42
45
 
43
- Performance gains scale with schema complexity. The `discriminatedUnion` optimization uses an O(1) `switch` dispatch instead of Zod's sequential trial approach.
46
+ Performance gains scale with schema complexity. The `discriminatedUnion` optimization uses an O(1) `switch` dispatch instead of Zod's sequential trial approach. Partial fallback schemas (containing `transform`/`refine`) still show 2.5-4.7x speedups by compiling the optimizable portions.
44
47
 
45
48
  ## Runtime Support
46
49
 
47
50
  | Runtime | Version | Status |
48
51
  |---------|---------|--------|
49
52
  | Node.js | 20+ | Fully supported |
50
- | Bun | 1.2+ | Fully supported |
53
+ | Bun | 1.3+ | Fully supported |
51
54
  | Deno | 2.0+ | Fully supported |
52
55
 
53
56
  ## Install
@@ -113,6 +116,9 @@ npx zod-aot generate src/schemas.ts -o src/schemas.compiled.ts
113
116
  # Generate from a directory
114
117
  npx zod-aot generate src/ -o src/compiled/
115
118
 
119
+ # Watch mode — regenerate on file changes
120
+ npx zod-aot generate src/ --watch
121
+
116
122
  # Check if schemas are compilable (without generating)
117
123
  npx zod-aot check src/schemas.ts
118
124
  ```
@@ -401,6 +407,12 @@ These schema types contain JavaScript closures that cannot be compiled to static
401
407
  - `custom` — arbitrary validation logic
402
408
  - `preprocess` — input preprocessing
403
409
 
410
+ #### Partial Fallback
411
+
412
+ When a schema contains a mix of compilable and non-compilable parts (e.g., an object where some properties use `transform`/`refine`), zod-aot compiles the optimizable parts and delegates only the non-compilable properties to Zod at runtime.
413
+
414
+ > **Note:** If a schema heavily relies on `transform`, `refine`, or other non-compilable features, the performance benefit from partial fallback will be minimal — most of the validation work is still delegated to Zod. Partial fallback is most effective when only a small portion of the schema uses these features.
415
+
404
416
  ### Planned (Tier 3)
405
417
 
406
418
  | Tier | Types |
@@ -424,9 +436,9 @@ These schema types contain JavaScript closures that cannot be compiled to static
424
436
  - [x] Tier 2 type support (9 types: any, unknown, readonly, date, tuple, record, default, intersection, discriminatedUnion)
425
437
  - [x] `discriminatedUnion` → O(1) switch statement optimization
426
438
  - [x] CLI (`npx zod-aot generate` / `npx zod-aot check`)
427
- - [ ] Partial fallback (objects with some transform properties)
439
+ - [x] Partial fallback (objects with some transform properties)
428
440
  - [x] unplugin integration (Vite / webpack / esbuild / Rollup)
429
- - [ ] Watch mode
441
+ - [x] Watch mode (`--watch` / `-w`)
430
442
 
431
443
  ### Phase 3: Ecosystem
432
444
 
@@ -1,7 +1,30 @@
1
- interface GenerateOptions {
1
+ export interface GenerateOptions {
2
2
  inputs: string[];
3
3
  output: string | undefined;
4
4
  }
5
+ export interface GenerateFileResult {
6
+ filePath: string;
7
+ outputPath: string;
8
+ schemaCount: number;
9
+ schemaNames: string[];
10
+ }
11
+ /**
12
+ * Check if a filename is a schema file candidate.
13
+ * Shared filter logic used by both findSchemaFiles and isWatchTarget.
14
+ */
15
+ export declare function isSchemaFile(fileName: string): boolean;
16
+ /**
17
+ * Resolve input paths to a list of source files.
18
+ * If a path is a directory, find all .ts files (excluding .compiled.ts, .test.ts, node_modules).
19
+ */
20
+ export declare function resolveInputFiles(inputs: string[]): Promise<string[]>;
21
+ export declare function findSchemaFiles(dir: string): Promise<string[]>;
22
+ /**
23
+ * Generate compiled output for a single source file.
24
+ * Returns null if no compile() calls are found.
25
+ */
26
+ export declare function generateFile(filePath: string, outputFlag: string | undefined, options?: {
27
+ cacheBust?: boolean;
28
+ }): Promise<GenerateFileResult | null>;
5
29
  export declare function runGenerate(options: GenerateOptions): Promise<void>;
6
- export {};
7
30
  //# sourceMappingURL=generate.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"generate.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/generate.ts"],"names":[],"mappings":"AAUA,UAAU,eAAe;IACvB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;CAC5B;AA0DD,wBAAsB,WAAW,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CAuDzE"}
1
+ {"version":3,"file":"generate.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/generate.ts"],"names":[],"mappings":"AAWA,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;CAC5B;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,EAAE,CAAC;CACvB;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAStD;AAED;;;GAGG;AACH,wBAAsB,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAqB3E;AAED,wBAAsB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAmBpE;AAED;;;GAGG;AACH,wBAAsB,YAAY,CAChC,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,GAAG,SAAS,EAC9B,OAAO,CAAC,EAAE;IAAE,SAAS,CAAC,EAAE,OAAO,CAAA;CAAE,GAChC,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC,CAqCpC;AAED,wBAAsB,WAAW,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CAqCzE"}
@@ -6,11 +6,23 @@ import { extractSchema } from "#src/core/extractor.js";
6
6
  import { discoverSchemas } from "#src/discovery.js";
7
7
  import { generateCompiledFileContent, resolveOutputPath, writeCompiledFile } from "../emitter.js";
8
8
  import { logger } from "../logger.js";
9
+ /**
10
+ * Check if a filename is a schema file candidate.
11
+ * Shared filter logic used by both findSchemaFiles and isWatchTarget.
12
+ */
13
+ export function isSchemaFile(fileName) {
14
+ return (/\.(?:ts|mts|js|mjs)$/.test(fileName) &&
15
+ !fileName.endsWith(".compiled.ts") &&
16
+ !fileName.endsWith(".compiled.js") &&
17
+ !fileName.endsWith(".test.ts") &&
18
+ !fileName.endsWith(".test.js") &&
19
+ !fileName.endsWith(".d.ts"));
20
+ }
9
21
  /**
10
22
  * Resolve input paths to a list of source files.
11
23
  * If a path is a directory, find all .ts files (excluding .compiled.ts, .test.ts, node_modules).
12
24
  */
13
- async function resolveInputFiles(inputs) {
25
+ export async function resolveInputFiles(inputs) {
14
26
  const files = [];
15
27
  for (const input of inputs) {
16
28
  const absPath = path.resolve(input);
@@ -29,7 +41,7 @@ async function resolveInputFiles(inputs) {
29
41
  }
30
42
  return files;
31
43
  }
32
- async function findSchemaFiles(dir) {
44
+ export async function findSchemaFiles(dir) {
33
45
  const results = [];
34
46
  const entries = await fs.promises.readdir(dir, { withFileTypes: true });
35
47
  for (const entry of entries) {
@@ -41,18 +53,47 @@ async function findSchemaFiles(dir) {
41
53
  const nested = await findSchemaFiles(fullPath);
42
54
  results.push(...nested);
43
55
  }
44
- else if (entry.isFile() &&
45
- /\.(?:ts|mts|js|mjs)$/.test(entry.name) &&
46
- !entry.name.endsWith(".compiled.ts") &&
47
- !entry.name.endsWith(".compiled.js") &&
48
- !entry.name.endsWith(".test.ts") &&
49
- !entry.name.endsWith(".test.js") &&
50
- !entry.name.endsWith(".d.ts")) {
56
+ else if (entry.isFile() && isSchemaFile(entry.name)) {
51
57
  results.push(fullPath);
52
58
  }
53
59
  }
54
60
  return results;
55
61
  }
62
+ /**
63
+ * Generate compiled output for a single source file.
64
+ * Returns null if no compile() calls are found.
65
+ */
66
+ export async function generateFile(filePath, outputFlag, options) {
67
+ const relPath = path.relative(process.cwd(), filePath);
68
+ let schemas;
69
+ try {
70
+ schemas = await discoverSchemas(filePath, options?.cacheBust ? { cacheBust: true } : undefined);
71
+ }
72
+ catch (err) {
73
+ throw new Error(`Failed to load ${relPath}: ${err instanceof Error ? err.message : String(err)}`);
74
+ }
75
+ if (schemas.length === 0) {
76
+ return null;
77
+ }
78
+ const codegenResults = schemas.map((s) => {
79
+ const fallbackEntries = [];
80
+ const ir = extractSchema(s.schema, fallbackEntries);
81
+ const result = generateValidator(ir, s.exportName, {
82
+ fallbackCount: fallbackEntries.length,
83
+ });
84
+ return { exportName: s.exportName, codegenResult: result, fallbackEntries };
85
+ });
86
+ const outputPath = resolveOutputPath(filePath, outputFlag);
87
+ const sourceRelPath = path.relative(path.dirname(outputPath), filePath);
88
+ const content = generateCompiledFileContent(codegenResults, sourceRelPath);
89
+ await writeCompiledFile(outputPath, content);
90
+ return {
91
+ filePath,
92
+ outputPath,
93
+ schemaCount: schemas.length,
94
+ schemaNames: schemas.map((s) => s.exportName),
95
+ };
96
+ }
56
97
  export async function runGenerate(options) {
57
98
  const files = await resolveInputFiles(options.inputs);
58
99
  if (files.length === 0) {
@@ -62,31 +103,20 @@ export async function runGenerate(options) {
62
103
  let totalSchemas = 0;
63
104
  let totalFiles = 0;
64
105
  for (const filePath of files) {
65
- const relPath = path.relative(process.cwd(), filePath);
66
- let schemas;
106
+ let result;
67
107
  try {
68
- schemas = await discoverSchemas(filePath);
108
+ result = await generateFile(filePath, options.output);
69
109
  }
70
110
  catch (err) {
71
- logger.error(`Failed to load ${relPath}: ${err instanceof Error ? err.message : String(err)}`);
111
+ logger.error(err instanceof Error ? err.message : String(err));
72
112
  process.exit(1);
73
113
  }
74
- if (schemas.length === 0) {
114
+ if (!result)
75
115
  continue;
76
- }
77
- const codegenResults = schemas.map((s) => {
78
- const ir = extractSchema(s.schema);
79
- const result = generateValidator(ir, s.exportName);
80
- return { exportName: s.exportName, codegenResult: result };
81
- });
82
- const outputPath = resolveOutputPath(filePath, options.output);
83
- const outputRelPath = path.relative(process.cwd(), outputPath);
84
- const sourceRelPath = path.relative(path.dirname(outputPath), filePath);
85
- const content = generateCompiledFileContent(codegenResults, sourceRelPath);
86
- await writeCompiledFile(outputPath, content);
87
- const schemaNames = schemas.map((s) => s.exportName).join(", ");
88
- logger.success(`${relPath} -> ${outputRelPath} (${schemaNames})`);
89
- totalSchemas += schemas.length;
116
+ const relPath = path.relative(process.cwd(), result.filePath);
117
+ const outputRelPath = path.relative(process.cwd(), result.outputPath);
118
+ logger.success(`${relPath} -> ${outputRelPath} (${result.schemaNames.join(", ")})`);
119
+ totalSchemas += result.schemaCount;
90
120
  totalFiles++;
91
121
  }
92
122
  if (totalFiles === 0) {
@@ -1 +1 @@
1
- {"version":3,"file":"generate.js","sourceRoot":"","sources":["../../../src/cli/commands/generate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"generate.js","sourceRoot":"","sources":["../../../src/cli/commands/generate.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ interface WatchOptions {
2
+ inputs: string[];
3
+ output: string | undefined;
4
+ }
5
+ /**
6
+ * Check if a file path should trigger regeneration.
7
+ */
8
+ export declare function isWatchTarget(filePath: string): boolean;
9
+ /**
10
+ * Resolve which directories to watch from input paths.
11
+ * Files are mapped to their parent directory; subdirectories are deduplicated.
12
+ */
13
+ export declare function resolveWatchDirs(inputs: string[]): string[];
14
+ /**
15
+ * Create a debounced version of a function.
16
+ */
17
+ export declare function debounce<T extends (...args: never[]) => void>(fn: T, delayMs: number): T;
18
+ /**
19
+ * Run the watch mode: initial generate + fs.watch for changes.
20
+ */
21
+ export declare function runWatch(options: WatchOptions): Promise<void>;
22
+ export {};
23
+ //# sourceMappingURL=watch.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"watch.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/watch.ts"],"names":[],"mappings":"AAWA,UAAU,YAAY;IACpB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;CAC5B;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAGvD;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAwB3D;AAED;;GAEG;AACH,wBAAgB,QAAQ,CAAC,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,KAAK,EAAE,KAAK,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE,OAAO,EAAE,MAAM,GAAG,CAAC,CASxF;AAED;;GAEG;AACH,wBAAsB,QAAQ,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAuGnE"}
@@ -0,0 +1,149 @@
1
+ import fs from "node:fs";
2
+ import path from "node:path";
3
+ import process from "node:process";
4
+ import { logger } from "../logger.js";
5
+ import { generateFile, isSchemaFile, resolveInputFiles, } from "./generate.js";
6
+ /**
7
+ * Check if a file path should trigger regeneration.
8
+ */
9
+ export function isWatchTarget(filePath) {
10
+ if (filePath.includes("node_modules"))
11
+ return false;
12
+ return isSchemaFile(filePath);
13
+ }
14
+ /**
15
+ * Resolve which directories to watch from input paths.
16
+ * Files are mapped to their parent directory; subdirectories are deduplicated.
17
+ */
18
+ export function resolveWatchDirs(inputs) {
19
+ const dirs = [];
20
+ for (const input of inputs) {
21
+ const abs = path.resolve(input);
22
+ try {
23
+ const stat = fs.statSync(abs);
24
+ dirs.push(stat.isDirectory() ? abs : path.dirname(abs));
25
+ }
26
+ catch {
27
+ dirs.push(path.dirname(abs));
28
+ }
29
+ }
30
+ // Deduplicate: remove dirs that are subdirectories of another watched dir
31
+ const sorted = [...new Set(dirs)].sort();
32
+ const result = [];
33
+ for (const dir of sorted) {
34
+ const isSubdir = result.some((parent) => dir.startsWith(parent + path.sep));
35
+ if (!isSubdir) {
36
+ result.push(dir);
37
+ }
38
+ }
39
+ return result;
40
+ }
41
+ /**
42
+ * Create a debounced version of a function.
43
+ */
44
+ export function debounce(fn, delayMs) {
45
+ let timer;
46
+ return ((...args) => {
47
+ if (timer !== undefined)
48
+ clearTimeout(timer);
49
+ timer = setTimeout(() => {
50
+ timer = undefined;
51
+ fn(...args);
52
+ }, delayMs);
53
+ });
54
+ }
55
+ /**
56
+ * Run the watch mode: initial generate + fs.watch for changes.
57
+ */
58
+ export async function runWatch(options) {
59
+ const files = await resolveInputFiles(options.inputs);
60
+ if (files.length === 0) {
61
+ logger.warn("No source files found.");
62
+ return;
63
+ }
64
+ // Initial generation
65
+ let totalSchemas = 0;
66
+ let totalFiles = 0;
67
+ for (const filePath of files) {
68
+ try {
69
+ const result = await generateFile(filePath, options.output);
70
+ if (result) {
71
+ logResult(result);
72
+ totalSchemas += result.schemaCount;
73
+ totalFiles++;
74
+ }
75
+ }
76
+ catch (err) {
77
+ logger.error(err instanceof Error ? err.message : String(err));
78
+ }
79
+ }
80
+ if (totalFiles > 0) {
81
+ logger.info(`Generated ${totalSchemas} schema${totalSchemas > 1 ? "s" : ""} from ${totalFiles} file${totalFiles > 1 ? "s" : ""}.`);
82
+ }
83
+ else {
84
+ logger.warn("No compile() calls found in any source file.");
85
+ }
86
+ // Set up file watching
87
+ const watchDirs = resolveWatchDirs(options.inputs);
88
+ const ac = new AbortController();
89
+ const pendingFiles = new Set();
90
+ const flush = debounce(async () => {
91
+ const batch = [...pendingFiles];
92
+ pendingFiles.clear();
93
+ for (const filePath of batch) {
94
+ try {
95
+ const result = await generateFile(filePath, options.output, { cacheBust: true });
96
+ if (result) {
97
+ logResult(result);
98
+ }
99
+ }
100
+ catch (err) {
101
+ logger.error(err instanceof Error ? err.message : String(err));
102
+ }
103
+ }
104
+ }, 150);
105
+ const watchers = [];
106
+ for (const dir of watchDirs) {
107
+ try {
108
+ const watcher = fs.watch(dir, { recursive: true, signal: ac.signal }, (_event, filename) => {
109
+ if (!filename)
110
+ return;
111
+ const fullPath = path.resolve(dir, filename);
112
+ if (isWatchTarget(fullPath)) {
113
+ pendingFiles.add(fullPath);
114
+ void flush();
115
+ }
116
+ });
117
+ watchers.push(watcher);
118
+ }
119
+ catch (err) {
120
+ logger.error(`Failed to watch ${dir}: ${err instanceof Error ? err.message : String(err)}`);
121
+ }
122
+ }
123
+ if (watchers.length === 0) {
124
+ logger.error("No directories could be watched.");
125
+ return;
126
+ }
127
+ logger.info(`Watching ${watchDirs.length} director${watchDirs.length > 1 ? "ies" : "y"} for changes... (Ctrl+C to stop)`);
128
+ // Graceful shutdown
129
+ const shutdown = () => {
130
+ logger.dim("\nStopping watch mode...");
131
+ ac.abort();
132
+ };
133
+ process.on("SIGINT", shutdown);
134
+ process.on("SIGTERM", shutdown);
135
+ // Keep process alive until aborted
136
+ await new Promise((resolve) => {
137
+ ac.signal.addEventListener("abort", () => {
138
+ process.removeListener("SIGINT", shutdown);
139
+ process.removeListener("SIGTERM", shutdown);
140
+ resolve();
141
+ }, { once: true });
142
+ });
143
+ }
144
+ function logResult(result) {
145
+ const relPath = path.relative(process.cwd(), result.filePath);
146
+ const outputRelPath = path.relative(process.cwd(), result.outputPath);
147
+ logger.success(`${relPath} -> ${outputRelPath} (${result.schemaNames.join(", ")})`);
148
+ }
149
+ //# sourceMappingURL=watch.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"watch.js","sourceRoot":"","sources":["../../../src/cli/commands/watch.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,9 @@
1
1
  import type { CodeGenResult } from "#src/core/codegen/context.js";
2
+ import type { FallbackEntry } from "#src/core/extractor.js";
2
3
  interface EmitSchema {
3
4
  exportName: string;
4
5
  codegenResult: CodeGenResult;
6
+ fallbackEntries: FallbackEntry[];
5
7
  }
6
8
  /**
7
9
  * Generate the content of a .compiled.ts file from multiple schemas.
@@ -1 +1 @@
1
- {"version":3,"file":"emitter.d.ts","sourceRoot":"","sources":["../../src/cli/emitter.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAGlE,UAAU,UAAU;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,aAAa,CAAC;CAC9B;AAED;;GAEG;AACH,wBAAgB,2BAA2B,CAAC,OAAO,EAAE,UAAU,EAAE,EAAE,aAAa,EAAE,MAAM,GAAG,MAAM,CAkDhG;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAc3F;AAED;;GAEG;AACH,wBAAsB,iBAAiB,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAI1F"}
1
+ {"version":3,"file":"emitter.d.ts","sourceRoot":"","sources":["../../src/cli/emitter.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAElE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAE5D,UAAU,UAAU;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,aAAa,CAAC;IAC7B,eAAe,EAAE,aAAa,EAAE,CAAC;CAClC;AAED;;GAEG;AACH,wBAAgB,2BAA2B,CAAC,OAAO,EAAE,UAAU,EAAE,EAAE,aAAa,EAAE,MAAM,GAAG,MAAM,CAgFhG;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAc3F;AAED;;GAEG;AACH,wBAAsB,iBAAiB,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAI1F"}
@@ -10,6 +10,23 @@ export function generateCompiledFileContent(schemas, sourceRelPath) {
10
10
  lines.push("// AUTO-GENERATED by zod-aot — DO NOT EDIT");
11
11
  lines.push(`// Source: ${sourceRelPath}`);
12
12
  lines.push("");
13
+ // Import original schemas for partial fallback (if any schema has fallbacks)
14
+ const schemasWithFallbacks = schemas.filter((s) => s.fallbackEntries.length > 0);
15
+ if (schemasWithFallbacks.length > 0) {
16
+ const importPath = sourceRelPath.replace(/\.[cm]?[jt]sx?$/, "");
17
+ const importNames = schemasWithFallbacks
18
+ .map((s) => `${s.exportName} as __src_${s.exportName}`)
19
+ .join(", ");
20
+ lines.push(`import { ${importNames} } from "${importPath}";`);
21
+ lines.push("");
22
+ }
23
+ // Fallback schema arrays
24
+ for (const schema of schemasWithFallbacks) {
25
+ const fbExprs = schema.fallbackEntries.map((fb) => `(__src_${schema.exportName} as any).schema${fb.accessPath}`);
26
+ lines.push(`const __fb_${schema.exportName} = [${fbExprs.join(", ")}];`);
27
+ }
28
+ if (schemasWithFallbacks.length > 0)
29
+ lines.push("");
13
30
  // Merge preambles — each schema's `code` field contains `/* zod-aot */` + preamble declarations
14
31
  const preambleSet = new Set();
15
32
  for (const schema of schemas) {
@@ -28,7 +45,15 @@ export function generateCompiledFileContent(schemas, sourceRelPath) {
28
45
  }
29
46
  // Function definitions
30
47
  for (const schema of schemas) {
31
- lines.push(schema.codegenResult.functionName);
48
+ if (schema.fallbackEntries.length > 0) {
49
+ // Inject __fb binding at function start
50
+ const fnDef = schema.codegenResult.functionName;
51
+ const injected = fnDef.replace(/^(function\s+\w+\(input\)\{)\n/, `$1\nvar __fb=__fb_${schema.exportName};\n`);
52
+ lines.push(injected);
53
+ }
54
+ else {
55
+ lines.push(schema.codegenResult.functionName);
56
+ }
32
57
  lines.push("");
33
58
  }
34
59
  // Export wrappers
@@ -1 +1 @@
1
- {"version":3,"file":"emitter.js","sourceRoot":"","sources":["../../src/cli/emitter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"emitter.js","sourceRoot":"","sources":["../../src/cli/emitter.ts"],"names":[],"mappings":"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"}
package/dist/cli/index.js CHANGED
@@ -10,7 +10,7 @@ function printUsage() {
10
10
  zod-aot v${VERSION} — Compile Zod schemas into zero-overhead validation functions
11
11
 
12
12
  Usage:
13
- zod-aot generate <files...> [-o <output>]
13
+ zod-aot generate <files...> [-o <output>] [-w]
14
14
  zod-aot check <files...>
15
15
 
16
16
  Commands:
@@ -19,13 +19,14 @@ Commands:
19
19
 
20
20
  Options:
21
21
  -o, --output <path> Output file or directory
22
+ -w, --watch Watch for changes and regenerate
22
23
  -h, --help Show this help message
23
24
  -v, --version Show version number
24
25
 
25
26
  Examples:
26
27
  zod-aot generate src/schemas.ts
27
28
  zod-aot generate src/schemas.ts -o src/schemas.compiled.ts
28
- zod-aot generate src/
29
+ zod-aot generate src/ --watch
29
30
  zod-aot check src/schemas.ts
30
31
  `.trim());
31
32
  }
@@ -42,6 +43,7 @@ function parseArgs(argv) {
42
43
  if (command === "generate") {
43
44
  const inputs = [];
44
45
  let output;
46
+ let watch = false;
45
47
  for (let i = 0; i < rest.length; i++) {
46
48
  const arg = rest[i];
47
49
  if (arg === "-o" || arg === "--output") {
@@ -53,6 +55,9 @@ function parseArgs(argv) {
53
55
  }
54
56
  output = val;
55
57
  }
58
+ else if (arg === "-w" || arg === "--watch") {
59
+ watch = true;
60
+ }
56
61
  else if (arg.startsWith("-")) {
57
62
  logger.error(`Unknown option: ${arg}`);
58
63
  process.exit(1);
@@ -65,7 +70,7 @@ function parseArgs(argv) {
65
70
  logger.error("No input files specified. Run 'zod-aot --help' for usage.");
66
71
  process.exit(1);
67
72
  }
68
- return { kind: "generate", options: { inputs, output } };
73
+ return { kind: "generate", options: { inputs, output, watch } };
69
74
  }
70
75
  if (command === "check") {
71
76
  const inputs = rest.filter((arg) => {
@@ -95,8 +100,14 @@ async function main() {
95
100
  console.log(VERSION);
96
101
  break;
97
102
  case "generate": {
98
- const { runGenerate } = await import("./commands/generate.js");
99
- await runGenerate(command.options);
103
+ if (command.options.watch) {
104
+ const { runWatch } = await import("./commands/watch.js");
105
+ await runWatch(command.options);
106
+ }
107
+ else {
108
+ const { runGenerate } = await import("./commands/generate.js");
109
+ await runGenerate(command.options);
110
+ }
100
111
  break;
101
112
  }
102
113
  case "check": {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
@@ -2,6 +2,8 @@ import type { SchemaIR } from "../types.js";
2
2
  export interface CodeGenResult {
3
3
  code: string;
4
4
  functionName: string;
5
+ /** Number of fallback schemas referenced by __fb[N] in the generated code. 0 = no fallbacks. */
6
+ fallbackCount: number;
5
7
  }
6
8
  export interface CodeGenContext {
7
9
  preamble: string[];
@@ -1 +1 @@
1
- {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../src/core/codegen/context.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAE5C,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,MAAM,oBAAoB,GAAG,CACjC,EAAE,EAAE,QAAQ,EACZ,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,GAAG,EAAE,cAAc,KAChB,MAAM,CAAC;AAGZ,eAAO,MAAM,kBAAkB,QAA+G,CAAC;AAE/I,wBAAgB,YAAY,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAE9C;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAM/D"}
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../src/core/codegen/context.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAE5C,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;IACrB,gGAAgG;IAChG,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,MAAM,oBAAoB,GAAG,CACjC,EAAE,EAAE,QAAQ,EACZ,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,GAAG,EAAE,cAAc,KAChB,MAAM,CAAC;AAGZ,eAAO,MAAM,kBAAkB,QAA+G,CAAC;AAE/I,wBAAgB,YAAY,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAE9C;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAM/D"}
@@ -1 +1 @@
1
- {"version":3,"file":"context.js","sourceRoot":"","sources":["../../../src/core/codegen/context.ts"],"names":[],"mappings":"AAoBA,qEAAqE;AACrE,MAAM,CAAC,MAAM,kBAAkB,GAAG,MAAM,CAAC,GAAG,CAAA,kGAAkG,CAAC;AAE/I,MAAM,UAAU,YAAY,CAAC,CAAS;IACpC,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;AAC3B,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,mBAAmB,CAAC,WAAmB;IACrD,MAAM,KAAK,GAAG,wBAAwB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACzD,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAChB,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;IACtE,CAAC;IACD,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC"}
1
+ {"version":3,"file":"context.js","sourceRoot":"","sources":["../../../src/core/codegen/context.ts"],"names":[],"mappings":"AAsBA,qEAAqE;AACrE,MAAM,CAAC,MAAM,kBAAkB,GAAG,MAAM,CAAC,GAAG,CAAA,kGAAkG,CAAC;AAE/I,MAAM,UAAU,YAAY,CAAC,CAAS;IACpC,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;AAC3B,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,mBAAmB,CAAC,WAAmB;IACrD,MAAM,KAAK,GAAG,wBAAwB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACzD,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAChB,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;IACtE,CAAC;IACD,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC"}
@@ -9,5 +9,7 @@ export type { CodeGenResult } from "./context.js";
9
9
  *
10
10
  * Usage: `new Function(code + "\nreturn " + functionName + ";")()`
11
11
  */
12
- export declare function generateValidator(ir: SchemaIR, name: string): CodeGenResult;
12
+ export declare function generateValidator(ir: SchemaIR, name: string, options?: {
13
+ fallbackCount?: number;
14
+ }): CodeGenResult;
13
15
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core/codegen/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,KAAK,EAAkB,aAAa,EAAE,MAAM,cAAc,CAAC;AAElE,YAAY,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAoHlD;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,GAAG,aAAa,CAiB3E"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core/codegen/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,KAAK,EAAkB,aAAa,EAAE,MAAM,cAAc,CAAC;AAElE,YAAY,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAmIlD;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAC/B,EAAE,EAAE,QAAQ,EACZ,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE;IAAE,aAAa,CAAC,EAAE,MAAM,CAAA;CAAE,GACnC,aAAa,CAiBf"}
@@ -26,6 +26,21 @@ function generateValidation(ir, inputExpr, pathExpr, issuesVar, ctx) {
26
26
  case "nullable":
27
27
  return generateNullableValidation(ir, inputExpr, pathExpr, issuesVar, ctx, generateValidation);
28
28
  case "fallback":
29
+ if (ir.fallbackIndex !== undefined) {
30
+ const idx = ir.fallbackIndex;
31
+ const rVar = `__fb_r${idx}`;
32
+ const iVar = `__fb_i${idx}`;
33
+ const jVar = `__fb_j${idx}`;
34
+ let fbCode = `var ${rVar}=__fb[${idx}].safeParse(${inputExpr});\n`;
35
+ fbCode += `if(!${rVar}.success){`;
36
+ fbCode += `var ${iVar}=${rVar}.error.issues;`;
37
+ fbCode += `for(var ${jVar}=0;${jVar}<${iVar}.length;${jVar}++){`;
38
+ fbCode += `${issuesVar}.push(Object.assign({},${iVar}[${jVar}],`;
39
+ fbCode += `{path:${pathExpr}.concat(${iVar}[${jVar}].path)}));`;
40
+ fbCode += `}}`;
41
+ fbCode += `else{${inputExpr}=${rVar}.data;}\n`;
42
+ return fbCode;
43
+ }
29
44
  return `${issuesVar}.push({code:"custom",path:${pathExpr},message:"Fallback schema: ${ir.reason}"});\n`;
30
45
  case "any":
31
46
  return generateAnyValidation();
@@ -55,7 +70,7 @@ function generateValidation(ir, inputExpr, pathExpr, issuesVar, ctx) {
55
70
  *
56
71
  * Usage: `new Function(code + "\nreturn " + functionName + ";")()`
57
72
  */
58
- export function generateValidator(ir, name) {
73
+ export function generateValidator(ir, name, options) {
59
74
  const ctx = { preamble: [], counter: 0 };
60
75
  const bodyCode = generateValidation(ir, "input", "[]", "__issues", ctx);
61
76
  const code = ["/* zod-aot */", ...ctx.preamble].join("\n");
@@ -68,6 +83,6 @@ export function generateValidator(ir, name) {
68
83
  `return{success:true,data:input};`,
69
84
  `}`,
70
85
  ].join("\n");
71
- return { code, functionName };
86
+ return { code, functionName, fallbackCount: options?.fallbackCount ?? 0 };
72
87
  }
73
88
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/codegen/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/codegen/index.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,16 @@
1
1
  import type { SchemaIR } from "./types.js";
2
+ /** Entry collected during extraction for each fallback sub-schema. */
3
+ export interface FallbackEntry {
4
+ /** Runtime reference to the Zod sub-schema. */
5
+ schema: unknown;
6
+ /** Navigation path from root schema, e.g. '.shape["slug"]' */
7
+ accessPath: string;
8
+ }
2
9
  /**
3
10
  * Extract SchemaIR from a Zod schema by traversing its `_zod.def` and `_zod.bag`.
11
+ *
12
+ * When `fallbacks` is provided, non-compilable sub-schemas are collected with their
13
+ * access paths for partial fallback (Zod delegation at runtime).
4
14
  */
5
- export declare function extractSchema(zodSchema: unknown): SchemaIR;
15
+ export declare function extractSchema(zodSchema: unknown, fallbacks?: FallbackEntry[], currentPath?: string): SchemaIR;
6
16
  //# sourceMappingURL=extractor.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"extractor.d.ts","sourceRoot":"","sources":["../../src/core/extractor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAwB,QAAQ,EAAE,MAAM,YAAY,CAAC;AAuGjE;;GAEG;AACH,wBAAgB,aAAa,CAAC,SAAS,EAAE,OAAO,GAAG,QAAQ,CAoL1D"}
1
+ {"version":3,"file":"extractor.d.ts","sourceRoot":"","sources":["../../src/core/extractor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAoC,QAAQ,EAAE,MAAM,YAAY,CAAC;AAoD7E,sEAAsE;AACtE,MAAM,WAAW,aAAa;IAC5B,+CAA+C;IAC/C,MAAM,EAAE,OAAO,CAAC;IAChB,8DAA8D;IAC9D,UAAU,EAAE,MAAM,CAAC;CACpB;AAmED;;;;;GAKG;AACH,wBAAgB,aAAa,CAC3B,SAAS,EAAE,OAAO,EAClB,SAAS,CAAC,EAAE,aAAa,EAAE,EAC3B,WAAW,CAAC,EAAE,MAAM,GACnB,QAAQ,CAqMV"}
@@ -46,19 +46,31 @@ function extractChecks(checks) {
46
46
  }
47
47
  return { checkIRs, hasFallback };
48
48
  }
49
+ function makeFallback(reason, zodSchema, fallbacks, accessPath) {
50
+ if (fallbacks && accessPath !== undefined) {
51
+ const index = fallbacks.length;
52
+ fallbacks.push({ schema: zodSchema, accessPath });
53
+ return { type: "fallback", reason, fallbackIndex: index };
54
+ }
55
+ return { type: "fallback", reason };
56
+ }
49
57
  /**
50
58
  * Extract SchemaIR from a Zod schema by traversing its `_zod.def` and `_zod.bag`.
59
+ *
60
+ * When `fallbacks` is provided, non-compilable sub-schemas are collected with their
61
+ * access paths for partial fallback (Zod delegation at runtime).
51
62
  */
52
- export function extractSchema(zodSchema) {
63
+ export function extractSchema(zodSchema, fallbacks, currentPath) {
53
64
  const schema = zodSchema;
54
65
  const def = schema._zod.def;
66
+ const p = currentPath ?? "";
55
67
  // Transform: pipe with transform output
56
68
  if (def.type === "pipe") {
57
69
  const outDef = def.out?._zod?.def;
58
70
  if (outDef && outDef.type === "transform") {
59
- return { type: "fallback", reason: "transform" };
71
+ return makeFallback("transform", zodSchema, fallbacks, p);
60
72
  }
61
- return { type: "fallback", reason: "unsupported" };
73
+ return makeFallback("unsupported", zodSchema, fallbacks, p);
62
74
  }
63
75
  // String format schemas (z.email(), z.url(), z.uuid())
64
76
  if (def.type === "string" && def.check === "string_format") {
@@ -79,7 +91,7 @@ export function extractSchema(zodSchema) {
79
91
  }
80
92
  const { checkIRs, hasFallback } = extractChecks(def.checks);
81
93
  if (hasFallback)
82
- return { type: "fallback", reason: "refine" };
94
+ return makeFallback("refine", zodSchema, fallbacks, p);
83
95
  return { type: "string", checks: checkIRs };
84
96
  }
85
97
  case "number": {
@@ -88,7 +100,7 @@ export function extractSchema(zodSchema) {
88
100
  }
89
101
  const { checkIRs, hasFallback } = extractChecks(def.checks);
90
102
  if (hasFallback)
91
- return { type: "fallback", reason: "refine" };
103
+ return makeFallback("refine", zodSchema, fallbacks, p);
92
104
  return { type: "number", checks: checkIRs };
93
105
  }
94
106
  case "boolean":
@@ -104,18 +116,19 @@ export function extractSchema(zodSchema) {
104
116
  case "object": {
105
117
  const properties = {};
106
118
  for (const [key, value] of Object.entries(def.shape)) {
107
- properties[key] = extractSchema(value);
119
+ const propPath = `${p}.shape[${JSON.stringify(key)}]`;
120
+ properties[key] = extractSchema(value, fallbacks, propPath);
108
121
  }
109
122
  return { type: "object", properties };
110
123
  }
111
124
  case "array": {
112
- const element = extractSchema(def.element);
125
+ const element = extractSchema(def.element, fallbacks, `${p}._zod.def.element`);
113
126
  const { checkIRs } = def.checks ? extractChecks(def.checks) : { checkIRs: [] };
114
127
  return { type: "array", element, checks: checkIRs };
115
128
  }
116
129
  case "union": {
117
130
  if (def.discriminator) {
118
- const options = def.options.map((opt) => extractSchema(opt));
131
+ const options = def.options.map((opt, i) => extractSchema(opt, fallbacks, `${p}._zod.def.options[${i}]`));
119
132
  const mapping = {};
120
133
  for (let i = 0; i < def.options.length; i++) {
121
134
  const opt = def.options[i];
@@ -134,19 +147,28 @@ export function extractSchema(zodSchema) {
134
147
  }
135
148
  return {
136
149
  type: "union",
137
- options: def.options.map((opt) => extractSchema(opt)),
150
+ options: def.options.map((opt, i) => extractSchema(opt, fallbacks, `${p}._zod.def.options[${i}]`)),
138
151
  };
139
152
  }
140
153
  case "optional":
141
- return { type: "optional", inner: extractSchema(def.innerType) };
154
+ return {
155
+ type: "optional",
156
+ inner: extractSchema(def.innerType, fallbacks, `${p}._zod.def.innerType`),
157
+ };
142
158
  case "nullable":
143
- return { type: "nullable", inner: extractSchema(def.innerType) };
159
+ return {
160
+ type: "nullable",
161
+ inner: extractSchema(def.innerType, fallbacks, `${p}._zod.def.innerType`),
162
+ };
144
163
  case "any":
145
164
  return { type: "any" };
146
165
  case "unknown":
147
166
  return { type: "unknown" };
148
167
  case "readonly":
149
- return { type: "readonly", inner: extractSchema(def.innerType) };
168
+ return {
169
+ type: "readonly",
170
+ inner: extractSchema(def.innerType, fallbacks, `${p}._zod.def.innerType`),
171
+ };
150
172
  case "date": {
151
173
  const dateChecks = [];
152
174
  if (def.checks) {
@@ -179,37 +201,37 @@ export function extractSchema(zodSchema) {
179
201
  return { type: "date", checks: dateChecks };
180
202
  }
181
203
  case "tuple": {
182
- const items = def.items.map((item) => extractSchema(item));
183
- const rest = def.rest ? extractSchema(def.rest) : null;
204
+ const items = def.items.map((item, i) => extractSchema(item, fallbacks, `${p}._zod.def.items[${i}]`));
205
+ const rest = def.rest ? extractSchema(def.rest, fallbacks, `${p}._zod.def.rest`) : null;
184
206
  return { type: "tuple", items, rest };
185
207
  }
186
208
  case "record": {
187
209
  if (!def.valueType) {
188
- return { type: "fallback", reason: "unsupported" };
210
+ return makeFallback("unsupported", zodSchema, fallbacks, p);
189
211
  }
190
- const keyType = extractSchema(def.keyType);
191
- const valueType = extractSchema(def.valueType);
212
+ const keyType = extractSchema(def.keyType, fallbacks, `${p}._zod.def.keyType`);
213
+ const valueType = extractSchema(def.valueType, fallbacks, `${p}._zod.def.valueType`);
192
214
  return { type: "record", keyType, valueType };
193
215
  }
194
216
  case "default": {
195
- const inner = extractSchema(def.innerType);
217
+ const inner = extractSchema(def.innerType, fallbacks, `${p}._zod.def.innerType`);
196
218
  const defaultValue = def.defaultValue;
197
219
  try {
198
220
  JSON.stringify(defaultValue);
199
221
  }
200
222
  catch {
201
- return { type: "fallback", reason: "unsupported" };
223
+ return makeFallback("unsupported", zodSchema, fallbacks, p);
202
224
  }
203
225
  return { type: "default", inner, defaultValue };
204
226
  }
205
227
  case "intersection":
206
228
  return {
207
229
  type: "intersection",
208
- left: extractSchema(def.left),
209
- right: extractSchema(def.right),
230
+ left: extractSchema(def.left, fallbacks, `${p}._zod.def.left`),
231
+ right: extractSchema(def.right, fallbacks, `${p}._zod.def.right`),
210
232
  };
211
233
  default:
212
- return { type: "fallback", reason: "unsupported" };
234
+ return makeFallback("unsupported", zodSchema, fallbacks, p);
213
235
  }
214
236
  }
215
237
  //# sourceMappingURL=extractor.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"extractor.js","sourceRoot":"","sources":["../../src/core/extractor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"extractor.js","sourceRoot":"","sources":["../../src/core/extractor.ts"],"names":[],"mappings":"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"}
@@ -100,6 +100,8 @@ export interface NullableIR {
100
100
  export interface FallbackIR {
101
101
  type: "fallback";
102
102
  reason: "transform" | "refine" | "superRefine" | "custom" | "unsupported";
103
+ /** Index into the __fb[] fallback schemas array. Present when partial fallback is used. */
104
+ fallbackIndex?: number;
103
105
  }
104
106
  export interface AnyIR {
105
107
  type: "any";
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,6 +1,7 @@
1
1
  export type { CodeGenResult } from "#src/core/codegen/index.js";
2
2
  export { generateValidator } from "#src/core/codegen/index.js";
3
3
  export { compile, isCompiledSchema } from "#src/core/compile.js";
4
+ export type { FallbackEntry } from "#src/core/extractor.js";
4
5
  export { extractSchema } from "#src/core/extractor.js";
5
6
  export { createFallback } from "#src/core/runtime.js";
6
7
  export type { CheckIR, CompiledSchema, DateCheckIR, SafeParseError, SafeParseResult, SafeParseSuccess, SchemaIR, ZodErrorLike, ZodIssueLike, } from "#src/core/types.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,EAAE,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACjE,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,YAAY,EACV,OAAO,EACP,cAAc,EACd,WAAW,EACX,cAAc,EACd,eAAe,EACf,gBAAgB,EAChB,QAAQ,EACR,YAAY,EACZ,YAAY,GACb,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAClD,YAAY,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,EAAE,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACjE,YAAY,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,YAAY,EACV,OAAO,EACP,cAAc,EACd,WAAW,EACX,cAAc,EACd,eAAe,EACf,gBAAgB,EAChB,QAAQ,EACR,YAAY,EACZ,YAAY,GACb,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAClD,YAAY,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC"}
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,EAAE,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACjE,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAYtD,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,EAAE,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAEjE,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAYtD,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC"}
@@ -1,8 +1,10 @@
1
1
  import type { CodeGenResult } from "#src/core/codegen/context.js";
2
+ import type { FallbackEntry } from "#src/core/extractor.js";
2
3
  import type { ZodAotPluginOptions } from "./types.js";
3
4
  interface CompiledSchemaInfo {
4
5
  exportName: string;
5
6
  codegenResult: CodeGenResult;
7
+ fallbackEntries: FallbackEntry[];
6
8
  }
7
9
  /**
8
10
  * Check if a file should be transformed by the plugin.
@@ -1 +1 @@
1
- {"version":3,"file":"transform.d.ts","sourceRoot":"","sources":["../../src/unplugin/transform.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAMlE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAEtD,UAAU,kBAAkB;IAC1B,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,aAAa,CAAC;CAC9B;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAUlF;AAED;;;GAGG;AACH,wBAAsB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAuBpF;AA4CD;;GAEG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,kBAAkB,EAAE,GAAG,MAAM,CAyBjF;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAaxD"}
1
+ {"version":3,"file":"transform.d.ts","sourceRoot":"","sources":["../../src/unplugin/transform.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAGlE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAI5D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAEtD,UAAU,kBAAkB;IAC1B,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,aAAa,CAAC;IAC7B,eAAe,EAAE,aAAa,EAAE,CAAC;CAClC;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAUlF;AAED;;;GAGG;AACH,wBAAsB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CA0BpF;AAuDD;;GAEG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,kBAAkB,EAAE,GAAG,MAAM,CA2BjF;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAaxD"}
@@ -42,25 +42,34 @@ export async function transformCode(code, id) {
42
42
  // For each schema, run the compilation pipeline
43
43
  const compiled = [];
44
44
  for (const s of schemas) {
45
- const ir = extractSchema(s.schema);
46
- const result = generateValidator(ir, s.exportName);
47
- compiled.push({ exportName: s.exportName, codegenResult: result });
45
+ const fallbackEntries = [];
46
+ const ir = extractSchema(s.schema, fallbackEntries);
47
+ const result = generateValidator(ir, s.exportName, {
48
+ fallbackCount: fallbackEntries.length,
49
+ });
50
+ compiled.push({ exportName: s.exportName, codegenResult: result, fallbackEntries });
48
51
  }
49
52
  return rewriteSource(code, compiled);
50
53
  }
51
54
  /**
52
55
  * Generate an IIFE that replaces a compile() call with inline optimized code.
53
56
  */
54
- function generateInlineReplacement(schemaArgName, codegenResult) {
57
+ function generateInlineReplacement(schemaArgName, codegenResult, fallbackEntries) {
55
58
  const fnName = extractFunctionName(codegenResult.functionName);
56
59
  // Collect preamble lines (skip empty and marker)
57
60
  const preambleLines = codegenResult.code
58
61
  .split("\n")
59
62
  .filter((l) => l.trim() !== "" && l.trim() !== "/* zod-aot */");
60
63
  const preambleStr = preambleLines.length > 0 ? `${preambleLines.join("\n")}\n` : "";
64
+ // Build __fb declaration for partial fallback
65
+ let fbDecl = "";
66
+ if (fallbackEntries.length > 0) {
67
+ const exprs = fallbackEntries.map((fb) => `${schemaArgName}${fb.accessPath}`);
68
+ fbDecl = `var __fb=[${exprs.join(",")}];\n`;
69
+ }
61
70
  return [
62
71
  "/* @__PURE__ */ (() => {",
63
- preambleStr + codegenResult.functionName,
72
+ fbDecl + preambleStr + codegenResult.functionName,
64
73
  "return {",
65
74
  `parse(input){const r=${fnName}(input);if(r.success)return r.data;throw Object.assign(new Error("Validation failed"),r.error);},`,
66
75
  `safeParse:${fnName},`,
@@ -107,7 +116,8 @@ export function rewriteSource(code, schemas) {
107
116
  const schemaArgName = result.slice(openParenIndex + 1, closeParenIndex).trim();
108
117
  const prefix = match[1] ?? "";
109
118
  const fullMatch = result.slice(match.index, closeParenIndex + 1);
110
- const replacement = prefix + generateInlineReplacement(schemaArgName, schema.codegenResult);
119
+ const replacement = prefix +
120
+ generateInlineReplacement(schemaArgName, schema.codegenResult, schema.fallbackEntries);
111
121
  result = result.replace(fullMatch, replacement);
112
122
  }
113
123
  result = removeCompileImport(result);
@@ -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":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "zod-aot",
3
- "version": "0.0.6",
3
+ "version": "0.0.8",
4
4
  "description": "Compile Zod schemas into zero-overhead validation functions at build time",
5
5
  "type": "module",
6
6
  "keywords": [