{"version":3,"sources":["../src/zod/index.ts","../src/zod/date-in-schema.ts","../src/zod/date-out-schema.ts"],"names":["zod_exports","__export","dateIn","dateOut","zodDateInKind","isoDateRegex","ZodDateIn","_ZodDateIn","ZodType","input","ctx","status","ZodParsedType","addIssueToContext","ZodIssueCode","INVALID","date","zodDateOutKind","ZodDateOut","_ZodDateOut","parameters","withGetType","ts"],"mappings":"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","file":"chunk-66EUOAFS.mjs","sourcesContent":["import { withGetType } from \"zod-to-ts\";\n\nimport { ZodDateIn } from \"./date-in-schema\";\nimport { ZodDateOut } from \"./date-out-schema\";\n\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\nexport const dateIn = (...parameters: Parameters<typeof ZodDateIn.create>) =>\n    withGetType(ZodDateIn.create(...parameters), (ts) => ts.factory.createKeywordTypeNode(ts.SyntaxKind.StringKeyword));\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\nexport const dateOut = (...parameters: Parameters<typeof ZodDateOut.create>) =>\n    withGetType(ZodDateOut.create(...parameters), (ts) => ts.factory.createKeywordTypeNode(ts.SyntaxKind.StringKeyword));\n","import type { ParseInput, ParseReturnType, ZodTypeDef } from \"zod\";\nimport { addIssueToContext, INVALID, ZodIssueCode, ZodParsedType, ZodType } from \"zod\";\n\nconst zodDateInKind = \"ZodDateIn\";\n\n// simple regex for ISO date, supports the following formats:\n// 2021-01-01T00:00:00.000Z\n// 2021-01-01T00:00:00Z\n// 2021-01-01T00:00:00\n// 2021-01-01\n// eslint-disable-next-line security/detect-unsafe-regex\nexport const isoDateRegex = /^\\d{4}-\\d{2}-\\d{2}(T\\d{2}:\\d{2}:\\d{2}(\\.\\d{3})?)?Z?$/;\n\n// eslint-disable-next-line unicorn/prevent-abbreviations\nexport interface ZodDateInDef extends ZodTypeDef {\n    typeName: typeof zodDateInKind;\n}\n\nexport class ZodDateIn extends ZodType<Date, ZodDateInDef, string> {\n    public static create = (): ZodDateIn =>\n        new ZodDateIn({\n            typeName: zodDateInKind,\n        });\n\n    // eslint-disable-next-line no-underscore-dangle\n    public _parse(input: ParseInput): ParseReturnType<Date> {\n        // eslint-disable-next-line no-underscore-dangle\n        const { ctx, status } = this._processInputParams(input);\n        if (ctx.parsedType !== ZodParsedType.string) {\n            addIssueToContext(ctx, {\n                code: ZodIssueCode.invalid_type,\n                expected: ZodParsedType.string,\n                received: ctx.parsedType,\n            });\n            return INVALID;\n        }\n\n        if (!isoDateRegex.test(ctx.data as string)) {\n            addIssueToContext(ctx, {\n                code: ZodIssueCode.invalid_string,\n                validation: \"regex\",\n            });\n            status.dirty();\n        }\n\n        const date = new Date(ctx.data as string);\n\n        if (Number.isNaN(date.getTime())) {\n            addIssueToContext(ctx, {\n                code: ZodIssueCode.invalid_date,\n            });\n            return INVALID;\n        }\n\n        return { status: status.value, value: date };\n    }\n}\n","import type { ParseInput, ParseReturnType, ZodTypeDef } from \"zod\";\nimport { addIssueToContext, INVALID, ZodIssueCode, ZodParsedType, ZodType } from \"zod\";\n\nconst zodDateOutKind = \"ZodDateOut\";\n\n// eslint-disable-next-line unicorn/prevent-abbreviations\nexport interface ZodDateOutDef extends ZodTypeDef {\n    typeName: typeof zodDateOutKind;\n}\n\nexport class ZodDateOut extends ZodType<string, ZodDateOutDef, Date> {\n    public static create = (): ZodDateOut =>\n        new ZodDateOut({\n            typeName: zodDateOutKind,\n        });\n\n    // eslint-disable-next-line no-underscore-dangle\n    public _parse(input: ParseInput): ParseReturnType<string> {\n        // eslint-disable-next-line no-underscore-dangle\n        const { ctx, status } = this._processInputParams(input);\n\n        if (ctx.parsedType !== ZodParsedType.date) {\n            addIssueToContext(ctx, {\n                code: ZodIssueCode.invalid_type,\n                expected: ZodParsedType.date,\n                received: ctx.parsedType,\n            });\n            return INVALID;\n        }\n\n        if (Number.isNaN(ctx.data.getTime())) {\n            addIssueToContext(ctx, {\n                code: ZodIssueCode.invalid_date,\n            });\n            return INVALID;\n        }\n\n        return { status: status.value, value: (ctx.data as Date).toISOString() };\n    }\n}\n"]}