zod-aot 0.0.11 → 0.0.13

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 (78) hide show
  1. package/README.md +29 -136
  2. package/dist/cli/commands/generate.d.ts.map +1 -1
  3. package/dist/cli/commands/generate.js +2 -10
  4. package/dist/cli/commands/generate.js.map +1 -1
  5. package/dist/cli/emitter.d.ts +2 -9
  6. package/dist/cli/emitter.d.ts.map +1 -1
  7. package/dist/cli/emitter.js +4 -0
  8. package/dist/cli/emitter.js.map +1 -1
  9. package/dist/core/codegen/context.d.ts +2 -0
  10. package/dist/core/codegen/context.d.ts.map +1 -1
  11. package/dist/core/codegen/context.js +2 -0
  12. package/dist/core/codegen/context.js.map +1 -1
  13. package/dist/core/codegen/generators/array.js +4 -4
  14. package/dist/core/codegen/generators/array.js.map +1 -1
  15. package/dist/core/codegen/generators/bigint.js +6 -6
  16. package/dist/core/codegen/generators/bigint.js.map +1 -1
  17. package/dist/core/codegen/generators/boolean.js +1 -1
  18. package/dist/core/codegen/generators/boolean.js.map +1 -1
  19. package/dist/core/codegen/generators/date.js +5 -5
  20. package/dist/core/codegen/generators/date.js.map +1 -1
  21. package/dist/core/codegen/generators/discriminated-union.js +2 -2
  22. package/dist/core/codegen/generators/discriminated-union.js.map +1 -1
  23. package/dist/core/codegen/generators/enum.js +2 -2
  24. package/dist/core/codegen/generators/enum.js.map +1 -1
  25. package/dist/core/codegen/generators/literal.js +2 -2
  26. package/dist/core/codegen/generators/literal.js.map +1 -1
  27. package/dist/core/codegen/generators/map.d.ts +1 -1
  28. package/dist/core/codegen/generators/map.d.ts.map +1 -1
  29. package/dist/core/codegen/generators/map.js +4 -4
  30. package/dist/core/codegen/generators/map.js.map +1 -1
  31. package/dist/core/codegen/generators/null.js +1 -1
  32. package/dist/core/codegen/generators/null.js.map +1 -1
  33. package/dist/core/codegen/generators/number.d.ts.map +1 -1
  34. package/dist/core/codegen/generators/number.js +9 -7
  35. package/dist/core/codegen/generators/number.js.map +1 -1
  36. package/dist/core/codegen/generators/object.js +1 -1
  37. package/dist/core/codegen/generators/object.js.map +1 -1
  38. package/dist/core/codegen/generators/pipe.d.ts +1 -1
  39. package/dist/core/codegen/generators/pipe.d.ts.map +1 -1
  40. package/dist/core/codegen/generators/pipe.js +3 -3
  41. package/dist/core/codegen/generators/pipe.js.map +1 -1
  42. package/dist/core/codegen/generators/record.js +1 -1
  43. package/dist/core/codegen/generators/record.js.map +1 -1
  44. package/dist/core/codegen/generators/set.d.ts +1 -1
  45. package/dist/core/codegen/generators/set.d.ts.map +1 -1
  46. package/dist/core/codegen/generators/set.js +5 -5
  47. package/dist/core/codegen/generators/set.js.map +1 -1
  48. package/dist/core/codegen/generators/string.d.ts.map +1 -1
  49. package/dist/core/codegen/generators/string.js +9 -8
  50. package/dist/core/codegen/generators/string.js.map +1 -1
  51. package/dist/core/codegen/generators/tuple.d.ts.map +1 -1
  52. package/dist/core/codegen/generators/tuple.js +3 -5
  53. package/dist/core/codegen/generators/tuple.js.map +1 -1
  54. package/dist/core/codegen/generators/undefined.js +1 -1
  55. package/dist/core/codegen/generators/undefined.js.map +1 -1
  56. package/dist/core/codegen/generators/union.d.ts.map +1 -1
  57. package/dist/core/codegen/generators/union.js +6 -2
  58. package/dist/core/codegen/generators/union.js.map +1 -1
  59. package/dist/core/codegen/index.d.ts.map +1 -1
  60. package/dist/core/codegen/index.js +7 -1
  61. package/dist/core/codegen/index.js.map +1 -1
  62. package/dist/core/pipeline.d.ts +17 -0
  63. package/dist/core/pipeline.d.ts.map +1 -0
  64. package/dist/core/pipeline.js +17 -0
  65. package/dist/core/pipeline.js.map +1 -0
  66. package/dist/index.d.ts +1 -6
  67. package/dist/index.d.ts.map +1 -1
  68. package/dist/index.js +0 -3
  69. package/dist/index.js.map +1 -1
  70. package/dist/internals.d.ts +7 -0
  71. package/dist/internals.d.ts.map +1 -0
  72. package/dist/internals.js +4 -0
  73. package/dist/internals.js.map +1 -0
  74. package/dist/unplugin/transform.d.ts +1 -8
  75. package/dist/unplugin/transform.d.ts.map +1 -1
  76. package/dist/unplugin/transform.js +12 -15
  77. package/dist/unplugin/transform.js.map +1 -1
  78. package/package.json +6 -1
package/README.md CHANGED
@@ -27,21 +27,21 @@ Measured with `vitest bench` on Node.js (Apple M-series):
27
27
 
28
28
  | Scenario | Zod v4 | zod-aot | Speedup |
29
29
  |---|---|---|----------|
30
- | simple string | 10.4M ops/s | 17.9M ops/s | **1.7x** |
31
- | string (min/max) | 5.3M ops/s | 17.6M ops/s | **3.3x** |
32
- | number (int+positive) | 5.2M ops/s | 16.4M ops/s | **3.1x** |
33
- | enum | 8.7M ops/s | 15.5M ops/s | **1.8x** |
34
- | tuple [string, int, boolean] | 4.3M ops/s | 17.1M ops/s | **3.9x** |
35
- | record\<string, number\> (5 keys) | 1.9M ops/s | 8.3M ops/s | **4.3x** |
36
- | discriminatedUnion (3 variants) | 3.0M ops/s | 15.7M ops/s | **5.3x** |
37
- | medium object (7 props, valid) | 1.7M ops/s | 6.6M ops/s | **4.0x** |
38
- | medium object (7 props, invalid) | 65K ops/s | 1.5M ops/s | **23x** |
39
- | large object (10 nested items) | 111K ops/s | 4.8M ops/s | **43x** |
40
- | large object (100 nested items) | 11.9K ops/s | 713K ops/s | **64x** |
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** |
30
+ | simple string | 11.1M ops/s | 19.6M ops/s | **1.8x** |
31
+ | string (min/max) | 5.5M ops/s | 20.0M ops/s | **3.6x** |
32
+ | number (int+positive) | 5.5M ops/s | 18.7M ops/s | **3.4x** |
33
+ | enum | 9.1M ops/s | 17.2M ops/s | **1.9x** |
34
+ | tuple [string, int, boolean] | 4.3M ops/s | 18.1M ops/s | **4.2x** |
35
+ | record\<string, number\> (5 keys) | 1.9M ops/s | 7.1M ops/s | **3.7x** |
36
+ | discriminatedUnion (3 variants) | 3.0M ops/s | 17.3M ops/s | **5.8x** |
37
+ | medium object (7 props, valid) | 1.6M ops/s | 6.6M ops/s | **4.1x** |
38
+ | medium object (7 props, invalid) | 63K ops/s | 474K ops/s | **7.5x** |
39
+ | large object (10 nested items) | 107K ops/s | 5.0M ops/s | **46x** |
40
+ | large object (100 nested items) | 11.6K ops/s | 740K ops/s | **64x** |
41
+ | event log (combined) | 442K ops/s | 5.5M ops/s | **12x** |
42
+ | partial fallback object (transform) | 1.7M ops/s | 3.9M ops/s | **2.3x** |
43
+ | partial fallback array 10 (transform) | 139K ops/s | 577K ops/s | **4.1x** |
44
+ | partial fallback array 50 (transform) | 28K ops/s | 119K ops/s | **4.2x** |
45
45
 
46
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.
47
47
 
@@ -152,43 +152,6 @@ The plugin:
152
152
  - Adds `/* @__PURE__ */` annotations for tree-shaking
153
153
  - Supports HMR in development
