@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.
- package/dist/config.d.ts +21 -27
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +18 -17
- package/dist/config.js.map +1 -1
- package/dist/index.d.ts +4 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/optimizers/constraint-map.d.ts +14 -0
- package/dist/optimizers/constraint-map.d.ts.map +1 -0
- package/dist/optimizers/constraint-map.js +117 -0
- package/dist/optimizers/constraint-map.js.map +1 -0
- package/dist/optimizers/index.d.ts +10 -0
- package/dist/optimizers/index.d.ts.map +1 -0
- package/dist/optimizers/index.js +31 -0
- package/dist/optimizers/index.js.map +1 -0
- package/dist/optimizers/l1-decompose.d.ts +6 -0
- package/dist/optimizers/l1-decompose.d.ts.map +1 -0
- package/dist/optimizers/l1-decompose.js +65 -0
- package/dist/optimizers/l1-decompose.js.map +1 -0
- package/dist/optimizers/l2-native-rules.d.ts +6 -0
- package/dist/optimizers/l2-native-rules.d.ts.map +1 -0
- package/dist/optimizers/l2-native-rules.js +66 -0
- package/dist/optimizers/l2-native-rules.js.map +1 -0
- package/dist/optimizers/l3-cross-field.d.ts +2 -0
- package/dist/optimizers/l3-cross-field.d.ts.map +1 -0
- package/dist/optimizers/l3-cross-field.js +43 -0
- package/dist/optimizers/l3-cross-field.js.map +1 -0
- package/dist/optimizers/schema-lite.d.ts +11 -0
- package/dist/optimizers/schema-lite.d.ts.map +1 -0
- package/dist/optimizers/schema-lite.js +71 -0
- package/dist/optimizers/schema-lite.js.map +1 -0
- package/dist/optimizers/types.d.ts +47 -0
- package/dist/optimizers/types.d.ts.map +1 -0
- package/dist/optimizers/types.js +2 -0
- package/dist/optimizers/types.js.map +1 -0
- package/dist/processors/array.d.ts +3 -3
- package/dist/processors/array.d.ts.map +1 -1
- package/dist/processors/array.js +3 -6
- package/dist/processors/array.js.map +1 -1
- package/dist/processors/boolean.d.ts +2 -2
- package/dist/processors/boolean.d.ts.map +1 -1
- package/dist/processors/boolean.js.map +1 -1
- package/dist/processors/collections.d.ts +13 -0
- package/dist/processors/collections.d.ts.map +1 -0
- package/dist/processors/collections.js +36 -0
- package/dist/processors/collections.js.map +1 -0
- package/dist/processors/date.d.ts +2 -2
- package/dist/processors/date.d.ts.map +1 -1
- package/dist/processors/date.js.map +1 -1
- package/dist/processors/enum.d.ts +3 -3
- package/dist/processors/enum.d.ts.map +1 -1
- package/dist/processors/enum.js +5 -7
- package/dist/processors/enum.js.map +1 -1
- package/dist/processors/fallback.d.ts.map +1 -1
- package/dist/processors/fallback.js +1 -13
- package/dist/processors/fallback.js.map +1 -1
- package/dist/processors/index.d.ts +3 -1
- package/dist/processors/index.d.ts.map +1 -1
- package/dist/processors/index.js +3 -1
- package/dist/processors/index.js.map +1 -1
- package/dist/processors/number.d.ts +2 -2
- package/dist/processors/number.d.ts.map +1 -1
- package/dist/processors/number.js +3 -4
- package/dist/processors/number.js.map +1 -1
- package/dist/processors/object.d.ts +3 -3
- package/dist/processors/object.d.ts.map +1 -1
- package/dist/processors/object.js +12 -12
- package/dist/processors/object.js.map +1 -1
- package/dist/processors/record.d.ts +4 -0
- package/dist/processors/record.d.ts.map +1 -0
- package/dist/processors/record.js +8 -0
- package/dist/processors/record.js.map +1 -0
- package/dist/processors/string.d.ts +3 -3
- package/dist/processors/string.d.ts.map +1 -1
- package/dist/processors/string.js +22 -7
- package/dist/processors/string.js.map +1 -1
- package/dist/processors/union.d.ts +3 -2
- package/dist/processors/union.d.ts.map +1 -1
- package/dist/processors/union.js +20 -19
- package/dist/processors/union.js.map +1 -1
- package/dist/processors/wrappers.d.ts +7 -7
- package/dist/processors/wrappers.d.ts.map +1 -1
- package/dist/processors/wrappers.js +9 -16
- package/dist/processors/wrappers.js.map +1 -1
- package/dist/register.d.ts.map +1 -1
- package/dist/register.js +5 -6
- package/dist/register.js.map +1 -1
- package/dist/registry.d.ts +0 -3
- package/dist/registry.d.ts.map +1 -1
- package/dist/registry.js +27 -6
- package/dist/registry.js.map +1 -1
- package/dist/types.d.ts +68 -13
- package/dist/types.d.ts.map +1 -1
- package/dist/utils.d.ts +0 -6
- package/dist/utils.d.ts.map +1 -1
- package/dist/utils.js +2 -6
- package/dist/utils.js.map +1 -1
- package/dist/walker.d.ts +7 -4
- package/dist/walker.d.ts.map +1 -1
- package/dist/walker.js +157 -17
- package/dist/walker.js.map +1 -1
- package/package.json +1 -1
- package/dist/processors/_utils.d.ts +0 -5
- package/dist/processors/_utils.d.ts.map +0 -1
- package/dist/processors/_utils.js +0 -17
- package/dist/processors/_utils.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"number.js","sourceRoot":"","sources":["../../src/processors/number.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"number.js","sourceRoot":"","sources":["../../src/processors/number.ts"],"names":[],"mappings":"AAGA,MAAM,UAAU,aAAa,CAC3B,MAA+B,EAC/B,IAA0B,EAC1B,KAAgB,EAChB,OAAsB;IAEtB,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC;IAC5B,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,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC;IAC5B,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,IAAI,EAAE,CAAC;IAChC,MAAM,oBAAoB,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,KAAc,EAAE,EAAE;QAC1D,MAAM,KAAK,GAAG,KAAgC,CAAC;QAC/C,MAAM,MAAM,GACT,KAAK,CAAC,KAAK,CAAyC;YACpD,KAAK,CAAC,MAAM,CAAmD,EAAE,CAAC,KAAK,CAAC;YACzE,EAAE,CAAC;QACL,OAAO,CACL,KAAK,CAAC,MAAM,CAAC,KAAK,KAAK;YACvB,KAAK,CAAC,OAAO,CAAC,KAAK,KAAK;YACxB,MAAM,CAAC,OAAO,CAAC,KAAK,eAAe;YACnC,MAAM,CAAC,QAAQ,CAAC,KAAK,KAAK;YAC1B,MAAM,CAAC,QAAQ,CAAC,KAAK,SAAS,CAC/B,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,KAAK,CAAC,SAAS,GAAG,OAAO,CAAC;IAC1B,KAAK,CAAC,KAAK,GAAG;QACZ,GAAG,KAAK,CAAC,KAAK;QACd,IAAI,EAAE,QAAQ;KACf,CAAC;IAEF,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B,KAAK,CAAC,WAAW,CAAC,GAAG,GAAG,OAAO,CAAC;QAChC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC;IAC/B,CAAC;IACD,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B,KAAK,CAAC,WAAW,CAAC,GAAG,GAAG,OAAO,CAAC;QAChC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC;IAC/B,CAAC;IACD,IAAI,oBAAoB,EAAE,CAAC;QACzB,KAAK,CAAC,WAAW,CAAC,IAAI,GAAG,CAAC,CAAC;QAC3B,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAC1B,CAAC;AACH,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type { $
|
|
1
|
+
import type { $ZodObject, $ZodIntersection } from 'zod/v4/core';
|
|
2
2
|
import type { FormField, FormProcessorContext, ProcessParams } from '../types.js';
|
|
3
|
-
export declare function processObject(schema:
|
|
4
|
-
export declare function processIntersection(schema:
|
|
3
|
+
export declare function processObject(schema: $ZodObject, ctx: FormProcessorContext, field: FormField, params: ProcessParams): void;
|
|
4
|
+
export declare function processIntersection(schema: $ZodIntersection, ctx: FormProcessorContext, field: FormField, params: ProcessParams): void;
|
|
5
5
|
//# sourceMappingURL=object.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"object.d.ts","sourceRoot":"","sources":["../../src/processors/object.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"object.d.ts","sourceRoot":"","sources":["../../src/processors/object.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,gBAAgB,EAAuB,MAAM,aAAa,CAAC;AACrF,OAAO,KAAK,EAAE,SAAS,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAkBlF,wBAAgB,aAAa,CAC3B,MAAM,EAAE,UAAU,EAClB,GAAG,EAAE,oBAAoB,EACzB,KAAK,EAAE,SAAS,EAChB,MAAM,EAAE,aAAa,GACpB,IAAI,CAMN;AAED,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,gBAAgB,EACxB,GAAG,EAAE,oBAAoB,EACzB,KAAK,EAAE,SAAS,EAChB,MAAM,EAAE,aAAa,GACpB,IAAI,CAwBN"}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { inferLabel, joinPath } from '../utils.js';
|
|
2
|
-
import { getDef, getShape } from './_utils.js';
|
|
3
2
|
function processShapeEntries(shape, parentKey, ctx) {
|
|
4
3
|
if (!ctx.processChild) {
|
|
5
4
|
return [];
|
|
@@ -12,25 +11,26 @@ function processShapeEntries(shape, parentKey, ctx) {
|
|
|
12
11
|
export function processObject(schema, ctx, field, params) {
|
|
13
12
|
field.component = 'Fieldset';
|
|
14
13
|
field.label = field.label || inferLabel(params.parentKey ?? field.key);
|
|
15
|
-
const
|
|
16
|
-
const shape = getShape(def);
|
|
14
|
+
const shape = schema._zod.def.shape;
|
|
17
15
|
field.children = processShapeEntries(shape, params.parentKey, ctx);
|
|
18
16
|
}
|
|
19
17
|
export function processIntersection(schema, ctx, field, params) {
|
|
20
18
|
field.component = 'Fieldset';
|
|
21
|
-
const def =
|
|
22
|
-
const left = def
|
|
23
|
-
const right = def
|
|
19
|
+
const def = schema._zod.def;
|
|
20
|
+
const left = def.left;
|
|
21
|
+
const right = def.right;
|
|
24
22
|
const children = [];
|
|
25
23
|
if (left) {
|
|
26
|
-
const
|
|
27
|
-
|
|
28
|
-
|
|
24
|
+
const leftShape = left._zod.def.shape;
|
|
25
|
+
if (leftShape) {
|
|
26
|
+
children.push(...processShapeEntries(leftShape, params.parentKey, ctx));
|
|
27
|
+
}
|
|
29
28
|
}
|
|
30
29
|
if (right) {
|
|
31
|
-
const
|
|
32
|
-
|
|
33
|
-
|
|
30
|
+
const rightShape = right._zod.def.shape;
|
|
31
|
+
if (rightShape) {
|
|
32
|
+
children.push(...processShapeEntries(rightShape, params.parentKey, ctx));
|
|
33
|
+
}
|
|
34
34
|
}
|
|
35
35
|
field.children = children;
|
|
36
36
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"object.js","sourceRoot":"","sources":["../../src/processors/object.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"object.js","sourceRoot":"","sources":["../../src/processors/object.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEnD,SAAS,mBAAmB,CAC1B,KAA8B,EAC9B,SAA6B,EAC7B,GAAyB;IAEzB,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;QACtB,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,OAAO,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,WAAW,CAAC,EAAE,EAAE;QACtD,MAAM,OAAO,GAAG,QAAQ,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;QACzC,OAAO,GAAG,CAAC,YAAa,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IACjD,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,aAAa,CAC3B,MAAkB,EAClB,GAAyB,EACzB,KAAgB,EAChB,MAAqB;IAErB,KAAK,CAAC,SAAS,GAAG,UAAU,CAAC;IAC7B,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,IAAI,UAAU,CAAC,MAAM,CAAC,SAAS,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC;IAEvE,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,KAAgC,CAAC;IAC/D,KAAK,CAAC,QAAQ,GAAG,mBAAmB,CAAC,KAAK,EAAE,MAAM,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;AACrE,CAAC;AAED,MAAM,UAAU,mBAAmB,CACjC,MAAwB,EACxB,GAAyB,EACzB,KAAgB,EAChB,MAAqB;IAErB,KAAK,CAAC,SAAS,GAAG,UAAU,CAAC;IAE7B,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC;IAC5B,MAAM,IAAI,GAAG,GAAG,CAAC,IAA2B,CAAC;IAC7C,MAAM,KAAK,GAAG,GAAG,CAAC,KAA4B,CAAC;IAE/C,MAAM,QAAQ,GAAgB,EAAE,CAAC;IAEjC,IAAI,IAAI,EAAE,CAAC;QACT,MAAM,SAAS,GAAI,IAAI,CAAC,IAAI,CAAC,GAA2C,CAAC,KAAK,CAAC;QAC/E,IAAI,SAAS,EAAE,CAAC;YACd,QAAQ,CAAC,IAAI,CAAC,GAAG,mBAAmB,CAAC,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC,CAAC;QAC1E,CAAC;IACH,CAAC;IAED,IAAI,KAAK,EAAE,CAAC;QACV,MAAM,UAAU,GAAI,KAAK,CAAC,IAAI,CAAC,GAA2C,CAAC,KAAK,CAAC;QACjF,IAAI,UAAU,EAAE,CAAC;YACf,QAAQ,CAAC,IAAI,CAAC,GAAG,mBAAmB,CAAC,UAAU,EAAE,MAAM,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC,CAAC;QAC3E,CAAC;IACH,CAAC;IAED,KAAK,CAAC,QAAQ,GAAG,QAAQ,CAAC;AAC5B,CAAC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { $ZodRecord } from 'zod/v4/core';
|
|
2
|
+
import type { FormField, FormProcessorContext, ProcessParams } from '../types.js';
|
|
3
|
+
export declare function processRecord(schema: $ZodRecord, _ctx: FormProcessorContext, field: FormField, _params: ProcessParams): void;
|
|
4
|
+
//# sourceMappingURL=record.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"record.d.ts","sourceRoot":"","sources":["../../src/processors/record.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAE9C,OAAO,KAAK,EAAE,SAAS,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAElF,wBAAgB,aAAa,CAC3B,MAAM,EAAE,UAAU,EAClB,IAAI,EAAE,oBAAoB,EAC1B,KAAK,EAAE,SAAS,EAChB,OAAO,EAAE,aAAa,GACrB,IAAI,CAMN"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { createBaseField } from '../utils.js';
|
|
2
|
+
export function processRecord(schema, _ctx, field, _params) {
|
|
3
|
+
field.component = 'Input';
|
|
4
|
+
const valueType = schema._zod.def.valueType;
|
|
5
|
+
const itemZodType = valueType._zod.def.type;
|
|
6
|
+
field.arrayItem = createBaseField(`${field.key}.$item`, itemZodType);
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=record.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"record.js","sourceRoot":"","sources":["../../src/processors/record.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAG9C,MAAM,UAAU,aAAa,CAC3B,MAAkB,EAClB,IAA0B,EAC1B,KAAgB,EAChB,OAAsB;IAEtB,KAAK,CAAC,SAAS,GAAG,OAAO,CAAC;IAE1B,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC;IAC5C,MAAM,WAAW,GAAG,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;IAC5C,KAAK,CAAC,SAAS,GAAG,eAAe,CAAC,GAAG,KAAK,CAAC,GAAG,QAAQ,EAAE,WAAW,CAAC,CAAC;AACvE,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type { $
|
|
1
|
+
import type { $ZodString, $ZodTemplateLiteral } from 'zod/v4/core';
|
|
2
2
|
import type { FormField, FormProcessorContext, ProcessParams } from '../types.js';
|
|
3
|
-
export declare function processString(schema:
|
|
4
|
-
export declare function processTemplateLiteral(schema:
|
|
3
|
+
export declare function processString(schema: $ZodString, ctx: FormProcessorContext, field: FormField, _params: ProcessParams): void;
|
|
4
|
+
export declare function processTemplateLiteral(schema: $ZodTemplateLiteral, _ctx: FormProcessorContext, field: FormField, _params: ProcessParams): void;
|
|
5
5
|
//# sourceMappingURL=string.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"string.d.ts","sourceRoot":"","sources":["../../src/processors/string.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"string.d.ts","sourceRoot":"","sources":["../../src/processors/string.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AACnE,OAAO,KAAK,EAAE,SAAS,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAgBlF,wBAAgB,aAAa,CAC3B,MAAM,EAAE,UAAU,EAClB,GAAG,EAAE,oBAAoB,EACzB,KAAK,EAAE,SAAS,EAChB,OAAO,EAAE,aAAa,GACrB,IAAI,CAiDN;AAED,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,mBAAmB,EAC3B,IAAI,EAAE,oBAAoB,EAC1B,KAAK,EAAE,SAAS,EAChB,OAAO,EAAE,aAAa,GACrB,IAAI,CAON"}
|
|
@@ -1,9 +1,22 @@
|
|
|
1
1
|
import { regexToMask } from '../utils.js';
|
|
2
|
-
|
|
2
|
+
/** Map Zod v4 string format names to HTML input types */
|
|
3
|
+
const FORMAT_TO_INPUT_TYPE = {
|
|
4
|
+
email: 'email',
|
|
5
|
+
url: 'url',
|
|
6
|
+
date: 'date',
|
|
7
|
+
time: 'time',
|
|
8
|
+
datetime: 'datetime-local'
|
|
9
|
+
// Duration has no native input type — falls through to text
|
|
10
|
+
};
|
|
11
|
+
/** Formats that should render as DatePicker instead of a plain Input */
|
|
12
|
+
const DATE_PICKER_FORMATS = new Set(['date', 'time', 'datetime']);
|
|
3
13
|
export function processString(schema, ctx, field, _params) {
|
|
4
|
-
const bag =
|
|
14
|
+
const bag = schema._zod.bag;
|
|
15
|
+
const def = schema._zod.def;
|
|
5
16
|
const meta = ctx.formRegistry?.get(schema);
|
|
6
|
-
|
|
17
|
+
// Format can come from string format subtypes (def.format) or bag.format
|
|
18
|
+
const format = ('format' in def && typeof def.format === 'string' ? def.format : undefined) ??
|
|
19
|
+
(typeof bag['format'] === 'string' ? bag['format'] : undefined);
|
|
7
20
|
const minimum = typeof bag['minimum'] === 'number' ? bag['minimum'] : undefined;
|
|
8
21
|
const maximum = typeof bag['maximum'] === 'number' ? bag['maximum'] : undefined;
|
|
9
22
|
// bag.patterns holds a Set<RegExp> — take the first regex's source
|
|
@@ -11,10 +24,13 @@ export function processString(schema, ctx, field, _params) {
|
|
|
11
24
|
const pattern = patternsSet instanceof Set && patternsSet.size > 0
|
|
12
25
|
? [...patternsSet][0].source
|
|
13
26
|
: undefined;
|
|
14
|
-
|
|
27
|
+
// Determine component and input type from format
|
|
28
|
+
const inputType = format ? (FORMAT_TO_INPUT_TYPE[format] ?? 'text') : 'text';
|
|
29
|
+
const isDateLike = format ? DATE_PICKER_FORMATS.has(format) : false;
|
|
30
|
+
field.component = meta?.component ?? (isDateLike ? 'DatePicker' : 'Input');
|
|
15
31
|
field.props = {
|
|
16
32
|
...field.props,
|
|
17
|
-
type:
|
|
33
|
+
type: inputType
|
|
18
34
|
};
|
|
19
35
|
if (format) {
|
|
20
36
|
field.constraints.format = format;
|
|
@@ -37,12 +53,11 @@ export function processString(schema, ctx, field, _params) {
|
|
|
37
53
|
}
|
|
38
54
|
}
|
|
39
55
|
export function processTemplateLiteral(schema, _ctx, field, _params) {
|
|
40
|
-
const def = getDef(schema);
|
|
41
56
|
field.component = 'Input';
|
|
42
57
|
field.props = {
|
|
43
58
|
...field.props,
|
|
44
59
|
type: 'text'
|
|
45
60
|
};
|
|
46
|
-
field.zodType =
|
|
61
|
+
field.zodType = schema._zod.def.type;
|
|
47
62
|
}
|
|
48
63
|
//# sourceMappingURL=string.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"string.js","sourceRoot":"","sources":["../../src/processors/string.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"string.js","sourceRoot":"","sources":["../../src/processors/string.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import type { $
|
|
1
|
+
import type { $ZodDiscriminatedUnion, $ZodUnion } from 'zod/v4/core';
|
|
2
2
|
import type { FormField, FormProcessorContext, ProcessParams } from '../types.js';
|
|
3
|
-
export declare function processUnion(schema:
|
|
3
|
+
export declare function processUnion(schema: $ZodUnion, ctx: FormProcessorContext, field: FormField, params: ProcessParams): void;
|
|
4
|
+
export declare function processDiscriminatedUnion(schema: $ZodDiscriminatedUnion, ctx: FormProcessorContext, field: FormField, params: ProcessParams): void;
|
|
4
5
|
//# sourceMappingURL=union.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"union.d.ts","sourceRoot":"","sources":["../../src/processors/union.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"union.d.ts","sourceRoot":"","sources":["../../src/processors/union.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,sBAAsB,EACtB,SAAS,EAGV,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,SAAS,EAAmB,oBAAoB,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AA0BnG,wBAAgB,YAAY,CAC1B,MAAM,EAAE,SAAS,EACjB,GAAG,EAAE,oBAAoB,EACzB,KAAK,EAAE,SAAS,EAChB,MAAM,EAAE,aAAa,GACpB,IAAI,CA2BN;AAED,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,sBAAsB,EAC9B,GAAG,EAAE,oBAAoB,EACzB,KAAK,EAAE,SAAS,EAChB,MAAM,EAAE,aAAa,GACpB,IAAI,CA4CN"}
|
package/dist/processors/union.js
CHANGED
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
import { inferLabel } from '../utils.js';
|
|
2
|
-
import { getDef, getShape } from './_utils.js';
|
|
3
2
|
function getLiteralValues(schema) {
|
|
4
|
-
const def =
|
|
5
|
-
if (def
|
|
6
|
-
const values = def
|
|
3
|
+
const def = schema._zod.def;
|
|
4
|
+
if (def.type === 'literal') {
|
|
5
|
+
const values = def.values;
|
|
7
6
|
return values ?? [];
|
|
8
7
|
}
|
|
9
8
|
return [];
|
|
@@ -18,21 +17,20 @@ function buildOptionFromLiteral(schema) {
|
|
|
18
17
|
}
|
|
19
18
|
function isAllLiterals(options) {
|
|
20
19
|
return options.every((opt) => {
|
|
21
|
-
|
|
22
|
-
return def['type'] === 'literal';
|
|
20
|
+
return opt._zod.def.type === 'literal';
|
|
23
21
|
});
|
|
24
22
|
}
|
|
25
23
|
export function processUnion(schema, ctx, field, params) {
|
|
26
|
-
const def =
|
|
27
|
-
const options = def
|
|
28
|
-
const discriminator = def['discriminator'];
|
|
24
|
+
const def = schema._zod.def;
|
|
25
|
+
const options = def.options;
|
|
29
26
|
if (!options || options.length === 0) {
|
|
30
27
|
field.component = 'Input';
|
|
31
28
|
return;
|
|
32
29
|
}
|
|
33
|
-
// Discriminated union
|
|
34
|
-
|
|
35
|
-
|
|
30
|
+
// Discriminated union: $ZodDiscriminatedUnion extends $ZodUnion, so def.type is "union"
|
|
31
|
+
// but the def has a `discriminator` property. Delegate to the specialized processor.
|
|
32
|
+
if ('discriminator' in def && typeof def.discriminator === 'string') {
|
|
33
|
+
processDiscriminatedUnion(schema, ctx, field, params);
|
|
36
34
|
return;
|
|
37
35
|
}
|
|
38
36
|
// Regular union: only render as Select if all options are literals
|
|
@@ -46,26 +44,29 @@ export function processUnion(schema, ctx, field, params) {
|
|
|
46
44
|
// Fallback for mixed unions
|
|
47
45
|
field.component = 'Input';
|
|
48
46
|
}
|
|
49
|
-
function processDiscriminatedUnion(
|
|
47
|
+
export function processDiscriminatedUnion(schema, ctx, field, params) {
|
|
48
|
+
const def = schema._zod.def;
|
|
49
|
+
const options = def.options;
|
|
50
|
+
const discriminator = def.discriminator;
|
|
51
|
+
if (!options || options.length === 0 || !discriminator) {
|
|
52
|
+
field.component = 'Input';
|
|
53
|
+
return;
|
|
54
|
+
}
|
|
50
55
|
field.component = 'Select';
|
|
51
56
|
field.props['_discriminator'] = discriminator;
|
|
52
57
|
const selectOptions = [];
|
|
53
58
|
const variants = {};
|
|
54
59
|
for (const variantSchema of options) {
|
|
55
|
-
const
|
|
56
|
-
const shape = getShape(variantDef);
|
|
57
|
-
// Find the discriminator literal value
|
|
60
|
+
const shape = variantSchema._zod.def.shape;
|
|
58
61
|
const discSchema = shape[discriminator];
|
|
59
62
|
if (!discSchema)
|
|
60
63
|
continue;
|
|
61
|
-
const
|
|
62
|
-
const discValues = discDef['values'];
|
|
64
|
+
const discValues = discSchema._zod.def.values;
|
|
63
65
|
const discValue = discValues?.[0];
|
|
64
66
|
if (discValue === undefined)
|
|
65
67
|
continue;
|
|
66
68
|
const strValue = String(discValue);
|
|
67
69
|
selectOptions.push({ value: strValue, label: inferLabel(strValue) });
|
|
68
|
-
// Build children for this variant (excluding the discriminator field itself)
|
|
69
70
|
if (ctx.processChild) {
|
|
70
71
|
const variantChildren = Object.entries(shape)
|
|
71
72
|
.filter(([key]) => key !== discriminator)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"union.js","sourceRoot":"","sources":["../../src/processors/union.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"union.js","sourceRoot":"","sources":["../../src/processors/union.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import type { $
|
|
1
|
+
import type { $ZodOptional, $ZodNullable, $ZodDefault, $ZodPrefault, $ZodReadonly, $ZodPipe, $ZodLazy } from 'zod/v4/core';
|
|
2
2
|
import type { FormField, FormProcessorContext, ProcessParams } from '../types.js';
|
|
3
|
-
export declare function processOptional(schema:
|
|
4
|
-
export declare function processNullable(schema:
|
|
5
|
-
export declare function processDefault(schema:
|
|
6
|
-
export declare function processReadonly(schema:
|
|
7
|
-
export declare function processPipe(schema:
|
|
8
|
-
export declare function processLazy(schema:
|
|
3
|
+
export declare function processOptional(schema: $ZodOptional, ctx: FormProcessorContext, field: FormField, params: ProcessParams): void;
|
|
4
|
+
export declare function processNullable(schema: $ZodNullable, ctx: FormProcessorContext, field: FormField, params: ProcessParams): void;
|
|
5
|
+
export declare function processDefault(schema: $ZodDefault | $ZodPrefault, ctx: FormProcessorContext, field: FormField, params: ProcessParams): void;
|
|
6
|
+
export declare function processReadonly(schema: $ZodReadonly, ctx: FormProcessorContext, field: FormField, params: ProcessParams): void;
|
|
7
|
+
export declare function processPipe(schema: $ZodPipe, ctx: FormProcessorContext, field: FormField, params: ProcessParams): void;
|
|
8
|
+
export declare function processLazy(schema: $ZodLazy, ctx: FormProcessorContext, field: FormField, params: ProcessParams): void;
|
|
9
9
|
//# sourceMappingURL=wrappers.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wrappers.d.ts","sourceRoot":"","sources":["../../src/processors/wrappers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"wrappers.d.ts","sourceRoot":"","sources":["../../src/processors/wrappers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,YAAY,EACZ,YAAY,EACZ,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,QAAQ,EACR,QAAQ,EACT,MAAM,aAAa,CAAC;AAErB,OAAO,KAAK,EAAE,SAAS,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAqBlF,wBAAgB,eAAe,CAC7B,MAAM,EAAE,YAAY,EACpB,GAAG,EAAE,oBAAoB,EACzB,KAAK,EAAE,SAAS,EAChB,MAAM,EAAE,aAAa,GACpB,IAAI,CAON;AAED,wBAAgB,eAAe,CAC7B,MAAM,EAAE,YAAY,EACpB,GAAG,EAAE,oBAAoB,EACzB,KAAK,EAAE,SAAS,EAChB,MAAM,EAAE,aAAa,GACpB,IAAI,CAON;AAED,wBAAgB,cAAc,CAC5B,MAAM,EAAE,WAAW,GAAG,YAAY,EAClC,GAAG,EAAE,oBAAoB,EACzB,KAAK,EAAE,SAAS,EAChB,MAAM,EAAE,aAAa,GACpB,IAAI,CAcN;AAED,wBAAgB,eAAe,CAC7B,MAAM,EAAE,YAAY,EACpB,GAAG,EAAE,oBAAoB,EACzB,KAAK,EAAE,SAAS,EAChB,MAAM,EAAE,aAAa,GACpB,IAAI,CAON;AAED,wBAAgB,WAAW,CACzB,MAAM,EAAE,QAAQ,EAChB,GAAG,EAAE,oBAAoB,EACzB,KAAK,EAAE,SAAS,EAChB,MAAM,EAAE,aAAa,GACpB,IAAI,CAMN;AAED,wBAAgB,WAAW,CACzB,MAAM,EAAE,QAAQ,EAChB,GAAG,EAAE,oBAAoB,EACzB,KAAK,EAAE,SAAS,EAChB,MAAM,EAAE,aAAa,GACpB,IAAI,CAwBN"}
|
|
@@ -1,8 +1,6 @@
|
|
|
1
1
|
import { processFallback } from './fallback.js';
|
|
2
|
-
import { getDef } from './_utils.js';
|
|
3
2
|
function runInner(innerSchema, ctx, field, params) {
|
|
4
|
-
const
|
|
5
|
-
const innerType = typeof innerDef['type'] === 'string' ? innerDef['type'] : 'unknown';
|
|
3
|
+
const innerType = innerSchema._zod.def.type;
|
|
6
4
|
const processor = ctx.processors[innerType];
|
|
7
5
|
field.zodType = innerType;
|
|
8
6
|
if (processor) {
|
|
@@ -12,25 +10,23 @@ function runInner(innerSchema, ctx, field, params) {
|
|
|
12
10
|
processFallback(innerSchema, ctx, field, params);
|
|
13
11
|
}
|
|
14
12
|
export function processOptional(schema, ctx, field, params) {
|
|
15
|
-
const
|
|
16
|
-
const innerType = def['innerType'];
|
|
13
|
+
const innerType = schema._zod.def.innerType;
|
|
17
14
|
field.required = false;
|
|
18
15
|
if (innerType) {
|
|
19
16
|
runInner(innerType, ctx, field, params);
|
|
20
17
|
}
|
|
21
18
|
}
|
|
22
19
|
export function processNullable(schema, ctx, field, params) {
|
|
23
|
-
const
|
|
24
|
-
const innerType = def['innerType'];
|
|
20
|
+
const innerType = schema._zod.def.innerType;
|
|
25
21
|
field.required = false;
|
|
26
22
|
if (innerType) {
|
|
27
23
|
runInner(innerType, ctx, field, params);
|
|
28
24
|
}
|
|
29
25
|
}
|
|
30
26
|
export function processDefault(schema, ctx, field, params) {
|
|
31
|
-
const def =
|
|
32
|
-
const innerType = def
|
|
33
|
-
const defaultValue = def
|
|
27
|
+
const def = schema._zod.def;
|
|
28
|
+
const innerType = def.innerType;
|
|
29
|
+
const defaultValue = def.defaultValue;
|
|
34
30
|
if (typeof defaultValue === 'function') {
|
|
35
31
|
field.defaultValue = defaultValue();
|
|
36
32
|
}
|
|
@@ -42,16 +38,14 @@ export function processDefault(schema, ctx, field, params) {
|
|
|
42
38
|
}
|
|
43
39
|
}
|
|
44
40
|
export function processReadonly(schema, ctx, field, params) {
|
|
45
|
-
const
|
|
46
|
-
const innerType = def['innerType'];
|
|
41
|
+
const innerType = schema._zod.def.innerType;
|
|
47
42
|
field.readOnly = true;
|
|
48
43
|
if (innerType) {
|
|
49
44
|
runInner(innerType, ctx, field, params);
|
|
50
45
|
}
|
|
51
46
|
}
|
|
52
47
|
export function processPipe(schema, ctx, field, params) {
|
|
53
|
-
const
|
|
54
|
-
const inputType = def['in'];
|
|
48
|
+
const inputType = schema._zod.def.in;
|
|
55
49
|
if (inputType) {
|
|
56
50
|
runInner(inputType, ctx, field, params);
|
|
57
51
|
}
|
|
@@ -62,8 +56,7 @@ export function processLazy(schema, ctx, field, params) {
|
|
|
62
56
|
field.props['type'] = 'text';
|
|
63
57
|
return;
|
|
64
58
|
}
|
|
65
|
-
const
|
|
66
|
-
const getter = def['getter'];
|
|
59
|
+
const getter = schema._zod.def.getter;
|
|
67
60
|
if (!getter) {
|
|
68
61
|
field.component = 'Input';
|
|
69
62
|
field.props['type'] = 'text';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wrappers.js","sourceRoot":"","sources":["../../src/processors/wrappers.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"wrappers.js","sourceRoot":"","sources":["../../src/processors/wrappers.ts"],"names":[],"mappings":"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"}
|
package/dist/register.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"register.d.ts","sourceRoot":"","sources":["../src/register.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAY,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"register.d.ts","sourceRoot":"","sources":["../src/register.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAY,MAAM,aAAa,CAAC;AACpE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAqB9C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AACH,wBAAgB,YAAY,CAAC,CAAC,SAAS,QAAQ,EAAE,IAAI,SAAS,MAAM,EAClE,QAAQ,EAAE,YAAY,CAAC,IAAI,CAAC,EAC5B,MAAM,EAAE,CAAC,EACT,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC,GACrB,IAAI,CA+CN;AAiDD;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAgB,YAAY,CAAC,IAAI,SAAS,MAAM,EAC9C,QAAQ,EAAE,YAAY,CAAC,IAAI,CAAC,EAC5B,MAAM,EAAE,QAAQ,EAChB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,GAClC,IAAI,CAqBN"}
|
package/dist/register.js
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { getDef, getShape } from './processors/_utils.js';
|
|
2
1
|
// Structural keys used to drive recursive traversal in registerDeep.
|
|
3
2
|
// These are not field metadata, so they are stripped before calling registry.add().
|
|
4
3
|
const TRAVERSAL_KEYS = new Set(['fields', 'arrayItems']);
|
|
@@ -65,7 +64,7 @@ export function registerDeep(registry, schema, config) {
|
|
|
65
64
|
// ── Object shape ───────────────────────────────────────────────────
|
|
66
65
|
const fields = raw['fields'];
|
|
67
66
|
if (fields && typeof fields === 'object') {
|
|
68
|
-
const shape =
|
|
67
|
+
const shape = schema._zod.def.shape ?? {};
|
|
69
68
|
const shapeKeys = new Set(Object.keys(shape));
|
|
70
69
|
for (const [key, childSchema] of Object.entries(shape)) {
|
|
71
70
|
// SAFETY: fields is Record<string, FieldConfig> at runtime
|
|
@@ -88,7 +87,7 @@ export function registerDeep(registry, schema, config) {
|
|
|
88
87
|
const arrayItems = raw['arrayItems'];
|
|
89
88
|
if (arrayItems) {
|
|
90
89
|
// SAFETY: element is $ZodType when schema is a ZodArray — undefined otherwise (safely guarded)
|
|
91
|
-
const element =
|
|
90
|
+
const element = schema._zod.def.element;
|
|
92
91
|
if (element) {
|
|
93
92
|
// SAFETY: recursive generic requires cast — element is $ZodType at runtime
|
|
94
93
|
registerDeep(registry, element, arrayItems);
|
|
@@ -114,7 +113,7 @@ function resolveSchemaPath(schema, path) {
|
|
|
114
113
|
// Numeric segment → descend into the array element of the current schema
|
|
115
114
|
if (/^\d+$/.test(key)) {
|
|
116
115
|
// SAFETY: element is $ZodType when current is a ZodArray — undefined otherwise
|
|
117
|
-
const element =
|
|
116
|
+
const element = current._zod.def.element;
|
|
118
117
|
if (!element)
|
|
119
118
|
return undefined;
|
|
120
119
|
current = element;
|
|
@@ -122,7 +121,7 @@ function resolveSchemaPath(schema, path) {
|
|
|
122
121
|
}
|
|
123
122
|
// Named key → object shape lookup
|
|
124
123
|
if (key) {
|
|
125
|
-
const shape =
|
|
124
|
+
const shape = current._zod.def.shape ?? {};
|
|
126
125
|
const child = shape[key];
|
|
127
126
|
if (!child)
|
|
128
127
|
return undefined;
|
|
@@ -131,7 +130,7 @@ function resolveSchemaPath(schema, path) {
|
|
|
131
130
|
// If the segment had `[]`, descend into the array element
|
|
132
131
|
if (arrayBracket) {
|
|
133
132
|
// SAFETY: element is $ZodType when current is a ZodArray — undefined otherwise
|
|
134
|
-
const element =
|
|
133
|
+
const element = current._zod.def.element;
|
|
135
134
|
if (!element)
|
|
136
135
|
return undefined;
|
|
137
136
|
current = element;
|
package/dist/register.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"register.js","sourceRoot":"","sources":["../src/register.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"register.js","sourceRoot":"","sources":["../src/register.ts"],"names":[],"mappings":"AAGA,qEAAqE;AACrE,oFAAoF;AACpF,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAC;AAEzD;;;;GAIG;AACH,SAAS,kBAAkB,CAAC,MAA+B;IACzD,MAAM,QAAQ,GAA4B,EAAE,CAAC;IAC7C,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QAClD,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YAC7B,QAAQ,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;QACxB,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;AACjE,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AACH,MAAM,UAAU,YAAY,CAC1B,QAA4B,EAC5B,MAAS,EACT,MAAsB;IAEtB,oGAAoG;IACpG,MAAM,GAAG,GAAG,MAAiC,CAAC;IAE9C,MAAM,QAAQ,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC;IACzC,IAAI,QAAQ,EAAE,CAAC;QACb,sFAAsF;QACtF,QAAQ,CAAC,GAAG,CAAC,MAAM,EAAE,QAA6B,CAAC,CAAC;IACtD,CAAC;IAED,sEAAsE;IACtE,MAAM,MAAM,GAAG,GAAG,CAAC,QAAQ,CAAC,CAAC;IAC7B,IAAI,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;QACzC,MAAM,KAAK,GAAI,MAAM,CAAC,IAAI,CAAC,GAA4C,CAAC,KAAK,IAAI,EAAE,CAAC;QACpF,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;QAE9C,KAAK,MAAM,CAAC,GAAG,EAAE,WAAW,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACvD,2DAA2D;YAC3D,MAAM,WAAW,GAAI,MAAkD,CAAC,GAAG,CAAC,CAAC;YAC7E,IAAI,WAAW,EAAE,CAAC;gBAChB,qFAAqF;gBACrF,YAAY,CAAC,QAAQ,EAAE,WAAW,EAAE,WAA8C,CAAC,CAAC;YACtF,CAAC;QACH,CAAC;QAED,2DAA2D;QAC3D,KAAK,MAAM,SAAS,IAAI,MAAM,CAAC,IAAI,CAAC,MAAiC,CAAC,EAAE,CAAC;YACvE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC9B,OAAO,CAAC,IAAI,CACV,wDAAwD,SAAS,IAAI;oBACnE,+DAA+D,CAAC,GAAG,SAAS,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI;oBAC5F,6BAA6B,CAChC,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC;IAED,sEAAsE;IACtE,MAAM,UAAU,GAAG,GAAG,CAAC,YAAY,CAAC,CAAC;IACrC,IAAI,UAAU,EAAE,CAAC;QACf,+FAA+F;QAC/F,MAAM,OAAO,GAAI,MAAM,CAAC,IAAI,CAAC,GAA8B,CAAC,OAAO,CAAC;QACpE,IAAI,OAAO,EAAE,CAAC;YACZ,2EAA2E;YAC3E,YAAY,CAAC,QAAQ,EAAE,OAAO,EAAE,UAAyC,CAAC,CAAC;QAC7E,CAAC;IACH,CAAC;AACH,CAAC;AAED;;;;;;;;GAQG;AACH,SAAS,iBAAiB,CAAC,MAAgB,EAAE,IAAY;IACvD,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACjC,IAAI,OAAO,GAAa,MAAM,CAAC;IAE/B,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,gEAAgE;QAChE,MAAM,YAAY,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC5C,MAAM,GAAG,GAAG,YAAY,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;QAE1D,yEAAyE;QACzE,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;YACtB,+EAA+E;YAC/E,MAAM,OAAO,GAAI,OAAO,CAAC,IAAI,CAAC,GAA8B,CAAC,OAAO,CAAC;YACrE,IAAI,CAAC,OAAO;gBAAE,OAAO,SAAS,CAAC;YAC/B,OAAO,GAAG,OAAO,CAAC;YAClB,SAAS;QACX,CAAC;QAED,kCAAkC;QAClC,IAAI,GAAG,EAAE,CAAC;YACR,MAAM,KAAK,GAAI,OAAO,CAAC,IAAI,CAAC,GAA4C,CAAC,KAAK,IAAI,EAAE,CAAC;YACrF,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;YACzB,IAAI,CAAC,KAAK;gBAAE,OAAO,SAAS,CAAC;YAC7B,OAAO,GAAG,KAAK,CAAC;QAClB,CAAC;QAED,0DAA0D;QAC1D,IAAI,YAAY,EAAE,CAAC;YACjB,+EAA+E;YAC/E,MAAM,OAAO,GAAI,OAAO,CAAC,IAAI,CAAC,GAA8B,CAAC,OAAO,CAAC;YACrE,IAAI,CAAC,OAAO;gBAAE,OAAO,SAAS,CAAC;YAC/B,OAAO,GAAG,OAAO,CAAC;QACpB,CAAC;IACH,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,MAAM,UAAU,YAAY,CAC1B,QAA4B,EAC5B,MAAgB,EAChB,MAAmC;IAEnC,KAAK,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QACpD,IAAI,CAAC,MAAM;YAAE,SAAS;QAEtB,MAAM,MAAM,GAAG,iBAAiB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QAC/C,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO,CAAC,IAAI,CACV,qCAAqC,IAAI,4BAA4B;gBACnE,wEAAwE;gBACxE,yCAAyC,CAC5C,CAAC;YACF,SAAS;QACX,CAAC;QAED,kDAAkD;QAClD,MAAM,QAAQ,GAAG,kBAAkB,CAAC,MAAiC,CAAC,CAAC;QACvE,IAAI,QAAQ,EAAE,CAAC;YACb,sFAAsF;YACtF,QAAQ,CAAC,GAAG,CAAC,MAAM,EAAE,QAAoC,CAAC,CAAC;QAC7D,CAAC;IACH,CAAC;AACH,CAAC"}
|
package/dist/registry.d.ts
CHANGED
|
@@ -2,9 +2,6 @@ import type { FormProcessor } from './types.js';
|
|
|
2
2
|
export declare const builtinProcessors: Record<string, FormProcessor>;
|
|
3
3
|
/**
|
|
4
4
|
* Create a custom processor registry by merging with built-in processors.
|
|
5
|
-
*
|
|
6
|
-
* @param custom - Custom processors to add or override
|
|
7
|
-
* @returns Merged processor registry
|
|
8
5
|
*/
|
|
9
6
|
export declare function createProcessors(custom: Record<string, FormProcessor>): Record<string, FormProcessor>;
|
|
10
7
|
//# sourceMappingURL=registry.d.ts.map
|
package/dist/registry.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../src/registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../src/registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAyEhD,eAAO,MAAM,iBAAiB,EAAiC,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;AAE7F;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,GACpC,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAE/B"}
|
package/dist/registry.js
CHANGED
|
@@ -1,15 +1,21 @@
|
|
|
1
1
|
import { processArray, processTuple } from './processors/array.js';
|
|
2
2
|
import { processBoolean } from './processors/boolean.js';
|
|
3
|
+
import { processMap, processSet } from './processors/collections.js';
|
|
3
4
|
import { processDate } from './processors/date.js';
|
|
4
5
|
import { processEnum, processLiteral } from './processors/enum.js';
|
|
5
6
|
import { processFallback } from './processors/fallback.js';
|
|
6
7
|
import { processFile } from './processors/file.js';
|
|
7
8
|
import { processNumber } from './processors/number.js';
|
|
8
9
|
import { processObject, processIntersection } from './processors/object.js';
|
|
10
|
+
import { processRecord } from './processors/record.js';
|
|
9
11
|
import { processString, processTemplateLiteral } from './processors/string.js';
|
|
10
12
|
import { processUnion } from './processors/union.js';
|
|
11
13
|
import { processDefault, processLazy, processNullable, processOptional, processPipe, processReadonly } from './processors/wrappers.js';
|
|
12
|
-
|
|
14
|
+
/**
|
|
15
|
+
* Typed processor map — compile-time check ensures each processor's schema
|
|
16
|
+
* parameter matches the Zod type it handles. Covers all types in `$ZodTypes`.
|
|
17
|
+
*/
|
|
18
|
+
const typedProcessors = {
|
|
13
19
|
string: processString,
|
|
14
20
|
template_literal: processTemplateLiteral,
|
|
15
21
|
number: processNumber,
|
|
@@ -17,10 +23,10 @@ export const builtinProcessors = {
|
|
|
17
23
|
boolean: processBoolean,
|
|
18
24
|
date: processDate,
|
|
19
25
|
enum: processEnum,
|
|
20
|
-
nativeEnum: processEnum,
|
|
21
26
|
literal: processLiteral,
|
|
22
27
|
file: processFile,
|
|
23
28
|
object: processObject,
|
|
29
|
+
record: processRecord,
|
|
24
30
|
array: processArray,
|
|
25
31
|
tuple: processTuple,
|
|
26
32
|
union: processUnion,
|
|
@@ -29,19 +35,34 @@ export const builtinProcessors = {
|
|
|
29
35
|
optional: processOptional,
|
|
30
36
|
nullable: processNullable,
|
|
31
37
|
default: processDefault,
|
|
38
|
+
prefault: processDefault,
|
|
32
39
|
readonly: processReadonly,
|
|
33
40
|
pipe: processPipe,
|
|
34
41
|
transform: processFallback,
|
|
35
42
|
custom: processFallback,
|
|
36
43
|
any: processFallback,
|
|
37
44
|
unknown: processFallback,
|
|
38
|
-
|
|
45
|
+
nan: processFallback,
|
|
46
|
+
void: processFallback,
|
|
47
|
+
never: processFallback,
|
|
48
|
+
null: processFallback,
|
|
49
|
+
undefined: processFallback,
|
|
50
|
+
symbol: processFallback,
|
|
51
|
+
map: processMap,
|
|
52
|
+
set: processSet,
|
|
53
|
+
function: processFallback,
|
|
54
|
+
promise: processFallback,
|
|
55
|
+
catch: processFallback,
|
|
56
|
+
success: processFallback,
|
|
57
|
+
nonoptional: processFallback
|
|
39
58
|
};
|
|
59
|
+
// Safety: typed map verifies processor/schema alignment at compile time.
|
|
60
|
+
// Runtime registry widens to FormProcessor since walker dispatches by def.type string.
|
|
61
|
+
// Note: discriminated unions have def.type "union" (not "discriminated_union") —
|
|
62
|
+
// processUnion detects the discriminator property and delegates to processDiscriminatedUnion.
|
|
63
|
+
export const builtinProcessors = typedProcessors;
|
|
40
64
|
/**
|
|
41
65
|
* Create a custom processor registry by merging with built-in processors.
|
|
42
|
-
*
|
|
43
|
-
* @param custom - Custom processors to add or override
|
|
44
|
-
* @returns Merged processor registry
|
|
45
66
|
*/
|
|
46
67
|
export function createProcessors(custom) {
|
|
47
68
|
return { ...builtinProcessors, ...custom };
|
package/dist/registry.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../src/registry.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACnE,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACnE,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAC5E,OAAO,EAAE,aAAa,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAC/E,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EACL,cAAc,EACd,WAAW,EACX,eAAe,EACf,eAAe,EACf,WAAW,EACX,eAAe,EAChB,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../src/registry.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACnE,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACnE,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAC5E,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAC/E,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EACL,cAAc,EACd,WAAW,EACX,eAAe,EACf,eAAe,EACf,WAAW,EACX,eAAe,EAChB,MAAM,0BAA0B,CAAC;AAGlC;;;GAGG;AACH,MAAM,eAAe,GAAuE;IAC1F,MAAM,EAAE,aAAa;IACrB,gBAAgB,EAAE,sBAAsB;IACxC,MAAM,EAAE,aAAa;IACrB,MAAM,EAAE,aAAa;IACrB,OAAO,EAAE,cAAc;IACvB,IAAI,EAAE,WAAW;IACjB,IAAI,EAAE,WAAW;IACjB,OAAO,EAAE,cAAc;IACvB,IAAI,EAAE,WAAW;IACjB,MAAM,EAAE,aAAa;IACrB,MAAM,EAAE,aAAa;IACrB,KAAK,EAAE,YAAY;IACnB,KAAK,EAAE,YAAY;IACnB,KAAK,EAAE,YAAY;IACnB,YAAY,EAAE,mBAAmB;IACjC,IAAI,EAAE,WAAW;IACjB,QAAQ,EAAE,eAAe;IACzB,QAAQ,EAAE,eAAe;IACzB,OAAO,EAAE,cAAc;IACvB,QAAQ,EAAE,cAAc;IACxB,QAAQ,EAAE,eAAe;IACzB,IAAI,EAAE,WAAW;IACjB,SAAS,EAAE,eAAe;IAC1B,MAAM,EAAE,eAAe;IACvB,GAAG,EAAE,eAAe;IACpB,OAAO,EAAE,eAAe;IACxB,GAAG,EAAE,eAAe;IACpB,IAAI,EAAE,eAAe;IACrB,KAAK,EAAE,eAAe;IACtB,IAAI,EAAE,eAAe;IACrB,SAAS,EAAE,eAAe;IAC1B,MAAM,EAAE,eAAe;IACvB,GAAG,EAAE,UAAU;IACf,GAAG,EAAE,UAAU;IACf,QAAQ,EAAE,eAAe;IACzB,OAAO,EAAE,eAAe;IACxB,KAAK,EAAE,eAAe;IACtB,OAAO,EAAE,eAAe;IACxB,WAAW,EAAE,eAAe;CAC7B,CAAC;AAEF,yEAAyE;AACzE,uFAAuF;AACvF,iFAAiF;AACjF,8FAA8F;AAC9F,MAAM,CAAC,MAAM,iBAAiB,GAAG,eAA2D,CAAC;AAE7F;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAC9B,MAAqC;IAErC,OAAO,EAAE,GAAG,iBAAiB,EAAE,GAAG,MAAM,EAAE,CAAC;AAC7C,CAAC"}
|