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