154
154
 
155
- ## Low-Level API
156
-
157
- For custom build scripts or advanced use cases, you can use the extractor and code generator directly:
158
-
159
- ```typescript
160
- import { z } from "zod";
161
- import { extractSchema, generateValidator } from "zod-aot";
162
-
163
- const UserSchema = z.object({
164
- name: z.string().min(3),
165
- age: z.number().int().positive(),
166
- });
167
-
168
- // Extract schema into intermediate representation (IR)
169
- const ir = extractSchema(UserSchema);
170
-
171
- // Generate optimized JavaScript validation code
172
- const { code, functionName } = generateValidator(ir, "validateUser");
173
-
174
- // Execute the generated code
175
- const safeParse = new Function(`${code}\nreturn ${functionName};`)();
176
- const result = safeParse({ name: "Alice", age: 30 });
177
- ```
178
-
179
- ### `createFallback(zodSchema)`
180
-
181
- Wraps a Zod schema to provide the `CompiledSchema` interface, delegating to Zod at runtime. Useful for development or unsupported schema types:
182
-
183
- ```typescript
184
- import { createFallback } from "zod-aot";
185
-
186
- const validator = createFallback(UserSchema);
187
- validator.parse(data); // throws on failure
188
- validator.safeParse(data); // { success, data/error }
189
- validator.is(data); // type guard (boolean)
190
- ```
191
-
192
155
  ## How It Works
193
156
 
194
157
  ```
@@ -270,104 +233,33 @@ Key optimizations in the generated code:
270
233
 
271
234
  ## API Reference
272
235
 
273
- ### `extractSchema(zodSchema): SchemaIR`
236
+ ### `compile<T>(zodSchema): CompiledSchema<T>`
274
237
 
275
- Extracts a JSON-serializable intermediate representation (IR) from a Zod schema by traversing its internal `_zod.def` structure.
238
+ Wraps a Zod schema for AOT compilation. In development, it falls back to Zod's built-in validation. After build (via CLI or unplugin), it uses the generated optimized validator.
276
239
 
277
240
  ```typescript
278
241
  import { z } from "zod";
279
- import { extractSchema } from "zod-aot";
280
-
281
- const ir = extractSchema(z.string().min(3));
282
- // { type: "string", checks: [{ kind: "min_length", minimum: 3 }] }
283
- ```
284
-
285
- Schemas containing `transform`, `refine`, `superRefine`, or `custom` produce a `FallbackIR`:
286
-
287
- ```typescript
288
- const ir = extractSchema(z.string().transform((s) => parseInt(s)));
289
- // { type: "fallback", reason: "transform" }
290
- ```
291
-
292
- ### `generateValidator(ir, name): CodeGenResult`
293
-
294
- Generates optimized JavaScript validation code from a SchemaIR.
295
-
296
- ```typescript
297
- import { generateValidator } from "zod-aot";
298
-
299
- const { code, functionName } = generateValidator(ir, "myValidator");
300
- // code: preamble (var declarations for Sets, RegExps, etc.)
301
- // functionName: full function expression string
302
- ```
303
-
304
- To execute the generated code:
305
-
306
- ```typescript
307
- const safeParse = new Function(`${code}\nreturn ${functionName};`)();
308
- const result = safeParse({ name: "Alice", age: 30 });
309
- ```
310
-
311
- ### `createFallback<T>(zodSchema): CompiledSchema<T>`
312
-
313
- Wraps a Zod schema to provide the `CompiledSchema` interface, delegating to Zod at runtime.
314
-
315
- ```typescript
316
- import { createFallback } from "zod-aot";
242
+ import { compile } from "zod-aot";
317
243
 
318
- const validator = createFallback<User>(UserSchema);
319
- validator.parse(data); // T — throws on failure
320
- validator.safeParse(data); // SafeParseResult<T>
321
- validator.is(data); // input is T (type guard)
322
- validator.schema; // reference to original Zod schema
244
+ const validateUser = compile(z.object({
245
+ name: z.string().min(3),
246
+ age: z.number().int().positive(),
247
+ }));
323
248
  ```
324
249
 
325
250
  ### `CompiledSchema<T>`
326
251
 
327
- The shared interface for both generated validators and runtime fallbacks:
252
+ The interface returned by `compile()`:
328
253
 
329
254
  ```typescript
330
255
  interface CompiledSchema<T> {
331
- parse(input: unknown): T;
332
- safeParse(input: unknown): SafeParseResult<T>;
333
- is(input: unknown): input is T;
334
- schema: unknown;
256
+ parse(input: unknown): T; // throws on failure
257
+ safeParse(input: unknown): SafeParseResult<T>; // { success, data/error }
258
+ is(input: unknown): input is T; // type guard (boolean)
259
+ schema: unknown; // reference to original Zod schema
335
260
  }
