@zod-to-form/core 0.6.1 → 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 (111) hide show
  1. package/dist/config.d.ts +24 -30
  2. package/dist/config.d.ts.map +1 -1
  3. package/dist/config.js +32 -18
  4. package/dist/config.js.map +1 -1
  5. package/dist/index.d.ts +5 -2
  6. package/dist/index.d.ts.map +1 -1
  7. package/dist/index.js +2 -0
  8. package/dist/index.js.map +1 -1
  9. package/dist/normalize.d.ts +17 -0
  10. package/dist/normalize.d.ts.map +1 -0
  11. package/dist/normalize.js +48 -0
  12. package/dist/normalize.js.map +1 -0
  13. package/dist/optimizers/constraint-map.d.ts +14 -0
  14. package/dist/optimizers/constraint-map.d.ts.map +1 -0
  15. package/dist/optimizers/constraint-map.js +117 -0
  16. package/dist/optimizers/constraint-map.js.map +1 -0
  17. package/dist/optimizers/index.d.ts +10 -0
  18. package/dist/optimizers/index.d.ts.map +1 -0
  19. package/dist/optimizers/index.js +31 -0
  20. package/dist/optimizers/index.js.map +1 -0
  21. package/dist/optimizers/l1-decompose.d.ts +6 -0
  22. package/dist/optimizers/l1-decompose.d.ts.map +1 -0
  23. package/dist/optimizers/l1-decompose.js +65 -0
  24. package/dist/optimizers/l1-decompose.js.map +1 -0
  25. package/dist/optimizers/l2-native-rules.d.ts +6 -0
  26. package/dist/optimizers/l2-native-rules.d.ts.map +1 -0
  27. package/dist/optimizers/l2-native-rules.js +66 -0
  28. package/dist/optimizers/l2-native-rules.js.map +1 -0
  29. package/dist/optimizers/l3-cross-field.d.ts +2 -0
  30. package/dist/optimizers/l3-cross-field.d.ts.map +1 -0
  31. package/dist/optimizers/l3-cross-field.js +43 -0
  32. package/dist/optimizers/l3-cross-field.js.map +1 -0
  33. package/dist/optimizers/schema-lite.d.ts +11 -0
  34. package/dist/optimizers/schema-lite.d.ts.map +1 -0
  35. package/dist/optimizers/schema-lite.js +71 -0
  36. package/dist/optimizers/schema-lite.js.map +1 -0
  37. package/dist/optimizers/types.d.ts +47 -0
  38. package/dist/optimizers/types.d.ts.map +1 -0
  39. package/dist/optimizers/types.js +2 -0
  40. package/dist/optimizers/types.js.map +1 -0
  41. package/dist/processors/array.d.ts +3 -3
  42. package/dist/processors/array.d.ts.map +1 -1
  43. package/dist/processors/array.js +3 -6
  44. package/dist/processors/array.js.map +1 -1
  45. package/dist/processors/boolean.d.ts +2 -2
  46. package/dist/processors/boolean.d.ts.map +1 -1
  47. package/dist/processors/boolean.js.map +1 -1
  48. package/dist/processors/collections.d.ts +13 -0
  49. package/dist/processors/collections.d.ts.map +1 -0
  50. package/dist/processors/collections.js +36 -0
  51. package/dist/processors/collections.js.map +1 -0
  52. package/dist/processors/date.d.ts +2 -2
  53. package/dist/processors/date.d.ts.map +1 -1
  54. package/dist/processors/date.js.map +1 -1
  55. package/dist/processors/enum.d.ts +3 -3
  56. package/dist/processors/enum.d.ts.map +1 -1
  57. package/dist/processors/enum.js +5 -7
  58. package/dist/processors/enum.js.map +1 -1
  59. package/dist/processors/fallback.d.ts.map +1 -1
  60. package/dist/processors/fallback.js +1 -13
  61. package/dist/processors/fallback.js.map +1 -1
  62. package/dist/processors/index.d.ts +3 -1
  63. package/dist/processors/index.d.ts.map +1 -1
  64. package/dist/processors/index.js +3 -1
  65. package/dist/processors/index.js.map +1 -1
  66. package/dist/processors/number.d.ts +2 -2
  67. package/dist/processors/number.d.ts.map +1 -1
  68. package/dist/processors/number.js +3 -4
  69. package/dist/processors/number.js.map +1 -1
  70. package/dist/processors/object.d.ts +3 -3
  71. package/dist/processors/object.d.ts.map +1 -1
  72. package/dist/processors/object.js +12 -12
  73. package/dist/processors/object.js.map +1 -1
  74. package/dist/processors/record.d.ts +4 -0
  75. package/dist/processors/record.d.ts.map +1 -0
  76. package/dist/processors/record.js +8 -0
  77. package/dist/processors/record.js.map +1 -0
  78. package/dist/processors/string.d.ts +3 -3
  79. package/dist/processors/string.d.ts.map +1 -1
  80. package/dist/processors/string.js +22 -7
  81. package/dist/processors/string.js.map +1 -1
  82. package/dist/processors/union.d.ts +3 -2
  83. package/dist/processors/union.d.ts.map +1 -1
  84. package/dist/processors/union.js +20 -19
  85. package/dist/processors/union.js.map +1 -1
  86. package/dist/processors/wrappers.d.ts +7 -7
  87. package/dist/processors/wrappers.d.ts.map +1 -1
  88. package/dist/processors/wrappers.js +10 -16
  89. package/dist/processors/wrappers.js.map +1 -1
  90. package/dist/register.d.ts.map +1 -1
  91. package/dist/register.js +5 -6
  92. package/dist/register.js.map +1 -1
  93. package/dist/registry.d.ts +0 -3
  94. package/dist/registry.d.ts.map +1 -1
  95. package/dist/registry.js +27 -6
  96. package/dist/registry.js.map +1 -1
  97. package/dist/types.d.ts +68 -13
  98. package/dist/types.d.ts.map +1 -1
  99. package/dist/utils.d.ts +0 -6
  100. package/dist/utils.d.ts.map +1 -1
  101. package/dist/utils.js +2 -6
  102. package/dist/utils.js.map +1 -1
  103. package/dist/walker.d.ts +7 -4
  104. package/dist/walker.d.ts.map +1 -1
  105. package/dist/walker.js +172 -19
  106. package/dist/walker.js.map +1 -1
  107. package/package.json +1 -1
  108. package/dist/processors/_utils.d.ts +0 -5
  109. package/dist/processors/_utils.d.ts.map +0 -1
  110. package/dist/processors/_utils.js +0 -17
  111. package/dist/processors/_utils.js.map +0 -1
