@hookform/resolvers 2.8.3 → 2.8.7

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/README.md CHANGED
@@ -47,10 +47,13 @@ import { useForm } from 'react-hook-form';
47
47
  import { yupResolver } from '@hookform/resolvers/yup';
48
48
  import * as yup from 'yup';
49
49
 
50
- const schema = yup.object().shape({
51
- name: yup.string().required(),
52
- age: yup.number().required(),
53
- }).required();
50
+ const schema = yup
51
+ .object()
52
+ .shape({
53
+ name: yup.string().required(),
54
+ age: yup.number().required(),
55
+ })
56
+ .required();
54
57
 
55
58
  const App = () => {
56
59
  const { register, handleSubmit } = useForm({
@@ -177,9 +180,9 @@ Vest 🦺 Declarative Validation Testing.
177
180
  ```typescript jsx
178
181
  import { useForm } from 'react-hook-form';
179
182
  import { vestResolver } from '@hookform/resolvers/vest';
180
- import vest, { test, enforce } from 'vest';
183
+ import { create, test, enforce } from 'vest';
181
184
 
182
- const validationSuite = vest.create((data = {}) => {
185
+ const validationSuite = create((data = {}) => {
183
186
  test('username', 'Username is required', () => {
184
187
  enforce(data.username).isNotEmpty();
185
188
  });
@@ -14,7 +14,7 @@ class Schema {
14
14
  }
15
15
 
16
16
  interface Props {
17
- onSubmit: SubmitHandler<FormData>;
17
+ onSubmit: SubmitHandler<Schema>;
18
18
  }
19
19
 
20
20
  function TestComponent({ onSubmit }: Props) {
@@ -14,7 +14,7 @@ class Schema {
14
14
  }
15
15
 
16
16
  interface Props {
17
- onSubmit: SubmitHandler<FormData>;
17
+ onSubmit: SubmitHandler<Schema>;
18
18
  }
19
19
 
20
20
  function TestComponent({ onSubmit }: Props) {
package/dist/resolvers.js CHANGED
@@ -1,2 +1,2 @@
1
- var e=require("react-hook-form"),r=function(r,i){for(var t in i.fields){var a=i.fields[t];if(a&&a.ref&&"reportValidity"in a.ref){var o=e.get(r,t);a.ref.setCustomValidity(o&&o.message||""),a.ref.reportValidity()}}};exports.toNestError=function(i,t){t.shouldUseNativeValidation&&r(i,t);var a={};for(var o in i){var s=e.get(t.fields,o);e.set(a,o,Object.assign(i[o],{ref:s&&s.ref}))}return a},exports.validateFieldsNatively=r;
1
+ var r=require("react-hook-form"),e=function(e,i,t){if(e&&"reportValidity"in e){var a=r.get(t,i);e.setCustomValidity(a&&a.message||""),e.reportValidity()}},i=function(r,i){var t=function(t){var a=i.fields[t];a&&a.ref&&"reportValidity"in a.ref?e(a.ref,t,r):a.refs&&a.refs.forEach(function(i,a){return e(i,t+"."+a,r)})};for(var a in i.fields)t(a)};exports.toNestError=function(e,t){t.shouldUseNativeValidation&&i(e,t);var a={};for(var o in e){var f=r.get(t.fields,o);r.set(a,o,Object.assign(e[o],{ref:f&&f.ref}))}return a},exports.validateFieldsNatively=i;
2
2
  //# sourceMappingURL=resolvers.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"resolvers.js","sources":["../src/validateFieldsNatively.ts","../src/toNestError.ts"],"sourcesContent":["import { get, FieldError, ResolverOptions } from 'react-hook-form';\n\n// Native validation (web only)\nexport const validateFieldsNatively = <TFieldValues>(\n errors: Record<string, FieldError>,\n options: ResolverOptions<TFieldValues>,\n): void => {\n for (const fieldPath in options.fields) {\n const field = options.fields[fieldPath];\n\n if (field && field.ref && 'reportValidity' in field.ref) {\n const error = get(errors, fieldPath) as FieldError | undefined;\n\n field.ref.setCustomValidity((error && error.message) || '');\n\n field.ref.reportValidity();\n }\n }\n};\n","import {\n set,\n get,\n FieldError,\n FieldErrors,\n Field,\n ResolverOptions,\n} from 'react-hook-form';\nimport { validateFieldsNatively } from './validateFieldsNatively';\n\nexport const toNestError = <TFieldValues>(\n errors: Record<string, FieldError>,\n options: ResolverOptions<TFieldValues>,\n): FieldErrors<TFieldValues> => {\n options.shouldUseNativeValidation && validateFieldsNatively(errors, options);\n\n const fieldErrors = {} as FieldErrors<TFieldValues>;\n for (const path in errors) {\n const field = get(options.fields, path) as Field['_f'] | undefined;\n\n set(\n fieldErrors,\n path,\n Object.assign(errors[path], { ref: field && field.ref }),\n );\n }\n\n return fieldErrors;\n};\n"],"names":["validateFieldsNatively","errors","options","fieldPath","fields","field","ref","error","get","setCustomValidity","message","reportValidity","shouldUseNativeValidation","fieldErrors","path","set","Object","assign"],"mappings":"iCAGaA,EAAyB,SACpCC,EACAC,GAEA,IAAK,IAAMC,KAAaD,EAAQE,OAAQ,CACtC,IAAMC,EAAQH,EAAQE,OAAOD,GAE7B,GAAIE,GAASA,EAAMC,KAAO,mBAAoBD,EAAMC,IAAK,CACvD,IAAMC,EAAQC,MAAIP,EAAQE,GAE1BE,EAAMC,IAAIG,kBAAmBF,GAASA,EAAMG,SAAY,IAExDL,EAAMC,IAAIK,wCCLW,SACzBV,EACAC,GAEAA,EAAQU,2BAA6BZ,EAAuBC,EAAQC,GAEpE,IAAMW,EAAc,GACpB,IAAK,IAAMC,KAAQb,EAAQ,CACzB,IAAMI,EAAQG,MAAIN,EAAQE,OAAQU,GAElCC,MACEF,EACAC,EACAE,OAAOC,OAAOhB,EAAOa,GAAO,CAAER,IAAKD,GAASA,EAAMC,OAItD,OAAOO"}
1
+ {"version":3,"file":"resolvers.js","sources":["../src/validateFieldsNatively.ts","../src/toNestError.ts"],"sourcesContent":["import {\n get, FieldError, ResolverOptions, Ref\n} from 'react-hook-form';\n\nconst setCustomValidity = (ref: Ref, fieldPath: string, errors: Record<string, FieldError>) => {\n if (ref && 'reportValidity' in ref) {\n const error = get(errors, fieldPath) as FieldError | undefined;\n ref.setCustomValidity((error && error.message) || '');\n\n ref.reportValidity();\n }\n};\n\n// Native validation (web only)\nexport const validateFieldsNatively = <TFieldValues>(\n errors: Record<string, FieldError>,\n options: ResolverOptions<TFieldValues>,\n): void => {\n\n\n for (const fieldPath in options.fields) {\n const field = options.fields[fieldPath];\n if (field && field.ref && 'reportValidity' in field.ref) {\n setCustomValidity(field.ref, fieldPath, errors)\n } else if (field.refs) {\n field.refs.forEach((ref: HTMLInputElement, i) => setCustomValidity(ref, fieldPath + '.' + i, errors))\n }\n }\n};\n","import {\n set,\n get,\n FieldError,\n FieldErrors,\n Field,\n ResolverOptions,\n} from 'react-hook-form';\nimport { validateFieldsNatively } from './validateFieldsNatively';\n\nexport const toNestError = <TFieldValues>(\n errors: Record<string, FieldError>,\n options: ResolverOptions<TFieldValues>,\n): FieldErrors<TFieldValues> => {\n options.shouldUseNativeValidation && validateFieldsNatively(errors, options);\n\n const fieldErrors = {} as FieldErrors<TFieldValues>;\n for (const path in errors) {\n const field = get(options.fields, path) as Field['_f'] | undefined;\n\n set(\n fieldErrors,\n path,\n Object.assign(errors[path], { ref: field && field.ref }),\n );\n }\n\n return fieldErrors;\n};\n"],"names":["setCustomValidity","ref","fieldPath","errors","error","get","message","reportValidity","validateFieldsNatively","options","field","fields","refs","forEach","i","shouldUseNativeValidation","fieldErrors","path","set","Object","assign"],"mappings":"iCAIMA,EAAoB,SAACC,EAAUC,EAAmBC,GACtD,GAAIF,GAAO,mBAAoBA,EAAK,CAClC,IAAMG,EAAQC,MAAIF,EAAQD,GAC1BD,EAAID,kBAAmBI,GAASA,EAAME,SAAY,IAElDL,EAAIM,mBAKKC,EAAyB,SACpCL,EACAM,kBAIWP,GACT,IAAMQ,EAAQD,EAAQE,OAAOT,GACzBQ,GAASA,EAAMT,KAAO,mBAAoBS,EAAMT,IAClDD,EAAkBU,EAAMT,IAAKC,EAAWC,GAC/BO,EAAME,MACfF,EAAME,KAAKC,QAAQ,SAACZ,EAAuBa,UAAMd,EAAkBC,EAAKC,EAAY,IAAMY,EAAGX,MALjG,IAAK,IAAMD,KAAaO,EAAQE,SAArBT,wBCVc,SACzBC,EACAM,GAEAA,EAAQM,2BAA6BP,EAAuBL,EAAQM,GAEpE,IAAMO,EAAc,GACpB,IAAK,IAAMC,KAAQd,EAAQ,CACzB,IAAMO,EAAQL,MAAII,EAAQE,OAAQM,GAElCC,MACEF,EACAC,EACAE,OAAOC,OAAOjB,EAAOc,GAAO,CAAEhB,IAAKS,GAASA,EAAMT,OAItD,OAAOe"}
@@ -1,2 +1,2 @@
1
- import{get as r,set as e}from"react-hook-form";var i=function(e,i){for(var a in i.fields){var f=i.fields[a];if(f&&f.ref&&"reportValidity"in f.ref){var t=r(e,a);f.ref.setCustomValidity(t&&t.message||""),f.ref.reportValidity()}}},a=function(a,f){f.shouldUseNativeValidation&&i(a,f);var t={};for(var o in a){var s=r(f.fields,o);e(t,o,Object.assign(a[o],{ref:s&&s.ref}))}return t};export{a as toNestError,i as validateFieldsNatively};
1
+ import{get as r,set as i}from"react-hook-form";var e=function(i,e,t){if(i&&"reportValidity"in i){var f=r(t,e);i.setCustomValidity(f&&f.message||""),i.reportValidity()}},t=function(r,i){var t=function(t){var f=i.fields[t];f&&f.ref&&"reportValidity"in f.ref?e(f.ref,t,r):f.refs&&f.refs.forEach(function(i,f){return e(i,t+"."+f,r)})};for(var f in i.fields)t(f)},f=function(e,f){f.shouldUseNativeValidation&&t(e,f);var o={};for(var a in e){var n=r(f.fields,a);i(o,a,Object.assign(e[a],{ref:n&&n.ref}))}return o};export{f as toNestError,t as validateFieldsNatively};
2
2
  //# sourceMappingURL=resolvers.module.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"resolvers.mjs","sources":["../src/validateFieldsNatively.ts","../src/toNestError.ts"],"sourcesContent":["import { get, FieldError, ResolverOptions } from 'react-hook-form';\n\n// Native validation (web only)\nexport const validateFieldsNatively = <TFieldValues>(\n errors: Record<string, FieldError>,\n options: ResolverOptions<TFieldValues>,\n): void => {\n for (const fieldPath in options.fields) {\n const field = options.fields[fieldPath];\n\n if (field && field.ref && 'reportValidity' in field.ref) {\n const error = get(errors, fieldPath) as FieldError | undefined;\n\n field.ref.setCustomValidity((error && error.message) || '');\n\n field.ref.reportValidity();\n }\n }\n};\n","import {\n set,\n get,\n FieldError,\n FieldErrors,\n Field,\n ResolverOptions,\n} from 'react-hook-form';\nimport { validateFieldsNatively } from './validateFieldsNatively';\n\nexport const toNestError = <TFieldValues>(\n errors: Record<string, FieldError>,\n options: ResolverOptions<TFieldValues>,\n): FieldErrors<TFieldValues> => {\n options.shouldUseNativeValidation && validateFieldsNatively(errors, options);\n\n const fieldErrors = {} as FieldErrors<TFieldValues>;\n for (const path in errors) {\n const field = get(options.fields, path) as Field['_f'] | undefined;\n\n set(\n fieldErrors,\n path,\n Object.assign(errors[path], { ref: field && field.ref }),\n );\n }\n\n return fieldErrors;\n};\n"],"names":["validateFieldsNatively","errors","options","fieldPath","fields","field","ref","error","get","setCustomValidity","message","reportValidity","toNestError","shouldUseNativeValidation","fieldErrors","path","set","Object","assign"],"mappings":"+CAGaA,MAAAA,EAAyB,CACpCC,EACAC,KAEA,IAAK,MAAMC,KAAaD,EAAQE,OAAQ,CACtC,MAAMC,EAAQH,EAAQE,OAAOD,GAE7B,GAAIE,GAASA,EAAMC,KAAO,mBAAoBD,EAAMC,IAAK,CACvD,MAAMC,EAAQC,EAAIP,EAAQE,GAE1BE,EAAMC,IAAIG,kBAAmBF,GAASA,EAAMG,SAAY,IAExDL,EAAMC,IAAIK,oBCLHC,EAAc,CACzBX,EACAC,KAEAA,EAAQW,2BAA6Bb,EAAuBC,EAAQC,GAEpE,MAAMY,EAAc,GACpB,IAAK,MAAMC,KAAQd,EAAQ,CACzB,MAAMI,EAAQG,EAAIN,EAAQE,OAAQW,GAElCC,EACEF,EACAC,EACAE,OAAOC,OAAOjB,EAAOc,GAAO,CAAET,IAAKD,GAASA,EAAMC,OAItD,OAAOQ"}
1
+ {"version":3,"file":"resolvers.mjs","sources":["../src/validateFieldsNatively.ts","../src/toNestError.ts"],"sourcesContent":["import {\n get, FieldError, ResolverOptions, Ref\n} from 'react-hook-form';\n\nconst setCustomValidity = (ref: Ref, fieldPath: string, errors: Record<string, FieldError>) => {\n if (ref && 'reportValidity' in ref) {\n const error = get(errors, fieldPath) as FieldError | undefined;\n ref.setCustomValidity((error && error.message) || '');\n\n ref.reportValidity();\n }\n};\n\n// Native validation (web only)\nexport const validateFieldsNatively = <TFieldValues>(\n errors: Record<string, FieldError>,\n options: ResolverOptions<TFieldValues>,\n): void => {\n\n\n for (const fieldPath in options.fields) {\n const field = options.fields[fieldPath];\n if (field && field.ref && 'reportValidity' in field.ref) {\n setCustomValidity(field.ref, fieldPath, errors)\n } else if (field.refs) {\n field.refs.forEach((ref: HTMLInputElement, i) => setCustomValidity(ref, fieldPath + '.' + i, errors))\n }\n }\n};\n","import {\n set,\n get,\n FieldError,\n FieldErrors,\n Field,\n ResolverOptions,\n} from 'react-hook-form';\nimport { validateFieldsNatively } from './validateFieldsNatively';\n\nexport const toNestError = <TFieldValues>(\n errors: Record<string, FieldError>,\n options: ResolverOptions<TFieldValues>,\n): FieldErrors<TFieldValues> => {\n options.shouldUseNativeValidation && validateFieldsNatively(errors, options);\n\n const fieldErrors = {} as FieldErrors<TFieldValues>;\n for (const path in errors) {\n const field = get(options.fields, path) as Field['_f'] | undefined;\n\n set(\n fieldErrors,\n path,\n Object.assign(errors[path], { ref: field && field.ref }),\n );\n }\n\n return fieldErrors;\n};\n"],"names":["setCustomValidity","ref","fieldPath","errors","error","get","message","reportValidity","validateFieldsNatively","options","fields","field","refs","forEach","i","toNestError","shouldUseNativeValidation","fieldErrors","path","set","Object","assign"],"mappings":"+CAIA,MAAMA,EAAoB,CAACC,EAAUC,EAAmBC,KACtD,GAAIF,GAAO,mBAAoBA,EAAK,CAClC,MAAMG,EAAQC,EAAIF,EAAQD,GAC1BD,EAAID,kBAAmBI,GAASA,EAAME,SAAY,IAElDL,EAAIM,mBAKKC,EAAyB,CACpCL,EACAM,KAIA,IAAK,MAAMP,KAAaO,EAAQC,OAAQ,CACtC,MAAMC,EAAQF,EAAQC,OAAOR,GACzBS,GAASA,EAAMV,KAAO,mBAAoBU,EAAMV,IAClDD,EAAkBW,EAAMV,IAAKC,EAAWC,GAC/BQ,EAAMC,MACfD,EAAMC,KAAKC,QAAQ,CAACZ,EAAuBa,IAAMd,EAAkBC,EAAKC,EAAY,IAAMY,EAAGX,MCftFY,EAAc,CACzBZ,EACAM,KAEAA,EAAQO,2BAA6BR,EAAuBL,EAAQM,GAEpE,MAAMQ,EAAc,GACpB,IAAK,MAAMC,KAAQf,EAAQ,CACzB,MAAMQ,EAAQN,EAAII,EAAQC,OAAQQ,GAElCC,EACEF,EACAC,EACAE,OAAOC,OAAOlB,EAAOe,GAAO,CAAEjB,IAAKU,GAASA,EAAMV,OAItD,OAAOgB"}
@@ -1,2 +1,2 @@
1
- import{get as r,set as e}from"react-hook-form";var i=function(e,i){for(var a in i.fields){var f=i.fields[a];if(f&&f.ref&&"reportValidity"in f.ref){var t=r(e,a);f.ref.setCustomValidity(t&&t.message||""),f.ref.reportValidity()}}},a=function(a,f){f.shouldUseNativeValidation&&i(a,f);var t={};for(var o in a){var s=r(f.fields,o);e(t,o,Object.assign(a[o],{ref:s&&s.ref}))}return t};export{a as toNestError,i as validateFieldsNatively};
1
+ import{get as r,set as i}from"react-hook-form";var e=function(i,e,t){if(i&&"reportValidity"in i){var f=r(t,e);i.setCustomValidity(f&&f.message||""),i.reportValidity()}},t=function(r,i){var t=function(t){var f=i.fields[t];f&&f.ref&&"reportValidity"in f.ref?e(f.ref,t,r):f.refs&&f.refs.forEach(function(i,f){return e(i,t+"."+f,r)})};for(var f in i.fields)t(f)},f=function(e,f){f.shouldUseNativeValidation&&t(e,f);var o={};for(var a in e){var n=r(f.fields,a);i(o,a,Object.assign(e[a],{ref:n&&n.ref}))}return o};export{f as toNestError,t as validateFieldsNatively};
2
2
  //# sourceMappingURL=resolvers.module.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"resolvers.module.js","sources":["../src/validateFieldsNatively.ts","../src/toNestError.ts"],"sourcesContent":["import { get, FieldError, ResolverOptions } from 'react-hook-form';\n\n// Native validation (web only)\nexport const validateFieldsNatively = <TFieldValues>(\n errors: Record<string, FieldError>,\n options: ResolverOptions<TFieldValues>,\n): void => {\n for (const fieldPath in options.fields) {\n const field = options.fields[fieldPath];\n\n if (field && field.ref && 'reportValidity' in field.ref) {\n const error = get(errors, fieldPath) as FieldError | undefined;\n\n field.ref.setCustomValidity((error && error.message) || '');\n\n field.ref.reportValidity();\n }\n }\n};\n","import {\n set,\n get,\n FieldError,\n FieldErrors,\n Field,\n ResolverOptions,\n} from 'react-hook-form';\nimport { validateFieldsNatively } from './validateFieldsNatively';\n\nexport const toNestError = <TFieldValues>(\n errors: Record<string, FieldError>,\n options: ResolverOptions<TFieldValues>,\n): FieldErrors<TFieldValues> => {\n options.shouldUseNativeValidation && validateFieldsNatively(errors, options);\n\n const fieldErrors = {} as FieldErrors<TFieldValues>;\n for (const path in errors) {\n const field = get(options.fields, path) as Field['_f'] | undefined;\n\n set(\n fieldErrors,\n path,\n Object.assign(errors[path], { ref: field && field.ref }),\n );\n }\n\n return fieldErrors;\n};\n"],"names":["validateFieldsNatively","errors","options","fieldPath","fields","field","ref","error","get","setCustomValidity","message","reportValidity","toNestError","shouldUseNativeValidation","fieldErrors","path","set","Object","assign"],"mappings":"+CAGaA,IAAAA,EAAyB,SACpCC,EACAC,GAEA,IAAK,IAAMC,KAAaD,EAAQE,OAAQ,CACtC,IAAMC,EAAQH,EAAQE,OAAOD,GAE7B,GAAIE,GAASA,EAAMC,KAAO,mBAAoBD,EAAMC,IAAK,CACvD,IAAMC,EAAQC,EAAIP,EAAQE,GAE1BE,EAAMC,IAAIG,kBAAmBF,GAASA,EAAMG,SAAY,IAExDL,EAAMC,IAAIK,oBCLHC,EAAc,SACzBX,EACAC,GAEAA,EAAQW,2BAA6Bb,EAAuBC,EAAQC,GAEpE,IAAMY,EAAc,GACpB,IAAK,IAAMC,KAAQd,EAAQ,CACzB,IAAMI,EAAQG,EAAIN,EAAQE,OAAQW,GAElCC,EACEF,EACAC,EACAE,OAAOC,OAAOjB,EAAOc,GAAO,CAAET,IAAKD,GAASA,EAAMC,OAItD,OAAOQ"}
1
+ {"version":3,"file":"resolvers.module.js","sources":["../src/validateFieldsNatively.ts","../src/toNestError.ts"],"sourcesContent":["import {\n get, FieldError, ResolverOptions, Ref\n} from 'react-hook-form';\n\nconst setCustomValidity = (ref: Ref, fieldPath: string, errors: Record<string, FieldError>) => {\n if (ref && 'reportValidity' in ref) {\n const error = get(errors, fieldPath) as FieldError | undefined;\n ref.setCustomValidity((error && error.message) || '');\n\n ref.reportValidity();\n }\n};\n\n// Native validation (web only)\nexport const validateFieldsNatively = <TFieldValues>(\n errors: Record<string, FieldError>,\n options: ResolverOptions<TFieldValues>,\n): void => {\n\n\n for (const fieldPath in options.fields) {\n const field = options.fields[fieldPath];\n if (field && field.ref && 'reportValidity' in field.ref) {\n setCustomValidity(field.ref, fieldPath, errors)\n } else if (field.refs) {\n field.refs.forEach((ref: HTMLInputElement, i) => setCustomValidity(ref, fieldPath + '.' + i, errors))\n }\n }\n};\n","import {\n set,\n get,\n FieldError,\n FieldErrors,\n Field,\n ResolverOptions,\n} from 'react-hook-form';\nimport { validateFieldsNatively } from './validateFieldsNatively';\n\nexport const toNestError = <TFieldValues>(\n errors: Record<string, FieldError>,\n options: ResolverOptions<TFieldValues>,\n): FieldErrors<TFieldValues> => {\n options.shouldUseNativeValidation && validateFieldsNatively(errors, options);\n\n const fieldErrors = {} as FieldErrors<TFieldValues>;\n for (const path in errors) {\n const field = get(options.fields, path) as Field['_f'] | undefined;\n\n set(\n fieldErrors,\n path,\n Object.assign(errors[path], { ref: field && field.ref }),\n );\n }\n\n return fieldErrors;\n};\n"],"names":["setCustomValidity","ref","fieldPath","errors","error","get","message","reportValidity","validateFieldsNatively","options","field","fields","refs","forEach","i","toNestError","shouldUseNativeValidation","fieldErrors","path","set","Object","assign"],"mappings":"+CAIA,IAAMA,EAAoB,SAACC,EAAUC,EAAmBC,GACtD,GAAIF,GAAO,mBAAoBA,EAAK,CAClC,IAAMG,EAAQC,EAAIF,EAAQD,GAC1BD,EAAID,kBAAmBI,GAASA,EAAME,SAAY,IAElDL,EAAIM,mBAKKC,EAAyB,SACpCL,EACAM,kBAIWP,GACT,IAAMQ,EAAQD,EAAQE,OAAOT,GACzBQ,GAASA,EAAMT,KAAO,mBAAoBS,EAAMT,IAClDD,EAAkBU,EAAMT,IAAKC,EAAWC,GAC/BO,EAAME,MACfF,EAAME,KAAKC,QAAQ,SAACZ,EAAuBa,UAAMd,EAAkBC,EAAKC,EAAY,IAAMY,EAAGX,MALjG,IAAK,IAAMD,KAAaO,EAAQE,SAArBT,ICVAa,EAAc,SACzBZ,EACAM,GAEAA,EAAQO,2BAA6BR,EAAuBL,EAAQM,GAEpE,IAAMQ,EAAc,GACpB,IAAK,IAAMC,KAAQf,EAAQ,CACzB,IAAMO,EAAQL,EAAII,EAAQE,OAAQO,GAElCC,EACEF,EACAC,EACAE,OAAOC,OAAOlB,EAAOe,GAAO,CAAEjB,IAAKS,GAASA,EAAMT,OAItD,OAAOgB"}
@@ -1,2 +1,2 @@
1
- !function(e,o){"object"==typeof exports&&"undefined"!=typeof module?o(exports,require("react-hook-form")):"function"==typeof define&&define.amd?define(["exports","react-hook-form"],o):o((e||self).hookformResolvers={},e.reactHookForm)}(this,function(e,o){var r=function(e,r){for(var t in r.fields){var i=r.fields[t];if(i&&i.ref&&"reportValidity"in i.ref){var f=o.get(e,t);i.ref.setCustomValidity(f&&f.message||""),i.ref.reportValidity()}}};e.toNestError=function(e,t){t.shouldUseNativeValidation&&r(e,t);var i={};for(var f in e){var a=o.get(t.fields,f);o.set(i,f,Object.assign(e[f],{ref:a&&a.ref}))}return i},e.validateFieldsNatively=r});
1
+ !function(e,r){"object"==typeof exports&&"undefined"!=typeof module?r(exports,require("react-hook-form")):"function"==typeof define&&define.amd?define(["exports","react-hook-form"],r):r((e||self).hookformResolvers={},e.reactHookForm)}(this,function(e,r){var o=function(e,o,t){if(e&&"reportValidity"in e){var i=r.get(t,o);e.setCustomValidity(i&&i.message||""),e.reportValidity()}},t=function(e,r){var t=function(t){var i=r.fields[t];i&&i.ref&&"reportValidity"in i.ref?o(i.ref,t,e):i.refs&&i.refs.forEach(function(r,i){return o(r,t+"."+i,e)})};for(var i in r.fields)t(i)};e.toNestError=function(e,o){o.shouldUseNativeValidation&&t(e,o);var i={};for(var f in e){var n=r.get(o.fields,f);r.set(i,f,Object.assign(e[f],{ref:n&&n.ref}))}return i},e.validateFieldsNatively=t});
2
2
  //# sourceMappingURL=resolvers.umd.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"resolvers.umd.js","sources":["../src/validateFieldsNatively.ts","../src/toNestError.ts"],"sourcesContent":["import { get, FieldError, ResolverOptions } from 'react-hook-form';\n\n// Native validation (web only)\nexport const validateFieldsNatively = <TFieldValues>(\n errors: Record<string, FieldError>,\n options: ResolverOptions<TFieldValues>,\n): void => {\n for (const fieldPath in options.fields) {\n const field = options.fields[fieldPath];\n\n if (field && field.ref && 'reportValidity' in field.ref) {\n const error = get(errors, fieldPath) as FieldError | undefined;\n\n field.ref.setCustomValidity((error && error.message) || '');\n\n field.ref.reportValidity();\n }\n }\n};\n","import {\n set,\n get,\n FieldError,\n FieldErrors,\n Field,\n ResolverOptions,\n} from 'react-hook-form';\nimport { validateFieldsNatively } from './validateFieldsNatively';\n\nexport const toNestError = <TFieldValues>(\n errors: Record<string, FieldError>,\n options: ResolverOptions<TFieldValues>,\n): FieldErrors<TFieldValues> => {\n options.shouldUseNativeValidation && validateFieldsNatively(errors, options);\n\n const fieldErrors = {} as FieldErrors<TFieldValues>;\n for (const path in errors) {\n const field = get(options.fields, path) as Field['_f'] | undefined;\n\n set(\n fieldErrors,\n path,\n Object.assign(errors[path], { ref: field && field.ref }),\n );\n }\n\n return fieldErrors;\n};\n"],"names":["validateFieldsNatively","errors","options","fieldPath","fields","field","ref","error","get","setCustomValidity","message","reportValidity","shouldUseNativeValidation","fieldErrors","path","set","Object","assign"],"mappings":"8SAGaA,EAAyB,SACpCC,EACAC,GAEA,IAAK,IAAMC,KAAaD,EAAQE,OAAQ,CACtC,IAAMC,EAAQH,EAAQE,OAAOD,GAE7B,GAAIE,GAASA,EAAMC,KAAO,mBAAoBD,EAAMC,IAAK,CACvD,IAAMC,EAAQC,MAAIP,EAAQE,GAE1BE,EAAMC,IAAIG,kBAAmBF,GAASA,EAAMG,SAAY,IAExDL,EAAMC,IAAIK,kCCLW,SACzBV,EACAC,GAEAA,EAAQU,2BAA6BZ,EAAuBC,EAAQC,GAEpE,IAAMW,EAAc,GACpB,IAAK,IAAMC,KAAQb,EAAQ,CACzB,IAAMI,EAAQG,MAAIN,EAAQE,OAAQU,GAElCC,MACEF,EACAC,EACAE,OAAOC,OAAOhB,EAAOa,GAAO,CAAER,IAAKD,GAASA,EAAMC,OAItD,OAAOO"}
1
+ {"version":3,"file":"resolvers.umd.js","sources":["../src/validateFieldsNatively.ts","../src/toNestError.ts"],"sourcesContent":["import {\n get, FieldError, ResolverOptions, Ref\n} from 'react-hook-form';\n\nconst setCustomValidity = (ref: Ref, fieldPath: string, errors: Record<string, FieldError>) => {\n if (ref && 'reportValidity' in ref) {\n const error = get(errors, fieldPath) as FieldError | undefined;\n ref.setCustomValidity((error && error.message) || '');\n\n ref.reportValidity();\n }\n};\n\n// Native validation (web only)\nexport const validateFieldsNatively = <TFieldValues>(\n errors: Record<string, FieldError>,\n options: ResolverOptions<TFieldValues>,\n): void => {\n\n\n for (const fieldPath in options.fields) {\n const field = options.fields[fieldPath];\n if (field && field.ref && 'reportValidity' in field.ref) {\n setCustomValidity(field.ref, fieldPath, errors)\n } else if (field.refs) {\n field.refs.forEach((ref: HTMLInputElement, i) => setCustomValidity(ref, fieldPath + '.' + i, errors))\n }\n }\n};\n","import {\n set,\n get,\n FieldError,\n FieldErrors,\n Field,\n ResolverOptions,\n} from 'react-hook-form';\nimport { validateFieldsNatively } from './validateFieldsNatively';\n\nexport const toNestError = <TFieldValues>(\n errors: Record<string, FieldError>,\n options: ResolverOptions<TFieldValues>,\n): FieldErrors<TFieldValues> => {\n options.shouldUseNativeValidation && validateFieldsNatively(errors, options);\n\n const fieldErrors = {} as FieldErrors<TFieldValues>;\n for (const path in errors) {\n const field = get(options.fields, path) as Field['_f'] | undefined;\n\n set(\n fieldErrors,\n path,\n Object.assign(errors[path], { ref: field && field.ref }),\n );\n }\n\n return fieldErrors;\n};\n"],"names":["setCustomValidity","ref","fieldPath","errors","error","get","message","reportValidity","validateFieldsNatively","options","field","fields","refs","forEach","i","shouldUseNativeValidation","fieldErrors","path","set","Object","assign"],"mappings":"0SAIA,IAAMA,EAAoB,SAACC,EAAUC,EAAmBC,GACtD,GAAIF,GAAO,mBAAoBA,EAAK,CAClC,IAAMG,EAAQC,MAAIF,EAAQD,GAC1BD,EAAID,kBAAmBI,GAASA,EAAME,SAAY,IAElDL,EAAIM,mBAKKC,EAAyB,SACpCL,EACAM,kBAIWP,GACT,IAAMQ,EAAQD,EAAQE,OAAOT,GACzBQ,GAASA,EAAMT,KAAO,mBAAoBS,EAAMT,IAClDD,EAAkBU,EAAMT,IAAKC,EAAWC,GAC/BO,EAAME,MACfF,EAAME,KAAKC,QAAQ,SAACZ,EAAuBa,UAAMd,EAAkBC,EAAKC,EAAY,IAAMY,EAAGX,MALjG,IAAK,IAAMD,KAAaO,EAAQE,SAArBT,kBCVc,SACzBC,EACAM,GAEAA,EAAQM,2BAA6BP,EAAuBL,EAAQM,GAEpE,IAAMO,EAAc,GACpB,IAAK,IAAMC,KAAQd,EAAQ,CACzB,IAAMO,EAAQL,MAAII,EAAQE,OAAQM,GAElCC,MACEF,EACAC,EACAE,OAAOC,OAAOjB,EAAOc,GAAO,CAAEhB,IAAKS,GAASA,EAAMT,OAItD,OAAOe"}
@@ -1,2 +1,2 @@
1
1
  import { FieldError, FieldErrors, ResolverOptions } from 'react-hook-form';
2
- export declare const toNestError: <TFieldValues>(errors: Record<string, FieldError>, options: ResolverOptions<TFieldValues>) => import("react-hook-form").DeepMap<import("react-hook-form").DeepPartial<import("react-hook-form").UnionLike<TFieldValues>>, FieldError>;
2
+ export declare const toNestError: <TFieldValues>(errors: Record<string, FieldError>, options: ResolverOptions<TFieldValues>) => import("react-hook-form").DeepMap<import("react-hook-form").DeepPartial<TFieldValues>, FieldError>;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@hookform/resolvers",
3
3
  "amdName": "hookformResolvers",
4
- "version": "2.8.3",
4
+ "version": "2.8.7",
5
5
  "description": "React Hook Form validation resolvers: Yup, Joi, Superstruct, Zod, Vest, Class Validator, io-ts, Nope, computed-types and Typanion",
6
6
  "main": "dist/resolvers.js",
7
7
  "module": "dist/resolvers.module.js",
@@ -76,7 +76,7 @@
76
76
  "require": "./typanion/dist/typanion.js"
77
77
  },
78
78
  "./package.json": "./package.json",
79
- "./": "./"
79
+ "./*": "./*"
80
80
  },
81
81
  "files": [
82
82
  "dist",
@@ -164,41 +164,41 @@
164
164
  },
165
165
  "homepage": "https://react-hook-form.com",
166
166
  "devDependencies": {
167
- "@testing-library/jest-dom": "^5.15.0",
167
+ "@testing-library/jest-dom": "^5.16.1",
168
168
  "@testing-library/react": "^12.1.2",
169
169
  "@testing-library/user-event": "^13.5.0",
170
- "@types/jest": "^27.0.2",
171
- "@types/react": "^17.0.33",
172
- "@typescript-eslint/eslint-plugin": "^5.3.0",
173
- "@typescript-eslint/parser": "^5.3.0",
174
- "check-export-map": "^1.1.1",
175
- "class-transformer": "^0.4.0",
176
- "class-validator": "^0.13.1",
170
+ "@types/jest": "^27.4.0",
171
+ "@types/react": "^17.0.38",
172
+ "@typescript-eslint/eslint-plugin": "^5.10.0",
173
+ "@typescript-eslint/parser": "^5.10.0",
174
+ "check-export-map": "^1.2.0",
175
+ "class-transformer": "^0.5.1",
176
+ "class-validator": "^0.13.2",
177
177
  "computed-types": "^1.11.1",
178
178
  "eslint": "^7.27.0",
179
179
  "eslint-config-prettier": "^8.3.0",
180
- "fp-ts": "^2.11.5",
180
+ "fp-ts": "^2.11.8",
181
181
  "husky": "^7.0.4",
182
182
  "io-ts": "^2.0.0",
183
183
  "io-ts-types": "^0.5.16",
184
- "jest": "^27.3.1",
185
- "joi": "^17.4.2",
186
- "lint-staged": "^11.2.6",
187
- "microbundle": "^0.14.1",
188
- "monocle-ts": "^2.3.10",
189
- "newtype-ts": "^0.3.4",
184
+ "jest": "^27.4.7",
185
+ "joi": "^17.5.0",
186
+ "lint-staged": "^12.1.7",
187
+ "microbundle": "^0.14.2",
188
+ "monocle-ts": "^2.3.12",
189
+ "newtype-ts": "^0.3.5",
190
190
  "nope-validator": "^1.0.0",
191
191
  "npm-run-all": "^4.1.5",
192
- "prettier": "^2.3.2",
192
+ "prettier": "^2.5.1",
193
193
  "react": "^17.0.2",
194
194
  "react-dom": "^17.0.2",
195
- "react-hook-form": "7.18.1",
195
+ "react-hook-form": "7.24.0",
196
196
  "reflect-metadata": "^0.1.13",
197
197
  "superstruct": "^0.15.3",
198
- "ts-jest": "^27.0.7",
198
+ "ts-jest": "^27.1.3",
199
199
  "typanion": "^3.7.1",
200
- "typescript": "^4.4.4",
201
- "vest": "^3.2.7",
200
+ "typescript": "^4.5.4",
201
+ "vest": "^4.0.3",
202
202
  "yup": "^0.32.11",
203
203
  "zod": "^3.11.6"
204
204
  },
@@ -2,7 +2,7 @@ import React from 'react';
2
2
  import { render, screen, act } from '@testing-library/react';
3
3
  import user from '@testing-library/user-event';
4
4
  import { useForm } from 'react-hook-form';
5
- import vest from 'vest';
5
+ import * as vest from 'vest';
6
6
  import { vestResolver } from '..';
7
7
 
8
8
  const USERNAME_REQUIRED_MESSAGE = 'username field is required';
@@ -2,7 +2,7 @@ import React from 'react';
2
2
  import { render, screen, act } from '@testing-library/react';
3
3
  import user from '@testing-library/user-event';
4
4
  import { useForm } from 'react-hook-form';
5
- import vest from 'vest';
5
+ import * as vest from 'vest';
6
6
  import { vestResolver } from '..';
7
7
 
8
8
  interface FormData {
package/yup/dist/yup.js CHANGED
@@ -1,2 +1,2 @@
1
- var e=require("@hookform/resolvers"),t=require("react-hook-form");exports.yupResolver=function(r,o,n){return void 0===o&&(o={}),void 0===n&&(n={}),function(s,a,i){try{return Promise.resolve(function(t,u){try{var c=(o.context&&"development"===process.env.NODE_ENV&&console.warn("You should not used the yup options context. Please, use the 'useForm' context object instead"),Promise.resolve(r["sync"===n.mode?"validateSync":"validate"](s,Object.assign({abortEarly:!1},o,{context:a}))).then(function(t){return i.shouldUseNativeValidation&&e.validateFieldsNatively({},i),{values:t,errors:{}}}))}catch(e){return u(e)}return c&&c.then?c.then(void 0,u):c}(0,function(r){return{values:{},errors:e.toNestError((o=r,n=!i.shouldUseNativeValidation&&"all"===i.criteriaMode,o.inner.reduce(function(e,r){if(e[r.path]||(e[r.path]={message:r.message,type:r.type}),n){var o=e[r.path].types,s=o&&o[r.type];e[r.path]=t.appendErrors(r.path,n,e,r.type,s?[].concat(s,r.message):r.message)}return e},{})),i)};var o,n}))}catch(e){return Promise.reject(e)}}};
1
+ var e=require("@hookform/resolvers"),t=require("react-hook-form");exports.yupResolver=function(r,o,n){return void 0===o&&(o={}),void 0===n&&(n={}),function(s,a,i){try{return Promise.resolve(function(t,u){try{var c=(o.context&&"development"===process.env.NODE_ENV&&console.warn("You should not used the yup options context. Please, use the 'useForm' context object instead"),Promise.resolve(r["sync"===n.mode?"validateSync":"validate"](s,Object.assign({abortEarly:!1},o,{context:a}))).then(function(t){return i.shouldUseNativeValidation&&e.validateFieldsNatively({},i),{values:t,errors:{}}}))}catch(e){return u(e)}return c&&c.then?c.then(void 0,u):c}(0,function(r){if(!r.inner)throw r;return{values:{},errors:e.toNestError((o=r,n=!i.shouldUseNativeValidation&&"all"===i.criteriaMode,(o.inner||[]).reduce(function(e,r){if(e[r.path]||(e[r.path]={message:r.message,type:r.type}),n){var o=e[r.path].types,s=o&&o[r.type];e[r.path]=t.appendErrors(r.path,n,e,r.type,s?[].concat(s,r.message):r.message)}return e},{})),i)};var o,n}))}catch(e){return Promise.reject(e)}}};
2
2
  //# sourceMappingURL=yup.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"yup.js","sources":["../src/yup.ts"],"sourcesContent":["import Yup from 'yup';\nimport { toNestError, validateFieldsNatively } from '@hookform/resolvers';\nimport { appendErrors, FieldError } from 'react-hook-form';\nimport { Resolver } from './types';\n\n/**\n * Why `path!` ? because it could be `undefined` in some case\n * https://github.com/jquense/yup#validationerrorerrors-string--arraystring-value-any-path-string\n */\nconst parseErrorSchema = (\n error: Yup.ValidationError,\n validateAllFieldCriteria: boolean,\n) => {\n return error.inner.reduce<Record<string, FieldError>>((previous, error) => {\n if (!previous[error.path!]) {\n previous[error.path!] = { message: error.message, type: error.type! };\n }\n\n if (validateAllFieldCriteria) {\n const types = previous[error.path!].types;\n const messages = types && types[error.type!];\n\n previous[error.path!] = appendErrors(\n error.path!,\n validateAllFieldCriteria,\n previous,\n error.type!,\n messages\n ? ([] as string[]).concat(messages as string[], error.message)\n : error.message,\n ) as FieldError;\n }\n\n return previous;\n }, {});\n};\n\nexport const yupResolver: Resolver =\n (schema, schemaOptions = {}, resolverOptions = {}) =>\n async (values, context, options) => {\n try {\n if (schemaOptions.context && process.env.NODE_ENV === 'development') {\n // eslint-disable-next-line no-console\n console.warn(\n \"You should not used the yup options context. Please, use the 'useForm' context object instead\",\n );\n }\n\n const result = await schema[\n resolverOptions.mode === 'sync' ? 'validateSync' : 'validate'\n ](\n values,\n Object.assign({ abortEarly: false }, schemaOptions, { context }),\n );\n\n options.shouldUseNativeValidation && validateFieldsNatively({}, options);\n\n return {\n values: result,\n errors: {},\n };\n } catch (e: any) {\n return {\n values: {},\n errors: toNestError(\n parseErrorSchema(\n e,\n !options.shouldUseNativeValidation &&\n options.criteriaMode === 'all',\n ),\n options,\n ),\n };\n }\n };\n"],"names":["schema","schemaOptions","resolverOptions","values","context","options","process","env","NODE_ENV","console","warn","mode","Object","assign","abortEarly","result","shouldUseNativeValidation","validateFieldsNatively","errors","e","toNestError","error","validateAllFieldCriteria","criteriaMode","inner","reduce","previous","path","message","type","types","messages","appendErrors","concat"],"mappings":"sFAsCE,SAACA,EAAQC,EAAoBC,mBAApBD,IAAAA,EAAgB,aAAIC,IAAAA,EAAkB,aACxCC,EAAQC,EAASC,uDAEhBJ,EAAcG,SAAoC,gBAAzBE,QAAQC,IAAIC,UAEvCC,QAAQC,KACN,iHAIiBV,EACM,SAAzBE,EAAgBS,KAAkB,eAAiB,YAEnDR,EACAS,OAAOC,OAAO,CAAEC,YAAY,GAASb,EAAe,CAAEG,QAAAA,oBAJlDW,GASN,OAFAV,EAAQW,2BAA6BC,yBAAuB,GAAIZ,GAEzD,CACLF,OAAQY,EACRG,OAAQ,4EAEHC,GACP,MAAO,CACLhB,OAAQ,GACRe,OAAQE,eAtDdC,EAwDUF,EAvDVG,GAwDWjB,EAAQW,2BACkB,QAAzBX,EAAQkB,aAvDbF,EAAMG,MAAMC,OAAmC,SAACC,EAAUL,GAK/D,GAJKK,EAASL,EAAMM,QAClBD,EAASL,EAAMM,MAAS,CAAEC,QAASP,EAAMO,QAASC,KAAMR,EAAMQ,OAG5DP,EAA0B,CAC5B,IAAMQ,EAAQJ,EAASL,EAAMM,MAAOG,MAC9BC,EAAWD,GAASA,EAAMT,EAAMQ,MAEtCH,EAASL,EAAMM,MAASK,eACtBX,EAAMM,KACNL,EACAI,EACAL,EAAMQ,KACNE,EACK,GAAgBE,OAAOF,EAAsBV,EAAMO,SACpDP,EAAMO,SAId,OAAOF,GACN,KAoCKrB,IA7De,IACvBgB,EACAC,KA2BA"}
1
+ {"version":3,"file":"yup.js","sources":["../src/yup.ts"],"sourcesContent":["import Yup from 'yup';\nimport { toNestError, validateFieldsNatively } from '@hookform/resolvers';\nimport { appendErrors, FieldError } from 'react-hook-form';\nimport { Resolver } from './types';\n\n/**\n * Why `path!` ? because it could be `undefined` in some case\n * https://github.com/jquense/yup#validationerrorerrors-string--arraystring-value-any-path-string\n */\nconst parseErrorSchema = (\n error: Yup.ValidationError,\n validateAllFieldCriteria: boolean,\n) => {\n return (error.inner || []).reduce<Record<string, FieldError>>(\n (previous, error) => {\n if (!previous[error.path!]) {\n previous[error.path!] = { message: error.message, type: error.type! };\n }\n\n if (validateAllFieldCriteria) {\n const types = previous[error.path!].types;\n const messages = types && types[error.type!];\n\n previous[error.path!] = appendErrors(\n error.path!,\n validateAllFieldCriteria,\n previous,\n error.type!,\n messages\n ? ([] as string[]).concat(messages as string[], error.message)\n : error.message,\n ) as FieldError;\n }\n\n return previous;\n },\n {},\n );\n};\n\nexport const yupResolver: Resolver =\n (schema, schemaOptions = {}, resolverOptions = {}) =>\n async (values, context, options) => {\n try {\n if (schemaOptions.context && process.env.NODE_ENV === 'development') {\n // eslint-disable-next-line no-console\n console.warn(\n \"You should not used the yup options context. Please, use the 'useForm' context object instead\",\n );\n }\n\n const result = await schema[\n resolverOptions.mode === 'sync' ? 'validateSync' : 'validate'\n ](\n values,\n Object.assign({ abortEarly: false }, schemaOptions, { context }),\n );\n\n options.shouldUseNativeValidation && validateFieldsNatively({}, options);\n\n return {\n values: result,\n errors: {},\n };\n } catch (e: any) {\n if (!e.inner) {\n throw e;\n }\n\n return {\n values: {},\n errors: toNestError(\n parseErrorSchema(\n e,\n !options.shouldUseNativeValidation &&\n options.criteriaMode === 'all',\n ),\n options,\n ),\n };\n }\n };\n"],"names":["schema","schemaOptions","resolverOptions","values","context","options","process","env","NODE_ENV","console","warn","mode","Object","assign","abortEarly","result","shouldUseNativeValidation","validateFieldsNatively","errors","e","inner","toNestError","error","validateAllFieldCriteria","criteriaMode","reduce","previous","path","message","type","types","messages","appendErrors","concat"],"mappings":"sFAyCE,SAACA,EAAQC,EAAoBC,mBAApBD,IAAAA,EAAgB,aAAIC,IAAAA,EAAkB,aACxCC,EAAQC,EAASC,uDAEhBJ,EAAcG,SAAoC,gBAAzBE,QAAQC,IAAIC,UAEvCC,QAAQC,KACN,iHAIiBV,EACM,SAAzBE,EAAgBS,KAAkB,eAAiB,YAEnDR,EACAS,OAAOC,OAAO,CAAEC,YAAY,GAASb,EAAe,CAAEG,QAAAA,oBAJlDW,GASN,OAFAV,EAAQW,2BAA6BC,yBAAuB,GAAIZ,GAEzD,CACLF,OAAQY,EACRG,OAAQ,4EAEHC,GACP,IAAKA,EAAEC,MACL,MAAMD,EAGR,MAAO,CACLhB,OAAQ,GACRe,OAAQG,eA7DdC,EA+DUH,EA9DVI,GA+DWlB,EAAQW,2BACkB,QAAzBX,EAAQmB,cA9DZF,EAAMF,OAAS,IAAIK,OACzB,SAACC,EAAUJ,GAKT,GAJKI,EAASJ,EAAMK,QAClBD,EAASJ,EAAMK,MAAS,CAAEC,QAASN,EAAMM,QAASC,KAAMP,EAAMO,OAG5DN,EAA0B,CAC5B,IAAMO,EAAQJ,EAASJ,EAAMK,MAAOG,MAC9BC,EAAWD,GAASA,EAAMR,EAAMO,MAEtCH,EAASJ,EAAMK,MAASK,eACtBV,EAAMK,KACNJ,EACAG,EACAJ,EAAMO,KACNE,EACK,GAAgBE,OAAOF,EAAsBT,EAAMM,SACpDN,EAAMM,SAId,OAAOF,GAET,KAyCMrB,IApEe,IACvBiB,EACAC,KA8BA"}
package/yup/dist/yup.mjs CHANGED
@@ -1,2 +1,2 @@
1
- import{validateFieldsNatively as e,toNestError as t}from"@hookform/resolvers";import{appendErrors as r}from"react-hook-form";var o=function(o,n,a){return void 0===n&&(n={}),void 0===a&&(a={}),function(s,i,c){try{return Promise.resolve(function(t,r){try{var u=(n.context&&"development"===process.env.NODE_ENV&&console.warn("You should not used the yup options context. Please, use the 'useForm' context object instead"),Promise.resolve(o["sync"===a.mode?"validateSync":"validate"](s,Object.assign({abortEarly:!1},n,{context:i}))).then(function(t){return c.shouldUseNativeValidation&&e({},c),{values:t,errors:{}}}))}catch(e){return r(e)}return u&&u.then?u.then(void 0,r):u}(0,function(e){return{values:{},errors:t((o=e,n=!c.shouldUseNativeValidation&&"all"===c.criteriaMode,o.inner.reduce(function(e,t){if(e[t.path]||(e[t.path]={message:t.message,type:t.type}),n){var o=e[t.path].types,a=o&&o[t.type];e[t.path]=r(t.path,n,e,t.type,a?[].concat(a,t.message):t.message)}return e},{})),c)};var o,n}))}catch(e){return Promise.reject(e)}}};export{o as yupResolver};
1
+ import{validateFieldsNatively as e,toNestError as t}from"@hookform/resolvers";import{appendErrors as r}from"react-hook-form";var o=function(o,n,a){return void 0===n&&(n={}),void 0===a&&(a={}),function(s,i,c){try{return Promise.resolve(function(t,r){try{var u=(n.context&&"development"===process.env.NODE_ENV&&console.warn("You should not used the yup options context. Please, use the 'useForm' context object instead"),Promise.resolve(o["sync"===a.mode?"validateSync":"validate"](s,Object.assign({abortEarly:!1},n,{context:i}))).then(function(t){return c.shouldUseNativeValidation&&e({},c),{values:t,errors:{}}}))}catch(e){return r(e)}return u&&u.then?u.then(void 0,r):u}(0,function(e){if(!e.inner)throw e;return{values:{},errors:t((o=e,n=!c.shouldUseNativeValidation&&"all"===c.criteriaMode,(o.inner||[]).reduce(function(e,t){if(e[t.path]||(e[t.path]={message:t.message,type:t.type}),n){var o=e[t.path].types,a=o&&o[t.type];e[t.path]=r(t.path,n,e,t.type,a?[].concat(a,t.message):t.message)}return e},{})),c)};var o,n}))}catch(e){return Promise.reject(e)}}};export{o as yupResolver};
2
2
  //# sourceMappingURL=yup.module.js.map
@@ -1,2 +1,2 @@
1
- import{validateFieldsNatively as e,toNestError as t}from"@hookform/resolvers";import{appendErrors as o}from"react-hook-form";const a=(a,s={},r={})=>async(n,c,i)=>{try{s.context&&"development"===process.env.NODE_ENV&&console.warn("You should not used the yup options context. Please, use the 'useForm' context object instead");const t=await a["sync"===r.mode?"validateSync":"validate"](n,Object.assign({abortEarly:!1},s,{context:c}));return i.shouldUseNativeValidation&&e({},i),{values:t,errors:{}}}catch(e){return{values:{},errors:t((p=e,l=!i.shouldUseNativeValidation&&"all"===i.criteriaMode,p.inner.reduce((e,t)=>{if(e[t.path]||(e[t.path]={message:t.message,type:t.type}),l){const a=e[t.path].types,s=a&&a[t.type];e[t.path]=o(t.path,l,e,t.type,s?[].concat(s,t.message):t.message)}return e},{})),i)}}var p,l};export{a as yupResolver};
1
+ import{validateFieldsNatively as e,toNestError as t}from"@hookform/resolvers";import{appendErrors as o}from"react-hook-form";const a=(a,s={},r={})=>async(n,c,i)=>{try{s.context&&"development"===process.env.NODE_ENV&&console.warn("You should not used the yup options context. Please, use the 'useForm' context object instead");const t=await a["sync"===r.mode?"validateSync":"validate"](n,Object.assign({abortEarly:!1},s,{context:c}));return i.shouldUseNativeValidation&&e({},i),{values:t,errors:{}}}catch(e){if(!e.inner)throw e;return{values:{},errors:t((p=e,l=!i.shouldUseNativeValidation&&"all"===i.criteriaMode,(p.inner||[]).reduce((e,t)=>{if(e[t.path]||(e[t.path]={message:t.message,type:t.type}),l){const a=e[t.path].types,s=a&&a[t.type];e[t.path]=o(t.path,l,e,t.type,s?[].concat(s,t.message):t.message)}return e},{})),i)}}var p,l};export{a as yupResolver};
2
2
  //# sourceMappingURL=yup.modern.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"yup.modern.js","sources":["../src/yup.ts"],"sourcesContent":["import Yup from 'yup';\nimport { toNestError, validateFieldsNatively } from '@hookform/resolvers';\nimport { appendErrors, FieldError } from 'react-hook-form';\nimport { Resolver } from './types';\n\n/**\n * Why `path!` ? because it could be `undefined` in some case\n * https://github.com/jquense/yup#validationerrorerrors-string--arraystring-value-any-path-string\n */\nconst parseErrorSchema = (\n error: Yup.ValidationError,\n validateAllFieldCriteria: boolean,\n) => {\n return error.inner.reduce<Record<string, FieldError>>((previous, error) => {\n if (!previous[error.path!]) {\n previous[error.path!] = { message: error.message, type: error.type! };\n }\n\n if (validateAllFieldCriteria) {\n const types = previous[error.path!].types;\n const messages = types && types[error.type!];\n\n previous[error.path!] = appendErrors(\n error.path!,\n validateAllFieldCriteria,\n previous,\n error.type!,\n messages\n ? ([] as string[]).concat(messages as string[], error.message)\n : error.message,\n ) as FieldError;\n }\n\n return previous;\n }, {});\n};\n\nexport const yupResolver: Resolver =\n (schema, schemaOptions = {}, resolverOptions = {}) =>\n async (values, context, options) => {\n try {\n if (schemaOptions.context && process.env.NODE_ENV === 'development') {\n // eslint-disable-next-line no-console\n console.warn(\n \"You should not used the yup options context. Please, use the 'useForm' context object instead\",\n );\n }\n\n const result = await schema[\n resolverOptions.mode === 'sync' ? 'validateSync' : 'validate'\n ](\n values,\n Object.assign({ abortEarly: false }, schemaOptions, { context }),\n );\n\n options.shouldUseNativeValidation && validateFieldsNatively({}, options);\n\n return {\n values: result,\n errors: {},\n };\n } catch (e: any) {\n return {\n values: {},\n errors: toNestError(\n parseErrorSchema(\n e,\n !options.shouldUseNativeValidation &&\n options.criteriaMode === 'all',\n ),\n options,\n ),\n };\n }\n };\n"],"names":["yupResolver","schema","schemaOptions","resolverOptions","async","values","context","options","process","env","NODE_ENV","console","warn","result","mode","Object","assign","abortEarly","shouldUseNativeValidation","validateFieldsNatively","errors","e","toNestError","error","validateAllFieldCriteria","criteriaMode","inner","reduce","previous","path","message","type","types","messages","appendErrors","concat"],"mappings":"6HASA,MA4BaA,EACX,CAACC,EAAQC,EAAgB,GAAIC,EAAkB,KAC/CC,MAAOC,EAAQC,EAASC,KACtB,IACML,EAAcI,SAAoC,gBAAzBE,QAAQC,IAAIC,UAEvCC,QAAQC,KACN,iGAIJ,MAAMC,QAAeZ,EACM,SAAzBE,EAAgBW,KAAkB,eAAiB,YAEnDT,EACAU,OAAOC,OAAO,CAAEC,YAAY,GAASf,EAAe,CAAEI,QAAAA,KAKxD,OAFAC,EAAQW,2BAA6BC,EAAuB,GAAIZ,GAEzD,CACLF,OAAQQ,EACRO,OAAQ,IAEV,MAAOC,GACP,MAAO,CACLhB,OAAQ,GACRe,OAAQE,GAtDdC,EAwDUF,EAvDVG,GAwDWjB,EAAQW,2BACkB,QAAzBX,EAAQkB,aAvDbF,EAAMG,MAAMC,OAAmC,CAACC,EAAUL,KAK/D,GAJKK,EAASL,EAAMM,QAClBD,EAASL,EAAMM,MAAS,CAAEC,QAASP,EAAMO,QAASC,KAAMR,EAAMQ,OAG5DP,EAA0B,CAC5B,MAAMQ,EAAQJ,EAASL,EAAMM,MAAOG,MAC9BC,EAAWD,GAASA,EAAMT,EAAMQ,MAEtCH,EAASL,EAAMM,MAASK,EACtBX,EAAMM,KACNL,EACAI,EACAL,EAAMQ,KACNE,EACK,GAAgBE,OAAOF,EAAsBV,EAAMO,SACpDP,EAAMO,SAId,OAAOF,GACN,KAoCKrB,IA7De,IACvBgB,EACAC"}
1
+ {"version":3,"file":"yup.modern.js","sources":["../src/yup.ts"],"sourcesContent":["import Yup from 'yup';\nimport { toNestError, validateFieldsNatively } from '@hookform/resolvers';\nimport { appendErrors, FieldError } from 'react-hook-form';\nimport { Resolver } from './types';\n\n/**\n * Why `path!` ? because it could be `undefined` in some case\n * https://github.com/jquense/yup#validationerrorerrors-string--arraystring-value-any-path-string\n */\nconst parseErrorSchema = (\n error: Yup.ValidationError,\n validateAllFieldCriteria: boolean,\n) => {\n return (error.inner || []).reduce<Record<string, FieldError>>(\n (previous, error) => {\n if (!previous[error.path!]) {\n previous[error.path!] = { message: error.message, type: error.type! };\n }\n\n if (validateAllFieldCriteria) {\n const types = previous[error.path!].types;\n const messages = types && types[error.type!];\n\n previous[error.path!] = appendErrors(\n error.path!,\n validateAllFieldCriteria,\n previous,\n error.type!,\n messages\n ? ([] as string[]).concat(messages as string[], error.message)\n : error.message,\n ) as FieldError;\n }\n\n return previous;\n },\n {},\n );\n};\n\nexport const yupResolver: Resolver =\n (schema, schemaOptions = {}, resolverOptions = {}) =>\n async (values, context, options) => {\n try {\n if (schemaOptions.context && process.env.NODE_ENV === 'development') {\n // eslint-disable-next-line no-console\n console.warn(\n \"You should not used the yup options context. Please, use the 'useForm' context object instead\",\n );\n }\n\n const result = await schema[\n resolverOptions.mode === 'sync' ? 'validateSync' : 'validate'\n ](\n values,\n Object.assign({ abortEarly: false }, schemaOptions, { context }),\n );\n\n options.shouldUseNativeValidation && validateFieldsNatively({}, options);\n\n return {\n values: result,\n errors: {},\n };\n } catch (e: any) {\n if (!e.inner) {\n throw e;\n }\n\n return {\n values: {},\n errors: toNestError(\n parseErrorSchema(\n e,\n !options.shouldUseNativeValidation &&\n options.criteriaMode === 'all',\n ),\n options,\n ),\n };\n }\n };\n"],"names":["yupResolver","schema","schemaOptions","resolverOptions","async","values","context","options","process","env","NODE_ENV","console","warn","result","mode","Object","assign","abortEarly","shouldUseNativeValidation","validateFieldsNatively","errors","e","inner","toNestError","error","validateAllFieldCriteria","criteriaMode","reduce","previous","path","message","type","types","messages","appendErrors","concat"],"mappings":"6HASA,MA+BaA,EACX,CAACC,EAAQC,EAAgB,GAAIC,EAAkB,KAC/CC,MAAOC,EAAQC,EAASC,KACtB,IACML,EAAcI,SAAoC,gBAAzBE,QAAQC,IAAIC,UAEvCC,QAAQC,KACN,iGAIJ,MAAMC,QAAeZ,EACM,SAAzBE,EAAgBW,KAAkB,eAAiB,YAEnDT,EACAU,OAAOC,OAAO,CAAEC,YAAY,GAASf,EAAe,CAAEI,QAAAA,KAKxD,OAFAC,EAAQW,2BAA6BC,EAAuB,GAAIZ,GAEzD,CACLF,OAAQQ,EACRO,OAAQ,IAEV,MAAOC,GACP,IAAKA,EAAEC,MACL,MAAMD,EAGR,MAAO,CACLhB,OAAQ,GACRe,OAAQG,GA7DdC,EA+DUH,EA9DVI,GA+DWlB,EAAQW,2BACkB,QAAzBX,EAAQmB,cA9DZF,EAAMF,OAAS,IAAIK,OACzB,CAACC,EAAUJ,KAKT,GAJKI,EAASJ,EAAMK,QAClBD,EAASJ,EAAMK,MAAS,CAAEC,QAASN,EAAMM,QAASC,KAAMP,EAAMO,OAG5DN,EAA0B,CAC5B,MAAMO,EAAQJ,EAASJ,EAAMK,MAAOG,MAC9BC,EAAWD,GAASA,EAAMR,EAAMO,MAEtCH,EAASJ,EAAMK,MAASK,EACtBV,EAAMK,KACNJ,EACAG,EACAJ,EAAMO,KACNE,EACK,GAAgBE,OAAOF,EAAsBT,EAAMM,SACpDN,EAAMM,SAId,OAAOF,GAET,KAyCMrB,IApEe,IACvBiB,EACAC"}
@@ -1,2 +1,2 @@
1
- import{validateFieldsNatively as e,toNestError as t}from"@hookform/resolvers";import{appendErrors as r}from"react-hook-form";var o=function(o,n,a){return void 0===n&&(n={}),void 0===a&&(a={}),function(s,i,c){try{return Promise.resolve(function(t,r){try{var u=(n.context&&"development"===process.env.NODE_ENV&&console.warn("You should not used the yup options context. Please, use the 'useForm' context object instead"),Promise.resolve(o["sync"===a.mode?"validateSync":"validate"](s,Object.assign({abortEarly:!1},n,{context:i}))).then(function(t){return c.shouldUseNativeValidation&&e({},c),{values:t,errors:{}}}))}catch(e){return r(e)}return u&&u.then?u.then(void 0,r):u}(0,function(e){return{values:{},errors:t((o=e,n=!c.shouldUseNativeValidation&&"all"===c.criteriaMode,o.inner.reduce(function(e,t){if(e[t.path]||(e[t.path]={message:t.message,type:t.type}),n){var o=e[t.path].types,a=o&&o[t.type];e[t.path]=r(t.path,n,e,t.type,a?[].concat(a,t.message):t.message)}return e},{})),c)};var o,n}))}catch(e){return Promise.reject(e)}}};export{o as yupResolver};
1
+ import{validateFieldsNatively as e,toNestError as t}from"@hookform/resolvers";import{appendErrors as r}from"react-hook-form";var o=function(o,n,a){return void 0===n&&(n={}),void 0===a&&(a={}),function(s,i,c){try{return Promise.resolve(function(t,r){try{var u=(n.context&&"development"===process.env.NODE_ENV&&console.warn("You should not used the yup options context. Please, use the 'useForm' context object instead"),Promise.resolve(o["sync"===a.mode?"validateSync":"validate"](s,Object.assign({abortEarly:!1},n,{context:i}))).then(function(t){return c.shouldUseNativeValidation&&e({},c),{values:t,errors:{}}}))}catch(e){return r(e)}return u&&u.then?u.then(void 0,r):u}(0,function(e){if(!e.inner)throw e;return{values:{},errors:t((o=e,n=!c.shouldUseNativeValidation&&"all"===c.criteriaMode,(o.inner||[]).reduce(function(e,t){if(e[t.path]||(e[t.path]={message:t.message,type:t.type}),n){var o=e[t.path].types,a=o&&o[t.type];e[t.path]=r(t.path,n,e,t.type,a?[].concat(a,t.message):t.message)}return e},{})),c)};var o,n}))}catch(e){return Promise.reject(e)}}};export{o as yupResolver};
2
2
  //# sourceMappingURL=yup.module.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"yup.module.js","sources":["../src/yup.ts"],"sourcesContent":["import Yup from 'yup';\nimport { toNestError, validateFieldsNatively } from '@hookform/resolvers';\nimport { appendErrors, FieldError } from 'react-hook-form';\nimport { Resolver } from './types';\n\n/**\n * Why `path!` ? because it could be `undefined` in some case\n * https://github.com/jquense/yup#validationerrorerrors-string--arraystring-value-any-path-string\n */\nconst parseErrorSchema = (\n error: Yup.ValidationError,\n validateAllFieldCriteria: boolean,\n) => {\n return error.inner.reduce<Record<string, FieldError>>((previous, error) => {\n if (!previous[error.path!]) {\n previous[error.path!] = { message: error.message, type: error.type! };\n }\n\n if (validateAllFieldCriteria) {\n const types = previous[error.path!].types;\n const messages = types && types[error.type!];\n\n previous[error.path!] = appendErrors(\n error.path!,\n validateAllFieldCriteria,\n previous,\n error.type!,\n messages\n ? ([] as string[]).concat(messages as string[], error.message)\n : error.message,\n ) as FieldError;\n }\n\n return previous;\n }, {});\n};\n\nexport const yupResolver: Resolver =\n (schema, schemaOptions = {}, resolverOptions = {}) =>\n async (values, context, options) => {\n try {\n if (schemaOptions.context && process.env.NODE_ENV === 'development') {\n // eslint-disable-next-line no-console\n console.warn(\n \"You should not used the yup options context. Please, use the 'useForm' context object instead\",\n );\n }\n\n const result = await schema[\n resolverOptions.mode === 'sync' ? 'validateSync' : 'validate'\n ](\n values,\n Object.assign({ abortEarly: false }, schemaOptions, { context }),\n );\n\n options.shouldUseNativeValidation && validateFieldsNatively({}, options);\n\n return {\n values: result,\n errors: {},\n };\n } catch (e: any) {\n return {\n values: {},\n errors: toNestError(\n parseErrorSchema(\n e,\n !options.shouldUseNativeValidation &&\n options.criteriaMode === 'all',\n ),\n options,\n ),\n };\n }\n };\n"],"names":["yupResolver","schema","schemaOptions","resolverOptions","values","context","options","process","env","NODE_ENV","console","warn","mode","Object","assign","abortEarly","result","shouldUseNativeValidation","validateFieldsNatively","errors","e","toNestError","error","validateAllFieldCriteria","criteriaMode","inner","reduce","previous","path","message","type","types","messages","appendErrors","concat"],"mappings":"6HASA,IA4BaA,EACX,SAACC,EAAQC,EAAoBC,mBAApBD,IAAAA,EAAgB,aAAIC,IAAAA,EAAkB,aACxCC,EAAQC,EAASC,uDAEhBJ,EAAcG,SAAoC,gBAAzBE,QAAQC,IAAIC,UAEvCC,QAAQC,KACN,iHAIiBV,EACM,SAAzBE,EAAgBS,KAAkB,eAAiB,YAEnDR,EACAS,OAAOC,OAAO,CAAEC,YAAY,GAASb,EAAe,CAAEG,QAAAA,oBAJlDW,GASN,OAFAV,EAAQW,2BAA6BC,EAAuB,GAAIZ,GAEzD,CACLF,OAAQY,EACRG,OAAQ,4EAEHC,GACP,MAAO,CACLhB,OAAQ,GACRe,OAAQE,GAtDdC,EAwDUF,EAvDVG,GAwDWjB,EAAQW,2BACkB,QAAzBX,EAAQkB,aAvDbF,EAAMG,MAAMC,OAAmC,SAACC,EAAUL,GAK/D,GAJKK,EAASL,EAAMM,QAClBD,EAASL,EAAMM,MAAS,CAAEC,QAASP,EAAMO,QAASC,KAAMR,EAAMQ,OAG5DP,EAA0B,CAC5B,IAAMQ,EAAQJ,EAASL,EAAMM,MAAOG,MAC9BC,EAAWD,GAASA,EAAMT,EAAMQ,MAEtCH,EAASL,EAAMM,MAASK,EACtBX,EAAMM,KACNL,EACAI,EACAL,EAAMQ,KACNE,EACK,GAAgBE,OAAOF,EAAsBV,EAAMO,SACpDP,EAAMO,SAId,OAAOF,GACN,KAoCKrB,IA7De,IACvBgB,EACAC,KA2BA"}
1
+ {"version":3,"file":"yup.module.js","sources":["../src/yup.ts"],"sourcesContent":["import Yup from 'yup';\nimport { toNestError, validateFieldsNatively } from '@hookform/resolvers';\nimport { appendErrors, FieldError } from 'react-hook-form';\nimport { Resolver } from './types';\n\n/**\n * Why `path!` ? because it could be `undefined` in some case\n * https://github.com/jquense/yup#validationerrorerrors-string--arraystring-value-any-path-string\n */\nconst parseErrorSchema = (\n error: Yup.ValidationError,\n validateAllFieldCriteria: boolean,\n) => {\n return (error.inner || []).reduce<Record<string, FieldError>>(\n (previous, error) => {\n if (!previous[error.path!]) {\n previous[error.path!] = { message: error.message, type: error.type! };\n }\n\n if (validateAllFieldCriteria) {\n const types = previous[error.path!].types;\n const messages = types && types[error.type!];\n\n previous[error.path!] = appendErrors(\n error.path!,\n validateAllFieldCriteria,\n previous,\n error.type!,\n messages\n ? ([] as string[]).concat(messages as string[], error.message)\n : error.message,\n ) as FieldError;\n }\n\n return previous;\n },\n {},\n );\n};\n\nexport const yupResolver: Resolver =\n (schema, schemaOptions = {}, resolverOptions = {}) =>\n async (values, context, options) => {\n try {\n if (schemaOptions.context && process.env.NODE_ENV === 'development') {\n // eslint-disable-next-line no-console\n console.warn(\n \"You should not used the yup options context. Please, use the 'useForm' context object instead\",\n );\n }\n\n const result = await schema[\n resolverOptions.mode === 'sync' ? 'validateSync' : 'validate'\n ](\n values,\n Object.assign({ abortEarly: false }, schemaOptions, { context }),\n );\n\n options.shouldUseNativeValidation && validateFieldsNatively({}, options);\n\n return {\n values: result,\n errors: {},\n };\n } catch (e: any) {\n if (!e.inner) {\n throw e;\n }\n\n return {\n values: {},\n errors: toNestError(\n parseErrorSchema(\n e,\n !options.shouldUseNativeValidation &&\n options.criteriaMode === 'all',\n ),\n options,\n ),\n };\n }\n };\n"],"names":["yupResolver","schema","schemaOptions","resolverOptions","values","context","options","process","env","NODE_ENV","console","warn","mode","Object","assign","abortEarly","result","shouldUseNativeValidation","validateFieldsNatively","errors","e","inner","toNestError","error","validateAllFieldCriteria","criteriaMode","reduce","previous","path","message","type","types","messages","appendErrors","concat"],"mappings":"6HASA,IA+BaA,EACX,SAACC,EAAQC,EAAoBC,mBAApBD,IAAAA,EAAgB,aAAIC,IAAAA,EAAkB,aACxCC,EAAQC,EAASC,uDAEhBJ,EAAcG,SAAoC,gBAAzBE,QAAQC,IAAIC,UAEvCC,QAAQC,KACN,iHAIiBV,EACM,SAAzBE,EAAgBS,KAAkB,eAAiB,YAEnDR,EACAS,OAAOC,OAAO,CAAEC,YAAY,GAASb,EAAe,CAAEG,QAAAA,oBAJlDW,GASN,OAFAV,EAAQW,2BAA6BC,EAAuB,GAAIZ,GAEzD,CACLF,OAAQY,EACRG,OAAQ,4EAEHC,GACP,IAAKA,EAAEC,MACL,MAAMD,EAGR,MAAO,CACLhB,OAAQ,GACRe,OAAQG,GA7DdC,EA+DUH,EA9DVI,GA+DWlB,EAAQW,2BACkB,QAAzBX,EAAQmB,cA9DZF,EAAMF,OAAS,IAAIK,OACzB,SAACC,EAAUJ,GAKT,GAJKI,EAASJ,EAAMK,QAClBD,EAASJ,EAAMK,MAAS,CAAEC,QAASN,EAAMM,QAASC,KAAMP,EAAMO,OAG5DN,EAA0B,CAC5B,IAAMO,EAAQJ,EAASJ,EAAMK,MAAOG,MAC9BC,EAAWD,GAASA,EAAMR,EAAMO,MAEtCH,EAASJ,EAAMK,MAASK,EACtBV,EAAMK,KACNJ,EACAG,EACAJ,EAAMO,KACNE,EACK,GAAgBE,OAAOF,EAAsBT,EAAMM,SACpDN,EAAMM,SAId,OAAOF,GAET,KAyCMrB,IApEe,IACvBiB,EACAC,KA8BA"}
@@ -1,2 +1,2 @@
1
- !function(e,o){"object"==typeof exports&&"undefined"!=typeof module?o(exports,require("@hookform/resolvers"),require("react-hook-form")):"function"==typeof define&&define.amd?define(["exports","@hookform/resolvers","react-hook-form"],o):o((e||self).hookformResolversYup={},e.hookformResolvers,e.reactHookForm)}(this,function(e,o,t){e.yupResolver=function(e,r,n){return void 0===r&&(r={}),void 0===n&&(n={}),function(s,a,i){try{return Promise.resolve(function(t,u){try{var c=(r.context&&"development"===process.env.NODE_ENV&&console.warn("You should not used the yup options context. Please, use the 'useForm' context object instead"),Promise.resolve(e["sync"===n.mode?"validateSync":"validate"](s,Object.assign({abortEarly:!1},r,{context:a}))).then(function(e){return i.shouldUseNativeValidation&&o.validateFieldsNatively({},i),{values:e,errors:{}}}))}catch(e){return u(e)}return c&&c.then?c.then(void 0,u):c}(0,function(e){return{values:{},errors:o.toNestError((r=e,n=!i.shouldUseNativeValidation&&"all"===i.criteriaMode,r.inner.reduce(function(e,o){if(e[o.path]||(e[o.path]={message:o.message,type:o.type}),n){var r=e[o.path].types,s=r&&r[o.type];e[o.path]=t.appendErrors(o.path,n,e,o.type,s?[].concat(s,o.message):o.message)}return e},{})),i)};var r,n}))}catch(e){return Promise.reject(e)}}}});
1
+ !function(e,o){"object"==typeof exports&&"undefined"!=typeof module?o(exports,require("@hookform/resolvers"),require("react-hook-form")):"function"==typeof define&&define.amd?define(["exports","@hookform/resolvers","react-hook-form"],o):o((e||self).hookformResolversYup={},e.hookformResolvers,e.reactHookForm)}(this,function(e,o,t){e.yupResolver=function(e,r,n){return void 0===r&&(r={}),void 0===n&&(n={}),function(s,a,i){try{return Promise.resolve(function(t,u){try{var c=(r.context&&"development"===process.env.NODE_ENV&&console.warn("You should not used the yup options context. Please, use the 'useForm' context object instead"),Promise.resolve(e["sync"===n.mode?"validateSync":"validate"](s,Object.assign({abortEarly:!1},r,{context:a}))).then(function(e){return i.shouldUseNativeValidation&&o.validateFieldsNatively({},i),{values:e,errors:{}}}))}catch(e){return u(e)}return c&&c.then?c.then(void 0,u):c}(0,function(e){if(!e.inner)throw e;return{values:{},errors:o.toNestError((r=e,n=!i.shouldUseNativeValidation&&"all"===i.criteriaMode,(r.inner||[]).reduce(function(e,o){if(e[o.path]||(e[o.path]={message:o.message,type:o.type}),n){var r=e[o.path].types,s=r&&r[o.type];e[o.path]=t.appendErrors(o.path,n,e,o.type,s?[].concat(s,o.message):o.message)}return e},{})),i)};var r,n}))}catch(e){return Promise.reject(e)}}}});
2
2
  //# sourceMappingURL=yup.umd.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"yup.umd.js","sources":["../src/yup.ts"],"sourcesContent":["import Yup from 'yup';\nimport { toNestError, validateFieldsNatively } from '@hookform/resolvers';\nimport { appendErrors, FieldError } from 'react-hook-form';\nimport { Resolver } from './types';\n\n/**\n * Why `path!` ? because it could be `undefined` in some case\n * https://github.com/jquense/yup#validationerrorerrors-string--arraystring-value-any-path-string\n */\nconst parseErrorSchema = (\n error: Yup.ValidationError,\n validateAllFieldCriteria: boolean,\n) => {\n return error.inner.reduce<Record<string, FieldError>>((previous, error) => {\n if (!previous[error.path!]) {\n previous[error.path!] = { message: error.message, type: error.type! };\n }\n\n if (validateAllFieldCriteria) {\n const types = previous[error.path!].types;\n const messages = types && types[error.type!];\n\n previous[error.path!] = appendErrors(\n error.path!,\n validateAllFieldCriteria,\n previous,\n error.type!,\n messages\n ? ([] as string[]).concat(messages as string[], error.message)\n : error.message,\n ) as FieldError;\n }\n\n return previous;\n }, {});\n};\n\nexport const yupResolver: Resolver =\n (schema, schemaOptions = {}, resolverOptions = {}) =>\n async (values, context, options) => {\n try {\n if (schemaOptions.context && process.env.NODE_ENV === 'development') {\n // eslint-disable-next-line no-console\n console.warn(\n \"You should not used the yup options context. Please, use the 'useForm' context object instead\",\n );\n }\n\n const result = await schema[\n resolverOptions.mode === 'sync' ? 'validateSync' : 'validate'\n ](\n values,\n Object.assign({ abortEarly: false }, schemaOptions, { context }),\n );\n\n options.shouldUseNativeValidation && validateFieldsNatively({}, options);\n\n return {\n values: result,\n errors: {},\n };\n } catch (e: any) {\n return {\n values: {},\n errors: toNestError(\n parseErrorSchema(\n e,\n !options.shouldUseNativeValidation &&\n options.criteriaMode === 'all',\n ),\n options,\n ),\n };\n }\n };\n"],"names":["schema","schemaOptions","resolverOptions","values","context","options","process","env","NODE_ENV","console","warn","mode","Object","assign","abortEarly","result","shouldUseNativeValidation","validateFieldsNatively","errors","e","toNestError","error","validateAllFieldCriteria","criteriaMode","inner","reduce","previous","path","message","type","types","messages","appendErrors","concat"],"mappings":"sYAsCE,SAACA,EAAQC,EAAoBC,mBAApBD,IAAAA,EAAgB,aAAIC,IAAAA,EAAkB,aACxCC,EAAQC,EAASC,uDAEhBJ,EAAcG,SAAoC,gBAAzBE,QAAQC,IAAIC,UAEvCC,QAAQC,KACN,iHAIiBV,EACM,SAAzBE,EAAgBS,KAAkB,eAAiB,YAEnDR,EACAS,OAAOC,OAAO,CAAEC,YAAY,GAASb,EAAe,CAAEG,QAAAA,oBAJlDW,GASN,OAFAV,EAAQW,2BAA6BC,yBAAuB,GAAIZ,GAEzD,CACLF,OAAQY,EACRG,OAAQ,4EAEHC,GACP,MAAO,CACLhB,OAAQ,GACRe,OAAQE,eAtDdC,EAwDUF,EAvDVG,GAwDWjB,EAAQW,2BACkB,QAAzBX,EAAQkB,aAvDbF,EAAMG,MAAMC,OAAmC,SAACC,EAAUL,GAK/D,GAJKK,EAASL,EAAMM,QAClBD,EAASL,EAAMM,MAAS,CAAEC,QAASP,EAAMO,QAASC,KAAMR,EAAMQ,OAG5DP,EAA0B,CAC5B,IAAMQ,EAAQJ,EAASL,EAAMM,MAAOG,MAC9BC,EAAWD,GAASA,EAAMT,EAAMQ,MAEtCH,EAASL,EAAMM,MAASK,eACtBX,EAAMM,KACNL,EACAI,EACAL,EAAMQ,KACNE,EACK,GAAgBE,OAAOF,EAAsBV,EAAMO,SACpDP,EAAMO,SAId,OAAOF,GACN,KAoCKrB,IA7De,IACvBgB,EACAC,KA2BA"}
1
+ {"version":3,"file":"yup.umd.js","sources":["../src/yup.ts"],"sourcesContent":["import Yup from 'yup';\nimport { toNestError, validateFieldsNatively } from '@hookform/resolvers';\nimport { appendErrors, FieldError } from 'react-hook-form';\nimport { Resolver } from './types';\n\n/**\n * Why `path!` ? because it could be `undefined` in some case\n * https://github.com/jquense/yup#validationerrorerrors-string--arraystring-value-any-path-string\n */\nconst parseErrorSchema = (\n error: Yup.ValidationError,\n validateAllFieldCriteria: boolean,\n) => {\n return (error.inner || []).reduce<Record<string, FieldError>>(\n (previous, error) => {\n if (!previous[error.path!]) {\n previous[error.path!] = { message: error.message, type: error.type! };\n }\n\n if (validateAllFieldCriteria) {\n const types = previous[error.path!].types;\n const messages = types && types[error.type!];\n\n previous[error.path!] = appendErrors(\n error.path!,\n validateAllFieldCriteria,\n previous,\n error.type!,\n messages\n ? ([] as string[]).concat(messages as string[], error.message)\n : error.message,\n ) as FieldError;\n }\n\n return previous;\n },\n {},\n );\n};\n\nexport const yupResolver: Resolver =\n (schema, schemaOptions = {}, resolverOptions = {}) =>\n async (values, context, options) => {\n try {\n if (schemaOptions.context && process.env.NODE_ENV === 'development') {\n // eslint-disable-next-line no-console\n console.warn(\n \"You should not used the yup options context. Please, use the 'useForm' context object instead\",\n );\n }\n\n const result = await schema[\n resolverOptions.mode === 'sync' ? 'validateSync' : 'validate'\n ](\n values,\n Object.assign({ abortEarly: false }, schemaOptions, { context }),\n );\n\n options.shouldUseNativeValidation && validateFieldsNatively({}, options);\n\n return {\n values: result,\n errors: {},\n };\n } catch (e: any) {\n if (!e.inner) {\n throw e;\n }\n\n return {\n values: {},\n errors: toNestError(\n parseErrorSchema(\n e,\n !options.shouldUseNativeValidation &&\n options.criteriaMode === 'all',\n ),\n options,\n ),\n };\n }\n };\n"],"names":["schema","schemaOptions","resolverOptions","values","context","options","process","env","NODE_ENV","console","warn","mode","Object","assign","abortEarly","result","shouldUseNativeValidation","validateFieldsNatively","errors","e","inner","toNestError","error","validateAllFieldCriteria","criteriaMode","reduce","previous","path","message","type","types","messages","appendErrors","concat"],"mappings":"sYAyCE,SAACA,EAAQC,EAAoBC,mBAApBD,IAAAA,EAAgB,aAAIC,IAAAA,EAAkB,aACxCC,EAAQC,EAASC,uDAEhBJ,EAAcG,SAAoC,gBAAzBE,QAAQC,IAAIC,UAEvCC,QAAQC,KACN,iHAIiBV,EACM,SAAzBE,EAAgBS,KAAkB,eAAiB,YAEnDR,EACAS,OAAOC,OAAO,CAAEC,YAAY,GAASb,EAAe,CAAEG,QAAAA,oBAJlDW,GASN,OAFAV,EAAQW,2BAA6BC,yBAAuB,GAAIZ,GAEzD,CACLF,OAAQY,EACRG,OAAQ,4EAEHC,GACP,IAAKA,EAAEC,MACL,MAAMD,EAGR,MAAO,CACLhB,OAAQ,GACRe,OAAQG,eA7DdC,EA+DUH,EA9DVI,GA+DWlB,EAAQW,2BACkB,QAAzBX,EAAQmB,cA9DZF,EAAMF,OAAS,IAAIK,OACzB,SAACC,EAAUJ,GAKT,GAJKI,EAASJ,EAAMK,QAClBD,EAASJ,EAAMK,MAAS,CAAEC,QAASN,EAAMM,QAASC,KAAMP,EAAMO,OAG5DN,EAA0B,CAC5B,IAAMO,EAAQJ,EAASJ,EAAMK,MAAOG,MAC9BC,EAAWD,GAASA,EAAMR,EAAMO,MAEtCH,EAASJ,EAAMK,MAASK,eACtBV,EAAMK,KACNJ,EACAG,EACAJ,EAAMO,KACNE,EACK,GAAgBE,OAAOF,EAAsBT,EAAMM,SACpDN,EAAMM,SAId,OAAOF,GAET,KAyCMrB,IApEe,IACvBiB,EACAC,KA8BA"}
@@ -28,6 +28,14 @@ export const schema = yup.object({
28
28
  ),
29
29
  });
30
30
 
31
+ export const schemaWithWhen = yup.object({
32
+ name: yup.string().required(),
33
+ value: yup.string().when('name', {
34
+ is: 'test',
35
+ then: yup.number().required(),
36
+ }),
37
+ });
38
+
31
39
  export const validData: yup.InferType<typeof schema> = {
32
40
  username: 'Doe',
33
41
  password: 'Password123_',
@@ -1,7 +1,13 @@
1
1
  /* eslint-disable no-console, @typescript-eslint/ban-ts-comment */
2
2
  import * as yup from 'yup';
3
3
  import { yupResolver } from '..';
4
- import { schema, validData, fields, invalidData } from './__fixtures__/data';
4
+ import {
5
+ schema,
6
+ validData,
7
+ fields,
8
+ invalidData,
9
+ schemaWithWhen,
10
+ } from './__fixtures__/data';
5
11
 
6
12
  const shouldUseNativeValidation = false;
7
13
 
@@ -171,4 +177,16 @@ describe('yupResolver', () => {
171
177
  expect.objectContaining({ stripUnknown: true, abortEarly: false }),
172
178
  );
173
179
  });
180
+
181
+ it('should throw an error without inner property', (done) => {
182
+ yupResolver(schemaWithWhen)({ name: 'test', value: '' }, undefined, {
183
+ fields,
184
+ shouldUseNativeValidation,
185
+ }).catch((e) => {
186
+ expect(e).toMatchInlineSnapshot(
187
+ `[TypeError: You cannot \`concat()\` schema's of different types: string and number]`,
188
+ );
189
+ done();
190
+ });
191
+ });
174
192
  });
