{"version":3,"file":"validator.cjs","names":["validator","Details","Status","pipe","string","transform","NEVER"],"sources":["../../src/hono/validator.ts"],"sourcesContent":["import type { ValidationTargets } from 'hono';\nimport { validator } from 'hono/validator';\nimport type { ZodType, output as outputV4 } from 'zod';\nimport {\n  NEVER,\n  type ZodMiniType,\n  type output as outputMini,\n  pipe,\n  string,\n  transform,\n} from 'zod/mini';\nimport { type BadRequest, Details } from '../error/detail';\nimport { Status } from '../error/status';\n\nexport function zValidator<S extends ZodType | ZodMiniType>(\n  target: keyof ValidationTargets,\n  schema: S\n) {\n  return validator(target, async (value) => {\n    const result = await schema.safeParseAsync(value);\n    if (result.success) return result.data as S extends ZodType ? outputV4<S> : outputMini<S>;\n\n    const fieldViolations: BadRequest['fieldViolations'] = result.error.issues.map(\n      ({ code, path, message }) => ({\n        field: path.join('.'),\n        description: message,\n        reason: code.toUpperCase(),\n        localizedMessage: { locale: 'en-US', message },\n      })\n    );\n    const details = Details.new().badRequest({ fieldViolations });\n    throw Status.invalidArgument().error(details);\n  });\n}\n\nexport const bigintId = pipe(\n  string(),\n  transform((input, ctx) => {\n    if (!/^(0|[1-9]\\d{0,19})$/.test(input)) {\n      const message = `Invalid bigint id: ${input}`;\n      ctx.issues.push({ code: 'custom', input, message });\n      return NEVER;\n    }\n    try {\n      return BigInt(input);\n    } catch {\n      const message = `Parse bigint id: ${input} failed`;\n      ctx.issues.push({ code: 'custom', input, message });\n      return NEVER;\n    }\n  })\n);\n"],"mappings":";;;;;;AAcA,SAAgB,WACd,QACA,QACA;CACA,QAAA,GAAOA,eAAAA,UAAAA,CAAU,QAAQ,OAAO,UAAU;EACxC,MAAM,SAAS,MAAM,OAAO,eAAe,KAAK;EAChD,IAAI,OAAO,SAAS,OAAO,OAAO;EAElC,MAAM,kBAAiD,OAAO,MAAM,OAAO,KACxE,EAAE,MAAM,MAAM,eAAe;GAC5B,OAAO,KAAK,KAAK,GAAG;GACpB,aAAa;GACb,QAAQ,KAAK,YAAY;GACzB,kBAAkB;IAAE,QAAQ;IAAS;GAAQ;EAC/C,EACF;EACA,MAAM,UAAUC,qBAAAA,QAAQ,IAAI,CAAC,CAAC,WAAW,EAAE,gBAAgB,CAAC;EAC5D,MAAMC,qBAAAA,OAAO,gBAAgB,CAAC,CAAC,MAAM,OAAO;CAC9C,CAAC;AACH;AAEA,MAAa,YAAA,GAAWC,SAAAA,KAAAA,EAAAA,GACtBC,SAAAA,OAAAA,CAAO,IAAA,GACPC,SAAAA,UAAAA,EAAW,OAAO,QAAQ;CACxB,IAAI,CAAC,sBAAsB,KAAK,KAAK,GAAG;EACtC,MAAM,UAAU,sBAAsB;EACtC,IAAI,OAAO,KAAK;GAAE,MAAM;GAAU;GAAO;EAAQ,CAAC;EAClD,OAAOC,SAAAA;CACT;CACA,IAAI;EACF,OAAO,OAAO,KAAK;CACrB,QAAQ;EACN,MAAM,UAAU,oBAAoB,MAAM;EAC1C,IAAI,OAAO,KAAK;GAAE,MAAM;GAAU;GAAO;EAAQ,CAAC;EAClD,OAAOA,SAAAA;CACT;AACF,CAAC,CACH"}