@zod-to-form/core 0.6.2 → 0.6.3

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 (107) hide show
  1. package/dist/config.d.ts +21 -27
  2. package/dist/config.d.ts.map +1 -1
  3. package/dist/config.js +18 -17
  4. package/dist/config.js.map +1 -1
  5. package/dist/index.d.ts +4 -2
  6. package/dist/index.d.ts.map +1 -1
  7. package/dist/index.js +1 -0
  8. package/dist/index.js.map +1 -1
  9. package/dist/optimizers/constraint-map.d.ts +14 -0
  10. package/dist/optimizers/constraint-map.d.ts.map +1 -0
  11. package/dist/optimizers/constraint-map.js +117 -0
  12. package/dist/optimizers/constraint-map.js.map +1 -0
  13. package/dist/optimizers/index.d.ts +10 -0
  14. package/dist/optimizers/index.d.ts.map +1 -0
  15. package/dist/optimizers/index.js +31 -0
  16. package/dist/optimizers/index.js.map +1 -0
  17. package/dist/optimizers/l1-decompose.d.ts +6 -0
  18. package/dist/optimizers/l1-decompose.d.ts.map +1 -0
  19. package/dist/optimizers/l1-decompose.js +65 -0
  20. package/dist/optimizers/l1-decompose.js.map +1 -0
  21. package/dist/optimizers/l2-native-rules.d.ts +6 -0
  22. package/dist/optimizers/l2-native-rules.d.ts.map +1 -0
  23. package/dist/optimizers/l2-native-rules.js +66 -0
  24. package/dist/optimizers/l2-native-rules.js.map +1 -0
  25. package/dist/optimizers/l3-cross-field.d.ts +2 -0
  26. package/dist/optimizers/l3-cross-field.d.ts.map +1 -0
  27. package/dist/optimizers/l3-cross-field.js +43 -0
  28. package/dist/optimizers/l3-cross-field.js.map +1 -0
  29. package/dist/optimizers/schema-lite.d.ts +11 -0
  30. package/dist/optimizers/schema-lite.d.ts.map +1 -0
  31. package/dist/optimizers/schema-lite.js +71 -0
  32. package/dist/optimizers/schema-lite.js.map +1 -0
  33. package/dist/optimizers/types.d.ts +47 -0
  34. package/dist/optimizers/types.d.ts.map +1 -0
  35. package/dist/optimizers/types.js +2 -0
  36. package/dist/optimizers/types.js.map +1 -0
  37. package/dist/processors/array.d.ts +3 -3
  38. package/dist/processors/array.d.ts.map +1 -1
  39. package/dist/processors/array.js +3 -6
  40. package/dist/processors/array.js.map +1 -1
  41. package/dist/processors/boolean.d.ts +2 -2
  42. package/dist/processors/boolean.d.ts.map +1 -1
  43. package/dist/processors/boolean.js.map +1 -1
  44. package/dist/processors/collections.d.ts +13 -0
  45. package/dist/processors/collections.d.ts.map +1 -0
  46. package/dist/processors/collections.js +36 -0
  47. package/dist/processors/collections.js.map +1 -0
  48. package/dist/processors/date.d.ts +2 -2
  49. package/dist/processors/date.d.ts.map +1 -1
  50. package/dist/processors/date.js.map +1 -1
  51. package/dist/processors/enum.d.ts +3 -3
  52. package/dist/processors/enum.d.ts.map +1 -1
  53. package/dist/processors/enum.js +5 -7
  54. package/dist/processors/enum.js.map +1 -1
  55. package/dist/processors/fallback.d.ts.map +1 -1
  56. package/dist/processors/fallback.js +1 -13
  57. package/dist/processors/fallback.js.map +1 -1
  58. package/dist/processors/index.d.ts +3 -1
  59. package/dist/processors/index.d.ts.map +1 -1
  60. package/dist/processors/index.js +3 -1
  61. package/dist/processors/index.js.map +1 -1
  62. package/dist/processors/number.d.ts +2 -2
  63. package/dist/processors/number.d.ts.map +1 -1
  64. package/dist/processors/number.js +3 -4
  65. package/dist/processors/number.js.map +1 -1
  66. package/dist/processors/object.d.ts +3 -3
  67. package/dist/processors/object.d.ts.map +1 -1
  68. package/dist/processors/object.js +12 -12
  69. package/dist/processors/object.js.map +1 -1
  70. package/dist/processors/record.d.ts +4 -0
  71. package/dist/processors/record.d.ts.map +1 -0
  72. package/dist/processors/record.js +8 -0
  73. package/dist/processors/record.js.map +1 -0
  74. package/dist/processors/string.d.ts +3 -3
  75. package/dist/processors/string.d.ts.map +1 -1
  76. package/dist/processors/string.js +22 -7
  77. package/dist/processors/string.js.map +1 -1
  78. package/dist/processors/union.d.ts +3 -2
  79. package/dist/processors/union.d.ts.map +1 -1
  80. package/dist/processors/union.js +20 -19
  81. package/dist/processors/union.js.map +1 -1
  82. package/dist/processors/wrappers.d.ts +7 -7
  83. package/dist/processors/wrappers.d.ts.map +1 -1
  84. package/dist/processors/wrappers.js +9 -16
  85. package/dist/processors/wrappers.js.map +1 -1
  86. package/dist/register.d.ts.map +1 -1
  87. package/dist/register.js +5 -6
  88. package/dist/register.js.map +1 -1
  89. package/dist/registry.d.ts +0 -3
  90. package/dist/registry.d.ts.map +1 -1
  91. package/dist/registry.js +27 -6
  92. package/dist/registry.js.map +1 -1
  93. package/dist/types.d.ts +68 -13
  94. package/dist/types.d.ts.map +1 -1
  95. package/dist/utils.d.ts +0 -6
  96. package/dist/utils.d.ts.map +1 -1
  97. package/dist/utils.js +2 -6
  98. package/dist/utils.js.map +1 -1
  99. package/dist/walker.d.ts +7 -4
  100. package/dist/walker.d.ts.map +1 -1
  101. package/dist/walker.js +157 -17
  102. package/dist/walker.js.map +1 -1
  103. package/package.json +1 -1
  104. package/dist/processors/_utils.d.ts +0 -5
  105. package/dist/processors/_utils.d.ts.map +0 -1
  106. package/dist/processors/_utils.js +0 -17
  107. package/dist/processors/_utils.js.map +0 -1
