{"version":3,"file":"ata-validator.modern.mjs","sources":["../src/ata-validator.ts"],"sourcesContent":["import { toNestErrors, validateFieldsNatively } from '@hookform/resolvers';\nimport { ValidationError, Validator } from 'ata-validator';\nimport { FieldError, appendErrors } from 'react-hook-form';\nimport { Resolver } from './types';\n\nconst parseErrorSchema = (\n  ataErrors: ValidationError[],\n  validateAllFieldCriteria: boolean,\n) => {\n  const parsedErrors: Record<string, FieldError> = {};\n\n  for (let index = 0; index < ataErrors.length; index += 1) {\n    const error = ataErrors[index];\n\n    const instancePath =\n      error.keyword === 'required'\n        ? `${error.instancePath}/${error.params.missingProperty}`\n        : error.instancePath;\n\n    const path = instancePath.substring(1).replace(/\\//g, '.');\n\n    if (!parsedErrors[path]) {\n      parsedErrors[path] = {\n        message: error.message,\n        type: error.keyword,\n      };\n    }\n\n    if (validateAllFieldCriteria) {\n      const types = parsedErrors[path].types;\n      const messages = types && types[error.keyword];\n\n      parsedErrors[path] = appendErrors(\n        path,\n        validateAllFieldCriteria,\n        parsedErrors,\n        error.keyword,\n        messages\n          ? ([] as string[]).concat(messages as string[], error.message || '')\n          : error.message,\n      ) as FieldError;\n    }\n  }\n\n  return parsedErrors;\n};\n\nexport const ataResolver: Resolver = (\n  schema,\n  schemaOptions,\n  resolverOptions = {},\n) => {\n  const validator = new Validator(schema, schemaOptions);\n  return async (values, _, options) => {\n    const result = validator.validate(values);\n\n    options.shouldUseNativeValidation && validateFieldsNatively({}, options);\n\n    return result.valid\n      ? {\n          values: resolverOptions.raw ? Object.assign({}, values) : values,\n          errors: {},\n        }\n      : {\n          values: {},\n          errors: toNestErrors(\n            parseErrorSchema(\n              result.errors,\n              !options.shouldUseNativeValidation &&\n                options.criteriaMode === 'all',\n            ),\n            options,\n          ),\n        };\n  };\n};\n"],"names":["parseErrorSchema","ataErrors","validateAllFieldCriteria","parsedErrors","index","length","error","path","keyword","instancePath","params","missingProperty","substring","replace","message","type","types","messages","appendErrors","concat","ataResolver","schema","schemaOptions","resolverOptions","validator","Validator","values","_","options","result","validate","shouldUseNativeValidation","validateFieldsNatively","valid","raw","Object","assign","errors","toNestErrors","criteriaMode"],"mappings":"wKAKA,MAAMA,EAAmBA,CACvBC,EACAC,KAEA,MAAMC,EAA2C,CAAE,EAEnD,IAAK,IAAIC,EAAQ,EAAGA,EAAQH,EAAUI,OAAQD,GAAS,EAAG,CACxD,MAAME,EAAQL,EAAUG,GAOlBG,GAJc,aAAlBD,EAAME,QACF,GAAGF,EAAMG,gBAAgBH,EAAMI,OAAOC,kBACtCL,EAAMG,cAEcG,UAAU,GAAGC,QAAQ,MAAO,KAStD,GAPKV,EAAaI,KAChBJ,EAAaI,GAAQ,CACnBO,QAASR,EAAMQ,QACfC,KAAMT,EAAME,UAIZN,EAA0B,CAC5B,MAAMc,EAAQb,EAAaI,GAAMS,MAC3BC,EAAWD,GAASA,EAAMV,EAAME,SAEtCL,EAAaI,GAAQW,EACnBX,EACAL,EACAC,EACAG,EAAME,QACNS,EACK,GAAgBE,OAAOF,EAAsBX,EAAMQ,SAAW,IAC/DR,EAAMQ,QAEd,CACF,CAEA,OAAOX,GAGIiB,EAAwBA,CACnCC,EACAC,EACAC,EAAkB,CAAE,KAEpB,MAAMC,EAAY,IAAIC,EAAUJ,EAAQC,GACxC,OAAcI,MAAAA,EAAQC,EAAGC,KACvB,MAAMC,EAASL,EAAUM,SAASJ,GAIlC,OAFAE,EAAQG,2BAA6BC,EAAuB,CAAE,EAAEJ,GAEzDC,EAAOI,MACV,CACEP,OAAQH,EAAgBW,IAAMC,OAAOC,OAAO,CAAE,EAAEV,GAAUA,EAC1DW,OAAQ,CACT,GACD,CACEX,OAAQ,CAAA,EACRW,OAAQC,EACNtC,EACE6B,EAAOQ,QACNT,EAAQG,2BACkB,QAAzBH,EAAQW,cAEZX,IAGV"}