@hookform/resolvers 2.9.11 → 3.0.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 (226) hide show
  1. package/README.md +31 -0
  2. package/ajv/dist/ajv.d.ts +2 -2
  3. package/ajv/dist/ajv.js +1 -7
  4. package/ajv/dist/ajv.js.map +1 -1
  5. package/ajv/dist/ajv.mjs +1 -7
  6. package/ajv/dist/ajv.modern.mjs +2 -0
  7. package/ajv/dist/ajv.modern.mjs.map +1 -0
  8. package/ajv/dist/ajv.module.js +1 -7
  9. package/ajv/dist/ajv.module.js.map +1 -1
  10. package/ajv/dist/ajv.umd.js +1 -7
  11. package/ajv/dist/ajv.umd.js.map +1 -1
  12. package/ajv/dist/index.d.ts +2 -2
  13. package/ajv/dist/types.d.ts +5 -5
  14. package/ajv/package.json +3 -1
  15. package/ajv/src/__tests__/Form-native-validation.tsx +5 -9
  16. package/ajv/src/__tests__/Form.tsx +4 -6
  17. package/ajv/src/__tests__/__fixtures__/data.ts +3 -4
  18. package/ajv/src/__tests__/__snapshots__/ajv.ts.snap +83 -83
  19. package/ajv/src/ajv.ts +28 -24
  20. package/class-validator/dist/class-validator.d.ts +2 -2
  21. package/class-validator/dist/class-validator.js +1 -1
  22. package/class-validator/dist/class-validator.js.map +1 -1
  23. package/class-validator/dist/class-validator.mjs +1 -1
  24. package/class-validator/dist/class-validator.modern.mjs +2 -0
  25. package/class-validator/dist/class-validator.modern.mjs.map +1 -0
  26. package/class-validator/dist/class-validator.module.js +1 -1
  27. package/class-validator/dist/class-validator.module.js.map +1 -1
  28. package/class-validator/dist/class-validator.umd.js +1 -1
  29. package/class-validator/dist/class-validator.umd.js.map +1 -1
  30. package/class-validator/dist/index.d.ts +2 -2
  31. package/class-validator/dist/types.d.ts +12 -9
  32. package/class-validator/src/__tests__/Form-native-validation.tsx +5 -9
  33. package/class-validator/src/__tests__/Form.tsx +4 -6
  34. package/class-validator/src/__tests__/__snapshots__/class-validator.ts.snap +102 -67
  35. package/class-validator/src/__tests__/class-validator.ts +66 -6
  36. package/class-validator/src/class-validator.ts +6 -4
  37. package/class-validator/src/types.ts +7 -8
  38. package/computed-types/dist/computed-types.d.ts +2 -2
  39. package/computed-types/dist/computed-types.js +1 -1
  40. package/computed-types/dist/computed-types.js.map +1 -1
  41. package/computed-types/dist/computed-types.mjs +1 -1
  42. package/computed-types/dist/computed-types.modern.mjs +2 -0
  43. package/computed-types/dist/computed-types.modern.mjs.map +1 -0
  44. package/computed-types/dist/computed-types.module.js +1 -1
  45. package/computed-types/dist/computed-types.module.js.map +1 -1
  46. package/computed-types/dist/computed-types.umd.js +1 -1
  47. package/computed-types/dist/computed-types.umd.js.map +1 -1
  48. package/computed-types/dist/index.d.ts +2 -2
  49. package/computed-types/dist/types.d.ts +2 -2
  50. package/computed-types/src/__tests__/Form-native-validation.tsx +5 -9
  51. package/computed-types/src/__tests__/Form.tsx +4 -6
  52. package/computed-types/src/__tests__/__snapshots__/computed-types.ts.snap +21 -21
  53. package/computed-types/src/__tests__/computed-types.ts +16 -0
  54. package/computed-types/src/computed-types.ts +12 -5
  55. package/dist/index.d.ts +2 -2
  56. package/dist/resolvers.js +1 -1
  57. package/dist/resolvers.js.map +1 -1
  58. package/dist/resolvers.mjs +1 -1
  59. package/dist/resolvers.mjs.map +1 -1
  60. package/dist/resolvers.module.js +1 -1
  61. package/dist/resolvers.module.js.map +1 -1
  62. package/dist/resolvers.umd.js +1 -1
  63. package/dist/resolvers.umd.js.map +1 -1
  64. package/dist/toNestError.d.ts +2 -2
  65. package/dist/validateFieldsNatively.d.ts +2 -2
  66. package/io-ts/dist/arrayToPath.d.ts +3 -3
  67. package/io-ts/dist/errorsToRecord.d.ts +5 -5
  68. package/io-ts/dist/index.d.ts +2 -2
  69. package/io-ts/dist/io-ts.d.ts +2 -2
  70. package/io-ts/dist/io-ts.js +1 -1
  71. package/io-ts/dist/io-ts.js.map +1 -1
  72. package/io-ts/dist/io-ts.mjs +1 -1
  73. package/io-ts/dist/io-ts.modern.mjs +2 -0
  74. package/io-ts/dist/io-ts.modern.mjs.map +1 -0
  75. package/io-ts/dist/io-ts.module.js +1 -1
  76. package/io-ts/dist/io-ts.module.js.map +1 -1
  77. package/io-ts/dist/io-ts.umd.js +1 -1
  78. package/io-ts/dist/io-ts.umd.js.map +1 -1
  79. package/io-ts/dist/types.d.ts +7 -7
  80. package/io-ts/src/__tests__/Form-native-validation.tsx +5 -9
  81. package/io-ts/src/__tests__/Form.tsx +4 -6
  82. package/io-ts/src/__tests__/__snapshots__/io-ts.ts.snap +28 -28
  83. package/io-ts/src/__tests__/io-ts.ts +1 -1
  84. package/joi/dist/index.d.ts +2 -2
  85. package/joi/dist/joi.d.ts +2 -2
  86. package/joi/dist/joi.js.map +1 -1
  87. package/joi/dist/{joi.modern.js → joi.modern.mjs} +1 -1
  88. package/joi/dist/joi.modern.mjs.map +1 -0
  89. package/joi/dist/joi.module.js.map +1 -1
  90. package/joi/dist/joi.umd.js.map +1 -1
  91. package/joi/dist/types.d.ts +5 -5
  92. package/joi/src/__tests__/Form-native-validation.tsx +5 -9
  93. package/joi/src/__tests__/Form.tsx +4 -6
  94. package/joi/src/__tests__/__snapshots__/joi.ts.snap +87 -87
  95. package/joi/src/__tests__/joi.ts +8 -8
  96. package/nope/dist/index.d.ts +2 -2
  97. package/nope/dist/nope.d.ts +2 -2
  98. package/nope/dist/nope.js.map +1 -1
  99. package/nope/dist/{nope.modern.js → nope.modern.mjs} +1 -1
  100. package/nope/dist/nope.modern.mjs.map +1 -0
  101. package/nope/dist/nope.module.js.map +1 -1
  102. package/nope/dist/nope.umd.js.map +1 -1
  103. package/nope/dist/types.d.ts +9 -9
  104. package/nope/src/__tests__/Form-native-validation.tsx +5 -9
  105. package/nope/src/__tests__/Form.tsx +4 -6
  106. package/nope/src/__tests__/__snapshots__/nope.ts.snap +15 -15
  107. package/nope/src/__tests__/nope.ts +1 -1
  108. package/package.json +74 -44
  109. package/superstruct/dist/index.d.ts +2 -2
  110. package/superstruct/dist/superstruct.d.ts +2 -2
  111. package/superstruct/dist/superstruct.js +1 -1
  112. package/superstruct/dist/superstruct.js.map +1 -1
  113. package/superstruct/dist/superstruct.mjs +1 -1
  114. package/superstruct/dist/superstruct.modern.mjs +2 -0
  115. package/superstruct/dist/superstruct.modern.mjs.map +1 -0
  116. package/superstruct/dist/superstruct.module.js +1 -1
  117. package/superstruct/dist/superstruct.module.js.map +1 -1
  118. package/superstruct/dist/superstruct.umd.js +1 -1
  119. package/superstruct/dist/superstruct.umd.js.map +1 -1
  120. package/superstruct/dist/types.d.ts +11 -5
  121. package/superstruct/src/__tests__/Form-native-validation.tsx +5 -9
  122. package/superstruct/src/__tests__/Form.tsx +4 -6
  123. package/superstruct/src/__tests__/__snapshots__/superstruct.ts.snap +19 -19
  124. package/superstruct/src/__tests__/superstruct.ts +13 -0
  125. package/superstruct/src/superstruct.ts +4 -3
  126. package/superstruct/src/types.ts +8 -5
  127. package/typanion/dist/index.d.ts +2 -2
  128. package/typanion/dist/typanion.d.ts +2 -2
  129. package/typanion/dist/typanion.js.map +1 -1
  130. package/typanion/dist/{typanion.modern.js → typanion.modern.mjs} +1 -1
  131. package/typanion/dist/typanion.modern.mjs.map +1 -0
  132. package/typanion/dist/typanion.module.js.map +1 -1
  133. package/typanion/dist/typanion.umd.js.map +1 -1
  134. package/typanion/dist/types.d.ts +9 -9
  135. package/typanion/src/__tests__/Form-native-validation.tsx +7 -10
  136. package/typanion/src/__tests__/Form.tsx +9 -7
  137. package/typanion/src/__tests__/__snapshots__/typanion.ts.snap +22 -22
  138. package/typanion/src/__tests__/typanion.ts +11 -7
  139. package/typanion/src/typanion.ts +1 -1
  140. package/typebox/dist/index.d.ts +2 -0
  141. package/typebox/dist/typebox.d.ts +2 -0
  142. package/typebox/dist/typebox.js +2 -0
  143. package/typebox/dist/typebox.js.map +1 -0
  144. package/typebox/dist/typebox.mjs +2 -0
  145. package/typebox/dist/typebox.modern.mjs +2 -0
  146. package/typebox/dist/typebox.modern.mjs.map +1 -0
  147. package/typebox/dist/typebox.module.js +2 -0
  148. package/typebox/dist/typebox.module.js.map +1 -0
  149. package/typebox/dist/typebox.umd.js +2 -0
  150. package/typebox/dist/typebox.umd.js.map +1 -0
  151. package/typebox/dist/types.d.ts +3 -0
  152. package/typebox/package.json +18 -0
  153. package/typebox/src/__tests__/Form-native-validation.tsx +83 -0
  154. package/typebox/src/__tests__/Form.tsx +54 -0
  155. package/typebox/src/__tests__/__fixtures__/data.ts +84 -0
  156. package/typebox/src/__tests__/__snapshots__/typebox.ts.snap +190 -0
  157. package/typebox/src/__tests__/typebox.ts +34 -0
  158. package/typebox/src/index.ts +2 -0
  159. package/typebox/src/typebox.ts +64 -0
  160. package/typebox/src/types.ts +10 -0
  161. package/vest/dist/index.d.ts +2 -2
  162. package/vest/dist/types.d.ts +8 -8
  163. package/vest/dist/vest.d.ts +2 -2
  164. package/vest/dist/vest.js.map +1 -1
  165. package/vest/dist/{vest.modern.js → vest.modern.mjs} +1 -1
  166. package/vest/dist/vest.modern.mjs.map +1 -0
  167. package/vest/dist/vest.module.js.map +1 -1
  168. package/vest/dist/vest.umd.js.map +1 -1
  169. package/vest/src/__tests__/Form-native-validation.tsx +5 -9
  170. package/vest/src/__tests__/Form.tsx +6 -10
  171. package/vest/src/__tests__/__snapshots__/vest.ts.snap +47 -47
  172. package/yup/dist/index.d.ts +2 -2
  173. package/yup/dist/types.d.ts +15 -9
  174. package/yup/dist/yup.d.ts +2 -2
  175. package/yup/dist/yup.js +1 -1
  176. package/yup/dist/yup.js.map +1 -1
  177. package/yup/dist/yup.mjs +1 -1
  178. package/yup/dist/yup.modern.mjs +2 -0
  179. package/yup/dist/yup.modern.mjs.map +1 -0
  180. package/yup/dist/yup.module.js +1 -1
  181. package/yup/dist/yup.module.js.map +1 -1
  182. package/yup/dist/yup.umd.js +1 -1
  183. package/yup/dist/yup.umd.js.map +1 -1
  184. package/yup/src/__tests__/Form-native-validation.tsx +5 -9
  185. package/yup/src/__tests__/Form.tsx +4 -6
  186. package/yup/src/__tests__/__fixtures__/data.ts +2 -3
  187. package/yup/src/__tests__/__snapshots__/yup.ts.snap +100 -87
  188. package/yup/src/__tests__/yup.ts +49 -18
  189. package/yup/src/types.ts +14 -11
  190. package/yup/src/yup.ts +1 -1
  191. package/zod/dist/index.d.ts +2 -2
  192. package/zod/dist/types.d.ts +13 -13
  193. package/zod/dist/zod.d.ts +2 -2
  194. package/zod/dist/zod.js +1 -1
  195. package/zod/dist/zod.js.map +1 -1
  196. package/zod/dist/zod.mjs +1 -1
  197. package/zod/dist/zod.modern.mjs +2 -0
  198. package/zod/dist/zod.modern.mjs.map +1 -0
  199. package/zod/dist/zod.module.js +1 -1
  200. package/zod/dist/zod.module.js.map +1 -1
  201. package/zod/dist/zod.umd.js +1 -1
  202. package/zod/dist/zod.umd.js.map +1 -1
  203. package/zod/src/__tests__/Form-native-validation.tsx +5 -9
  204. package/zod/src/__tests__/Form.tsx +4 -6
  205. package/zod/src/__tests__/__snapshots__/zod.ts.snap +120 -120
  206. package/zod/src/__tests__/zod.ts +19 -7
  207. package/zod/src/types.ts +2 -6
  208. package/zod/src/zod.ts +27 -27
  209. package/ajv/dist/ajv.modern.js +0 -8
  210. package/ajv/dist/ajv.modern.js.map +0 -1
  211. package/class-validator/dist/class-validator.modern.js +0 -2
  212. package/class-validator/dist/class-validator.modern.js.map +0 -1
  213. package/computed-types/dist/computed-types.modern.js +0 -2
  214. package/computed-types/dist/computed-types.modern.js.map +0 -1
  215. package/io-ts/dist/io-ts.modern.js +0 -2
  216. package/io-ts/dist/io-ts.modern.js.map +0 -1
  217. package/joi/dist/joi.modern.js.map +0 -1
  218. package/nope/dist/nope.modern.js.map +0 -1
  219. package/superstruct/dist/superstruct.modern.js +0 -2
  220. package/superstruct/dist/superstruct.modern.js.map +0 -1
  221. package/typanion/dist/typanion.modern.js.map +0 -1
  222. package/vest/dist/vest.modern.js.map +0 -1
  223. package/yup/dist/yup.modern.js +0 -2
  224. package/yup/dist/yup.modern.js.map +0 -1
  225. package/zod/dist/zod.modern.js +0 -2
  226. package/zod/dist/zod.modern.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"computed-types.module.js","sources":["../src/computed-types.ts"],"sourcesContent":["import type { FieldErrors } from 'react-hook-form';\nimport { toNestError, validateFieldsNatively } from '@hookform/resolvers';\nimport type { ValidationError } from 'computed-types';\nimport type { Resolver } from './types';\n\nconst parseErrorSchema = (computedTypesError: ValidationError) => {\n const parsedErrors: FieldErrors = {};\n return (computedTypesError.errors || []).reduce((acc, error) => {\n acc[error.path.join('.')] = {\n type: error.error.name,\n message: error.error.message,\n };\n\n return acc;\n }, parsedErrors);\n};\n\nexport const computedTypesResolver: Resolver =\n (schema) => async (values, _, options) => {\n try {\n const data = await schema(values);\n\n options.shouldUseNativeValidation && validateFieldsNatively({}, options);\n\n return {\n errors: {},\n values: data,\n };\n } catch (error: any) {\n return {\n values: {},\n errors: toNestError(parseErrorSchema(error), options),\n };\n }\n };\n"],"names":["computedTypesResolver","schema","values","_","options","data","shouldUseNativeValidation","validateFieldsNatively","errors","error","toNestError","computedTypesError","reduce","acc","path","join","type","name","message"],"mappings":"8EAKA,IAYaA,EACX,SAACC,mBAAkBC,EAAQC,EAAGC,sEAEPH,EAAOC,kBAApBG,GAIN,OAFAD,EAAQE,2BAA6BC,EAAuB,GAAIH,GAEzD,CACLI,OAAQ,GACRN,OAAQG,0EAEHI,GACP,MAAO,CACLP,OAAQ,GACRM,OAAQE,GA1BUC,EA0BmBF,GAxBnCE,EAAmBH,QAAU,IAAII,OAAO,SAACC,EAAKJ,GAMpD,OALAI,EAAIJ,EAAMK,KAAKC,KAAK,MAAQ,CAC1BC,KAAMP,EAAMA,MAAMQ,KAClBC,QAAST,EAAMA,MAAMS,SAGhBL,GAPyB,KAyBiBT,IA1B5B,IAACO,KAaxB"}