@@ -0,0 +1,66 @@
1
+ import { extractNativeRules } from './constraint-map.js';
2
+ /** Types where the component enforces the constraint (no validation needed) */
3
+ const COMPONENT_ENFORCED_TYPES = new Set(['enum', 'boolean', 'literal']);
4
+ /**
5
+ * Level 2 optimizer: Converts simple Zod constraints to native RHF rules.
6
+ *
7
+ * For fields without refine/transform, replaces zodSchema with native
8
+ * RHF register rules (minLength, maxLength, min, max, pattern, required).
9
+ *
10
+ * For enum/boolean/literal fields, sets component-enforced mode
11
+ * (no validation emitted since the component guarantees valid values).
12
+ *
13
+ * Fields with refine/transform stay as 'zodSchema' mode (strict equivalence).
14
+ */
15
+ const l2Optimizer = (schema, ctx, field) => {
16
+ // Only run at level 2+
17
+ if (ctx.level < 2)
18
+ return;
19
+ // Skip if L1 didn't set zodSchema mode
20
+ if (field.validation?.mode !== 'zodSchema')
21
+ return;
22
+ // Component-enforced types need no validation
23
+ if (COMPONENT_ENFORCED_TYPES.has(field.zodType)) {
24
+ field.validation = { mode: 'component-enforced' };
25
+ field.zodSchema = undefined;
26
+ return;
27
+ }
28
+ // Try to extract native rules from the schema
29
+ const nativeRules = extractNativeRules(schema);
30
+ if (nativeRules !== null) {
31
+ // All constraints mapped to native rules — switch to native mode
32
+ // Add required flag based on optionality
33
+ if (field.required) {
34
+ nativeRules.required = nativeRules.required ?? 'This field is required';
35
+ }
36
+ field.validation = { mode: 'native', rules: nativeRules };
37
+ field.zodSchema = undefined;
38
+ }
39
+ // If nativeRules is null, field stays as 'zodSchema' (has refine/transform)
40
+ };
41
+ /**
42
+ * Zod types that L2 handles for native rule extraction.
43
+ */
44
+ const L2_TYPES = [
45
+ 'string',
46
+ 'number',
47
+ 'bigint',
48
+ 'date',
49
+ 'file',
50
+ 'template_literal',
51
+ // Component-enforced
52
+ 'enum',
53
+ 'boolean',
54
+ 'literal'
55
+ ];
56
+ /**
57
+ * Build the L2 optimizer registry.
58
+ */
59
+ export function buildL2Optimizers() {
60
+ const registry = {};
61
+ for (const type of L2_TYPES) {
62
+ registry[type] = [l2Optimizer];
63
+ }
64
+ return registry;
65
+ }
66
+ //# sourceMappingURL=l2-native-rules.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"l2-native-rules.js","sourceRoot":"","sources":["../../src/optimizers/l2-native-rules.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAEzD,+EAA+E;AAC/E,MAAM,wBAAwB,GAAG,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC;AAEzE;;;;;;;;;;GAUG;AACH,MAAM,WAAW,GAAkB,CAAC,MAAgB,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE;IAClE,uBAAuB;IACvB,IAAI,GAAG,CAAC,KAAK,GAAG,CAAC;QAAE,OAAO;IAE1B,uCAAuC;IACvC,IAAI,KAAK,CAAC,UAAU,EAAE,IAAI,KAAK,WAAW;QAAE,OAAO;IAEnD,8CAA8C;IAC9C,IAAI,wBAAwB,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;QAChD,KAAK,CAAC,UAAU,GAAG,EAAE,IAAI,EAAE,oBAAoB,EAAE,CAAC;QAClD,KAAK,CAAC,SAAS,GAAG,SAAS,CAAC;QAC5B,OAAO;IACT,CAAC;IAED,8CAA8C;IAC9C,MAAM,WAAW,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC;IAE/C,IAAI,WAAW,KAAK,IAAI,EAAE,CAAC;QACzB,iEAAiE;QACjE,yCAAyC;QACzC,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;YACnB,WAAW,CAAC,QAAQ,GAAG,WAAW,CAAC,QAAQ,IAAI,wBAAwB,CAAC;QAC1E,CAAC;QAED,KAAK,CAAC,UAAU,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC;QAC1D,KAAK,CAAC,SAAS,GAAG,SAAS,CAAC;IAC9B,CAAC;IACD,4EAA4E;AAC9E,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,QAAQ,GAAG;IACf,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,MAAM;IACN,MAAM;IACN,kBAAkB;IAClB,qBAAqB;IACrB,MAAM;IACN,SAAS;IACT,SAAS;CACD,CAAC;AAEX;;GAEG;AACH,MAAM,UAAU,iBAAiB;IAC/B,MAAM,QAAQ,GAAoC,EAAE,CAAC;IACrD,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE,CAAC;QAC5B,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IACjC,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=l3-cross-field.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"l3-cross-field.d.ts","sourceRoot":"","sources":["../../src/optimizers/l3-cross-field.ts"],"names":[],"mappings":""}
@@ -0,0 +1,43 @@
1
+ export {};
2
+ // TODO(L3): Implement cross-field static analysis when Zod v4 exposes superRefine functions.
3
+ //
4
+ // This module will analyze schemaLite checks for convertible superRefine patterns
5
+ // and produce watch+validate field configurations for real-time cross-field feedback.
6
+ //
7
+ // Design:
8
+ // - analyzeSchemaLite(collector) → AnalyzedSuperRefine[]
9
+ // Parses superRefine function bodies for static patterns:
10
+ // ctx.addIssue({ path: ['literal'] }), data.fieldA/data.fieldB references
11
+ //
12
+ // - applyL3Results(fields, results, collector) → void
13
+ // Sets field.validation = { mode: 'watch', watchFields, watchValidate }
14
+ // on target fields and removes converted checks from the collector
15
+ //
16
+ // Blocked on: Zod v4 bakes superRefine into schema checks — the callback
17
+ // function isn't directly extractable. Requires either AST parsing of
18
+ // function.toString() or a future Zod API to expose the function.
19
+ //
20
+ // interface AnalyzedSuperRefine {
21
+ // targetPath: string; // field that receives the error
22
+ // watchFields: string[]; // fields the superRefine reads
23
+ // entry: unknown; // the check object from SchemaLiteCollector
24
+ // }
25
+ //
26
+ // export function analyzeSchemaLite(collector: SchemaLiteCollector): AnalyzedSuperRefine[] {
27
+ // // Conservative: only convert patterns we can prove correct
28
+ // return [];
29
+ // }
30
+ //
31
+ // export function applyL3Results(
32
+ // fields: FormField[],
33
+ // results: AnalyzedSuperRefine[],
34
+ // collector: SchemaLiteCollector
35
+ // ): void {
36
+ // for (const result of results) {
37
+ // const target = fields.find((f) => f.key === result.targetPath);
38
+ // if (!target) continue;
39
+ // target.validation = { mode: 'watch', watchFields: result.watchFields };
40
+ // target.zodSchema = undefined;
41
+ // }
42
+ // }
43
+ //# sourceMappingURL=l3-cross-field.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"l3-cross-field.js","sourceRoot":"","sources":["../../src/optimizers/l3-cross-field.ts"],"names":[],"mappings":";AAAA,6FAA6F;AAC7F,EAAE;AACF,kFAAkF;AAClF,sFAAsF;AACtF,EAAE;AACF,UAAU;AACV,yDAAyD;AACzD,4DAA4D;AAC5D,4EAA4E;AAC5E,EAAE;AACF,sDAAsD;AACtD,0EAA0E;AAC1E,qEAAqE;AACrE,EAAE;AACF,yEAAyE;AACzE,sEAAsE;AACtE,kEAAkE;AAClE,EAAE;AACF,kCAAkC;AAClC,+DAA+D;AAC/D,8DAA8D;AAC9D,2EAA2E;AAC3E,IAAI;AACJ,EAAE;AACF,6FAA6F;AAC7F,gEAAgE;AAChE,eAAe;AACf,IAAI;AACJ,EAAE;AACF,kCAAkC;AAClC,yBAAyB;AACzB,oCAAoC;AACpC,mCAAmC;AACnC,YAAY;AACZ,oCAAoC;AACpC,sEAAsE;AACtE,6BAA6B;AAC7B,8EAA8E;AAC9E,oCAAoC;AACpC,MAAM;AACN,IAAI"}
@@ -0,0 +1,11 @@
1
+ import type { SchemaLiteCollector } from './types.js';
2
+ /**
3
+ * Create a new SchemaLiteCollector instance.
4
+ *
5
+ * Builds a "lite" schema for submit-time validation:
6
+ * - Checks (superRefine/refine): z.object({}).loose().check(c1).check(c2)
7
+ * - Transforms: z.object({}).loose().check(...).transform(fn)
8
+ * - Non-decomposable pipes: original schema as-is
9
+ */
10
+ export declare function createSchemaLiteCollector(): SchemaLiteCollector;
11
+ //# sourceMappingURL=schema-lite.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema-lite.d.ts","sourceRoot":"","sources":["../../src/optimizers/schema-lite.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAWtD;;;;;;;GAOG;AACH,wBAAgB,yBAAyB,IAAI,mBAAmB,CA+E/D"}
@@ -0,0 +1,71 @@
1
+ import { z } from 'zod';
2
+ /**
3
+ * Create a new SchemaLiteCollector instance.
4
+ *
5
+ * Builds a "lite" schema for submit-time validation:
6
+ * - Checks (superRefine/refine): z.object({}).loose().check(c1).check(c2)
7
+ * - Transforms: z.object({}).loose().check(...).transform(fn)
8
+ * - Non-decomposable pipes: original schema as-is
9
+ */
10
+ export function createSchemaLiteCollector() {
11
+ const collectedChecks = [];
12
+ const collectedTransforms = [];
13
+ const fieldMap = new Map();
14
+ let originalSchema = null;
15
+ return {
16
+ addCheck(check) {
17
+ collectedChecks.push(check);
18
+ },
19
+ addTransform(fn) {
20
+ collectedTransforms.push(fn);
21
+ },
22
+ addField(path, schema) {
23
+ fieldMap.set(path, schema);
24
+ },
25
+ setOriginalSchema(schema) {
26
+ originalSchema = schema;
27
+ },
28
+ isEmpty() {
29
+ return (collectedChecks.length === 0 &&
30
+ collectedTransforms.length === 0 &&
31
+ fieldMap.size === 0 &&
32
+ originalSchema === null);
33
+ },
34
+ build() {
35
+ if (collectedChecks.length === 0 &&
36
+ collectedTransforms.length === 0 &&
37
+ fieldMap.size === 0 &&
38
+ !originalSchema) {
39
+ return null;
40
+ }
41
+ // Non-decomposable pipe — use original schema as-is
42
+ if (originalSchema) {
43
+ return originalSchema;
44
+ }
45
+ // Build lite schema from collected effects
46
+ const shape = {};
47
+ for (const [path, schema] of fieldMap) {
48
+ shape[path] = schema;
49
+ }
50
+ let result = Object.keys(shape).length > 0
51
+ ? z.object(shape).loose()
52
+ : z.object({}).loose();
53
+ // Replay checks (superRefine/refine)
54
+ for (const check of collectedChecks) {
55
+ result = result.check(check);
56
+ }
57
+ // Replay transforms
58
+ for (const fn of collectedTransforms) {
59
+ result = result.transform(fn);
60
+ }
61
+ return result;
62
+ },
63
+ get checks() {
64
+ return collectedChecks;
65
+ },
66
+ get fields() {
67
+ return fieldMap;
68
+ }
69
+ };
70
+ }
71
+ //# sourceMappingURL=schema-lite.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema-lite.js","sourceRoot":"","sources":["../../src/optimizers/schema-lite.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAaxB;;;;;;;GAOG;AACH,MAAM,UAAU,yBAAyB;IACvC,MAAM,eAAe,GAAc,EAAE,CAAC;IACtC,MAAM,mBAAmB,GAAsC,EAAE,CAAC;IAClE,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAoB,CAAC;IAC7C,IAAI,cAAc,GAAoB,IAAI,CAAC;IAE3C,OAAO;QACL,QAAQ,CAAC,KAAc;YACrB,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC9B,CAAC;QAED,YAAY,CAAC,EAA8B;YACzC,mBAAmB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC/B,CAAC;QAED,QAAQ,CAAC,IAAY,EAAE,MAAgB;YACrC,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAC7B,CAAC;QAED,iBAAiB,CAAC,MAAgB;YAChC,cAAc,GAAG,MAAM,CAAC;QAC1B,CAAC;QAED,OAAO;YACL,OAAO,CACL,eAAe,CAAC,MAAM,KAAK,CAAC;gBAC5B,mBAAmB,CAAC,MAAM,KAAK,CAAC;gBAChC,QAAQ,CAAC,IAAI,KAAK,CAAC;gBACnB,cAAc,KAAK,IAAI,CACxB,CAAC;QACJ,CAAC;QAED,KAAK;YACH,IACE,eAAe,CAAC,MAAM,KAAK,CAAC;gBAC5B,mBAAmB,CAAC,MAAM,KAAK,CAAC;gBAChC,QAAQ,CAAC,IAAI,KAAK,CAAC;gBACnB,CAAC,cAAc,EACf,CAAC;gBACD,OAAO,IAAI,CAAC;YACd,CAAC;YAED,oDAAoD;YACpD,IAAI,cAAc,EAAE,CAAC;gBACnB,OAAO,cAAc,CAAC;YACxB,CAAC;YAED,2CAA2C;YAC3C,MAAM,KAAK,GAA6B,EAAE,CAAC;YAC3C,KAAK,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;gBACtC,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC;YACvB,CAAC;YAED,IAAI,MAAM,GACR,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC;gBAC3B,CAAC,CAAE,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,EAA2B;gBACnD,CAAC,CAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,KAAK,EAA2B,CAAC;YAErD,qCAAqC;YACrC,KAAK,MAAM,KAAK,IAAI,eAAe,EAAE,CAAC;gBACpC,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YAC/B,CAAC;YAED,oBAAoB;YACpB,KAAK,MAAM,EAAE,IAAI,mBAAmB,EAAE,CAAC;gBACrC,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;YAChC,CAAC;YAED,OAAO,MAA6B,CAAC;QACvC,CAAC;QAED,IAAI,MAAM;YACR,OAAO,eAAe,CAAC;QACzB,CAAC;QAED,IAAI,MAAM;YACR,OAAO,QAAQ,CAAC;QAClB,CAAC;KACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,47 @@
1
+ import type { $ZodType } from 'zod/v4/core';
2
+ import type { FormField, ProcessParams, NativeRules, ValidationStrategy } from '../types.js';
3
+ export type { NativeRules, ValidationStrategy };
4
+ /** Metadata for codegen to reconstruct the lite schema in a generated file */
5
+ export type SchemaLiteInfo = {
6
+ type: 'checks';
7
+ checkCount: number;
8
+ fallthroughFields: string[];
9
+ } | {
10
+ type: 'transform';
11
+ hasInnerChecks: boolean;
12
+ hasOuterChecks: boolean;
13
+ fallthroughFields: string[];
14
+ } | {
15
+ type: 'original';
16
+ } | null;
17
+ export interface WalkResult {
18
+ fields: FormField[];
19
+ schemaLite: $ZodType | null;
20
+ /** Codegen metadata — describes how to reconstruct schemaLite in generated code */
21
+ schemaLiteInfo: SchemaLiteInfo;
22
+ }
23
+ export interface FormOptimizerContext {
24
+ optimizers: Record<string, FormOptimizer[]>;
25
+ schemaLite: SchemaLiteCollector;
26
+ level: 1 | 2 | 3;
27
+ }
28
+ export type FormOptimizer<T extends $ZodType = $ZodType> = (schema: T, ctx: FormOptimizerContext, field: FormField, params: ProcessParams) => void;
29
+ export interface SchemaLiteCollector {
30
+ /** Add a raw Zod check object (superRefine/refine) */
31
+ addCheck(check: unknown): void;
32
+ /** Add a transform function extracted from a pipe wrapper */
33
+ addTransform(fn: (data: unknown) => unknown): void;
34
+ /** Add a field that couldn't be inlined (safety net fallback) */
35
+ addField(path: string, schema: $ZodType): void;
36
+ /** Store the original schema when it can't be decomposed (non-transform pipes) */
37
+ setOriginalSchema(schema: $ZodType): void;
38
+ /** True when nothing has been collected */
39
+ isEmpty(): boolean;
40
+ /** Build the lite schema: z.object({}).loose() + checks + transforms */
41
+ build(): $ZodType | null;
42
+ /** Read-only access to collected checks */
43
+ readonly checks: ReadonlyArray<unknown>;
44
+ /** Read-only access to collected fallthrough fields */
45
+ readonly fields: ReadonlyMap<string, $ZodType>;
46
+ }
47
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/optimizers/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,KAAK,EAAE,SAAS,EAAE,aAAa,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAG7F,YAAY,EAAE,WAAW,EAAE,kBAAkB,EAAE,CAAC;AAIhD,8EAA8E;AAC9E,MAAM,MAAM,cAAc,GACtB;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,iBAAiB,EAAE,MAAM,EAAE,CAAA;CAAE,GACnE;IACE,IAAI,EAAE,WAAW,CAAC;IAClB,cAAc,EAAE,OAAO,CAAC;IACxB,cAAc,EAAE,OAAO,CAAC;IACxB,iBAAiB,EAAE,MAAM,EAAE,CAAC;CAC7B,GACD;IAAE,IAAI,EAAE,UAAU,CAAA;CAAE,GACpB,IAAI,CAAC;AAET,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,SAAS,EAAE,CAAC;IACpB,UAAU,EAAE,QAAQ,GAAG,IAAI,CAAC;IAC5B,mFAAmF;IACnF,cAAc,EAAE,cAAc,CAAC;CAChC;AAID,MAAM,WAAW,oBAAoB;IACnC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,EAAE,CAAC,CAAC;IAC5C,UAAU,EAAE,mBAAmB,CAAC;IAChC,KAAK,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;CAClB;AAED,MAAM,MAAM,aAAa,CAAC,CAAC,SAAS,QAAQ,GAAG,QAAQ,IAAI,CACzD,MAAM,EAAE,CAAC,EACT,GAAG,EAAE,oBAAoB,EACzB,KAAK,EAAE,SAAS,EAChB,MAAM,EAAE,aAAa,KAClB,IAAI,CAAC;AAIV,MAAM,WAAW,mBAAmB;IAClC,sDAAsD;IACtD,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI,CAAC;IAC/B,6DAA6D;IAC7D,YAAY,CAAC,EAAE,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,OAAO,GAAG,IAAI,CAAC;IACnD,iEAAiE;IACjE,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,GAAG,IAAI,CAAC;IAC/C,kFAAkF;IAClF,iBAAiB,CAAC,MAAM,EAAE,QAAQ,GAAG,IAAI,CAAC;IAC1C,2CAA2C;IAC3C,OAAO,IAAI,OAAO,CAAC;IACnB,wEAAwE;IACxE,KAAK,IAAI,QAAQ,GAAG,IAAI,CAAC;IACzB,2CAA2C;IAC3C,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC;IACxC,uDAAuD;IACvD,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;CAChD"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/optimizers/types.ts"],"names":[],"mappings":""}
@@ -1,5 +1,5 @@
1
- import type { $ZodType as ZodType } from 'zod/v4/core';
1
+ import type { $ZodArray, $ZodTuple } from 'zod/v4/core';
2
2
  import type { FormField, FormProcessorContext, ProcessParams } from '../types.js';
