{"version":3,"file":"date.cjs","names":[],"sources":["../../../../src/utils/zod-to-json-schema/parsers/date.ts"],"sourcesContent":["import { ZodDateDef } from \"zod/v3\";\nimport { Refs } from \"../Refs.js\";\nimport { ErrorMessages, setResponseValueAndErrors } from \"../errorMessages.js\";\nimport { JsonSchema7NumberType } from \"./number.js\";\nimport { DateStrategy } from \"../Options.js\";\n\nexport type JsonSchema7DateType =\n  | {\n      type: \"integer\" | \"string\";\n      format: \"unix-time\" | \"date-time\" | \"date\";\n      minimum?: number;\n      maximum?: number;\n      errorMessage?: ErrorMessages<JsonSchema7NumberType>;\n    }\n  | {\n      anyOf: JsonSchema7DateType[];\n    };\n\nexport function parseDateDef(\n  def: ZodDateDef,\n  refs: Refs,\n  overrideDateStrategy?: DateStrategy\n): JsonSchema7DateType {\n  const strategy = overrideDateStrategy ?? refs.dateStrategy;\n\n  if (Array.isArray(strategy)) {\n    return {\n      anyOf: strategy.map((item) => parseDateDef(def, refs, item)),\n    };\n  }\n\n  switch (strategy) {\n    case \"string\":\n    case \"format:date-time\":\n      return {\n        type: \"string\",\n        format: \"date-time\",\n      };\n    case \"format:date\":\n      return {\n        type: \"string\",\n        format: \"date\",\n      };\n    case \"integer\":\n      return integerDateParser(def, refs);\n  }\n}\n\nconst integerDateParser = (def: ZodDateDef, refs: Refs) => {\n  const res: JsonSchema7DateType = {\n    type: \"integer\",\n    format: \"unix-time\",\n  };\n\n  if (refs.target === \"openApi3\") {\n    return res;\n  }\n\n  for (const check of def.checks) {\n    switch (check.kind) {\n      case \"min\":\n        setResponseValueAndErrors(\n          res,\n          \"minimum\",\n          check.value, // This is in milliseconds\n          check.message,\n          refs\n        );\n        break;\n      case \"max\":\n        setResponseValueAndErrors(\n          res,\n          \"maximum\",\n          check.value, // This is in milliseconds\n          check.message,\n          refs\n        );\n        break;\n    }\n  }\n\n  return res;\n};\n"],"mappings":";;AAkBA,SAAgB,aACd,KACA,MACA,sBACqB;CACrB,MAAM,WAAW,wBAAwB,KAAK;AAE9C,KAAI,MAAM,QAAQ,SAAS,CACzB,QAAO,EACL,OAAO,SAAS,KAAK,SAAS,aAAa,KAAK,MAAM,KAAK,CAAC,EAC7D;AAGH,SAAQ,UAAR;EACE,KAAK;EACL,KAAK,mBACH,QAAO;GACL,MAAM;GACN,QAAQ;GACT;EACH,KAAK,cACH,QAAO;GACL,MAAM;GACN,QAAQ;GACT;EACH,KAAK,UACH,QAAO,kBAAkB,KAAK,KAAK;;;AAIzC,MAAM,qBAAqB,KAAiB,SAAe;CACzD,MAAM,MAA2B;EAC/B,MAAM;EACN,QAAQ;EACT;AAED,KAAI,KAAK,WAAW,WAClB,QAAO;AAGT,MAAK,MAAM,SAAS,IAAI,OACtB,SAAQ,MAAM,MAAd;EACE,KAAK;AACH,yBAAA,0BACE,KACA,WACA,MAAM,OACN,MAAM,SACN,KACD;AACD;EACF,KAAK;AACH,yBAAA,0BACE,KACA,WACA,MAAM,OACN,MAAM,SACN,KACD;AACD;;AAIN,QAAO"}