@form-instant/react-resolver-zod 1.5.1 → 1.5.2-rc.1

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/context.d.ts CHANGED
@@ -1,2 +1,3 @@
1
+ /// <reference types="react" />
1
2
  import { zodResolverProps } from './type';
2
- export declare const ZodResolverContext: import("use-context-selector").Context<zodResolverProps>;
3
+ export declare const ZodResolverContext: import("react").Context<zodResolverProps>;
@@ -1,11 +1,11 @@
1
- import { z } from 'zod';
1
+ import z from 'zod';
2
2
  import { FieldConfig, SuperRefineFunction } from './types';
3
3
  export declare const FIELD_CONFIG_SYMBOL: unique symbol;
4
4
  declare module 'zod' {
5
5
  interface ZodType {
6
- fieldConfig<AdditionalRenderable = null, FieldTypes = string>(config: FieldConfig<AdditionalRenderable, FieldTypes>): this;
6
+ fieldConfig<Ob extends Record<string, any>>(config: FieldConfig<Ob, keyof Ob>): this;
7
7
  }
8
8
  }
9
- export declare const extendZodWithFieldConfig: <AdditionalRenderable = null, FieldTypes = string>(zod: typeof z) => void;
10
- export declare const createZodSchemaFieldConfig: <AdditionalRenderable = null, FieldTypes = string>() => (config: FieldConfig<AdditionalRenderable, FieldTypes>) => SuperRefineFunction;
11
- export declare function getFieldConfigInZodStack(schema: z.ZodTypeAny): FieldConfig;
9
+ export declare const extendZodWithFieldConfig: (zod: typeof z) => void;
10
+ export declare const createZodSchemaFieldConfig: <Ob extends Record<string, any>, K extends keyof Ob>() => (config: FieldConfig<Ob, K>) => SuperRefineFunction;
11
+ export declare function getFieldConfigInZodStack(schema: z.ZodTypeAny): FieldConfig<any, any>;
@@ -1,3 +1,3 @@
1
1
  import { z } from 'zod';
2
2
  import { FieldConfig } from './types';
3
- export declare function inferFieldType(schema: z.ZodTypeAny, fieldType?: FieldConfig['fieldType']): string;
3
+ export declare function inferFieldType<Ob extends Record<string, any>, K extends keyof Ob>(schema: z.ZodTypeAny, fieldType?: FieldConfig<Ob, K>['fieldType']): string;
@@ -0,0 +1,5 @@
1
+ export * from './default-values';
2
+ export * from './field-config';
3
+ export * from './field-type-inference';
4
+ export * from './schema-parser';
5
+ export * from './types';
@@ -6,6 +6,6 @@ export interface ParsedSchema<AdditionalRenderable = null, FieldTypes = string>
6
6
  }
7
7
  export type SuperRefineFunction = () => unknown;
8
8
  export type Renderable<AdditionalRenderable = null> = string | number | boolean | null | undefined | AdditionalRenderable;
9
- export type FieldConfig<AdditionalRenderable = object, FieldTypes = string> = {
10
- fieldType?: FieldTypes;
11
- } & AdditionalRenderable;
9
+ export type FieldConfig<Ob, K extends keyof Ob> = {
10
+ fieldType: K;
11
+ } & Ob[K];
package/dist/index.d.ts CHANGED
@@ -1,5 +1,6 @@
1
1
  export * from './context';
2
2
  export * from './element';
3
+ export * from './funcs';
3
4
  export * from './provider';
4
5
  export * from './type';
5
6
  export * from './useSchema';
@@ -1,12 +1,11 @@
1
1
  'use strict';
2
2
 
3
- var useContextSelector = require('use-context-selector');
3
+ var react = require('react');
4
4
  var jsxRuntime = require('react/jsx-runtime');
5
5
  var reactInputMapping = require('@form-instant/react-input-mapping');
6
- var react = require('react');
7
6
  var zod = require('zod');
8
7
 
9
- var ZodResolverContext = /*#__PURE__*/useContextSelector.createContext({});
8
+ var ZodResolverContext = /*#__PURE__*/react.createContext({});
10
9
 
