zod-aot 0.0.14 → 0.0.16

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 (88) hide show
  1. package/dist/cli/commands/check.js +2 -2
  2. package/dist/cli/commands/check.js.map +1 -1
  3. package/dist/{core → cli}/fallback.d.ts +1 -1
  4. package/dist/cli/fallback.d.ts.map +1 -0
  5. package/dist/cli/fallback.js.map +1 -0
  6. package/dist/core/codegen/generators/fallback.d.ts +3 -0
  7. package/dist/core/codegen/generators/fallback.d.ts.map +1 -0
  8. package/dist/core/codegen/generators/fallback.js +23 -0
  9. package/dist/core/codegen/generators/fallback.js.map +1 -0
  10. package/dist/core/codegen/generators/index.d.ts +1 -0
  11. package/dist/core/codegen/generators/index.d.ts.map +1 -1
  12. package/dist/core/codegen/generators/index.js +1 -0
  13. package/dist/core/codegen/generators/index.js.map +1 -1
  14. package/dist/core/codegen/index.d.ts.map +1 -1
  15. package/dist/core/codegen/index.js +2 -17
  16. package/dist/core/codegen/index.js.map +1 -1
  17. package/dist/core/extract/checks.d.ts +7 -0
  18. package/dist/core/extract/checks.d.ts.map +1 -0
  19. package/dist/core/extract/checks.js +49 -0
  20. package/dist/core/extract/checks.js.map +1 -0
  21. package/dist/core/extract/extractors/bigint.d.ts +4 -0
  22. package/dist/core/extract/extractors/bigint.d.ts.map +1 -0
  23. package/dist/core/extract/extractors/bigint.js +34 -0
  24. package/dist/core/extract/extractors/bigint.js.map +1 -0
  25. package/dist/core/extract/extractors/date.d.ts +4 -0
  26. package/dist/core/extract/extractors/date.d.ts.map +1 -0
  27. package/dist/core/extract/extractors/date.js +36 -0
  28. package/dist/core/extract/extractors/date.js.map +1 -0
  29. package/dist/core/extract/extractors/default.d.ts +4 -0
  30. package/dist/core/extract/extractors/default.d.ts.map +1 -0
  31. package/dist/core/extract/extractors/default.js +18 -0
  32. package/dist/core/extract/extractors/default.js.map +1 -0
  33. package/dist/core/extract/extractors/index.d.ts +10 -0
  34. package/dist/core/extract/extractors/index.d.ts.map +1 -0
  35. package/dist/core/extract/extractors/index.js +10 -0
  36. package/dist/core/extract/extractors/index.js.map +1 -0
  37. package/dist/core/extract/extractors/lazy.d.ts +4 -0
  38. package/dist/core/extract/extractors/lazy.d.ts.map +1 -0
  39. package/dist/core/extract/extractors/lazy.js +13 -0
  40. package/dist/core/extract/extractors/lazy.js.map +1 -0
  41. package/dist/core/extract/extractors/number.d.ts +4 -0
  42. package/dist/core/extract/extractors/number.d.ts.map +1 -0
  43. package/dist/core/extract/extractors/number.js +12 -0
  44. package/dist/core/extract/extractors/number.js.map +1 -0
  45. package/dist/core/extract/extractors/pipe.d.ts +4 -0
  46. package/dist/core/extract/extractors/pipe.d.ts.map +1 -0
  47. package/dist/core/extract/extractors/pipe.js +11 -0
  48. package/dist/core/extract/extractors/pipe.js.map +1 -0
  49. package/dist/core/extract/extractors/set.d.ts +4 -0
  50. package/dist/core/extract/extractors/set.d.ts.map +1 -0
  51. package/dist/core/extract/extractors/set.js +19 -0
  52. package/dist/core/extract/extractors/set.js.map +1 -0
  53. package/dist/core/extract/extractors/string.d.ts +4 -0
  54. package/dist/core/extract/extractors/string.d.ts.map +1 -0
  55. package/dist/core/extract/extractors/string.js +20 -0
  56. package/dist/core/extract/extractors/string.js.map +1 -0
  57. package/dist/core/extract/extractors/union.d.ts +4 -0
  58. package/dist/core/extract/extractors/union.d.ts.map +1 -0
  59. package/dist/core/extract/extractors/union.js +25 -0
  60. package/dist/core/extract/extractors/union.js.map +1 -0
  61. package/dist/core/extract/fallback.d.ts +4 -0
  62. package/dist/core/extract/fallback.d.ts.map +1 -0
  63. package/dist/core/extract/fallback.js +9 -0
  64. package/dist/core/extract/fallback.js.map +1 -0
  65. package/dist/core/extract/index.d.ts +11 -0
  66. package/dist/core/extract/index.d.ts.map +1 -0
  67. package/dist/core/extract/index.js +113 -0
  68. package/dist/core/extract/index.js.map +1 -0
  69. package/dist/core/extract/types.d.ts +58 -0
  70. package/dist/core/extract/types.d.ts.map +1 -0
  71. package/dist/core/extract/types.js +2 -0
  72. package/dist/core/extract/types.js.map +1 -0
  73. package/dist/core/pipeline.d.ts +1 -1
  74. package/dist/core/pipeline.d.ts.map +1 -1
  75. package/dist/core/pipeline.js +1 -1
  76. package/dist/core/pipeline.js.map +1 -1
  77. package/dist/internals.d.ts +2 -2
  78. package/dist/internals.d.ts.map +1 -1
  79. package/dist/internals.js +1 -1
  80. package/dist/internals.js.map +1 -1
  81. package/package.json +1 -1
  82. package/dist/core/extractor.d.ts +0 -16
  83. package/dist/core/extractor.d.ts.map +0 -1
  84. package/dist/core/extractor.js +0 -301
  85. package/dist/core/extractor.js.map +0 -1
  86. package/dist/core/fallback.d.ts.map +0 -1
  87. package/dist/core/fallback.js.map +0 -1
  88. /package/dist/{core → cli}/fallback.js +0 -0
