@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 +9 -6
- package/class-validator/src/__tests__/Form-native-validation.tsx +1 -1
- package/class-validator/src/__tests__/Form.tsx +1 -1
- package/dist/resolvers.js +1 -1
- package/dist/resolvers.js.map +1 -1
- package/dist/resolvers.mjs +1 -1
- package/dist/resolvers.mjs.map +1 -1
- package/dist/resolvers.module.js +1 -1
- package/dist/resolvers.module.js.map +1 -1
- package/dist/resolvers.umd.js +1 -1
- package/dist/resolvers.umd.js.map +1 -1
- package/dist/toNestError.d.ts +1 -1
- package/package.json +22 -22
- package/vest/src/__tests__/Form-native-validation.tsx +1 -1
- package/vest/src/__tests__/Form.tsx +1 -1
- package/yup/dist/yup.js +1 -1
- package/yup/dist/yup.js.map +1 -1
- package/yup/dist/yup.mjs +1 -1
- package/yup/dist/yup.modern.js +1 -1
- package/yup/dist/yup.modern.js.map +1 -1
- package/yup/dist/yup.module.js +1 -1
- package/yup/dist/yup.module.js.map +1 -1
- package/yup/dist/yup.umd.js +1 -1
- package/yup/dist/yup.umd.js.map +1 -1
- package/yup/src/__tests__/__fixtures__/data.ts +8 -0
- package/yup/src/__tests__/yup.ts +19 -1
- package/yup/src/yup.ts +26 -19
- package/zod/dist/zod.d.ts +2 -0
- package/zod/dist/zod.js +1 -1
- package/zod/dist/zod.js.map +1 -1
- package/zod/dist/zod.mjs +1 -1
- package/zod/dist/zod.modern.js +1 -1
- package/zod/dist/zod.modern.js.map +1 -1
- package/zod/dist/zod.module.js +1 -1
- package/zod/dist/zod.module.js.map +1 -1
- package/zod/dist/zod.umd.js +1 -1
- package/zod/dist/zod.umd.js.map +1 -1
- package/zod/src/zod.ts +47 -2
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
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
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
|
|
183
|
+
import { create, test, enforce } from 'vest';
|
|
181
184
|
|
|
182
|
-
const validationSuite =
|
|
185
|
+
const validationSuite = create((data = {}) => {
|
|
183
186
|
test('username', 'Username is required', () => {
|
|
184
187
|
enforce(data.username).isNotEmpty();
|
|
185
188
|
});
|
package/dist/resolvers.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
var
|
|
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
|
package/dist/resolvers.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolvers.js","sources":["../src/validateFieldsNatively.ts","../src/toNestError.ts"],"sourcesContent":["import {
|
|
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"}
|
package/dist/resolvers.mjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{get as r,set as
|
|
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
|
package/dist/resolvers.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolvers.mjs","sources":["../src/validateFieldsNatively.ts","../src/toNestError.ts"],"sourcesContent":["import {
|
|
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"}
|
package/dist/resolvers.module.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{get as r,set as
|
|
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 {
|
|
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"}
|
package/dist/resolvers.umd.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
!function(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).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 {
|
|
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"}
|
package/dist/toNestError.d.ts
CHANGED
|
@@ -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<
|
|
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.
|
|
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.
|
|
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
|
|
171
|
-
"@types/react": "^17.0.
|
|
172
|
-
"@typescript-eslint/eslint-plugin": "^5.
|
|
173
|
-
"@typescript-eslint/parser": "^5.
|
|
174
|
-
"check-export-map": "^1.
|
|
175
|
-
"class-transformer": "^0.
|
|
176
|
-
"class-validator": "^0.13.
|
|
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.
|
|
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.
|
|
185
|
-
"joi": "^17.
|
|
186
|
-
"lint-staged": "^
|
|
187
|
-
"microbundle": "^0.14.
|
|
188
|
-
"monocle-ts": "^2.3.
|
|
189
|
-
"newtype-ts": "^0.3.
|
|
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.
|
|
192
|
+
"prettier": "^2.5.1",
|
|
193
193
|
"react": "^17.0.2",
|
|
194
194
|
"react-dom": "^17.0.2",
|
|
195
|
-
"react-hook-form": "7.
|
|
195
|
+
"react-hook-form": "7.24.0",
|
|
196
196
|
"reflect-metadata": "^0.1.13",
|
|
197
197
|
"superstruct": "^0.15.3",
|
|
198
|
-
"ts-jest": "^27.
|
|
198
|
+
"ts-jest": "^27.1.3",
|
|
199
199
|
"typanion": "^3.7.1",
|
|
200
|
-
"typescript": "^4.
|
|
201
|
-
"vest": "^
|
|
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
|
package/yup/dist/yup.js.map
CHANGED
|
@@ -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
|
|
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
|
package/yup/dist/yup.modern.js
CHANGED
|
@@ -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
|
|
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"}
|
package/yup/dist/yup.module.js
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 +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
|
|
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"}
|
package/yup/dist/yup.umd.js
CHANGED
|
@@ -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
|
package/yup/dist/yup.umd.js.map
CHANGED
|
@@ -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
|
|
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_',
|
package/yup/src/__tests__/yup.ts
CHANGED
|
@@ -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 {
|
|
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>>(
|
|
15
|
-
|
|
16
|
-
previous[error.path!]
|
|
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
|
-
|
|
20
|
-
|
|
21
|
-
|
|
20
|
+
if (validateAllFieldCriteria) {
|
|
21
|
+
const types = previous[error.path!].types;
|
|
22
|
+
const messages = types && types[error.type!];
|
|
22
23
|
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
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
|
-
|
|
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=
|
|
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
|
package/zod/dist/zod.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"zod.js","sources":["../src/zod.ts"],"sourcesContent":["import {
|
|
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
|
|
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
|
package/zod/dist/zod.modern.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{appendErrors as
|
|
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 {
|
|
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"}
|
package/zod/dist/zod.module.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{appendErrors as
|
|
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 {
|
|
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"}
|
package/zod/dist/zod.umd.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
!function(e,r){"object"==typeof exports&&"undefined"!=typeof module?r(exports,require("react-hook-form")
|
|
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
|
package/zod/dist/zod.umd.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"zod.umd.js","sources":["../src/zod.ts"],"sourcesContent":["import {
|
|
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 {
|
|
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,
|