zod-aot 0.19.1 → 0.20.0

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.
Files changed (135) hide show
  1. package/README.md +19 -0
  2. package/dist/cli/commands/generate.js +1 -1
  3. package/dist/cli/commands/generate.js.map +1 -1
  4. package/dist/cli/emitter.d.ts.map +1 -1
  5. package/dist/cli/emitter.js +16 -5
  6. package/dist/cli/emitter.js.map +1 -1
  7. package/dist/core/codegen/context.d.ts +33 -3
  8. package/dist/core/codegen/context.d.ts.map +1 -1
  9. package/dist/core/codegen/context.js +52 -4
  10. package/dist/core/codegen/context.js.map +1 -1
  11. package/dist/core/codegen/emit-issue.d.ts +50 -0
  12. package/dist/core/codegen/emit-issue.d.ts.map +1 -0
  13. package/dist/core/codegen/emit-issue.js +84 -0
  14. package/dist/core/codegen/emit-issue.js.map +1 -0
  15. package/dist/core/codegen/fast-path.d.ts.map +1 -1
  16. package/dist/core/codegen/fast-path.js +3 -13
  17. package/dist/core/codegen/fast-path.js.map +1 -1
  18. package/dist/core/codegen/index.d.ts +8 -4
  19. package/dist/core/codegen/index.d.ts.map +1 -1
  20. package/dist/core/codegen/index.js +19 -4
  21. package/dist/core/codegen/index.js.map +1 -1
  22. package/dist/core/codegen/issue-decls.d.ts +26 -0
  23. package/dist/core/codegen/issue-decls.d.ts.map +1 -0
  24. package/dist/core/codegen/issue-decls.js +34 -0
  25. package/dist/core/codegen/issue-decls.js.map +1 -0
  26. package/dist/core/codegen/schemas/array.d.ts.map +1 -1
  27. package/dist/core/codegen/schemas/array.js +6 -5
  28. package/dist/core/codegen/schemas/array.js.map +1 -1
  29. package/dist/core/codegen/schemas/bigint.d.ts.map +1 -1
  30. package/dist/core/codegen/schemas/bigint.js +6 -5
  31. package/dist/core/codegen/schemas/bigint.js.map +1 -1
  32. package/dist/core/codegen/schemas/boolean.d.ts.map +1 -1
  33. package/dist/core/codegen/schemas/boolean.js +2 -1
  34. package/dist/core/codegen/schemas/boolean.js.map +1 -1
  35. package/dist/core/codegen/schemas/date.d.ts.map +1 -1
  36. package/dist/core/codegen/schemas/date.js +7 -6
  37. package/dist/core/codegen/schemas/date.js.map +1 -1
  38. package/dist/core/codegen/schemas/discriminated-union.d.ts.map +1 -1
  39. package/dist/core/codegen/schemas/discriminated-union.js +2 -1
  40. package/dist/core/codegen/schemas/discriminated-union.js.map +1 -1
  41. package/dist/core/codegen/schemas/enum.d.ts.map +1 -1
  42. package/dist/core/codegen/schemas/enum.js +4 -2
  43. package/dist/core/codegen/schemas/enum.js.map +1 -1
  44. package/dist/core/codegen/schemas/file.d.ts.map +1 -1
  45. package/dist/core/codegen/schemas/file.js +7 -5
  46. package/dist/core/codegen/schemas/file.js.map +1 -1
  47. package/dist/core/codegen/schemas/literal.d.ts.map +1 -1
  48. package/dist/core/codegen/schemas/literal.js +7 -6
  49. package/dist/core/codegen/schemas/literal.js.map +1 -1
  50. package/dist/core/codegen/schemas/map.d.ts.map +1 -1
  51. package/dist/core/codegen/schemas/map.js +2 -1
  52. package/dist/core/codegen/schemas/map.js.map +1 -1
  53. package/dist/core/codegen/schemas/nan.d.ts.map +1 -1
  54. package/dist/core/codegen/schemas/nan.js +2 -1
  55. package/dist/core/codegen/schemas/nan.js.map +1 -1
  56. package/dist/core/codegen/schemas/never.d.ts.map +1 -1
  57. package/dist/core/codegen/schemas/never.js +2 -1
  58. package/dist/core/codegen/schemas/never.js.map +1 -1
  59. package/dist/core/codegen/schemas/null.d.ts.map +1 -1
  60. package/dist/core/codegen/schemas/null.js +2 -1
  61. package/dist/core/codegen/schemas/null.js.map +1 -1
  62. package/dist/core/codegen/schemas/number.d.ts.map +1 -1
  63. package/dist/core/codegen/schemas/number.js +17 -16
  64. package/dist/core/codegen/schemas/number.js.map +1 -1
  65. package/dist/core/codegen/schemas/object.d.ts.map +1 -1
  66. package/dist/core/codegen/schemas/object.js +4 -3
  67. package/dist/core/codegen/schemas/object.js.map +1 -1
  68. package/dist/core/codegen/schemas/record.d.ts.map +1 -1
  69. package/dist/core/codegen/schemas/record.js +2 -1
  70. package/dist/core/codegen/schemas/record.js.map +1 -1
  71. package/dist/core/codegen/schemas/set.d.ts.map +1 -1
  72. package/dist/core/codegen/schemas/set.js +4 -3
  73. package/dist/core/codegen/schemas/set.js.map +1 -1
  74. package/dist/core/codegen/schemas/string-bool.d.ts.map +1 -1
  75. package/dist/core/codegen/schemas/string-bool.js +5 -3
  76. package/dist/core/codegen/schemas/string-bool.js.map +1 -1
  77. package/dist/core/codegen/schemas/string.d.ts.map +1 -1
  78. package/dist/core/codegen/schemas/string.js +14 -13
  79. package/dist/core/codegen/schemas/string.js.map +1 -1
  80. package/dist/core/codegen/schemas/symbol.d.ts.map +1 -1
  81. package/dist/core/codegen/schemas/symbol.js +2 -1
  82. package/dist/core/codegen/schemas/symbol.js.map +1 -1
  83. package/dist/core/codegen/schemas/template-literal.d.ts.map +1 -1
  84. package/dist/core/codegen/schemas/template-literal.js +3 -2
  85. package/dist/core/codegen/schemas/template-literal.js.map +1 -1
  86. package/dist/core/codegen/schemas/tuple.d.ts.map +1 -1
  87. package/dist/core/codegen/schemas/tuple.js +5 -4
  88. package/dist/core/codegen/schemas/tuple.js.map +1 -1
  89. package/dist/core/codegen/schemas/undefined.d.ts.map +1 -1
  90. package/dist/core/codegen/schemas/undefined.js +2 -1
  91. package/dist/core/codegen/schemas/undefined.js.map +1 -1
  92. package/dist/core/codegen/schemas/void.d.ts.map +1 -1
  93. package/dist/core/codegen/schemas/void.js +2 -1
  94. package/dist/core/codegen/schemas/void.js.map +1 -1
  95. package/dist/core/codegen/slow-path.d.ts.map +1 -1
  96. package/dist/core/codegen/slow-path.js +4 -18
  97. package/dist/core/codegen/slow-path.js.map +1 -1
  98. package/dist/core/codegen/well-known-regex.d.ts +27 -0
  99. package/dist/core/codegen/well-known-regex.d.ts.map +1 -0
  100. package/dist/core/codegen/well-known-regex.js +51 -0
  101. package/dist/core/codegen/well-known-regex.js.map +1 -0
  102. package/dist/core/compile.d.ts.map +1 -1
  103. package/dist/core/compile.js +2 -1
  104. package/dist/core/compile.js.map +1 -1
  105. package/dist/core/iife.d.ts +12 -0
  106. package/dist/core/iife.d.ts.map +1 -1
  107. package/dist/core/iife.js +14 -8
  108. package/dist/core/iife.js.map +1 -1
  109. package/dist/core/pipeline.d.ts +10 -7
  110. package/dist/core/pipeline.d.ts.map +1 -1
  111. package/dist/core/pipeline.js +14 -1
  112. package/dist/core/pipeline.js.map +1 -1
  113. package/dist/core/types.d.ts +0 -1
  114. package/dist/core/types.d.ts.map +1 -1
  115. package/dist/discovery.js +1 -1
  116. package/dist/discovery.js.map +1 -1
  117. package/dist/unplugin/farm.d.ts +3 -0
  118. package/dist/unplugin/farm.d.ts.map +1 -0
  119. package/dist/unplugin/farm.js +3 -0
  120. package/dist/unplugin/farm.js.map +1 -0
  121. package/dist/unplugin/index.d.ts.map +1 -1
  122. package/dist/unplugin/index.js +18 -2
  123. package/dist/unplugin/index.js.map +1 -1
  124. package/dist/unplugin/transform.d.ts +1 -1
  125. package/dist/unplugin/transform.d.ts.map +1 -1
  126. package/dist/unplugin/transform.js +54 -17
  127. package/dist/unplugin/transform.js.map +1 -1
  128. package/dist/unplugin/types.d.ts +2 -0
  129. package/dist/unplugin/types.d.ts.map +1 -1
  130. package/dist/unplugin/types.js.map +1 -1
  131. package/dist/unplugin/virtual.d.ts +21 -0
  132. package/dist/unplugin/virtual.d.ts.map +1 -0
  133. package/dist/unplugin/virtual.js +57 -0
  134. package/dist/unplugin/virtual.js.map +1 -0
  135. package/package.json +9 -3