336
261
  ```
337
262
 
338
- ### `SchemaIR`
339
-
340
- The intermediate representation — a discriminated union of all supported schema types:
341
-
342
- | IR Type | Zod Equivalent |
343
- |---|---|
344
- | `StringIR` | `z.string()`, `z.email()`, `z.url()`, `z.uuid()` |
345
- | `NumberIR` | `z.number()`, `z.int()` |
346
- | `BooleanIR` | `z.boolean()` |
347
- | `NullIR` | `z.null()` |
348
- | `UndefinedIR` | `z.undefined()` |
349
- | `LiteralIR` | `z.literal(...)` |
350
- | `EnumIR` | `z.enum([...])` |
351
- | `ObjectIR` | `z.object({...})` |
352
- | `ArrayIR` | `z.array(...)` |
353
- | `UnionIR` | `z.union([...])` |
354
- | `OptionalIR` | `.optional()` |
355
- | `NullableIR` | `.nullable()` |
356
- | `AnyIR` | `z.any()` |
357
- | `UnknownIR` | `z.unknown()` |
358
- | `ReadonlyIR` | `.readonly()` |
359
- | `DateIR` | `z.date()` |
360
- | `TupleIR` | `z.tuple([...])` |
361
- | `RecordIR` | `z.record(...)` |
362
- | `DefaultIR` | `.default(...)` |
363
- | `IntersectionIR` | `z.intersection(...)` / `.and(...)` |
364
- | `DiscriminatedUnionIR` | `z.discriminatedUnion(...)` |
365
- | `BigIntIR` | `z.bigint()` |
366
- | `SetIR` | `z.set(...)` |
367
- | `MapIR` | `z.map(...)` |
368
- | `PipeIR` | `.pipe(...)` (non-transform) |
369
- | `FallbackIR` | `transform`, `refine`, `lazy`, etc. |
370
-
371
263
  ## Supported Types
372
264
 
373
265
  | Type | Supported Checks |
@@ -442,7 +334,8 @@ pnpm -r build
442
334
  zod-aot/
443
335
  ├── packages/zod-aot/ # Main npm package
444
336
  │ ├── src/
445
- │ │ ├── index.ts # Public API exports
337
+ │ │ ├── index.ts # Public API exports (zod-aot)
338
+ │ │ ├── internals.ts # Internal API exports (zod-aot/internals)
446
339
  │ │ ├── discovery.ts # Schema discovery (shared by CLI & unplugin)
447
340
  │ │ ├── loader.ts # Runtime-aware file loader
448
341
  │ │ ├── core/ # Pure logic (no CLI/unplugin deps)
@@ -1 +1 @@
1
- {"version":3,"file":"generate.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/generate.ts"],"names":[],"mappings":"AAYA,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,CAmCpC;AAED,wBAAsB,WAAW,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CAqCzE"}
1
+ {"version":3,"file":"generate.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/generate.ts"],"names":[],"mappings":"AAUA,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,CA4BpC;AAED,wBAAsB,WAAW,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CAqCzE"}
@@ -1,8 +1,7 @@
1
1
  import fs from "node:fs";
2
2
  import path from "node:path";
3
3
  import process from "node:process";
4
- import { generateValidator } from "#src/core/codegen/index.js";
5
- import { extractSchema } from "#src/core/extractor.js";
4
+ import { compileSchemas } from "#src/core/pipeline.js";
6
5
  import { discoverSchemas } from "#src/discovery.js";
7
6
  import { generateCompiledFileContent, resolveOutputPath, writeCompiledFile } from "../emitter.js";
8
7
  import { getErrorMessage } from "../errors.js";
@@ -76,14 +75,7 @@ export async function generateFile(filePath, outputFlag, options) {
76
75
  if (schemas.length === 0) {
77
76
  return null;
78
77
  }
79
- const codegenResults = schemas.map((s) => {
80
- const fallbackEntries = [];
81
- const ir = extractSchema(s.schema, fallbackEntries);
82
- const result = generateValidator(ir, s.exportName, {
83
- fallbackCount: fallbackEntries.length,
84
- });
85
- return { exportName: s.exportName, codegenResult: result, fallbackEntries };
86
- });
78
+ const codegenResults = compileSchemas(schemas);
87
79
  const outputPath = resolveOutputPath(filePath, outputFlag);
88
80
  const sourceRelPath = path.relative(path.dirname(outputPath), filePath);
89
81
  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,14 +1,8 @@
1
- import type { CodeGenResult } from "#src/core/codegen/context.js";
2
- import type { FallbackEntry } from "#src/core/extractor.js";
3
- interface EmitSchema {
4
- exportName: string;
5
- codegenResult: CodeGenResult;
6
- fallbackEntries: FallbackEntry[];
7
- }
1
+ import type { CompiledSchemaInfo } from "#src/core/pipeline.js";
8
2
  /**
9
3
  * Generate the content of a .compiled.ts file from multiple schemas.
10
4
  */
11
- export declare function generateCompiledFileContent(schemas: EmitSchema[], sourceRelPath: string): string;
5
+ export declare function generateCompiledFileContent(schemas: CompiledSchemaInfo[], sourceRelPath: string): string;
12
6
  /**
13
7
  * Resolve the output file path for a given input file.
14
8
  */
@@ -17,5 +11,4 @@ export declare function resolveOutputPath(inputPath: string, outputFlag: string
17
11
  * Write the compiled file content to disk.
18
12
  */
19
13
  export declare function writeCompiledFile(outputPath: string, content: string): Promise<void>;
20
- export {};
21
14
  //# sourceMappingURL=emitter.d.ts.map
@@ -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;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,CAsFhG;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":"AAGA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAEhE;;GAEG;AACH,wBAAgB,2BAA2B,CACzC,OAAO,EAAE,kBAAkB,EAAE,EAC7B,aAAa,EAAE,MAAM,GACpB,MAAM,CA2FR;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,10 @@ 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 Zod config for locale-aware error messages
14
+ lines.push('import { config as __zodAotConfig } from "zod";');
15
+ lines.push("const __msg = __zodAotConfig().localeError;");
16
+ lines.push("");
13
17
  // Import original schemas for partial fallback (if any schema has fallbacks)
14
18
  const schemasWithFallbacks = schemas.filter((s) => s.fallbackEntries.length > 0);
15
19
  if (schemasWithFallbacks.length > 0) {
@@ -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":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AAGnE;;GAEG;AACH,MAAM,UAAU,2BAA2B,CACzC,OAA6B,EAC7B,aAAqB;IAErB,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,SAAS;IACT,KAAK,CAAC,IAAI,CAAC,4CAA4C,CAAC,CAAC;IACzD,KAAK,CAAC,IAAI,CAAC,cAAc,aAAa,EAAE,CAAC,CAAC;IAC1C,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEf,oDAAoD;IACpD,KAAK,CAAC,IAAI,CAAC,iDAAiD,CAAC,CAAC;IAC9D,KAAK,CAAC,IAAI,CAAC,6CAA6C,CAAC,CAAC;IAC1D,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEf,6EAA6E;IAC7E,MAAM,oBAAoB,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACjF,IAAI,oBAAoB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACpC,MAAM,UAAU,GAAG,aAAa,CAAC,OAAO,CAAC,iBAAiB,EAAE,EAAE,CAAC,CAAC;QAChE,MAAM,WAAW,GAAG,oBAAoB;aACrC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,UAAU,aAAa,CAAC,CAAC,UAAU,EAAE,CAAC;aACtD,IAAI,CAAC,IAAI,CAAC,CAAC;QACd,KAAK,CAAC,IAAI,CAAC,YAAY,WAAW,YAAY,UAAU,IAAI,CAAC,CAAC;QAC9D,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjB,CAAC;IAED,yBAAyB;IACzB,KAAK,MAAM,MAAM,IAAI,oBAAoB,EAAE,CAAC;QAC1C,MAAM,OAAO,GAAG,MAAM,CAAC,eAAe,CAAC,GAAG,CACxC,CAAC,EAAE,EAAE,EAAE,CAAC,UAAU,MAAM,CAAC,UAAU,kBAAkB,EAAE,CAAC,UAAU,EAAE,CACrE,CAAC;QACF,KAAK,CAAC,IAAI,CAAC,cAAc,MAAM,CAAC,UAAU,OAAO,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC3E,CAAC;IACD,IAAI,oBAAoB,CAAC,MAAM,GAAG,CAAC;QAAE,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEpD,gGAAgG;IAChG,MAAM,WAAW,GAAG,IAAI,GAAG,EAAU,CAAC;IACtC,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;YACzD,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,eAAe,EAAE,CAAC;gBAC1D,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YACxB,CAAC;QACH,CAAC;IACH,CAAC;IAED,IAAI,WAAW,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;QACzB,KAAK,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;QACrC,KAAK,MAAM,IAAI,IAAI,WAAW,EAAE,CAAC;YAC/B,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACnB,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjB,CAAC;IAED,uBAAuB;IACvB,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,IAAI,MAAM,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtC,wCAAwC;YACxC,MAAM,KAAK,GAAG,MAAM,CAAC,aAAa,CAAC,YAAY,CAAC;YAChD,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAC5B,gCAAgC,EAChC,qBAAqB,MAAM,CAAC,UAAU,KAAK,CAC5C,CAAC;YACF,IAAI,QAAQ,KAAK,KAAK,EAAE,CAAC;gBACvB,MAAM,IAAI,KAAK,CACb,gDAAgD,MAAM,CAAC,UAAU,IAAI;oBACnE,6CAA6C,CAChD,CAAC;YACJ,CAAC;YACD,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACvB,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC;QAChD,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjB,CAAC;IAED,kBAAkB;IAClB,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,MAAM,MAAM,GAAG,mBAAmB,CAAC,MAAM,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC;QACtE,KAAK,CAAC,IAAI,CAAC,gBAAgB,MAAM,CAAC,UAAU,MAAM,CAAC,CAAC;QACpD,KAAK,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;QACxC,KAAK,CAAC,IAAI,CAAC,iBAAiB,MAAM,UAAU,CAAC,CAAC;QAC9C,KAAK,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAC;QAChD,KAAK,CAAC,IAAI,CAAC,mEAAmE,CAAC,CAAC;QAChF,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACnB,KAAK,CAAC,IAAI,CAAC,gBAAgB,MAAM,GAAG,CAAC,CAAC;QACtC,KAAK,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;QAC9C,KAAK,CAAC,IAAI,CAAC,cAAc,MAAM,kBAAkB,CAAC,CAAC;QACnD,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACnB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjB,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjB,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,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"}
@@ -11,6 +11,8 @@ export interface CodeGenContext {
11
11
  }
12
12
  export type GenerateValidationFn = (ir: SchemaIR, inputExpr: string, pathExpr: string, issuesVar: string, ctx: CodeGenContext) => string;
13
13
  export declare const EMAIL_REGEX_SOURCE: string;
14
+ /** Fallback UUID regex used when the extractor doesn't provide a pattern (e.g. in unit tests). */
15
+ 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)$";
14
16
  export declare function escapeString(s: string): string;
15
17
  /**
16
18
  * Extract the function name from a generated function definition 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;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
+ {"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,kGAAkG;AAClG,eAAO,MAAM,iBAAiB,2KAC4I,CAAC;AAE3K,wBAAgB,YAAY,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAE9C;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAM/D"}
@@ -1,5 +1,7 @@
1
1
  // Zod v4's email regex pattern (as a source string for new RegExp())
2
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)$";
3
5
  export function escapeString(s) {
4
6
  return JSON.stringify(s);
5
7
  }
@@ -1 +1 @@
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"}
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,kGAAkG;AAClG,MAAM,CAAC,MAAM,iBAAiB,GAC5B,wKAAwK,CAAC;AAE3K,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,15 +1,15 @@
1
1
  export function generateArrayValidation(ir, inputExpr, pathExpr, issuesVar, ctx, generateFn) {
2
- let code = `if(!Array.isArray(${inputExpr})){${issuesVar}.push({code:"invalid_type",expected:"array",received:typeof ${inputExpr},path:${pathExpr},message:"Expected array"});}else{`;
2
+ let code = `if(!Array.isArray(${inputExpr})){${issuesVar}.push({code:"invalid_type",expected:"array",input:${inputExpr},path:${pathExpr}});}else{`;
3
3
  for (const check of ir.checks) {
4
4
  switch (check.kind) {
5
5
  case "min_length":
6
- code += `if(${inputExpr}.length<${check.minimum}){${issuesVar}.push({code:"too_small",minimum:${check.minimum},type:"array",inclusive:true,path:${pathExpr},message:"Array must contain at least ${check.minimum} element(s)"});}`;
6
+ code += `if(${inputExpr}.length<${check.minimum}){${issuesVar}.push({code:"too_small",minimum:${check.minimum},origin:"array",inclusive:true,input:${inputExpr},path:${pathExpr}});}`;
7
7
  break;
8
8
  case "max_length":
9
- code += `if(${inputExpr}.length>${check.maximum}){${issuesVar}.push({code:"too_big",maximum:${check.maximum},type:"array",inclusive:true,path:${pathExpr},message:"Array must contain at most ${check.maximum} element(s)"});}`;
9
+ code += `if(${inputExpr}.length>${check.maximum}){${issuesVar}.push({code:"too_big",maximum:${check.maximum},origin:"array",inclusive:true,input:${inputExpr},path:${pathExpr}});}`;
10
10
  break;
11
11
  case "length_equals":
12
- code += `if(${inputExpr}.length!==${check.length}){${issuesVar}.push({code:"invalid_length",exact:${check.length},type:"array",path:${pathExpr},message:"Array must contain exactly ${check.length} element(s)"});}`;
12
+ code += `if(${inputExpr}.length<${check.length}){${issuesVar}.push({code:"too_small",minimum:${check.length},origin:"array",inclusive:true,exact:true,input:${inputExpr},path:${pathExpr}});}else if(${inputExpr}.length>${check.length}){${issuesVar}.push({code:"too_big",maximum:${check.length},origin:"array",inclusive:true,exact:true,input:${inputExpr},path:${pathExpr}});}`;
13
13
  break;
14
14
  }
15
15
  }
@@ -1 +1 @@
1
- {"version":3,"file":"array.js","sourceRoot":"","sources":["../../../../src/core/codegen/generators/array.ts"],"names":[],"mappings":"AAGA,MAAM,UAAU,uBAAuB,CACrC,EAAgC,EAChC,SAAiB,EACjB,QAAgB,EAChB,SAAiB,EACjB,GAAmB,EACnB,UAAgC;IAEhC,IAAI,IAAI,GAAG,qBAAqB,SAAS,MAAM,SAAS,+DAA+D,SAAS,SAAS,QAAQ,oCAAoC,CAAC;IAEtL,KAAK,MAAM,KAAK,IAAI,EAAE,CAAC,MAAM,EAAE,CAAC;QAC9B,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;YACnB,KAAK,YAAY;gBACf,IAAI,IAAI,MAAM,SAAS,WAAW,KAAK,CAAC,OAAO,KAAK,SAAS,mCAAmC,KAAK,CAAC,OAAO,qCAAqC,QAAQ,yCAAyC,KAAK,CAAC,OAAO,kBAAkB,CAAC;gBACnO,MAAM;YACR,KAAK,YAAY;gBACf,IAAI,IAAI,MAAM,SAAS,WAAW,KAAK,CAAC,OAAO,KAAK,SAAS,iCAAiC,KAAK,CAAC,OAAO,qCAAqC,QAAQ,wCAAwC,KAAK,CAAC,OAAO,kBAAkB,CAAC;gBAChO,MAAM;YACR,KAAK,eAAe;gBAClB,IAAI,IAAI,MAAM,SAAS,aAAa,KAAK,CAAC,MAAM,KAAK,SAAS,sCAAsC,KAAK,CAAC,MAAM,sBAAsB,QAAQ,wCAAwC,KAAK,CAAC,MAAM,kBAAkB,CAAC;gBACrN,MAAM;QACV,CAAC;IACH,CAAC;IAED,MAAM,MAAM,GAAG,OAAO,GAAG,CAAC,OAAO,EAAE,EAAE,CAAC;IACtC,IAAI,IAAI,WAAW,MAAM,MAAM,MAAM,IAAI,SAAS,WAAW,MAAM,MAAM,CAAC;IAC1E,MAAM,QAAQ,GAAG,GAAG,SAAS,IAAI,MAAM,GAAG,CAAC;IAC3C,MAAM,QAAQ,GAAG,GAAG,QAAQ,WAAW,MAAM,GAAG,CAAC;IACjD,IAAI,IAAI,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,CAAC,CAAC;IACnE,IAAI,IAAI,GAAG,CAAC;IAEZ,IAAI,IAAI,KAAK,CAAC;IACd,OAAO,IAAI,CAAC;AACd,CAAC"}
1
+ {"version":3,"file":"array.js","sourceRoot":"","sources":["../../../../src/core/codegen/generators/array.ts"],"names":[],"mappings":"AAGA,MAAM,UAAU,uBAAuB,CACrC,EAAgC,EAChC,SAAiB,EACjB,QAAgB,EAChB,SAAiB,EACjB,GAAmB,EACnB,UAAgC;IAEhC,IAAI,IAAI,GAAG,qBAAqB,SAAS,MAAM,SAAS,qDAAqD,SAAS,SAAS,QAAQ,WAAW,CAAC;IAEnJ,KAAK,MAAM,KAAK,IAAI,EAAE,CAAC,MAAM,EAAE,CAAC;QAC9B,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;YACnB,KAAK,YAAY;gBACf,IAAI,IAAI,MAAM,SAAS,WAAW,KAAK,CAAC,OAAO,KAAK,SAAS,mCAAmC,KAAK,CAAC,OAAO,wCAAwC,SAAS,SAAS,QAAQ,MAAM,CAAC;gBACtL,MAAM;YACR,KAAK,YAAY;gBACf,IAAI,IAAI,MAAM,SAAS,WAAW,KAAK,CAAC,OAAO,KAAK,SAAS,iCAAiC,KAAK,CAAC,OAAO,wCAAwC,SAAS,SAAS,QAAQ,MAAM,CAAC;gBACpL,MAAM;YACR,KAAK,eAAe;gBAClB,IAAI,IAAI,MAAM,SAAS,WAAW,KAAK,CAAC,MAAM,KAAK,SAAS,mCAAmC,KAAK,CAAC,MAAM,mDAAmD,SAAS,SAAS,QAAQ,eAAe,SAAS,WAAW,KAAK,CAAC,MAAM,KAAK,SAAS,iCAAiC,KAAK,CAAC,MAAM,mDAAmD,SAAS,SAAS,QAAQ,MAAM,CAAC;gBACtX,MAAM;QACV,CAAC;IACH,CAAC;IAED,MAAM,MAAM,GAAG,OAAO,GAAG,CAAC,OAAO,EAAE,EAAE,CAAC;IACtC,IAAI,IAAI,WAAW,MAAM,MAAM,MAAM,IAAI,SAAS,WAAW,MAAM,MAAM,CAAC;IAC1E,MAAM,QAAQ,GAAG,GAAG,SAAS,IAAI,MAAM,GAAG,CAAC;IAC3C,MAAM,QAAQ,GAAG,GAAG,QAAQ,WAAW,MAAM,GAAG,CAAC;IACjD,IAAI,IAAI,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,CAAC,CAAC;IACnE,IAAI,IAAI,GAAG,CAAC;IAEZ,IAAI,IAAI,KAAK,CAAC;IACd,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -1,27 +1,27 @@
1
1
  export function generateBigIntValidation(ir, inputExpr, pathExpr, issuesVar, _ctx) {
2
- let code = `if(typeof ${inputExpr}!=="bigint"){${issuesVar}.push({code:"invalid_type",expected:"bigint",received:typeof ${inputExpr},path:${pathExpr},message:"Expected bigint"});}`;
2
+ let code = `if(typeof ${inputExpr}!=="bigint"){${issuesVar}.push({code:"invalid_type",expected:"bigint",input:${inputExpr},path:${pathExpr}});}`;
3
3
  if (ir.checks.length > 0) {
4
4
  code += `else{`;
5
5
  for (const check of ir.checks) {
6
6
  switch (check.kind) {
7
7
  case "bigint_greater_than":
8
8
  if (check.inclusive) {
9
- code += `if(${inputExpr}<${check.value}n){${issuesVar}.push({code:"too_small",minimum:${check.value}n,type:"bigint",inclusive:true,path:${pathExpr},message:"BigInt must be greater than or equal to ${check.value}"});}`;
9
+ code += `if(${inputExpr}<${check.value}n){${issuesVar}.push({code:"too_small",minimum:${check.value}n,origin:"bigint",inclusive:true,input:${inputExpr},path:${pathExpr}});}`;
10
10
  }
11
11
  else {
12
- code += `if(${inputExpr}<=${check.value}n){${issuesVar}.push({code:"too_small",minimum:${check.value}n,type:"bigint",inclusive:false,path:${pathExpr},message:"BigInt must be greater than ${check.value}"});}`;
12
+ code += `if(${inputExpr}<=${check.value}n){${issuesVar}.push({code:"too_small",minimum:${check.value}n,origin:"bigint",inclusive:false,input:${inputExpr},path:${pathExpr}});}`;
13
13
  }
14
14
  break;
15
15
  case "bigint_less_than":
16
16
  if (check.inclusive) {
17
- code += `if(${inputExpr}>${check.value}n){${issuesVar}.push({code:"too_big",maximum:${check.value}n,type:"bigint",inclusive:true,path:${pathExpr},message:"BigInt must be less than or equal to ${check.value}"});}`;
17
+ code += `if(${inputExpr}>${check.value}n){${issuesVar}.push({code:"too_big",maximum:${check.value}n,origin:"bigint",inclusive:true,input:${inputExpr},path:${pathExpr}});}`;
18
18
  }
19
19
  else {
20
- code += `if(${inputExpr}>=${check.value}n){${issuesVar}.push({code:"too_big",maximum:${check.value}n,type:"bigint",inclusive:false,path:${pathExpr},message:"BigInt must be less than ${check.value}"});}`;
20
+ code += `if(${inputExpr}>=${check.value}n){${issuesVar}.push({code:"too_big",maximum:${check.value}n,origin:"bigint",inclusive:false,input:${inputExpr},path:${pathExpr}});}`;
21
21
  }
22
22
  break;
23
23
  case "bigint_multiple_of":
24
- code += `if(${inputExpr}%${check.value}n!==0n){${issuesVar}.push({code:"not_multiple_of",multipleOf:${check.value}n,path:${pathExpr},message:"BigInt must be a multiple of ${check.value}"});}`;
24
+ code += `if(${inputExpr}%${check.value}n!==0n){${issuesVar}.push({code:"not_multiple_of",divisor:${check.value}n,origin:"bigint",input:${inputExpr},path:${pathExpr}});}`;
25
25
  break;
26
26
  }
27
27
  }
@@ -1 +1 @@
1
- {"version":3,"file":"bigint.js","sourceRoot":"","sources":["../../../../src/core/codegen/generators/bigint.ts"],"names":[],"mappings":"AAGA,MAAM,UAAU,wBAAwB,CACtC,EAAiC,EACjC,SAAiB,EACjB,QAAgB,EAChB,SAAiB,EACjB,IAAoB;IAEpB,IAAI,IAAI,GAAG,aAAa,SAAS,gBAAgB,SAAS,gEAAgE,SAAS,SAAS,QAAQ,gCAAgC,CAAC;IAErL,IAAI,EAAE,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACzB,IAAI,IAAI,OAAO,CAAC;QAChB,KAAK,MAAM,KAAK,IAAI,EAAE,CAAC,MAAM,EAAE,CAAC;YAC9B,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;gBACnB,KAAK,qBAAqB;oBACxB,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;wBACpB,IAAI,IAAI,MAAM,SAAS,IAAI,KAAK,CAAC,KAAK,MAAM,SAAS,mCAAmC,KAAK,CAAC,KAAK,uCAAuC,QAAQ,qDAAqD,KAAK,CAAC,KAAK,OAAO,CAAC;oBAC5N,CAAC;yBAAM,CAAC;wBACN,IAAI,IAAI,MAAM,SAAS,KAAK,KAAK,CAAC,KAAK,MAAM,SAAS,mCAAmC,KAAK,CAAC,KAAK,wCAAwC,QAAQ,yCAAyC,KAAK,CAAC,KAAK,OAAO,CAAC;oBAClN,CAAC;oBACD,MAAM;gBACR,KAAK,kBAAkB;oBACrB,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;wBACpB,IAAI,IAAI,MAAM,SAAS,IAAI,KAAK,CAAC,KAAK,MAAM,SAAS,iCAAiC,KAAK,CAAC,KAAK,uCAAuC,QAAQ,kDAAkD,KAAK,CAAC,KAAK,OAAO,CAAC;oBACvN,CAAC;yBAAM,CAAC;wBACN,IAAI,IAAI,MAAM,SAAS,KAAK,KAAK,CAAC,KAAK,MAAM,SAAS,iCAAiC,KAAK,CAAC,KAAK,wCAAwC,QAAQ,sCAAsC,KAAK,CAAC,KAAK,OAAO,CAAC;oBAC7M,CAAC;oBACD,MAAM;gBACR,KAAK,oBAAoB;oBACvB,IAAI,IAAI,MAAM,SAAS,IAAI,KAAK,CAAC,KAAK,WAAW,SAAS,4CAA4C,KAAK,CAAC,KAAK,UAAU,QAAQ,0CAA0C,KAAK,CAAC,KAAK,OAAO,CAAC;oBAChM,MAAM;YACV,CAAC;QACH,CAAC;QACD,IAAI,IAAI,GAAG,CAAC;IACd,CAAC;IAED,OAAO,GAAG,IAAI,IAAI,CAAC;AACrB,CAAC"}
1
+ {"version":3,"file":"bigint.js","sourceRoot":"","sources":["../../../../src/core/codegen/generators/bigint.ts"],"names":[],"mappings":"AAGA,MAAM,UAAU,wBAAwB,CACtC,EAAiC,EACjC,SAAiB,EACjB,QAAgB,EAChB,SAAiB,EACjB,IAAoB;IAEpB,IAAI,IAAI,GAAG,aAAa,SAAS,gBAAgB,SAAS,sDAAsD,SAAS,SAAS,QAAQ,MAAM,CAAC;IAEjJ,IAAI,EAAE,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACzB,IAAI,IAAI,OAAO,CAAC;QAChB,KAAK,MAAM,KAAK,IAAI,EAAE,CAAC,MAAM,EAAE,CAAC;YAC9B,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;gBACnB,KAAK,qBAAqB;oBACxB,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;wBACpB,IAAI,IAAI,MAAM,SAAS,IAAI,KAAK,CAAC,KAAK,MAAM,SAAS,mCAAmC,KAAK,CAAC,KAAK,0CAA0C,SAAS,SAAS,QAAQ,MAAM,CAAC;oBAChL,CAAC;yBAAM,CAAC;wBACN,IAAI,IAAI,MAAM,SAAS,KAAK,KAAK,CAAC,KAAK,MAAM,SAAS,mCAAmC,KAAK,CAAC,KAAK,2CAA2C,SAAS,SAAS,QAAQ,MAAM,CAAC;oBAClL,CAAC;oBACD,MAAM;gBACR,KAAK,kBAAkB;oBACrB,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;wBACpB,IAAI,IAAI,MAAM,SAAS,IAAI,KAAK,CAAC,KAAK,MAAM,SAAS,iCAAiC,KAAK,CAAC,KAAK,0CAA0C,SAAS,SAAS,QAAQ,MAAM,CAAC;oBAC9K,CAAC;yBAAM,CAAC;wBACN,IAAI,IAAI,MAAM,SAAS,KAAK,KAAK,CAAC,KAAK,MAAM,SAAS,iCAAiC,KAAK,CAAC,KAAK,2CAA2C,SAAS,SAAS,QAAQ,MAAM,CAAC;oBAChL,CAAC;oBACD,MAAM;gBACR,KAAK,oBAAoB;oBACvB,IAAI,IAAI,MAAM,SAAS,IAAI,KAAK,CAAC,KAAK,WAAW,SAAS,yCAAyC,KAAK,CAAC,KAAK,2BAA2B,SAAS,SAAS,QAAQ,MAAM,CAAC;oBAC1K,MAAM;YACV,CAAC;QACH,CAAC;QACD,IAAI,IAAI,GAAG,CAAC;IACd,CAAC;IAED,OAAO,GAAG,IAAI,IAAI,CAAC;AACrB,CAAC"}
@@ -1,4 +1,4 @@
1
1
  export function generateBooleanValidation(inputExpr, pathExpr, issuesVar) {
2
- return `if(typeof ${inputExpr}!=="boolean"){${issuesVar}.push({code:"invalid_type",expected:"boolean",received:typeof ${inputExpr},path:${pathExpr},message:"Expected boolean"});}\n`;
2
+ return `if(typeof ${inputExpr}!=="boolean"){${issuesVar}.push({code:"invalid_type",expected:"boolean",input:${inputExpr},path:${pathExpr}});}\n`;
3
3
  }
4
4
  //# sourceMappingURL=boolean.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"boolean.js","sourceRoot":"","sources":["../../../../src/core/codegen/generators/boolean.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,yBAAyB,CACvC,SAAiB,EACjB,QAAgB,EAChB,SAAiB;IAEjB,OAAO,aAAa,SAAS,iBAAiB,SAAS,iEAAiE,SAAS,SAAS,QAAQ,mCAAmC,CAAC;AACxL,CAAC"}
1
+ {"version":3,"file":"boolean.js","sourceRoot":"","sources":["../../../../src/core/codegen/generators/boolean.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,yBAAyB,CACvC,SAAiB,EACjB,QAAgB,EAChB,SAAiB;IAEjB,OAAO,aAAa,SAAS,iBAAiB,SAAS,uDAAuD,SAAS,SAAS,QAAQ,QAAQ,CAAC;AACnJ,CAAC"}
@@ -1,5 +1,5 @@
1
1
  export function generateDateValidation(ir, inputExpr, pathExpr, issuesVar) {
2
- let code = `if(!(${inputExpr} instanceof Date)||isNaN(${inputExpr}.getTime())){${issuesVar}.push({code:"invalid_type",expected:"date",received:${inputExpr} instanceof Date?"Invalid Date":typeof ${inputExpr},path:${pathExpr},message:"Expected date"});}`;
2
+ let code = `if(!(${inputExpr} instanceof Date)){${issuesVar}.push({code:"invalid_type",expected:"date",input:${inputExpr},path:${pathExpr}});}else if(isNaN(${inputExpr}.getTime())){${issuesVar}.push({code:"invalid_type",expected:"date",received:"Invalid Date",input:${inputExpr},path:${pathExpr}});}`;
3
3
  if (ir.checks.length > 0) {
4
4
  code += `else{`;
5
5
  for (const check of ir.checks) {
@@ -7,18 +7,18 @@ export function generateDateValidation(ir, inputExpr, pathExpr, issuesVar) {
7
7
  switch (check.kind) {
8
8
  case "date_greater_than":
9
9
  if (check.inclusive) {
10
- code += `if(${timeExpr}<${check.timestamp}){${issuesVar}.push({code:"too_small",minimum:${check.timestamp},inclusive:true,origin:"date",path:${pathExpr},message:"Date must be >= ${check.value}"});}`;
10
+ code += `if(${timeExpr}<${check.timestamp}){${issuesVar}.push({code:"too_small",minimum:${check.timestamp},inclusive:true,origin:"date",input:${inputExpr},path:${pathExpr}});}`;
11
11
  }
12
12
  else {
13
- code += `if(${timeExpr}<=${check.timestamp}){${issuesVar}.push({code:"too_small",minimum:${check.timestamp},inclusive:false,origin:"date",path:${pathExpr},message:"Date must be > ${check.value}"});}`;
13
+ code += `if(${timeExpr}<=${check.timestamp}){${issuesVar}.push({code:"too_small",minimum:${check.timestamp},inclusive:false,origin:"date",input:${inputExpr},path:${pathExpr}});}`;
14
14
  }
15
15
  break;
16
16
  case "date_less_than":
17
17
  if (check.inclusive) {
18
- code += `if(${timeExpr}>${check.timestamp}){${issuesVar}.push({code:"too_big",maximum:${check.timestamp},inclusive:true,origin:"date",path:${pathExpr},message:"Date must be <= ${check.value}"});}`;
18
+ code += `if(${timeExpr}>${check.timestamp}){${issuesVar}.push({code:"too_big",maximum:${check.timestamp},inclusive:true,origin:"date",input:${inputExpr},path:${pathExpr}});}`;
19
19
  }
20
20
  else {
21
- code += `if(${timeExpr}>=${check.timestamp}){${issuesVar}.push({code:"too_big",maximum:${check.timestamp},inclusive:false,origin:"date",path:${pathExpr},message:"Date must be < ${check.value}"});}`;
21
+ code += `if(${timeExpr}>=${check.timestamp}){${issuesVar}.push({code:"too_big",maximum:${check.timestamp},inclusive:false,origin:"date",input:${inputExpr},path:${pathExpr}});}`;
22
22
  }
23
23
  break;
24
24
  }
@@ -1 +1 @@
1
- {"version":3,"file":"date.js","sourceRoot":"","sources":["../../../../src/core/codegen/generators/date.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,sBAAsB,CACpC,EAA+B,EAC/B,SAAiB,EACjB,QAAgB,EAChB,SAAiB;IAEjB,IAAI,IAAI,GAAG,QAAQ,SAAS,4BAA4B,SAAS,gBAAgB,SAAS,uDAAuD,SAAS,0CAA0C,SAAS,SAAS,QAAQ,8BAA8B,CAAC;IAE7P,IAAI,EAAE,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACzB,IAAI,IAAI,OAAO,CAAC;QAChB,KAAK,MAAM,KAAK,IAAI,EAAE,CAAC,MAAM,EAAE,CAAC;YAC9B,MAAM,QAAQ,GAAG,GAAG,SAAS,YAAY,CAAC;YAC1C,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;gBACnB,KAAK,mBAAmB;oBACtB,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;wBACpB,IAAI,IAAI,MAAM,QAAQ,IAAI,KAAK,CAAC,SAAS,KAAK,SAAS,mCAAmC,KAAK,CAAC,SAAS,sCAAsC,QAAQ,6BAA6B,KAAK,CAAC,KAAK,OAAO,CAAC;oBACzM,CAAC;yBAAM,CAAC;wBACN,IAAI,IAAI,MAAM,QAAQ,KAAK,KAAK,CAAC,SAAS,KAAK,SAAS,mCAAmC,KAAK,CAAC,SAAS,uCAAuC,QAAQ,4BAA4B,KAAK,CAAC,KAAK,OAAO,CAAC;oBAC1M,CAAC;oBACD,MAAM;gBACR,KAAK,gBAAgB;oBACnB,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;wBACpB,IAAI,IAAI,MAAM,QAAQ,IAAI,KAAK,CAAC,SAAS,KAAK,SAAS,iCAAiC,KAAK,CAAC,SAAS,sCAAsC,QAAQ,6BAA6B,KAAK,CAAC,KAAK,OAAO,CAAC;oBACvM,CAAC;yBAAM,CAAC;wBACN,IAAI,IAAI,MAAM,QAAQ,KAAK,KAAK,CAAC,SAAS,KAAK,SAAS,iCAAiC,KAAK,CAAC,SAAS,uCAAuC,QAAQ,4BAA4B,KAAK,CAAC,KAAK,OAAO,CAAC;oBACxM,CAAC;oBACD,MAAM;YACV,CAAC;QACH,CAAC;QACD,IAAI,IAAI,GAAG,CAAC;IACd,CAAC;IAED,OAAO,GAAG,IAAI,IAAI,CAAC;AACrB,CAAC"}
1
+ {"version":3,"file":"date.js","sourceRoot":"","sources":["../../../../src/core/codegen/generators/date.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,sBAAsB,CACpC,EAA+B,EAC/B,SAAiB,EACjB,QAAgB,EAChB,SAAiB;IAEjB,IAAI,IAAI,GAAG,QAAQ,SAAS,sBAAsB,SAAS,oDAAoD,SAAS,SAAS,QAAQ,qBAAqB,SAAS,gBAAgB,SAAS,4EAA4E,SAAS,SAAS,QAAQ,MAAM,CAAC;IAE7S,IAAI,EAAE,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACzB,IAAI,IAAI,OAAO,CAAC;QAChB,KAAK,MAAM,KAAK,IAAI,EAAE,CAAC,MAAM,EAAE,CAAC;YAC9B,MAAM,QAAQ,GAAG,GAAG,SAAS,YAAY,CAAC;YAC1C,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;gBACnB,KAAK,mBAAmB;oBACtB,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;wBACpB,IAAI,IAAI,MAAM,QAAQ,IAAI,KAAK,CAAC,SAAS,KAAK,SAAS,mCAAmC,KAAK,CAAC,SAAS,uCAAuC,SAAS,SAAS,QAAQ,MAAM,CAAC;oBACnL,CAAC;yBAAM,CAAC;wBACN,IAAI,IAAI,MAAM,QAAQ,KAAK,KAAK,CAAC,SAAS,KAAK,SAAS,mCAAmC,KAAK,CAAC,SAAS,wCAAwC,SAAS,SAAS,QAAQ,MAAM,CAAC;oBACrL,CAAC;oBACD,MAAM;gBACR,KAAK,gBAAgB;oBACnB,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;wBACpB,IAAI,IAAI,MAAM,QAAQ,IAAI,KAAK,CAAC,SAAS,KAAK,SAAS,iCAAiC,KAAK,CAAC,SAAS,uCAAuC,SAAS,SAAS,QAAQ,MAAM,CAAC;oBACjL,CAAC;yBAAM,CAAC;wBACN,IAAI,IAAI,MAAM,QAAQ,KAAK,KAAK,CAAC,SAAS,KAAK,SAAS,iCAAiC,KAAK,CAAC,SAAS,wCAAwC,SAAS,SAAS,QAAQ,MAAM,CAAC;oBACnL,CAAC;oBACD,MAAM;YACV,CAAC;QACH,CAAC;QACD,IAAI,IAAI,GAAG,CAAC;IACd,CAAC;IAED,OAAO,GAAG,IAAI,IAAI,CAAC;AACrB,CAAC"}
@@ -1,7 +1,7 @@
1
1
  import { escapeString } from "../context.js";
2
2
  export function generateDiscriminatedUnionValidation(ir, inputExpr, pathExpr, issuesVar, ctx, generateFn) {
3
3
  const discKey = escapeString(ir.discriminator);
4
- let code = `if(typeof ${inputExpr}!=="object"||${inputExpr}===null||Array.isArray(${inputExpr})){${issuesVar}.push({code:"invalid_type",expected:"object",received:Array.isArray(${inputExpr})?"array":${inputExpr}===null?"null":typeof ${inputExpr},path:${pathExpr},message:"Expected object"});}else{`;
4
+ let code = `if(typeof ${inputExpr}!=="object"||${inputExpr}===null||Array.isArray(${inputExpr})){${issuesVar}.push({code:"invalid_type",expected:"object",input:${inputExpr},path:${pathExpr}});}else{`;
5
5
  const objVar = `__du_${ctx.counter++}`;
6
6
  code += `var ${objVar}=${inputExpr};`;
7
7
  code += `switch(${objVar}[${discKey}]){`;
@@ -11,7 +11,7 @@ export function generateDiscriminatedUnionValidation(ir, inputExpr, pathExpr, is
11
11
  code += generateFn(option, objVar, pathExpr, issuesVar, ctx);
12
12
  code += `break;`;
13
13
  }
14
- code += `default:${issuesVar}.push({code:"invalid_union",unionErrors:[],path:${pathExpr}.concat(${discKey}),message:"Invalid discriminator value"});`;
14
+ code += `default:${issuesVar}.push({code:"invalid_union",errors:[],note:"No matching discriminator",discriminator:${discKey},input:${inputExpr},path:${pathExpr}.concat(${discKey})});`;
15
15
  code += `}`;
16
16
  code += `}\n`;
17
17
  return code;
@@ -1 +1 @@
1
- {"version":3,"file":"discriminated-union.js","sourceRoot":"","sources":["../../../../src/core/codegen/generators/discriminated-union.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAE7C,MAAM,UAAU,oCAAoC,CAClD,EAA6C,EAC7C,SAAiB,EACjB,QAAgB,EAChB,SAAiB,EACjB,GAAmB,EACnB,UAAgC;IAEhC,MAAM,OAAO,GAAG,YAAY,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC;IAE/C,IAAI,IAAI,GAAG,aAAa,SAAS,gBAAgB,SAAS,0BAA0B,SAAS,MAAM,SAAS,uEAAuE,SAAS,aAAa,SAAS,yBAAyB,SAAS,SAAS,QAAQ,qCAAqC,CAAC;IAE3S,MAAM,MAAM,GAAG,QAAQ,GAAG,CAAC,OAAO,EAAE,EAAE,CAAC;IACvC,IAAI,IAAI,OAAO,MAAM,IAAI,SAAS,GAAG,CAAC;IAEtC,IAAI,IAAI,UAAU,MAAM,IAAI,OAAO,KAAK,CAAC;IAEzC,KAAK,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;QACxD,MAAM,MAAM,GAAG,EAAE,CAAC,OAAO,CAAC,KAAK,CAAa,CAAC;QAC7C,IAAI,IAAI,QAAQ,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC;QACvC,IAAI,IAAI,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,CAAC,CAAC;QAC7D,IAAI,IAAI,QAAQ,CAAC;IACnB,CAAC;IAED,IAAI,IAAI,WAAW,SAAS,mDAAmD,QAAQ,WAAW,OAAO,4CAA4C,CAAC;IACtJ,IAAI,IAAI,GAAG,CAAC;IACZ,IAAI,IAAI,KAAK,CAAC;IACd,OAAO,IAAI,CAAC;AACd,CAAC"}
1
+ {"version":3,"file":"discriminated-union.js","sourceRoot":"","sources":["../../../../src/core/codegen/generators/discriminated-union.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAE7C,MAAM,UAAU,oCAAoC,CAClD,EAA6C,EAC7C,SAAiB,EACjB,QAAgB,EAChB,SAAiB,EACjB,GAAmB,EACnB,UAAgC;IAEhC,MAAM,OAAO,GAAG,YAAY,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC;IAE/C,IAAI,IAAI,GAAG,aAAa,SAAS,gBAAgB,SAAS,0BAA0B,SAAS,MAAM,SAAS,sDAAsD,SAAS,SAAS,QAAQ,WAAW,CAAC;IAExM,MAAM,MAAM,GAAG,QAAQ,GAAG,CAAC,OAAO,EAAE,EAAE,CAAC;IACvC,IAAI,IAAI,OAAO,MAAM,IAAI,SAAS,GAAG,CAAC;IAEtC,IAAI,IAAI,UAAU,MAAM,IAAI,OAAO,KAAK,CAAC;IAEzC,KAAK,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;QACxD,MAAM,MAAM,GAAG,EAAE,CAAC,OAAO,CAAC,KAAK,CAAa,CAAC;QAC7C,IAAI,IAAI,QAAQ,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC;QACvC,IAAI,IAAI,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,CAAC,CAAC;QAC7D,IAAI,IAAI,QAAQ,CAAC;IACnB,CAAC;IAED,IAAI,IAAI,WAAW,SAAS,wFAAwF,OAAO,UAAU,SAAS,SAAS,QAAQ,WAAW,OAAO,MAAM,CAAC;IACxL,IAAI,IAAI,GAAG,CAAC;IACZ,IAAI,IAAI,KAAK,CAAC;IACd,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -1,6 +1,6 @@
1
1
  export function generateEnumValidation(ir, inputExpr, pathExpr, issuesVar, ctx) {
2
- const setVar = `__set_${ctx.counter++}`;
2
+ const setVar = `__enumSet_${ctx.counter++}`;
3
3
  ctx.preamble.push(`var ${setVar}=new Set(${JSON.stringify(ir.values)});`);
4
- return `if(!${setVar}.has(${inputExpr})){${issuesVar}.push({code:"invalid_enum_value",options:${JSON.stringify(ir.values)},received:${inputExpr},path:${pathExpr},message:"Invalid enum value"});}\n`;
4
+ return `if(!${setVar}.has(${inputExpr})){${issuesVar}.push({code:"invalid_value",values:${JSON.stringify(ir.values)},input:${inputExpr},path:${pathExpr}});}\n`;
5
5
  }
6
6
  //# sourceMappingURL=enum.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"enum.js","sourceRoot":"","sources":["../../../../src/core/codegen/generators/enum.ts"],"names":[],"mappings":"AAGA,MAAM,UAAU,sBAAsB,CACpC,EAA+B,EAC/B,SAAiB,EACjB,QAAgB,EAChB,SAAiB,EACjB,GAAmB;IAEnB,MAAM,MAAM,GAAG,SAAS,GAAG,CAAC,OAAO,EAAE,EAAE,CAAC;IACxC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,MAAM,YAAY,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAC1E,OAAO,OAAO,MAAM,QAAQ,SAAS,MAAM,SAAS,4CAA4C,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,MAAM,CAAC,aAAa,SAAS,SAAS,QAAQ,qCAAqC,CAAC;AACxM,CAAC"}
1
+ {"version":3,"file":"enum.js","sourceRoot":"","sources":["../../../../src/core/codegen/generators/enum.ts"],"names":[],"mappings":"AAGA,MAAM,UAAU,sBAAsB,CACpC,EAA+B,EAC/B,SAAiB,EACjB,QAAgB,EAChB,SAAiB,EACjB,GAAmB;IAEnB,MAAM,MAAM,GAAG,aAAa,GAAG,CAAC,OAAO,EAAE,EAAE,CAAC;IAC5C,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,MAAM,YAAY,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAC1E,OAAO,OAAO,MAAM,QAAQ,SAAS,MAAM,SAAS,sCAAsC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,MAAM,CAAC,UAAU,SAAS,SAAS,QAAQ,QAAQ,CAAC;AAClK,CAAC"}
@@ -12,7 +12,7 @@ export function generateLiteralValidation(ir, inputExpr, pathExpr, issuesVar) {
12
12
  else {
13
13
  cond = `${inputExpr}!==${String(v)}`;
14
14
  }
15
- return `if(${cond}){${issuesVar}.push({code:"invalid_literal",expected:${JSON.stringify(v)},received:${inputExpr},path:${pathExpr},message:"Invalid literal value"});}\n`;
15
+ return `if(${cond}){${issuesVar}.push({code:"invalid_value",values:${JSON.stringify([v])},input:${inputExpr},path:${pathExpr}});}\n`;
16
16
  }
17
17
  const valueChecks = ir.values
18
18
  .map((v) => {
@@ -23,6 +23,6 @@ export function generateLiteralValidation(ir, inputExpr, pathExpr, issuesVar) {
23
23
  return `${inputExpr}===${String(v)}`;
24
24
  })
25
25
  .join("||");
26
- return `if(!(${valueChecks})){${issuesVar}.push({code:"invalid_literal",expected:${JSON.stringify(ir.values)},received:${inputExpr},path:${pathExpr},message:"Invalid literal value"});}\n`;
26
+ return `if(!(${valueChecks})){${issuesVar}.push({code:"invalid_value",values:${JSON.stringify(ir.values)},input:${inputExpr},path:${pathExpr}});}\n`;
27
27
  }
28
28
  //# sourceMappingURL=literal.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"literal.js","sourceRoot":"","sources":["../../../../src/core/codegen/generators/literal.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAE7C,MAAM,UAAU,yBAAyB,CACvC,EAAkC,EAClC,SAAiB,EACjB,QAAgB,EAChB,SAAiB;IAEjB,IAAI,EAAE,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC3B,MAAM,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QACvB,IAAI,IAAY,CAAC;QACjB,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;YACf,IAAI,GAAG,GAAG,SAAS,SAAS,CAAC;QAC/B,CAAC;aAAM,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE,CAAC;YACjC,IAAI,GAAG,GAAG,SAAS,MAAM,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7C,CAAC;aAAM,CAAC;YACN,IAAI,GAAG,GAAG,SAAS,MAAM,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;QACvC,CAAC;QACD,OAAO,MAAM,IAAI,KAAK,SAAS,0CAA0C,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,aAAa,SAAS,SAAS,QAAQ,wCAAwC,CAAC;IAC5K,CAAC;IAED,MAAM,WAAW,GAAG,EAAE,CAAC,MAAM;SAC1B,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QACT,IAAI,CAAC,KAAK,IAAI;YAAE,OAAO,GAAG,SAAS,SAAS,CAAC;QAC7C,IAAI,OAAO,CAAC,KAAK,QAAQ;YAAE,OAAO,GAAG,SAAS,MAAM,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC;QACtE,OAAO,GAAG,SAAS,MAAM,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;IACvC,CAAC,CAAC;SACD,IAAI,CAAC,IAAI,CAAC,CAAC;IAEd,OAAO,QAAQ,WAAW,MAAM,SAAS,0CAA0C,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,MAAM,CAAC,aAAa,SAAS,SAAS,QAAQ,wCAAwC,CAAC;AAC9L,CAAC"}
1
+ {"version":3,"file":"literal.js","sourceRoot":"","sources":["../../../../src/core/codegen/generators/literal.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAE7C,MAAM,UAAU,yBAAyB,CACvC,EAAkC,EAClC,SAAiB,EACjB,QAAgB,EAChB,SAAiB;IAEjB,IAAI,EAAE,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC3B,MAAM,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QACvB,IAAI,IAAY,CAAC;QACjB,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;YACf,IAAI,GAAG,GAAG,SAAS,SAAS,CAAC;QAC/B,CAAC;aAAM,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE,CAAC;YACjC,IAAI,GAAG,GAAG,SAAS,MAAM,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7C,CAAC;aAAM,CAAC;YACN,IAAI,GAAG,GAAG,SAAS,MAAM,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;QACvC,CAAC;QACD,OAAO,MAAM,IAAI,KAAK,SAAS,sCAAsC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,SAAS,SAAS,QAAQ,QAAQ,CAAC;IACvI,CAAC;IAED,MAAM,WAAW,GAAG,EAAE,CAAC,MAAM;SAC1B,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QACT,IAAI,CAAC,KAAK,IAAI;YAAE,OAAO,GAAG,SAAS,SAAS,CAAC;QAC7C,IAAI,OAAO,CAAC,KAAK,QAAQ;YAAE,OAAO,GAAG,SAAS,MAAM,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC;QACtE,OAAO,GAAG,SAAS,MAAM,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;IACvC,CAAC,CAAC;SACD,IAAI,CAAC,IAAI,CAAC,CAAC;IAEd,OAAO,QAAQ,WAAW,MAAM,SAAS,sCAAsC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,MAAM,CAAC,UAAU,SAAS,SAAS,QAAQ,QAAQ,CAAC;AACvJ,CAAC"}
@@ -2,5 +2,5 @@ import type { SchemaIR } from "../../types.js";
2
2
  import type { CodeGenContext, GenerateValidationFn } from "../context.js";
3
3
  export declare function generateMapValidation(ir: SchemaIR & {
4
4
  type: "map";
5
- }, inputExpr: string, pathExpr: string, issuesVar: string, ctx: CodeGenContext, generateValidation: GenerateValidationFn): string;
5
+ }, inputExpr: string, pathExpr: string, issuesVar: string, ctx: CodeGenContext, generateFn: GenerateValidationFn): string;
6
6
  //# sourceMappingURL=map.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"map.d.ts","sourceRoot":"","sources":["../../../../src/core/codegen/generators/map.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,KAAK,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAE1E,wBAAgB,qBAAqB,CACnC,EAAE,EAAE,QAAQ,GAAG;IAAE,IAAI,EAAE,KAAK,CAAA;CAAE,EAC9B,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,GAAG,EAAE,cAAc,EACnB,kBAAkB,EAAE,oBAAoB,GACvC,MAAM,CAkCR"}
1
+ {"version":3,"file":"map.d.ts","sourceRoot":"","sources":["../../../../src/core/codegen/generators/map.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,KAAK,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAE1E,wBAAgB,qBAAqB,CACnC,EAAE,EAAE,QAAQ,GAAG;IAAE,IAAI,EAAE,KAAK,CAAA;CAAE,EAC9B,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,GAAG,EAAE,cAAc,EACnB,UAAU,EAAE,oBAAoB,GAC/B,MAAM,CAkCR"}