3
- export declare function processArray(schema: ZodType, ctx: FormProcessorContext, field: FormField, params: ProcessParams): void;
4
- export declare function processTuple(schema: ZodType, ctx: FormProcessorContext, field: FormField, params: ProcessParams): void;
3
+ export declare function processArray(schema: $ZodArray, ctx: FormProcessorContext, field: FormField, params: ProcessParams): void;
4
+ export declare function processTuple(schema: $ZodTuple, ctx: FormProcessorContext, field: FormField, params: ProcessParams): void;
5
5
  //# sourceMappingURL=array.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"array.d.ts","sourceRoot":"","sources":["../../src/processors/array.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,IAAI,OAAO,EAAE,MAAM,aAAa,CAAC;AACvD,OAAO,KAAK,EAAE,SAAS,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAGlF,wBAAgB,YAAY,CAC1B,MAAM,EAAE,OAAO,EACf,GAAG,EAAE,oBAAoB,EACzB,KAAK,EAAE,SAAS,EAChB,MAAM,EAAE,aAAa,GACpB,IAAI,CAsBN;AAED,wBAAgB,YAAY,CAC1B,MAAM,EAAE,OAAO,EACf,GAAG,EAAE,oBAAoB,EACzB,KAAK,EAAE,SAAS,EAChB,MAAM,EAAE,aAAa,GACpB,IAAI,CAeN"}