package/README.md CHANGED
@@ -151,6 +151,7 @@ npx zod-aot generate src/ --watch
151
151
  | Rolldown | `import zodAot from "zod-aot/rolldown"` |
152
152
  | rspack | `import zodAot from "zod-aot/rspack"` |
153
153
  | Bun | `import zodAot from "zod-aot/bun"` |
154
+ | Farm | `import zodAot from "zod-aot/farm"` |
154
155
 
155
156
  ### Options
156
157
 
@@ -170,6 +171,24 @@ zodAot({
170
171
  })
171
172
  ```
172
173
 
174
+ ### Bundle Size & Cross-File Dedup
175
+
176
+ Generated validators share a small runtime helper layer (`__mkv` validator
177
+ wrapper, issue factories like `__zaTS`/`__zaIT`, and well-known regexes for
178
+ `email`, `uuid`, `cuid`, `ipv4`, etc.).
179
+
180
+ On bundlers that support virtual modules — **Vite, Rollup, Rolldown, esbuild,
181
+ Farm, Bun** — the plugin imports these helpers from
182
+ `virtual:zod-aot/runtime`, so the bundler emits a single bundle-wide copy
183
+ regardless of how many files reference them. webpack and rspack fall back to
184
+ self-contained file-level helpers (a few hundred bytes per file) since they
185
+ reject the `virtual:` URI scheme at the resolver layer.
186
+
187
+ The result: a 5-file project with 10 schemas all using `z.email()` and
188
+ `z.uuid()` produces a bundle where each shared regex appears exactly **once**.
189
+ Set `zodCompat: false` to additionally drop the original Zod schema reference
190
+ when you don't need `instanceof` / `.shape` access on the compiled output.
191
+
173
192
  ### autoDiscover: Side Effects Warning
174
193
 
175
194
  With `autoDiscover`, the plugin executes files to inspect their exports. If a file imports Zod AND has side effects (starts a server, connects to a database), those side effects run at build time.
@@ -78,7 +78,7 @@ export async function generateFile(filePath, outputFlag, options) {
78
78
  if (schemas.length === 0) {
79
79
  return null;
80
80
  }
81
- const codegenResults = compileSchemas(schemas);
81
+ const codegenResults = compileSchemas(schemas, { mode: "inline" });
82
82
  const outputPath = resolveOutputPath(filePath, outputFlag);
83
83
  const sourceRelPath = path.relative(path.dirname(outputPath), filePath);
84
84
  const content = generateCompiledFileContent(codegenResults, sourceRelPath, {
@@ -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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"}
@@ -1 +1 @@
1
- {"version":3,"file":"emitter.d.ts","sourceRoot":"","sources":["../../src/cli/emitter.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAEhE;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B;;;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;CACjC;AAED,wBAAgB,2BAA2B,CACzC,OAAO,EAAE,kBAAkB,EAAE,EAC7B,aAAa,EAAE,MAAM,EACrB,OAAO,CAAC,EAAE,cAAc,GACvB,MAAM,CAyBR;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":"AASA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAEhE;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B;;;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;CACjC;AAED,wBAAgB,2BAA2B,CACzC,OAAO,EAAE,kBAAkB,EAAE,EAC7B,aAAa,EAAE,MAAM,EACrB,OAAO,CAAC,EAAE,cAAc,GACvB,MAAM,CAwCR;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,26 +1,37 @@
1
1
  import fs from "node:fs";
2
2
  import path from "node:path";
3
- import { generateIIFE, ZOD_CONFIG_IMPORT, ZOD_MSG_DECLARATION } from "#src/core/iife.js";
3
+ import { FIN_DECL, generateIIFE, MK_VALIDATOR_DECL, ZOD_CONFIG_IMPORT, ZOD_MSG_DECLARATION, } from "#src/core/iife.js";
4
4
  export function generateCompiledFileContent(schemas, sourceRelPath, options) {
5
- const importNames = schemas.map((s) => `${s.exportName} as __src_${s.exportName}`).join(", ");
6
5
  let importPath = sourceRelPath.replace(/\.[cm]?[jt]sx?$/, "");
7
6
  if (!importPath.startsWith(".")) {
8
7
  importPath = `./${importPath}`;
9
8
  }
10
9
  const zodCompat = options?.zodCompat !== false;
10
+ // A schema needs the source import when:
11
+ // - zodCompat: true (uses Object.create(schema))
12
+ // - has refEntries (fallback schemas referenced via __rf[])
13
+ const schemasNeedingImport = schemas.filter((s) => zodCompat || s.refEntries.length > 0);
11
14
  const exports = schemas.map((schema) => {
12
- const schemaExpr = `(__src_${schema.exportName} as any).schema`;
15
+ const needsImport = zodCompat || schema.refEntries.length > 0;
16
+ const schemaExpr = needsImport ? `(__src_${schema.exportName} as any).schema` : "";
13
17
  return `export const ${schema.exportName} = ${generateIIFE(schemaExpr, schema, { zodCompat })};`;
14
18
  });
19
+ const importLine = schemasNeedingImport.length > 0
20
+ ? [
21
+ `import { ${schemasNeedingImport.map((s) => `${s.exportName} as __src_${s.exportName}`).join(", ")} } from "${importPath}";`,
22
+ "",
23
+ ]
24
+ : [];
15
25
  return [
16
26
  "// AUTO-GENERATED by zod-aot — DO NOT EDIT",
17
27
  `// Source: ${sourceRelPath}`,
18
28
  "",