package/yup/src/yup.ts CHANGED
@@ -11,28 +11,31 @@ const parseErrorSchema = (
11
11
  error: Yup.ValidationError,
12
12
  validateAllFieldCriteria: boolean,
13
13
  ) => {
14
- return error.inner.reduce<Record<string, FieldError>>((previous, error) => {
15
- if (!previous[error.path!]) {
16
- previous[error.path!] = { message: error.message, type: error.type! };
17
- }
14
+ return (error.inner || []).reduce<Record<string, FieldError>>(
15
+ (previous, error) => {
16
+ if (!previous[error.path!]) {
17
+ previous[error.path!] = { message: error.message, type: error.type! };
18
+ }
18
19
 
19
- if (validateAllFieldCriteria) {
20
- const types = previous[error.path!].types;
21
- const messages = types && types[error.type!];
20
+ if (validateAllFieldCriteria) {
21
+ const types = previous[error.path!].types;
22
+ const messages = types && types[error.type!];
22
23
 
23
- previous[error.path!] = appendErrors(
24
- error.path!,
25
- validateAllFieldCriteria,
26
- previous,
27
- error.type!,
28
- messages
29
- ? ([] as string[]).concat(messages as string[], error.message)
30
- : error.message,
31
- ) as FieldError;
32
- }
24
+ previous[error.path!] = appendErrors(
25
+ error.path!,
26
+ validateAllFieldCriteria,
27
+ previous,
28
+ error.type!,
29
+ messages
30
+ ? ([] as string[]).concat(messages as string[], error.message)
31
+ : error.message,
32
+ ) as FieldError;
33
+ }
33
34
 
34
- return previous;
35
- }, {});
35
+ return previous;
36
+ },
37
+ {},
38
+ );
36
39
  };