package/dist/config.d.ts CHANGED
@@ -5,48 +5,38 @@ import type { FieldConfig } from './types.js';
5
5
  export type ComponentOverride = {
6
6
  /** When true, use Controller/useController instead of register() spread */
7
7
  controlled?: boolean;
8
- /** Map RHF field props to component-specific prop names (e.g. { onSelect: 'field.onChange' }) */
9
- propMap?: Record<string, string>;
8
+ /**
9
+ * Default props for this component type.
10
+ * Values matching a known field expression string are resolved from the RHF controller.
11
+ * Per-field props override these via shallow merge (field config wins).
12
+ */
13
+ props?: Record<string, unknown>;
10
14
  };
11
- export type ComponentPreset = 'shadcn' | 'unstyled';
15
+ export type ComponentPreset = 'shadcn' | 'html';
12
16
  export type ComponentsConfig<T extends Record<string, unknown> = Record<string, unknown>> = {
13
17
  /** Import path for the components module */
14
18
  source: string;
15
- /** Preset that provides base overrides */
19
+ /** Preset that provides base overrides and default field template */
16
20
  preset?: ComponentPreset;
21
+ /**
22
+ * Custom field template component path.
23
+ * Controls the composition of label + input + description + helpText + error.
24
+ * Overrides the preset's default template.
25
+ */
26
+ fieldTemplate?: string;
17
27
  /** Per-component overrides, strongly typed to module export keys */
18
28
  overrides?: {
19
29
  [K in keyof T & string]?: ComponentOverride;
20
30
  };
21
31
  };
22
- export type FormPrimitivesConfig<T extends Record<string, unknown> = Record<string, unknown>> = {
23
- field?: keyof T & string;
24
- label?: keyof T & string;
25
- control?: keyof T & string;
26
- };
27
32
  /** Field config with props constrained to a specific component's prop type */