1
+ {"version":3,"file":"array.d.ts","sourceRoot":"","sources":["../../src/processors/array.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAuB,MAAM,aAAa,CAAC;AAC7E,OAAO,KAAK,EAAE,SAAS,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAElF,wBAAgB,YAAY,CAC1B,MAAM,EAAE,SAAS,EACjB,GAAG,EAAE,oBAAoB,EACzB,KAAK,EAAE,SAAS,EAChB,MAAM,EAAE,aAAa,GACpB,IAAI,CAqBN;AAED,wBAAgB,YAAY,CAC1B,MAAM,EAAE,SAAS,EACjB,GAAG,EAAE,oBAAoB,EACzB,KAAK,EAAE,SAAS,EAChB,MAAM,EAAE,aAAa,GACpB,IAAI,CAcN"}
@@ -1,8 +1,6 @@
1
- import { getDef, getBag } from './_utils.js';
2
1
  export function processArray(schema, ctx, field, params) {
3
2
  field.component = 'ArrayField';
4
- const def = getDef(schema);
5
- const bag = getBag(schema);
3
+ const bag = schema._zod.bag;
6
4
  const minimum = typeof bag['minimum'] === 'number' ? bag['minimum'] : undefined;
7
5
  const maximum = typeof bag['maximum'] === 'number' ? bag['maximum'] : undefined;
8
6
  if (minimum !== undefined) {
@@ -11,7 +9,7 @@ export function processArray(schema, ctx, field, params) {
11
9
  if (maximum !== undefined) {
12
10
  field.constraints.maxLength = maximum;
13
11
  }
14
- const elementSchema = def['element'];
12
+ const elementSchema = schema._zod.def.element;
15
13
  if (elementSchema && ctx.processChild) {
16
14
  const itemKey = params.parentKey ? `${params.parentKey}.0` : '0';
17
15
  field.arrayItem = ctx.processChild(elementSchema, itemKey);
@@ -19,8 +17,7 @@ export function processArray(schema, ctx, field, params) {
19
17
  }
20
18
  export function processTuple(schema, ctx, field, params) {
21
19
  field.component = 'Fieldset';
22
- const def = getDef(schema);
23
- const items = def['items'];
20
+ const items = schema._zod.def.items;
24
21
  if (!items || !ctx.processChild) {
25
22
  field.children = [];
26
23
  return;
@@ -1 +1 @@
1
- {"version":3,"file":"array.js","sourceRoot":"","sources":["../../src/processors/array.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAE7C,MAAM,UAAU,YAAY,CAC1B,MAAe,EACf,GAAyB,EACzB,KAAgB,EAChB,MAAqB;IAErB,KAAK,CAAC,SAAS,GAAG,YAAY,CAAC;IAE/B,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;IAC3B,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;IAE3B,MAAM,OAAO,GAAG,OAAO,GAAG,CAAC,SAAS,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAChF,MAAM,OAAO,GAAG,OAAO,GAAG,CAAC,SAAS,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAEhF,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B,KAAK,CAAC,WAAW,CAAC,SAAS,GAAG,OAAO,CAAC;IACxC,CAAC;IACD,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B,KAAK,CAAC,WAAW,CAAC,SAAS,GAAG,OAAO,CAAC;IACxC,CAAC;IAED,MAAM,aAAa,GAAG,GAAG,CAAC,SAAS,CAAwB,CAAC;IAE5D,IAAI,aAAa,IAAI,GAAG,CAAC,YAAY,EAAE,CAAC;QACtC,MAAM,OAAO,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,SAAS,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC;QACjE,KAAK,CAAC,SAAS,GAAG,GAAG,CAAC,YAAY,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;IAC7D,CAAC;AACH,CAAC;AAED,MAAM,UAAU,YAAY,CAC1B,MAAe,EACf,GAAyB,EACzB,KAAgB,EAChB,MAAqB;IAErB,KAAK,CAAC,SAAS,GAAG,UAAU,CAAC;IAE7B,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;IAC3B,MAAM,KAAK,GAAG,GAAG,CAAC,OAAO,CAA0B,CAAC;IAEpD,IAAI,CAAC,KAAK,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;QAChC,KAAK,CAAC,QAAQ,GAAG,EAAE,CAAC;QACpB,OAAO;IACT,CAAC;IAED,KAAK,CAAC,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,KAAK,EAAE,EAAE;QAC/C,MAAM,OAAO,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,SAAS,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,EAAE,CAAC;QAC/E,OAAO,GAAG,CAAC,YAAa,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IAChD,CAAC,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"array.js","sourceRoot":"","sources":["../../src/processors/array.ts"],"names":[],"mappings":"AAGA,MAAM,UAAU,YAAY,CAC1B,MAAiB,EACjB,GAAyB,EACzB,KAAgB,EAChB,MAAqB;IAErB,KAAK,CAAC,SAAS,GAAG,YAAY,CAAC;IAE/B,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC;IAE5B,MAAM,OAAO,GAAG,OAAO,GAAG,CAAC,SAAS,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAChF,MAAM,OAAO,GAAG,OAAO,GAAG,CAAC,SAAS,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAEhF,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B,KAAK,CAAC,WAAW,CAAC,SAAS,GAAG,OAAO,CAAC;IACxC,CAAC;IACD,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B,KAAK,CAAC,WAAW,CAAC,SAAS,GAAG,OAAO,CAAC;IACxC,CAAC;IAED,MAAM,aAAa,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC;IAE9C,IAAI,aAAa,IAAI,GAAG,CAAC,YAAY,EAAE,CAAC;QACtC,MAAM,OAAO,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,SAAS,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC;QACjE,KAAK,CAAC,SAAS,GAAG,GAAG,CAAC,YAAY,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;IAC7D,CAAC;AACH,CAAC;AAED,MAAM,UAAU,YAAY,CAC1B,MAAiB,EACjB,GAAyB,EACzB,KAAgB,EAChB,MAAqB;IAErB,KAAK,CAAC,SAAS,GAAG,UAAU,CAAC;IAE7B,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC;IAEpC,IAAI,CAAC,KAAK,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;QAChC,KAAK,CAAC,QAAQ,GAAG,EAAE,CAAC;QACpB,OAAO;IACT,CAAC;IAED,KAAK,CAAC,QAAQ,GAAI,KAA4B,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,KAAK,EAAE,EAAE;QACvE,MAAM,OAAO,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,SAAS,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,EAAE,CAAC;QAC/E,OAAO,GAAG,CAAC,YAAa,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IAChD,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -1,4 +1,4 @@
1
- import type { $ZodType as ZodType } from 'zod/v4/core';
1
+ import type { $ZodBoolean } from 'zod/v4/core';
2
2
  import type { FormField, FormProcessorContext, ProcessParams } from '../types.js';
3
- export declare function processBoolean(schema: ZodType, ctx: FormProcessorContext, field: FormField, _params: ProcessParams): void;
3
+ export declare function processBoolean(schema: $ZodBoolean, ctx: FormProcessorContext, field: FormField, _params: ProcessParams): void;
4
4
  //# sourceMappingURL=boolean.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"boolean.d.ts","sourceRoot":"","sources":["../../src/processors/boolean.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,IAAI,OAAO,EAAE,MAAM,aAAa,CAAC;AACvD,OAAO,KAAK,EAAE,SAAS,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAElF,wBAAgB,cAAc,CAC5B,MAAM,EAAE,OAAO,EACf,GAAG,EAAE,oBAAoB,EACzB,KAAK,EAAE,SAAS,EAChB,OAAO,EAAE,aAAa,GACrB,IAAI,CAKN"}
1
+ {"version":3,"file":"boolean.d.ts","sourceRoot":"","sources":["../../src/processors/boolean.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAuB,MAAM,aAAa,CAAC;AACpE,OAAO,KAAK,EAAE,SAAS,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAElF,wBAAgB,cAAc,CAC5B,MAAM,EAAE,WAAW,EACnB,GAAG,EAAE,oBAAoB,EACzB,KAAK,EAAE,SAAS,EAChB,OAAO,EAAE,aAAa,GACrB,IAAI,CAKN"}
@@ -1 +1 @@
1
- {"version":3,"file":"boolean.js","sourceRoot":"","sources":["../../src/processors/boolean.ts"],"names":[],"mappings":"AAGA,MAAM,UAAU,cAAc,CAC5B,MAAe,EACf,GAAyB,EACzB,KAAgB,EAChB,OAAsB;IAEtB,MAAM,IAAI,GAAG,GAAG,CAAC,YAAY,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAE3C,KAAK,CAAC,SAAS,GAAG,IAAI,EAAE,SAAS,IAAI,UAAU,CAAC;IAChD,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC;AACxB,CAAC"}
1
+ {"version":3,"file":"boolean.js","sourceRoot":"","sources":["../../src/processors/boolean.ts"],"names":[],"mappings":"AAGA,MAAM,UAAU,cAAc,CAC5B,MAAmB,EACnB,GAAyB,EACzB,KAAgB,EAChB,OAAsB;IAEtB,MAAM,IAAI,GAAG,GAAG,CAAC,YAAY,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAE3C,KAAK,CAAC,SAAS,GAAG,IAAI,EAAE,SAAS,IAAI,UAAU,CAAC;IAChD,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC;AACxB,CAAC"}
@@ -0,0 +1,13 @@
1
+ import type { $ZodMap, $ZodSet } from 'zod/v4/core';
2
+ import type { FormField, FormProcessorContext, ProcessParams } from '../types.js';
3
+ /**
4
+ * Process z.set() — renders as an array-like repeater of unique items.
5
+ * The value type determines the item template.
6
+ */
7
+ export declare function processSet(schema: $ZodSet, ctx: FormProcessorContext, field: FormField, params: ProcessParams): void;
8
+ /**
9
+ * Process z.map() — renders as an array-like repeater of key-value pair fieldsets.
10
+ * Each entry has a `key` field and a `value` field derived from the Map's type params.
11
+ */
12
+ export declare function processMap(schema: $ZodMap, ctx: FormProcessorContext, field: FormField, params: ProcessParams): void;
13
+ //# sourceMappingURL=collections.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"collections.d.ts","sourceRoot":"","sources":["../../src/processors/collections.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAEpD,OAAO,KAAK,EAAE,SAAS,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAElF;;;GAGG;AACH,wBAAgB,UAAU,CACxB,MAAM,EAAE,OAAO,EACf,GAAG,EAAE,oBAAoB,EACzB,KAAK,EAAE,SAAS,EAChB,MAAM,EAAE,aAAa,GACpB,IAAI,CASN;AAED;;;GAGG;AACH,wBAAgB,UAAU,CACxB,MAAM,EAAE,OAAO,EACf,GAAG,EAAE,oBAAoB,EACzB,KAAK,EAAE,SAAS,EAChB,MAAM,EAAE,aAAa,GACpB,IAAI,CAqBN"}
@@ -0,0 +1,36 @@
1
+ import { createBaseField } from '../utils.js';
2
+ /**
3
+ * Process z.set() — renders as an array-like repeater of unique items.
4
+ * The value type determines the item template.
5
+ */
6
+ export function processSet(schema, ctx, field, params) {
7
+ field.component = 'ArrayField';
8
+ const valueType = schema._zod.def.valueType;
9
+ if (ctx.processChild) {
10
+ const itemKey = params.parentKey ? `${params.parentKey}.0` : '0';
11
+ field.arrayItem = ctx.processChild(valueType, itemKey);
12
+ }
13
+ }
14
+ /**
15
+ * Process z.map() — renders as an array-like repeater of key-value pair fieldsets.
16
+ * Each entry has a `key` field and a `value` field derived from the Map's type params.
17
+ */
18
+ export function processMap(schema, ctx, field, params) {
19
+ field.component = 'ArrayField';
20
+ const keyType = schema._zod.def.keyType;
21
+ const valueType = schema._zod.def.valueType;
22
+ // Each map entry is a fieldset with key + value children
23
+ const entryKey = params.parentKey ? `${params.parentKey}.0` : '0';
24
+ const entryField = createBaseField(entryKey, 'object');
25
+ entryField.component = 'Fieldset';
26
+ entryField.label = 'Entry';
27
+ if (ctx.processChild) {
28
+ const keyField = ctx.processChild(keyType, `${entryKey}.key`);
29
+ keyField.label = 'Key';
30
+ const valueField = ctx.processChild(valueType, `${entryKey}.value`);
31
+ valueField.label = 'Value';
32
+ entryField.children = [keyField, valueField];
33
+ }
34
+ field.arrayItem = entryField;
35
+ }
36
+ //# sourceMappingURL=collections.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"collections.js","sourceRoot":"","sources":["../../src/processors/collections.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAG9C;;;GAGG;AACH,MAAM,UAAU,UAAU,CACxB,MAAe,EACf,GAAyB,EACzB,KAAgB,EAChB,MAAqB;IAErB,KAAK,CAAC,SAAS,GAAG,YAAY,CAAC;IAE/B,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC;IAE5C,IAAI,GAAG,CAAC,YAAY,EAAE,CAAC;QACrB,MAAM,OAAO,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,SAAS,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC;QACjE,KAAK,CAAC,SAAS,GAAG,GAAG,CAAC,YAAY,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IACzD,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,UAAU,CACxB,MAAe,EACf,GAAyB,EACzB,KAAgB,EAChB,MAAqB;IAErB,KAAK,CAAC,SAAS,GAAG,YAAY,CAAC;IAE/B,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC;IACxC,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC;IAE5C,yDAAyD;IACzD,MAAM,QAAQ,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,SAAS,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC;IAClE,MAAM,UAAU,GAAG,eAAe,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IACvD,UAAU,CAAC,SAAS,GAAG,UAAU,CAAC;IAClC,UAAU,CAAC,KAAK,GAAG,OAAO,CAAC;IAE3B,IAAI,GAAG,CAAC,YAAY,EAAE,CAAC;QACrB,MAAM,QAAQ,GAAG,GAAG,CAAC,YAAY,CAAC,OAAO,EAAE,GAAG,QAAQ,MAAM,CAAC,CAAC;QAC9D,QAAQ,CAAC,KAAK,GAAG,KAAK,CAAC;QACvB,MAAM,UAAU,GAAG,GAAG,CAAC,YAAY,CAAC,SAAS,EAAE,GAAG,QAAQ,QAAQ,CAAC,CAAC;QACpE,UAAU,CAAC,KAAK,GAAG,OAAO,CAAC;QAC3B,UAAU,CAAC,QAAQ,GAAG,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;IAC/C,CAAC;IAED,KAAK,CAAC,SAAS,GAAG,UAAU,CAAC;AAC/B,CAAC"}
@@ -1,4 +1,4 @@
1
- import type { $ZodType as ZodType } from 'zod/v4/core';
1
+ import type { $ZodDate, $ZodISODate } from 'zod/v4/core';
2
2
  import type { FormField, FormProcessorContext, ProcessParams } from '../types.js';
3
- export declare function processDate(_schema: ZodType, _ctx: FormProcessorContext, field: FormField, _params: ProcessParams): void;
3
+ export declare function processDate(_schema: $ZodDate | $ZodISODate, _ctx: FormProcessorContext, field: FormField, _params: ProcessParams): void;
4
4
  //# sourceMappingURL=date.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"date.d.ts","sourceRoot":"","sources":["../../src/processors/date.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,IAAI,OAAO,EAAE,MAAM,aAAa,CAAC;AACvD,OAAO,KAAK,EAAE,SAAS,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAElF,wBAAgB,WAAW,CACzB,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,oBAAoB,EAC1B,KAAK,EAAE,SAAS,EAChB,OAAO,EAAE,aAAa,GACrB,IAAI,CAEN"}
1
+ {"version":3,"file":"date.d.ts","sourceRoot":"","sources":["../../src/processors/date.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAyC,MAAM,aAAa,CAAC;AAChG,OAAO,KAAK,EAAE,SAAS,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAElF,wBAAgB,WAAW,CACzB,OAAO,EAAE,QAAQ,GAAG,WAAW,EAC/B,IAAI,EAAE,oBAAoB,EAC1B,KAAK,EAAE,SAAS,EAChB,OAAO,EAAE,aAAa,GACrB,IAAI,CAEN"}
@@ -1 +1 @@
1
- {"version":3,"file":"date.js","sourceRoot":"","sources":["../../src/processors/date.ts"],"names":[],"mappings":"AAGA,MAAM,UAAU,WAAW,CACzB,OAAgB,EAChB,IAA0B,EAC1B,KAAgB,EAChB,OAAsB;IAEtB,KAAK,CAAC,SAAS,GAAG,YAAY,CAAC;AACjC,CAAC"}
1
+ {"version":3,"file":"date.js","sourceRoot":"","sources":["../../src/processors/date.ts"],"names":[],"mappings":"AAGA,MAAM,UAAU,WAAW,CACzB,OAA+B,EAC/B,IAA0B,EAC1B,KAAgB,EAChB,OAAsB;IAEtB,KAAK,CAAC,SAAS,GAAG,YAAY,CAAC;AACjC,CAAC"}
@@ -1,5 +1,5 @@
1
- import type { $ZodType as ZodType } from 'zod/v4/core';
1
+ import type { $ZodEnum, $ZodLiteral } from 'zod/v4/core';
2
2
  import type { FormField, FormProcessorContext, ProcessParams } from '../types.js';
3
- export declare function processEnum(schema: ZodType, _ctx: FormProcessorContext, field: FormField, _params: ProcessParams): void;
4
- export declare function processLiteral(schema: ZodType, _ctx: FormProcessorContext, field: FormField, _params: ProcessParams): void;
3
+ export declare function processEnum(schema: $ZodEnum, _ctx: FormProcessorContext, field: FormField, _params: ProcessParams): void;
4
+ export declare function processLiteral(schema: $ZodLiteral, _ctx: FormProcessorContext, field: FormField, _params: ProcessParams): void;
5
5
  //# sourceMappingURL=enum.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"enum.d.ts","sourceRoot":"","sources":["../../src/processors/enum.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,IAAI,OAAO,EAAE,MAAM,aAAa,CAAC;AAEvD,OAAO,KAAK,EAAE,SAAS,EAAmB,oBAAoB,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAsBnG,wBAAgB,WAAW,CACzB,MAAM,EAAE,OAAO,EACf,IAAI,EAAE,oBAAoB,EAC1B,KAAK,EAAE,SAAS,EAChB,OAAO,EAAE,aAAa,GACrB,IAAI,CASN;AAED,wBAAgB,cAAc,CAC5B,MAAM,EAAE,OAAO,EACf,IAAI,EAAE,oBAAoB,EAC1B,KAAK,EAAE,SAAS,EAChB,OAAO,EAAE,aAAa,GACrB,IAAI,CAQN"}
1
+ {"version":3,"file":"enum.d.ts","sourceRoot":"","sources":["../../src/processors/enum.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAEzD,OAAO,KAAK,EAAE,SAAS,EAAmB,oBAAoB,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAqBnG,wBAAgB,WAAW,CACzB,MAAM,EAAE,QAAQ,EAChB,IAAI,EAAE,oBAAoB,EAC1B,KAAK,EAAE,SAAS,EAChB,OAAO,EAAE,aAAa,GACrB,IAAI,CAQN;AAED,wBAAgB,cAAc,CAC5B,MAAM,EAAE,WAAW,EACnB,IAAI,EAAE,oBAAoB,EAC1B,KAAK,EAAE,SAAS,EAChB,OAAO,EAAE,aAAa,GACrB,IAAI,CAON"}
@@ -1,5 +1,4 @@
1
1
  import { inferLabel } from '../utils.js';
2
- import { getDef } from './_utils.js';
3
2
  function normalizeOptions(values) {
4
3
  const options = [];
5
4
  const seen = new Set();
@@ -17,16 +16,15 @@ function normalizeOptions(values) {
17
16
  return options;
18
17
  }
19
18
  export function processEnum(schema, _ctx, field, _params) {
20
- const def = getDef(schema);
21
- const entries = def['entries'];
22
- const values = def['values'];
23
- const enumValues = entries ? Object.values(entries) : (values ?? []);
19
+ const def = schema._zod.def;
20
+ const entries = def.entries;
21
+ const enumValues = Object.values(entries);
24
22
  field.component = 'Select';
25
23
  field.options = normalizeOptions(enumValues);
26
24
  }
27
25
  export function processLiteral(schema, _ctx, field, _params) {
28
- const def = getDef(schema);
29
- const literalValuesRaw = def['values'] ?? (def['value'] !== undefined ? [def['value']] : []);
26
+ const def = schema._zod.def;
27
+ const literalValuesRaw = def.values ?? [];
30
28
  field.component = 'Select';
31
29
  field.readOnly = true;
32
30
  field.options = normalizeOptions(literalValuesRaw);
@@ -1 +1 @@
1
- {"version":3,"file":"enum.js","sourceRoot":"","sources":["../../src/processors/enum.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,SAAS,gBAAgB,CAAC,MAAiB;IACzC,MAAM,OAAO,GAAsB,EAAE,CAAC;IACtC,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAE/B,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC3D,SAAS;QACX,CAAC;QACD,MAAM,GAAG,GAAG,GAAG,OAAO,KAAK,IAAI,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;QAC/C,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YAClB,SAAS;QACX,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACd,OAAO,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;IAC5D,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,MAAM,UAAU,WAAW,CACzB,MAAe,EACf,IAA0B,EAC1B,KAAgB,EAChB,OAAsB;IAEtB,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;IAC3B,MAAM,OAAO,GAAG,GAAG,CAAC,SAAS,CAAwC,CAAC;IACtE,MAAM,MAAM,GAAG,GAAG,CAAC,QAAQ,CAA0B,CAAC;IAEtD,MAAM,UAAU,GAAG,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC;IAErE,KAAK,CAAC,SAAS,GAAG,QAAQ,CAAC;IAC3B,KAAK,CAAC,OAAO,GAAG,gBAAgB,CAAC,UAAU,CAAC,CAAC;AAC/C,CAAC;AAED,MAAM,UAAU,cAAc,CAC5B,MAAe,EACf,IAA0B,EAC1B,KAAgB,EAChB,OAAsB;IAEtB,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;IAC3B,MAAM,gBAAgB,GACnB,GAAG,CAAC,QAAQ,CAA2B,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IAEjG,KAAK,CAAC,SAAS,GAAG,QAAQ,CAAC;IAC3B,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC;IACtB,KAAK,CAAC,OAAO,GAAG,gBAAgB,CAAC,gBAAgB,CAAC,CAAC;AACrD,CAAC"}
1
+ {"version":3,"file":"enum.js","sourceRoot":"","sources":["../../src/processors/enum.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAGzC,SAAS,gBAAgB,CAAC,MAAiB;IACzC,MAAM,OAAO,GAAsB,EAAE,CAAC;IACtC,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAE/B,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC3D,SAAS;QACX,CAAC;QACD,MAAM,GAAG,GAAG,GAAG,OAAO,KAAK,IAAI,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;QAC/C,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YAClB,SAAS;QACX,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACd,OAAO,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;IAC5D,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,MAAM,UAAU,WAAW,CACzB,MAAgB,EAChB,IAA0B,EAC1B,KAAgB,EAChB,OAAsB;IAEtB,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC;IAC5B,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC;IAE5B,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAE1C,KAAK,CAAC,SAAS,GAAG,QAAQ,CAAC;IAC3B,KAAK,CAAC,OAAO,GAAG,gBAAgB,CAAC,UAAU,CAAC,CAAC;AAC/C,CAAC;AAED,MAAM,UAAU,cAAc,CAC5B,MAAmB,EACnB,IAA0B,EAC1B,KAAgB,EAChB,OAAsB;IAEtB,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC;IAC5B,MAAM,gBAAgB,GAAG,GAAG,CAAC,MAAM,IAAI,EAAE,CAAC;IAE1C,KAAK,CAAC,SAAS,GAAG,QAAQ,CAAC;IAC3B,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC;IACtB,KAAK,CAAC,OAAO,GAAG,gBAAgB,CAAC,gBAAgB,CAAC,CAAC;AACrD,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"fallback.d.ts","sourceRoot":"","sources":["../../src/processors/fallback.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,IAAI,OAAO,EAAE,MAAM,aAAa,CAAC;AAEvD,OAAO,KAAK,EAAE,SAAS,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAQlF,wBAAgB,eAAe,CAC7B,MAAM,EAAE,OAAO,EACf,IAAI,EAAE,oBAAoB,EAC1B,KAAK,EAAE,SAAS,EAChB,OAAO,EAAE,aAAa,GACrB,IAAI,CAgBN"}
1
+ {"version":3,"file":"fallback.d.ts","sourceRoot":"","sources":["../../src/processors/fallback.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,IAAI,OAAO,EAAE,MAAM,aAAa,CAAC;AACvD,OAAO,KAAK,EAAE,SAAS,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAElF,wBAAgB,eAAe,CAC7B,MAAM,EAAE,OAAO,EACf,IAAI,EAAE,oBAAoB,EAC1B,KAAK,EAAE,SAAS,EAChB,OAAO,EAAE,aAAa,GACrB,IAAI,CAON"}
@@ -1,17 +1,5 @@
1
- import { createBaseField } from '../utils.js';
2
- import { getDef } from './_utils.js';
3
- function processRecord(field) {
4
- field.component = 'Input';
5
- field.arrayItem = createBaseField(`${field.key}.$item`, 'record_entry');
6
- }
7
1
  export function processFallback(schema, _ctx, field, _params) {
8
- const def = getDef(schema);
9
- const zodType = typeof def['type'] === 'string' ? def['type'] : field.zodType;
10
- field.zodType = zodType;
11
- if (zodType === 'record') {
12
- processRecord(field);
13
- return;
14
- }
2
+ field.zodType = schema._zod.def.type ?? field.zodType;
15
3
  field.component = 'Input';
16
4
  field.props = {
17
5
  ...field.props,
@@ -1 +1 @@
1
- {"version":3,"file":"fallback.js","sourceRoot":"","sources":["../../src/processors/fallback.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE9C,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,SAAS,aAAa,CAAC,KAAgB;IACrC,KAAK,CAAC,SAAS,GAAG,OAAO,CAAC;IAC1B,KAAK,CAAC,SAAS,GAAG,eAAe,CAAC,GAAG,KAAK,CAAC,GAAG,QAAQ,EAAE,cAAc,CAAC,CAAC;AAC1E,CAAC;AAED,MAAM,UAAU,eAAe,CAC7B,MAAe,EACf,IAA0B,EAC1B,KAAgB,EAChB,OAAsB;IAEtB,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;IAC3B,MAAM,OAAO,GAAG,OAAO,GAAG,CAAC,MAAM,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAE,GAAG,CAAC,MAAM,CAAY,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC;IAE1F,KAAK,CAAC,OAAO,GAAG,OAAO,CAAC;IAExB,IAAI,OAAO,KAAK,QAAQ,EAAE,CAAC;QACzB,aAAa,CAAC,KAAK,CAAC,CAAC;QACrB,OAAO;IACT,CAAC;IAED,KAAK,CAAC,SAAS,GAAG,OAAO,CAAC;IAC1B,KAAK,CAAC,KAAK,GAAG;QACZ,GAAG,KAAK,CAAC,KAAK;QACd,IAAI,EAAE,MAAM;KACb,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"fallback.js","sourceRoot":"","sources":["../../src/processors/fallback.ts"],"names":[],"mappings":"AAGA,MAAM,UAAU,eAAe,CAC7B,MAAe,EACf,IAA0B,EAC1B,KAAgB,EAChB,OAAsB;IAEtB,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC;IACtD,KAAK,CAAC,SAAS,GAAG,OAAO,CAAC;IAC1B,KAAK,CAAC,KAAK,GAAG;QACZ,GAAG,KAAK,CAAC,KAAK;QACd,IAAI,EAAE,MAAM;KACb,CAAC;AACJ,CAAC"}
@@ -1,5 +1,6 @@
1
1
  export { processArray, processTuple } from './array.js';
2
2
  export { processBoolean } from './boolean.js';
3
+ export { processMap, processSet } from './collections.js';
3
4
  export { processCrossRef } from './cross-ref.js';
4
5
  export { processDate } from './date.js';
5
6
  export { processEnum, processLiteral } from './enum.js';
@@ -7,7 +8,8 @@ export { processFallback } from './fallback.js';
7
8
  export { processFile } from './file.js';
8
9
  export { processNumber } from './number.js';
9
10
  export { processObject, processIntersection } from './object.js';
11
+ export { processRecord } from './record.js';
10
12
  export { processString, processTemplateLiteral } from './string.js';
11
- export { processUnion } from './union.js';
13
+ export { processUnion, processDiscriminatedUnion } from './union.js';
12
14
  export { processDefault, processLazy, processNullable, processOptional, processPipe, processReadonly } from './wrappers.js';
13
15
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/processors/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AACjE,OAAO,EAAE,aAAa,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AACpE,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EACL,cAAc,EACd,WAAW,EACX,eAAe,EACf,eAAe,EACf,WAAW,EACX,eAAe,EAChB,MAAM,eAAe,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/processors/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AACjE,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AACpE,OAAO,EAAE,YAAY,EAAE,yBAAyB,EAAE,MAAM,YAAY,CAAC;AACrE,OAAO,EACL,cAAc,EACd,WAAW,EACX,eAAe,EACf,eAAe,EACf,WAAW,EACX,eAAe,EAChB,MAAM,eAAe,CAAC"}
@@ -1,5 +1,6 @@
1
1
  export { processArray, processTuple } from './array.js';
2
2
  export { processBoolean } from './boolean.js';
3
+ export { processMap, processSet } from './collections.js';
3
4
  export { processCrossRef } from './cross-ref.js';
4
5
  export { processDate } from './date.js';
5
6
  export { processEnum, processLiteral } from './enum.js';
@@ -7,7 +8,8 @@ export { processFallback } from './fallback.js';
7
8
  export { processFile } from './file.js';
8
9
  export { processNumber } from './number.js';
9
10
  export { processObject, processIntersection } from './object.js';
11
+ export { processRecord } from './record.js';
10
12
  export { processString, processTemplateLiteral } from './string.js';
11
- export { processUnion } from './union.js';
13
+ export { processUnion, processDiscriminatedUnion } from './union.js';
12
14
  export { processDefault, processLazy, processNullable, processOptional, processPipe, processReadonly } from './wrappers.js';
13
15
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/processors/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AACjE,OAAO,EAAE,aAAa,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AACpE,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EACL,cAAc,EACd,WAAW,EACX,eAAe,EACf,eAAe,EACf,WAAW,EACX,eAAe,EAChB,MAAM,eAAe,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/processors/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AACjE,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AACpE,OAAO,EAAE,YAAY,EAAE,yBAAyB,EAAE,MAAM,YAAY,CAAC;AACrE,OAAO,EACL,cAAc,EACd,WAAW,EACX,eAAe,EACf,eAAe,EACf,WAAW,EACX,eAAe,EAChB,MAAM,eAAe,CAAC"}
@@ -1,4 +1,4 @@
1
- import type { $ZodType as ZodType } from 'zod/v4/core';
1
+ import type { $ZodNumber, $ZodBigInt } from 'zod/v4/core';
2
2
  import type { FormField, FormProcessorContext, ProcessParams } from '../types.js';
3
- export declare function processNumber(schema: ZodType, _ctx: FormProcessorContext, field: FormField, _params: ProcessParams): void;
3
+ export declare function processNumber(schema: $ZodNumber | $ZodBigInt, _ctx: FormProcessorContext, field: FormField, _params: ProcessParams): void;
4
4
  //# sourceMappingURL=number.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"number.d.ts","sourceRoot":"","sources":["../../src/processors/number.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,IAAI,OAAO,EAAE,MAAM,aAAa,CAAC;AACvD,OAAO,KAAK,EAAE,SAAS,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAGlF,wBAAgB,aAAa,CAC3B,MAAM,EAAE,OAAO,EACf,IAAI,EAAE,oBAAoB,EAC1B,KAAK,EAAE,SAAS,EAChB,OAAO,EAAE,aAAa,GACrB,IAAI,CAwCN"}
1
+ {"version":3,"file":"number.d.ts","sourceRoot":"","sources":["../../src/processors/number.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAC1D,OAAO,KAAK,EAAE,SAAS,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAElF,wBAAgB,aAAa,CAC3B,MAAM,EAAE,UAAU,GAAG,UAAU,EAC/B,IAAI,EAAE,oBAAoB,EAC1B,KAAK,EAAE,SAAS,EAChB,OAAO,EAAE,aAAa,GACrB,IAAI,CAwCN"}
@@ -1,10 +1,9 @@
1
- import { getDef, getBag } from './_utils.js';
2
1
  export function processNumber(schema, _ctx, field, _params) {
3
- const def = getDef(schema);
4
- const bag = getBag(schema);
2
+ const bag = schema._zod.bag;
5
3
  const minimum = typeof bag['minimum'] === 'number' ? bag['minimum'] : undefined;
6
4
  const maximum = typeof bag['maximum'] === 'number' ? bag['maximum'] : undefined;
7
- const checks = Array.isArray(def['checks']) ? def['checks'] : [];
5
+ const def = schema._zod.def;
6
+ const checks = def.checks ?? [];
8
7
  const hasIntegerConstraint = checks.some((check) => {
9
8
  const value = check;
10
9
  const nested = value['def'] ??