19
29
  ZOD_CONFIG_IMPORT,
20
30
  ZOD_MSG_DECLARATION,
31
+ MK_VALIDATOR_DECL,
32
+ FIN_DECL,
21
33
  "",
22
- `import { ${importNames} } from "${importPath}";`,
23
- "",
34
+ ...importLine,
24
35
  ...exports,
25
36
  "",
26
37
  ].join("\n");
@@ -1 +1 @@
1
- {"version":3,"file":"emitter.js","sourceRoot":"","sources":["../../src/cli/emitter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAczF,MAAM,UAAU,2BAA2B,CACzC,OAA6B,EAC7B,aAAqB,EACrB,OAAwB;IAExB,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,UAAU,aAAa,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC9F,IAAI,UAAU,GAAG,aAAa,CAAC,OAAO,CAAC,iBAAiB,EAAE,EAAE,CAAC,CAAC;IAC9D,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QAChC,UAAU,GAAG,KAAK,UAAU,EAAE,CAAC;IACjC,CAAC;IAED,MAAM,SAAS,GAAG,OAAO,EAAE,SAAS,KAAK,KAAK,CAAC;IAC/C,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE;QACrC,MAAM,UAAU,GAAG,UAAU,MAAM,CAAC,UAAU,iBAAiB,CAAC;QAChE,OAAO,gBAAgB,MAAM,CAAC,UAAU,MAAM,YAAY,CAAC,UAAU,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,CAAC,GAAG,CAAC;IACnG,CAAC,CAAC,CAAC;IAEH,OAAO;QACL,4CAA4C;QAC5C,cAAc,aAAa,EAAE;QAC7B,EAAE;QACF,iBAAiB;QACjB,mBAAmB;QACnB,EAAE;QACF,YAAY,WAAW,YAAY,UAAU,IAAI;QACjD,EAAE;QACF,GAAG,OAAO;QACV,EAAE;KACH,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAAC,SAAiB,EAAE,UAA8B;IACjF,IAAI,UAAU,EAAE,CAAC;QACf,gFAAgF;QAChF,IAAI,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;YAC9D,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC;YACnE,OAAO,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,GAAG,QAAQ,cAAc,CAAC,CAAC;QAC1D,CAAC;QACD,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,yCAAyC;IACzC,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IACpC,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC;IACnE,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ,cAAc,CAAC,CAAC;AACnD,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,UAAkB,EAAE,OAAe;IACzE,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IACrC,MAAM,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAClD,MAAM,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,UAAU,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AAC5D,CAAC"}
1
+ {"version":3,"file":"emitter.js","sourceRoot":"","sources":["../../src/cli/emitter.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,17 @@
1
1
  import type { BigIntCheckIR, CheckIR, CheckOrEffectIR, DateCheckIR, SchemaIR, SetCheckIR } from "../types.js";
2
+ /** Codegen output mode. "inline" emits self-contained code (CLI .compiled.ts). "lean" emits references to imports from "virtual:zod-aot/runtime" (unplugin). */
3
+ export type CodegenMode = "inline" | "lean";
2
4
  export interface CodeGenResult {
3
5
  code: string;
4
6
  functionDef: string;
5
7
  /** Number of fallback schemas referenced by __rf[N] in the generated code. 0 = no fallbacks. */
6
8
  refCount: number;
9
+ /**
10
+ * Helper names referenced by this schema in lean mode (e.g. "__zaTS", "__zaReEmail").
11
+ * Used by the unplugin transform to construct the `import { ... } from "virtual:zod-aot/runtime"` line.
12
+ * Always empty in inline mode.
13
+ */
14
+ usedHelpers: Set<string>;
7
15
  }
8
16
  /** Shared mutable state for code generation. Fast and slow paths share the same instance. */
9
17
  export interface CodeGenContext {
@@ -12,6 +20,10 @@ export interface CodeGenContext {
12
20
  fnName: string;
13
21
  /** Deduplicates regex patterns: same pattern string → same preamble variable name. */
14
22
  regexCache: Map<string, string>;
23
+ /** Codegen output mode. */
24
+ mode: CodegenMode;
25
+ /** Names of helpers from "virtual:zod-aot/runtime" referenced in this schema (lean mode only). */
26
+ usedHelpers: Set<string>;
15
27
  }
16
28
  /** Context object for slow-path (error-collecting) generator functions. */
17
29
  export interface SlowGen {
@@ -59,12 +71,30 @@ export interface FastGen {
59
71
  }
60
72
  /** Fast-path generator function signature — registered in fastRegistry. */
61
73
  export type FastGenerator<T extends SchemaIR = SchemaIR> = (ir: T, g: FastGen) => string | null;
62
- export declare const EMAIL_REGEX_SOURCE: string;
63
- /** Fallback UUID regex used when the extractor doesn't provide a pattern (e.g. in unit tests). */
64
- export declare const UUID_REGEX_SOURCE = "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$";
74
+ /** Allocate a fresh `__${prefix}_${n}` identifier and bump the shared counter. */
75
+ export declare function emitTemp(ctx: CodeGenContext, prefix: string): string;
76
+ /**
77
+ * Resolve a regex pattern to a runtime variable name.
78
+ * Lean mode short-circuits well-known patterns to virtual-module names so the
79
+ * bundler can dedup across files; everything else is cached + declared in the
80
+ * per-IIFE preamble exactly once per pattern.
81
+ */
82
+ export declare function emitRegex(ctx: CodeGenContext, prefix: string, pattern: string): string;
83
+ /** Declare a `new Set([...])` in the preamble and return its variable name. */
84
+ export declare function emitSet(ctx: CodeGenContext, prefix: string, values: readonly unknown[]): string;
65
85
  /** Enum values at or below this count use inline === checks instead of Set.has(). */
66
86
  export declare const ENUM_INLINE_THRESHOLD = 3;
67
87
  export declare function escapeString(s: string): string;
88
+ /**
89
+ * Extend a path expression with a static string key.
90
+ * Avoids [].concat("key") at root level; falls back to .concat() for nested paths.
91
+ */
92
+ export declare function extendStaticPath(parentPath: string, key: string): string;
93
+ /**
94
+ * Extend a path expression with a numeric index.
95
+ * Avoids [].concat(0) at root level; falls back to .concat() for nested paths.
96
+ */
97
+ export declare function extendStaticPathIndex(parentPath: string, index: number): string;
68
98
  /**
69
99
  * Check if a SchemaIR tree contains any value-mutating operations
70
100
  * (coerce, default, catch) that would write back to the input expression.
@@ -1 +1 @@
1
- {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../src/core/codegen/context.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../src/core/codegen/context.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,37 @@
1
- // Zod v4's email regex pattern (as a source string for new RegExp())
2
- export const EMAIL_REGEX_SOURCE = String.raw `^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$`;
3
- /** Fallback UUID regex used when the extractor doesn't provide a pattern (e.g. in unit tests). */
4
- export const UUID_REGEX_SOURCE = "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$";
1
+ import { lookupWellKnownRegex } from "./well-known-regex.js";
2
+ // ─── Shared emit helpers (used by both slow-path and fast-path factories) ────
3
+ /** Allocate a fresh `__${prefix}_${n}` identifier and bump the shared counter. */
4
+ export function emitTemp(ctx, prefix) {
5
+ return `__${prefix}_${ctx.counter++}`;
6
+ }
7
+ /**
8
+ * Resolve a regex pattern to a runtime variable name.
9
+ * Lean mode short-circuits well-known patterns to virtual-module names so the
10
+ * bundler can dedup across files; everything else is cached + declared in the
11
+ * per-IIFE preamble exactly once per pattern.
12
+ */
13
+ export function emitRegex(ctx, prefix, pattern) {
14
+ if (ctx.mode === "lean") {
15
+ const wellKnown = lookupWellKnownRegex(pattern);
16
+ if (wellKnown !== null) {
17
+ ctx.usedHelpers.add(wellKnown);
18
+ return wellKnown;
19
+ }
20
+ }
21
+ const cached = ctx.regexCache.get(pattern);
22
+ if (cached)
23
+ return cached;
24
+ const name = `__re_${prefix}_${ctx.counter++}`;
25
+ ctx.preamble.push(`var ${name}=new RegExp(${escapeString(pattern)});`);
26
+ ctx.regexCache.set(pattern, name);
27
+ return name;
28
+ }
29
+ /** Declare a `new Set([...])` in the preamble and return its variable name. */
30
+ export function emitSet(ctx, prefix, values) {
31
+ const name = `__set_${prefix}_${ctx.counter++}`;
32
+ ctx.preamble.push(`var ${name}=new Set(${JSON.stringify([...values])});`);
33
+ return name;
34
+ }
5
35
  /** Enum values at or below this count use inline === checks instead of Set.has(). */
6
36
  export const ENUM_INLINE_THRESHOLD = 3;
7
37
  const CHECK_PRIORITY = {
@@ -34,6 +64,24 @@ const CHECK_PRIORITY = {
34
64
  export function escapeString(s) {
35
65
  return JSON.stringify(s);
36
66
  }
67
+ /**
68
+ * Extend a path expression with a static string key.
69
+ * Avoids [].concat("key") at root level; falls back to .concat() for nested paths.
70
+ */
71
+ export function extendStaticPath(parentPath, key) {
72
+ if (parentPath === "[]")
73
+ return `[${escapeString(key)}]`;
74
+ return `${parentPath}.concat(${escapeString(key)})`;
75
+ }
76
+ /**
77
+ * Extend a path expression with a numeric index.
78
+ * Avoids [].concat(0) at root level; falls back to .concat() for nested paths.
79
+ */
80
+ export function extendStaticPathIndex(parentPath, index) {
81
+ if (parentPath === "[]")
82
+ return `[${index}]`;
83
+ return `${parentPath}.concat(${index})`;
84
+ }
37
85
  /**
38
86
  * Check if a SchemaIR tree contains any value-mutating operations
39
87
  * (coerce, default, catch) that would write back to the input expression.
@@ -1 +1 @@
1
- {"version":3,"file":"context.js","sourceRoot":"","sources":["../../../src/core/codegen/context.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"context.js","sourceRoot":"","sources":["../../../src/core/codegen/context.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAwF7D,gFAAgF;AAEhF,kFAAkF;AAClF,MAAM,UAAU,QAAQ,CAAC,GAAmB,EAAE,MAAc;IAC1D,OAAO,KAAK,MAAM,IAAI,GAAG,CAAC,OAAO,EAAE,EAAE,CAAC;AACxC,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,SAAS,CAAC,GAAmB,EAAE,MAAc,EAAE,OAAe;IAC5E,IAAI,GAAG,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;QACxB,MAAM,SAAS,GAAG,oBAAoB,CAAC,OAAO,CAAC,CAAC;QAChD,IAAI,SAAS,KAAK,IAAI,EAAE,CAAC;YACvB,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YAC/B,OAAO,SAAS,CAAC;QACnB,CAAC;IACH,CAAC;IACD,MAAM,MAAM,GAAG,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAC3C,IAAI,MAAM;QAAE,OAAO,MAAM,CAAC;IAC1B,MAAM,IAAI,GAAG,QAAQ,MAAM,IAAI,GAAG,CAAC,OAAO,EAAE,EAAE,CAAC;IAC/C,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,IAAI,eAAe,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACvE,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAClC,OAAO,IAAI,CAAC;AACd,CAAC;AAED,+EAA+E;AAC/E,MAAM,UAAU,OAAO,CAAC,GAAmB,EAAE,MAAc,EAAE,MAA0B;IACrF,MAAM,IAAI,GAAG,SAAS,MAAM,IAAI,GAAG,CAAC,OAAO,EAAE,EAAE,CAAC;IAChD,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,IAAI,YAAY,IAAI,CAAC,SAAS,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC;IAC1E,OAAO,IAAI,CAAC;AACd,CAAC;AAED,qFAAqF;AACrF,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,CAAC;AAEvC,MAAM,cAAc,GAA2B;IAC7C,2CAA2C;IAC3C,UAAU,EAAE,EAAE;IACd,UAAU,EAAE,EAAE;IACd,aAAa,EAAE,EAAE;IACjB,QAAQ,EAAE,EAAE;IACZ,QAAQ,EAAE,EAAE;IACZ,8CAA8C;IAC9C,aAAa,EAAE,EAAE;IACjB,oBAAoB;IACpB,YAAY,EAAE,EAAE;IAChB,SAAS,EAAE,EAAE;IACb,mBAAmB,EAAE,EAAE;IACvB,gBAAgB,EAAE,EAAE;IACpB,iBAAiB,EAAE,EAAE;IACrB,cAAc,EAAE,EAAE;IAClB,SAAS;IACT,WAAW,EAAE,EAAE;IACf,kBAAkB,EAAE,EAAE;IACtB,iDAAiD;IACjD,WAAW,EAAE,EAAE;IACf,SAAS,EAAE,EAAE;IACb,oCAAoC;IACpC,QAAQ,EAAE,EAAE;IACZ,yBAAyB;IACzB,aAAa,EAAE,EAAE;CAClB,CAAC;AAEF,MAAM,UAAU,YAAY,CAAC,CAAS;IACpC,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;AAC3B,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,gBAAgB,CAAC,UAAkB,EAAE,GAAW;IAC9D,IAAI,UAAU,KAAK,IAAI;QAAE,OAAO,IAAI,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC;IACzD,OAAO,GAAG,UAAU,WAAW,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC;AACtD,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,qBAAqB,CAAC,UAAkB,EAAE,KAAa;IACrE,IAAI,UAAU,KAAK,IAAI;QAAE,OAAO,IAAI,KAAK,GAAG,CAAC;IAC7C,OAAO,GAAG,UAAU,WAAW,KAAK,GAAG,CAAC;AAC1C,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,WAAW,CAAC,EAAY;IACtC,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC;QAChB,KAAK,QAAQ,CAAC;QACd,KAAK,QAAQ,CAAC;QACd,KAAK,SAAS,CAAC;QACf,KAAK,QAAQ,CAAC;QACd,KAAK,MAAM;YACT,OAAO,EAAE,CAAC,MAAM,KAAK,IAAI,CAAC;QAC5B,KAAK,SAAS,CAAC;QACf,KAAK,OAAO,CAAC;QACb,KAAK,QAAQ,CAAC;QACd,KAAK,UAAU,CAAC;QAChB,KAAK,YAAY;YACf,OAAO,IAAI,CAAC;QACd,KAAK,QAAQ;YACX,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACxD,KAAK,OAAO;YACV,OAAO,WAAW,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC;QACjC,KAAK,OAAO;YACV,OAAO,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,KAAK,IAAI,IAAI,WAAW,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;QAClF,KAAK,QAAQ;YACX,OAAO,WAAW,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC;QACnC,KAAK,UAAU,CAAC;QAChB,KAAK,UAAU,CAAC;QAChB,KAAK,UAAU;YACb,OAAO,WAAW,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;QAC/B,KAAK,OAAO,CAAC;QACb,KAAK,oBAAoB;YACvB,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACtC,KAAK,cAAc;YACjB,OAAO,WAAW,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,WAAW,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;QACvD,KAAK,MAAM;YACT,OAAO,WAAW,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,WAAW,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;QACnD,KAAK,KAAK;YACR,OAAO,WAAW,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC;QACnC,KAAK,KAAK;YACR,OAAO,WAAW,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,WAAW,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC;QAC9D,KAAK,MAAM;YACT,OAAO,KAAK,CAAC;QACf;YACE,OAAO,KAAK,CAAC;IACjB,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,aAAa,CAC3B,CAAqD,EACrD,CAAqD;IAErD,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;AACzE,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,2BAA2B,CAEzC,MAAW;IACX,MAAM,MAAM,GAAQ,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAC7C,MAAM,UAAU,GAA0C,EAAE,CAAC;IAE7D,+DAA+D;IAC/D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACvC,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAM,CAAC;QAC7B,IAAI,KAAK,CAAC,IAAI,KAAK,eAAe,EAAE,CAAC;YACnC,MAAM,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;QACpB,CAAC;aAAM,CAAC;YACN,UAAU,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC,EAAE,CAAC,CAAC;QAC/C,CAAC;IACH,CAAC;IAED,sDAAsD;IACtD,UAAU,CAAC,IAAI,CACb,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CACtF,CAAC;IAEF,qDAAqD;IACrD,IAAI,EAAE,GAAG,CAAC,CAAC;IACX,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACvC,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,SAAS,EAAE,CAAC;YAC5B,MAAM,KAAK,GAAG,UAAU,CAAC,EAAE,EAAE,CAAgC,CAAC;YAC9D,MAAM,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC;QAC1B,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -0,0 +1,50 @@
1
+ /**
2
+ * Issue object emit helpers.
3
+ *
4
+ * Each helper returns a string of the form `_e.push(...)` (or equivalent on a
5
+ * caller-supplied issues variable). Two emit modes:
6
+ *
7
+ * - inline (CLI .compiled.ts): emits the literal `{code:"too_small",...}` object.
8
+ * - lean (unplugin): emits a call like `__zaTS(min,origin,inclusive,input,path)`
9
+ * and registers the helper in `ctx.usedHelpers` so the transform layer can
10
+ * construct the corresponding `import` from `"virtual:zod-aot/runtime"`.
11
+ *
12
+ * Centralizing all issue emission here means schema codegen files don't carry
13
+ * the inline/lean branching; they just call `tooSmall(g, ...)` etc.
14
+ */
15
+ import type { CodeGenContext } from "./context.js";
16
+ /** Common slim slice of SlowGen + FastGen needed for issue emission. */
17
+ interface IssueGen {
18
+ readonly issues: string;
19
+ readonly input: string;
20
+ readonly path: string;
21
+ readonly ctx: CodeGenContext;
22
+ }
23
+ export declare function tooSmall(g: IssueGen, minimum: string | number, origin: string, inclusive: boolean, options?: {
24
+ exact?: boolean;
25
+ input?: string;
26
+ path?: string;
27
+ }): string;
28
+ export declare function tooBig(g: IssueGen, maximum: string | number, origin: string, inclusive: boolean, options?: {
29
+ exact?: boolean;
30
+ input?: string;
31
+ path?: string;
32
+ }): string;
33
+ export declare function invalidType(g: IssueGen, expected: string, options?: {
34
+ input?: string;
35
+ path?: string;
36
+ extra?: string;
37
+ }): string;
38
+ export declare function invalidFormat(g: IssueGen, format: string | {
39
+ expr: string;
40
+ }, options?: {
41
+ input?: string;
42
+ path?: string;
43
+ extra?: string;
44
+ }): string;
45
+ export declare function invalidValue(g: IssueGen, valuesExpr: string, options?: {
46
+ input?: string;
47
+ path?: string;
48
+ }): string;
49
+ export {};
50
+ //# sourceMappingURL=emit-issue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"emit-issue.d.ts","sourceRoot":"","sources":["../../../src/core/codegen/emit-issue.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAGnD,wEAAwE;AACxE,UAAU,QAAQ;IAChB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,GAAG,EAAE,cAAc,CAAC;CAC9B;AAMD,wBAAgB,QAAQ,CACtB,CAAC,EAAE,QAAQ,EACX,OAAO,EAAE,MAAM,GAAG,MAAM,EACxB,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,OAAO,EAClB,OAAO,CAAC,EAAE;IAAE,KAAK,CAAC,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,GAC3D,MAAM,CAsBR;AAED,wBAAgB,MAAM,CACpB,CAAC,EAAE,QAAQ,EACX,OAAO,EAAE,MAAM,GAAG,MAAM,EACxB,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,OAAO,EAClB,OAAO,CAAC,EAAE;IAAE,KAAK,CAAC,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,GAC3D,MAAM,CAsBR;AAED,wBAAgB,WAAW,CACzB,CAAC,EAAE,QAAQ,EACX,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,GAC1D,MAAM,CAYR;AAED,wBAAgB,aAAa,CAC3B,CAAC,EAAE,QAAQ,EACX,MAAM,EAAE,MAAM,GAAG;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,EACjC,OAAO,CAAC,EAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,GAC1D,MAAM,CAcR;AAED,wBAAgB,YAAY,CAC1B,CAAC,EAAE,QAAQ,EACX,UAAU,EAAE,MAAM,EAClB,OAAO,CAAC,EAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,GAC1C,MAAM,CAQR"}
@@ -0,0 +1,84 @@
1
+ /**
2
+ * Issue object emit helpers.
3
+ *
4
+ * Each helper returns a string of the form `_e.push(...)` (or equivalent on a
5
+ * caller-supplied issues variable). Two emit modes:
6
+ *
7
+ * - inline (CLI .compiled.ts): emits the literal `{code:"too_small",...}` object.
8
+ * - lean (unplugin): emits a call like `__zaTS(min,origin,inclusive,input,path)`
9
+ * and registers the helper in `ctx.usedHelpers` so the transform layer can
10
+ * construct the corresponding `import` from `"virtual:zod-aot/runtime"`.
11
+ *
12
+ * Centralizing all issue emission here means schema codegen files don't carry
13
+ * the inline/lean branching; they just call `tooSmall(g, ...)` etc.
14
+ */
15
+ import { escapeString } from "./context.js";
16
+ function pushIssue(g, body) {
17
+ return `${g.issues}.push(${body});`;
18
+ }
19
+ export function tooSmall(g, minimum, origin, inclusive, options) {
20
+ const input = options?.input ?? g.input;
21
+ const path = options?.path ?? g.path;
22
+ const exact = options?.exact === true;
23
+ if (g.ctx.mode === "lean") {
24
+ if (exact) {
25
+ g.ctx.usedHelpers.add("__zaTSx");
26
+ return pushIssue(g, `__zaTSx(${minimum},${escapeString(origin)},${input},${path})`);
27
+ }
28
+ g.ctx.usedHelpers.add("__zaTS");
29
+ return pushIssue(g, `__zaTS(${minimum},${escapeString(origin)},${inclusive},${input},${path})`);
30
+ }
31
+ if (exact) {
32
+ return pushIssue(g, `{code:"too_small",minimum:${minimum},origin:${escapeString(origin)},inclusive:true,exact:true,input:${input},path:${path}}`);
33
+ }
34
+ return pushIssue(g, `{code:"too_small",minimum:${minimum},origin:${escapeString(origin)},inclusive:${inclusive},input:${input},path:${path}}`);
35
+ }
36
+ export function tooBig(g, maximum, origin, inclusive, options) {
37
+ const input = options?.input ?? g.input;
38
+ const path = options?.path ?? g.path;
39
+ const exact = options?.exact === true;
40
+ if (g.ctx.mode === "lean") {
41
+ if (exact) {
42
+ g.ctx.usedHelpers.add("__zaTBx");
43
+ return pushIssue(g, `__zaTBx(${maximum},${escapeString(origin)},${input},${path})`);
44
+ }
45
+ g.ctx.usedHelpers.add("__zaTB");
46
+ return pushIssue(g, `__zaTB(${maximum},${escapeString(origin)},${inclusive},${input},${path})`);
47
+ }
48
+ if (exact) {
49
+ return pushIssue(g, `{code:"too_big",maximum:${maximum},origin:${escapeString(origin)},inclusive:true,exact:true,input:${input},path:${path}}`);
50
+ }
51
+ return pushIssue(g, `{code:"too_big",maximum:${maximum},origin:${escapeString(origin)},inclusive:${inclusive},input:${input},path:${path}}`);
52
+ }
53
+ export function invalidType(g, expected, options) {
54
+ const input = options?.input ?? g.input;
55
+ const path = options?.path ?? g.path;
56
+ if (g.ctx.mode === "lean" && !options?.extra) {
57
+ g.ctx.usedHelpers.add("__zaIT");
58
+ return pushIssue(g, `__zaIT(${escapeString(expected)},${input},${path})`);
59
+ }
60
+ const extra = options?.extra ? `,${options.extra}` : "";
61
+ return pushIssue(g, `{code:"invalid_type",expected:${escapeString(expected)}${extra},input:${input},path:${path}}`);
62
+ }
63
+ export function invalidFormat(g, format, options) {
64
+ const input = options?.input ?? g.input;
65
+ const path = options?.path ?? g.path;
66
+ const formatExpr = typeof format === "string" ? escapeString(format) : format.expr;
67
+ if (g.ctx.mode === "lean") {
68
+ g.ctx.usedHelpers.add("__zaIF");
69
+ const extraArg = options?.extra ? `,{${options.extra}}` : "";
70
+ return pushIssue(g, `__zaIF(${formatExpr},${input},${path}${extraArg})`);
71
+ }
72
+ const extra = options?.extra ? `,${options.extra}` : "";
73
+ return pushIssue(g, `{code:"invalid_format",format:${formatExpr}${extra},input:${input},path:${path}}`);
74
+ }
75
+ export function invalidValue(g, valuesExpr, options) {
76
+ const input = options?.input ?? g.input;
77
+ const path = options?.path ?? g.path;
78
+ if (g.ctx.mode === "lean") {
79
+ g.ctx.usedHelpers.add("__zaIV");
80
+ return pushIssue(g, `__zaIV(${valuesExpr},${input},${path})`);
81
+ }
82
+ return pushIssue(g, `{code:"invalid_value",values:${valuesExpr},input:${input},path:${path}}`);
83
+ }
84
+ //# sourceMappingURL=emit-issue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"emit-issue.js","sourceRoot":"","sources":["../../../src/core/codegen/emit-issue.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAGH,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAU5C,SAAS,SAAS,CAAC,CAAW,EAAE,IAAY;IAC1C,OAAO,GAAG,CAAC,CAAC,MAAM,SAAS,IAAI,IAAI,CAAC;AACtC,CAAC;AAED,MAAM,UAAU,QAAQ,CACtB,CAAW,EACX,OAAwB,EACxB,MAAc,EACd,SAAkB,EAClB,OAA4D;IAE5D,MAAM,KAAK,GAAG,OAAO,EAAE,KAAK,IAAI,CAAC,CAAC,KAAK,CAAC;IACxC,MAAM,IAAI,GAAG,OAAO,EAAE,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC;IACrC,MAAM,KAAK,GAAG,OAAO,EAAE,KAAK,KAAK,IAAI,CAAC;IACtC,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;QAC1B,IAAI,KAAK,EAAE,CAAC;YACV,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YACjC,OAAO,SAAS,CAAC,CAAC,EAAE,WAAW,OAAO,IAAI,YAAY,CAAC,MAAM,CAAC,IAAI,KAAK,IAAI,IAAI,GAAG,CAAC,CAAC;QACtF,CAAC;QACD,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAChC,OAAO,SAAS,CAAC,CAAC,EAAE,UAAU,OAAO,IAAI,YAAY,CAAC,MAAM,CAAC,IAAI,SAAS,IAAI,KAAK,IAAI,IAAI,GAAG,CAAC,CAAC;IAClG,CAAC;IACD,IAAI,KAAK,EAAE,CAAC;QACV,OAAO,SAAS,CACd,CAAC,EACD,6BAA6B,OAAO,WAAW,YAAY,CAAC,MAAM,CAAC,oCAAoC,KAAK,SAAS,IAAI,GAAG,CAC7H,CAAC;IACJ,CAAC;IACD,OAAO,SAAS,CACd,CAAC,EACD,6BAA6B,OAAO,WAAW,YAAY,CAAC,MAAM,CAAC,cAAc,SAAS,UAAU,KAAK,SAAS,IAAI,GAAG,CAC1H,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,MAAM,CACpB,CAAW,EACX,OAAwB,EACxB,MAAc,EACd,SAAkB,EAClB,OAA4D;IAE5D,MAAM,KAAK,GAAG,OAAO,EAAE,KAAK,IAAI,CAAC,CAAC,KAAK,CAAC;IACxC,MAAM,IAAI,GAAG,OAAO,EAAE,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC;IACrC,MAAM,KAAK,GAAG,OAAO,EAAE,KAAK,KAAK,IAAI,CAAC;IACtC,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;QAC1B,IAAI,KAAK,EAAE,CAAC;YACV,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YACjC,OAAO,SAAS,CAAC,CAAC,EAAE,WAAW,OAAO,IAAI,YAAY,CAAC,MAAM,CAAC,IAAI,KAAK,IAAI,IAAI,GAAG,CAAC,CAAC;QACtF,CAAC;QACD,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAChC,OAAO,SAAS,CAAC,CAAC,EAAE,UAAU,OAAO,IAAI,YAAY,CAAC,MAAM,CAAC,IAAI,SAAS,IAAI,KAAK,IAAI,IAAI,GAAG,CAAC,CAAC;IAClG,CAAC;IACD,IAAI,KAAK,EAAE,CAAC;QACV,OAAO,SAAS,CACd,CAAC,EACD,2BAA2B,OAAO,WAAW,YAAY,CAAC,MAAM,CAAC,oCAAoC,KAAK,SAAS,IAAI,GAAG,CAC3H,CAAC;IACJ,CAAC;IACD,OAAO,SAAS,CACd,CAAC,EACD,2BAA2B,OAAO,WAAW,YAAY,CAAC,MAAM,CAAC,cAAc,SAAS,UAAU,KAAK,SAAS,IAAI,GAAG,CACxH,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,WAAW,CACzB,CAAW,EACX,QAAgB,EAChB,OAA2D;IAE3D,MAAM,KAAK,GAAG,OAAO,EAAE,KAAK,IAAI,CAAC,CAAC,KAAK,CAAC;IACxC,MAAM,IAAI,GAAG,OAAO,EAAE,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC;IACrC,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,KAAK,MAAM,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC;QAC7C,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAChC,OAAO,SAAS,CAAC,CAAC,EAAE,UAAU,YAAY,CAAC,QAAQ,CAAC,IAAI,KAAK,IAAI,IAAI,GAAG,CAAC,CAAC;IAC5E,CAAC;IACD,MAAM,KAAK,GAAG,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IACxD,OAAO,SAAS,CACd,CAAC,EACD,iCAAiC,YAAY,CAAC,QAAQ,CAAC,GAAG,KAAK,UAAU,KAAK,SAAS,IAAI,GAAG,CAC/F,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,aAAa,CAC3B,CAAW,EACX,MAAiC,EACjC,OAA2D;IAE3D,MAAM,KAAK,GAAG,OAAO,EAAE,KAAK,IAAI,CAAC,CAAC,KAAK,CAAC;IACxC,MAAM,IAAI,GAAG,OAAO,EAAE,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC;IACrC,MAAM,UAAU,GAAG,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC;IACnF,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;QAC1B,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAChC,MAAM,QAAQ,GAAG,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7D,OAAO,SAAS,CAAC,CAAC,EAAE,UAAU,UAAU,IAAI,KAAK,IAAI,IAAI,GAAG,QAAQ,GAAG,CAAC,CAAC;IAC3E,CAAC;IACD,MAAM,KAAK,GAAG,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IACxD,OAAO,SAAS,CACd,CAAC,EACD,iCAAiC,UAAU,GAAG,KAAK,UAAU,KAAK,SAAS,IAAI,GAAG,CACnF,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,YAAY,CAC1B,CAAW,EACX,UAAkB,EAClB,OAA2C;IAE3C,MAAM,KAAK,GAAG,OAAO,EAAE,KAAK,IAAI,CAAC,CAAC,KAAK,CAAC;IACxC,MAAM,IAAI,GAAG,OAAO,EAAE,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC;IACrC,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;QAC1B,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAChC,OAAO,SAAS,CAAC,CAAC,EAAE,UAAU,UAAU,IAAI,KAAK,IAAI,IAAI,GAAG,CAAC,CAAC;IAChE,CAAC;IACD,OAAO,SAAS,CAAC,CAAC,EAAE,gCAAgC,UAAU,UAAU,KAAK,SAAS,IAAI,GAAG,CAAC,CAAC;AACjG,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"fast-path.d.ts","sourceRoot":"","sources":["../../../src/core/codegen/fast-path.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,KAAK,EAAE,cAAc,EAAE,OAAO,EAAiB,MAAM,cAAc,CAAC;AAyF3E,wBAAgB,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,cAAc,GAAG,OAAO,CAmB7E;AAID;;;GAGG;AACH,wBAAgB,YAAY,CAAC,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAKpE"}
1
+ {"version":3,"file":"fast-path.d.ts","sourceRoot":"","sources":["../../../src/core/codegen/fast-path.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,KAAK,EAAE,cAAc,EAAE,OAAO,EAAiB,MAAM,cAAc,CAAC;AAyF3E,wBAAgB,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,cAAc,GAAG,OAAO,CAU7E;AAID;;;GAGG;AACH,wBAAgB,YAAY,CAAC,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAKpE"}
@@ -6,7 +6,7 @@
6
6
  * Returns `null` if the schema is not eligible for Fast Path (contains coerce,
7
7
  * default, transform, or other non-pure constructs).
8
8
  */
9
- import { escapeString } from "./context.js";
9
+ import { emitRegex, emitTemp } from "./context.js";
10
10
  import { fastAny } from "./schemas/any.js";
11
11
  import { fastArray } from "./schemas/array.js";
12
12
  import { fastBigInt } from "./schemas/bigint.js";
@@ -95,18 +95,8 @@ export function createFastGen(inputExpr, ctx) {
95
95
  visit(ir, overrides) {
96
96
  return generateFast(ir, createFastGen(overrides?.input ?? inputExpr, ctx));
97
97
  },
98
- temp(prefix) {
99
- return `__${prefix}_${ctx.counter++}`;
100
- },
101
- regex(prefix, pattern) {
102
- const cached = ctx.regexCache.get(pattern);
103
- if (cached)
104
- return cached;
105
- const name = `__re_${prefix}_${ctx.counter++}`;
106
- ctx.preamble.push(`var ${name}=new RegExp(${escapeString(pattern)});`);
107
- ctx.regexCache.set(pattern, name);
108
- return name;
109
- },
98
+ temp: (prefix) => emitTemp(ctx, prefix),
99
+ regex: (prefix, pattern) => emitRegex(ctx, prefix, pattern),
110
100
  };
111
101
  }
112
102
  // ─── Dispatch ────────────────────────────────────────────────────────────────
@@ -1 +1 @@
1
- {"version":3,"file":"fast-path.js","sourceRoot":"","sources":["../../../src/core/codegen/fast-path.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fast-path.js","sourceRoot":"","sources":["../../../src/core/codegen/fast-path.ts"],"names":[],"mappings":"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"}
@@ -1,15 +1,19 @@
1
1
  import type { SchemaIR } from "../types.js";
2
- import type { CodeGenResult } from "./context.js";
2
+ import type { CodeGenResult, CodegenMode } from "./context.js";
3
3
  export type { CodeGenResult } from "./context.js";
4
+ export interface GenerateValidatorOptions {
5
+ refCount?: number;
6
+ /** Codegen output mode. Defaults to "inline". */
7
+ mode?: CodegenMode;
8
+ }
4
9
  /**
5
10
  * Generate optimized validation code from SchemaIR.
6
11
  *
7
12
  * - `code`: preamble declarations (Sets, RegExps, etc.) — deterministic for the same IR
8
13
  * - `functionDef`: full function expression string referencing preamble vars via closure
14
+ * - `usedHelpers`: helper names from "virtual:zod-aot/runtime" referenced (lean mode only)
9
15
  *
10
16
  * Usage: `new Function(code + "\nreturn " + functionDef + ";")()`
11
17
  */
12
- export declare function generateValidator(ir: SchemaIR, name: string, options?: {
13
- refCount?: number;
14
- }): CodeGenResult;
18
+ export declare function generateValidator(ir: SchemaIR, name: string, options?: GenerateValidatorOptions): CodeGenResult;
15
19
  //# 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;AAIlE,YAAY,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAElD;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAC/B,EAAE,EAAE,QAAQ,EACZ,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,GAC9B,aAAa,CA+Cf"}
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,WAAW,EAAE,MAAM,cAAc,CAAC;AAI/E,YAAY,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAElD,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,iDAAiD;IACjD,IAAI,CAAC,EAAE,WAAW,CAAC;CACpB;AAED;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,CAC/B,EAAE,EAAE,QAAQ,EACZ,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,wBAAwB,GACjC,aAAa,CAgDf"}
@@ -5,16 +5,25 @@ import { createSlowGen, generateSlow } from "./slow-path.js";
5
5
  *
6
6
  * - `code`: preamble declarations (Sets, RegExps, etc.) — deterministic for the same IR
7
7
  * - `functionDef`: full function expression string referencing preamble vars via closure
8
+ * - `usedHelpers`: helper names from "virtual:zod-aot/runtime" referenced (lean mode only)
8
9
  *
9
10
  * Usage: `new Function(code + "\nreturn " + functionDef + ";")()`
10
11
  */
11
12
  export function generateValidator(ir, name, options) {
12
13
  const fnName = `safeParse_${name}`;
13
- const ctx = { preamble: [], counter: 0, fnName, regexCache: new Map() };
14
+ const mode = options?.mode ?? "inline";
15
+ const ctx = {
16
+ preamble: [],
17
+ counter: 0,
18
+ fnName,
19
+ regexCache: new Map(),
20
+ mode,
21
+ usedHelpers: new Set(),
22
+ };
14
23
  // Fast Path: generate a boolean expression for eligible schemas
15
24
  const fg = createFastGen("input", ctx);
16
25
  const fastExpr = generateFast(ir, fg);
17
- const sg = createSlowGen("__data", "__data", "[]", "__issues", ctx);
26
+ const sg = createSlowGen("_d", "_d", "[]", "_e", ctx);
18
27
  const slowCode = generateSlow(ir, sg);
19
28
  const code = ["/* zod-aot */", ...ctx.preamble].join("\n");
20
29
  const functionDefParts = [`function ${fnName}(input){`];
@@ -30,10 +39,16 @@ export function generateValidator(ir, name, options) {
30
39
  code,
31
40
  functionDef: functionDefParts.join("\n"),
32
41
  refCount: options?.refCount ?? 0,
42
+ usedHelpers: ctx.usedHelpers,
33
43
  };
34
44
  }
35
- functionDefParts.push(`var __issues=[];`, `var __data=input;`, slowCode, `if(__issues.length>0){`, `for(var __fi=0;__fi<__issues.length;__fi++){`, `if(typeof __msg==="function")__issues[__fi].message=__msg(__issues[__fi]);`, `__issues[__fi].input=undefined;`, `}`, `return{success:false,error:new __ZodError(__issues)};`, `}`, `return{success:true,data:__data};`, `}`);
45
+ functionDefParts.push(`var _e=[];`, `var _d=input;`, slowCode, `return __fin(_e,_d);`, `}`);
36
46
  const functionDef = functionDefParts.join("\n");
37
- return { code, functionDef, refCount: options?.refCount ?? 0 };
47
+ return {
48
+ code,
49
+ functionDef,
50
+ refCount: options?.refCount ?? 0,
51
+ usedHelpers: ctx.usedHelpers,
52
+ };
38
53
  }
39
54
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/codegen/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC7D,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAI7D;;;;;;;GAOG;AACH,MAAM,UAAU,iBAAiB,CAC/B,EAAY,EACZ,IAAY,EACZ,OAA+B;IAE/B,MAAM,MAAM,GAAG,aAAa,IAAI,EAAE,CAAC;IACnC,MAAM,GAAG,GAAmB,EAAE,QAAQ,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,GAAG,EAAE,EAAE,CAAC;IAExF,gEAAgE;IAChE,MAAM,EAAE,GAAG,aAAa,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;IACvC,MAAM,QAAQ,GAAG,YAAY,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IAEtC,MAAM,EAAE,GAAG,aAAa,CAAC,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,CAAC,CAAC;IACpE,MAAM,QAAQ,GAAG,YAAY,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IAEtC,MAAM,IAAI,GAAG,CAAC,eAAe,EAAE,GAAG,GAAG,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAE3D,MAAM,gBAAgB,GAAG,CAAC,YAAY,MAAM,UAAU,CAAC,CAAC;IAExD,sCAAsC;IACtC,IAAI,QAAQ,KAAK,IAAI,IAAI,QAAQ,KAAK,MAAM,EAAE,CAAC;QAC7C,gBAAgB,CAAC,IAAI,CAAC,MAAM,QAAQ,qCAAqC,CAAC,CAAC;IAC7E,CAAC;SAAM,IAAI,QAAQ,KAAK,MAAM,EAAE,CAAC;QAC/B,iEAAiE;QACjE,gBAAgB,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAC;QAC1D,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC3B,OAAO;YACL,IAAI;YACJ,WAAW,EAAE,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC;YACxC,QAAQ,EAAE,OAAO,EAAE,QAAQ,IAAI,CAAC;SACjC,CAAC;IACJ,CAAC;IAED,gBAAgB,CAAC,IAAI,CACnB,kBAAkB,EAClB,mBAAmB,EACnB,QAAQ,EACR,wBAAwB,EACxB,8CAA8C,EAC9C,4EAA4E,EAC5E,iCAAiC,EACjC,GAAG,EACH,uDAAuD,EACvD,GAAG,EACH,mCAAmC,EACnC,GAAG,CACJ,CAAC;IAEF,MAAM,WAAW,GAAG,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAEhD,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,IAAI,CAAC,EAAE,CAAC;AACjE,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/codegen/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC7D,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAU7D;;;;;;;;GAQG;AACH,MAAM,UAAU,iBAAiB,CAC/B,EAAY,EACZ,IAAY,EACZ,OAAkC;IAElC,MAAM,MAAM,GAAG,aAAa,IAAI,EAAE,CAAC;IACnC,MAAM,IAAI,GAAgB,OAAO,EAAE,IAAI,IAAI,QAAQ,CAAC;IACpD,MAAM,GAAG,GAAmB;QAC1B,QAAQ,EAAE,EAAE;QACZ,OAAO,EAAE,CAAC;QACV,MAAM;QACN,UAAU,EAAE,IAAI,GAAG,EAAE;QACrB,IAAI;QACJ,WAAW,EAAE,IAAI,GAAG,EAAE;KACvB,CAAC;IAEF,gEAAgE;IAChE,MAAM,EAAE,GAAG,aAAa,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;IACvC,MAAM,QAAQ,GAAG,YAAY,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IAEtC,MAAM,EAAE,GAAG,aAAa,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;IACtD,MAAM,QAAQ,GAAG,YAAY,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IAEtC,MAAM,IAAI,GAAG,CAAC,eAAe,EAAE,GAAG,GAAG,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAE3D,MAAM,gBAAgB,GAAG,CAAC,YAAY,MAAM,UAAU,CAAC,CAAC;IAExD,sCAAsC;IACtC,IAAI,QAAQ,KAAK,IAAI,IAAI,QAAQ,KAAK,MAAM,EAAE,CAAC;QAC7C,gBAAgB,CAAC,IAAI,CAAC,MAAM,QAAQ,qCAAqC,CAAC,CAAC;IAC7E,CAAC;SAAM,IAAI,QAAQ,KAAK,MAAM,EAAE,CAAC;QAC/B,iEAAiE;QACjE,gBAAgB,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAC;QAC1D,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC3B,OAAO;YACL,IAAI;YACJ,WAAW,EAAE,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC;YACxC,QAAQ,EAAE,OAAO,EAAE,QAAQ,IAAI,CAAC;YAChC,WAAW,EAAE,GAAG,CAAC,WAAW;SAC7B,CAAC;IACJ,CAAC;IAED,gBAAgB,CAAC,IAAI,CAAC,YAAY,EAAE,eAAe,EAAE,QAAQ,EAAE,sBAAsB,EAAE,GAAG,CAAC,CAAC;IAE5F,MAAM,WAAW,GAAG,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAEhD,OAAO;QACL,IAAI;QACJ,WAAW;QACX,QAAQ,EAAE,OAAO,EAAE,QAAQ,IAAI,CAAC;QAChC,WAAW,EAAE,GAAG,CAAC,WAAW;KAC7B,CAAC;AACJ,CAAC"}