1
+ {"version":3,"file":"computed-types.module.js","sources":["../src/computed-types.ts"],"sourcesContent":["import type { FieldErrors } from 'react-hook-form';\nimport { toNestError, validateFieldsNatively } from '@hookform/resolvers';\nimport type { Resolver } from './types';\nimport type { ValidationError } from 'computed-types';\n\nconst isValidationError = (error: any): error is ValidationError =>\n error.errors != null;\n\nconst parseErrorSchema = (computedTypesError: ValidationError) => {\n const parsedErrors: FieldErrors = {};\n return (computedTypesError.errors || []).reduce((acc, error) => {\n acc[error.path.join('.')] = {\n type: error.error.name,\n message: error.error.message,\n };\n\n return acc;\n }, parsedErrors);\n};\n\nexport const computedTypesResolver: Resolver =\n (schema) => async (values, _, options) => {\n try {\n const data = await schema(values);\n\n options.shouldUseNativeValidation && validateFieldsNatively({}, options);\n\n return {\n errors: {},\n values: data,\n };\n } catch (error: any) {\n if (isValidationError(error)) {\n return {\n values: {},\n errors: toNestError(parseErrorSchema(error), options),\n };\n }\n\n throw error;\n }\n };\n"],"names":["computedTypesResolver","schema","values","_","options","Promise","resolve","then","data","shouldUseNativeValidation","validateFieldsNatively","errors","_catch","error","isValidationError","toNestError","computedTypesError","reduce","acc","path","join","type","name","message","e","reject"],"mappings":"8EAKA,IAeaA,EACX,SAACC,GAAM,OAAA,SAAYC,EAAQC,EAAGC,GAAO,IAAIC,OAAAA,QAAAC,gCACnCD,QAAAC,QACiBL,EAAOC,IAAOK,KAA3BC,SAAAA,GAIN,OAFAJ,EAAQK,2BAA6BC,EAAuB,CAAA,EAAIN,GAEzD,CACLO,OAAQ,CAAE,EACVT,OAAQM,EACR,4DATmCI,CACnC,EASH,SAAQC,GACP,GA3BoB,SAACA,GAAU,OACnB,MAAhBA,EAAMF,MAAc,CA0BZG,CAAkBD,GACpB,MAAO,CACLX,OAAQ,CAAA,EACRS,OAAQI,GA3BQC,EA2BqBH,GAzBrCG,EAAmBL,QAAU,IAAIM,OAAO,SAACC,EAAKL,GAMpD,OALAK,EAAIL,EAAMM,KAAKC,KAAK,MAAQ,CAC1BC,KAAMR,EAAMA,MAAMS,KAClBC,QAASV,EAAMA,MAAMU,SAGhBL,CACT,EARkC,CAAA,IA0BmBd,IA3B9B,IAACY,EA+BpB,MAAMH,CACP,GACH,CAAC,MAAAW,GAAAnB,OAAAA,QAAAoB,OAAAD,EAAA,CAAA,CAAA"}
@@ -1,2 +1,2 @@
1
- !function(e,r){"object"==typeof exports&&"undefined"!=typeof module?r(exports,require("@hookform/resolvers")):"function"==typeof define&&define.amd?define(["exports","@hookform/resolvers"],r):r((e||self).hookformResolversComputedTypes={},e.hookformResolvers)}(this,function(e,r){e.computedTypesResolver=function(e){return function(o,t,n){try{return Promise.resolve(function(t,s){try{var i=Promise.resolve(e(o)).then(function(e){return n.shouldUseNativeValidation&&r.validateFieldsNatively({},n),{errors:{},values:e}})}catch(e){return s(e)}return i&&i.then?i.then(void 0,s):i}(0,function(e){return{values:{},errors:r.toNestError((o=e,(o.errors||[]).reduce(function(e,r){return e[r.path.join(".")]={type:r.error.name,message:r.error.message},e},{})),n)};var o}))}catch(e){return Promise.reject(e)}}}});
1
+ !function(e,r){"object"==typeof exports&&"undefined"!=typeof module?r(exports,require("@hookform/resolvers")):"function"==typeof define&&define.amd?define(["exports","@hookform/resolvers"],r):r((e||self).hookformResolversComputedTypes={},e.hookformResolvers)}(this,function(e,r){e.computedTypesResolver=function(e){return function(o,t,n){try{return Promise.resolve(function(t,s){try{var i=Promise.resolve(e(o)).then(function(e){return n.shouldUseNativeValidation&&r.validateFieldsNatively({},n),{errors:{},values:e}})}catch(e){return s(e)}return i&&i.then?i.then(void 0,s):i}(0,function(e){if(function(e){return null!=e.errors}(e))return{values:{},errors:r.toNestError((o=e,(o.errors||[]).reduce(function(e,r){return e[r.path.join(".")]={type:r.error.name,message:r.error.message},e},{})),n)};var o;throw e}))}catch(e){return Promise.reject(e)}}}});
2
2
  //# sourceMappingURL=computed-types.umd.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"computed-types.umd.js","sources":["../src/computed-types.ts"],"sourcesContent":["import type { FieldErrors } from 'react-hook-form';\nimport { toNestError, validateFieldsNatively } from '@hookform/resolvers';\nimport type { ValidationError } from 'computed-types';\nimport type { Resolver } from './types';\n\nconst parseErrorSchema = (computedTypesError: ValidationError) => {\n const parsedErrors: FieldErrors = {};\n return (computedTypesError.errors || []).reduce((acc, error) => {\n acc[error.path.join('.')] = {\n type: error.error.name,\n message: error.error.message,\n };\n\n return acc;\n }, parsedErrors);\n};\n\nexport const computedTypesResolver: Resolver =\n (schema) => async (values, _, options) => {\n try {\n const data = await schema(values);\n\n options.shouldUseNativeValidation && validateFieldsNatively({}, options);\n\n return {\n errors: {},\n values: data,\n };\n } catch (error: any) {\n return {\n values: {},\n errors: toNestError(parseErrorSchema(error), options),\n };\n }\n };\n"],"names":["schema","values","_","options","data","shouldUseNativeValidation","validateFieldsNatively","errors","error","toNestError","computedTypesError","reduce","acc","path","join","type","name","message"],"mappings":"2VAkBE,SAACA,mBAAkBC,EAAQC,EAAGC,sEAEPH,EAAOC,kBAApBG,GAIN,OAFAD,EAAQE,2BAA6BC,yBAAuB,GAAIH,GAEzD,CACLI,OAAQ,GACRN,OAAQG,0EAEHI,GACP,MAAO,CACLP,OAAQ,GACRM,OAAQE,eA1BUC,EA0BmBF,GAxBnCE,EAAmBH,QAAU,IAAII,OAAO,SAACC,EAAKJ,GAMpD,OALAI,EAAIJ,EAAMK,KAAKC,KAAK,MAAQ,CAC1BC,KAAMP,EAAMA,MAAMQ,KAClBC,QAAST,EAAMA,MAAMS,SAGhBL,GAPyB,KAyBiBT,IA1B5B,IAACO,KAaxB"}
1
+ {"version":3,"file":"computed-types.umd.js","sources":["../src/computed-types.ts"],"sourcesContent":["import type { FieldErrors } from 'react-hook-form';\nimport { toNestError, validateFieldsNatively } from '@hookform/resolvers';\nimport type { Resolver } from './types';\nimport type { ValidationError } from 'computed-types';\n\nconst isValidationError = (error: any): error is ValidationError =>\n error.errors != null;\n\nconst parseErrorSchema = (computedTypesError: ValidationError) => {\n const parsedErrors: FieldErrors = {};\n return (computedTypesError.errors || []).reduce((acc, error) => {\n acc[error.path.join('.')] = {\n type: error.error.name,\n message: error.error.message,\n };\n\n return acc;\n }, parsedErrors);\n};\n\nexport const computedTypesResolver: Resolver =\n (schema) => async (values, _, options) => {\n try {\n const data = await schema(values);\n\n options.shouldUseNativeValidation && validateFieldsNatively({}, options);\n\n return {\n errors: {},\n values: data,\n };\n } catch (error: any) {\n if (isValidationError(error)) {\n return {\n values: {},\n errors: toNestError(parseErrorSchema(error), options),\n };\n }\n\n throw error;\n }\n };\n"],"names":["schema","values","_","options","Promise","resolve","then","data","shouldUseNativeValidation","validateFieldsNatively","errors","_catch","error","isValidationError","toNestError","computedTypesError","reduce","acc","path","join","type","name","message","e","reject"],"mappings":"2VAqBE,SAACA,GAAM,OAAA,SAAYC,EAAQC,EAAGC,GAAO,IAAIC,OAAAA,QAAAC,gCACnCD,QAAAC,QACiBL,EAAOC,IAAOK,KAA3BC,SAAAA,GAIN,OAFAJ,EAAQK,2BAA6BC,EAAAA,uBAAuB,CAAA,EAAIN,GAEzD,CACLO,OAAQ,CAAE,EACVT,OAAQM,EACR,4DATmCI,CACnC,EASH,SAAQC,GACP,GA3BoB,SAACA,GAAU,OACnB,MAAhBA,EAAMF,MAAc,CA0BZG,CAAkBD,GACpB,MAAO,CACLX,OAAQ,CAAA,EACRS,OAAQI,EAAAA,aA3BQC,EA2BqBH,GAzBrCG,EAAmBL,QAAU,IAAIM,OAAO,SAACC,EAAKL,GAMpD,OALAK,EAAIL,EAAMM,KAAKC,KAAK,MAAQ,CAC1BC,KAAMR,EAAMA,MAAMS,KAClBC,QAASV,EAAMA,MAAMU,SAGhBL,CACT,EARkC,CAAA,IA0BmBd,IA3B9B,IAACY,EA+BpB,MAAMH,CACP,GACH,CAAC,MAAAW,GAAAnB,OAAAA,QAAAoB,OAAAD,EAAA,CAAA,CAAA"}
@@ -1,2 +1,2 @@
1
- export * from './computed-types';
2
- export * from './types';
1
+ export * from './computed-types';
2
+ export * from './types';
@@ -1,2 +1,2 @@
1
- import type { FieldValues, ResolverResult, ResolverOptions } from 'react-hook-form';
2
- export declare type Resolver = (schema: any) => <TFieldValues extends FieldValues, TContext>(values: TFieldValues, context: TContext | undefined, options: ResolverOptions<TFieldValues>) => Promise<ResolverResult<TFieldValues>>;
1
+ import type { FieldValues, ResolverResult, ResolverOptions } from 'react-hook-form';
2
+ export type Resolver = (schema: any) => <TFieldValues extends FieldValues, TContext>(values: TFieldValues, context: TContext | undefined, options: ResolverOptions<TFieldValues>) => Promise<ResolverResult<TFieldValues>>;
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
- import { render, screen, act } from '@testing-library/react';
2
+ import { render, screen } from '@testing-library/react';
3
3
  import user from '@testing-library/user-event';
4
4
  import { useForm } from 'react-hook-form';
5
5
  import Schema, { Type, string } from 'computed-types';
@@ -37,7 +37,7 @@ function TestComponent({ onSubmit }: Props) {
37
37
  }
38
38
 