28
- type TypedFieldConfigForComponent<TComponents extends Record<string, unknown>, K extends keyof TComponents & string> = {
33
+ type TypedFieldConfigForComponent<TComponents extends Record<string, unknown>, K extends keyof TComponents & string> = Omit<FieldConfig, 'component' | 'props'> & {
29
34
  component: K;
30
- order?: number;
31
- hidden?: boolean;
32
- gridColumn?: string;
33
35
  props?: TComponents[K] extends Record<string, unknown> ? Partial<TComponents[K]> : Record<string, unknown>;
34
- /** Per-field prop mapping override (merges over ComponentOverride.propMap) */
35
- propMap?: Record<string, string>;
36
- /** Group into a named section component */
37
- section?: string;
38
36
  };
39
37
  /** Field config with no component specified (untyped props) */
40
- type UntypedFieldConfig = {
38
+ type UntypedFieldConfig = Omit<FieldConfig, 'component'> & {
41
39
  component?: undefined;
42
- order?: number;
43
- hidden?: boolean;
44
- gridColumn?: string;
45
- props?: Record<string, unknown>;
46
- /** Per-field prop mapping override (merges over ComponentOverride.propMap) */
47
- propMap?: Record<string, string>;
48
- /** Group into a named section component */
49
- section?: string;
50
40
  };
51
41
  /**
52
42
  * Discriminated union over component keys.
@@ -57,14 +47,19 @@ type UntypedFieldConfig = {
57
47
  export type TypedFieldConfig<TComponents extends Record<string, unknown> = Record<string, unknown>> = {
58
48
  [K in keyof TComponents & string]: TypedFieldConfigForComponent<TComponents, K>;
59
49
  }[keyof TComponents & string] | UntypedFieldConfig;
50
+ export type OptimizationConfig = {
51
+ level?: 1 | 2 | 3;
52
+ };
60
53
  export type ConfigDefaults = {
61
54
  mode?: 'submit' | 'auto-save';
62
- ui?: 'shadcn' | 'unstyled';
55
+ ui?: 'shadcn' | 'html';
63
56
  out?: string;
64
57
  overwrite?: boolean;
65
58
  serverAction?: boolean;
66
59
  /** Wrap generated form in <FormProvider {...form}> */
67
60
  formProvider?: boolean;
61
+ /** Validation optimization configuration */
62
+ optimization?: OptimizationConfig;
68
63
  };
69
64
  export type ZodTypeConfig<TFieldKeys extends string = string, TComponents extends Record<string, unknown> = Record<string, unknown>> = {
70
65
  name?: string;
@@ -75,7 +70,6 @@ export type ZodTypeConfig<TFieldKeys extends string = string, TComponents extend
75
70
  };
76
71
  export type ZodFormsConfig<TComponents extends Record<string, unknown> = Record<string, unknown>, TSchemas extends Record<string, unknown> = Record<string, unknown>> = {
77
72
  components: ComponentsConfig<TComponents>;
78
- formPrimitives?: FormPrimitivesConfig<TComponents>;
79
73
  defaults?: ConfigDefaults;
80
74
  types?: string[];
81
75
  include?: string[];
@@ -100,9 +94,9 @@ type NormalizeArrayPath<TPath extends string> = TPath extends `${infer Prefix}.$
100
94
  type FieldPath<TValues extends Record<string, unknown>> = DotPath<TValues> extends infer TPath ? TPath extends string ? TPath | NormalizeArrayPath<TPath> : never : never;
101
95
  /** Extracts dot-notation field paths from a Zod schema's inferred type */
102
96
  type SchemaFieldPath<T extends $ZodType> = z.infer<T> extends infer O ? (O extends Record<string, unknown> ? FieldPath<O> : string) : string;
103
- /** shadcn preset — no controlled components by default */
97
+ /** shadcn preset — Radix-based components need controlled mode + field expression props */
104
98
  export declare const SHADCN_OVERRIDES: Record<string, ComponentOverride>;
105
- /** Default/unstyled preset — no controlled components by default */
99
+ /** Default HTML preset — no controlled components by default */
106
100
  export declare const DEFAULT_OVERRIDES: Record<string, ComponentOverride>;
107
101
  export declare function defineConfig<TComponents extends Record<string, unknown> = Record<string, unknown>, TSchemas extends Record<string, unknown> = Record<string, unknown>>(config: ZodFormsConfig<TComponents, TSchemas>): ZodFormsConfig<TComponents, TSchemas>;
108
102
  export declare function validateConfig(value: unknown, source?: string): ZodFormsConfig<Record<string, unknown>>;
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
package/dist/config.js CHANGED
@@ -4,13 +4,14 @@ const nonEmptyStringSchema = z.string().trim().min(1);
4
4
  const componentOverrideSchema = z
5
5
  .object({
6
6
  controlled: z.boolean().optional(),
7
- propMap: z.record(z.string(), z.string()).optional()
7
+ props: z.record(z.string(), z.unknown()).optional()
8
8
  })
9
9
  .loose();
10
10
  const componentsConfigSchema = z
11
11
  .object({
12
12
  source: nonEmptyStringSchema,
13
- preset: z.enum(['shadcn', 'unstyled']).optional(),
13
+ preset: z.enum(['shadcn', 'html']).optional(),
14
+ fieldTemplate: nonEmptyStringSchema.optional(),
14
15
  overrides: z.record(z.string(), componentOverrideSchema).optional()
15
16
  })
16
17
  .loose();
@@ -19,10 +20,10 @@ const fieldConfigSchema = z
19
20
  component: nonEmptyStringSchema.optional(),
20
21
  order: z.number().optional(),
21
22
  hidden: z.boolean().optional(),
22
- gridColumn: z.string().optional(),
23
+ disabled: z.boolean().optional(),
23
24
  props: z.record(z.string(), z.unknown()).optional(),
24
- propMap: z.record(z.string(), z.string()).optional(),
25
- section: z.string().optional()
25
+ section: z.string().optional(),
26
+ helpText: z.string().optional()
26
27
  })
27
28
  .loose();
28
29
  const fieldOverrideSchema = z
@@ -31,6 +32,12 @@ const fieldOverrideSchema = z
31
32
  props: z.record(z.string(), z.unknown()).optional()
32
33
  })
33
34
  .loose();
35
+ const optimizationConfigSchema = z
36
+ .object({
37
+ level: z.union([z.literal(1), z.literal(2), z.literal(3)]).optional()
38
+ })
39
+ .loose()
40
+ .optional();
34
41
  const defaultsSchema = z
35
42
  .object({
36
43
  mode: z.string().optional(),
@@ -38,7 +45,8 @@ const defaultsSchema = z
38
45
  out: z.string().optional(),
39
46
  overwrite: z.boolean().optional(),
40
47
  serverAction: z.boolean().optional(),
41
- formProvider: z.boolean().optional()
48
+ formProvider: z.boolean().optional(),
49
+ optimization: optimizationConfigSchema
42
50
  })
43
51
  .loose()
44
52
  .optional();
@@ -58,7 +66,6 @@ const configSchema = z
58
66
  include: z.array(z.string()).optional(),
59
67
  exclude: z.array(z.string()).optional(),
60
68
  types: z.array(z.string()).optional(),
61
- formPrimitives: z.record(z.string(), nonEmptyStringSchema).optional(),
62
69
  fields: z.record(z.string(), fieldOverrideSchema.or(fieldConfigSchema)).optional(),
63
70
  defaults: defaultsSchema,
64
71
  schemas: z.record(z.string(), zodTypeConfigSchema).optional()
@@ -66,7 +73,7 @@ const configSchema = z
66
73
  .loose();
67
74
  // ─── Error Formatting ─────────────────────────────────────────────────
68
75
  function formatValidationError(error, source) {
69
- const [issue] = error.issues;
76
+ const issue = error.issues[0];
70
77
  if (!issue) {
71
78
  return new Error(`${source} is invalid.`);
72
79
  }
@@ -90,12 +97,6 @@ function formatValidationError(error, source) {
90
97
  }
91
98
  return new Error(`${source}.components.${entry} is invalid.`);
92
99
  }
93
- if (root === 'formPrimitives') {
94
- if (!entry) {
95
- return new Error(`${source}.formPrimitives must be an object when provided.`);
96
- }
97
- return new Error(`${source}.formPrimitives.${entry} must be a non-empty string when provided.`);
98
- }
99
100
  if (root === 'fields') {
100
101
  if (!entry) {
101
102
  return new Error(`${source}.fields must be an object when provided.`);
@@ -152,14 +153,27 @@ function formatValidationError(error, source) {
152
153
  return new Error(`${source} is invalid: ${issue.message}`);
153
154
  }
154
155
  // ─── Preset Override Maps ─────────────────────────────────────────────
155
- /** shadcn preset — no controlled components by default */
156
- export const SHADCN_OVERRIDES = {};
157
- /** Default/unstyled preset — no controlled components by default */
156
+ /** shadcn preset — Radix-based components need controlled mode + field expression props */
157
+ export const SHADCN_OVERRIDES = {
158
+ Select: {
159
+ controlled: true,
160
+ props: { onValueChange: 'field.onChange' }
161
+ },
162
+ Checkbox: {
163
+ controlled: true,
164
+ props: { checked: 'field.value', onCheckedChange: 'field.onChange' }
165
+ },
166
+ Switch: {
167
+ controlled: true,
168
+ props: { checked: 'field.value', onCheckedChange: 'field.onChange' }
169
+ }
170
+ };
171
+ /** Default HTML preset — no controlled components by default */
158
172
  export const DEFAULT_OVERRIDES = {};
159
173
  // ─── Public Functions ─────────────────────────────────────────────────
160
174
  const PRESET_MAP = {
161
175
  shadcn: SHADCN_OVERRIDES,
162
- unstyled: DEFAULT_OVERRIDES
176
+ html: DEFAULT_OVERRIDES
163
177
  };
164
178
  export function defineConfig(config) {
165
179
  const preset = config.components.preset;
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,7 +1,10 @@
1
- export type { FormField, FormFieldOption, FormFieldConstraints, FormProcessor, FormProcessorContext, FormMeta, FieldConfig, ProcessParams, WalkOptions, ZodFormRegistry } from './types.js';
2
- export type { ComponentOverride, ComponentPreset, ComponentsConfig, FormPrimitivesConfig, TypedFieldConfig, ZodFormsConfig, ZodTypeConfig, ConfigDefaults, StripIndexSignature } from './config.js';
1
+ export type { FormField, FormFieldOption, FormFieldConstraints, FormProcessor, FormProcessorContext, FormMeta, FieldConfig, FieldExpression, ProcessParams, WalkOptions, ZodFormRegistry, NativeRules, ValidationStrategy } from './types.js';
2
+ export type { ComponentOverride, ComponentPreset, ComponentsConfig, TypedFieldConfig, ZodFormsConfig, ZodTypeConfig, ConfigDefaults, OptimizationConfig, StripIndexSignature } from './config.js';
3
+ export type { FormOptimizer, FormOptimizerContext, WalkResult, SchemaLiteCollector, SchemaLiteInfo } from './optimizers/index.js';
4
+ export { createOptimizers, builtinOptimizers, createSchemaLiteCollector } from './optimizers/index.js';
3
5
  export { defineConfig, validateConfig, resolveFieldConfig, normalizeConfig, SHADCN_OVERRIDES, DEFAULT_OVERRIDES } from './config.js';
4
6
  export { inferLabel, joinPath, createBaseField, getEmptyDefault, normalizeFieldKey, collectFieldSections } from './utils.js';
7
+ export { normalizeFormValues } from './normalize.js';
5
8
  export { walkSchema } from './walker.js';
6
9
  export { builtinProcessors, createProcessors } from './registry.js';
7
10
  export { registerDeep, registerFlat } from './register.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAGA,YAAY,EACV,SAAS,EACT,eAAe,EACf,oBAAoB,EACpB,aAAa,EACb,oBAAoB,EACpB,QAAQ,EACR,WAAW,EACX,aAAa,EACb,WAAW,EACX,eAAe,EAChB,MAAM,YAAY,CAAC;AAEpB,YAAY,EACV,iBAAiB,EACjB,eAAe,EACf,gBAAgB,EAChB,oBAAoB,EACpB,gBAAgB,EAChB,cAAc,EACd,aAAa,EACb,cAAc,EACd,mBAAmB,EACpB,MAAM,aAAa,CAAC;AAErB,OAAO,EACL,YAAY,EACZ,cAAc,EACd,kBAAkB,EAClB,eAAe,EACf,gBAAgB,EAChB,iBAAiB,EAClB,MAAM,aAAa,CAAC;AAErB,OAAO,EACL,UAAU,EACV,QAAQ,EACR,eAAe,EACf,eAAe,EACf,iBAAiB,EACjB,oBAAoB,EACrB,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACpE,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC3D,OAAO,KAAK,UAAU,MAAM,uBAAuB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAGA,YAAY,EACV,SAAS,EACT,eAAe,EACf,oBAAoB,EACpB,aAAa,EACb,oBAAoB,EACpB,QAAQ,EACR,WAAW,EACX,eAAe,EACf,aAAa,EACb,WAAW,EACX,eAAe,EACf,WAAW,EACX,kBAAkB,EACnB,MAAM,YAAY,CAAC;AAEpB,YAAY,EACV,iBAAiB,EACjB,eAAe,EACf,gBAAgB,EAChB,gBAAgB,EAChB,cAAc,EACd,aAAa,EACb,cAAc,EACd,kBAAkB,EAClB,mBAAmB,EACpB,MAAM,aAAa,CAAC;AAErB,YAAY,EACV,aAAa,EACb,oBAAoB,EACpB,UAAU,EACV,mBAAmB,EACnB,cAAc,EACf,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EACL,gBAAgB,EAChB,iBAAiB,EACjB,yBAAyB,EAC1B,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EACL,YAAY,EACZ,cAAc,EACd,kBAAkB,EAClB,eAAe,EACf,gBAAgB,EAChB,iBAAiB,EAClB,MAAM,aAAa,CAAC;AAErB,OAAO,EACL,UAAU,EACV,QAAQ,EACR,eAAe,EACf,eAAe,EACf,iBAAiB,EACjB,oBAAoB,EACrB,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACpE,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC3D,OAAO,KAAK,UAAU,MAAM,uBAAuB,CAAC"}
package/dist/index.js CHANGED
@@ -1,7 +1,9 @@
1
1
  // @zod-to-form/core — Public API
2
2
  // All exports are named exports only (no default, no `export *`) for full tree-shakeability.
3
+ export { createOptimizers, builtinOptimizers, createSchemaLiteCollector } from './optimizers/index.js';
3
4
  export { defineConfig, validateConfig, resolveFieldConfig, normalizeConfig, SHADCN_OVERRIDES, DEFAULT_OVERRIDES } from './config.js';
4
5
  export { inferLabel, joinPath, createBaseField, getEmptyDefault, normalizeFieldKey, collectFieldSections } from './utils.js';
6
+ export { normalizeFormValues } from './normalize.js';
5
7
  export { walkSchema } from './walker.js';
6
8
  export { builtinProcessors, createProcessors } from './registry.js';
7
9
  export { registerDeep, registerFlat } from './register.js';
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,iCAAiC;AACjC,6FAA6F;AA2B7F,OAAO,EACL,YAAY,EACZ,cAAc,EACd,kBAAkB,EAClB,eAAe,EACf,gBAAgB,EAChB,iBAAiB,EAClB,MAAM,aAAa,CAAC;AAErB,OAAO,EACL,UAAU,EACV,QAAQ,EACR,eAAe,EACf,eAAe,EACf,iBAAiB,EACjB,oBAAoB,EACrB,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACpE,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC3D,OAAO,KAAK,UAAU,MAAM,uBAAuB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,iCAAiC;AACjC,6FAA6F;AAsC7F,OAAO,EACL,gBAAgB,EAChB,iBAAiB,EACjB,yBAAyB,EAC1B,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EACL,YAAY,EACZ,cAAc,EACd,kBAAkB,EAClB,eAAe,EACf,gBAAgB,EAChB,iBAAiB,EAClB,MAAM,aAAa,CAAC;AAErB,OAAO,EACL,UAAU,EACV,QAAQ,EACR,eAAe,EACf,eAAe,EACf,iBAAiB,EACjB,oBAAoB,EACrB,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACpE,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC3D,OAAO,KAAK,UAAU,MAAM,uBAAuB,CAAC"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Normalize raw HTML form values for Zod parsing.
3
+ *
4
+ * HTML inputs produce values that don't match Zod's expectations:
5
+ * - Empty strings "" for unset optional fields (Zod .optional() accepts undefined, not "")
6
+ * - FileList objects for file inputs (Zod expects File or undefined)
7
+ *
8
+ * This function recursively normalizes these mismatches so that
9
+ * schema.safeParse(normalizeFormValues(values)) works correctly.
10
+ *
11
+ * Called unconditionally in the resolver wrapper to ensure consistent
12
+ * behavior across all component libraries. While shadcn components handle
13
+ * most value conversions natively, normalization provides a safety net for
14
+ * edge cases like FileList objects.
15
+ */
16
+ export declare function normalizeFormValues(value: unknown): unknown;
17
+ //# sourceMappingURL=normalize.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"normalize.d.ts","sourceRoot":"","sources":["../src/normalize.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAuB3D"}
@@ -0,0 +1,48 @@
1
+ /**
2
+ * Normalize raw HTML form values for Zod parsing.
3
+ *
4
+ * HTML inputs produce values that don't match Zod's expectations:
5
+ * - Empty strings "" for unset optional fields (Zod .optional() accepts undefined, not "")
6
+ * - FileList objects for file inputs (Zod expects File or undefined)
7
+ *
8
+ * This function recursively normalizes these mismatches so that
9
+ * schema.safeParse(normalizeFormValues(values)) works correctly.
10
+ *
11
+ * Called unconditionally in the resolver wrapper to ensure consistent
12
+ * behavior across all component libraries. While shadcn components handle
13
+ * most value conversions natively, normalization provides a safety net for
14
+ * edge cases like FileList objects.
15
+ */
16
+ export function normalizeFormValues(value) {
17
+ if (isFileListLike(value)) {
18
+ return value.length > 0 ? (value.item(0) ?? value[0]) : undefined;
19
+ }
20
+ if (value === '') {
21
+ return undefined;
22
+ }
23
+ if (Array.isArray(value)) {
24
+ return value.map((item) => normalizeFormValues(item));
25
+ }
26
+ if (isPlainObject(value)) {
27
+ const entries = Object.entries(value).map(([key, nested]) => [
28
+ key,
29
+ normalizeFormValues(nested)
30
+ ]);
31
+ return Object.fromEntries(entries);
32
+ }
33
+ return value;
34
+ }
35
+ function isPlainObject(value) {
36
+ if (!value || typeof value !== 'object') {
37
+ return false;
38
+ }
39
+ return Object.prototype.toString.call(value) === '[object Object]';
40
+ }
41
+ function isFileListLike(value) {
42
+ if (!value || typeof value !== 'object') {
43
+ return false;
44
+ }
45
+ const candidate = value;
46
+ return typeof candidate.length === 'number' && typeof candidate.item === 'function';
47
+ }
48
+ //# sourceMappingURL=normalize.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"normalize.js","sourceRoot":"","sources":["../src/normalize.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,mBAAmB,CAAC,KAAc;IAChD,IAAI,cAAc,CAAC,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACpE,CAAC;IAED,IAAI,KAAK,KAAK,EAAE,EAAE,CAAC;QACjB,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC;IACxD,CAAC;IAED,IAAI,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,KAAgC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC;YACtF,GAAG;YACH,mBAAmB,CAAC,MAAM,CAAC;SAC5B,CAAC,CAAC;QAEH,OAAO,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IACrC,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,aAAa,CAAC,KAAc;IACnC,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QACxC,OAAO,KAAK,CAAC;IACf,CAAC;IAED,OAAO,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,iBAAiB,CAAC;AACrE,CAAC;AAED,SAAS,cAAc,CAAC,KAAc;IACpC,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QACxC,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,SAAS,GAAG,KAGjB,CAAC;IAEF,OAAO,OAAO,SAAS,CAAC,MAAM,KAAK,QAAQ,IAAI,OAAO,SAAS,CAAC,IAAI,KAAK,UAAU,CAAC;AACtF,CAAC"}
@@ -0,0 +1,14 @@
1
+ import type { $ZodType } from 'zod/v4/core';
2
+ import type { NativeRules } from '../types.js';
3
+ /**
4
+ * Extract native RHF rules from a Zod schema's constraint bag.
5
+ *
6
+ * Uses _zod.bag exclusively (Constitution Principle I) — the same substrate
7
+ * API as the existing processors (string.ts, number.ts).
8
+ *
9
+ * Returns NativeRules if all constraints can be mapped to native rules,
10
+ * or null if the schema has effects (refine/transform) that prevent
11
+ * native conversion (strict equivalence — FR-017).
12
+ */
13
+ export declare function extractNativeRules(schema: $ZodType): NativeRules | null;
14
+ //# sourceMappingURL=constraint-map.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constraint-map.d.ts","sourceRoot":"","sources":["../../src/optimizers/constraint-map.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE/C;;;;;;;;;GASG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,QAAQ,GAAG,WAAW,GAAG,IAAI,CAkFvE"}
@@ -0,0 +1,117 @@
1
+ /**
2
+ * Extract native RHF rules from a Zod schema's constraint bag.
3
+ *
4
+ * Uses _zod.bag exclusively (Constitution Principle I) — the same substrate
5
+ * API as the existing processors (string.ts, number.ts).
6
+ *
7
+ * Returns NativeRules if all constraints can be mapped to native rules,
8
+ * or null if the schema has effects (refine/transform) that prevent
9
+ * native conversion (strict equivalence — FR-017).
10
+ */
11
+ export function extractNativeRules(schema) {
12
+ const bag = schema._zod.bag;
13
+ const def = schema._zod.def;
14
+ const checks = def['checks'];
15
+ // If any check is a refine/transform/custom, the entire chain stays as atomic Zod
16
+ if (checks) {
17
+ for (const check of checks) {
18
+ const checkDef = check._zod?.def ?? check;
19
+ const checkType = checkDef['check'];
20
+ if (checkType === 'custom' || checkType === 'transform' || checkType === undefined) {
21
+ return null;
22
+ }
23
+ }
24
+ }
25
+ const rules = {};
26
+ // String constraints: minimum → minLength, maximum → maxLength
27
+ const minimum = bag['minimum'];
28
+ if (typeof minimum === 'number') {
29
+ rules.minLength = {
30
+ value: minimum,
31
+ message: extractMessage(checks, 'min_length', `Minimum ${minimum} characters`)
32
+ };
33
+ }
34
+ const maximum = bag['maximum'];
35
+ if (typeof maximum === 'number') {
36
+ rules.maxLength = {
37
+ value: maximum,
38
+ message: extractMessage(checks, 'max_length', `Maximum ${maximum} characters`)
39
+ };
40
+ }
41
+ // Number constraints: Zod v4 uses bag['minimum'] for inclusive (min/gte)
42
+ // and bag['exclusiveMinimum'] for exclusive (gt). RHF min/max are always
43
+ // inclusive, so exclusive bounds cannot be mapped — fall back to atomic Zod.
44
+ const schemaType = def['type'] ?? '';
45
+ if (schemaType === 'number' || schemaType === 'bigint') {
46
+ const exclusiveMin = bag['exclusiveMinimum'];
47
+ const exclusiveMax = bag['exclusiveMaximum'];
48
+ // Exclusive bounds → can't map to native RHF rules
49
+ if (typeof exclusiveMin === 'number' || typeof exclusiveMax === 'number') {
50
+ return null;
51
+ }
52
+ if (typeof minimum === 'number') {
53
+ rules.min = {
54
+ value: minimum,
55
+ message: extractMessage(checks, 'greater_than', `Must be at least ${minimum}`)
56
+ };
57
+ delete rules.minLength; // was string interpretation, replace with number
58
+ }
59
+ if (typeof maximum === 'number') {
60
+ rules.max = {
61
+ value: maximum,
62
+ message: extractMessage(checks, 'less_than', `Must be at most ${maximum}`)
63
+ };
64
+ delete rules.maxLength;
65
+ }
66
+ }
67
+ // Format-based patterns (email, url, uuid) — extract exact Zod regex from bag.
68
+ // Multiple patterns (e.g. z.string().email().url()) can't be represented as a
69
+ // single RHF pattern rule — fall back to atomic Zod for strict equivalence.
70
+ const patternsSet = bag['patterns'];
71
+ if (patternsSet instanceof Set && patternsSet.size > 1) {
72
+ return null;
73
+ }
74
+ if (patternsSet instanceof Set && patternsSet.size === 1) {
75
+ const firstPattern = [...patternsSet][0];
76
+ if (firstPattern instanceof RegExp) {
77
+ rules.pattern = {
78
+ value: firstPattern,
79
+ message: extractMessage(checks, 'string_format', 'Invalid format')
80
+ };
81
+ }
82
+ }
83
+ return rules;
84
+ }
85
+ /**
86
+ * Extract the error message for a specific check type from the checks array.
87
+ * Falls back to the provided default message.
88
+ */
89
+ function extractMessage(checks, checkName, fallback) {
90
+ if (!checks)
91
+ return fallback;
92
+ for (const check of checks) {
93
+ const checkDef = check._zod?.def ?? check;
94
+ if (checkDef['check'] === checkName) {
95
+ const error = checkDef['error'];
96
+ if (typeof error === 'function') {
97
+ try {
98
+ const result = error();
99
+ if (typeof result === 'string')
100
+ return result;
101
+ if (result && typeof result === 'object' && 'message' in result) {
102
+ const msg = result.message;
103
+ if (typeof msg === 'string')
104
+ return msg;
105
+ }
106
+ }
107
+ catch {
108
+ // Fall through to fallback
109
+ }
110
+ }
111
+ if (typeof error === 'string')
112
+ return error;
113
+ }
114
+ }
115
+ return fallback;
116
+ }
117
+ //# sourceMappingURL=constraint-map.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constraint-map.js","sourceRoot":"","sources":["../../src/optimizers/constraint-map.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ export type { FormOptimizer, FormOptimizerContext, WalkResult, SchemaLiteCollector, SchemaLiteInfo } from './types.js';
2
+ export { createSchemaLiteCollector } from './schema-lite.js';
3
+ import type { FormOptimizer } from './types.js';
4
+ export declare const builtinOptimizers: Record<string, FormOptimizer[]>;
5
+ /**
6
+ * Create an optimizer registry by merging custom optimizers with builtins.
7
+ * Custom optimizers for a type replace the entire chain for that type.
8
+ */
9
+ export declare function createOptimizers(custom?: Record<string, FormOptimizer[]>): Record<string, FormOptimizer[]>;
10
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/optimizers/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,aAAa,EACb,oBAAoB,EACpB,UAAU,EACV,mBAAmB,EACnB,cAAc,EACf,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,yBAAyB,EAAE,MAAM,kBAAkB,CAAC;AAE7D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AA0BhD,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,EAAE,CAA4B,CAAC;AAE3F;;;GAGG;AACH,wBAAgB,gBAAgB,CAC9B,MAAM,GAAE,MAAM,CAAC,MAAM,EAAE,aAAa,EAAE,CAAM,GAC3C,MAAM,CAAC,MAAM,EAAE,aAAa,EAAE,CAAC,CAEjC"}
@@ -0,0 +1,31 @@
1
+ export { createSchemaLiteCollector } from './schema-lite.js';
2
+ import { buildL1Optimizers } from './l1-decompose.js';
3
+ import { buildL2Optimizers } from './l2-native-rules.js';
4
+ /**
5
+ * Built-in optimizers, populated by L1/L2 registration.
6
+ * Keyed by def.type, each entry is an ordered chain of optimizers (L1 → L2).
7
+ */
8
+ function buildBuiltinOptimizers() {
9
+ const l1 = buildL1Optimizers();
10
+ const l2 = buildL2Optimizers();
11
+ const combined = { ...l1 };
12
+ // Append L2 optimizers after L1 for types that have both
13
+ for (const [type, optimizers] of Object.entries(l2)) {
14
+ if (combined[type]) {
15
+ combined[type] = [...combined[type], ...optimizers];
16
+ }
17
+ else {
18
+ combined[type] = optimizers;
19
+ }
20
+ }
21
+ return combined;
22
+ }
23
+ export const builtinOptimizers = buildBuiltinOptimizers();
24
+ /**
25
+ * Create an optimizer registry by merging custom optimizers with builtins.
26
+ * Custom optimizers for a type replace the entire chain for that type.
27
+ */
28
+ export function createOptimizers(custom = {}) {
29
+ return { ...builtinOptimizers, ...custom };
30
+ }
31
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/optimizers/index.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,yBAAyB,EAAE,MAAM,kBAAkB,CAAC;AAG7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAEzD;;;GAGG;AACH,SAAS,sBAAsB;IAC7B,MAAM,EAAE,GAAG,iBAAiB,EAAE,CAAC;IAC/B,MAAM,EAAE,GAAG,iBAAiB,EAAE,CAAC;IAE/B,MAAM,QAAQ,GAAoC,EAAE,GAAG,EAAE,EAAE,CAAC;IAE5D,yDAAyD;IACzD,KAAK,MAAM,CAAC,IAAI,EAAE,UAAU,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC;QACpD,IAAI,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;YACnB,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,EAAE,GAAG,UAAU,CAAC,CAAC;QACtD,CAAC;aAAM,CAAC;YACN,QAAQ,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC;QAC9B,CAAC;IACH,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,MAAM,CAAC,MAAM,iBAAiB,GAAoC,sBAAsB,EAAE,CAAC;AAE3F;;;GAGG;AACH,MAAM,UAAU,gBAAgB,CAC9B,MAAM,GAAoC,EAAE;IAE5C,OAAO,EAAE,GAAG,iBAAiB,EAAE,GAAG,MAAM,EAAE,CAAC;AAC7C,CAAC"}
@@ -0,0 +1,6 @@
1
+ import type { FormOptimizer } from './types.js';
2
+ /**
3
+ * Build the L1 optimizer registry: every type gets the same optimizer.
4
+ */
5
+ export declare function buildL1Optimizers(): Record<string, FormOptimizer[]>;
6
+ //# sourceMappingURL=l1-decompose.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"l1-decompose.d.ts","sourceRoot":"","sources":["../../src/optimizers/l1-decompose.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AA0DhD;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,MAAM,CAAC,MAAM,EAAE,aAAa,EAAE,CAAC,CAMnE"}