11
10
  function _extends() {
12
11
  return _extends = Object.assign ? Object.assign.bind() : function (n) {
@@ -21,22 +20,75 @@ function _objectWithoutPropertiesLoose(r, e) {
21
20
  if (null == r) return {};
22
21
  var t = {};
23
22
  for (var n in r) if ({}.hasOwnProperty.call(r, n)) {
24
- if (e.includes(n)) continue;
23
+ if (-1 !== e.indexOf(n)) continue;
25
24
  t[n] = r[n];
26
25
  }
27
26
  return t;
28
27
  }
29
28
 
30
29
  function getDefaultValueInZodStack(schema) {
31
- if (schema instanceof zod.z.ZodDefault) {
30
+ if (schema._def.typeName === 'ZodDefault') {
32
31
  return schema._def.defaultValue();
33
32
  }
34
- if (schema instanceof zod.z.ZodEffects) {
33
+ if (schema._def.typeName === 'ZodEffects') {
35
34
  return getDefaultValueInZodStack(schema.innerType());
36
35
  }
37
36
  return undefined;
38
37
  }
38
+ function getDefaultValues(schema) {
39
+ var objectSchema = schema instanceof zod.z.ZodEffects ? schema.innerType() : schema;
40
+ var shape = objectSchema.shape;
41
+ var defaultValues = {};
42
+ for (var _i = 0, _Object$entries = Object.entries(shape); _i < _Object$entries.length; _i++) {
43
+ var _Object$entries$_i = _Object$entries[_i],
44
+ key = _Object$entries$_i[0],
45
+ field = _Object$entries$_i[1];
46
+ var defaultValue = getDefaultValueInZodStack(field);
47
+ if (defaultValue !== undefined) {
48
+ defaultValues[key] = defaultValue;
49
+ }
50
+ }
51
+ return defaultValues;
52
+ }
39
53
 
54
+ var _excluded$1 = ["object", "array"];
55
+ var FIELD_CONFIG_SYMBOL = /*#__PURE__*/Symbol('GetFieldConfig');
56
+ var extendZodWithFieldConfig = function extendZodWithFieldConfig(zod) {
57
+ zod.ZodType.prototype.fieldConfig = function (config) {
58
+ this._def.fieldConfig = config;
59
+ return this;
60
+ };
61
+ var _zod = zod,
62
+ _object = _zod.object,
63
+ _array = _zod.array,
64
+ zodRest = _objectWithoutPropertiesLoose(_zod, _excluded$1);
65
+ zod = _extends({
66
+ object: function object() {
67
+ var schema = _object.apply(void 0, arguments);
68
+ schema._def["default"] = function () {
69
+ return {};
70
+ };
71
+ return schema;
72
+ },
73
+ array: function array() {
74
+ var schema = _array.apply(void 0, arguments);
75
+ schema._def["default"] = function () {
76
+ return [];
77
+ };
78
+ return schema;
79
+ }
80
+ }, zodRest);
81
+ };
82
+ var createZodSchemaFieldConfig = function createZodSchemaFieldConfig() {
83
+ return function (config) {
84
+ var refinementFunction = function refinementFunction() {
85
+ // Do nothing.
86
+ };
87
+ // @ts-expect-error This is a symbol and not a real value.
88
+ refinementFunction[FIELD_CONFIG_SYMBOL] = config;
89
+ return refinementFunction;
90
+ };
91
+ };
40
92
  function getFieldConfigInZodStack(schema) {
41
93
  // Verifica si el esquema tiene fieldConfig directamente
42
94
  if (schema._def.fieldConfig) {
@@ -66,28 +118,41 @@ function inferFieldType(schema, fieldType) {
66
118
 
67
119
  var _excluded = ["fieldType"];
68
120
  var typeMapping = {
69
- ZodDiscriminatedUnion: function ZodDiscriminatedUnion(baseSchema, name, history, dependecys) {
70
- var _baseSchema$_def = baseSchema._def,
71
- optionsMap = _baseSchema$_def.optionsMap,
72
- discriminator = _baseSchema$_def.discriminator,
73
- fieldConfig = _baseSchema$_def.fieldConfig;
121
+ ZodDiscriminatedUnion: function ZodDiscriminatedUnion(_ref) {
122
+ var schema = _ref.schema,
123
+ name = _ref.name,
124
+ history = _ref.history,
125
+ dependecys = _ref.dependecys;
126
+ var _schema$_def = schema._def,
127
+ optionsMap = _schema$_def.optionsMap,
128
+ discriminator = _schema$_def.discriminator,
129
+ fieldConfig = _schema$_def.fieldConfig;
74
130
  if (!Object.keys(dependecys).length) return [{}];
75
131
  var optionKey = dependecys[discriminator];
76
132
  var option = optionsMap.get(optionKey);
77
133
  if (!option) return [{}];
78
134
  var entries = Object.entries(option.shape);
79
- var fields = entries.filter(function (_ref) {
80
- var key = _ref[0];
135
+ var fields = entries.filter(function (_ref2) {
136
+ var key = _ref2[0];
81
137
  return key !== discriminator;
82
- }).map(function (_ref2) {
83
- var key = _ref2[0],
84
- field = _ref2[1];
85
- return parseField(key, field, [history, name].join('.'), dependecys);
138
+ }).map(function (_ref3) {
139
+ var key = _ref3[0],
140
+ field = _ref3[1];
141
+ var historyFormat = (history ? [history, name] : [name]).join('.');
142
+ if (historyFormat.charAt(0) === '.') historyFormat = historyFormat.substring(1);
143
+ return parseField({
144
+ name: key,
145
+ schema: field,
146
+ history: historyFormat,
147
+ dependecys: dependecys
148
+ });
86
149
  });
150
+ var historyFormat = (history ? [history, name, discriminator] : [name, discriminator]).join('.');
151
+ if (historyFormat.charAt(0) === '.') historyFormat = historyFormat.substring(1);
87
152
  fields.unshift({
88
153
  name: {
89
154
  current: discriminator,
90
- history: [history, name, discriminator].join('.')
155
+ history: historyFormat
91
156
  },
92
157
  type: 'discriminator',
93
158
  required: true,
@@ -99,24 +164,46 @@ var typeMapping = {
99
164
  });
100
165
  return fields;
101
166
  },
102
- ZodObject: function ZodObject(baseSchema, name, history, dependecys) {
103
- return Object.entries(baseSchema.shape).map(function (_ref3) {
104
- var key = _ref3[0],
105
- field = _ref3[1];
106
- return parseField(key, field, [history, name].join('.'), dependecys);
167
+ ZodObject: function ZodObject(_ref4) {
168
+ var schema = _ref4.schema,
169
+ name = _ref4.name,
170
+ history = _ref4.history,
171
+ dependecys = _ref4.dependecys;
172
+ var historyFormat = (history ? [history, name] : [name]).join('.');
173
+ if (historyFormat.charAt(0) === '.') historyFormat = historyFormat.substring(1);
174
+ return Object.entries(schema.shape).map(function (_ref5) {
175
+ var key = _ref5[0],
176
+ field = _ref5[1];
177
+ return parseField({
178
+ name: key,
179
+ schema: field,
180
+ history: historyFormat,
181
+ dependecys: dependecys
182
+ });
107
183
  });
108
184
  },
109
- ZodArray: function ZodArray(baseSchema, name, history, dependecys) {
110
- return [parseField('0', baseSchema._def.type, [history, name].join('.'), dependecys)];
185
+ ZodArray: function ZodArray(_ref6) {
186
+ var schema = _ref6.schema,
187
+ name = _ref6.name,
188
+ history = _ref6.history,
189
+ dependecys = _ref6.dependecys;
190
+ var historyFormat = (history ? [history, name] : [name]).join('.');
191
+ if (historyFormat.charAt(0) === '.') historyFormat = historyFormat.substring(1);
192
+ return [parseField({
193
+ name: '0',
194
+ schema: schema._def.type,
195
+ history: historyFormat,
196
+ dependecys: dependecys
197
+ })];
111
198
  }
112
199
  };
113
- function parseField(name, schema, history, dependecys) {
114
- if (history === void 0) {
115
- history = '';
116
- }
117
- if (dependecys === void 0) {
118
- dependecys = {};
119
- }
200
+ function parseField(_ref7) {
201
+ var _baseSchema$_def$minL, _baseSchema$_def$maxL;
202
+ var name = _ref7.name,
203
+ schema = _ref7.schema,
204
+ history = _ref7.history,
205
+ _ref7$dependecys = _ref7.dependecys,
206
+ dependecys = _ref7$dependecys === void 0 ? {} : _ref7$dependecys;
120
207
  var baseSchema = getBaseSchema(schema);
121
208
  var _getFieldConfigInZodS = getFieldConfigInZodStack(schema),
122
209
  fieldType = _getFieldConfigInZodS.fieldType,
@@ -136,20 +223,37 @@ function parseField(name, schema, history, dependecys) {
136
223
  });
137
224
  }
138
225
  }
226
+ var typeName = baseSchema._def.typeName;
139
227
  // Arrays and objects
140
- var getSubSchema = typeMapping[baseSchema._def.typeName];
141
- var subSchema = getSubSchema == null ? void 0 : getSubSchema(baseSchema, name, history, dependecys);
142
- if (baseSchema._def.typeName === 'ZodArray') {
143
- var _baseSchema$_def$minL, _baseSchema$_def$maxL;
144
- fieldConfig = _extends({
145
- min: ((_baseSchema$_def$minL = baseSchema._def.minLength) == null ? void 0 : _baseSchema$_def$minL.value) || 1,
146
- max: (_baseSchema$_def$maxL = baseSchema._def.maxLength) == null ? void 0 : _baseSchema$_def$maxL.value
147
- }, fieldConfig);
228
+ var getSubSchema = typeMapping[typeName];
229
+ var subSchema = getSubSchema == null ? void 0 : getSubSchema({
230
+ name: name,
231
+ schema: baseSchema,
232
+ history: history,
233
+ dependecys: dependecys
234
+ });
235
+ if (typeName === 'ZodDiscriminatedUnion') {
236
+ var _baseSchema$_def = baseSchema._def,
237
+ optionsMap = _baseSchema$_def.optionsMap,
238
+ discriminator = _baseSchema$_def.discriminator;
239
+ var optionKey = dependecys[discriminator];
240
+ if (optionKey) {
241
+ var option = optionsMap.get(optionKey);
242
+ if (option._def.fieldConfig) {
243
+ fieldConfig = _extends({}, fieldConfigBase, option._def.fieldConfig);
244
+ }
245
+ }
148
246
  }
247
+ if (type === 'array') fieldConfig = _extends({
248
+ min: ((_baseSchema$_def$minL = baseSchema._def.minLength) == null ? void 0 : _baseSchema$_def$minL.value) || 1,
249
+ max: (_baseSchema$_def$maxL = baseSchema._def.maxLength) == null ? void 0 : _baseSchema$_def$maxL.value
250
+ }, fieldConfig);
251
+ var historyFormat = (history ? [history, name] : [name]).join('.');
252
+ if (historyFormat.charAt(0) === '.') historyFormat = historyFormat.substring(1);
149
253
  var resp = {
150
254
  name: {
151
255
  current: name,
152
- history: [history, name].join('.')
256
+ history: historyFormat
153
257
  },
154
258
  type: type,
155
259
  required: !schema.isOptional(),
@@ -171,13 +275,18 @@ function getBaseSchema(schema) {
171
275
  return schema;
172
276
  }
173
277
  var parseSchema = function parseSchema(S) {
278
+ var _objectSchema$_def$fi;
174
279
  var objectSchema = S instanceof zod.z.ZodEffects ? S.innerType() : S;
175
280
  var shape = objectSchema.shape;
176
- var dependecys = objectSchema._def.fieldConfig;
177
- var fields = Object.fromEntries(Object.entries(shape).map(function (_ref4) {
178
- var key = _ref4[0],
179
- field = _ref4[1];
180
- return [key, parseField(key, field, '', dependecys)];
281
+ var dependecys = ((_objectSchema$_def$fi = objectSchema._def.fieldConfig) == null ? void 0 : _objectSchema$_def$fi.dp) || {};
282
+ var fields = Object.fromEntries(Object.entries(shape).map(function (_ref8) {
283
+ var key = _ref8[0],
284
+ field = _ref8[1];
285
+ return [key, parseField({
286
+ name: key,
287
+ schema: field,
288
+ dependecys: dependecys
289
+ })];
181
290
  }));
182
291
  return {
183
292
  fields: fields
@@ -185,7 +294,7 @@ var parseSchema = function parseSchema(S) {
185
294
  };
186
295
 
187
296
  var useSchemaBase = function useSchemaBase() {
188
- return useContextSelector.useContext(ZodResolverContext);
297
+ return react.useContext(ZodResolverContext);
189
298
  };
190
299
  var useFields = function useFields(key) {
191
300
  var S = useSchemaBase();
@@ -193,22 +302,106 @@ var useFields = function useFields(key) {
193
302
  fields = _parseSchema.fields;
194
303
  return fields[key];
195
304
  };
305
+ var _generateInitialValues = function generateInitialValues(schema, dp) {
306
+ try {
307
+ var shape = function () {
308
+ if (schema._def.typeName === 'ZodEffects') return schema.innerType().shape;
309
+ if (schema._def.typeName === 'ZodObject') return schema.shape;
310
+ var option = schema._def.optionsMap.get(dp[schema._def.discriminator]);
311
+ if (!option) throw new Error('No option found');
312
+ return option.shape;
313
+ }();
314
+ var initialValues = {};
315
+ var _loop = function _loop() {
316
+ var key = _Object$keys[_i];
317
+ var fieldSchema = shape[key];
318
+ var result = fieldSchema.safeParse(undefined);
319
+ // Si tiene valor por defecto
320
+ if (result.success) {
321
+ initialValues[key] = result.data;
322
+ return 0; // continue
323
+ }
324
+ if (Object.keys(dp).includes(key)) {
325
+ initialValues[key] = dp[key];
326
+ return 0; // continue
327
+ }
328
+ // Inferir tipo para campos requeridos sin default
329
+ var fieldConfig = {
330
+ ZodString: function ZodString() {
331
+ initialValues[key] = '';
332
+ },
333
+ ZodNumber: function ZodNumber() {
334
+ initialValues[key] = 0;
335
+ },
336
+ ZodBoolean: function ZodBoolean() {
337
+ initialValues[key] = false;
338
+ },
339
+ ZodDate: function ZodDate() {
340
+ initialValues[key] = null;
341
+ },
342
+ ZodArray: function ZodArray() {
343
+ initialValues[key] = [];
344
+ },
345
+ ZodObject: function ZodObject() {
346
+ initialValues[key] = _generateInitialValues(fieldSchema, dp);
347
+ },
348
+ ZodDiscriminatedUnion: function ZodDiscriminatedUnion() {
349
+ var option = fieldSchema._def.optionsMap.get(dp[fieldSchema._def.discriminator]);
350
+ if (option) {
351
+ initialValues[key] = _generateInitialValues(option, dp);
352
+ } else {
353
+ initialValues[key] = null;
354
+ }
355
+ }
356
+ };
357
+ var fieldType = fieldSchema._def.typeName;
358
+ var fieldHandler = fieldConfig[fieldType];
359
+ if (fieldHandler) {
360
+ fieldHandler();
361
+ return 0; // continue
362
+ }
363
+ initialValues[key] = null;
364
+ },
365
+ _ret;
366
+ for (var _i = 0, _Object$keys = Object.keys(shape); _i < _Object$keys.length; _i++) {
367
+ _ret = _loop();
368
+ if (_ret === 0) continue;
369
+ }
370
+ return initialValues;
371
+ } catch (error) {
372
+ console.log('🔴 initialValues error', error);
373
+ if (error instanceof Error) {
374
+ console.log(error.cause);
375
+ console.log(error.message);
376
+ }
377
+ return {};
378
+ }
379
+ };
196
380
  var useSchema = function useSchema(cbP, dp) {
197
381
  var schema = react.useMemo(function () {
198
- return cbP(dp).fieldConfig(dp);
199
- }, [dp]);
382
+ return cbP(dp).fieldConfig(_extends({
383
+ dp: dp
384
+ }, cbP(dp).fieldConfig));
385
+ }, [cbP, JSON.stringify(dp)]);
386
+ var initialValues = react.useMemo(function () {
387
+ return _generateInitialValues(schema, dp);
388
+ }, [schema, JSON.stringify(dp)]);
200
389
  return {
201
- schema: schema
390
+ schema: schema,
391
+ initialValues: initialValues
202
392
  };
203
393
  };
204
394
 
205
395
  var FormInstantElement = function FormInstantElement(_ref) {
396
+ var _field$fieldConfig;
206
397
  var name = _ref.name;
207
398
  var field = useFields(name);
208
- var inputs = Object.values(field.schema || {});
209
399
  var id = react.useId();
400
+ if ((_field$fieldConfig = field.fieldConfig) != null && _field$fieldConfig.type || !['object', 'transform'].includes(field.type)) return jsxRuntime.jsx(reactInputMapping.ElementMapping, {
401
+ formProps: field
402
+ });
210
403
  return jsxRuntime.jsx(jsxRuntime.Fragment, {
211
- children: inputs.map(function (props) {
404
+ children: Object.values(field.schema || {}).map(function (props) {
212
405
  var _props$name;
213
406
  return jsxRuntime.jsx(react.Fragment, {
214
407
  children: jsxRuntime.jsx(reactInputMapping.ElementMapping, {
@@ -219,18 +412,27 @@ var FormInstantElement = function FormInstantElement(_ref) {
219
412
  });
220
413
  };
221
414
 
222
- var FormInstantProvider = /*#__PURE__*/react.memo(function (_ref) {
415
+ var FormInstantProvider = function FormInstantProvider(_ref) {
223
416
  var children = _ref.children,
224
417
  schema = _ref.schema;
225
418
  return jsxRuntime.jsx(ZodResolverContext.Provider, {
226
419
  value: schema,
227
420
  children: children
228
421
  });
229
- });
422
+ };
230
423
 
424
+ exports.FIELD_CONFIG_SYMBOL = FIELD_CONFIG_SYMBOL;
231
425
  exports.FormInstantElement = FormInstantElement;
232
426
  exports.FormInstantProvider = FormInstantProvider;
233
427
  exports.ZodResolverContext = ZodResolverContext;
428
+ exports.createZodSchemaFieldConfig = createZodSchemaFieldConfig;
429
+ exports.extendZodWithFieldConfig = extendZodWithFieldConfig;
430
+ exports.generateInitialValues = _generateInitialValues;
431
+ exports.getDefaultValueInZodStack = getDefaultValueInZodStack;
432
+ exports.getDefaultValues = getDefaultValues;
433
+ exports.getFieldConfigInZodStack = getFieldConfigInZodStack;
434
+ exports.inferFieldType = inferFieldType;
435
+ exports.parseSchema = parseSchema;
234
436
  exports.useFields = useFields;
235
437
  exports.useSchema = useSchema;
236
438
  //# sourceMappingURL=react-resolver-zod.cjs.development.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"react-resolver-zod.cjs.development.js","sources":["../src/context.tsx","../src/funcs/default-values.ts","../src/funcs/field-config.ts","../src/funcs/field-type-inference.ts","../src/funcs/schema-parser.ts","../src/useSchema.tsx","../src/element.tsx","../src/provider.tsx"],"sourcesContent":["import { createContext } from 'use-context-selector';\nimport { zodResolverProps } from './type';\n\nexport const ZodResolverContext = createContext<zodResolverProps>({} as zodResolverProps);\n","import { z } from 'zod';\nimport { ZodObjectOrWrapped } from './types';\n\nexport function getDefaultValueInZodStack(schema: z.ZodTypeAny): any {\n if (schema instanceof z.ZodDefault) {\n return schema._def.defaultValue();\n }\n\n if (schema instanceof z.ZodEffects) {\n return getDefaultValueInZodStack(schema.innerType());\n }\n\n return undefined;\n}\n\nexport function getDefaultValues(schema: ZodObjectOrWrapped): Record<string, any> {\n const objectSchema = schema instanceof z.ZodEffects ? schema.innerType() : schema;\n const shape = objectSchema.shape;\n\n const defaultValues: Record<string, any> = {};\n\n for (const [key, field] of Object.entries(shape)) {\n const defaultValue = getDefaultValueInZodStack(field as z.ZodTypeAny);\n if (defaultValue !== undefined) {\n defaultValues[key] = defaultValue;\n }\n }\n\n return defaultValues;\n}\n","import { z } from 'zod';\nimport { FieldConfig, SuperRefineFunction } from './types';\nexport const FIELD_CONFIG_SYMBOL = Symbol('GetFieldConfig');\n\ndeclare module 'zod' {\n interface ZodType {\n fieldConfig<AdditionalRenderable = null, FieldTypes = string>(\n config: FieldConfig<AdditionalRenderable, FieldTypes>,\n ): this;\n }\n}\n\nexport const extendZodWithFieldConfig = <AdditionalRenderable = null, FieldTypes = string>(\n zod: typeof z,\n) => {\n (zod.ZodType.prototype as any).fieldConfig = function (\n config: FieldConfig<AdditionalRenderable, FieldTypes>,\n ) {\n this._def.fieldConfig = config;\n return this;\n };\n};\n\nexport const createZodSchemaFieldConfig =\n <AdditionalRenderable = null, FieldTypes = string>() =>\n (config: FieldConfig<AdditionalRenderable, FieldTypes>): SuperRefineFunction => {\n const refinementFunction: SuperRefineFunction = () => {\n // Do nothing.\n };\n\n // @ts-expect-error This is a symbol and not a real value.\n refinementFunction[FIELD_CONFIG_SYMBOL] = config;\n\n return refinementFunction;\n };\n\nexport function getFieldConfigInZodStack(schema: z.ZodTypeAny): FieldConfig {\n // Verifica si el esquema tiene fieldConfig directamente\n if (schema._def.fieldConfig) {\n return schema._def.fieldConfig as FieldConfig;\n }\n\n // Si el esquema es un ZodEffects, busca en el innerType\n if ('innerType' in schema._def) {\n return getFieldConfigInZodStack(schema._def.innerType as z.ZodAny);\n }\n\n // Si el esquema es un ZodEffects con un schema interno, busca en el schema\n if ('schema' in schema._def) {\n return getFieldConfigInZodStack(schema._def.schema as z.ZodAny);\n }\n\n // Si no se encuentra fieldConfig, retorna un objeto vacío\n return {} as FieldConfig;\n}\n","import { z } from 'zod';\nimport { FieldConfig } from './types';\n\nexport function inferFieldType(schema: z.ZodTypeAny, fieldType?: FieldConfig['fieldType']): string {\n if (fieldType) {\n return fieldType;\n }\n\n const type = schema._def.typeName;\n\n const zodToInputType = new Map([\n ['ZodObject', 'object'],\n ['ZodString', 'string'],\n ['ZodNumber', 'number'],\n ['ZodBoolean', 'boolean'],\n ['ZodDate', 'date'],\n ['ZodEnum', 'select'],\n ['ZodNativeEnum', 'select'],\n ['ZodArray', 'array'],\n ]);\n\n const match = zodToInputType.get(type);\n\n return match || 'string'; // Default to string for unknown types\n}\n","import { ParsedField } from '@form-instant/react-input-mapping';\nimport { z } from 'zod';\nimport { getDefaultValueInZodStack } from './default-values';\nimport { getFieldConfigInZodStack } from './field-config';\nimport { inferFieldType } from './field-type-inference';\nimport { ParsedSchema, ZodObjectOrWrapped } from './types';\n\nconst typeMapping = {\n ZodDiscriminatedUnion(\n baseSchema: z.ZodTypeAny,\n name: string,\n history: string,\n dependecys: Record<string, any>,\n ) {\n const { optionsMap, discriminator, fieldConfig } = baseSchema._def;\n\n if (!Object.keys(dependecys).length) return [{}] as ParsedField<any, string>[];\n\n const optionKey = dependecys[discriminator];\n const option = optionsMap.get(optionKey);\n\n if (!option) return [{}] as ParsedField<any, string>[];\n\n const entries = Object.entries(option.shape);\n\n const fields = entries\n .filter(([key]) => key !== discriminator)\n .map(([key, field]) => {\n return parseField(\n key,\n field as z.ZodTypeAny,\n [history, name].join('.'),\n dependecys,\n );\n });\n\n fields.unshift({\n name: {\n current: discriminator,\n history: [history, name, discriminator].join('.'),\n },\n type: 'discriminator',\n required: true,\n default: optionKey,\n fieldConfig,\n options: Array.from(optionsMap.keys()).map((key) => [String(key), String(key)]),\n });\n\n return fields;\n },\n\n ZodObject(\n baseSchema: z.ZodTypeAny,\n name: string,\n history: string,\n dependecys: Record<string, any>,\n ) {\n return Object.entries((baseSchema as any).shape).map(([key, field]) =>\n parseField(key, field as z.ZodTypeAny, [history, name].join('.'), dependecys),\n );\n },\n\n ZodArray(\n baseSchema: z.ZodTypeAny,\n name: string,\n history: string,\n dependecys: Record<string, any>,\n ) {\n return [parseField('0', baseSchema._def.type, [history, name].join('.'), dependecys)];\n },\n};\n\nfunction parseField(\n name: string,\n schema: z.ZodTypeAny,\n history: string = '',\n dependecys: Record<string, any> = {},\n): ParsedField<any> {\n const baseSchema = getBaseSchema(schema);\n const { fieldType, ...fieldConfigBase } = getFieldConfigInZodStack(schema);\n const type = inferFieldType(baseSchema, fieldType);\n const defaultValue = getDefaultValueInZodStack(schema);\n\n let fieldConfig = fieldConfigBase;\n\n // Enums\n const options = baseSchema._def.values;\n let optionValues: [string, string][] = [];\n if (options) {\n if (!Array.isArray(options)) {\n optionValues = Object.entries(options);\n } else {\n optionValues = options.map((value) => [value, value]);\n }\n }\n\n // Arrays and objects\n const getSubSchema = typeMapping[baseSchema._def.typeName as keyof typeof typeMapping];\n\n const subSchema = getSubSchema?.(baseSchema, name, history, dependecys);\n\n if (baseSchema._def.typeName === 'ZodArray') {\n fieldConfig = {\n min: baseSchema._def.minLength?.value || 1,\n max: baseSchema._def.maxLength?.value,\n ...fieldConfig,\n };\n }\n\n const resp = {\n name: { current: name, history: [history, name].join('.') },\n type,\n required: !schema.isOptional(),\n default: defaultValue,\n fieldConfig,\n options: optionValues,\n schema: subSchema,\n description: baseSchema.description,\n };\n\n return resp;\n}\n\nfunction getBaseSchema<ChildType extends z.ZodAny | z.ZodTypeAny | z.AnyZodObject = z.ZodAny>(\n schema: ChildType | z.ZodEffects<ChildType>,\n): ChildType {\n if ('innerType' in schema._def) {\n return getBaseSchema(schema._def.innerType as ChildType);\n }\n if ('schema' in schema._def) {\n return getBaseSchema(schema._def.schema as ChildType);\n }\n\n return schema as ChildType;\n}\n\nexport const parseSchema = (S: ZodObjectOrWrapped): ParsedSchema => {\n const objectSchema = S instanceof z.ZodEffects ? S.innerType() : S;\n const shape = objectSchema.shape;\n\n const dependecys = (objectSchema._def as any).fieldConfig;\n\n const fields = Object.fromEntries(\n Object.entries(shape).map(([key, field]) => [\n key,\n parseField(key, field as z.ZodTypeAny, '', dependecys),\n ]),\n );\n\n return { fields };\n};\n","import { useMemo } from 'react';\nimport { useContext } from 'use-context-selector';\nimport { ZodEffects, ZodObject } from 'zod';\nimport { ZodResolverContext } from './context';\nimport { parseSchema } from './funcs/schema-parser';\n\nconst useSchemaBase = () =>\n useContext(ZodResolverContext) as ZodObject<never, never> | ZodEffects<never, never>;\n\nexport const useFields = <Sc extends Record<string, any>>(key: keyof Sc) => {\n const S = useSchemaBase();\n\n const { fields } = parseSchema(S);\n\n return fields[key as string];\n};\n\ntype Data =\n | Zod.AnyZodObject\n | Zod.ZodEffects<Zod.AnyZodObject>\n | Zod.ZodDiscriminatedUnion<any, any>;\n\ntype DP = Record<string, any>;\n\nexport const useSchema = (cbP: (dp: DP, preData?: Data) => Data, dp: DP) => {\n const schema = useMemo(() => cbP(dp).fieldConfig(dp), [dp]);\n\n return { schema };\n};\n","import { ElementMapping } from '@form-instant/react-input-mapping';\nimport { Fragment, useId } from 'react';\nimport { useFields } from './useSchema';\n\nexport interface ElementProps<Schema extends Record<string, any>> {\n name: keyof Schema;\n}\n\nexport const FormInstantElement = <S extends Record<string, any>>({ name }: ElementProps<S>) => {\n const field = useFields(name);\n\n const inputs = Object.values(field.schema || {});\n\n const id = useId();\n\n return (\n <>\n {inputs.map((props) => {\n return (\n <Fragment key={`${id}-${props.name?.history || ''}`}>\n <ElementMapping formProps={props} />\n </Fragment>\n );\n })}\n </>\n );\n};\n","import { FC, memo, ReactNode } from 'react';\nimport { ZodResolverContext } from './context';\nimport { zodResolverProps } from './type';\nexport const FormInstantProvider: FC<{\n schema: zodResolverProps;\n children: ReactNode;\n}> = memo(({ children, schema }) => {\n return <ZodResolverContext.Provider value={schema}>{children}</ZodResolverContext.Provider>;\n});\n"],"names":["ZodResolverContext","createContext","getDefaultValueInZodStack","schema","z","ZodDefault","_def","defaultValue","ZodEffects","innerType","undefined","getFieldConfigInZodStack","fieldConfig","inferFieldType","fieldType","type","typeName","zodToInputType","Map","match","get","typeMapping","ZodDiscriminatedUnion","baseSchema","name","history","dependecys","_baseSchema$_def","optionsMap","discriminator","Object","keys","length","optionKey","option","entries","shape","fields","filter","_ref","key","map","_ref2","field","parseField","join","unshift","current","required","options","Array","from","String","ZodObject","_ref3","ZodArray","getBaseSchema","_getFieldConfigInZodS","fieldConfigBase","_objectWithoutPropertiesLoose","_excluded","values","optionValues","isArray","value","getSubSchema","subSchema","_baseSchema$_def$minL","_baseSchema$_def$maxL","_extends","min","minLength","max","maxLength","resp","isOptional","description","parseSchema","S","objectSchema","fromEntries","_ref4","useSchemaBase","useContext","useFields","_parseSchema","useSchema","cbP","dp","useMemo","FormInstantElement","inputs","id","useId","_jsx","props","_props$name","Fragment","children","ElementMapping","formProps","FormInstantProvider","memo","Provider"],"mappings":"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"}
1
+ {"version":3,"file":"react-resolver-zod.cjs.development.js","sources":["../src/context.tsx","../src/funcs/default-values.ts","../src/funcs/field-config.ts","../src/funcs/field-type-inference.ts","../src/funcs/schema-parser.ts","../src/useSchema.tsx","../src/element.tsx","../src/provider.tsx"],"sourcesContent":["import { createContext } from 'react';\nimport { zodResolverProps } from './type';\n\nexport const ZodResolverContext = createContext<zodResolverProps>({} as zodResolverProps);\n","import { z, ZodEffects } from 'zod';\nimport { ZodObjectOrWrapped } from './types';\n\nexport function getDefaultValueInZodStack(schema: z.ZodTypeAny): any {\n if (schema._def.typeName === 'ZodDefault') {\n return schema._def.defaultValue();\n }\n\n if (schema._def.typeName === 'ZodEffects') {\n return getDefaultValueInZodStack((schema as ZodEffects<any>).innerType());\n }\n\n return undefined;\n}\n\nexport function getDefaultValues(schema: ZodObjectOrWrapped): Record<string, any> {\n const objectSchema = schema instanceof z.ZodEffects ? schema.innerType() : schema;\n const shape = objectSchema.shape;\n\n const defaultValues: Record<string, any> = {};\n\n for (const [key, field] of Object.entries(shape)) {\n const defaultValue = getDefaultValueInZodStack(field as z.ZodTypeAny);\n if (defaultValue !== undefined) {\n defaultValues[key] = defaultValue;\n }\n }\n\n return defaultValues;\n}\n","import z from 'zod';\nimport { FieldConfig, SuperRefineFunction } from './types';\n\nexport const FIELD_CONFIG_SYMBOL = Symbol('GetFieldConfig');\n\ndeclare module 'zod' {\n interface ZodType {\n fieldConfig<Ob extends Record<string, any>>(config: FieldConfig<Ob, keyof Ob>): this;\n }\n}\n\nexport const extendZodWithFieldConfig = (zod: typeof z) => {\n (zod.ZodType.prototype as any).fieldConfig = function (config: FieldConfig<any, any>) {\n this._def.fieldConfig = config;\n return this;\n };\n\n const { object, array, ...zodRest } = zod;\n\n zod = {\n object: ((...args: [any]) => {\n const schema = object(...args);\n (schema._def as any).default = () => ({});\n return schema;\n }) as any,\n array: ((...args: [any]) => {\n const schema = array(...args);\n (schema._def as any).default = () => [];\n return schema;\n }) as any,\n ...zodRest,\n };\n};\n\nexport const createZodSchemaFieldConfig =\n <Ob extends Record<string, any>, K extends keyof Ob>() =>\n (config: FieldConfig<Ob, K>): SuperRefineFunction => {\n const refinementFunction: SuperRefineFunction = () => {\n // Do nothing.\n };\n\n // @ts-expect-error This is a symbol and not a real value.\n refinementFunction[FIELD_CONFIG_SYMBOL] = config;\n\n return refinementFunction;\n };\n\nexport function getFieldConfigInZodStack(schema: z.ZodTypeAny): FieldConfig<any, any> {\n // Verifica si el esquema tiene fieldConfig directamente\n if (schema._def.fieldConfig) {\n return schema._def.fieldConfig as FieldConfig<any, any>;\n }\n\n // Si el esquema es un ZodEffects, busca en el innerType\n if ('innerType' in schema._def) {\n return getFieldConfigInZodStack(schema._def.innerType as z.ZodAny);\n }\n\n // Si el esquema es un ZodEffects con un schema interno, busca en el schema\n if ('schema' in schema._def) {\n return getFieldConfigInZodStack(schema._def.schema as z.ZodAny);\n }\n\n // Si no se encuentra fieldConfig, retorna un objeto vacío\n return {} as FieldConfig<any, any>;\n}\n","import { z } from 'zod';\nimport { FieldConfig } from './types';\n\nexport function inferFieldType<Ob extends Record<string, any>, K extends keyof Ob>(\n schema: z.ZodTypeAny,\n fieldType?: FieldConfig<Ob, K>['fieldType']\n): string {\n if (fieldType) {\n return fieldType;\n }\n\n const type = schema._def.typeName;\n\n const zodToInputType = new Map([\n ['ZodObject', 'object'],\n ['ZodString', 'string'],\n ['ZodNumber', 'number'],\n ['ZodBoolean', 'boolean'],\n ['ZodDate', 'date'],\n ['ZodEnum', 'select'],\n ['ZodNativeEnum', 'select'],\n ['ZodArray', 'array'],\n ]);\n\n const match = zodToInputType.get(type);\n\n return match || 'string'; // Default to string for unknown types\n}\n","import { ParsedField } from '@form-instant/react-input-mapping';\nimport { z } from 'zod';\nimport { getDefaultValueInZodStack } from './default-values';\nimport { getFieldConfigInZodStack } from './field-config';\nimport { inferFieldType } from './field-type-inference';\nimport { ParsedSchema, ZodObjectOrWrapped } from './types';\n\ninterface typeMappingProps {\n schema: z.ZodTypeAny;\n name: string;\n history?: string;\n dependecys: Record<string, any>;\n}\n\ntype typeMappingType = Record<\n 'ZodDiscriminatedUnion' | 'ZodObject' | 'ZodArray',\n (p: typeMappingProps) => ParsedField<any, string>[]\n>;\n\nconst typeMapping: typeMappingType = {\n ZodDiscriminatedUnion({ schema, name, history, dependecys }) {\n const { optionsMap, discriminator, fieldConfig } = schema._def;\n\n if (!Object.keys(dependecys).length) return [{}] as ParsedField<any, string>[];\n\n const optionKey = dependecys[discriminator];\n const option = optionsMap.get(optionKey);\n\n if (!option) return [{}] as ParsedField<any, string>[];\n\n const entries = Object.entries(option.shape);\n\n const fields = entries\n .filter(([key]) => key !== discriminator)\n .map(([key, field]) => {\n let historyFormat = (history ? [history, name] : [name]).join('.');\n\n if (historyFormat.charAt(0) === '.') historyFormat = historyFormat.substring(1);\n return parseField({\n name: key,\n schema: field as z.ZodTypeAny,\n history: historyFormat,\n dependecys,\n });\n });\n\n let historyFormat = (history ? [history, name, discriminator] : [name, discriminator]).join(\n '.',\n );\n\n if (historyFormat.charAt(0) === '.') historyFormat = historyFormat.substring(1);\n\n fields.unshift({\n name: {\n current: discriminator,\n history: historyFormat,\n },\n type: 'discriminator',\n required: true,\n default: optionKey,\n fieldConfig,\n options: Array.from(optionsMap.keys()).map((key) => [String(key), String(key)]),\n });\n\n return fields;\n },\n\n ZodObject({ schema, name, history, dependecys }) {\n let historyFormat = (history ? [history, name] : [name]).join('.');\n\n if (historyFormat.charAt(0) === '.') historyFormat = historyFormat.substring(1);\n return Object.entries((schema as any).shape).map(([key, field]) =>\n parseField({\n name: key,\n schema: field as z.ZodTypeAny,\n history: historyFormat,\n dependecys,\n }),\n );\n },\n\n ZodArray({ schema, name, history, dependecys }) {\n let historyFormat = (history ? [history, name] : [name]).join('.');\n\n if (historyFormat.charAt(0) === '.') historyFormat = historyFormat.substring(1);\n return [\n parseField({\n name: '0',\n schema: schema._def.type,\n history: historyFormat,\n dependecys,\n }),\n ];\n },\n};\n\nfunction parseField({\n name,\n schema,\n history,\n dependecys = {},\n}: typeMappingProps): ParsedField<any> {\n const baseSchema = getBaseSchema(schema);\n const { fieldType, ...fieldConfigBase } = getFieldConfigInZodStack(schema);\n const type = inferFieldType(baseSchema, fieldType);\n const defaultValue = getDefaultValueInZodStack(schema);\n\n let fieldConfig = fieldConfigBase;\n\n // Enums\n const options = baseSchema._def.values;\n let optionValues: [string, string][] = [];\n if (options) {\n if (!Array.isArray(options)) {\n optionValues = Object.entries(options);\n } else {\n optionValues = options.map((value) => [value, value]);\n }\n }\n\n const { typeName } = baseSchema._def;\n\n // Arrays and objects\n const getSubSchema = typeMapping[typeName as keyof typeof typeMapping];\n\n const subSchema = getSubSchema?.({\n name,\n schema: baseSchema,\n history,\n dependecys,\n });\n\n if (typeName === 'ZodDiscriminatedUnion') {\n const { optionsMap, discriminator } = baseSchema._def;\n\n const optionKey = dependecys[discriminator];\n\n if (optionKey) {\n const option = optionsMap.get(optionKey);\n\n if (option._def.fieldConfig) {\n fieldConfig = {\n ...fieldConfigBase,\n ...option._def.fieldConfig,\n };\n }\n }\n }\n\n if (type === 'array')\n fieldConfig = {\n min: baseSchema._def.minLength?.value || 1,\n max: baseSchema._def.maxLength?.value,\n ...fieldConfig,\n };\n\n let historyFormat = (history ? [history, name] : [name]).join('.');\n\n if (historyFormat.charAt(0) === '.') historyFormat = historyFormat.substring(1);\n\n const resp = {\n name: {\n current: name,\n history: historyFormat,\n },\n type,\n required: !schema.isOptional(),\n default: defaultValue,\n fieldConfig,\n options: optionValues,\n schema: subSchema,\n description: baseSchema.description,\n };\n\n return resp;\n}\n\nfunction getBaseSchema<ChildType extends z.ZodAny | z.ZodTypeAny | z.AnyZodObject = z.ZodAny>(\n schema: ChildType | z.ZodEffects<ChildType>,\n): ChildType {\n if ('innerType' in schema._def) {\n return getBaseSchema(schema._def.innerType as ChildType);\n }\n if ('schema' in schema._def) {\n return getBaseSchema(schema._def.schema as ChildType);\n }\n\n return schema as ChildType;\n}\n\nexport const parseSchema = (S: ZodObjectOrWrapped): ParsedSchema => {\n const objectSchema = S instanceof z.ZodEffects ? S.innerType() : S;\n const shape = objectSchema.shape;\n\n const dependecys = (objectSchema._def as any).fieldConfig?.dp || {};\n\n const fields = Object.fromEntries(\n Object.entries(shape).map(([key, field]) => [\n key,\n parseField({\n name: key,\n schema: field as z.ZodTypeAny,\n dependecys,\n }),\n ]),\n );\n\n return { fields };\n};\n","import { useContext, useMemo } from 'react';\nimport { z, ZodEffects, ZodObject } from 'zod';\nimport { ZodResolverContext } from './context';\nimport { parseSchema } from './funcs/schema-parser';\n\nconst useSchemaBase = () =>\n useContext(ZodResolverContext) as ZodObject<never, never> | ZodEffects<never, never>;\n\nexport const useFields = <Sc extends Record<string, any>>(key: keyof Sc) => {\n const S = useSchemaBase();\n\n const { fields } = parseSchema(S);\n\n return fields[key as string];\n};\n\ntype Data = z.AnyZodObject | z.ZodEffects<z.AnyZodObject> | z.ZodDiscriminatedUnion<any, any>;\n\ntype DP = Record<string, any>;\n\nexport const generateInitialValues = <S extends Record<string, any>>(schema: Data, dp: DP): S => {\n try {\n const shape = (() => {\n if (schema._def.typeName === 'ZodEffects')\n return (schema as z.ZodEffects<any>).innerType().shape;\n if (schema._def.typeName === 'ZodObject') return (schema as z.ZodObject<any>).shape;\n\n const option = schema._def.optionsMap.get(dp[schema._def.discriminator]);\n\n if (!option) throw new Error('No option found');\n\n return option.shape;\n })();\n\n const initialValues: Record<string, any> = {};\n\n for (const key of Object.keys(shape)) {\n const fieldSchema = shape[key];\n const result = fieldSchema.safeParse(undefined);\n\n // Si tiene valor por defecto\n if (result.success) {\n initialValues[key] = result.data;\n continue;\n }\n\n if (Object.keys(dp).includes(key)) {\n initialValues[key] = dp[key];\n continue;\n }\n // Inferir tipo para campos requeridos sin default\n const fieldConfig = {\n ZodString() {\n initialValues[key] = '';\n },\n ZodNumber() {\n initialValues[key] = 0;\n },\n ZodBoolean() {\n initialValues[key] = false;\n },\n ZodDate() {\n initialValues[key] = null;\n },\n ZodArray() {\n initialValues[key] = [];\n },\n ZodObject() {\n initialValues[key] = generateInitialValues(fieldSchema, dp);\n },\n ZodDiscriminatedUnion() {\n const option = fieldSchema._def.optionsMap.get(\n dp[fieldSchema._def.discriminator],\n );\n\n if (option) {\n initialValues[key] = generateInitialValues(option, dp);\n } else {\n initialValues[key] = null;\n }\n },\n };\n\n const fieldType = fieldSchema._def.typeName;\n const fieldHandler = fieldConfig[fieldType as keyof typeof fieldConfig];\n\n if (fieldHandler) {\n fieldHandler();\n continue;\n }\n\n initialValues[key] = null;\n }\n\n return initialValues as S;\n } catch (error) {\n console.log('🔴 initialValues error', error);\n\n if (error instanceof Error) {\n console.log(error.cause);\n console.log(error.message);\n }\n\n return {} as S;\n }\n};\n\nexport const useSchema = <S extends Record<string, any>>(\n cbP: (dp: DP, preData?: Data) => Data,\n dp: DP,\n) => {\n const schema = useMemo(\n () => (cbP(dp) as any).fieldConfig({ dp, ...cbP(dp).fieldConfig }),\n [cbP, JSON.stringify(dp)],\n );\n\n const initialValues = useMemo(\n () => generateInitialValues(schema, dp) as S,\n [schema, JSON.stringify(dp)],\n );\n\n return { schema, initialValues };\n};\n","import { ElementMapping } from '@form-instant/react-input-mapping';\nimport { Fragment, useId } from 'react';\nimport { useFields } from './useSchema';\n\nexport interface ElementProps<Schema extends Record<string, any>> {\n name: keyof Schema;\n}\n\nexport const FormInstantElement = <S extends Record<string, any>>({ name }: ElementProps<S>) => {\n const field = useFields(name);\n\n const id = useId();\n\n if ((field.fieldConfig as any)?.type || !['object', 'transform'].includes(field.type))\n return <ElementMapping formProps={field} />;\n\n return (\n <>\n {Object.values(field.schema || {}).map((props: any) => {\n return (\n <Fragment key={`${id}-${props.name?.history || ''}`}>\n <ElementMapping formProps={props} />\n </Fragment>\n );\n })}\n </>\n );\n};\n","import { FC, ReactNode } from 'react';\nimport { ZodResolverContext } from './context';\nimport { zodResolverProps } from './type';\n\nexport const FormInstantProvider: FC<{\n schema: zodResolverProps;\n children: ReactNode;\n}> = ({ children, schema }) => {\n return <ZodResolverContext.Provider value={schema}>{children}</ZodResolverContext.Provider>;\n};\n"],"names":["ZodResolverContext","createContext","getDefaultValueInZodStack","schema","_def","typeName","defaultValue","innerType","undefined","getDefaultValues","objectSchema","z","ZodEffects","shape","defaultValues","_i","_Object$entries","Object","entries","length","_Object$entries$_i","key","field","FIELD_CONFIG_SYMBOL","Symbol","extendZodWithFieldConfig","zod","ZodType","prototype","fieldConfig","config","_zod","object","array","zodRest","_objectWithoutPropertiesLoose","_excluded","_extends","apply","arguments","createZodSchemaFieldConfig","refinementFunction","getFieldConfigInZodStack","inferFieldType","fieldType","type","zodToInputType","Map","match","get","typeMapping","ZodDiscriminatedUnion","_ref","name","history","dependecys","_schema$_def","optionsMap","discriminator","keys","optionKey","option","fields","filter","_ref2","map","_ref3","historyFormat","join","charAt","substring","parseField","unshift","current","required","options","Array","from","String","ZodObject","_ref4","_ref5","ZodArray","_ref6","_ref7","_baseSchema$_def$minL","_baseSchema$_def$maxL","_ref7$dependecys","baseSchema","getBaseSchema","_getFieldConfigInZodS","fieldConfigBase","values","optionValues","isArray","value","getSubSchema","subSchema","_baseSchema$_def","min","minLength","max","maxLength","resp","isOptional","description","parseSchema","S","_objectSchema$_def$fi","dp","fromEntries","_ref8","useSchemaBase","useContext","useFields","_parseSchema","generateInitialValues","Error","initialValues","_loop","_Object$keys","fieldSchema","result","safeParse","success","data","includes","ZodString","ZodNumber","ZodBoolean","ZodDate","fieldHandler","_ret","error","console","log","cause","message","useSchema","cbP","useMemo","JSON","stringify","FormInstantElement","_field$fieldConfig","id","useId","_jsx","ElementMapping","formProps","_Fragment","children","props","_props$name","Fragment","FormInstantProvider","Provider"],"mappings":"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"}