39
39
  test("form's native validation with computed-types", async () => {
40
- const handleSubmit = jest.fn();
40
+ const handleSubmit = vi.fn();
41
41
  render(<TestComponent onSubmit={handleSubmit} />);
42
42
 
43
43
  // username
@@ -54,9 +54,7 @@ test("form's native validation with computed-types", async () => {
54
54
  expect(passwordField.validity.valid).toBe(true);
55
55
  expect(passwordField.validationMessage).toBe('');
56
56
 
57
- await act(async () => {
58
- user.click(screen.getByText(/submit/i));
59
- });
57
+ await user.click(screen.getByText(/submit/i));
60
58
 
61
59
  // username
62
60
  usernameField = screen.getByPlaceholderText(/username/i) as HTMLInputElement;
@@ -68,10 +66,8 @@ test("form's native validation with computed-types", async () => {
68
66
  expect(passwordField.validity.valid).toBe(false);
69
67
  expect(passwordField.validationMessage).toBe(PASSWORD_REQUIRED_MESSAGE);
70
68
 
71
- await act(async () => {
72
- user.type(screen.getByPlaceholderText(/username/i), 'joe');
73
- user.type(screen.getByPlaceholderText(/password/i), 'password');
74
- });
69
+ await user.type(screen.getByPlaceholderText(/username/i), 'joe');
70
+ await user.type(screen.getByPlaceholderText(/password/i), 'password');
75
71
 
76
72
  // username
77
73
  usernameField = screen.getByPlaceholderText(/username/i) as HTMLInputElement;
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
- import { render, screen, act } from '@testing-library/react';
2
+ import { render, screen } from '@testing-library/react';
3
3
  import user from '@testing-library/user-event';
4
4
  import { useForm } from 'react-hook-form';
5
5
  import Schema, { Type, string } from 'computed-types';
@@ -47,14 +47,12 @@ function TestComponent({ onSubmit }: Props) {
47
47
  }
48
48
 
49
49
  test("form's validation with computed-types and TypeScript's integration", async () => {
50
- const handleSubmit = jest.fn();
50
+ const handleSubmit = vi.fn();
51
51
  render(<TestComponent onSubmit={handleSubmit} />);
52
52
 
53
- expect(screen.queryAllByRole(/alert/i)).toHaveLength(0);
53
+ expect(screen.queryAllByRole('alert')).toHaveLength(0);
54
54
 
55
- await act(async () => {
56
- user.click(screen.getByText(/submit/i));
57
- });
55
+ await user.click(screen.getByText(/submit/i));
58
56
 
59
57
  expect(screen.getByText(/username field is required/i)).toBeInTheDocument();
60
58
  expect(screen.getByText(/password field is required/i)).toBeInTheDocument();
@@ -1,74 +1,74 @@
1
- // Jest Snapshot v1, https://goo.gl/fbAQLP
1
+ // Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html
2
2
 
3
- exports[`computedTypesResolver should return a single error from computedTypesResolver when validation fails 1`] = `
4
- Object {
5
- "errors": Object {
6
- "address": Object {
7
- "city": Object {
3
+ exports[`computedTypesResolver > should return a single error from computedTypesResolver when validation fails 1`] = `
4
+ {
5
+ "errors": {
6
+ "address": {
7
+ "city": {
8
8
  "message": "Is required",
9
9
  "ref": undefined,
10
10
  "type": "ValidationError",
11
11
  },
12
- "zipCode": Object {
12
+ "zipCode": {
13
13
  "message": "Must be 5 characters long",
14
14
  "ref": undefined,
15
15
  "type": "ValidationError",
16
16
  },
17
17
  },
18
- "birthYear": Object {
18
+ "birthYear": {
19
19
  "message": "Expect value to be \\"number\\"",
20
20
  "ref": undefined,
21
21
  "type": "ValidationError",
22
22
  },
23
- "email": Object {
23
+ "email": {
24
24
  "message": "Incorrect email",
25
- "ref": Object {
25
+ "ref": {
26
26
  "name": "email",
27
27
  },
28
28
  "type": "ValidationError",
29
29
  },
30
- "enabled": Object {
30
+ "enabled": {
31
31
  "message": "Expect value to be \\"boolean\\"",
32
32
  "ref": undefined,
33
33
  "type": "ValidationError",
34
34
  },
35
- "like": Object {
36
- "id": Object {
35
+ "like": {
36
+ "id": {
37
37
  "message": "Expect value to be \\"number\\"",
38
38
  "ref": undefined,
39
39
  "type": "ValidationError",
40
40
  },
41
- "name": Object {
41
+ "name": {
42
42
  "message": "Expect value to be \\"string\\"",
43
43
  "ref": undefined,
44
44
  "type": "ValidationError",
45
45
  },
46
46
  },
47
- "password": Object {
47
+ "password": {
48
48
  "message": "One uppercase character",
49
- "ref": Object {
49
+ "ref": {
50
50
  "name": "password",
51
51
  },
52
52
  "type": "ValidationError",
53
53
  },
54
- "repeatPassword": Object {
54
+ "repeatPassword": {
55
55
  "message": "Expect value to be \\"string\\"",
56
56
  "ref": undefined,
57
57
  "type": "ValidationError",
58
58
  },
59
- "tags": Object {
59
+ "tags": {
60
60
  "message": "Expecting value to be an array",
61
61
  "ref": undefined,
62
62
  "type": "ValidationError",
63
63
  },
64
- "username": Object {
64
+ "username": {
65
65
  "message": "Expect value to be \\"string\\"",
66
- "ref": Object {
66
+ "ref": {
67
67
  "name": "username",
68
68
  },
69
69
  "type": "ValidationError",
70
70
  },
71
71
  },
72
- "values": Object {},
72
+ "values": {},
73
73
  }
74
74
  `;
@@ -21,4 +21,20 @@ describe('computedTypesResolver', () => {
21
21
 
22
22
  expect(result).toMatchSnapshot();
23
23
  });
24
+
25
+ it('should throw any error unrelated to computed-types', async () => {
26
+ const schemaWithCustomError = schema.transform(() => {
27
+ throw Error('custom error');
28
+ });
29
+ const promise = computedTypesResolver(schemaWithCustomError)(
30
+ validData,
31
+ undefined,
32
+ {
33
+ fields,
34
+ shouldUseNativeValidation,
35
+ },
36
+ );
37
+
38
+ await expect(promise).rejects.toThrow('custom error');
39
+ });
24
40
  });
@@ -1,7 +1,10 @@
1
1
  import type { FieldErrors } from 'react-hook-form';
2
2
  import { toNestError, validateFieldsNatively } from '@hookform/resolvers';
3
- import type { ValidationError } from 'computed-types';
4
3
  import type { Resolver } from './types';
4
+ import type { ValidationError } from 'computed-types';
5
+
6
+ const isValidationError = (error: any): error is ValidationError =>
7
+ error.errors != null;
5
8
 
6
9
  const parseErrorSchema = (computedTypesError: ValidationError) => {
7
10
  const parsedErrors: FieldErrors = {};
@@ -27,9 +30,13 @@ export const computedTypesResolver: Resolver =
27
30
  values: data,
28
31
  };
29
32
  } catch (error: any) {
30
- return {
31
- values: {},
32
- errors: toNestError(parseErrorSchema(error), options),
33
- };
33
+ if (isValidationError(error)) {
34
+ return {
35
+ values: {},
36
+ errors: toNestError(parseErrorSchema(error), options),
37
+ };
38
+ }
39
+
40
+ throw error;
34
41
  }
35
42
  };
package/dist/index.d.ts CHANGED
@@ -1,2 +1,2 @@
1
- export * from './toNestError';
2
- export * from './validateFieldsNatively';
1
+ export * from './toNestError';
2
+ export * from './validateFieldsNatively';
package/dist/resolvers.js CHANGED
@@ -1,2 +1,2 @@
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){return e(i,t,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;
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){return e(i,t,r)})};for(var a in i.fields)t(a)};exports.toNestError=function(e,t){t.shouldUseNativeValidation&&i(e,t);var a={};for(var o in e){var f=r.get(t.fields,o);r.set(a,o,Object.assign(e[o]||{},{ref:f&&f.ref}))}return a},exports.validateFieldsNatively=i;
2
2
  //# sourceMappingURL=resolvers.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"resolvers.js","sources":["../src/validateFieldsNatively.ts","../src/toNestError.ts"],"sourcesContent":["import {\n get, FieldError, ResolverOptions, Ref, FieldErrors\n} from 'react-hook-form';\n\nconst setCustomValidity = (ref: Ref, fieldPath: string, errors: FieldErrors) => {\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: FieldErrors,\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) => setCustomValidity(ref, fieldPath, errors))\n }\n }\n};\n","import {\n set,\n get,\n FieldErrors,\n Field,\n ResolverOptions,\n} from 'react-hook-form';\nimport { validateFieldsNatively } from './validateFieldsNatively';\n\nexport const toNestError = <TFieldValues>(\n errors: FieldErrors,\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","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,UAA0BD,EAAkBC,EAAKC,EAAWC,MALpF,IAAK,IAAMD,KAAaO,EAAQE,SAArBT,wBCXc,SACzBC,EACAM,GAEAA,EAAQK,2BAA6BN,EAAuBL,EAAQM,GAEpE,IAAMM,EAAc,GACpB,IAAK,IAAMC,KAAQb,EAAQ,CACzB,IAAMO,EAAQL,MAAII,EAAQE,OAAQK,GAElCC,MACEF,EACAC,EACAE,OAAOC,OAAOhB,EAAOa,GAAO,CAAEf,IAAKS,GAASA,EAAMT,OAItD,OAAOc"}
1
+ {"version":3,"file":"resolvers.js","sources":["../src/validateFieldsNatively.ts","../src/toNestError.ts"],"sourcesContent":["import {\n get,\n FieldError,\n ResolverOptions,\n Ref,\n FieldErrors,\n FieldValues,\n} from 'react-hook-form';\n\nconst setCustomValidity = (\n ref: Ref,\n fieldPath: string,\n errors: FieldErrors,\n) => {\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 extends FieldValues>(\n errors: FieldErrors,\n options: ResolverOptions<TFieldValues>,\n): void => {\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) =>\n setCustomValidity(ref, fieldPath, errors),\n );\n }\n }\n};\n","import {\n set,\n get,\n FieldErrors,\n Field,\n ResolverOptions,\n FieldValues,\n} from 'react-hook-form';\nimport { validateFieldsNatively } from './validateFieldsNatively';\n\nexport const toNestError = <TFieldValues extends FieldValues>(\n errors: FieldErrors,\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","_loop","field","fields","refs","forEach","shouldUseNativeValidation","fieldErrors","path","set","Object","assign"],"mappings":"iCASMA,EAAoB,SACxBC,EACAC,EACAC,GAEA,GAAIF,GAAO,mBAAoBA,EAAK,CAClC,IAAMG,EAAQC,MAAIF,EAAQD,GAC1BD,EAAID,kBAAmBI,GAASA,EAAME,SAAY,IAElDL,EAAIM,gBACL,CACH,EAGaC,EAAyB,SACpCL,EACAM,GACQ,IAAAC,EAAAA,SAAAR,GAEN,IAAMS,EAAQF,EAAQG,OAAOV,GACzBS,GAASA,EAAMV,KAAO,mBAAoBU,EAAMV,IAClDD,EAAkBW,EAAMV,IAAKC,EAAWC,GAC/BQ,EAAME,MACfF,EAAME,KAAKC,QAAQ,SAACb,GAAqB,OACvCD,EAAkBC,EAAKC,EAAWC,EAAO,EAG9C,EATD,IAAK,IAAMD,KAAaO,EAAQG,OAAMF,EAAAR,EAUxC,sBC3B2B,SACzBC,EACAM,GAEAA,EAAQM,2BAA6BP,EAAuBL,EAAQM,GAEpE,IAAMO,EAAc,GACpB,IAAK,IAAMC,KAAQd,EAAQ,CACzB,IAAMQ,EAAQN,EAAAA,IAAII,EAAQG,OAAQK,GAElCC,EAAGA,IACDF,EACAC,EACAE,OAAOC,OAAOjB,EAAOc,IAAS,CAAE,EAAE,CAAEhB,IAAKU,GAASA,EAAMV,MAE3D,CAED,OAAOe,CACT"}
@@ -1,2 +1,2 @@
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){return e(i,t,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};
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){return e(i,t,r)})};for(var f in i.fields)t(f)},f=function(e,f){f.shouldUseNativeValidation&&t(e,f);var o={};for(var a in e){var n=r(f.fields,a);i(o,a,Object.assign(e[a]||{},{ref:n&&n.ref}))}return o};export{f as toNestError,t as validateFieldsNatively};
2
2
  //# sourceMappingURL=resolvers.module.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"resolvers.mjs","sources":["../src/validateFieldsNatively.ts","../src/toNestError.ts"],"sourcesContent":["import {\n get, FieldError, ResolverOptions, Ref, FieldErrors\n} from 'react-hook-form';\n\nconst setCustomValidity = (ref: Ref, fieldPath: string, errors: FieldErrors) => {\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: FieldErrors,\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) => setCustomValidity(ref, fieldPath, errors))\n }\n }\n};\n","import {\n set,\n get,\n FieldErrors,\n Field,\n ResolverOptions,\n} from 'react-hook-form';\nimport { validateFieldsNatively } from './validateFieldsNatively';\n\nexport const toNestError = <TFieldValues>(\n errors: FieldErrors,\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","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,QAASZ,GAA0BD,EAAkBC,EAAKC,EAAWC,MChBzEW,EAAc,CACzBX,EACAM,KAEAA,EAAQM,2BAA6BP,EAAuBL,EAAQM,GAEpE,MAAMO,EAAc,GACpB,IAAK,MAAMC,KAAQd,EAAQ,CACzB,MAAMQ,EAAQN,EAAII,EAAQC,OAAQO,GAElCC,EACEF,EACAC,EACAE,OAAOC,OAAOjB,EAAOc,GAAO,CAAEhB,IAAKU,GAASA,EAAMV,OAItD,OAAOe"}
1
+ {"version":3,"file":"resolvers.mjs","sources":["../src/validateFieldsNatively.ts","../src/toNestError.ts"],"sourcesContent":["import {\n get,\n FieldError,\n ResolverOptions,\n Ref,\n FieldErrors,\n FieldValues,\n} from 'react-hook-form';\n\nconst setCustomValidity = (\n ref: Ref,\n fieldPath: string,\n errors: FieldErrors,\n) => {\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 extends FieldValues>(\n errors: FieldErrors,\n options: ResolverOptions<TFieldValues>,\n): void => {\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) =>\n setCustomValidity(ref, fieldPath, errors),\n );\n }\n }\n};\n","import {\n set,\n get,\n FieldErrors,\n Field,\n ResolverOptions,\n FieldValues,\n} from 'react-hook-form';\nimport { validateFieldsNatively } from './validateFieldsNatively';\n\nexport const toNestError = <TFieldValues extends FieldValues>(\n errors: FieldErrors,\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","toNestError","shouldUseNativeValidation","fieldErrors","path","set","Object","assign"],"mappings":"+CASA,MAAMA,EAAoBA,CACxBC,EACAC,EACAC,KAEA,GAAIF,GAAO,mBAAoBA,EAAK,CAClC,MAAMG,EAAQC,EAAIF,EAAQD,GAC1BD,EAAID,kBAAmBI,GAASA,EAAME,SAAY,IAElDL,EAAIM,gBACL,GAIUC,EAAyBA,CACpCL,EACAM,KAEA,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,QAASZ,GAClBD,EAAkBC,EAAKC,EAAWC,GAGvC,GC1BUW,EAAcA,CACzBX,EACAM,KAEAA,EAAQM,2BAA6BP,EAAuBL,EAAQM,GAEpE,MAAMO,EAAc,CAAA,EACpB,IAAK,MAAMC,KAAQd,EAAQ,CACzB,MAAMQ,EAAQN,EAAII,EAAQC,OAAQO,GAElCC,EACEF,EACAC,EACAE,OAAOC,OAAOjB,EAAOc,IAAS,CAAE,EAAE,CAAEhB,IAAKU,GAASA,EAAMV,MAE3D,CAED,OAAOe"}
@@ -1,2 +1,2 @@
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){return e(i,t,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};
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){return e(i,t,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 {\n get, FieldError, ResolverOptions, Ref, FieldErrors\n} from 'react-hook-form';\n\nconst setCustomValidity = (ref: Ref, fieldPath: string, errors: FieldErrors) => {\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: FieldErrors,\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) => setCustomValidity(ref, fieldPath, errors))\n }\n }\n};\n","import {\n set,\n get,\n FieldErrors,\n Field,\n ResolverOptions,\n} from 'react-hook-form';\nimport { validateFieldsNatively } from './validateFieldsNatively';\n\nexport const toNestError = <TFieldValues>(\n errors: FieldErrors,\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","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,UAA0BD,EAAkBC,EAAKC,EAAWC,MALpF,IAAK,IAAMD,KAAaO,EAAQE,SAArBT,ICXAY,EAAc,SACzBX,EACAM,GAEAA,EAAQM,2BAA6BP,EAAuBL,EAAQM,GAEpE,IAAMO,EAAc,GACpB,IAAK,IAAMC,KAAQd,EAAQ,CACzB,IAAMO,EAAQL,EAAII,EAAQE,OAAQM,GAElCC,EACEF,EACAC,EACAE,OAAOC,OAAOjB,EAAOc,GAAO,CAAEhB,IAAKS,GAASA,EAAMT,OAItD,OAAOe"}
1
+ {"version":3,"file":"resolvers.module.js","sources":["../src/validateFieldsNatively.ts","../src/toNestError.ts"],"sourcesContent":["import {\n get,\n FieldError,\n ResolverOptions,\n Ref,\n FieldErrors,\n FieldValues,\n} from 'react-hook-form';\n\nconst setCustomValidity = (\n ref: Ref,\n fieldPath: string,\n errors: FieldErrors,\n) => {\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 extends FieldValues>(\n errors: FieldErrors,\n options: ResolverOptions<TFieldValues>,\n): void => {\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) =>\n setCustomValidity(ref, fieldPath, errors),\n );\n }\n }\n};\n","import {\n set,\n get,\n FieldErrors,\n Field,\n ResolverOptions,\n FieldValues,\n} from 'react-hook-form';\nimport { validateFieldsNatively } from './validateFieldsNatively';\n\nexport const toNestError = <TFieldValues extends FieldValues>(\n errors: FieldErrors,\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","_loop","field","fields","refs","forEach","toNestError","shouldUseNativeValidation","fieldErrors","path","set","Object","assign"],"mappings":"+CASA,IAAMA,EAAoB,SACxBC,EACAC,EACAC,GAEA,GAAIF,GAAO,mBAAoBA,EAAK,CAClC,IAAMG,EAAQC,EAAIF,EAAQD,GAC1BD,EAAID,kBAAmBI,GAASA,EAAME,SAAY,IAElDL,EAAIM,gBACL,CACH,EAGaC,EAAyB,SACpCL,EACAM,GACQ,IAAAC,EAAAA,SAAAR,GAEN,IAAMS,EAAQF,EAAQG,OAAOV,GACzBS,GAASA,EAAMV,KAAO,mBAAoBU,EAAMV,IAClDD,EAAkBW,EAAMV,IAAKC,EAAWC,GAC/BQ,EAAME,MACfF,EAAME,KAAKC,QAAQ,SAACb,GAAqB,OACvCD,EAAkBC,EAAKC,EAAWC,EAAO,EAG9C,EATD,IAAK,IAAMD,KAAaO,EAAQG,OAAMF,EAAAR,EAUxC,EC3Baa,EAAc,SACzBZ,EACAM,GAEAA,EAAQO,2BAA6BR,EAAuBL,EAAQM,GAEpE,IAAMQ,EAAc,GACpB,IAAK,IAAMC,KAAQf,EAAQ,CACzB,IAAMQ,EAAQN,EAAII,EAAQG,OAAQM,GAElCC,EACEF,EACAC,EACAE,OAAOC,OAAOlB,EAAOe,IAAS,CAAE,EAAE,CAAEjB,IAAKU,GAASA,EAAMV,MAE3D,CAED,OAAOgB,CACT"}
@@ -1,2 +1,2 @@
1
- !function(e,o){"object"==typeof exports&&"undefined"!=typeof module?o(exports,require("react-hook-form")):"function"==typeof define&&define.amd?define(["exports","react-hook-form"],o):o((e||self).hookformResolvers={},e.ReactHookForm)}(this,function(e,o){var r=function(e,r,t){if(e&&"reportValidity"in e){var i=o.get(t,r);e.setCustomValidity(i&&i.message||""),e.reportValidity()}},t=function(e,o){var t=function(t){var i=o.fields[t];i&&i.ref&&"reportValidity"in i.ref?r(i.ref,t,e):i.refs&&i.refs.forEach(function(o){return r(o,t,e)})};for(var i in o.fields)t(i)};e.toNestError=function(e,r){r.shouldUseNativeValidation&&t(e,r);var i={};for(var f in e){var n=o.get(r.fields,f);o.set(i,f,Object.assign(e[f],{ref:n&&n.ref}))}return i},e.validateFieldsNatively=t});
1
+ !function(e,o){"object"==typeof exports&&"undefined"!=typeof module?o(exports,require("react-hook-form")):"function"==typeof define&&define.amd?define(["exports","react-hook-form"],o):o((e||self).hookformResolvers={},e.ReactHookForm)}(this,function(e,o){var r=function(e,r,t){if(e&&"reportValidity"in e){var i=o.get(t,r);e.setCustomValidity(i&&i.message||""),e.reportValidity()}},t=function(e,o){var t=function(t){var i=o.fields[t];i&&i.ref&&"reportValidity"in i.ref?r(i.ref,t,e):i.refs&&i.refs.forEach(function(o){return r(o,t,e)})};for(var i in o.fields)t(i)};e.toNestError=function(e,r){r.shouldUseNativeValidation&&t(e,r);var i={};for(var f in e){var n=o.get(r.fields,f);o.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 {\n get, FieldError, ResolverOptions, Ref, FieldErrors\n} from 'react-hook-form';\n\nconst setCustomValidity = (ref: Ref, fieldPath: string, errors: FieldErrors) => {\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: FieldErrors,\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) => setCustomValidity(ref, fieldPath, errors))\n }\n }\n};\n","import {\n set,\n get,\n FieldErrors,\n Field,\n ResolverOptions,\n} from 'react-hook-form';\nimport { validateFieldsNatively } from './validateFieldsNatively';\n\nexport const toNestError = <TFieldValues>(\n errors: FieldErrors,\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","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,UAA0BD,EAAkBC,EAAKC,EAAWC,MALpF,IAAK,IAAMD,KAAaO,EAAQE,SAArBT,kBCXc,SACzBC,EACAM,GAEAA,EAAQK,2BAA6BN,EAAuBL,EAAQM,GAEpE,IAAMM,EAAc,GACpB,IAAK,IAAMC,KAAQb,EAAQ,CACzB,IAAMO,EAAQL,MAAII,EAAQE,OAAQK,GAElCC,MACEF,EACAC,EACAE,OAAOC,OAAOhB,EAAOa,GAAO,CAAEf,IAAKS,GAASA,EAAMT,OAItD,OAAOc"}
1
+ {"version":3,"file":"resolvers.umd.js","sources":["../src/validateFieldsNatively.ts","../src/toNestError.ts"],"sourcesContent":["import {\n get,\n FieldError,\n ResolverOptions,\n Ref,\n FieldErrors,\n FieldValues,\n} from 'react-hook-form';\n\nconst setCustomValidity = (\n ref: Ref,\n fieldPath: string,\n errors: FieldErrors,\n) => {\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 extends FieldValues>(\n errors: FieldErrors,\n options: ResolverOptions<TFieldValues>,\n): void => {\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) =>\n setCustomValidity(ref, fieldPath, errors),\n );\n }\n }\n};\n","import {\n set,\n get,\n FieldErrors,\n Field,\n ResolverOptions,\n FieldValues,\n} from 'react-hook-form';\nimport { validateFieldsNatively } from './validateFieldsNatively';\n\nexport const toNestError = <TFieldValues extends FieldValues>(\n errors: FieldErrors,\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","_loop","field","fields","refs","forEach","shouldUseNativeValidation","fieldErrors","path","set","Object","assign"],"mappings":"0SASA,IAAMA,EAAoB,SACxBC,EACAC,EACAC,GAEA,GAAIF,GAAO,mBAAoBA,EAAK,CAClC,IAAMG,EAAQC,MAAIF,EAAQD,GAC1BD,EAAID,kBAAmBI,GAASA,EAAME,SAAY,IAElDL,EAAIM,gBACL,CACH,EAGaC,EAAyB,SACpCL,EACAM,GACQ,IAAAC,EAAAA,SAAAR,GAEN,IAAMS,EAAQF,EAAQG,OAAOV,GACzBS,GAASA,EAAMV,KAAO,mBAAoBU,EAAMV,IAClDD,EAAkBW,EAAMV,IAAKC,EAAWC,GAC/BQ,EAAME,MACfF,EAAME,KAAKC,QAAQ,SAACb,GAAqB,OACvCD,EAAkBC,EAAKC,EAAWC,EAAO,EAG9C,EATD,IAAK,IAAMD,KAAaO,EAAQG,OAAMF,EAAAR,EAUxC,gBC3B2B,SACzBC,EACAM,GAEAA,EAAQM,2BAA6BP,EAAuBL,EAAQM,GAEpE,IAAMO,EAAc,GACpB,IAAK,IAAMC,KAAQd,EAAQ,CACzB,IAAMQ,EAAQN,EAAAA,IAAII,EAAQG,OAAQK,GAElCC,EAAGA,IACDF,EACAC,EACAE,OAAOC,OAAOjB,EAAOc,IAAS,CAAE,EAAE,CAAEhB,IAAKU,GAASA,EAAMV,MAE3D,CAED,OAAOe,CACT"}
@@ -1,2 +1,2 @@
1
- import { FieldErrors, ResolverOptions } from 'react-hook-form';
2
- export declare const toNestError: <TFieldValues>(errors: FieldErrors, options: ResolverOptions<TFieldValues>) => FieldErrors<TFieldValues>;
1
+ import { FieldErrors, ResolverOptions, FieldValues } from 'react-hook-form';
2
+ export declare const toNestError: <TFieldValues extends FieldValues>(errors: FieldErrors, options: ResolverOptions<TFieldValues>) => FieldErrors<TFieldValues>;
@@ -1,2 +1,2 @@
1
- import { ResolverOptions, FieldErrors } from 'react-hook-form';
2
- export declare const validateFieldsNatively: <TFieldValues>(errors: FieldErrors, options: ResolverOptions<TFieldValues>) => void;
1
+ import { ResolverOptions, FieldErrors, FieldValues } from 'react-hook-form';
2
+ export declare const validateFieldsNatively: <TFieldValues extends FieldValues>(errors: FieldErrors, options: ResolverOptions<TFieldValues>) => void;
@@ -1,3 +1,3 @@
1
- import * as Either from 'fp-ts/Either';
2
- declare const arrayToPath: (paths: Either.Either<string, number>[]) => string;
3
- export default arrayToPath;
1
+ import * as Either from 'fp-ts/Either';
2
+ declare const arrayToPath: (paths: Either.Either<string, number>[]) => string;
3
+ export default arrayToPath;
@@ -1,5 +1,5 @@
1
- import { ValidationError } from 'io-ts';
2
- import * as ReadonlyArray from 'fp-ts/ReadonlyArray';
3
- import { ErrorObject } from './types';
4
- declare const errorsToRecord: (validateAllFieldCriteria: boolean) => (validationErrors: ReadonlyArray<ValidationError>) => ErrorObject;
5
- export default errorsToRecord;
1
+ import { ValidationError } from 'io-ts';
2
+ import * as ReadonlyArray from 'fp-ts/ReadonlyArray';
3
+ import { ErrorObject } from './types';
4
+ declare const errorsToRecord: (validateAllFieldCriteria: boolean) => (validationErrors: ReadonlyArray<ValidationError>) => ErrorObject;
5
+ export default errorsToRecord;
@@ -1,2 +1,2 @@
1
- export * from './io-ts';
2
- export * from './types';
1
+ export * from './io-ts';
2
+ export * from './types';
@@ -1,2 +1,2 @@
1
- import { Resolver } from './types';
2
- export declare const ioTsResolver: Resolver;
1
+ import { Resolver } from './types';
2
+ export declare const ioTsResolver: Resolver;
@@ -1,2 +1,2 @@
1
- var e=require("fp-ts/Either"),t=require("fp-ts/function"),r=require("@hookform/resolvers"),n=require("io-ts"),o=require("fp-ts/ReadonlyArray"),u=require("fp-ts/Option"),i=require("fp-ts/Semigroup"),a=require("fp-ts/ReadonlyRecord");function f(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach(function(r){if("default"!==r){var n=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,n.get?n:{enumerable:!0,get:function(){return e[r]}})}}),t.default=e,t}var p=/*#__PURE__*/f(e),c=/*#__PURE__*/f(o),s=/*#__PURE__*/f(u),l=/*#__PURE__*/f(i),d=/*#__PURE__*/f(a);function m(){return(m=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e}).apply(this,arguments)}var y=function(e){return e.reduce(function(e,r,n){return t.pipe(r,p.fold(function(e){return(n>0?".":"")+e},function(e){return"["+e+"]"}),function(t){return""+e+t})},"")},v=["path"],g=[n.TaggedUnionType,n.UnionType,n.IntersectionType,n.ExactType,n.RefinementType],O=function(e){var r,n=t.pipe(r=e.context,c.filterMapWithIndex(function(e,t){var n=e-1,o=-1===n?void 0:r[n];return void 0===o||g.some(function(e){return o.type instanceof e})?s.none:s.some(t)}),c.map(function(e){return e.key}),c.map(function(e){return t.pipe(e,function(e){return parseInt(e,10)},p.fromPredicate(t.not(Number.isNaN),function(){return e}))}),c.toArray,y);return{message:t.pipe(e.message,p.fromNullable(e.context),p.mapLeft(t.flow(c.last,s.map(function(e){return"expected "+e.type.name+" but got "+JSON.stringify(e.actual)}),s.getOrElseW(function(){return t.absurd("Error context is missing name")}))),p.getOrElseW(t.identity)),type:t.pipe(e.context,c.last,s.map(function(e){return e.type.name}),s.getOrElse(function(){return"unknown"})),path:n}},b=function(e){return t.pipe(e,c.map(function(e){var t;return(t={})[e.path]={type:e.type,message:e.message},t}),function(e){return l.fold({concat:function(e,t){return Object.assign({},t,e)}})({},e)})},h={concat:function(e,t){var r;return m({},t,{types:m({},e.types,(r={},r[e.type]=e.message,r[t.type]=t.message,r))})}},x=function(e){return t.pipe(d.fromFoldableMap(h,c.Foldable)(e,function(e){return[e.path,e]}),d.map(function(e){return function(e,t){if(null==e)return{};var r,n,o={},u=Object.keys(e);for(n=0;n<u.length;n++)t.indexOf(r=u[n])>=0||(o[r]=e[r]);return o}(e,v)}))};exports.ioTsResolver=function(e){return function(n,o,u){return t.pipe(n,e.decode,p.mapLeft((i=!u.shouldUseNativeValidation&&"all"===u.criteriaMode,function(e){var r=i?x:b;return t.pipe(e,c.map(O),r)})),p.mapLeft(function(e){return r.toNestError(e,u)}),p.fold(function(e){return{values:{},errors:e}},function(e){return u.shouldUseNativeValidation&&r.validateFieldsNatively({},u),{values:e,errors:{}}}));var i}};
1
+ var e=require("fp-ts/Either"),t=require("fp-ts/function"),n=require("@hookform/resolvers"),r=require("io-ts"),i=require("fp-ts/ReadonlyArray"),o=require("fp-ts/Option"),u=require("fp-ts/Semigroup"),a=require("fp-ts/ReadonlyRecord");function f(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach(function(n){if("default"!==n){var r=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,r.get?r:{enumerable:!0,get:function(){return e[n]}})}}),t.default=e,t}var c=/*#__PURE__*/f(e),p=/*#__PURE__*/f(i),s=/*#__PURE__*/f(o),l=/*#__PURE__*/f(u),d=/*#__PURE__*/f(a);function m(){return m=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},m.apply(this,arguments)}var y=function(e){return e.reduce(function(e,n,r){return t.pipe(n,c.fold(function(e){return(r>0?".":"")+e},function(e){return"["+e+"]"}),function(t){return""+e+t})},"")},v=["path"],g=[r.TaggedUnionType,r.UnionType,r.IntersectionType,r.ExactType,r.RefinementType],b=function(e){var n,r=t.pipe(n=e.context,p.filterMapWithIndex(function(e,t){var r=e-1,i=-1===r?void 0:n[r];return void 0===i||g.some(function(e){return i.type instanceof e})?s.none:s.some(t)}),p.map(function(e){return e.key}),p.map(function(e){return t.pipe(e,function(e){return parseInt(e,10)},c.fromPredicate(t.not(Number.isNaN),function(){return e}))}),p.toArray,y);return{message:t.pipe(e.message,c.fromNullable(e.context),c.mapLeft(t.flow(p.last,s.map(function(e){return"expected "+e.type.name+" but got "+JSON.stringify(e.actual)}),s.getOrElseW(function(){return t.absurd("Error context is missing name")}))),c.getOrElseW(t.identity)),type:t.pipe(e.context,p.last,s.map(function(e){return e.type.name}),s.getOrElse(function(){return"unknown"})),path:r}},O=function(e){return t.pipe(e,p.map(function(e){var t;return(t={})[e.path]={type:e.type,message:e.message},t}),function(e){return l.fold({concat:function(e,t){return Object.assign({},t,e)}})({},e)})},h={concat:function(e,t){var n;return m({},t,{types:m({},e.types,(n={},n[e.type]=e.message,n[t.type]=t.message,n))})}},j=function(e){return t.pipe(d.fromFoldableMap(h,p.Foldable)(e,function(e){return[e.path,e]}),d.map(function(e){return function(e,t){if(null==e)return{};var n,r,i={},o=Object.keys(e);for(r=0;r<o.length;r++)t.indexOf(n=o[r])>=0||(i[n]=e[n]);return i}(e,v)}))};exports.ioTsResolver=function(e){return function(r,i,o){return t.pipe(r,e.decode,c.mapLeft((u=!o.shouldUseNativeValidation&&"all"===o.criteriaMode,function(e){var n=u?j:O;return t.pipe(e,p.map(b),n)})),c.mapLeft(function(e){return n.toNestError(e,o)}),c.fold(function(e){return{values:{},errors:e}},function(e){return o.shouldUseNativeValidation&&n.validateFieldsNatively({},o),{values:e,errors:{}}}));var u}};
2
2
  //# sourceMappingURL=io-ts.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"io-ts.js","sources":["../src/arrayToPath.ts","../src/errorsToRecord.ts","../src/io-ts.ts"],"sourcesContent":["import * as Either from 'fp-ts/Either';\nimport { pipe } from 'fp-ts/function';\n\nconst arrayToPath = (paths: Either.Either<string, number>[]): string =>\n paths.reduce(\n (previous, path, index) =>\n pipe(\n path,\n Either.fold(\n (key) => `${index > 0 ? '.' : ''}${key}`,\n (key) => `[${key}]`,\n ),\n (path) => `${previous}${path}`,\n ),\n '',\n );\n\nexport default arrayToPath;\n","import * as t from 'io-ts';\nimport {\n ExactType,\n IntersectionType,\n RefinementType,\n TaggedUnionType,\n UnionType,\n ValidationError\n} from 'io-ts';\nimport { absurd, flow, identity, not, pipe } from 'fp-ts/function';\nimport * as ReadonlyArray from 'fp-ts/ReadonlyArray';\nimport * as Option from 'fp-ts/Option';\nimport * as Either from 'fp-ts/Either';\nimport * as SemiGroup from 'fp-ts/Semigroup';\nimport arrayToPath from './arrayToPath';\nimport * as ReadonlyRecord from 'fp-ts/ReadonlyRecord';\nimport { ErrorObject, FieldErrorWithPath } from './types';\n\nconst INSTANCE_TYPES_TO_FILTER = [TaggedUnionType, UnionType, IntersectionType, ExactType, RefinementType];\nconst formatErrorPath = (context: t.Context): string =>\n pipe(\n context,\n ReadonlyArray.filterMapWithIndex((index, contextEntry) => {\n const previousIndex = index - 1;\n const previousContextEntry = previousIndex === -1 ? undefined : context[previousIndex];\n const shouldBeFiltered =\n previousContextEntry === undefined ||\n INSTANCE_TYPES_TO_FILTER.some((type) => previousContextEntry.type instanceof type)\n\n return shouldBeFiltered ? Option.none : Option.some(contextEntry);\n }),\n ReadonlyArray.map(({ key }) => key),\n ReadonlyArray.map((key) =>\n pipe(\n key,\n (k) => parseInt(k, 10),\n Either.fromPredicate(not<number>(Number.isNaN), () => key),\n ),\n ),\n ReadonlyArray.toArray,\n arrayToPath,\n );\n\nconst formatError = (e: t.ValidationError): FieldErrorWithPath => {\n const path = formatErrorPath(e.context);\n\n const message = pipe(\n e.message,\n Either.fromNullable(e.context),\n Either.mapLeft(\n flow(\n ReadonlyArray.last,\n Option.map(\n (contextEntry) =>\n `expected ${contextEntry.type.name} but got ${JSON.stringify(\n contextEntry.actual,\n )}`,\n ),\n Option.getOrElseW(() =>\n absurd<string>('Error context is missing name' as never),\n ),\n ),\n ),\n Either.getOrElseW(identity),\n );\n\n const type = pipe(\n e.context,\n ReadonlyArray.last,\n Option.map((contextEntry) => contextEntry.type.name),\n Option.getOrElse(() => 'unknown'),\n );\n\n return { message, type, path };\n};\n\n// this is almost the same function like Semigroup.getObjectSemigroup but reversed\n// in order to get the first error\nconst getObjectSemigroup = <\n A extends Record<string, unknown> = never,\n>(): SemiGroup.Semigroup<A> => ({\n concat: (first, second) => Object.assign({}, second, first),\n});\n\nconst concatToSingleError = (\n errors: ReadonlyArray<FieldErrorWithPath>,\n): ErrorObject =>\n pipe(\n errors,\n ReadonlyArray.map((error) => ({\n [error.path]: {\n type: error.type,\n message: error.message,\n },\n })),\n (errors) => SemiGroup.fold(getObjectSemigroup<ErrorObject>())({}, errors),\n );\n\nconst appendSeveralErrors: SemiGroup.Semigroup<FieldErrorWithPath> = {\n concat: (a, b) => ({\n ...b,\n types: { ...a.types, [a.type]: a.message, [b.type]: b.message },\n }),\n};\n\nconst concatToMultipleErrors = (\n errors: ReadonlyArray<FieldErrorWithPath>,\n): ErrorObject =>\n pipe(\n ReadonlyRecord.fromFoldableMap(appendSeveralErrors, ReadonlyArray.Foldable)(\n errors,\n (error) => [error.path, error],\n ),\n ReadonlyRecord.map((errorWithPath) => {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const { path, ...error } = errorWithPath;\n\n return error;\n }),\n );\n\nconst errorsToRecord =\n (validateAllFieldCriteria: boolean) =>\n (validationErrors: ReadonlyArray<ValidationError>): ErrorObject => {\n const concat = validateAllFieldCriteria\n ? concatToMultipleErrors\n : concatToSingleError;\n\n return pipe(validationErrors, ReadonlyArray.map(formatError), concat);\n };\n\nexport default errorsToRecord;\n","import * as Either from 'fp-ts/Either';\nimport { pipe } from 'fp-ts/function';\nimport { toNestError, validateFieldsNatively } from '@hookform/resolvers';\nimport errorsToRecord from './errorsToRecord';\nimport { Resolver } from './types';\n\nexport const ioTsResolver: Resolver = (codec) => (values, _context, options) =>\n pipe(\n values,\n codec.decode,\n Either.mapLeft(\n errorsToRecord(\n !options.shouldUseNativeValidation && options.criteriaMode === 'all',\n ),\n ),\n Either.mapLeft((errors) => toNestError(errors, options)),\n Either.fold(\n (errors) => ({\n values: {},\n errors,\n }),\n (values) => {\n options.shouldUseNativeValidation &&\n validateFieldsNatively({}, options);\n\n return {\n values,\n errors: {},\n } as any;\n },\n ),\n );\n"],"names":["arrayToPath","paths","reduce","previous","path","index","pipe","Either","fold","key","INSTANCE_TYPES_TO_FILTER","TaggedUnionType","UnionType","IntersectionType","ExactType","RefinementType","formatError","e","context","ReadonlyArray","filterMapWithIndex","contextEntry","previousIndex","previousContextEntry","undefined","some","type","Option","none","map","k","parseInt","fromPredicate","not","Number","isNaN","toArray","message","fromNullable","mapLeft","flow","last","name","JSON","stringify","actual","getOrElseW","absurd","identity","getOrElse","concatToSingleError","errors","error","SemiGroup","concat","first","second","Object","assign","appendSeveralErrors","a","b","types","concatToMultipleErrors","ReadonlyRecord","fromFoldableMap","Foldable","errorWithPath","codec","values","_context","options","decode","validateAllFieldCriteria","shouldUseNativeValidation","criteriaMode","validationErrors","toNestError","validateFieldsNatively"],"mappings":"6yBAGA,IAAMA,EAAc,SAACC,UACnBA,EAAMC,OACJ,SAACC,EAAUC,EAAMC,UACfC,OACEF,EACAG,EAAOC,KACL,SAACC,UAAWJ,EAAQ,EAAI,IAAM,IAAKI,GACnC,SAACA,aAAYA,QAEf,SAACL,YAAYD,EAAWC,KAE5B,gBCIEM,EAA2B,CAACC,kBAAiBC,YAAWC,mBAAkBC,YAAWC,kBAyBrFC,EAAc,SAACC,GACnB,IAzBuBC,EAyBjBd,EAxBNE,OADuBY,EAyBMD,EAAEC,QAtB7BC,EAAcC,mBAAmB,SAACf,EAAOgB,GACvC,IAAMC,EAAgBjB,EAAQ,EACxBkB,GAA0C,IAAnBD,OAAuBE,EAAYN,EAAQI,GAKxE,YAH2BE,IAAzBD,GACAb,EAAyBe,KAAK,SAACC,UAASH,EAAqBG,gBAAgBA,IAErDC,EAAOC,KAAOD,EAAOF,KAAKJ,KAEtDF,EAAcU,IAAI,qBAAGpB,MACrBU,EAAcU,IAAI,SAACpB,UACjBH,OACEG,EACA,SAACqB,UAAMC,SAASD,EAAG,KACnBvB,EAAOyB,cAAcC,MAAYC,OAAOC,OAAQ,kBAAM1B,OAG1DU,EAAciB,QACdpC,GAiCF,MAAO,CAAEqC,QA3BO/B,OACdW,EAAEoB,QACF9B,EAAO+B,aAAarB,EAAEC,SACtBX,EAAOgC,QACLC,OACErB,EAAcsB,KACdd,EAAOE,IACL,SAACR,qBACaA,EAAaK,KAAKgB,iBAAgBC,KAAKC,UACjDvB,EAAawB,UAGnBlB,EAAOmB,WAAW,kBAChBC,SAAe,qCAIrBxC,EAAOuC,WAAWE,aAUFtB,KAPLpB,OACXW,EAAEC,QACFC,EAAcsB,KACdd,EAAOE,IAAI,SAACR,UAAiBA,EAAaK,KAAKgB,OAC/Cf,EAAOsB,UAAU,iBAAM,aAGD7C,KAAAA,IAWpB8C,EAAsB,SAC1BC,UAEA7C,OACE6C,EACAhC,EAAcU,IAAI,SAACuB,sBAChBA,EAAMhD,MAAO,CACZsB,KAAM0B,EAAM1B,KACZW,QAASe,EAAMf,aAGnB,SAACc,UAAWE,EAAU7C,KAfM,CAC9B8C,OAAQ,SAACC,EAAOC,UAAWC,OAAOC,OAAO,GAAIF,EAAQD,KAcvCF,CAAkD,GAAIF,MAGhEQ,EAA+D,CACnEL,OAAQ,SAACM,EAAGC,qBACPA,GACHC,WAAYF,EAAEE,cAAQF,EAAElC,MAAOkC,EAAEvB,UAAUwB,EAAEnC,MAAOmC,EAAExB,gBAIpD0B,EAAyB,SAC7BZ,UAEA7C,OACE0D,EAAeC,gBAAgBN,EAAqBxC,EAAc+C,SAAlEF,CACEb,EACA,SAACC,SAAU,CAACA,EAAMhD,KAAMgD,KAE1BY,EAAenC,IAAI,SAACsC,GAIlB,0IAF2BA,8BC7GK,SAACC,mBAAWC,EAAQC,EAAUC,UAClEjE,OACE+D,EACAD,EAAMI,OACNjE,EAAOgC,SDgHRkC,GC9GMF,EAAQG,2BAAsD,QAAzBH,EAAQI,sBD+GnDC,GACC,IAAMtB,EAASmB,EACXV,EACAb,EAEJ,OAAO5C,OAAKsE,EAAkBzD,EAAcU,IAAIb,GAAcsC,MCjH9D/C,EAAOgC,QAAQ,SAACY,UAAW0B,cAAY1B,EAAQoB,KAC/ChE,EAAOC,KACL,SAAC2C,SAAY,CACXkB,OAAQ,GACRlB,OAAAA,IAEF,SAACkB,GAIC,OAHAE,EAAQG,2BACNI,yBAAuB,GAAIP,GAEtB,CACLF,OAAAA,EACAlB,OAAQ,OD+FhB,IAACsB"}
1
+ {"version":3,"file":"io-ts.js","sources":["../src/arrayToPath.ts","../src/errorsToRecord.ts","../src/io-ts.ts"],"sourcesContent":["import * as Either from 'fp-ts/Either';\nimport { pipe } from 'fp-ts/function';\n\nconst arrayToPath = (paths: Either.Either<string, number>[]): string =>\n paths.reduce(\n (previous, path, index) =>\n pipe(\n path,\n Either.fold(\n (key) => `${index > 0 ? '.' : ''}${key}`,\n (key) => `[${key}]`,\n ),\n (path) => `${previous}${path}`,\n ),\n '',\n );\n\nexport default arrayToPath;\n","import * as t from 'io-ts';\nimport {\n ExactType,\n IntersectionType,\n RefinementType,\n TaggedUnionType,\n UnionType,\n ValidationError\n} from 'io-ts';\nimport { absurd, flow, identity, not, pipe } from 'fp-ts/function';\nimport * as ReadonlyArray from 'fp-ts/ReadonlyArray';\nimport * as Option from 'fp-ts/Option';\nimport * as Either from 'fp-ts/Either';\nimport * as SemiGroup from 'fp-ts/Semigroup';\nimport arrayToPath from './arrayToPath';\nimport * as ReadonlyRecord from 'fp-ts/ReadonlyRecord';\nimport { ErrorObject, FieldErrorWithPath } from './types';\n\nconst INSTANCE_TYPES_TO_FILTER = [TaggedUnionType, UnionType, IntersectionType, ExactType, RefinementType];\nconst formatErrorPath = (context: t.Context): string =>\n pipe(\n context,\n ReadonlyArray.filterMapWithIndex((index, contextEntry) => {\n const previousIndex = index - 1;\n const previousContextEntry = previousIndex === -1 ? undefined : context[previousIndex];\n const shouldBeFiltered =\n previousContextEntry === undefined ||\n INSTANCE_TYPES_TO_FILTER.some((type) => previousContextEntry.type instanceof type)\n\n return shouldBeFiltered ? Option.none : Option.some(contextEntry);\n }),\n ReadonlyArray.map(({ key }) => key),\n ReadonlyArray.map((key) =>\n pipe(\n key,\n (k) => parseInt(k, 10),\n Either.fromPredicate(not<number>(Number.isNaN), () => key),\n ),\n ),\n ReadonlyArray.toArray,\n arrayToPath,\n );\n\nconst formatError = (e: t.ValidationError): FieldErrorWithPath => {\n const path = formatErrorPath(e.context);\n\n const message = pipe(\n e.message,\n Either.fromNullable(e.context),\n Either.mapLeft(\n flow(\n ReadonlyArray.last,\n Option.map(\n (contextEntry) =>\n `expected ${contextEntry.type.name} but got ${JSON.stringify(\n contextEntry.actual,\n )}`,\n ),\n Option.getOrElseW(() =>\n absurd<string>('Error context is missing name' as never),\n ),\n ),\n ),\n Either.getOrElseW(identity),\n );\n\n const type = pipe(\n e.context,\n ReadonlyArray.last,\n Option.map((contextEntry) => contextEntry.type.name),\n Option.getOrElse(() => 'unknown'),\n );\n\n return { message, type, path };\n};\n\n// this is almost the same function like Semigroup.getObjectSemigroup but reversed\n// in order to get the first error\nconst getObjectSemigroup = <\n A extends Record<string, unknown> = never,\n>(): SemiGroup.Semigroup<A> => ({\n concat: (first, second) => Object.assign({}, second, first),\n});\n\nconst concatToSingleError = (\n errors: ReadonlyArray<FieldErrorWithPath>,\n): ErrorObject =>\n pipe(\n errors,\n ReadonlyArray.map((error) => ({\n [error.path]: {\n type: error.type,\n message: error.message,\n },\n })),\n (errors) => SemiGroup.fold(getObjectSemigroup<ErrorObject>())({}, errors),\n );\n\nconst appendSeveralErrors: SemiGroup.Semigroup<FieldErrorWithPath> = {\n concat: (a, b) => ({\n ...b,\n types: { ...a.types, [a.type]: a.message, [b.type]: b.message },\n }),\n};\n\nconst concatToMultipleErrors = (\n errors: ReadonlyArray<FieldErrorWithPath>,\n): ErrorObject =>\n pipe(\n ReadonlyRecord.fromFoldableMap(appendSeveralErrors, ReadonlyArray.Foldable)(\n errors,\n (error) => [error.path, error],\n ),\n ReadonlyRecord.map((errorWithPath) => {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const { path, ...error } = errorWithPath;\n\n return error;\n }),\n );\n\nconst errorsToRecord =\n (validateAllFieldCriteria: boolean) =>\n (validationErrors: ReadonlyArray<ValidationError>): ErrorObject => {\n const concat = validateAllFieldCriteria\n ? concatToMultipleErrors\n : concatToSingleError;\n\n return pipe(validationErrors, ReadonlyArray.map(formatError), concat);\n };\n\nexport default errorsToRecord;\n","import * as Either from 'fp-ts/Either';\nimport { pipe } from 'fp-ts/function';\nimport { toNestError, validateFieldsNatively } from '@hookform/resolvers';\nimport errorsToRecord from './errorsToRecord';\nimport { Resolver } from './types';\n\nexport const ioTsResolver: Resolver = (codec) => (values, _context, options) =>\n pipe(\n values,\n codec.decode,\n Either.mapLeft(\n errorsToRecord(\n !options.shouldUseNativeValidation && options.criteriaMode === 'all',\n ),\n ),\n Either.mapLeft((errors) => toNestError(errors, options)),\n Either.fold(\n (errors) => ({\n values: {},\n errors,\n }),\n (values) => {\n options.shouldUseNativeValidation &&\n validateFieldsNatively({}, options);\n\n return {\n values,\n errors: {},\n } as any;\n },\n ),\n );\n"],"names":["arrayToPath","paths","reduce","previous","path","index","pipe","Either","fold","key","_excluded","INSTANCE_TYPES_TO_FILTER","TaggedUnionType","UnionType","IntersectionType","ExactType","RefinementType","formatError","e","context","ReadonlyArray","filterMapWithIndex","contextEntry","previousIndex","previousContextEntry","undefined","some","type","Option","none","map","_ref","k","parseInt","fromPredicate","not","Number","isNaN","toArray","message","fromNullable","mapLeft","flow","last","name","JSON","stringify","actual","getOrElseW","absurd","identity","getOrElse","concatToSingleError","errors","error","_ref2","SemiGroup","concat","first","second","Object","assign","appendSeveralErrors","a","b","_extends2","_extends","types","concatToMultipleErrors","ReadonlyRecord","fromFoldableMap","Foldable","errorWithPath","_objectWithoutPropertiesLoose","codec","values","_context","options","decode","validateAllFieldCriteria","shouldUseNativeValidation","criteriaMode","validationErrors","toNestError","validateFieldsNatively"],"mappings":"k0BAGA,IAAMA,EAAc,SAACC,UACnBA,EAAMC,OACJ,SAACC,EAAUC,EAAMC,GAAK,OACpBC,EAAAA,KACEF,EACAG,EAAOC,KACL,SAACC,GAAG,OAAQJ,EAAQ,EAAI,IAAM,IAAKI,CAAG,EACtC,SAACA,GAAYA,MAAAA,IAAAA,QAEf,SAACL,YAAYD,EAAWC,CAAI,EAC7B,EACH,GACD,ECdHM,EAAA,CAAA,QAiBMC,EAA2B,CAACC,EAAeA,gBAAEC,EAASA,UAAEC,mBAAkBC,EAAAA,UAAWC,EAAAA,gBAyBrFC,EAAc,SAACC,GACnB,IAzBuBC,EAyBjBf,EAxBNE,EAAAA,KADuBa,EAyBMD,EAAEC,QAtB7BC,EAAcC,mBAAmB,SAAChB,EAAOiB,GACvC,IAAMC,EAAgBlB,EAAQ,EACxBmB,GAA0C,IAAnBD,OAAuBE,EAAYN,EAAQI,GAKxE,YAH2BE,IAAzBD,GACAb,EAAyBe,KAAK,SAACC,GAAS,OAAAH,EAAqBG,gBAAgBA,CAAI,GAEzDC,EAAOC,KAAOD,EAAOF,KAAKJ,EACtD,GACAF,EAAcU,IAAI,SAAAC,UAAMA,EAAHtB,GAAa,GAClCW,EAAcU,IAAI,SAACrB,GACjB,OAAAH,OACEG,EACA,SAACuB,GAAM,OAAAC,SAASD,EAAG,GAAG,EACtBzB,EAAO2B,cAAcC,EAAAA,IAAYC,OAAOC,OAAQ,WAAA,OAAM5B,CAAG,GAC1D,GAEHW,EAAckB,QACdtC,GAiCF,MAAO,CAAEuC,QA3BOjC,OACdY,EAAEqB,QACFhC,EAAOiC,aAAatB,EAAEC,SACtBZ,EAAOkC,QACLC,EAAAA,KACEtB,EAAcuB,KACdf,EAAOE,IACL,SAACR,GACaA,MAAAA,YAAAA,EAAaK,KAAKiB,KAAI,YAAYC,KAAKC,UACjDxB,EAAayB,OACd,GAELnB,EAAOoB,WAAW,WAAA,OAChBC,EAAMA,OAAS,gCAAyC,KAI9D1C,EAAOyC,WAAWE,EAAAA,WAUFvB,KAPLrB,EAAAA,KACXY,EAAEC,QACFC,EAAcuB,KACdf,EAAOE,IAAI,SAACR,GAAY,OAAKA,EAAaK,KAAKiB,IAAI,GACnDhB,EAAOuB,UAAU,WAAM,MAAA,SAAS,IAGV/C,KAAAA,EAC1B,EAUMgD,EAAsB,SAC1BC,GAAyC,OAEzC/C,OACE+C,EACAjC,EAAcU,IAAI,SAACwB,GAAKC,IAAAA,SAAAA,EAAA,CAAA,GACrBD,EAAMlD,MAAO,CACZuB,KAAM2B,EAAM3B,KACZY,QAASe,EAAMf,SAChBgB,CAAA,GAEH,SAACF,UAAWG,EAAUhD,KAfM,CAC9BiD,OAAQ,SAACC,EAAOC,GAAW,OAAAC,OAAOC,OAAO,GAAIF,EAAQD,EAAM,GAc7CF,CAAkD,GAAIH,EAAO,EAC1E,EAEGS,EAA+D,CACnEL,OAAQ,SAACM,EAAGC,GAACC,IAAAA,SAAAC,EAAA,CAAA,EACRF,EAAC,CACJG,MAAKD,EAAOH,CAAAA,EAAAA,EAAEI,OAAKF,EAAA,CAAA,EAAAA,EAAGF,EAAEpC,MAAOoC,EAAExB,QAAO0B,EAAGD,EAAErC,MAAOqC,EAAEzB,QAAO0B,QAI3DG,EAAyB,SAC7Bf,GAAyC,OAEzC/C,EAAIA,KACF+D,EAAeC,gBAAgBR,EAAqB1C,EAAcmD,SAAlEF,CACEhB,EACA,SAACC,SAAU,CAACA,EAAMlD,KAAMkD,EAAM,GAEhCe,EAAevC,IAAI,SAAC0C,GAIlB,yIAFsBC,CAAKD,EAAa9D,EAG1C,GACD,uBCjHmC,SAACgE,GAAU,OAAA,SAACC,EAAQC,EAAUC,GAAO,OACzEvE,EAAAA,KACEqE,EACAD,EAAMI,OACNvE,EAAOkC,SDgHRsC,GC9GMF,EAAQG,2BAAsD,QAAzBH,EAAQI,sBD+GnDC,GACC,IAAMzB,EAASsB,EACXX,EACAhB,EAEJ,OAAO9C,EAAAA,KAAK4E,EAAkB9D,EAAcU,IAAIb,GAAcwC,EAChE,IClHElD,EAAOkC,QAAQ,SAACY,GAAM,OAAK8B,EAAAA,YAAY9B,EAAQwB,EAAQ,GACvDtE,EAAOC,KACL,SAAC6C,GAAY,MAAA,CACXsB,OAAQ,CAAA,EACRtB,OAAAA,EACD,EACD,SAACsB,GAIC,OAHAE,EAAQG,2BACNI,yBAAuB,CAAA,EAAIP,GAEtB,CACLF,OAAAA,EACAtB,OAAQ,CAAA,EAEZ,ID6FJ,IAAC0B,CC3FA,CAAA"}
@@ -1,2 +1,2 @@
1
- import*as t from"fp-ts/Either";import{pipe as n,not as r,flow as e,absurd as o,identity as u}from"fp-ts/function";import{toNestError as a,validateFieldsNatively as i}from"@hookform/resolvers";import{TaggedUnionType as f,UnionType as s,IntersectionType as c,ExactType as p,RefinementType as m}from"io-ts";import*as l from"fp-ts/ReadonlyArray";import*as d from"fp-ts/Option";import*as y from"fp-ts/Semigroup";import*as v from"fp-ts/ReadonlyRecord";function g(){return(g=Object.assign||function(t){for(var n=1;n<arguments.length;n++){var r=arguments[n];for(var e in r)Object.prototype.hasOwnProperty.call(r,e)&&(t[e]=r[e])}return t}).apply(this,arguments)}var h=function(r){return r.reduce(function(r,e,o){return n(e,t.fold(function(t){return(o>0?".":"")+t},function(t){return"["+t+"]"}),function(t){return""+r+t})},"")},O=["path"],b=[f,s,c,p,m],x=function(a){var i,f=n(i=a.context,l.filterMapWithIndex(function(t,n){var r=t-1,e=-1===r?void 0:i[r];return void 0===e||b.some(function(t){return e.type instanceof t})?d.none:d.some(n)}),l.map(function(t){return t.key}),l.map(function(e){return n(e,function(t){return parseInt(t,10)},t.fromPredicate(r(Number.isNaN),function(){return e}))}),l.toArray,h);return{message:n(a.message,t.fromNullable(a.context),t.mapLeft(e(l.last,d.map(function(t){return"expected "+t.type.name+" but got "+JSON.stringify(t.actual)}),d.getOrElseW(function(){return o("Error context is missing name")}))),t.getOrElseW(u)),type:n(a.context,l.last,d.map(function(t){return t.type.name}),d.getOrElse(function(){return"unknown"})),path:f}},N=function(t){return n(t,l.map(function(t){var n;return(n={})[t.path]={type:t.type,message:t.message},n}),function(t){return y.fold({concat:function(t,n){return Object.assign({},n,t)}})({},t)})},E={concat:function(t,n){var r;return g({},n,{types:g({},t.types,(r={},r[t.type]=t.message,r[n.type]=n.message,r))})}},j=function(t){return n(v.fromFoldableMap(E,l.Foldable)(t,function(t){return[t.path,t]}),v.map(function(t){return function(t,n){if(null==t)return{};var r,e,o={},u=Object.keys(t);for(e=0;e<u.length;e++)n.indexOf(r=u[e])>=0||(o[r]=t[r]);return o}(t,O)}))},k=function(r){return function(e,o,u){return n(e,r.decode,t.mapLeft((f=!u.shouldUseNativeValidation&&"all"===u.criteriaMode,function(t){var r=f?j:N;return n(t,l.map(x),r)})),t.mapLeft(function(t){return a(t,u)}),t.fold(function(t){return{values:{},errors:t}},function(t){return u.shouldUseNativeValidation&&i({},u),{values:t,errors:{}}}));var f}};export{k as ioTsResolver};
1
+ import*as t from"fp-ts/Either";import{pipe as n,flow as r,absurd as e,identity as o,not as u}from"fp-ts/function";import{toNestError as a,validateFieldsNatively as i}from"@hookform/resolvers";import{TaggedUnionType as f,UnionType as s,IntersectionType as c,ExactType as p,RefinementType as m}from"io-ts";import*as l from"fp-ts/ReadonlyArray";import*as d from"fp-ts/Option";import*as y from"fp-ts/Semigroup";import*as g from"fp-ts/ReadonlyRecord";function v(){return v=Object.assign?Object.assign.bind():function(t){for(var n=1;n<arguments.length;n++){var r=arguments[n];for(var e in r)Object.prototype.hasOwnProperty.call(r,e)&&(t[e]=r[e])}return t},v.apply(this,arguments)}var h=function(r){return r.reduce(function(r,e,o){return n(e,t.fold(function(t){return(o>0?".":"")+t},function(t){return"["+t+"]"}),function(t){return""+r+t})},"")},O=["path"],b=[f,s,c,p,m],x=function(a){var i,f=n(i=a.context,l.filterMapWithIndex(function(t,n){var r=t-1,e=-1===r?void 0:i[r];return void 0===e||b.some(function(t){return e.type instanceof t})?d.none:d.some(n)}),l.map(function(t){return t.key}),l.map(function(r){return n(r,function(t){return parseInt(t,10)},t.fromPredicate(u(Number.isNaN),function(){return r}))}),l.toArray,h);return{message:n(a.message,t.fromNullable(a.context),t.mapLeft(r(l.last,d.map(function(t){return"expected "+t.type.name+" but got "+JSON.stringify(t.actual)}),d.getOrElseW(function(){return e("Error context is missing name")}))),t.getOrElseW(o)),type:n(a.context,l.last,d.map(function(t){return t.type.name}),d.getOrElse(function(){return"unknown"})),path:f}},N=function(t){return n(t,l.map(function(t){var n;return(n={})[t.path]={type:t.type,message:t.message},n}),function(t){return y.fold({concat:function(t,n){return Object.assign({},n,t)}})({},t)})},j={concat:function(t,n){var r;return v({},n,{types:v({},t.types,(r={},r[t.type]=t.message,r[n.type]=n.message,r))})}},E=function(t){return n(g.fromFoldableMap(j,l.Foldable)(t,function(t){return[t.path,t]}),g.map(function(t){return function(t,n){if(null==t)return{};var r,e,o={},u=Object.keys(t);for(e=0;e<u.length;e++)n.indexOf(r=u[e])>=0||(o[r]=t[r]);return o}(t,O)}))},k=function(r){return function(e,o,u){return n(e,r.decode,t.mapLeft((f=!u.shouldUseNativeValidation&&"all"===u.criteriaMode,function(t){var r=f?E:N;return n(t,l.map(x),r)})),t.mapLeft(function(t){return a(t,u)}),t.fold(function(t){return{values:{},errors:t}},function(t){return u.shouldUseNativeValidation&&i({},u),{values:t,errors:{}}}));var f}};export{k as ioTsResolver};
2
2
  //# sourceMappingURL=io-ts.module.js.map
@@ -0,0 +1,2 @@
1
+ import*as e from"fp-ts/Either";import{pipe as t,flow as r,absurd as o,identity as a,not as s}from"fp-ts/function";import{toNestError as n,validateFieldsNatively as p}from"@hookform/resolvers";import{TaggedUnionType as i,UnionType as m,IntersectionType as f,ExactType as l,RefinementType as c}from"io-ts";import*as u from"fp-ts/ReadonlyArray";import*as d from"fp-ts/Option";import*as y from"fp-ts/Semigroup";import*as g from"fp-ts/ReadonlyRecord";function h(){return h=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var o in r)Object.prototype.hasOwnProperty.call(r,o)&&(e[o]=r[o])}return e},h.apply(this,arguments)}const v=r=>r.reduce((r,o,a)=>t(o,e.fold(e=>`${a>0?".":""}${e}`,e=>`[${e}]`),e=>`${r}${e}`),""),O=["path"],b=[i,m,f,l,c],x=n=>{const p=t(i=n.context,u.filterMapWithIndex((e,t)=>{const r=e-1,o=-1===r?void 0:i[r];return void 0===o||b.some(e=>o.type instanceof e)?d.none:d.some(t)}),u.map(({key:e})=>e),u.map(r=>t(r,e=>parseInt(e,10),e.fromPredicate(s(Number.isNaN),()=>r))),u.toArray,v);var i;return{message:t(n.message,e.fromNullable(n.context),e.mapLeft(r(u.last,d.map(e=>`expected ${e.type.name} but got ${JSON.stringify(e.actual)}`),d.getOrElseW(()=>o("Error context is missing name")))),e.getOrElseW(a)),type:t(n.context,u.last,d.map(e=>e.type.name),d.getOrElse(()=>"unknown")),path:p}},N=e=>t(e,u.map(e=>({[e.path]:{type:e.type,message:e.message}})),e=>y.fold({concat:(e,t)=>Object.assign({},t,e)})({},e)),$={concat:(e,t)=>h({},t,{types:h({},e.types,{[e.type]:e.message,[t.type]:t.message})})},j=e=>t(g.fromFoldableMap($,u.Foldable)(e,e=>[e.path,e]),g.map(e=>function(e,t){if(null==e)return{};var r,o,a={},s=Object.keys(e);for(o=0;o<s.length;o++)t.indexOf(r=s[o])>=0||(a[r]=e[r]);return a}(e,O))),E=r=>(o,a,s)=>{return t(o,r.decode,e.mapLeft((i=!s.shouldUseNativeValidation&&"all"===s.criteriaMode,e=>{const r=i?j:N;return t(e,u.map(x),r)})),e.mapLeft(e=>n(e,s)),e.fold(e=>({values:{},errors:e}),e=>(s.shouldUseNativeValidation&&p({},s),{values:e,errors:{}})));var i};export{E as ioTsResolver};
2
+ //# sourceMappingURL=io-ts.modern.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"io-ts.modern.mjs","sources":["../src/arrayToPath.ts","../src/errorsToRecord.ts","../src/io-ts.ts"],"sourcesContent":["import * as Either from 'fp-ts/Either';\nimport { pipe } from 'fp-ts/function';\n\nconst arrayToPath = (paths: Either.Either<string, number>[]): string =>\n paths.reduce(\n (previous, path, index) =>\n pipe(\n path,\n Either.fold(\n (key) => `${index > 0 ? '.' : ''}${key}`,\n (key) => `[${key}]`,\n ),\n (path) => `${previous}${path}`,\n ),\n '',\n );\n\nexport default arrayToPath;\n","import * as t from 'io-ts';\nimport {\n ExactType,\n IntersectionType,\n RefinementType,\n TaggedUnionType,\n UnionType,\n ValidationError\n} from 'io-ts';\nimport { absurd, flow, identity, not, pipe } from 'fp-ts/function';\nimport * as ReadonlyArray from 'fp-ts/ReadonlyArray';\nimport * as Option from 'fp-ts/Option';\nimport * as Either from 'fp-ts/Either';\nimport * as SemiGroup from 'fp-ts/Semigroup';\nimport arrayToPath from './arrayToPath';\nimport * as ReadonlyRecord from 'fp-ts/ReadonlyRecord';\nimport { ErrorObject, FieldErrorWithPath } from './types';\n\nconst INSTANCE_TYPES_TO_FILTER = [TaggedUnionType, UnionType, IntersectionType, ExactType, RefinementType];\nconst formatErrorPath = (context: t.Context): string =>\n pipe(\n context,\n ReadonlyArray.filterMapWithIndex((index, contextEntry) => {\n const previousIndex = index - 1;\n const previousContextEntry = previousIndex === -1 ? undefined : context[previousIndex];\n const shouldBeFiltered =\n previousContextEntry === undefined ||\n INSTANCE_TYPES_TO_FILTER.some((type) => previousContextEntry.type instanceof type)\n\n return shouldBeFiltered ? Option.none : Option.some(contextEntry);\n }),\n ReadonlyArray.map(({ key }) => key),\n ReadonlyArray.map((key) =>\n pipe(\n key,\n (k) => parseInt(k, 10),\n Either.fromPredicate(not<number>(Number.isNaN), () => key),\n ),\n ),\n ReadonlyArray.toArray,\n arrayToPath,\n );\n\nconst formatError = (e: t.ValidationError): FieldErrorWithPath => {\n const path = formatErrorPath(e.context);\n\n const message = pipe(\n e.message,\n Either.fromNullable(e.context),\n Either.mapLeft(\n flow(\n ReadonlyArray.last,\n Option.map(\n (contextEntry) =>\n `expected ${contextEntry.type.name} but got ${JSON.stringify(\n contextEntry.actual,\n )}`,\n ),\n Option.getOrElseW(() =>\n absurd<string>('Error context is missing name' as never),\n ),\n ),\n ),\n Either.getOrElseW(identity),\n );\n\n const type = pipe(\n e.context,\n ReadonlyArray.last,\n Option.map((contextEntry) => contextEntry.type.name),\n Option.getOrElse(() => 'unknown'),\n );\n\n return { message, type, path };\n};\n\n// this is almost the same function like Semigroup.getObjectSemigroup but reversed\n// in order to get the first error\nconst getObjectSemigroup = <\n A extends Record<string, unknown> = never,\n>(): SemiGroup.Semigroup<A> => ({\n concat: (first, second) => Object.assign({}, second, first),\n});\n\nconst concatToSingleError = (\n errors: ReadonlyArray<FieldErrorWithPath>,\n): ErrorObject =>\n pipe(\n errors,\n ReadonlyArray.map((error) => ({\n [error.path]: {\n type: error.type,\n message: error.message,\n },\n })),\n (errors) => SemiGroup.fold(getObjectSemigroup<ErrorObject>())({}, errors),\n );\n\nconst appendSeveralErrors: SemiGroup.Semigroup<FieldErrorWithPath> = {\n concat: (a, b) => ({\n ...b,\n types: { ...a.types, [a.type]: a.message, [b.type]: b.message },\n }),\n};\n\nconst concatToMultipleErrors = (\n errors: ReadonlyArray<FieldErrorWithPath>,\n): ErrorObject =>\n pipe(\n ReadonlyRecord.fromFoldableMap(appendSeveralErrors, ReadonlyArray.Foldable)(\n errors,\n (error) => [error.path, error],\n ),\n ReadonlyRecord.map((errorWithPath) => {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const { path, ...error } = errorWithPath;\n\n return error;\n }),\n );\n\nconst errorsToRecord =\n (validateAllFieldCriteria: boolean) =>\n (validationErrors: ReadonlyArray<ValidationError>): ErrorObject => {\n const concat = validateAllFieldCriteria\n ? concatToMultipleErrors\n : concatToSingleError;\n\n return pipe(validationErrors, ReadonlyArray.map(formatError), concat);\n };\n\nexport default errorsToRecord;\n","import * as Either from 'fp-ts/Either';\nimport { pipe } from 'fp-ts/function';\nimport { toNestError, validateFieldsNatively } from '@hookform/resolvers';\nimport errorsToRecord from './errorsToRecord';\nimport { Resolver } from './types';\n\nexport const ioTsResolver: Resolver = (codec) => (values, _context, options) =>\n pipe(\n values,\n codec.decode,\n Either.mapLeft(\n errorsToRecord(\n !options.shouldUseNativeValidation && options.criteriaMode === 'all',\n ),\n ),\n Either.mapLeft((errors) => toNestError(errors, options)),\n Either.fold(\n (errors) => ({\n values: {},\n errors,\n }),\n (values) => {\n options.shouldUseNativeValidation &&\n validateFieldsNatively({}, options);\n\n return {\n values,\n errors: {},\n } as any;\n },\n ),\n );\n"],"names":["arrayToPath","paths","reduce","previous","path","index","pipe","Either","fold","key","_excluded","INSTANCE_TYPES_TO_FILTER","TaggedUnionType","UnionType","IntersectionType","ExactType","RefinementType","formatError","e","context","ReadonlyArray","filterMapWithIndex","contextEntry","previousIndex","previousContextEntry","undefined","some","type","Option","none","map","k","parseInt","fromPredicate","not","Number","isNaN","toArray","message","fromNullable","mapLeft","flow","last","name","JSON","stringify","actual","getOrElseW","absurd","identity","getOrElse","concatToSingleError","errors","error","SemiGroup","getObjectSemigroup","concat","first","second","Object","assign","appendSeveralErrors","a","b","_extends","types","concatToMultipleErrors","ReadonlyRecord","fromFoldableMap","Foldable","errorWithPath","_objectWithoutPropertiesLoose","ioTsResolver","codec","values","_context","options","decode","validateAllFieldCriteria","shouldUseNativeValidation","criteriaMode","validationErrors","toNestError","validateFieldsNatively"],"mappings":"kqBAGA,MAAMA,EAAeC,GACnBA,EAAMC,OACJ,CAACC,EAAUC,EAAMC,IACfC,EACEF,EACAG,EAAOC,KACJC,MAAWJ,EAAQ,EAAI,IAAM,KAAKI,IAClCA,GAAQ,IAAIA,MAEdL,GAAS,GAAGD,IAAWC,KAE5B,ICbJM,EAAA,CAAA,QAiBMC,EAA2B,CAACC,EAAiBC,EAAWC,EAAkBC,EAAWC,GAyBrFC,EAAeC,IACnB,MAAMd,EAxBNE,EADuBa,EAyBMD,EAAEC,QAtB7BC,EAAcC,mBAAmB,CAAChB,EAAOiB,KACvC,MAAMC,EAAgBlB,EAAQ,EACxBmB,GAA0C,IAAnBD,OAAuBE,EAAYN,EAAQI,GAKxE,YAH2BE,IAAzBD,GACAb,EAAyBe,KAAMC,GAASH,EAAqBG,gBAAgBA,GAErDC,EAAOC,KAAOD,EAAOF,KAAKJ,EAAY,GAElEF,EAAcU,IAAI,EAAGrB,SAAUA,GAC/BW,EAAcU,IAAKrB,GACjBH,EACEG,EACCsB,GAAMC,SAASD,EAAG,IACnBxB,EAAO0B,cAAcC,EAAYC,OAAOC,OAAQ,IAAM3B,KAG1DW,EAAciB,QACdrC,GArBqBmB,MAsDvB,MAAO,CAAEmB,QA3BOhC,EACdY,EAAEoB,QACF/B,EAAOgC,aAAarB,EAAEC,SACtBZ,EAAOiC,QACLC,EACErB,EAAcsB,KACdd,EAAOE,IACJR,GACa,YAAAA,EAAaK,KAAKgB,gBAAgBC,KAAKC,UACjDvB,EAAawB,WAGnBlB,EAAOmB,WAAW,IAChBC,EAAe,oCAIrBzC,EAAOwC,WAAWE,IAUFtB,KAPLrB,EACXY,EAAEC,QACFC,EAAcsB,KACdd,EAAOE,IAAKR,GAAiBA,EAAaK,KAAKgB,MAC/Cf,EAAOsB,UAAU,IAAM,YAGD9C,SAWpB+C,EACJC,GAEA9C,EACE8C,EACAhC,EAAcU,IAAKuB,IAAK,CACtB,CAACA,EAAMjD,MAAO,CACZuB,KAAM0B,EAAM1B,KACZW,QAASe,EAAMf,YAGlBc,GAAWE,EAAU9C,KAjBC+C,CAGzBC,OAAQA,CAACC,EAAOC,IAAWC,OAAOC,OAAO,CAAE,EAAEF,EAAQD,IAcvCH,CAAkD,CAAA,EAAIF,IAGhES,EAA+D,CACnEL,OAAQA,CAACM,EAAGC,IAACC,EAAA,CAAA,EACRD,EAAC,CACJE,MAAKD,EAAOF,CAAAA,EAAAA,EAAEG,MAAO,CAAA,CAACH,EAAEnC,MAAOmC,EAAExB,QAAS,CAACyB,EAAEpC,MAAOoC,EAAEzB,aAIpD4B,EACJd,GAEA9C,EACE6D,EAAeC,gBAAgBP,EAAqBzC,EAAciD,SAAlEF,CACEf,EACCC,GAAU,CAACA,EAAMjD,KAAMiD,IAE1Bc,EAAerC,IAAKwC,qIAEIC,CAAKD,EAAa5D,KC7GjC8D,EAA0BC,GAAU,CAACC,EAAQC,EAAUC,KAClEtE,SACEoE,EACAD,EAAMI,OACNtE,EAAOiC,SDgHRsC,GC9GMF,EAAQG,2BAAsD,QAAzBH,EAAQI,aD+GnDC,IACC,MAAMzB,EAASsB,EACXZ,EACAf,EAEJ,OAAO7C,EAAK2E,EAAkB7D,EAAcU,IAAIb,GAAcuC,EAAM,ICjHpEjD,EAAOiC,QAASY,GAAW8B,EAAY9B,EAAQwB,IAC/CrE,EAAOC,KACJ4C,IAAY,CACXsB,OAAQ,CAAA,EACRtB,WAEDsB,IACCE,EAAQG,2BACNI,EAAuB,CAAA,EAAIP,GAEtB,CACLF,SACAtB,OAAQ,OD+Ff0B,KC5FE"}
@@ -1,2 +1,2 @@
1
- import*as t from"fp-ts/Either";import{pipe as n,not as r,flow as e,absurd as o,identity as u}from"fp-ts/function";import{toNestError as a,validateFieldsNatively as i}from"@hookform/resolvers";import{TaggedUnionType as f,UnionType as s,IntersectionType as c,ExactType as p,RefinementType as m}from"io-ts";import*as l from"fp-ts/ReadonlyArray";import*as d from"fp-ts/Option";import*as y from"fp-ts/Semigroup";import*as v from"fp-ts/ReadonlyRecord";function g(){return(g=Object.assign||function(t){for(var n=1;n<arguments.length;n++){var r=arguments[n];for(var e in r)Object.prototype.hasOwnProperty.call(r,e)&&(t[e]=r[e])}return t}).apply(this,arguments)}var h=function(r){return r.reduce(function(r,e,o){return n(e,t.fold(function(t){return(o>0?".":"")+t},function(t){return"["+t+"]"}),function(t){return""+r+t})},"")},O=["path"],b=[f,s,c,p,m],x=function(a){var i,f=n(i=a.context,l.filterMapWithIndex(function(t,n){var r=t-1,e=-1===r?void 0:i[r];return void 0===e||b.some(function(t){return e.type instanceof t})?d.none:d.some(n)}),l.map(function(t){return t.key}),l.map(function(e){return n(e,function(t){return parseInt(t,10)},t.fromPredicate(r(Number.isNaN),function(){return e}))}),l.toArray,h);return{message:n(a.message,t.fromNullable(a.context),t.mapLeft(e(l.last,d.map(function(t){return"expected "+t.type.name+" but got "+JSON.stringify(t.actual)}),d.getOrElseW(function(){return o("Error context is missing name")}))),t.getOrElseW(u)),type:n(a.context,l.last,d.map(function(t){return t.type.name}),d.getOrElse(function(){return"unknown"})),path:f}},N=function(t){return n(t,l.map(function(t){var n;return(n={})[t.path]={type:t.type,message:t.message},n}),function(t){return y.fold({concat:function(t,n){return Object.assign({},n,t)}})({},t)})},E={concat:function(t,n){var r;return g({},n,{types:g({},t.types,(r={},r[t.type]=t.message,r[n.type]=n.message,r))})}},j=function(t){return n(v.fromFoldableMap(E,l.Foldable)(t,function(t){return[t.path,t]}),v.map(function(t){return function(t,n){if(null==t)return{};var r,e,o={},u=Object.keys(t);for(e=0;e<u.length;e++)n.indexOf(r=u[e])>=0||(o[r]=t[r]);return o}(t,O)}))},k=function(r){return function(e,o,u){return n(e,r.decode,t.mapLeft((f=!u.shouldUseNativeValidation&&"all"===u.criteriaMode,function(t){var r=f?j:N;return n(t,l.map(x),r)})),t.mapLeft(function(t){return a(t,u)}),t.fold(function(t){return{values:{},errors:t}},function(t){return u.shouldUseNativeValidation&&i({},u),{values:t,errors:{}}}));var f}};export{k as ioTsResolver};
1
+ import*as t from"fp-ts/Either";import{pipe as n,flow as r,absurd as e,identity as o,not as u}from"fp-ts/function";import{toNestError as a,validateFieldsNatively as i}from"@hookform/resolvers";import{TaggedUnionType as f,UnionType as s,IntersectionType as c,ExactType as p,RefinementType as m}from"io-ts";import*as l from"fp-ts/ReadonlyArray";import*as d from"fp-ts/Option";import*as y from"fp-ts/Semigroup";import*as g from"fp-ts/ReadonlyRecord";function v(){return v=Object.assign?Object.assign.bind():function(t){for(var n=1;n<arguments.length;n++){var r=arguments[n];for(var e in r)Object.prototype.hasOwnProperty.call(r,e)&&(t[e]=r[e])}return t},v.apply(this,arguments)}var h=function(r){return r.reduce(function(r,e,o){return n(e,t.fold(function(t){return(o>0?".":"")+t},function(t){return"["+t+"]"}),function(t){return""+r+t})},"")},O=["path"],b=[f,s,c,p,m],x=function(a){var i,f=n(i=a.context,l.filterMapWithIndex(function(t,n){var r=t-1,e=-1===r?void 0:i[r];return void 0===e||b.some(function(t){return e.type instanceof t})?d.none:d.some(n)}),l.map(function(t){return t.key}),l.map(function(r){return n(r,function(t){return parseInt(t,10)},t.fromPredicate(u(Number.isNaN),function(){return r}))}),l.toArray,h);return{message:n(a.message,t.fromNullable(a.context),t.mapLeft(r(l.last,d.map(function(t){return"expected "+t.type.name+" but got "+JSON.stringify(t.actual)}),d.getOrElseW(function(){return e("Error context is missing name")}))),t.getOrElseW(o)),type:n(a.context,l.last,d.map(function(t){return t.type.name}),d.getOrElse(function(){return"unknown"})),path:f}},N=function(t){return n(t,l.map(function(t){var n;return(n={})[t.path]={type:t.type,message:t.message},n}),function(t){return y.fold({concat:function(t,n){return Object.assign({},n,t)}})({},t)})},j={concat:function(t,n){var r;return v({},n,{types:v({},t.types,(r={},r[t.type]=t.message,r[n.type]=n.message,r))})}},E=function(t){return n(g.fromFoldableMap(j,l.Foldable)(t,function(t){return[t.path,t]}),g.map(function(t){return function(t,n){if(null==t)return{};var r,e,o={},u=Object.keys(t);for(e=0;e<u.length;e++)n.indexOf(r=u[e])>=0||(o[r]=t[r]);return o}(t,O)}))},k=function(r){return function(e,o,u){return n(e,r.decode,t.mapLeft((f=!u.shouldUseNativeValidation&&"all"===u.criteriaMode,function(t){var r=f?E:N;return n(t,l.map(x),r)})),t.mapLeft(function(t){return a(t,u)}),t.fold(function(t){return{values:{},errors:t}},function(t){return u.shouldUseNativeValidation&&i({},u),{values:t,errors:{}}}));var f}};export{k as ioTsResolver};
2
2
  //# sourceMappingURL=io-ts.module.js.map