@@ -0,0 +1,25 @@
1
+ export function extractUnion(def, p, fallbacks, recurse, visiting) {
2
+ if (def.discriminator) {
3
+ const options = def.options.map((opt, i) => recurse(opt, fallbacks, `${p}._zod.def.options[${i}]`, visiting));
4
+ const mapping = {};
5
+ for (let i = 0; i < def.options.length; i++) {
6
+ const opt = def.options[i];
7
+ const optDef = opt._zod.def;
8
+ if (optDef.type === "object" && optDef.shape) {
9
+ const discrimField = optDef.shape[def.discriminator];
10
+ if (discrimField?._zod?.def?.type === "literal") {
11
+ const vals = discrimField._zod.def.values;
12
+ for (const v of vals) {
13
+ mapping[String(v)] = i;
14
+ }
15
+ }
16
+ }
17
+ }
18
+ return { type: "discriminatedUnion", discriminator: def.discriminator, options, mapping };
19
+ }
20
+ return {
21
+ type: "union",
22
+ options: def.options.map((opt, i) => recurse(opt, fallbacks, `${p}._zod.def.options[${i}]`, visiting)),
23
+ };
24
+ }
25
+ //# sourceMappingURL=union.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"union.js","sourceRoot":"","sources":["../../../../src/core/extract/extractors/union.ts"],"names":[],"mappings":"AAGA,MAAM,UAAU,YAAY,CAC1B,GAAW,EACX,CAAS,EACT,SAAsC,EACtC,OAAkB,EAClB,QAAuB;IAEvB,IAAI,GAAG,CAAC,aAAa,EAAE,CAAC;QACtB,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CACzC,OAAO,CAAC,GAAG,EAAE,SAAS,EAAE,GAAG,CAAC,qBAAqB,CAAC,GAAG,EAAE,QAAQ,CAAC,CACjE,CAAC;QACF,MAAM,OAAO,GAA2B,EAAE,CAAC;QAC3C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC5C,MAAM,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,CAAC,CAAc,CAAC;YACxC,MAAM,MAAM,GAAG,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC;YAC5B,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;gBAC7C,MAAM,YAAY,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;gBACrD,IAAI,YAAY,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,KAAK,SAAS,EAAE,CAAC;oBAChD,MAAM,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,MAAuC,CAAC;oBAC3E,KAAK,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;wBACrB,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;oBACzB,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QACD,OAAO,EAAE,IAAI,EAAE,oBAAoB,EAAE,aAAa,EAAE,GAAG,CAAC,aAAa,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;IAC5F,CAAC;IACD,OAAO;QACL,IAAI,EAAE,OAAO;QACb,OAAO,EAAE,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAClC,OAAO,CAAC,GAAG,EAAE,SAAS,EAAE,GAAG,CAAC,qBAAqB,CAAC,GAAG,EAAE,QAAQ,CAAC,CACjE;KACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { FallbackIR } from "../types.js";
2
+ import type { FallbackEntry } from "./types.js";
3
+ export declare function makeFallback(reason: FallbackIR["reason"], zodSchema: unknown, fallbacks?: FallbackEntry[], accessPath?: string): FallbackIR;
4
+ //# sourceMappingURL=fallback.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fallback.d.ts","sourceRoot":"","sources":["../../../src/core/extract/fallback.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEhD,wBAAgB,YAAY,CAC1B,MAAM,EAAE,UAAU,CAAC,QAAQ,CAAC,EAC5B,SAAS,EAAE,OAAO,EAClB,SAAS,CAAC,EAAE,aAAa,EAAE,EAC3B,UAAU,CAAC,EAAE,MAAM,GAClB,UAAU,CAOZ"}
@@ -0,0 +1,9 @@
1
+ export function makeFallback(reason, zodSchema, fallbacks, accessPath) {
2
+ if (fallbacks && accessPath !== undefined) {
3
+ const index = fallbacks.length;
4
+ fallbacks.push({ schema: zodSchema, accessPath });
5
+ return { type: "fallback", reason, fallbackIndex: index };
6
+ }
7
+ return { type: "fallback", reason };
8
+ }
9
+ //# sourceMappingURL=fallback.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fallback.js","sourceRoot":"","sources":["../../../src/core/extract/fallback.ts"],"names":[],"mappings":"AAGA,MAAM,UAAU,YAAY,CAC1B,MAA4B,EAC5B,SAAkB,EAClB,SAA2B,EAC3B,UAAmB;IAEnB,IAAI,SAAS,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;QAC1C,MAAM,KAAK,GAAG,SAAS,CAAC,MAAM,CAAC;QAC/B,SAAS,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC,CAAC;QAClD,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC;IAC5D,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC;AACtC,CAAC"}
@@ -0,0 +1,11 @@
1
+ import type { SchemaIR } from "../types.js";
2
+ import type { FallbackEntry } from "./types.js";
3
+ export type { FallbackEntry } from "./types.js";
4
+ /**
5
+ * Extract SchemaIR from a Zod schema by traversing its `_zod.def` and `_zod.bag`.
6
+ *
7
+ * When `fallbacks` is provided, non-compilable sub-schemas are collected with their
8
+ * access paths for partial fallback (Zod delegation at runtime).
9
+ */
10
+ export declare function extractSchema(zodSchema: unknown, fallbacks?: FallbackEntry[], currentPath?: string, visiting?: Set<unknown>): SchemaIR;
11
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core/extract/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAc5C,OAAO,KAAK,EAAE,aAAa,EAAa,MAAM,YAAY,CAAC;AAE3D,YAAY,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEhD;;;;;GAKG;AACH,wBAAgB,aAAa,CAC3B,SAAS,EAAE,OAAO,EAClB,SAAS,CAAC,EAAE,aAAa,EAAE,EAC3B,WAAW,CAAC,EAAE,MAAM,EACpB,QAAQ,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC,GACtB,QAAQ,CAaV"}
@@ -0,0 +1,113 @@
1
+ import { extractChecks } from "./checks.js";
2
+ import { extractBigint, extractDate, extractDefault, extractLazy, extractNumber, extractPipe, extractSet, extractString, extractUnion, } from "./extractors/index.js";
3
+ import { makeFallback } from "./fallback.js";
4
+ /**
5
+ * Extract SchemaIR from a Zod schema by traversing its `_zod.def` and `_zod.bag`.
6
+ *
7
+ * When `fallbacks` is provided, non-compilable sub-schemas are collected with their
8
+ * access paths for partial fallback (Zod delegation at runtime).
9
+ */
10
+ export function extractSchema(zodSchema, fallbacks, currentPath, visiting) {
11
+ const schema = zodSchema;
12
+ const def = schema._zod.def;
13
+ const p = currentPath ?? "";
14
+ const v = visiting ?? new Set();
15
+ // Track current schema for cycle detection in lazy resolution
16
+ v.add(zodSchema);
17
+ const ir = extractSchemaInner(schema, def, p, v, fallbacks, zodSchema);
18
+ v.delete(zodSchema);
19
+ return ir;
20
+ }
21
+ function extractSchemaInner(schema, def, p, v, fallbacks, zodSchema) {
22
+ switch (def.type) {
23
+ // ── Simple cases (inline) ──────────────────────────────────────────────
24
+ case "boolean":
25
+ return { type: "boolean" };
26
+ case "null":
27
+ return { type: "null" };
28
+ case "undefined":
29
+ return { type: "undefined" };
30
+ case "any":
31
+ return { type: "any" };
32
+ case "unknown":
33
+ return { type: "unknown" };
34
+ case "literal":
35
+ return { type: "literal", values: def.values };
36
+ case "enum":
37
+ return { type: "enum", values: Object.values(def.entries) };
38
+ case "optional":
39
+ return {
40
+ type: "optional",
41
+ inner: extractSchema(def.innerType, fallbacks, `${p}._zod.def.innerType`, v),
42
+ };
43
+ case "nullable":
44
+ return {
45
+ type: "nullable",
46
+ inner: extractSchema(def.innerType, fallbacks, `${p}._zod.def.innerType`, v),
47
+ };
48
+ case "readonly":
49
+ return {
50
+ type: "readonly",
51
+ inner: extractSchema(def.innerType, fallbacks, `${p}._zod.def.innerType`, v),
52
+ };
53
+ case "object": {
54
+ const properties = {};
55
+ for (const [key, value] of Object.entries(def.shape)) {
56
+ const propPath = `${p}.shape[${JSON.stringify(key)}]`;
57
+ properties[key] = extractSchema(value, fallbacks, propPath, v);
58
+ }
59
+ return { type: "object", properties };
60
+ }
61
+ case "array": {
62
+ const element = extractSchema(def.element, fallbacks, `${p}._zod.def.element`, v);
63
+ const { checkIRs } = def.checks ? extractChecks(def.checks) : { checkIRs: [] };
64
+ return { type: "array", element, checks: checkIRs };
65
+ }
66
+ case "tuple": {
67
+ const items = def.items.map((item, i) => extractSchema(item, fallbacks, `${p}._zod.def.items[${i}]`, v));
68
+ const rest = def.rest ? extractSchema(def.rest, fallbacks, `${p}._zod.def.rest`, v) : null;
69
+ return { type: "tuple", items, rest };
70
+ }
71
+ case "record": {
72
+ if (!def.valueType) {
73
+ return makeFallback("unsupported", zodSchema, fallbacks, p);
74
+ }
75
+ const keyType = extractSchema(def.keyType, fallbacks, `${p}._zod.def.keyType`, v);
76
+ const valueType = extractSchema(def.valueType, fallbacks, `${p}._zod.def.valueType`, v);
77
+ return { type: "record", keyType, valueType };
78
+ }
79
+ case "intersection":
80
+ return {
81
+ type: "intersection",
82
+ left: extractSchema(def.left, fallbacks, `${p}._zod.def.left`, v),
83
+ right: extractSchema(def.right, fallbacks, `${p}._zod.def.right`, v),
84
+ };
85
+ case "map": {
86
+ const keyType = extractSchema(def.keyType, fallbacks, `${p}._zod.def.keyType`, v);
87
+ const valueType = extractSchema(def.valueType, fallbacks, `${p}._zod.def.valueType`, v);
88
+ return { type: "map", keyType, valueType };
89
+ }
90
+ case "lazy":
91
+ return extractLazy(schema, zodSchema, p, fallbacks, extractSchema, v);
92
+ // ── Complex cases (delegated to extractors/) ───────────────────────────
93
+ case "string":
94
+ return extractString(def, zodSchema, p, fallbacks);
95
+ case "number":
96
+ return extractNumber(def, zodSchema, p, fallbacks);
97
+ case "date":
98
+ return extractDate(def);
99
+ case "bigint":
100
+ return extractBigint(def);
101
+ case "set":
102
+ return extractSet(def, p, fallbacks, extractSchema, v);
103
+ case "union":
104
+ return extractUnion(def, p, fallbacks, extractSchema, v);
105
+ case "default":
106
+ return extractDefault(def, zodSchema, p, fallbacks, extractSchema, v);
107
+ case "pipe":
108
+ return extractPipe(def, zodSchema, p, fallbacks, extractSchema, v);
109
+ default:
110
+ return makeFallback("unsupported", zodSchema, fallbacks, p);
111
+ }
112
+ }
113
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/extract/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,58 @@
1
+ export interface ZodCheckDef {
2
+ check: string;
3
+ minimum: number;
4
+ maximum: number;
5
+ length: number;
6
+ value: number;
7
+ inclusive: boolean;
8
+ format: string;
9
+ pattern: RegExp | string;
10
+ type: string;
11
+ fn: unknown;
12
+ }
13
+ export interface ZodCheckSchema {
14
+ _zod?: {
15
+ def: ZodCheckDef;
16
+ };
17
+ }
18
+ export interface ZodDef {
19
+ type: string;
20
+ checks: ZodCheckSchema[];
21
+ check: string;
22
+ format: string;
23
+ pattern: RegExp | string;
24
+ shape: Record<string, ZodSchema>;
25
+ element: ZodSchema;
26
+ options: ZodSchema[];
27
+ innerType: ZodSchema;
28
+ values: (string | number | boolean | null)[];
29
+ entries: Record<string, string>;
30
+ in: ZodSchema;
31
+ out: ZodSchema;
32
+ items: ZodSchema[];
33
+ rest: ZodSchema | null;
34
+ keyType: ZodSchema;
35
+ valueType: ZodSchema;
36
+ left: ZodSchema;
37
+ right: ZodSchema;
38
+ discriminator: string;
39
+ defaultValue: unknown;
40
+ }
41
+ export interface ZodSchema {
42
+ _zod: {
43
+ def: ZodDef;
44
+ bag?: Record<string, unknown>;
45
+ /** Resolved inner type for lazy schemas. */
46
+ innerType?: ZodSchema;
47
+ };
48
+ }
49
+ /** Entry collected during extraction for each fallback sub-schema. */
50
+ export interface FallbackEntry {
51
+ /** Runtime reference to the Zod sub-schema. */
52
+ schema: unknown;
53
+ /** Navigation path from root schema, e.g. '.shape["slug"]' */
54
+ accessPath: string;
55
+ }
56
+ /** Signature for the recursive extractSchema function, passed to extractors. */
57
+ export type ExtractFn = (zodSchema: unknown, fallbacks?: FallbackEntry[], currentPath?: string, visiting?: Set<unknown>) => import("../types.js").SchemaIR;
58
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/core/extract/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,OAAO,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,OAAO,CAAC;CACb;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,CAAC,EAAE;QACL,GAAG,EAAE,WAAW,CAAC;KAClB,CAAC;CACH;AAED,MAAM,WAAW,MAAM;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,cAAc,EAAE,CAAC;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC;IACzB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IACjC,OAAO,EAAE,SAAS,CAAC;IACnB,OAAO,EAAE,SAAS,EAAE,CAAC;IACrB,SAAS,EAAE,SAAS,CAAC;IACrB,MAAM,EAAE,CAAC,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC,EAAE,CAAC;IAC7C,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,EAAE,EAAE,SAAS,CAAC;IACd,GAAG,EAAE,SAAS,CAAC;IACf,KAAK,EAAE,SAAS,EAAE,CAAC;IACnB,IAAI,EAAE,SAAS,GAAG,IAAI,CAAC;IACvB,OAAO,EAAE,SAAS,CAAC;IACnB,SAAS,EAAE,SAAS,CAAC;IACrB,IAAI,EAAE,SAAS,CAAC;IAChB,KAAK,EAAE,SAAS,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,OAAO,CAAC;CACvB;AAED,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE;QACJ,GAAG,EAAE,MAAM,CAAC;QACZ,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAC9B,4CAA4C;QAC5C,SAAS,CAAC,EAAE,SAAS,CAAC;KACvB,CAAC;CACH;AAED,sEAAsE;AACtE,MAAM,WAAW,aAAa;IAC5B,+CAA+C;IAC/C,MAAM,EAAE,OAAO,CAAC;IAChB,8DAA8D;IAC9D,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,gFAAgF;AAChF,MAAM,MAAM,SAAS,GAAG,CACtB,SAAS,EAAE,OAAO,EAClB,SAAS,CAAC,EAAE,aAAa,EAAE,EAC3B,WAAW,CAAC,EAAE,MAAM,EACpB,QAAQ,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC,KACpB,OAAO,aAAa,EAAE,QAAQ,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/core/extract/types.ts"],"names":[],"mappings":""}
@@ -1,5 +1,5 @@
1
1
  import type { CodeGenResult } from "./codegen/context.js";
