@hookform/resolvers 2.8.8 → 2.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (57) hide show
  1. package/README.md +59 -2
  2. package/ajv/dist/ajv.d.ts +2 -0
  3. package/ajv/dist/ajv.js +8 -0
  4. package/ajv/dist/ajv.js.map +1 -0
  5. package/ajv/dist/ajv.mjs +8 -0
  6. package/ajv/dist/ajv.modern.js +8 -0
  7. package/ajv/dist/ajv.modern.js.map +1 -0
  8. package/ajv/dist/ajv.module.js +8 -0
  9. package/ajv/dist/ajv.module.js.map +1 -0
  10. package/ajv/dist/ajv.umd.js +8 -0
  11. package/ajv/dist/ajv.umd.js.map +1 -0
  12. package/ajv/dist/index.d.ts +2 -0
  13. package/ajv/dist/types.d.ts +5 -0
  14. package/ajv/package.json +17 -0
  15. package/ajv/src/__tests__/Form-native-validation.tsx +98 -0
  16. package/ajv/src/__tests__/Form.tsx +67 -0
  17. package/ajv/src/__tests__/__fixtures__/data.ts +70 -0
  18. package/ajv/src/__tests__/__snapshots__/ajv.ts.snap +189 -0
  19. package/ajv/src/__tests__/ajv.ts +84 -0
  20. package/ajv/src/ajv.ts +84 -0
  21. package/ajv/src/index.ts +2 -0
  22. package/ajv/src/types.ts +17 -0
  23. package/class-validator/dist/types.d.ts +1 -0
  24. package/class-validator/src/types.ts +1 -1
  25. package/nope/dist/types.d.ts +4 -1
  26. package/nope/src/types.ts +1 -0
  27. package/package.json +17 -4
  28. package/typanion/dist/types.d.ts +4 -1
  29. package/typanion/src/types.ts +1 -0
  30. package/vest/src/types.ts +1 -1
  31. package/yup/dist/types.d.ts +1 -0
  32. package/yup/dist/yup.js +1 -1
  33. package/yup/dist/yup.js.map +1 -1
  34. package/yup/dist/yup.mjs +1 -1
  35. package/yup/dist/yup.modern.js +1 -1
  36. package/yup/dist/yup.modern.js.map +1 -1
  37. package/yup/dist/yup.module.js +1 -1
  38. package/yup/dist/yup.module.js.map +1 -1
  39. package/yup/dist/yup.umd.js +1 -1
  40. package/yup/dist/yup.umd.js.map +1 -1
  41. package/yup/src/types.ts +1 -1
  42. package/yup/src/yup.ts +1 -1
  43. package/zod/dist/types.d.ts +8 -0
  44. package/zod/dist/zod.js +1 -1
  45. package/zod/dist/zod.js.map +1 -1
  46. package/zod/dist/zod.mjs +1 -1
  47. package/zod/dist/zod.modern.js +1 -1
  48. package/zod/dist/zod.modern.js.map +1 -1
  49. package/zod/dist/zod.module.js +1 -1
  50. package/zod/dist/zod.module.js.map +1 -1
  51. package/zod/dist/zod.umd.js +1 -1
  52. package/zod/dist/zod.umd.js.map +1 -1
  53. package/zod/src/__tests__/__fixtures__/data.ts +8 -1
  54. package/zod/src/__tests__/__snapshots__/zod.ts.snap +53 -0
  55. package/zod/src/__tests__/zod.ts +7 -4
  56. package/zod/src/types.ts +11 -1
  57. package/zod/src/zod.ts +1 -1
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@hookform/resolvers",
3
3
  "amdName": "hookformResolvers",
4
- "version": "2.8.8",
4
+ "version": "2.9.0",
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",
@@ -75,6 +75,12 @@
75
75
  "import": "./typanion/dist/typanion.mjs",
76
76
  "require": "./typanion/dist/typanion.js"
77
77
  },
78
+ "./ajv": {
79
+ "browser": "./ajv/dist/ajv.module.js",
80
+ "umd": "./ajv/dist/ajv.umd.js",
81
+ "import": "./ajv/dist/ajv.mjs",
82
+ "require": "./ajv/dist/ajv.js"
83
+ },
78
84
  "./package.json": "./package.json",
79
85
  "./*": "./*"
80
86
  },
@@ -109,7 +115,10 @@
109
115
  "computed-types/dist",