37
40
 
38
41
  export const yupResolver: Resolver =
@@ -60,6 +63,10 @@ export const yupResolver: Resolver =
60
63
  errors: {},
61
64
  };
62
65
  } catch (e: any) {
66
+ if (!e.inner) {
67
+ throw e;
68
+ }
69
+
63
70
  return {
64
71
  values: {},
65
72
  errors: toNestError(
package/zod/dist/zod.d.ts CHANGED
@@ -1,2 +1,4 @@
1
+ import { FieldError, ResolverOptions } from 'react-hook-form';
1
2
  import type { Resolver } from './types';
3
+ export declare const validateFieldsNatively: <TFieldValues>(errors: Record<string, FieldError>, options: ResolverOptions<TFieldValues>) => void;
2
4
  export declare const zodResolver: Resolver;
package/zod/dist/zod.js CHANGED
@@ -1,2 +1,2 @@
1
- var r=require("react-hook-form"),e=require("@hookform/resolvers"),o=function(e,o){for(var s={};e.length;){var n=e[0],t=n.code,i=n.message,a=n.path.join(".");if(!s[a])if("unionErrors"in n){var u=n.unionErrors[0].errors[0];s[a]={message:u.message,type:u.code}}else s[a]={message:i,type:t};if("unionErrors"in n&&n.unionErrors.forEach(function(r){return r.errors.forEach(function(r){return e.push(r)})}),o){var c=s[a].types,v=c&&c[n.code];s[a]=r.appendErrors(a,o,s,t,v?[].concat(v,n.message):n.message)}e.shift()}return s};exports.zodResolver=function(r,s,n){return void 0===n&&(n={}),function(t,i,a){try{return Promise.resolve(function(o,i){try{var u=Promise.resolve(r["sync"===n.mode?"parse":"parseAsync"](t,s)).then(function(r){return a.shouldUseNativeValidation&&e.validateFieldsNatively({},a),{errors:{},values:r}})}catch(r){return i(r)}return u&&u.then?u.then(void 0,i):u}(0,function(r){return{values:{},errors:r.isEmpty?{}:e.toNestError(o(r.errors,!a.shouldUseNativeValidation&&"all"===a.criteriaMode),a)}}))}catch(r){return Promise.reject(r)}}};
1
+ var r=require("react-hook-form"),e=function(e,t){for(var o in t.fields){var s=t.fields[o];if(s&&s.ref&&"reportValidity"in s.ref){var n=r.get(e,o);s.ref.setCustomValidity(n&&n.message||""),s.ref.reportValidity()}}},t=function(t,o){o.shouldUseNativeValidation&&e(t,o);var s={};for(var n in t){var i=r.get(o.fields,n);r.set(s,n,Object.assign(t[n],{ref:i&&i.ref}))}return s},o=function(e,t){for(var o={};e.length;){var s=e[0],n=s.code,i=s.message,a=s.path.join(".");if(!o[a])if("unionErrors"in s){var u=s.unionErrors[0].errors[0];o[a]={message:u.message,type:u.code}}else o[a]={message:i,type:n};if("unionErrors"in s&&s.unionErrors.forEach(function(r){return r.errors.forEach(function(r){return e.push(r)})}),t){var f=o[a].types,c=f&&f[s.code];o[a]=r.appendErrors(a,t,o,n,c?[].concat(c,s.message):s.message)}e.shift()}return o};exports.validateFieldsNatively=e,exports.zodResolver=function(r,s,n){return void 0===n&&(n={}),function(i,a,u){try{return Promise.resolve(function(t,o){try{var a=Promise.resolve(r["sync"===n.mode?"parse":"parseAsync"](i,s)).then(function(r){return u.shouldUseNativeValidation&&e({},u),{errors:{},values:r}})}catch(r){return o(r)}return a&&a.then?a.then(void 0,o):a}(0,function(r){return{values:{},errors:r.isEmpty?{}:t(o(r.errors,!u.shouldUseNativeValidation&&"all"===u.criteriaMode),u)}}))}catch(r){return Promise.reject(r)}}};
2
2
  //# sourceMappingURL=zod.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"zod.js","sources":["../src/zod.ts"],"sourcesContent":["import { appendErrors, FieldError, FieldErrors } from 'react-hook-form';\nimport { z } from 'zod';\nimport { toNestError, validateFieldsNatively } from '@hookform/resolvers';\nimport type { Resolver } from './types';\n\nconst parseErrorSchema = (\n zodErrors: z.ZodIssue[],\n validateAllFieldCriteria: boolean,\n) => {\n const errors: Record<string, FieldError> = {};\n for (; zodErrors.length; ) {\n const error = zodErrors[0];\n const { code, message, path } = error;\n const _path = path.join('.');\n\n if (!errors[_path]) {\n if ('unionErrors' in error) {\n const unionError = error.unionErrors[0].errors[0];\n\n errors[_path] = {\n message: unionError.message,\n type: unionError.code,\n };\n } else {\n errors[_path] = { message, type: code };\n }\n }\n\n if ('unionErrors' in error) {\n error.unionErrors.forEach((unionError) =>\n unionError.errors.forEach((e) => zodErrors.push(e)),\n );\n }\n\n if (validateAllFieldCriteria) {\n const types = errors[_path].types;\n const messages = types && types[error.code];\n\n errors[_path] = appendErrors(\n _path,\n validateAllFieldCriteria,\n errors,\n code,\n messages\n ? ([] as string[]).concat(messages as string[], error.message)\n : error.message,\n ) as FieldError;\n }\n\n zodErrors.shift();\n }\n\n return errors;\n};\n\nexport const zodResolver: Resolver =\n (schema, schemaOptions, resolverOptions = {}) =>\n async (values, _, options) => {\n try {\n const data = await schema[\n resolverOptions.mode === 'sync' ? 'parse' : 'parseAsync'\n ](values, schemaOptions);\n\n options.shouldUseNativeValidation && validateFieldsNatively({}, options);\n\n return {\n errors: {} as FieldErrors,\n values: data,\n };\n } catch (error: any) {\n return {\n values: {},\n errors: error.isEmpty\n ? {}\n : toNestError(\n parseErrorSchema(\n error.errors,\n !options.shouldUseNativeValidation &&\n options.criteriaMode === 'all',\n ),\n options,\n ),\n };\n }\n };\n"],"names":["parseErrorSchema","zodErrors","validateAllFieldCriteria","errors","length","error","code","message","_path","path","join","unionError","unionErrors","type","forEach","e","push","types","messages","appendErrors","concat","shift","schema","schemaOptions","resolverOptions","values","_","options","mode","data","shouldUseNativeValidation","validateFieldsNatively","isEmpty","toNestError","criteriaMode"],"mappings":"kEAKMA,EAAmB,SACvBC,EACAC,GAGA,IADA,IAAMC,EAAqC,GACpCF,EAAUG,QAAU,CACzB,IAAMC,EAAQJ,EAAU,GAChBK,EAAwBD,EAAxBC,KAAMC,EAAkBF,EAAlBE,QACRC,EAD0BH,EAATI,KACJC,KAAK,KAExB,IAAKP,EAAOK,GACV,GAAI,gBAAiBH,EAAO,CAC1B,IAAMM,EAAaN,EAAMO,YAAY,GAAGT,OAAO,GAE/CA,EAAOK,GAAS,CACdD,QAASI,EAAWJ,QACpBM,KAAMF,EAAWL,WAGnBH,EAAOK,GAAS,CAAED,QAAAA,EAASM,KAAMP,GAUrC,GANI,gBAAiBD,GACnBA,EAAMO,YAAYE,QAAQ,SAACH,UACzBA,EAAWR,OAAOW,QAAQ,SAACC,UAAMd,EAAUe,KAAKD,OAIhDb,EAA0B,CAC5B,IAAMe,EAAQd,EAAOK,GAAOS,MACtBC,EAAWD,GAASA,EAAMZ,EAAMC,MAEtCH,EAAOK,GAASW,eACdX,EACAN,EACAC,EACAG,EACAY,EACK,GAAgBE,OAAOF,EAAsBb,EAAME,SACpDF,EAAME,SAIdN,EAAUoB,QAGZ,OAAOlB,uBAIP,SAACmB,EAAQC,EAAeC,mBAAAA,IAAAA,EAAkB,aACnCC,EAAQC,EAAGC,sEAEKL,EACQ,SAAzBE,EAAgBI,KAAkB,QAAU,cAC5CH,EAAQF,kBAFJM,GAMN,OAFAF,EAAQG,2BAA6BC,yBAAuB,GAAIJ,GAEzD,CACLxB,OAAQ,GACRsB,OAAQI,0EAEHxB,GACP,MAAO,CACLoB,OAAQ,GACRtB,OAAQE,EAAM2B,QACV,GACAC,cACEjC,EACEK,EAAMF,QACLwB,EAAQG,2BACkB,QAAzBH,EAAQO,cAEZP,OAxBZ"}
1
+ {"version":3,"file":"zod.js","sources":["../src/zod.ts"],"sourcesContent":["import {\n appendErrors,\n FieldError,\n FieldErrors,\n set,\n get,\n Field,\n ResolverOptions,\n} from 'react-hook-form';\nimport { z } from 'zod';\nimport type { Resolver } from './types';\n\n// Native validation (web only)\nexport const validateFieldsNatively = <TFieldValues>(\n errors: Record<string, FieldError>,\n options: ResolverOptions<TFieldValues>,\n): void => {\n for (const fieldPath in options.fields) {\n const field = options.fields[fieldPath];\n\n if (field && field.ref && 'reportValidity' in field.ref) {\n const error = get(errors, fieldPath) as FieldError | undefined;\n\n field.ref.setCustomValidity((error && error.message) || '');\n\n field.ref.reportValidity();\n }\n }\n};\n\nconst toNestError = <TFieldValues>(\n errors: Record<string, FieldError>,\n options: ResolverOptions<TFieldValues>,\n): FieldErrors<TFieldValues> => {\n options.shouldUseNativeValidation && validateFieldsNatively(errors, options);\n\n const fieldErrors = {} as FieldErrors<TFieldValues>;\n for (const path in errors) {\n const field = get(options.fields, path) as Field['_f'] | undefined;\n\n set(\n fieldErrors,\n path,\n Object.assign(errors[path], { ref: field && field.ref }),\n );\n }\n\n return fieldErrors;\n};\n\nconst parseErrorSchema = (\n zodErrors: z.ZodIssue[],\n validateAllFieldCriteria: boolean,\n) => {\n const errors: Record<string, FieldError> = {};\n for (; zodErrors.length; ) {\n const error = zodErrors[0];\n const { code, message, path } = error;\n const _path = path.join('.');\n\n if (!errors[_path]) {\n if ('unionErrors' in error) {\n const unionError = error.unionErrors[0].errors[0];\n\n errors[_path] = {\n message: unionError.message,\n type: unionError.code,\n };\n } else {\n errors[_path] = { message, type: code };\n }\n }\n\n if ('unionErrors' in error) {\n error.unionErrors.forEach((unionError) =>\n unionError.errors.forEach((e) => zodErrors.push(e)),\n );\n }\n\n if (validateAllFieldCriteria) {\n const types = errors[_path].types;\n const messages = types && types[error.code];\n\n errors[_path] = appendErrors(\n _path,\n validateAllFieldCriteria,\n errors,\n code,\n messages\n ? ([] as string[]).concat(messages as string[], error.message)\n : error.message,\n ) as FieldError;\n }\n\n zodErrors.shift();\n }\n\n return errors;\n};\n\nexport const zodResolver: Resolver =\n (schema, schemaOptions, resolverOptions = {}) =>\n async (values, _, options) => {\n try {\n const data = await schema[\n resolverOptions.mode === 'sync' ? 'parse' : 'parseAsync'\n ](values, schemaOptions);\n\n options.shouldUseNativeValidation && validateFieldsNatively({}, options);\n\n return {\n errors: {} as FieldErrors,\n values: data,\n };\n } catch (error: any) {\n return {\n values: {},\n errors: error.isEmpty\n ? {}\n : toNestError(\n parseErrorSchema(\n error.errors,\n !options.shouldUseNativeValidation &&\n options.criteriaMode === 'all',\n ),\n options,\n ),\n };\n }\n };\n"],"names":["validateFieldsNatively","errors","options","fieldPath","fields","field","ref","error","get","setCustomValidity","message","reportValidity","toNestError","shouldUseNativeValidation","fieldErrors","path","set","Object","assign","parseErrorSchema","zodErrors","validateAllFieldCriteria","length","code","_path","join","unionError","unionErrors","type","forEach","e","push","types","messages","appendErrors","concat","shift","schema","schemaOptions","resolverOptions","values","_","mode","data","isEmpty","criteriaMode"],"mappings":"iCAaaA,EAAyB,SACpCC,EACAC,GAEA,IAAK,IAAMC,KAAaD,EAAQE,OAAQ,CACtC,IAAMC,EAAQH,EAAQE,OAAOD,GAE7B,GAAIE,GAASA,EAAMC,KAAO,mBAAoBD,EAAMC,IAAK,CACvD,IAAMC,EAAQC,MAAIP,EAAQE,GAE1BE,EAAMC,IAAIG,kBAAmBF,GAASA,EAAMG,SAAY,IAExDL,EAAMC,IAAIK,oBAKVC,EAAc,SAClBX,EACAC,GAEAA,EAAQW,2BAA6Bb,EAAuBC,EAAQC,GAEpE,IAAMY,EAAc,GACpB,IAAK,IAAMC,KAAQd,EAAQ,CACzB,IAAMI,EAAQG,MAAIN,EAAQE,OAAQW,GAElCC,MACEF,EACAC,EACAE,OAAOC,OAAOjB,EAAOc,GAAO,CAAET,IAAKD,GAASA,EAAMC,OAItD,OAAOQ,GAGHK,EAAmB,SACvBC,EACAC,GAGA,IADA,IAAMpB,EAAqC,GACpCmB,EAAUE,QAAU,CACzB,IAAMf,EAAQa,EAAU,GAChBG,EAAwBhB,EAAxBgB,KAAMb,EAAkBH,EAAlBG,QACRc,EAD0BjB,EAATQ,KACJU,KAAK,KAExB,IAAKxB,EAAOuB,GACV,GAAI,gBAAiBjB,EAAO,CAC1B,IAAMmB,EAAanB,EAAMoB,YAAY,GAAG1B,OAAO,GAE/CA,EAAOuB,GAAS,CACdd,QAASgB,EAAWhB,QACpBkB,KAAMF,EAAWH,WAGnBtB,EAAOuB,GAAS,CAAEd,QAAAA,EAASkB,KAAML,GAUrC,GANI,gBAAiBhB,GACnBA,EAAMoB,YAAYE,QAAQ,SAACH,UACzBA,EAAWzB,OAAO4B,QAAQ,SAACC,UAAMV,EAAUW,KAAKD,OAIhDT,EAA0B,CAC5B,IAAMW,EAAQ/B,EAAOuB,GAAOQ,MACtBC,EAAWD,GAASA,EAAMzB,EAAMgB,MAEtCtB,EAAOuB,GAASU,eACdV,EACAH,EACApB,EACAsB,EACAU,EACK,GAAgBE,OAAOF,EAAsB1B,EAAMG,SACpDH,EAAMG,SAIdU,EAAUgB,QAGZ,OAAOnC,wDAIP,SAACoC,EAAQC,EAAeC,mBAAAA,IAAAA,EAAkB,aACnCC,EAAQC,EAAGvC,sEAEKmC,EACQ,SAAzBE,EAAgBG,KAAkB,QAAU,cAC5CF,EAAQF,kBAFJK,GAMN,OAFAzC,EAAQW,2BAA6Bb,EAAuB,GAAIE,GAEzD,CACLD,OAAQ,GACRuC,OAAQG,0EAEHpC,GACP,MAAO,CACLiC,OAAQ,GACRvC,OAAQM,EAAMqC,QACV,GACAhC,EACEO,EACEZ,EAAMN,QACLC,EAAQW,2BACkB,QAAzBX,EAAQ2C,cAEZ3C,OAxBZ"}
package/zod/dist/zod.mjs CHANGED
@@ -1,2 +1,2 @@
1
- import{appendErrors as r}from"react-hook-form";import{validateFieldsNatively as e,toNestError as o}from"@hookform/resolvers";var n=function(e,o){for(var n={};e.length;){var s=e[0],t=s.code,i=s.message,a=s.path.join(".");if(!n[a])if("unionErrors"in s){var u=s.unionErrors[0].errors[0];n[a]={message:u.message,type:u.code}}else n[a]={message:i,type:t};if("unionErrors"in s&&s.unionErrors.forEach(function(r){return r.errors.forEach(function(r){return e.push(r)})}),o){var c=n[a].types,f=c&&c[s.code];n[a]=r(a,o,n,t,f?[].concat(f,s.message):s.message)}e.shift()}return n},s=function(r,s,t){return void 0===t&&(t={}),function(i,a,u){try{return Promise.resolve(function(o,n){try{var a=Promise.resolve(r["sync"===t.mode?"parse":"parseAsync"](i,s)).then(function(r){return u.shouldUseNativeValidation&&e({},u),{errors:{},values:r}})}catch(r){return n(r)}return a&&a.then?a.then(void 0,n):a}(0,function(r){return{values:{},errors:r.isEmpty?{}:o(n(r.errors,!u.shouldUseNativeValidation&&"all"===u.criteriaMode),u)}}))}catch(r){return Promise.reject(r)}}};export{s as zodResolver};
1
+ import{get as r,set as e,appendErrors as o}from"react-hook-form";var n=function(e,o){for(var n in o.fields){var t=o.fields[n];if(t&&t.ref&&"reportValidity"in t.ref){var i=r(e,n);t.ref.setCustomValidity(i&&i.message||""),t.ref.reportValidity()}}},t=function(o,t){t.shouldUseNativeValidation&&n(o,t);var i={};for(var s in o){var a=r(t.fields,s);e(i,s,Object.assign(o[s],{ref:a&&a.ref}))}return i},i=function(r,e){for(var n={};r.length;){var t=r[0],i=t.code,s=t.message,a=t.path.join(".");if(!n[a])if("unionErrors"in t){var u=t.unionErrors[0].errors[0];n[a]={message:u.message,type:u.code}}else n[a]={message:s,type:i};if("unionErrors"in t&&t.unionErrors.forEach(function(e){return e.errors.forEach(function(e){return r.push(e)})}),e){var f=n[a].types,c=f&&f[t.code];n[a]=o(a,e,n,i,c?[].concat(c,t.message):t.message)}r.shift()}return n},s=function(r,e,o){return void 0===o&&(o={}),function(s,a,u){try{return Promise.resolve(function(t,i){try{var a=Promise.resolve(r["sync"===o.mode?"parse":"parseAsync"](s,e)).then(function(r){return u.shouldUseNativeValidation&&n({},u),{errors:{},values:r}})}catch(r){return i(r)}return a&&a.then?a.then(void 0,i):a}(0,function(r){return{values:{},errors:r.isEmpty?{}:t(i(r.errors,!u.shouldUseNativeValidation&&"all"===u.criteriaMode),u)}}))}catch(r){return Promise.reject(r)}}};export{n as validateFieldsNatively,s as zodResolver};
2
2
  //# sourceMappingURL=zod.module.js.map
@@ -1,2 +1,2 @@
1
- import{appendErrors as r}from"react-hook-form";import{validateFieldsNatively as o,toNestError as s}from"@hookform/resolvers";const e=(o,s)=>{const e={};for(;o.length;){const t=o[0],{code:a,message:n,path:i}=t,c=i.join(".");if(!e[c])if("unionErrors"in t){const r=t.unionErrors[0].errors[0];e[c]={message:r.message,type:r.code}}else e[c]={message:n,type:a};if("unionErrors"in t&&t.unionErrors.forEach(r=>r.errors.forEach(r=>o.push(r))),s){const o=e[c].types,n=o&&o[t.code];e[c]=r(c,s,e,a,n?[].concat(n,t.message):t.message)}o.shift()}return e},t=(r,t,a={})=>async(n,i,c)=>{try{const s=await r["sync"===a.mode?"parse":"parseAsync"](n,t);return c.shouldUseNativeValidation&&o({},c),{errors:{},values:s}}catch(r){return{values:{},errors:r.isEmpty?{}:s(e(r.errors,!c.shouldUseNativeValidation&&"all"===c.criteriaMode),c)}}};export{t as zodResolver};
1
+ import{get as e,set as r,appendErrors as s}from"react-hook-form";const o=(r,s)=>{for(const o in s.fields){const t=s.fields[o];if(t&&t.ref&&"reportValidity"in t.ref){const s=e(r,o);t.ref.setCustomValidity(s&&s.message||""),t.ref.reportValidity()}}},t=(s,t)=>{t.shouldUseNativeValidation&&o(s,t);const i={};for(const o in s){const n=e(t.fields,o);r(i,o,Object.assign(s[o],{ref:n&&n.ref}))}return i},i=(e,r)=>{const o={};for(;e.length;){const t=e[0],{code:i,message:n,path:a}=t,c=a.join(".");if(!o[c])if("unionErrors"in t){const e=t.unionErrors[0].errors[0];o[c]={message:e.message,type:e.code}}else o[c]={message:n,type:i};if("unionErrors"in t&&t.unionErrors.forEach(r=>r.errors.forEach(r=>e.push(r))),r){const e=o[c].types,n=e&&e[t.code];o[c]=s(c,r,o,i,n?[].concat(n,t.message):t.message)}e.shift()}return o},n=(e,r,s={})=>async(n,a,c)=>{try{const t=await e["sync"===s.mode?"parse":"parseAsync"](n,r);return c.shouldUseNativeValidation&&o({},c),{errors:{},values:t}}catch(e){return{values:{},errors:e.isEmpty?{}:t(i(e.errors,!c.shouldUseNativeValidation&&"all"===c.criteriaMode),c)}}};export{o as validateFieldsNatively,n as zodResolver};
2
2
  //# sourceMappingURL=zod.modern.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"zod.modern.js","sources":["../src/zod.ts"],"sourcesContent":["import { appendErrors, FieldError, FieldErrors } from 'react-hook-form';\nimport { z } from 'zod';\nimport { toNestError, validateFieldsNatively } from '@hookform/resolvers';\nimport type { Resolver } from './types';\n\nconst parseErrorSchema = (\n zodErrors: z.ZodIssue[],\n validateAllFieldCriteria: boolean,\n) => {\n const errors: Record<string, FieldError> = {};\n for (; zodErrors.length; ) {\n const error = zodErrors[0];\n const { code, message, path } = error;\n const _path = path.join('.');\n\n if (!errors[_path]) {\n if ('unionErrors' in error) {\n const unionError = error.unionErrors[0].errors[0];\n\n errors[_path] = {\n message: unionError.message,\n type: unionError.code,\n };\n } else {\n errors[_path] = { message, type: code };\n }\n }\n\n if ('unionErrors' in error) {\n error.unionErrors.forEach((unionError) =>\n unionError.errors.forEach((e) => zodErrors.push(e)),\n );\n }\n\n if (validateAllFieldCriteria) {\n const types = errors[_path].types;\n const messages = types && types[error.code];\n\n errors[_path] = appendErrors(\n _path,\n validateAllFieldCriteria,\n errors,\n code,\n messages\n ? ([] as string[]).concat(messages as string[], error.message)\n : error.message,\n ) as FieldError;\n }\n\n zodErrors.shift();\n }\n\n return errors;\n};\n\nexport const zodResolver: Resolver =\n (schema, schemaOptions, resolverOptions = {}) =>\n async (values, _, options) => {\n try {\n const data = await schema[\n resolverOptions.mode === 'sync' ? 'parse' : 'parseAsync'\n ](values, schemaOptions);\n\n options.shouldUseNativeValidation && validateFieldsNatively({}, options);\n\n return {\n errors: {} as FieldErrors,\n values: data,\n };\n } catch (error: any) {\n return {\n values: {},\n errors: error.isEmpty\n ? {}\n : toNestError(\n parseErrorSchema(\n error.errors,\n !options.shouldUseNativeValidation &&\n options.criteriaMode === 'all',\n ),\n options,\n ),\n };\n }\n };\n"],"names":["parseErrorSchema","zodErrors","validateAllFieldCriteria","errors","length","error","code","message","path","_path","join","unionError","unionErrors","type","forEach","e","push","types","messages","appendErrors","concat","shift","zodResolver","schema","schemaOptions","resolverOptions","async","values","_","options","data","mode","shouldUseNativeValidation","validateFieldsNatively","isEmpty","toNestError","criteriaMode"],"mappings":"6HAKA,MAAMA,EAAmB,CACvBC,EACAC,KAEA,MAAMC,EAAqC,GAC3C,KAAOF,EAAUG,QAAU,CACzB,MAAMC,EAAQJ,EAAU,IAClBK,KAAEA,EAAFC,QAAQA,EAARC,KAAiBA,GAASH,EAC1BI,EAAQD,EAAKE,KAAK,KAExB,IAAKP,EAAOM,GACV,GAAI,gBAAiBJ,EAAO,CAC1B,MAAMM,EAAaN,EAAMO,YAAY,GAAGT,OAAO,GAE/CA,EAAOM,GAAS,CACdF,QAASI,EAAWJ,QACpBM,KAAMF,EAAWL,WAGnBH,EAAOM,GAAS,CAAEF,QAAAA,EAASM,KAAMP,GAUrC,GANI,gBAAiBD,GACnBA,EAAMO,YAAYE,QAASH,GACzBA,EAAWR,OAAOW,QAASC,GAAMd,EAAUe,KAAKD,KAIhDb,EAA0B,CAC5B,MAAMe,EAAQd,EAAOM,GAAOQ,MACtBC,EAAWD,GAASA,EAAMZ,EAAMC,MAEtCH,EAAOM,GAASU,EACdV,EACAP,EACAC,EACAG,EACAY,EACK,GAAgBE,OAAOF,EAAsBb,EAAME,SACpDF,EAAME,SAIdN,EAAUoB,QAGZ,OAAOlB,GAGImB,EACX,CAACC,EAAQC,EAAeC,EAAkB,KAC1CC,MAAOC,EAAQC,EAAGC,KAChB,IACE,MAAMC,QAAaP,EACQ,SAAzBE,EAAgBM,KAAkB,QAAU,cAC5CJ,EAAQH,GAIV,OAFAK,EAAQG,2BAA6BC,EAAuB,GAAIJ,GAEzD,CACL1B,OAAQ,GACRwB,OAAQG,GAEV,MAAOzB,GACP,MAAO,CACLsB,OAAQ,GACRxB,OAAQE,EAAM6B,QACV,GACAC,EACEnC,EACEK,EAAMF,QACL0B,EAAQG,2BACkB,QAAzBH,EAAQO,cAEZP"}
1
+ {"version":3,"file":"zod.modern.js","sources":["../src/zod.ts"],"sourcesContent":["import {\n appendErrors,\n FieldError,\n FieldErrors,\n set,\n get,\n Field,\n ResolverOptions,\n} from 'react-hook-form';\nimport { z } from 'zod';\nimport type { Resolver } from './types';\n\n// Native validation (web only)\nexport const validateFieldsNatively = <TFieldValues>(\n errors: Record<string, FieldError>,\n options: ResolverOptions<TFieldValues>,\n): void => {\n for (const fieldPath in options.fields) {\n const field = options.fields[fieldPath];\n\n if (field && field.ref && 'reportValidity' in field.ref) {\n const error = get(errors, fieldPath) as FieldError | undefined;\n\n field.ref.setCustomValidity((error && error.message) || '');\n\n field.ref.reportValidity();\n }\n }\n};\n\nconst toNestError = <TFieldValues>(\n errors: Record<string, FieldError>,\n options: ResolverOptions<TFieldValues>,\n): FieldErrors<TFieldValues> => {\n options.shouldUseNativeValidation && validateFieldsNatively(errors, options);\n\n const fieldErrors = {} as FieldErrors<TFieldValues>;\n for (const path in errors) {\n const field = get(options.fields, path) as Field['_f'] | undefined;\n\n set(\n fieldErrors,\n path,\n Object.assign(errors[path], { ref: field && field.ref }),\n );\n }\n\n return fieldErrors;\n};\n\nconst parseErrorSchema = (\n zodErrors: z.ZodIssue[],\n validateAllFieldCriteria: boolean,\n) => {\n const errors: Record<string, FieldError> = {};\n for (; zodErrors.length; ) {\n const error = zodErrors[0];\n const { code, message, path } = error;\n const _path = path.join('.');\n\n if (!errors[_path]) {\n if ('unionErrors' in error) {\n const unionError = error.unionErrors[0].errors[0];\n\n errors[_path] = {\n message: unionError.message,\n type: unionError.code,\n };\n } else {\n errors[_path] = { message, type: code };\n }\n }\n\n if ('unionErrors' in error) {\n error.unionErrors.forEach((unionError) =>\n unionError.errors.forEach((e) => zodErrors.push(e)),\n );\n }\n\n if (validateAllFieldCriteria) {\n const types = errors[_path].types;\n const messages = types && types[error.code];\n\n errors[_path] = appendErrors(\n _path,\n validateAllFieldCriteria,\n errors,\n code,\n messages\n ? ([] as string[]).concat(messages as string[], error.message)\n : error.message,\n ) as FieldError;\n }\n\n zodErrors.shift();\n }\n\n return errors;\n};\n\nexport const zodResolver: Resolver =\n (schema, schemaOptions, resolverOptions = {}) =>\n async (values, _, options) => {\n try {\n const data = await schema[\n resolverOptions.mode === 'sync' ? 'parse' : 'parseAsync'\n ](values, schemaOptions);\n\n options.shouldUseNativeValidation && validateFieldsNatively({}, options);\n\n return {\n errors: {} as FieldErrors,\n values: data,\n };\n } catch (error: any) {\n return {\n values: {},\n errors: error.isEmpty\n ? {}\n : toNestError(\n parseErrorSchema(\n error.errors,\n !options.shouldUseNativeValidation &&\n options.criteriaMode === 'all',\n ),\n options,\n ),\n };\n }\n };\n"],"names":["validateFieldsNatively","errors","options","fieldPath","fields","field","ref","error","get","setCustomValidity","message","reportValidity","toNestError","shouldUseNativeValidation","fieldErrors","path","set","Object","assign","parseErrorSchema","zodErrors","validateAllFieldCriteria","length","code","_path","join","unionError","unionErrors","type","forEach","e","push","types","messages","appendErrors","concat","shift","zodResolver","schema","schemaOptions","resolverOptions","async","values","_","data","mode","isEmpty","criteriaMode"],"mappings":"iEAaaA,MAAAA,EAAyB,CACpCC,EACAC,KAEA,IAAK,MAAMC,KAAaD,EAAQE,OAAQ,CACtC,MAAMC,EAAQH,EAAQE,OAAOD,GAE7B,GAAIE,GAASA,EAAMC,KAAO,mBAAoBD,EAAMC,IAAK,CACvD,MAAMC,EAAQC,EAAIP,EAAQE,GAE1BE,EAAMC,IAAIG,kBAAmBF,GAASA,EAAMG,SAAY,IAExDL,EAAMC,IAAIK,oBAKVC,EAAc,CAClBX,EACAC,KAEAA,EAAQW,2BAA6Bb,EAAuBC,EAAQC,GAEpE,MAAMY,EAAc,GACpB,IAAK,MAAMC,KAAQd,EAAQ,CACzB,MAAMI,EAAQG,EAAIN,EAAQE,OAAQW,GAElCC,EACEF,EACAC,EACAE,OAAOC,OAAOjB,EAAOc,GAAO,CAAET,IAAKD,GAASA,EAAMC,OAItD,OAAOQ,GAGHK,EAAmB,CACvBC,EACAC,KAEA,MAAMpB,EAAqC,GAC3C,KAAOmB,EAAUE,QAAU,CACzB,MAAMf,EAAQa,EAAU,IAClBG,KAAEA,EAAFb,QAAQA,EAARK,KAAiBA,GAASR,EAC1BiB,EAAQT,EAAKU,KAAK,KAExB,IAAKxB,EAAOuB,GACV,GAAI,gBAAiBjB,EAAO,CAC1B,MAAMmB,EAAanB,EAAMoB,YAAY,GAAG1B,OAAO,GAE/CA,EAAOuB,GAAS,CACdd,QAASgB,EAAWhB,QACpBkB,KAAMF,EAAWH,WAGnBtB,EAAOuB,GAAS,CAAEd,QAAAA,EAASkB,KAAML,GAUrC,GANI,gBAAiBhB,GACnBA,EAAMoB,YAAYE,QAASH,GACzBA,EAAWzB,OAAO4B,QAASC,GAAMV,EAAUW,KAAKD,KAIhDT,EAA0B,CAC5B,MAAMW,EAAQ/B,EAAOuB,GAAOQ,MACtBC,EAAWD,GAASA,EAAMzB,EAAMgB,MAEtCtB,EAAOuB,GAASU,EACdV,EACAH,EACApB,EACAsB,EACAU,EACK,GAAgBE,OAAOF,EAAsB1B,EAAMG,SACpDH,EAAMG,SAIdU,EAAUgB,QAGZ,OAAOnC,GAGIoC,EACX,CAACC,EAAQC,EAAeC,EAAkB,KAC1CC,MAAOC,EAAQC,EAAGzC,KAChB,IACE,MAAM0C,QAAaN,EACQ,SAAzBE,EAAgBK,KAAkB,QAAU,cAC5CH,EAAQH,GAIV,OAFArC,EAAQW,2BAA6Bb,EAAuB,GAAIE,GAEzD,CACLD,OAAQ,GACRyC,OAAQE,GAEV,MAAOrC,GACP,MAAO,CACLmC,OAAQ,GACRzC,OAAQM,EAAMuC,QACV,GACAlC,EACEO,EACEZ,EAAMN,QACLC,EAAQW,2BACkB,QAAzBX,EAAQ6C,cAEZ7C"}
@@ -1,2 +1,2 @@
1
- import{appendErrors as r}from"react-hook-form";import{validateFieldsNatively as e,toNestError as o}from"@hookform/resolvers";var n=function(e,o){for(var n={};e.length;){var s=e[0],t=s.code,i=s.message,a=s.path.join(".");if(!n[a])if("unionErrors"in s){var u=s.unionErrors[0].errors[0];n[a]={message:u.message,type:u.code}}else n[a]={message:i,type:t};if("unionErrors"in s&&s.unionErrors.forEach(function(r){return r.errors.forEach(function(r){return e.push(r)})}),o){var c=n[a].types,f=c&&c[s.code];n[a]=r(a,o,n,t,f?[].concat(f,s.message):s.message)}e.shift()}return n},s=function(r,s,t){return void 0===t&&(t={}),function(i,a,u){try{return Promise.resolve(function(o,n){try{var a=Promise.resolve(r["sync"===t.mode?"parse":"parseAsync"](i,s)).then(function(r){return u.shouldUseNativeValidation&&e({},u),{errors:{},values:r}})}catch(r){return n(r)}return a&&a.then?a.then(void 0,n):a}(0,function(r){return{values:{},errors:r.isEmpty?{}:o(n(r.errors,!u.shouldUseNativeValidation&&"all"===u.criteriaMode),u)}}))}catch(r){return Promise.reject(r)}}};export{s as zodResolver};
1
+ import{get as r,set as e,appendErrors as o}from"react-hook-form";var n=function(e,o){for(var n in o.fields){var t=o.fields[n];if(t&&t.ref&&"reportValidity"in t.ref){var i=r(e,n);t.ref.setCustomValidity(i&&i.message||""),t.ref.reportValidity()}}},t=function(o,t){t.shouldUseNativeValidation&&n(o,t);var i={};for(var s in o){var a=r(t.fields,s);e(i,s,Object.assign(o[s],{ref:a&&a.ref}))}return i},i=function(r,e){for(var n={};r.length;){var t=r[0],i=t.code,s=t.message,a=t.path.join(".");if(!n[a])if("unionErrors"in t){var u=t.unionErrors[0].errors[0];n[a]={message:u.message,type:u.code}}else n[a]={message:s,type:i};if("unionErrors"in t&&t.unionErrors.forEach(function(e){return e.errors.forEach(function(e){return r.push(e)})}),e){var f=n[a].types,c=f&&f[t.code];n[a]=o(a,e,n,i,c?[].concat(c,t.message):t.message)}r.shift()}return n},s=function(r,e,o){return void 0===o&&(o={}),function(s,a,u){try{return Promise.resolve(function(t,i){try{var a=Promise.resolve(r["sync"===o.mode?"parse":"parseAsync"](s,e)).then(function(r){return u.shouldUseNativeValidation&&n({},u),{errors:{},values:r}})}catch(r){return i(r)}return a&&a.then?a.then(void 0,i):a}(0,function(r){return{values:{},errors:r.isEmpty?{}:t(i(r.errors,!u.shouldUseNativeValidation&&"all"===u.criteriaMode),u)}}))}catch(r){return Promise.reject(r)}}};export{n as validateFieldsNatively,s as zodResolver};
2
2
  //# sourceMappingURL=zod.module.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"zod.module.js","sources":["../src/zod.ts"],"sourcesContent":["import { appendErrors, FieldError, FieldErrors } from 'react-hook-form';\nimport { z } from 'zod';\nimport { toNestError, validateFieldsNatively } from '@hookform/resolvers';\nimport type { Resolver } from './types';\n\nconst parseErrorSchema = (\n zodErrors: z.ZodIssue[],\n validateAllFieldCriteria: boolean,\n) => {\n const errors: Record<string, FieldError> = {};\n for (; zodErrors.length; ) {\n const error = zodErrors[0];\n const { code, message, path } = error;\n const _path = path.join('.');\n\n if (!errors[_path]) {\n if ('unionErrors' in error) {\n const unionError = error.unionErrors[0].errors[0];\n\n errors[_path] = {\n message: unionError.message,\n type: unionError.code,\n };\n } else {\n errors[_path] = { message, type: code };\n }\n }\n\n if ('unionErrors' in error) {\n error.unionErrors.forEach((unionError) =>\n unionError.errors.forEach((e) => zodErrors.push(e)),\n );\n }\n\n if (validateAllFieldCriteria) {\n const types = errors[_path].types;\n const messages = types && types[error.code];\n\n errors[_path] = appendErrors(\n _path,\n validateAllFieldCriteria,\n errors,\n code,\n messages\n ? ([] as string[]).concat(messages as string[], error.message)\n : error.message,\n ) as FieldError;\n }\n\n zodErrors.shift();\n }\n\n return errors;\n};\n\nexport const zodResolver: Resolver =\n (schema, schemaOptions, resolverOptions = {}) =>\n async (values, _, options) => {\n try {\n const data = await schema[\n resolverOptions.mode === 'sync' ? 'parse' : 'parseAsync'\n ](values, schemaOptions);\n\n options.shouldUseNativeValidation && validateFieldsNatively({}, options);\n\n return {\n errors: {} as FieldErrors,\n values: data,\n };\n } catch (error: any) {\n return {\n values: {},\n errors: error.isEmpty\n ? {}\n : toNestError(\n parseErrorSchema(\n error.errors,\n !options.shouldUseNativeValidation &&\n options.criteriaMode === 'all',\n ),\n options,\n ),\n };\n }\n };\n"],"names":["parseErrorSchema","zodErrors","validateAllFieldCriteria","errors","length","error","code","message","_path","path","join","unionError","unionErrors","type","forEach","e","push","types","messages","appendErrors","concat","shift","zodResolver","schema","schemaOptions","resolverOptions","values","_","options","mode","data","shouldUseNativeValidation","validateFieldsNatively","isEmpty","toNestError","criteriaMode"],"mappings":"6HAKA,IAAMA,EAAmB,SACvBC,EACAC,GAGA,IADA,IAAMC,EAAqC,GACpCF,EAAUG,QAAU,CACzB,IAAMC,EAAQJ,EAAU,GAChBK,EAAwBD,EAAxBC,KAAMC,EAAkBF,EAAlBE,QACRC,EAD0BH,EAATI,KACJC,KAAK,KAExB,IAAKP,EAAOK,GACV,GAAI,gBAAiBH,EAAO,CAC1B,IAAMM,EAAaN,EAAMO,YAAY,GAAGT,OAAO,GAE/CA,EAAOK,GAAS,CACdD,QAASI,EAAWJ,QACpBM,KAAMF,EAAWL,WAGnBH,EAAOK,GAAS,CAAED,QAAAA,EAASM,KAAMP,GAUrC,GANI,gBAAiBD,GACnBA,EAAMO,YAAYE,QAAQ,SAACH,UACzBA,EAAWR,OAAOW,QAAQ,SAACC,UAAMd,EAAUe,KAAKD,OAIhDb,EAA0B,CAC5B,IAAMe,EAAQd,EAAOK,GAAOS,MACtBC,EAAWD,GAASA,EAAMZ,EAAMC,MAEtCH,EAAOK,GAASW,EACdX,EACAN,EACAC,EACAG,EACAY,EACK,GAAgBE,OAAOF,EAAsBb,EAAME,SACpDF,EAAME,SAIdN,EAAUoB,QAGZ,OAAOlB,GAGImB,EACX,SAACC,EAAQC,EAAeC,mBAAAA,IAAAA,EAAkB,aACnCC,EAAQC,EAAGC,sEAEKL,EACQ,SAAzBE,EAAgBI,KAAkB,QAAU,cAC5CH,EAAQF,kBAFJM,GAMN,OAFAF,EAAQG,2BAA6BC,EAAuB,GAAIJ,GAEzD,CACLzB,OAAQ,GACRuB,OAAQI,0EAEHzB,GACP,MAAO,CACLqB,OAAQ,GACRvB,OAAQE,EAAM4B,QACV,GACAC,EACElC,EACEK,EAAMF,QACLyB,EAAQG,2BACkB,QAAzBH,EAAQO,cAEZP,OAxBZ"}
1
+ {"version":3,"file":"zod.module.js","sources":["../src/zod.ts"],"sourcesContent":["import {\n appendErrors,\n FieldError,\n FieldErrors,\n set,\n get,\n Field,\n ResolverOptions,\n} from 'react-hook-form';\nimport { z } from 'zod';\nimport type { Resolver } from './types';\n\n// Native validation (web only)\nexport const validateFieldsNatively = <TFieldValues>(\n errors: Record<string, FieldError>,\n options: ResolverOptions<TFieldValues>,\n): void => {\n for (const fieldPath in options.fields) {\n const field = options.fields[fieldPath];\n\n if (field && field.ref && 'reportValidity' in field.ref) {\n const error = get(errors, fieldPath) as FieldError | undefined;\n\n field.ref.setCustomValidity((error && error.message) || '');\n\n field.ref.reportValidity();\n }\n }\n};\n\nconst toNestError = <TFieldValues>(\n errors: Record<string, FieldError>,\n options: ResolverOptions<TFieldValues>,\n): FieldErrors<TFieldValues> => {\n options.shouldUseNativeValidation && validateFieldsNatively(errors, options);\n\n const fieldErrors = {} as FieldErrors<TFieldValues>;\n for (const path in errors) {\n const field = get(options.fields, path) as Field['_f'] | undefined;\n\n set(\n fieldErrors,\n path,\n Object.assign(errors[path], { ref: field && field.ref }),\n );\n }\n\n return fieldErrors;\n};\n\nconst parseErrorSchema = (\n zodErrors: z.ZodIssue[],\n validateAllFieldCriteria: boolean,\n) => {\n const errors: Record<string, FieldError> = {};\n for (; zodErrors.length; ) {\n const error = zodErrors[0];\n const { code, message, path } = error;\n const _path = path.join('.');\n\n if (!errors[_path]) {\n if ('unionErrors' in error) {\n const unionError = error.unionErrors[0].errors[0];\n\n errors[_path] = {\n message: unionError.message,\n type: unionError.code,\n };\n } else {\n errors[_path] = { message, type: code };\n }\n }\n\n if ('unionErrors' in error) {\n error.unionErrors.forEach((unionError) =>\n unionError.errors.forEach((e) => zodErrors.push(e)),\n );\n }\n\n if (validateAllFieldCriteria) {\n const types = errors[_path].types;\n const messages = types && types[error.code];\n\n errors[_path] = appendErrors(\n _path,\n validateAllFieldCriteria,\n errors,\n code,\n messages\n ? ([] as string[]).concat(messages as string[], error.message)\n : error.message,\n ) as FieldError;\n }\n\n zodErrors.shift();\n }\n\n return errors;\n};\n\nexport const zodResolver: Resolver =\n (schema, schemaOptions, resolverOptions = {}) =>\n async (values, _, options) => {\n try {\n const data = await schema[\n resolverOptions.mode === 'sync' ? 'parse' : 'parseAsync'\n ](values, schemaOptions);\n\n options.shouldUseNativeValidation && validateFieldsNatively({}, options);\n\n return {\n errors: {} as FieldErrors,\n values: data,\n };\n } catch (error: any) {\n return {\n values: {},\n errors: error.isEmpty\n ? {}\n : toNestError(\n parseErrorSchema(\n error.errors,\n !options.shouldUseNativeValidation &&\n options.criteriaMode === 'all',\n ),\n options,\n ),\n };\n }\n };\n"],"names":["validateFieldsNatively","errors","options","fieldPath","fields","field","ref","error","get","setCustomValidity","message","reportValidity","toNestError","shouldUseNativeValidation","fieldErrors","path","set","Object","assign","parseErrorSchema","zodErrors","validateAllFieldCriteria","length","code","_path","join","unionError","unionErrors","type","forEach","e","push","types","messages","appendErrors","concat","shift","zodResolver","schema","schemaOptions","resolverOptions","values","_","mode","data","isEmpty","criteriaMode"],"mappings":"iEAaaA,IAAAA,EAAyB,SACpCC,EACAC,GAEA,IAAK,IAAMC,KAAaD,EAAQE,OAAQ,CACtC,IAAMC,EAAQH,EAAQE,OAAOD,GAE7B,GAAIE,GAASA,EAAMC,KAAO,mBAAoBD,EAAMC,IAAK,CACvD,IAAMC,EAAQC,EAAIP,EAAQE,GAE1BE,EAAMC,IAAIG,kBAAmBF,GAASA,EAAMG,SAAY,IAExDL,EAAMC,IAAIK,oBAKVC,EAAc,SAClBX,EACAC,GAEAA,EAAQW,2BAA6Bb,EAAuBC,EAAQC,GAEpE,IAAMY,EAAc,GACpB,IAAK,IAAMC,KAAQd,EAAQ,CACzB,IAAMI,EAAQG,EAAIN,EAAQE,OAAQW,GAElCC,EACEF,EACAC,EACAE,OAAOC,OAAOjB,EAAOc,GAAO,CAAET,IAAKD,GAASA,EAAMC,OAItD,OAAOQ,GAGHK,EAAmB,SACvBC,EACAC,GAGA,IADA,IAAMpB,EAAqC,GACpCmB,EAAUE,QAAU,CACzB,IAAMf,EAAQa,EAAU,GAChBG,EAAwBhB,EAAxBgB,KAAMb,EAAkBH,EAAlBG,QACRc,EAD0BjB,EAATQ,KACJU,KAAK,KAExB,IAAKxB,EAAOuB,GACV,GAAI,gBAAiBjB,EAAO,CAC1B,IAAMmB,EAAanB,EAAMoB,YAAY,GAAG1B,OAAO,GAE/CA,EAAOuB,GAAS,CACdd,QAASgB,EAAWhB,QACpBkB,KAAMF,EAAWH,WAGnBtB,EAAOuB,GAAS,CAAEd,QAAAA,EAASkB,KAAML,GAUrC,GANI,gBAAiBhB,GACnBA,EAAMoB,YAAYE,QAAQ,SAACH,UACzBA,EAAWzB,OAAO4B,QAAQ,SAACC,UAAMV,EAAUW,KAAKD,OAIhDT,EAA0B,CAC5B,IAAMW,EAAQ/B,EAAOuB,GAAOQ,MACtBC,EAAWD,GAASA,EAAMzB,EAAMgB,MAEtCtB,EAAOuB,GAASU,EACdV,EACAH,EACApB,EACAsB,EACAU,EACK,GAAgBE,OAAOF,EAAsB1B,EAAMG,SACpDH,EAAMG,SAIdU,EAAUgB,QAGZ,OAAOnC,GAGIoC,EACX,SAACC,EAAQC,EAAeC,mBAAAA,IAAAA,EAAkB,aACnCC,EAAQC,EAAGxC,sEAEKoC,EACQ,SAAzBE,EAAgBG,KAAkB,QAAU,cAC5CF,EAAQF,kBAFJK,GAMN,OAFA1C,EAAQW,2BAA6Bb,EAAuB,GAAIE,GAEzD,CACLD,OAAQ,GACRwC,OAAQG,0EAEHrC,GACP,MAAO,CACLkC,OAAQ,GACRxC,OAAQM,EAAMsC,QACV,GACAjC,EACEO,EACEZ,EAAMN,QACLC,EAAQW,2BACkB,QAAzBX,EAAQ4C,cAEZ5C,OAxBZ"}
@@ -1,2 +1,2 @@
1
- !function(e,r){"object"==typeof exports&&"undefined"!=typeof module?r(exports,require("react-hook-form"),require("@hookform/resolvers")):"function"==typeof define&&define.amd?define(["exports","react-hook-form","@hookform/resolvers"],r):r((e||self).hookformResolversZod={},e.reactHookForm,e.hookformResolvers)}(this,function(e,r,o){var n=function(e,o){for(var n={};e.length;){var s=e[0],t=s.code,i=s.message,a=s.path.join(".");if(!n[a])if("unionErrors"in s){var u=s.unionErrors[0].errors[0];n[a]={message:u.message,type:u.code}}else n[a]={message:i,type:t};if("unionErrors"in s&&s.unionErrors.forEach(function(r){return r.errors.forEach(function(r){return e.push(r)})}),o){var f=n[a].types,c=f&&f[s.code];n[a]=r.appendErrors(a,o,n,t,c?[].concat(c,s.message):s.message)}e.shift()}return n};e.zodResolver=function(e,r,s){return void 0===s&&(s={}),function(t,i,a){try{return Promise.resolve(function(n,i){try{var u=Promise.resolve(e["sync"===s.mode?"parse":"parseAsync"](t,r)).then(function(e){return a.shouldUseNativeValidation&&o.validateFieldsNatively({},a),{errors:{},values:e}})}catch(e){return i(e)}return u&&u.then?u.then(void 0,i):u}(0,function(e){return{values:{},errors:e.isEmpty?{}:o.toNestError(n(e.errors,!a.shouldUseNativeValidation&&"all"===a.criteriaMode),a)}}))}catch(e){return Promise.reject(e)}}}});
1
+ !function(e,r){"object"==typeof exports&&"undefined"!=typeof module?r(exports,require("react-hook-form")):"function"==typeof define&&define.amd?define(["exports","react-hook-form"],r):r((e||self).hookformResolversZod={},e.reactHookForm)}(this,function(e,r){var o=function(e,o){for(var t in o.fields){var n=o.fields[t];if(n&&n.ref&&"reportValidity"in n.ref){var i=r.get(e,t);n.ref.setCustomValidity(i&&i.message||""),n.ref.reportValidity()}}},t=function(e,t){t.shouldUseNativeValidation&&o(e,t);var n={};for(var i in e){var s=r.get(t.fields,i);r.set(n,i,Object.assign(e[i],{ref:s&&s.ref}))}return n},n=function(e,o){for(var t={};e.length;){var n=e[0],i=n.code,s=n.message,a=n.path.join(".");if(!t[a])if("unionErrors"in n){var f=n.unionErrors[0].errors[0];t[a]={message:f.message,type:f.code}}else t[a]={message:s,type:i};if("unionErrors"in n&&n.unionErrors.forEach(function(r){return r.errors.forEach(function(r){return e.push(r)})}),o){var u=t[a].types,c=u&&u[n.code];t[a]=r.appendErrors(a,o,t,i,c?[].concat(c,n.message):n.message)}e.shift()}return t};e.validateFieldsNatively=o,e.zodResolver=function(e,r,i){return void 0===i&&(i={}),function(s,a,f){try{return Promise.resolve(function(t,n){try{var a=Promise.resolve(e["sync"===i.mode?"parse":"parseAsync"](s,r)).then(function(e){return f.shouldUseNativeValidation&&o({},f),{errors:{},values:e}})}catch(e){return n(e)}return a&&a.then?a.then(void 0,n):a}(0,function(e){return{values:{},errors:e.isEmpty?{}:t(n(e.errors,!f.shouldUseNativeValidation&&"all"===f.criteriaMode),f)}}))}catch(e){return Promise.reject(e)}}}});
2
2
  //# sourceMappingURL=zod.umd.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"zod.umd.js","sources":["../src/zod.ts"],"sourcesContent":["import { appendErrors, FieldError, FieldErrors } from 'react-hook-form';\nimport { z } from 'zod';\nimport { toNestError, validateFieldsNatively } from '@hookform/resolvers';\nimport type { Resolver } from './types';\n\nconst parseErrorSchema = (\n zodErrors: z.ZodIssue[],\n validateAllFieldCriteria: boolean,\n) => {\n const errors: Record<string, FieldError> = {};\n for (; zodErrors.length; ) {\n const error = zodErrors[0];\n const { code, message, path } = error;\n const _path = path.join('.');\n\n if (!errors[_path]) {\n if ('unionErrors' in error) {\n const unionError = error.unionErrors[0].errors[0];\n\n errors[_path] = {\n message: unionError.message,\n type: unionError.code,\n };\n } else {\n errors[_path] = { message, type: code };\n }\n }\n\n if ('unionErrors' in error) {\n error.unionErrors.forEach((unionError) =>\n unionError.errors.forEach((e) => zodErrors.push(e)),\n );\n }\n\n if (validateAllFieldCriteria) {\n const types = errors[_path].types;\n const messages = types && types[error.code];\n\n errors[_path] = appendErrors(\n _path,\n validateAllFieldCriteria,\n errors,\n code,\n messages\n ? ([] as string[]).concat(messages as string[], error.message)\n : error.message,\n ) as FieldError;\n }\n\n zodErrors.shift();\n }\n\n return errors;\n};\n\nexport const zodResolver: Resolver =\n (schema, schemaOptions, resolverOptions = {}) =>\n async (values, _, options) => {\n try {\n const data = await schema[\n resolverOptions.mode === 'sync' ? 'parse' : 'parseAsync'\n ](values, schemaOptions);\n\n options.shouldUseNativeValidation && validateFieldsNatively({}, options);\n\n return {\n errors: {} as FieldErrors,\n values: data,\n };\n } catch (error: any) {\n return {\n values: {},\n errors: error.isEmpty\n ? {}\n : toNestError(\n parseErrorSchema(\n error.errors,\n !options.shouldUseNativeValidation &&\n options.criteriaMode === 'all',\n ),\n options,\n ),\n };\n }\n };\n"],"names":["parseErrorSchema","zodErrors","validateAllFieldCriteria","errors","length","error","code","message","_path","path","join","unionError","unionErrors","type","forEach","e","push","types","messages","appendErrors","concat","shift","schema","schemaOptions","resolverOptions","values","_","options","mode","data","shouldUseNativeValidation","validateFieldsNatively","isEmpty","toNestError","criteriaMode"],"mappings":"wXAKA,IAAMA,EAAmB,SACvBC,EACAC,GAGA,IADA,IAAMC,EAAqC,GACpCF,EAAUG,QAAU,CACzB,IAAMC,EAAQJ,EAAU,GAChBK,EAAwBD,EAAxBC,KAAMC,EAAkBF,EAAlBE,QACRC,EAD0BH,EAATI,KACJC,KAAK,KAExB,IAAKP,EAAOK,GACV,GAAI,gBAAiBH,EAAO,CAC1B,IAAMM,EAAaN,EAAMO,YAAY,GAAGT,OAAO,GAE/CA,EAAOK,GAAS,CACdD,QAASI,EAAWJ,QACpBM,KAAMF,EAAWL,WAGnBH,EAAOK,GAAS,CAAED,QAAAA,EAASM,KAAMP,GAUrC,GANI,gBAAiBD,GACnBA,EAAMO,YAAYE,QAAQ,SAACH,UACzBA,EAAWR,OAAOW,QAAQ,SAACC,UAAMd,EAAUe,KAAKD,OAIhDb,EAA0B,CAC5B,IAAMe,EAAQd,EAAOK,GAAOS,MACtBC,EAAWD,GAASA,EAAMZ,EAAMC,MAEtCH,EAAOK,GAASW,eACdX,EACAN,EACAC,EACAG,EACAY,EACK,GAAgBE,OAAOF,EAAsBb,EAAME,SACpDF,EAAME,SAIdN,EAAUoB,QAGZ,OAAOlB,iBAIP,SAACmB,EAAQC,EAAeC,mBAAAA,IAAAA,EAAkB,aACnCC,EAAQC,EAAGC,sEAEKL,EACQ,SAAzBE,EAAgBI,KAAkB,QAAU,cAC5CH,EAAQF,kBAFJM,GAMN,OAFAF,EAAQG,2BAA6BC,yBAAuB,GAAIJ,GAEzD,CACLxB,OAAQ,GACRsB,OAAQI,0EAEHxB,GACP,MAAO,CACLoB,OAAQ,GACRtB,OAAQE,EAAM2B,QACV,GACAC,cACEjC,EACEK,EAAMF,QACLwB,EAAQG,2BACkB,QAAzBH,EAAQO,cAEZP,OAxBZ"}
1
+ {"version":3,"file":"zod.umd.js","sources":["../src/zod.ts"],"sourcesContent":["import {\n appendErrors,\n FieldError,\n FieldErrors,\n set,\n get,\n Field,\n ResolverOptions,\n} from 'react-hook-form';\nimport { z } from 'zod';\nimport type { Resolver } from './types';\n\n// Native validation (web only)\nexport const validateFieldsNatively = <TFieldValues>(\n errors: Record<string, FieldError>,\n options: ResolverOptions<TFieldValues>,\n): void => {\n for (const fieldPath in options.fields) {\n const field = options.fields[fieldPath];\n\n if (field && field.ref && 'reportValidity' in field.ref) {\n const error = get(errors, fieldPath) as FieldError | undefined;\n\n field.ref.setCustomValidity((error && error.message) || '');\n\n field.ref.reportValidity();\n }\n }\n};\n\nconst toNestError = <TFieldValues>(\n errors: Record<string, FieldError>,\n options: ResolverOptions<TFieldValues>,\n): FieldErrors<TFieldValues> => {\n options.shouldUseNativeValidation && validateFieldsNatively(errors, options);\n\n const fieldErrors = {} as FieldErrors<TFieldValues>;\n for (const path in errors) {\n const field = get(options.fields, path) as Field['_f'] | undefined;\n\n set(\n fieldErrors,\n path,\n Object.assign(errors[path], { ref: field && field.ref }),\n );\n }\n\n return fieldErrors;\n};\n\nconst parseErrorSchema = (\n zodErrors: z.ZodIssue[],\n validateAllFieldCriteria: boolean,\n) => {\n const errors: Record<string, FieldError> = {};\n for (; zodErrors.length; ) {\n const error = zodErrors[0];\n const { code, message, path } = error;\n const _path = path.join('.');\n\n if (!errors[_path]) {\n if ('unionErrors' in error) {\n const unionError = error.unionErrors[0].errors[0];\n\n errors[_path] = {\n message: unionError.message,\n type: unionError.code,\n };\n } else {\n errors[_path] = { message, type: code };\n }\n }\n\n if ('unionErrors' in error) {\n error.unionErrors.forEach((unionError) =>\n unionError.errors.forEach((e) => zodErrors.push(e)),\n );\n }\n\n if (validateAllFieldCriteria) {\n const types = errors[_path].types;\n const messages = types && types[error.code];\n\n errors[_path] = appendErrors(\n _path,\n validateAllFieldCriteria,\n errors,\n code,\n messages\n ? ([] as string[]).concat(messages as string[], error.message)\n : error.message,\n ) as FieldError;\n }\n\n zodErrors.shift();\n }\n\n return errors;\n};\n\nexport const zodResolver: Resolver =\n (schema, schemaOptions, resolverOptions = {}) =>\n async (values, _, options) => {\n try {\n const data = await schema[\n resolverOptions.mode === 'sync' ? 'parse' : 'parseAsync'\n ](values, schemaOptions);\n\n options.shouldUseNativeValidation && validateFieldsNatively({}, options);\n\n return {\n errors: {} as FieldErrors,\n values: data,\n };\n } catch (error: any) {\n return {\n values: {},\n errors: error.isEmpty\n ? {}\n : toNestError(\n parseErrorSchema(\n error.errors,\n !options.shouldUseNativeValidation &&\n options.criteriaMode === 'all',\n ),\n options,\n ),\n };\n }\n };\n"],"names":["validateFieldsNatively","errors","options","fieldPath","fields","field","ref","error","get","setCustomValidity","message","reportValidity","toNestError","shouldUseNativeValidation","fieldErrors","path","set","Object","assign","parseErrorSchema","zodErrors","validateAllFieldCriteria","length","code","_path","join","unionError","unionErrors","type","forEach","e","push","types","messages","appendErrors","concat","shift","schema","schemaOptions","resolverOptions","values","_","mode","data","isEmpty","criteriaMode"],"mappings":"6SAaaA,IAAAA,EAAyB,SACpCC,EACAC,GAEA,IAAK,IAAMC,KAAaD,EAAQE,OAAQ,CACtC,IAAMC,EAAQH,EAAQE,OAAOD,GAE7B,GAAIE,GAASA,EAAMC,KAAO,mBAAoBD,EAAMC,IAAK,CACvD,IAAMC,EAAQC,MAAIP,EAAQE,GAE1BE,EAAMC,IAAIG,kBAAmBF,GAASA,EAAMG,SAAY,IAExDL,EAAMC,IAAIK,oBAKVC,EAAc,SAClBX,EACAC,GAEAA,EAAQW,2BAA6Bb,EAAuBC,EAAQC,GAEpE,IAAMY,EAAc,GACpB,IAAK,IAAMC,KAAQd,EAAQ,CACzB,IAAMI,EAAQG,MAAIN,EAAQE,OAAQW,GAElCC,MACEF,EACAC,EACAE,OAAOC,OAAOjB,EAAOc,GAAO,CAAET,IAAKD,GAASA,EAAMC,OAItD,OAAOQ,GAGHK,EAAmB,SACvBC,EACAC,GAGA,IADA,IAAMpB,EAAqC,GACpCmB,EAAUE,QAAU,CACzB,IAAMf,EAAQa,EAAU,GAChBG,EAAwBhB,EAAxBgB,KAAMb,EAAkBH,EAAlBG,QACRc,EAD0BjB,EAATQ,KACJU,KAAK,KAExB,IAAKxB,EAAOuB,GACV,GAAI,gBAAiBjB,EAAO,CAC1B,IAAMmB,EAAanB,EAAMoB,YAAY,GAAG1B,OAAO,GAE/CA,EAAOuB,GAAS,CACdd,QAASgB,EAAWhB,QACpBkB,KAAMF,EAAWH,WAGnBtB,EAAOuB,GAAS,CAAEd,QAAAA,EAASkB,KAAML,GAUrC,GANI,gBAAiBhB,GACnBA,EAAMoB,YAAYE,QAAQ,SAACH,UACzBA,EAAWzB,OAAO4B,QAAQ,SAACC,UAAMV,EAAUW,KAAKD,OAIhDT,EAA0B,CAC5B,IAAMW,EAAQ/B,EAAOuB,GAAOQ,MACtBC,EAAWD,GAASA,EAAMzB,EAAMgB,MAEtCtB,EAAOuB,GAASU,eACdV,EACAH,EACApB,EACAsB,EACAU,EACK,GAAgBE,OAAOF,EAAsB1B,EAAMG,SACpDH,EAAMG,SAIdU,EAAUgB,QAGZ,OAAOnC,4CAIP,SAACoC,EAAQC,EAAeC,mBAAAA,IAAAA,EAAkB,aACnCC,EAAQC,EAAGvC,sEAEKmC,EACQ,SAAzBE,EAAgBG,KAAkB,QAAU,cAC5CF,EAAQF,kBAFJK,GAMN,OAFAzC,EAAQW,2BAA6Bb,EAAuB,GAAIE,GAEzD,CACLD,OAAQ,GACRuC,OAAQG,0EAEHpC,GACP,MAAO,CACLiC,OAAQ,GACRvC,OAAQM,EAAMqC,QACV,GACAhC,EACEO,EACEZ,EAAMN,QACLC,EAAQW,2BACkB,QAAzBX,EAAQ2C,cAEZ3C,OAxBZ"}
package/zod/src/zod.ts CHANGED
@@ -1,8 +1,53 @@
1
- import { appendErrors, FieldError, FieldErrors } from 'react-hook-form';
1
+ import {
2
+ appendErrors,
3
+ FieldError,
4
+ FieldErrors,
5
+ set,
6
+ get,
7
+ Field,
8
+ ResolverOptions,
9
+ } from 'react-hook-form';
2
10
  import { z } from 'zod';
3
- import { toNestError, validateFieldsNatively } from '@hookform/resolvers';
4
11
  import type { Resolver } from './types';
5
12
 
13
+ // Native validation (web only)
14
+ export const validateFieldsNatively = <TFieldValues>(
15
+ errors: Record<string, FieldError>,
16
+ options: ResolverOptions<TFieldValues>,
17
+ ): void => {
18
+ for (const fieldPath in options.fields) {
19
+ const field = options.fields[fieldPath];
20
+
21
+ if (field && field.ref && 'reportValidity' in field.ref) {
22
+ const error = get(errors, fieldPath) as FieldError | undefined;
23
+
24
+ field.ref.setCustomValidity((error && error.message) || '');
25
+
26
+ field.ref.reportValidity();
27
+ }
28
+ }
29
+ };
30
+
31
+ const toNestError = <TFieldValues>(
32
+ errors: Record<string, FieldError>,
33
+ options: ResolverOptions<TFieldValues>,
34
+ ): FieldErrors<TFieldValues> => {
35
+ options.shouldUseNativeValidation && validateFieldsNatively(errors, options);
36
+
37
+ const fieldErrors = {} as FieldErrors<TFieldValues>;
38
+ for (const path in errors) {
39
+ const field = get(options.fields, path) as Field['_f'] | undefined;
40
+
41
+ set(
42
+ fieldErrors,
43
+ path,
44
+ Object.assign(errors[path], { ref: field && field.ref }),
45
+ );
46
+ }
47
+
48
+ return fieldErrors;
49
+ };
50
+
6
51
  const parseErrorSchema = (
7
52
  zodErrors: z.ZodIssue[],
8
53
  validateAllFieldCriteria: boolean,