2
- import type { FallbackEntry } from "./extractor.js";
2
+ import type { FallbackEntry } from "./extract/index.js";
3
3
  /** Result of compiling a single discovered schema through extract → generate pipeline. */
4
4
  export interface CompiledSchemaInfo {
5
5
  exportName: string;
@@ -1 +1 @@
1
- {"version":3,"file":"pipeline.d.ts","sourceRoot":"","sources":["../../src/core/pipeline.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAE1D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAGpD,0FAA0F;AAC1F,MAAM,WAAW,kBAAkB;IACjC,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,aAAa,CAAC;IAC7B,eAAe,EAAE,aAAa,EAAE,CAAC;CAClC;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAC5B,OAAO,EAAE;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,OAAO,CAAA;CAAE,EAAE,GACjD,kBAAkB,EAAE,CAStB"}
1
+ {"version":3,"file":"pipeline.d.ts","sourceRoot":"","sources":["../../src/core/pipeline.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAE1D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAGxD,0FAA0F;AAC1F,MAAM,WAAW,kBAAkB;IACjC,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,aAAa,CAAC;IAC7B,eAAe,EAAE,aAAa,EAAE,CAAC;CAClC;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAC5B,OAAO,EAAE;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,OAAO,CAAA;CAAE,EAAE,GACjD,kBAAkB,EAAE,CAStB"}
@@ -1,5 +1,5 @@
1
1
  import { generateValidator } from "./codegen/index.js";
2
- import { extractSchema } from "./extractor.js";
2
+ import { extractSchema } from "./extract/index.js";
3
3
  /**
4
4
  * Run the extract → generate pipeline for each discovered schema.
5
5
  * Shared by CLI generate and unplugin transform.
@@ -1 +1 @@
1
- {"version":3,"file":"pipeline.js","sourceRoot":"","sources":["../../src/core/pipeline.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAEvD,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAS/C;;;GAGG;AACH,MAAM,UAAU,cAAc,CAC5B,OAAkD;IAElD,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QACvB,MAAM,eAAe,GAAoB,EAAE,CAAC;QAC5C,MAAM,EAAE,GAAG,aAAa,CAAC,CAAC,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;QACpD,MAAM,aAAa,GAAG,iBAAiB,CAAC,EAAE,EAAE,CAAC,CAAC,UAAU,EAAE;YACxD,aAAa,EAAE,eAAe,CAAC,MAAM;SACtC,CAAC,CAAC;QACH,OAAO,EAAE,UAAU,EAAE,CAAC,CAAC,UAAU,EAAE,aAAa,EAAE,eAAe,EAAE,CAAC;IACtE,CAAC,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"pipeline.js","sourceRoot":"","sources":["../../src/core/pipeline.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAEvD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AASnD;;;GAGG;AACH,MAAM,UAAU,cAAc,CAC5B,OAAkD;IAElD,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QACvB,MAAM,eAAe,GAAoB,EAAE,CAAC;QAC5C,MAAM,EAAE,GAAG,aAAa,CAAC,CAAC,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;QACpD,MAAM,aAAa,GAAG,iBAAiB,CAAC,EAAE,EAAE,CAAC,CAAC,UAAU,EAAE;YACxD,aAAa,EAAE,eAAe,CAAC,MAAM;SACtC,CAAC,CAAC;QACH,OAAO,EAAE,UAAU,EAAE,CAAC,CAAC,UAAU,EAAE,aAAa,EAAE,eAAe,EAAE,CAAC;IACtE,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -1,7 +1,7 @@
1
1
  export type { CodeGenResult } from "#src/core/codegen/index.js";
2
2
  export { generateValidator } from "#src/core/codegen/index.js";
3
- export type { FallbackEntry } from "#src/core/extractor.js";
4
- export { extractSchema } from "#src/core/extractor.js";
3
+ export type { FallbackEntry } from "#src/core/extract/index.js";
4
+ export { extractSchema } from "#src/core/extract/index.js";
5
5
  export { createFallback } from "#src/core/runtime.js";
6
6
  export type { CheckIR, DateCheckIR, SchemaIR } from "#src/core/types.js";
7
7
  //# sourceMappingURL=internals.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"internals.d.ts","sourceRoot":"","sources":["../src/internals.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAC/D,YAAY,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,YAAY,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC"}
1
+ {"version":3,"file":"internals.d.ts","sourceRoot":"","sources":["../src/internals.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAC/D,YAAY,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,YAAY,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC"}
package/dist/internals.js CHANGED
@@ -1,4 +1,4 @@
1
1
  export { generateValidator } from "#src/core/codegen/index.js";
2
- export { extractSchema } from "#src/core/extractor.js";
2
+ export { extractSchema } from "#src/core/extract/index.js";
3
3
  export { createFallback } from "#src/core/runtime.js";
4
4
  //# sourceMappingURL=internals.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"internals.js","sourceRoot":"","sources":["../src/internals.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAE/D,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC"}
1
+ {"version":3,"file":"internals.js","sourceRoot":"","sources":["../src/internals.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAE/D,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "zod-aot",
3
- "version": "0.0.14",
3
+ "version": "0.0.16",
4
4
  "description": "Compile Zod schemas into zero-overhead validation functions at build time",
5
5
  "type": "module",
6
6
  "keywords": [
@@ -1,16 +0,0 @@
1
- import type { SchemaIR } from "./types.js";
2
- /** Entry collected during extraction for each fallback sub-schema. */
3
- export interface FallbackEntry {
4
- /** Runtime reference to the Zod sub-schema. */
5
- schema: unknown;
6
- /** Navigation path from root schema, e.g. '.shape["slug"]' */
7
- accessPath: string;
8
- }
9
- /**
10
- * Extract SchemaIR from a Zod schema by traversing its `_zod.def` and `_zod.bag`.
11
- *
12
- * When `fallbacks` is provided, non-compilable sub-schemas are collected with their
13
- * access paths for partial fallback (Zod delegation at runtime).
14
- */
15
- export declare function extractSchema(zodSchema: unknown, fallbacks?: FallbackEntry[], currentPath?: string): SchemaIR;
16
- //# sourceMappingURL=extractor.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"extractor.d.ts","sourceRoot":"","sources":["../../src/core/extractor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAKV,QAAQ,EAET,MAAM,YAAY,CAAC;AAoDpB,sEAAsE;AACtE,MAAM,WAAW,aAAa;IAC5B,+CAA+C;IAC/C,MAAM,EAAE,OAAO,CAAC;IAChB,8DAA8D;IAC9D,UAAU,EAAE,MAAM,CAAC;CACpB;AAmED;;;;;GAKG;AACH,wBAAgB,aAAa,CAC3B,SAAS,EAAE,OAAO,EAClB,SAAS,CAAC,EAAE,aAAa,EAAE,EAC3B,WAAW,CAAC,EAAE,MAAM,GACnB,QAAQ,CAmQV"}