110
116
  "typanion/package.json",
111
117
  "typanion/src",
112
- "typanion/dist"
118
+ "typanion/dist",
119
+ "ajv/package.json",
120
+ "ajv/src",
121
+ "ajv/dist"
113
122
  ],
114
123
  "publishConfig": {
115
124
  "access": "public"
@@ -128,6 +137,7 @@
128
137
  "build:nope": "microbundle --cwd nope --globals '@hookform/resolvers=hookformResolvers'",
129
138
  "build:computed-types": "microbundle --cwd computed-types --globals '@hookform/resolvers=hookformResolvers'",
130
139
  "build:typanion": "microbundle --cwd typanion --globals '@hookform/resolvers=hookformResolvers'",
140
+ "build:ajv": "microbundle --cwd ajv --globals '@hookform/resolvers=hookformResolvers'",
131
141
  "postbuild": "node ./config/node-13-exports.js",
132
142
  "lint": "eslint . --ext .ts,.js --ignore-path .gitignore",
133
143
  "lint:types": "tsc",
@@ -151,7 +161,8 @@
151
161
  "io-ts",
152
162
  "nope",
153
163
  "computed-types",
154
- "typanion"
164
+ "typanion",
165
+ "ajv"
155
166
  ],
156
167
  "repository": {
157
168
  "type": "git",
@@ -171,6 +182,8 @@
171
182
  "@types/react": "^17.0.38",
172
183
  "@typescript-eslint/eslint-plugin": "^5.10.0",
173
184
  "@typescript-eslint/parser": "^5.10.0",
185
+ "ajv": "^8.11.0",
186
+ "ajv-errors": "^3.0.0",
174
187
  "check-export-map": "^1.2.0",
175
188
  "class-transformer": "^0.5.1",
176
189
  "class-validator": "^0.13.2",
@@ -192,7 +205,7 @@
192
205
  "prettier": "^2.5.1",
193
206
  "react": "^17.0.2",
194
207
  "react-dom": "^17.0.2",
195
- "react-hook-form": "7.24.0",
208
+ "react-hook-form": "7.29.0",
196
209
  "reflect-metadata": "^0.1.13",
197
210
  "superstruct": "^0.15.3",
198
211
  "ts-jest": "^27.1.3",
@@ -2,5 +2,8 @@ import type { FieldValues, ResolverOptions, ResolverResult, UnpackNestedValue }
2
2
  import { ValidationState, AnyStrictValidator } from 'typanion';
3
3
  declare type ValidateOptions = Pick<ValidationState, 'coercions' | 'coercion'>;
4
4
  declare type RHFResolver = <TFieldValues extends FieldValues, TContext>(values: UnpackNestedValue<TFieldValues>, context: TContext | undefined, options: ResolverOptions<TFieldValues>) => ResolverResult<TFieldValues>;
5
- export declare type Resolver = <UnknownValidator extends AnyStrictValidator>(validator: UnknownValidator, validatorOptions?: ValidateOptions) => RHFResolver;
5
+ export declare type Resolver = <UnknownValidator extends AnyStrictValidator>(validator: UnknownValidator, validatorOptions?: ValidateOptions, resolverOptions?: {
6
+ mode?: 'async' | 'sync';
7
+ rawValues?: boolean;
8
+ }) => RHFResolver;
6
9
  export {};
@@ -17,4 +17,5 @@ type RHFResolver = <TFieldValues extends FieldValues, TContext>(
17
17
  export type Resolver = <UnknownValidator extends AnyStrictValidator>(
18
18
  validator: UnknownValidator,
19
19
  validatorOptions?: ValidateOptions,
20
+ resolverOptions?: { mode?: 'async' | 'sync', rawValues?: boolean; },
20
21
  )=> RHFResolver
package/vest/src/types.ts CHANGED
@@ -11,7 +11,7 @@ export type ICreateResult = ReturnType<typeof Vest.create>;
11
11
  export type Resolver = (
12
12
  schema: ICreateResult,
13
13
  schemaOptions?: never,
14
- factoryOptions?: { mode?: 'async' | 'sync' },
14
+ factoryOptions?: { mode?: 'async' | 'sync', rawValues?: boolean; },
15
15
  ) => <TFieldValues extends FieldValues, TContext>(
16
16
  values: UnpackNestedValue<TFieldValues>,
17
17
  context: TContext | undefined,
@@ -4,5 +4,6 @@ import type Lazy from 'yup/lib/Lazy';
4
4
  declare type Options<T extends Yup.AnyObjectSchema | Lazy<any>> = Parameters<T['validate']>[1];
5
5
  export declare type Resolver = <T extends Yup.AnyObjectSchema | Lazy<any>>(schema: T, schemaOptions?: Options<T>, factoryOptions?: {
6
6
  mode?: 'async' | 'sync';
7
+ rawValues?: boolean;
7
8
  }) => <TFieldValues extends FieldValues, TContext>(values: UnpackNestedValue<TFieldValues>, context: TContext | undefined, options: ResolverOptions<TFieldValues>) => Promise<ResolverResult<TFieldValues>>;
8
9
  export {};
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){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)}}};
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(a,s,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"](a,Object.assign({abortEarly:!1},o,{context:s}))).then(function(t){return i.shouldUseNativeValidation&&e.validateFieldsNatively({},i),{values:n.rawValues?a: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,a=o&&o[r.type];e[r.path]=t.appendErrors(r.path,n,e,r.type,a?[].concat(a,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>>(\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"}
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: resolverOptions.rawValues ? 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","rawValues","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,OAAQD,EAAgBgB,UAAYf,EAASY,EAC7CI,OAAQ,4EAEHC,GACP,IAAKA,EAAEC,MACL,MAAMD,EAGR,MAAO,CACLjB,OAAQ,GACRgB,OAAQG,eA7DdC,EA+DUH,EA9DVI,GA+DWnB,EAAQW,2BACkB,QAAzBX,EAAQoB,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,KAyCMtB,IApEe,IACvBkB,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){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};
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:a.rawValues?s: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){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};
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:r.rawValues?n:t,errors:{}}}catch(e){if(!e.inner)throw e;return{values:{},errors:t((l=e,p=!i.shouldUseNativeValidation&&"all"===i.criteriaMode,(l.inner||[]).reduce((e,t)=>{if(e[t.path]||(e[t.path]={message:t.message,type:t.type}),p){const a=e[t.path].types,s=a&&a[t.type];e[t.path]=o(t.path,p,e,t.type,s?[].concat(s,t.message):t.message)}return e},{})),i)}}var l,p};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>>(\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
+ {"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: resolverOptions.rawValues ? 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","rawValues","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,OAAQF,EAAgBiB,UAAYf,EAASQ,EAC7CQ,OAAQ,IAEV,MAAOC,GACP,IAAKA,EAAEC,MACL,MAAMD,EAGR,MAAO,CACLjB,OAAQ,GACRgB,OAAQG,GA7DdC,EA+DUH,EA9DVI,GA+DWnB,EAAQW,2BACkB,QAAzBX,EAAQoB,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,KAyCMtB,IApEe,IACvBkB,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){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};
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:a.rawValues?s: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>>(\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
+ {"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: resolverOptions.rawValues ? 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","rawValues","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,OAAQD,EAAgBgB,UAAYf,EAASY,EAC7CI,OAAQ,4EAEHC,GACP,IAAKA,EAAEC,MACL,MAAMD,EAGR,MAAO,CACLjB,OAAQ,GACRgB,OAAQG,GA7DdC,EA+DUH,EA9DVI,GA+DWnB,EAAQW,2BACkB,QAAzBX,EAAQoB,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,KAyCMtB,IApEe,IACvBkB,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){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)}}}});
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:n.rawValues?s: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>>(\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"}
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: resolverOptions.rawValues ? 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","rawValues","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,OAAQD,EAAgBgB,UAAYf,EAASY,EAC7CI,OAAQ,4EAEHC,GACP,IAAKA,EAAEC,MACL,MAAMD,EAGR,MAAO,CACLjB,OAAQ,GACRgB,OAAQG,eA7DdC,EA+DUH,EA9DVI,GA+DWnB,EAAQW,2BACkB,QAAzBX,EAAQoB,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,KAyCMtB,IApEe,IACvBkB,EACAC,KA8BA"}
package/yup/src/types.ts CHANGED
@@ -14,7 +14,7 @@ type Options<T extends Yup.AnyObjectSchema | Lazy<any>> = Parameters<
14
14
  export type Resolver = <T extends Yup.AnyObjectSchema | Lazy<any>>(
15
15
  schema: T,
16
16
  schemaOptions?: Options<T>,
17
- factoryOptions?: { mode?: 'async' | 'sync' },
17
+ factoryOptions?: { mode?: 'async' | 'sync', rawValues?: boolean; },
18
18
  ) => <TFieldValues extends FieldValues, TContext>(
19
19
  values: UnpackNestedValue<TFieldValues>,
20
20
  context: TContext | undefined,
package/yup/src/yup.ts CHANGED
@@ -59,7 +59,7 @@ export const yupResolver: Resolver =
59
59
  options.shouldUseNativeValidation && validateFieldsNatively({}, options);
60
60
 
61
61
  return {
62
- values: result,
62
+ values: resolverOptions.rawValues ? values : result,
63
63
  errors: {},
64
64
  };
65
65
  } catch (e: any) {
@@ -1,5 +1,13 @@
1
1
  import { FieldValues, ResolverResult, UnpackNestedValue, ResolverOptions } from 'react-hook-form';
2
2
  import { z } from 'zod';
3
3
  export declare type Resolver = <T extends z.Schema<any, any>>(schema: T, schemaOptions?: Partial<z.ParseParams>, factoryOptions?: {
4
+ /**
5
+ * @default async
6
+ */
4
7
  mode?: 'async' | 'sync';
8
+ /**
9
+ * Return the raw input values rather than the parsed values.
10
+ * @default false
11
+ */
12
+ rawValues?: boolean;
5
13
  }) => <TFieldValues extends FieldValues, TContext>(values: UnpackNestedValue<TFieldValues>, context: TContext | undefined, options: ResolverOptions<TFieldValues>) => Promise<ResolverResult<TFieldValues>>;
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=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,l=c&&c[n.code];s[a]=r.appendErrors(a,o,s,t,l?[].concat(l,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:n.rawValues?t: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)}}};
2
2
  //# sourceMappingURL=zod.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"zod.js","sources":["../src/zod.ts"],"sourcesContent":["import {\n appendErrors,\n FieldError,\n FieldErrors,\n} 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":"kEASMA,EAAmB,SACvBC,EACAC,GAGA,IADA,IAAMC,EAAqC,GACpCF,EAAUG,QAAS,CACxB,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,aACjCC,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,cACAjC,EACEK,EAAMF,QACLwB,EAAQG,2BACgB,QAAzBH,EAAQO,cAEVP,OAxBZ"}
1
+ {"version":3,"file":"zod.js","sources":["../src/zod.ts"],"sourcesContent":["import {\n appendErrors,\n FieldError,\n FieldErrors,\n} 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: resolverOptions.rawValues ? 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","rawValues","isEmpty","toNestError","criteriaMode"],"mappings":"kEASMA,EAAmB,SACvBC,EACAC,GAGA,IADA,IAAMC,EAAqC,GACpCF,EAAUG,QAAS,CACxB,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,aACjCC,EAAQC,EAAGC,sEAEKL,EACQ,SAAzBE,EAAgBI,KAAkB,QAAU,cAC5CH,EAAQF,kBAFJM,GAMN,OAFAF,EAAQG,2BAA6BC,yBAAuB,GAAIJ,GAEzD,CACLxB,OAAQ,GACRsB,OAAQD,EAAgBQ,UAAYP,EAASI,0EAExCxB,GACP,MAAO,CACLoB,OAAQ,GACRtB,OAAQE,EAAM4B,QACV,GACAC,cACAlC,EACEK,EAAMF,QACLwB,EAAQG,2BACgB,QAAzBH,EAAQQ,cAEVR,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{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:t.rawValues?i: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};
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{appendErrors as r}from"react-hook-form";import{validateFieldsNatively as s,toNestError as e}from"@hookform/resolvers";const o=(s,e)=>{const o={};for(;s.length;){const a=s[0],{code:t,message:n,path:i}=a,c=i.join(".");if(!o[c])if("unionErrors"in a){const r=a.unionErrors[0].errors[0];o[c]={message:r.message,type:r.code}}else o[c]={message:n,type:t};if("unionErrors"in a&&a.unionErrors.forEach(r=>r.errors.forEach(r=>s.push(r))),e){const s=o[c].types,n=s&&s[a.code];o[c]=r(c,e,o,t,n?[].concat(n,a.message):a.message)}s.shift()}return o},a=(r,a,t={})=>async(n,i,c)=>{try{const e=await r["sync"===t.mode?"parse":"parseAsync"](n,a);return c.shouldUseNativeValidation&&s({},c),{errors:{},values:t.rawValues?n:e}}catch(r){return{values:{},errors:r.isEmpty?{}:e(o(r.errors,!c.shouldUseNativeValidation&&"all"===c.criteriaMode),c)}}};export{a as zodResolver};
2
2
  //# sourceMappingURL=zod.modern.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"zod.modern.js","sources":["../src/zod.ts"],"sourcesContent":["import {\n appendErrors,\n FieldError,\n FieldErrors,\n} 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":"6HASA,MAAMA,EAAmB,CACvBC,EACAC,KAEA,MAAMC,EAAqC,GAC3C,KAAOF,EAAUG,QAAS,CACxB,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,KACxCC,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,EACAnC,EACEK,EAAMF,QACL0B,EAAQG,2BACgB,QAAzBH,EAAQO,cAEVP"}
1
+ {"version":3,"file":"zod.modern.js","sources":["../src/zod.ts"],"sourcesContent":["import {\n appendErrors,\n FieldError,\n FieldErrors,\n} 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: resolverOptions.rawValues ? 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","rawValues","isEmpty","toNestError","criteriaMode"],"mappings":"6HASA,MAAMA,EAAmB,CACvBC,EACAC,KAEA,MAAMC,EAAqC,GAC3C,KAAOF,EAAUG,QAAS,CACxB,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,KACxCC,MAAOC,EAAQC,EAAGC,KAChB,IACE,MAAMC,QAAaP,EACQ,SAAzBE,EAAgBM,KAAkB,QAAU,cAC5CJ,EAAQH,GAIV,OAFAK,EAAQG,2BAA6BC,EAAuB,GAAIJ,GAEzD,CACL1B,OAAQ,GACRwB,OAAQF,EAAgBS,UAAYP,EAASG,GAE/C,MAAOzB,GACP,MAAO,CACLsB,OAAQ,GACRxB,OAAQE,EAAM8B,QACV,GACAC,EACApC,EACEK,EAAMF,QACL0B,EAAQG,2BACgB,QAAzBH,EAAQQ,cAEVR"}
@@ -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{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:t.rawValues?i: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};
2
2
  //# sourceMappingURL=zod.module.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"zod.module.js","sources":["../src/zod.ts"],"sourcesContent":["import {\n appendErrors,\n FieldError,\n FieldErrors,\n} 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":"6HASA,IAAMA,EAAmB,SACvBC,EACAC,GAGA,IADA,IAAMC,EAAqC,GACpCF,EAAUG,QAAS,CACxB,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,aACjCC,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,EACAlC,EACEK,EAAMF,QACLyB,EAAQG,2BACgB,QAAzBH,EAAQO,cAEVP,OAxBZ"}
1
+ {"version":3,"file":"zod.module.js","sources":["../src/zod.ts"],"sourcesContent":["import {\n appendErrors,\n FieldError,\n FieldErrors,\n} 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: resolverOptions.rawValues ? 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","rawValues","isEmpty","toNestError","criteriaMode"],"mappings":"6HASA,IAAMA,EAAmB,SACvBC,EACAC,GAGA,IADA,IAAMC,EAAqC,GACpCF,EAAUG,QAAS,CACxB,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,aACjCC,EAAQC,EAAGC,sEAEKL,EACQ,SAAzBE,EAAgBI,KAAkB,QAAU,cAC5CH,EAAQF,kBAFJM,GAMN,OAFAF,EAAQG,2BAA6BC,EAAuB,GAAIJ,GAEzD,CACLzB,OAAQ,GACRuB,OAAQD,EAAgBQ,UAAYP,EAASI,0EAExCzB,GACP,MAAO,CACLqB,OAAQ,GACRvB,OAAQE,EAAM6B,QACV,GACAC,EACAnC,EACEK,EAAMF,QACLyB,EAAQG,2BACgB,QAAzBH,EAAQQ,cAEVR,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"),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 s=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 f=s[a].types,c=f&&f[n.code];s[a]=r.appendErrors(a,o,s,t,c?[].concat(c,n.message):n.message)}e.shift()}return s};e.zodResolver=function(e,r,n){return void 0===n&&(n={}),function(t,i,a){try{return Promise.resolve(function(s,i){try{var u=Promise.resolve(e["sync"===n.mode?"parse":"parseAsync"](t,r)).then(function(e){return a.shouldUseNativeValidation&&o.validateFieldsNatively({},a),{errors:{},values:n.rawValues?t: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(s(e.errors,!a.shouldUseNativeValidation&&"all"===a.criteriaMode),a)}}))}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 {\n appendErrors,\n FieldError,\n FieldErrors,\n} 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":"wXASA,IAAMA,EAAmB,SACvBC,EACAC,GAGA,IADA,IAAMC,EAAqC,GACpCF,EAAUG,QAAS,CACxB,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,aACjCC,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,cACAjC,EACEK,EAAMF,QACLwB,EAAQG,2BACgB,QAAzBH,EAAQO,cAEVP,OAxBZ"}
1
+ {"version":3,"file":"zod.umd.js","sources":["../src/zod.ts"],"sourcesContent":["import {\n appendErrors,\n FieldError,\n FieldErrors,\n} 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: resolverOptions.rawValues ? 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","rawValues","isEmpty","toNestError","criteriaMode"],"mappings":"wXASA,IAAMA,EAAmB,SACvBC,EACAC,GAGA,IADA,IAAMC,EAAqC,GACpCF,EAAUG,QAAS,CACxB,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,aACjCC,EAAQC,EAAGC,sEAEKL,EACQ,SAAzBE,EAAgBI,KAAkB,QAAU,cAC5CH,EAAQF,kBAFJM,GAMN,OAFAF,EAAQG,2BAA6BC,yBAAuB,GAAIJ,GAEzD,CACLxB,OAAQ,GACRsB,OAAQD,EAAgBQ,UAAYP,EAASI,0EAExCxB,GACP,MAAO,CACLoB,OAAQ,GACRtB,OAAQE,EAAM4B,QACV,GACAC,cACAlC,EACEK,EAAMF,QACLwB,EAAQG,2BACgB,QAAzBH,EAAQQ,cAEVR,OAxBZ"}
@@ -29,13 +29,19 @@ export const schema = z
29
29
  }),
30
30
  )
31
31
  .optional(),
32
+ dateStr: z
33
+ .string()
34
+ .transform((value) => new Date(value))
35
+ .refine((value) => !isNaN(value.getTime()), {
36
+ message: 'Invalid date',
37
+ }),
32
38
  })
33
39
  .refine((obj) => obj.password === obj.repeatPassword, {
34
40
  message: 'Passwords do not match',
35
41
  path: ['confirm'],
36
42
  });
37
43
 
38
- export const validData: z.infer<typeof schema> = {
44
+ export const validData: z.input<typeof schema> = {
39
45
  username: 'Doe',
40
46
  password: 'Password123_',
41
47
  repeatPassword: 'Password123_',
@@ -51,6 +57,7 @@ export const validData: z.infer<typeof schema> = {
51
57
  name: 'name',
52
58
  },
53
59
  ],
60
+ dateStr: '2020-01-01',
54
61
  };
55
62
 
56
63
  export const invalidData = {
@@ -13,6 +13,11 @@ Object {
13
13
  "ref": undefined,
14
14
  "type": "invalid_type",
15
15
  },
16
+ "dateStr": Object {
17
+ "message": "Required",
18
+ "ref": undefined,
19
+ "type": "invalid_type",
20
+ },
16
21
  "email": Object {
17
22
  "message": "Invalid email",
18
23
  "ref": Object {
@@ -86,6 +91,11 @@ Object {
86
91
  "ref": undefined,
87
92
  "type": "invalid_type",
88
93
  },
94
+ "dateStr": Object {
95
+ "message": "Required",
96
+ "ref": undefined,
97
+ "type": "invalid_type",
98
+ },
89
99
  "email": Object {
90
100
  "message": "Invalid email",
91
101
  "ref": Object {
@@ -169,6 +179,14 @@ Object {
169
179
  "invalid_type": "Expected number, received string",
170
180
  },
171
181
  },
182
+ "dateStr": Object {
183
+ "message": "Required",
184
+ "ref": undefined,
185
+ "type": "invalid_type",
186
+ "types": Object {
187
+ "invalid_type": "Required",
188
+ },
189
+ },
172
190
  "email": Object {
173
191
  "message": "Invalid email",
174
192
  "ref": Object {
@@ -284,6 +302,14 @@ Object {
284
302
  "invalid_type": "Expected number, received string",
285
303
  },
286
304
  },
305
+ "dateStr": Object {
306
+ "message": "Required",
307
+ "ref": undefined,
308
+ "type": "invalid_type",
309
+ "types": Object {
310
+ "invalid_type": "Required",
311
+ },
312
+ },
287
313
  "email": Object {
288
314
  "message": "Invalid email",
289
315
  "ref": Object {
@@ -375,3 +401,30 @@ Object {
375
401
  "values": Object {},
376
402
  }
377
403
  `;
404
+
405
+ exports[`zodResolver should return parsed values from zodResolver with \`mode: sync\` when validation pass 1`] = `
406
+ Object {
407
+ "errors": Object {},
408
+ "values": Object {
409
+ "accessToken": "accessToken",
410
+ "birthYear": 2000,
411
+ "dateStr": 2020-01-01T00:00:00.000Z,
412
+ "email": "john@doe.com",
413
+ "enabled": true,
414
+ "like": Array [
415
+ Object {
416
+ "id": 1,
417
+ "name": "name",
418
+ },
419
+ ],
420
+ "password": "Password123_",
421
+ "repeatPassword": "Password123_",
422
+ "tags": Array [
423
+ "tag1",
424
+ "tag2",
425
+ ],
426
+ "url": "https://react-hook-form.com/",
427
+ "username": "Doe",
428
+ },
429
+ }
430
+ `;
@@ -4,10 +4,12 @@ import { schema, validData, invalidData, fields } from './__fixtures__/data';
4
4
  const shouldUseNativeValidation = false;
5
5
 
6
6
  describe('zodResolver', () => {
7
- it('should return values from zodResolver when validation pass', async () => {
7
+ it('should return values from zodResolver when validation pass & rawValues=true', async () => {
8
8
  const parseAsyncSpy = jest.spyOn(schema, 'parseAsync');
9
9
 
10
- const result = await zodResolver(schema)(validData, undefined, {
10
+ const result = await zodResolver(schema, undefined, {
11
+ rawValues: true,
12
+ })(validData, undefined, {
11
13
  fields,
12
14
  shouldUseNativeValidation,
13
15
  });
@@ -16,7 +18,7 @@ describe('zodResolver', () => {
16
18
  expect(result).toEqual({ errors: {}, values: validData });
17
19
  });
18
20
 
19
- it('should return values from zodResolver with `mode: sync` when validation pass', async () => {
21
+ it('should return parsed values from zodResolver with `mode: sync` when validation pass', async () => {
20
22
  const parseSpy = jest.spyOn(schema, 'parse');
21
23
  const parseAsyncSpy = jest.spyOn(schema, 'parseAsync');
22
24
 
@@ -26,7 +28,8 @@ describe('zodResolver', () => {
26
28
 
27
29
  expect(parseSpy).toHaveBeenCalledTimes(1);
28
30
  expect(parseAsyncSpy).not.toHaveBeenCalled();
29
- expect(result).toEqual({ errors: {}, values: validData });
31
+ expect(result.errors).toEqual({});
32
+ expect(result).toMatchSnapshot();
30
33
  });
31
34
 
32
35
  it('should return a single error from zodResolver when validation fails', async () => {
package/zod/src/types.ts CHANGED
@@ -9,7 +9,17 @@ import { z } from 'zod';
9
9
  export type Resolver = <T extends z.Schema<any, any>>(
10
10
  schema: T,
11
11
  schemaOptions?: Partial<z.ParseParams>,
12
- factoryOptions?: { mode?: 'async' | 'sync' },
12
+ factoryOptions?: {
13
+ /**
14
+ * @default async
15
+ */
16
+ mode?: 'async' | 'sync';
17
+ /**
18
+ * Return the raw input values rather than the parsed values.
19
+ * @default false
20
+ */
21
+ rawValues?: boolean;
22
+ },
13
23
  ) => <TFieldValues extends FieldValues, TContext>(
14
24
  values: UnpackNestedValue<TFieldValues>,
15
25
  context: TContext | undefined,
package/zod/src/zod.ts CHANGED
@@ -69,7 +69,7 @@ export const zodResolver: Resolver =
69
69
 
70
70
  return {
71
71
  errors: {} as FieldErrors,
72
- values: data,
72
+ values: resolverOptions.rawValues ? values : data,
73
73
  };
74
74
  } catch (error: any) {
75
75
  return {