{"version":3,"file":"zod.mjs","sources":["../node_modules/.pnpm/zod@3.25.67/node_modules/zod/dist/esm/v4/core/core.js","../node_modules/.pnpm/zod@3.25.67/node_modules/zod/dist/esm/v4/core/util.js","../node_modules/.pnpm/zod@3.25.67/node_modules/zod/dist/esm/v4/core/errors.js","../node_modules/.pnpm/zod@3.25.67/node_modules/zod/dist/esm/v4/core/parse.js","../node_modules/.pnpm/zod@3.25.67/node_modules/zod/dist/esm/v4/core/regexes.js","../node_modules/.pnpm/zod@3.25.67/node_modules/zod/dist/esm/v4/core/checks.js","../node_modules/.pnpm/zod@3.25.67/node_modules/zod/dist/esm/v4/core/doc.js","../node_modules/.pnpm/zod@3.25.67/node_modules/zod/dist/esm/v4/core/versions.js","../node_modules/.pnpm/zod@3.25.67/node_modules/zod/dist/esm/v4/core/schemas.js","../node_modules/.pnpm/zod@3.25.67/node_modules/zod/dist/esm/v4/locales/en.js","../node_modules/.pnpm/zod@3.25.67/node_modules/zod/dist/esm/v4/core/registries.js","../node_modules/.pnpm/zod@3.25.67/node_modules/zod/dist/esm/v4/core/api.js","../node_modules/.pnpm/zod@3.25.67/node_modules/zod/dist/esm/v4/classic/iso.js","../node_modules/.pnpm/zod@3.25.67/node_modules/zod/dist/esm/v4/classic/errors.js","../node_modules/.pnpm/zod@3.25.67/node_modules/zod/dist/esm/v4/classic/parse.js","../node_modules/.pnpm/zod@3.25.67/node_modules/zod/dist/esm/v4/classic/schemas.js","../node_modules/.pnpm/zod@3.25.67/node_modules/zod/dist/esm/v4/classic/external.js","../src/zod.ts"],"sourcesContent":["export /*@__NO_SIDE_EFFECTS__*/ function $constructor(name, initializer, params) {\n    function init(inst, def) {\n        var _a;\n        Object.defineProperty(inst, \"_zod\", {\n            value: inst._zod ?? {},\n            enumerable: false,\n        });\n        (_a = inst._zod).traits ?? (_a.traits = new Set());\n        inst._zod.traits.add(name);\n        initializer(inst, def);\n        // support prototype modifications\n        for (const k in _.prototype) {\n            if (!(k in inst))\n                Object.defineProperty(inst, k, { value: _.prototype[k].bind(inst) });\n        }\n        inst._zod.constr = _;\n        inst._zod.def = def;\n    }\n    // doesn't work if Parent has a constructor with arguments\n    const Parent = params?.Parent ?? Object;\n    class Definition extends Parent {\n    }\n    Object.defineProperty(Definition, \"name\", { value: name });\n    function _(def) {\n        var _a;\n        const inst = params?.Parent ? new Definition() : this;\n        init(inst, def);\n        (_a = inst._zod).deferred ?? (_a.deferred = []);\n        for (const fn of inst._zod.deferred) {\n            fn();\n        }\n        return inst;\n    }\n    Object.defineProperty(_, \"init\", { value: init });\n    Object.defineProperty(_, Symbol.hasInstance, {\n        value: (inst) => {\n            if (params?.Parent && inst instanceof params.Parent)\n                return true;\n            return inst?._zod?.traits?.has(name);\n        },\n    });\n    Object.defineProperty(_, \"name\", { value: name });\n    return _;\n}\n//////////////////////////////   UTILITIES   ///////////////////////////////////////\nexport const $brand = Symbol(\"zod_brand\");\nexport class $ZodAsyncError extends Error {\n    constructor() {\n        super(`Encountered Promise during synchronous parse. Use .parseAsync() instead.`);\n    }\n}\nexport const globalConfig = {};\nexport function config(newConfig) {\n    if (newConfig)\n        Object.assign(globalConfig, newConfig);\n    return globalConfig;\n}\n","// functions\nexport function assertEqual(val) {\n    return val;\n}\nexport function assertNotEqual(val) {\n    return val;\n}\nexport function assertIs(_arg) { }\nexport function assertNever(_x) {\n    throw new Error();\n}\nexport function assert(_) { }\nexport function getEnumValues(entries) {\n    const numericValues = Object.values(entries).filter((v) => typeof v === \"number\");\n    const values = Object.entries(entries)\n        .filter(([k, _]) => numericValues.indexOf(+k) === -1)\n        .map(([_, v]) => v);\n    return values;\n}\nexport function joinValues(array, separator = \"|\") {\n    return array.map((val) => stringifyPrimitive(val)).join(separator);\n}\nexport function jsonStringifyReplacer(_, value) {\n    if (typeof value === \"bigint\")\n        return value.toString();\n    return value;\n}\nexport function cached(getter) {\n    const set = false;\n    return {\n        get value() {\n            if (!set) {\n                const value = getter();\n                Object.defineProperty(this, \"value\", { value });\n                return value;\n            }\n            throw new Error(\"cached value already set\");\n        },\n    };\n}\nexport function nullish(input) {\n    return input === null || input === undefined;\n}\nexport function cleanRegex(source) {\n    const start = source.startsWith(\"^\") ? 1 : 0;\n    const end = source.endsWith(\"$\") ? source.length - 1 : source.length;\n    return source.slice(start, end);\n}\nexport function floatSafeRemainder(val, step) {\n    const valDecCount = (val.toString().split(\".\")[1] || \"\").length;\n    const stepDecCount = (step.toString().split(\".\")[1] || \"\").length;\n    const decCount = valDecCount > stepDecCount ? valDecCount : stepDecCount;\n    const valInt = Number.parseInt(val.toFixed(decCount).replace(\".\", \"\"));\n    const stepInt = Number.parseInt(step.toFixed(decCount).replace(\".\", \"\"));\n    return (valInt % stepInt) / 10 ** decCount;\n}\nexport function defineLazy(object, key, getter) {\n    const set = false;\n    Object.defineProperty(object, key, {\n        get() {\n            if (!set) {\n                const value = getter();\n                object[key] = value;\n                return value;\n            }\n            throw new Error(\"cached value already set\");\n        },\n        set(v) {\n            Object.defineProperty(object, key, {\n                value: v,\n                // configurable: true,\n            });\n            // object[key] = v;\n        },\n        configurable: true,\n    });\n}\nexport function assignProp(target, prop, value) {\n    Object.defineProperty(target, prop, {\n        value,\n        writable: true,\n        enumerable: true,\n        configurable: true,\n    });\n}\nexport function getElementAtPath(obj, path) {\n    if (!path)\n        return obj;\n    return path.reduce((acc, key) => acc?.[key], obj);\n}\nexport function promiseAllObject(promisesObj) {\n    const keys = Object.keys(promisesObj);\n    const promises = keys.map((key) => promisesObj[key]);\n    return Promise.all(promises).then((results) => {\n        const resolvedObj = {};\n        for (let i = 0; i < keys.length; i++) {\n            resolvedObj[keys[i]] = results[i];\n        }\n        return resolvedObj;\n    });\n}\nexport function randomString(length = 10) {\n    const chars = \"abcdefghijklmnopqrstuvwxyz\";\n    let str = \"\";\n    for (let i = 0; i < length; i++) {\n        str += chars[Math.floor(Math.random() * chars.length)];\n    }\n    return str;\n}\nexport function esc(str) {\n    return JSON.stringify(str);\n}\nexport const captureStackTrace = Error.captureStackTrace\n    ? Error.captureStackTrace\n    : (..._args) => { };\nexport function isObject(data) {\n    return typeof data === \"object\" && data !== null && !Array.isArray(data);\n}\nexport const allowsEval = cached(() => {\n    if (typeof navigator !== \"undefined\" && navigator?.userAgent?.includes(\"Cloudflare\")) {\n        return false;\n    }\n    try {\n        const F = Function;\n        new F(\"\");\n        return true;\n    }\n    catch (_) {\n        return false;\n    }\n});\nfunction _isObject(o) {\n    return Object.prototype.toString.call(o) === \"[object Object]\";\n}\nexport function isPlainObject(o) {\n    if (isObject(o) === false)\n        return false;\n    // modified constructor\n    const ctor = o.constructor;\n    if (ctor === undefined)\n        return true;\n    // modified prototype\n    const prot = ctor.prototype;\n    if (isObject(prot) === false)\n        return false;\n    // ctor doesn't have static `isPrototypeOf`\n    if (Object.prototype.hasOwnProperty.call(prot, \"isPrototypeOf\") === false) {\n        return false;\n    }\n    return true;\n}\nexport function numKeys(data) {\n    let keyCount = 0;\n    for (const key in data) {\n        if (Object.prototype.hasOwnProperty.call(data, key)) {\n            keyCount++;\n        }\n    }\n    return keyCount;\n}\nexport const getParsedType = (data) => {\n    const t = typeof data;\n    switch (t) {\n        case \"undefined\":\n            return \"undefined\";\n        case \"string\":\n            return \"string\";\n        case \"number\":\n            return Number.isNaN(data) ? \"nan\" : \"number\";\n        case \"boolean\":\n            return \"boolean\";\n        case \"function\":\n            return \"function\";\n        case \"bigint\":\n            return \"bigint\";\n        case \"symbol\":\n            return \"symbol\";\n        case \"object\":\n            if (Array.isArray(data)) {\n                return \"array\";\n            }\n            if (data === null) {\n                return \"null\";\n            }\n            if (data.then && typeof data.then === \"function\" && data.catch && typeof data.catch === \"function\") {\n                return \"promise\";\n            }\n            if (typeof Map !== \"undefined\" && data instanceof Map) {\n                return \"map\";\n            }\n            if (typeof Set !== \"undefined\" && data instanceof Set) {\n                return \"set\";\n            }\n            if (typeof Date !== \"undefined\" && data instanceof Date) {\n                return \"date\";\n            }\n            if (typeof File !== \"undefined\" && data instanceof File) {\n                return \"file\";\n            }\n            return \"object\";\n        default:\n            throw new Error(`Unknown data type: ${t}`);\n    }\n};\nexport const propertyKeyTypes = new Set([\"string\", \"number\", \"symbol\"]);\nexport const primitiveTypes = new Set([\"string\", \"number\", \"bigint\", \"boolean\", \"symbol\", \"undefined\"]);\nexport function escapeRegex(str) {\n    return str.replace(/[.*+?^${}()|[\\]\\\\]/g, \"\\\\$&\");\n}\n// zod-specific utils\nexport function clone(inst, def, params) {\n    const cl = new inst._zod.constr(def ?? inst._zod.def);\n    if (!def || params?.parent)\n        cl._zod.parent = inst;\n    return cl;\n}\nexport function normalizeParams(_params) {\n    const params = _params;\n    if (!params)\n        return {};\n    if (typeof params === \"string\")\n        return { error: () => params };\n    if (params?.message !== undefined) {\n        if (params?.error !== undefined)\n            throw new Error(\"Cannot specify both `message` and `error` params\");\n        params.error = params.message;\n    }\n    delete params.message;\n    if (typeof params.error === \"string\")\n        return { ...params, error: () => params.error };\n    return params;\n}\nexport function createTransparentProxy(getter) {\n    let target;\n    return new Proxy({}, {\n        get(_, prop, receiver) {\n            target ?? (target = getter());\n            return Reflect.get(target, prop, receiver);\n        },\n        set(_, prop, value, receiver) {\n            target ?? (target = getter());\n            return Reflect.set(target, prop, value, receiver);\n        },\n        has(_, prop) {\n            target ?? (target = getter());\n            return Reflect.has(target, prop);\n        },\n        deleteProperty(_, prop) {\n            target ?? (target = getter());\n            return Reflect.deleteProperty(target, prop);\n        },\n        ownKeys(_) {\n            target ?? (target = getter());\n            return Reflect.ownKeys(target);\n        },\n        getOwnPropertyDescriptor(_, prop) {\n            target ?? (target = getter());\n            return Reflect.getOwnPropertyDescriptor(target, prop);\n        },\n        defineProperty(_, prop, descriptor) {\n            target ?? (target = getter());\n            return Reflect.defineProperty(target, prop, descriptor);\n        },\n    });\n}\nexport function stringifyPrimitive(value) {\n    if (typeof value === \"bigint\")\n        return value.toString() + \"n\";\n    if (typeof value === \"string\")\n        return `\"${value}\"`;\n    return `${value}`;\n}\nexport function optionalKeys(shape) {\n    return Object.keys(shape).filter((k) => {\n        return shape[k]._zod.optin === \"optional\" && shape[k]._zod.optout === \"optional\";\n    });\n}\nexport const NUMBER_FORMAT_RANGES = {\n    safeint: [Number.MIN_SAFE_INTEGER, Number.MAX_SAFE_INTEGER],\n    int32: [-2147483648, 2147483647],\n    uint32: [0, 4294967295],\n    float32: [-3.4028234663852886e38, 3.4028234663852886e38],\n    float64: [-Number.MAX_VALUE, Number.MAX_VALUE],\n};\nexport const BIGINT_FORMAT_RANGES = {\n    int64: [/* @__PURE__*/ BigInt(\"-9223372036854775808\"), /* @__PURE__*/ BigInt(\"9223372036854775807\")],\n    uint64: [/* @__PURE__*/ BigInt(0), /* @__PURE__*/ BigInt(\"18446744073709551615\")],\n};\nexport function pick(schema, mask) {\n    const newShape = {};\n    const currDef = schema._zod.def; //.shape;\n    for (const key in mask) {\n        if (!(key in currDef.shape)) {\n            throw new Error(`Unrecognized key: \"${key}\"`);\n        }\n        if (!mask[key])\n            continue;\n        // pick key\n        newShape[key] = currDef.shape[key];\n    }\n    return clone(schema, {\n        ...schema._zod.def,\n        shape: newShape,\n        checks: [],\n    });\n}\nexport function omit(schema, mask) {\n    const newShape = { ...schema._zod.def.shape };\n    const currDef = schema._zod.def; //.shape;\n    for (const key in mask) {\n        if (!(key in currDef.shape)) {\n            throw new Error(`Unrecognized key: \"${key}\"`);\n        }\n        if (!mask[key])\n            continue;\n        delete newShape[key];\n    }\n    return clone(schema, {\n        ...schema._zod.def,\n        shape: newShape,\n        checks: [],\n    });\n}\nexport function extend(schema, shape) {\n    const def = {\n        ...schema._zod.def,\n        get shape() {\n            const _shape = { ...schema._zod.def.shape, ...shape };\n            assignProp(this, \"shape\", _shape); // self-caching\n            return _shape;\n        },\n        checks: [], // delete existing checks\n    };\n    return clone(schema, def);\n}\nexport function merge(a, b) {\n    return clone(a, {\n        ...a._zod.def,\n        get shape() {\n            const _shape = { ...a._zod.def.shape, ...b._zod.def.shape };\n            assignProp(this, \"shape\", _shape); // self-caching\n            return _shape;\n        },\n        catchall: b._zod.def.catchall,\n        checks: [], // delete existing checks\n    });\n}\nexport function partial(Class, schema, mask) {\n    const oldShape = schema._zod.def.shape;\n    const shape = { ...oldShape };\n    if (mask) {\n        for (const key in mask) {\n            if (!(key in oldShape)) {\n                throw new Error(`Unrecognized key: \"${key}\"`);\n            }\n            if (!mask[key])\n                continue;\n            shape[key] = Class\n                ? new Class({\n                    type: \"optional\",\n                    innerType: oldShape[key],\n                })\n                : oldShape[key];\n        }\n    }\n    else {\n        for (const key in oldShape) {\n            shape[key] = Class\n                ? new Class({\n                    type: \"optional\",\n                    innerType: oldShape[key],\n                })\n                : oldShape[key];\n        }\n    }\n    return clone(schema, {\n        ...schema._zod.def,\n        shape,\n        checks: [],\n    });\n}\nexport function required(Class, schema, mask) {\n    const oldShape = schema._zod.def.shape;\n    const shape = { ...oldShape };\n    if (mask) {\n        for (const key in mask) {\n            if (!(key in shape)) {\n                throw new Error(`Unrecognized key: \"${key}\"`);\n            }\n            if (!mask[key])\n                continue;\n            // overwrite with non-optional\n            shape[key] = new Class({\n                type: \"nonoptional\",\n                innerType: oldShape[key],\n            });\n        }\n    }\n    else {\n        for (const key in oldShape) {\n            // overwrite with non-optional\n            shape[key] = new Class({\n                type: \"nonoptional\",\n                innerType: oldShape[key],\n            });\n        }\n    }\n    return clone(schema, {\n        ...schema._zod.def,\n        shape,\n        // optional: [],\n        checks: [],\n    });\n}\nexport function aborted(x, startIndex = 0) {\n    for (let i = startIndex; i < x.issues.length; i++) {\n        if (x.issues[i].continue !== true)\n            return true;\n    }\n    return false;\n}\nexport function prefixIssues(path, issues) {\n    return issues.map((iss) => {\n        var _a;\n        (_a = iss).path ?? (_a.path = []);\n        iss.path.unshift(path);\n        return iss;\n    });\n}\nexport function unwrapMessage(message) {\n    return typeof message === \"string\" ? message : message?.message;\n}\nexport function finalizeIssue(iss, ctx, config) {\n    const full = { ...iss, path: iss.path ?? [] };\n    // for backwards compatibility\n    if (!iss.message) {\n        const message = unwrapMessage(iss.inst?._zod.def?.error?.(iss)) ??\n            unwrapMessage(ctx?.error?.(iss)) ??\n            unwrapMessage(config.customError?.(iss)) ??\n            unwrapMessage(config.localeError?.(iss)) ??\n            \"Invalid input\";\n        full.message = message;\n    }\n    // delete (full as any).def;\n    delete full.inst;\n    delete full.continue;\n    if (!ctx?.reportInput) {\n        delete full.input;\n    }\n    return full;\n}\nexport function getSizableOrigin(input) {\n    if (input instanceof Set)\n        return \"set\";\n    if (input instanceof Map)\n        return \"map\";\n    if (input instanceof File)\n        return \"file\";\n    return \"unknown\";\n}\nexport function getLengthableOrigin(input) {\n    if (Array.isArray(input))\n        return \"array\";\n    if (typeof input === \"string\")\n        return \"string\";\n    return \"unknown\";\n}\nexport function issue(...args) {\n    const [iss, input, inst] = args;\n    if (typeof iss === \"string\") {\n        return {\n            message: iss,\n            code: \"custom\",\n            input,\n            inst,\n        };\n    }\n    return { ...iss };\n}\nexport function cleanEnum(obj) {\n    return Object.entries(obj)\n        .filter(([k, _]) => {\n        // return true if NaN, meaning it's not a number, thus a string key\n        return Number.isNaN(Number.parseInt(k, 10));\n    })\n        .map((el) => el[1]);\n}\n// instanceof\nexport class Class {\n    constructor(..._args) { }\n}\n","import { $constructor } from \"./core.js\";\nimport * as util from \"./util.js\";\nconst initializer = (inst, def) => {\n    inst.name = \"$ZodError\";\n    Object.defineProperty(inst, \"_zod\", {\n        value: inst._zod,\n        enumerable: false,\n    });\n    Object.defineProperty(inst, \"issues\", {\n        value: def,\n        enumerable: false,\n    });\n    Object.defineProperty(inst, \"message\", {\n        get() {\n            return JSON.stringify(def, util.jsonStringifyReplacer, 2);\n        },\n        enumerable: true,\n        // configurable: false,\n    });\n};\nexport const $ZodError = $constructor(\"$ZodError\", initializer);\nexport const $ZodRealError = $constructor(\"$ZodError\", initializer, { Parent: Error });\nexport function flattenError(error, mapper = (issue) => issue.message) {\n    const fieldErrors = {};\n    const formErrors = [];\n    for (const sub of error.issues) {\n        if (sub.path.length > 0) {\n            fieldErrors[sub.path[0]] = fieldErrors[sub.path[0]] || [];\n            fieldErrors[sub.path[0]].push(mapper(sub));\n        }\n        else {\n            formErrors.push(mapper(sub));\n        }\n    }\n    return { formErrors, fieldErrors };\n}\nexport function formatError(error, _mapper) {\n    const mapper = _mapper ||\n        function (issue) {\n            return issue.message;\n        };\n    const fieldErrors = { _errors: [] };\n    const processError = (error) => {\n        for (const issue of error.issues) {\n            if (issue.code === \"invalid_union\" && issue.errors.length) {\n                issue.errors.map((issues) => processError({ issues }));\n            }\n            else if (issue.code === \"invalid_key\") {\n                processError({ issues: issue.issues });\n            }\n            else if (issue.code === \"invalid_element\") {\n                processError({ issues: issue.issues });\n            }\n            else if (issue.path.length === 0) {\n                fieldErrors._errors.push(mapper(issue));\n            }\n            else {\n                let curr = fieldErrors;\n                let i = 0;\n                while (i < issue.path.length) {\n                    const el = issue.path[i];\n                    const terminal = i === issue.path.length - 1;\n                    if (!terminal) {\n                        curr[el] = curr[el] || { _errors: [] };\n                    }\n                    else {\n                        curr[el] = curr[el] || { _errors: [] };\n                        curr[el]._errors.push(mapper(issue));\n                    }\n                    curr = curr[el];\n                    i++;\n                }\n            }\n        }\n    };\n    processError(error);\n    return fieldErrors;\n}\nexport function treeifyError(error, _mapper) {\n    const mapper = _mapper ||\n        function (issue) {\n            return issue.message;\n        };\n    const result = { errors: [] };\n    const processError = (error, path = []) => {\n        var _a, _b;\n        for (const issue of error.issues) {\n            if (issue.code === \"invalid_union\" && issue.errors.length) {\n                // regular union error\n                issue.errors.map((issues) => processError({ issues }, issue.path));\n            }\n            else if (issue.code === \"invalid_key\") {\n                processError({ issues: issue.issues }, issue.path);\n            }\n            else if (issue.code === \"invalid_element\") {\n                processError({ issues: issue.issues }, issue.path);\n            }\n            else {\n                const fullpath = [...path, ...issue.path];\n                if (fullpath.length === 0) {\n                    result.errors.push(mapper(issue));\n                    continue;\n                }\n                let curr = result;\n                let i = 0;\n                while (i < fullpath.length) {\n                    const el = fullpath[i];\n                    const terminal = i === fullpath.length - 1;\n                    if (typeof el === \"string\") {\n                        curr.properties ?? (curr.properties = {});\n                        (_a = curr.properties)[el] ?? (_a[el] = { errors: [] });\n                        curr = curr.properties[el];\n                    }\n                    else {\n                        curr.items ?? (curr.items = []);\n                        (_b = curr.items)[el] ?? (_b[el] = { errors: [] });\n                        curr = curr.items[el];\n                    }\n                    if (terminal) {\n                        curr.errors.push(mapper(issue));\n                    }\n                    i++;\n                }\n            }\n        }\n    };\n    processError(error);\n    return result;\n}\n/** Format a ZodError as a human-readable string in the following form.\n *\n * From\n *\n * ```ts\n * ZodError {\n *   issues: [\n *     {\n *       expected: 'string',\n *       code: 'invalid_type',\n *       path: [ 'username' ],\n *       message: 'Invalid input: expected string'\n *     },\n *     {\n *       expected: 'number',\n *       code: 'invalid_type',\n *       path: [ 'favoriteNumbers', 1 ],\n *       message: 'Invalid input: expected number'\n *     }\n *   ];\n * }\n * ```\n *\n * to\n *\n * ```\n * username\n *   ✖ Expected number, received string at \"username\n * favoriteNumbers[0]\n *   ✖ Invalid input: expected number\n * ```\n */\nexport function toDotPath(path) {\n    const segs = [];\n    for (const seg of path) {\n        if (typeof seg === \"number\")\n            segs.push(`[${seg}]`);\n        else if (typeof seg === \"symbol\")\n            segs.push(`[${JSON.stringify(String(seg))}]`);\n        else if (/[^\\w$]/.test(seg))\n            segs.push(`[${JSON.stringify(seg)}]`);\n        else {\n            if (segs.length)\n                segs.push(\".\");\n            segs.push(seg);\n        }\n    }\n    return segs.join(\"\");\n}\nexport function prettifyError(error) {\n    const lines = [];\n    // sort by path length\n    const issues = [...error.issues].sort((a, b) => a.path.length - b.path.length);\n    // Process each issue\n    for (const issue of issues) {\n        lines.push(`✖ ${issue.message}`);\n        if (issue.path?.length)\n            lines.push(`  → at ${toDotPath(issue.path)}`);\n    }\n    // Convert Map to formatted string\n    return lines.join(\"\\n\");\n}\n","import * as core from \"./core.js\";\nimport * as errors from \"./errors.js\";\nimport * as util from \"./util.js\";\nexport const _parse = (_Err) => (schema, value, _ctx, _params) => {\n    const ctx = _ctx ? Object.assign(_ctx, { async: false }) : { async: false };\n    const result = schema._zod.run({ value, issues: [] }, ctx);\n    if (result instanceof Promise) {\n        throw new core.$ZodAsyncError();\n    }\n    if (result.issues.length) {\n        const e = new (_params?.Err ?? _Err)(result.issues.map((iss) => util.finalizeIssue(iss, ctx, core.config())));\n        util.captureStackTrace(e, _params?.callee);\n        throw e;\n    }\n    return result.value;\n};\nexport const parse = /* @__PURE__*/ _parse(errors.$ZodRealError);\nexport const _parseAsync = (_Err) => async (schema, value, _ctx, params) => {\n    const ctx = _ctx ? Object.assign(_ctx, { async: true }) : { async: true };\n    let result = schema._zod.run({ value, issues: [] }, ctx);\n    if (result instanceof Promise)\n        result = await result;\n    if (result.issues.length) {\n        const e = new (params?.Err ?? _Err)(result.issues.map((iss) => util.finalizeIssue(iss, ctx, core.config())));\n        util.captureStackTrace(e, params?.callee);\n        throw e;\n    }\n    return result.value;\n};\nexport const parseAsync = /* @__PURE__*/ _parseAsync(errors.$ZodRealError);\nexport const _safeParse = (_Err) => (schema, value, _ctx) => {\n    const ctx = _ctx ? { ..._ctx, async: false } : { async: false };\n    const result = schema._zod.run({ value, issues: [] }, ctx);\n    if (result instanceof Promise) {\n        throw new core.$ZodAsyncError();\n    }\n    return result.issues.length\n        ? {\n            success: false,\n            error: new (_Err ?? errors.$ZodError)(result.issues.map((iss) => util.finalizeIssue(iss, ctx, core.config()))),\n        }\n        : { success: true, data: result.value };\n};\nexport const safeParse = /* @__PURE__*/ _safeParse(errors.$ZodRealError);\nexport const _safeParseAsync = (_Err) => async (schema, value, _ctx) => {\n    const ctx = _ctx ? Object.assign(_ctx, { async: true }) : { async: true };\n    let result = schema._zod.run({ value, issues: [] }, ctx);\n    if (result instanceof Promise)\n        result = await result;\n    return result.issues.length\n        ? {\n            success: false,\n            error: new _Err(result.issues.map((iss) => util.finalizeIssue(iss, ctx, core.config()))),\n        }\n        : { success: true, data: result.value };\n};\nexport const safeParseAsync = /* @__PURE__*/ _safeParseAsync(errors.$ZodRealError);\n","export const cuid = /^[cC][^\\s-]{8,}$/;\nexport const cuid2 = /^[0-9a-z]+$/;\nexport const ulid = /^[0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{26}$/;\nexport const xid = /^[0-9a-vA-V]{20}$/;\nexport const ksuid = /^[A-Za-z0-9]{27}$/;\nexport const nanoid = /^[a-zA-Z0-9_-]{21}$/;\n/** ISO 8601-1 duration regex. Does not support the 8601-2 extensions like negative durations or fractional/negative components. */\nexport const duration = /^P(?:(\\d+W)|(?!.*W)(?=\\d|T\\d)(\\d+Y)?(\\d+M)?(\\d+D)?(T(?=\\d)(\\d+H)?(\\d+M)?(\\d+([.,]\\d+)?S)?)?)$/;\n/** Implements ISO 8601-2 extensions like explicit +- prefixes, mixing weeks with other units, and fractional/negative components. */\nexport const extendedDuration = /^[-+]?P(?!$)(?:(?:[-+]?\\d+Y)|(?:[-+]?\\d+[.,]\\d+Y$))?(?:(?:[-+]?\\d+M)|(?:[-+]?\\d+[.,]\\d+M$))?(?:(?:[-+]?\\d+W)|(?:[-+]?\\d+[.,]\\d+W$))?(?:(?:[-+]?\\d+D)|(?:[-+]?\\d+[.,]\\d+D$))?(?:T(?=[\\d+-])(?:(?:[-+]?\\d+H)|(?:[-+]?\\d+[.,]\\d+H$))?(?:(?:[-+]?\\d+M)|(?:[-+]?\\d+[.,]\\d+M$))?(?:[-+]?\\d+(?:[.,]\\d+)?S)?)??$/;\n/** A regex for any UUID-like identifier: 8-4-4-4-12 hex pattern */\nexport const guid = /^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$/;\n/** Returns a regex for validating an RFC 4122 UUID.\n *\n * @param version Optionally specify a version 1-8. If no version is specified, all versions are supported. */\nexport const uuid = (version) => {\n    if (!version)\n        return /^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$/;\n    return new RegExp(`^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-${version}[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$`);\n};\nexport const uuid4 = /*@__PURE__*/ uuid(4);\nexport const uuid6 = /*@__PURE__*/ uuid(6);\nexport const uuid7 = /*@__PURE__*/ uuid(7);\n/** Practical email validation */\nexport const email = /^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$/;\n/** Equivalent to the HTML5 input[type=email] validation implemented by browsers. Source: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/email */\nexport const html5Email = /^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/;\n/** The classic emailregex.com regex for RFC 5322-compliant emails */\nexport const rfc5322Email = /^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/;\n/** A loose regex that allows Unicode characters, enforces length limits, and that's about it. */\nexport const unicodeEmail = /^[^\\s@\"]{1,64}@[^\\s@]{1,255}$/u;\nexport const browserEmail = /^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/;\n// from https://thekevinscott.com/emojis-in-javascript/#writing-a-regular-expression\nexport const _emoji = `^(\\\\p{Extended_Pictographic}|\\\\p{Emoji_Component})+$`;\nexport function emoji() {\n    return new RegExp(_emoji, \"u\");\n}\nexport const ipv4 = /^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/;\nexport const ipv6 = /^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|::|([0-9a-fA-F]{1,4})?::([0-9a-fA-F]{1,4}:?){0,6})$/;\nexport const cidrv4 = /^((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\\.){3}(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\\/([0-9]|[1-2][0-9]|3[0-2])$/;\nexport const cidrv6 = /^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|::|([0-9a-fA-F]{1,4})?::([0-9a-fA-F]{1,4}:?){0,6})\\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/;\n// https://stackoverflow.com/questions/7860392/determine-if-string-is-in-base64-using-javascript\nexport const base64 = /^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$/;\nexport const base64url = /^[A-Za-z0-9_-]*$/;\n// based on https://stackoverflow.com/questions/106179/regular-expression-to-match-dns-hostname-or-ip-address\n// export const hostname: RegExp =\n//   /^(([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9\\-]*[a-zA-Z0-9])\\.)+([A-Za-z0-9]|[A-Za-z0-9][A-Za-z0-9\\-]*[A-Za-z0-9])$/;\nexport const hostname = /^([a-zA-Z0-9-]+\\.)*[a-zA-Z0-9-]+$/;\nexport const domain = /^([a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?\\.)+[a-zA-Z]{2,}$/;\n// https://blog.stevenlevithan.com/archives/validate-phone-number#r4-3 (regex sans spaces)\nexport const e164 = /^\\+(?:[0-9]){6,14}[0-9]$/;\n// const dateSource = `((\\\\d\\\\d[2468][048]|\\\\d\\\\d[13579][26]|\\\\d\\\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\\\d{4}-((0[13578]|1[02])-(0[1-9]|[12]\\\\d|3[01])|(0[469]|11)-(0[1-9]|[12]\\\\d|30)|(02)-(0[1-9]|1\\\\d|2[0-8])))`;\nconst dateSource = `(?:(?:\\\\d\\\\d[2468][048]|\\\\d\\\\d[13579][26]|\\\\d\\\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\\\d|30)|(?:02)-(?:0[1-9]|1\\\\d|2[0-8])))`;\nexport const date = /*@__PURE__*/ new RegExp(`^${dateSource}$`);\nfunction timeSource(args) {\n    const hhmm = `(?:[01]\\\\d|2[0-3]):[0-5]\\\\d`;\n    const regex = typeof args.precision === \"number\"\n        ? args.precision === -1\n            ? `${hhmm}`\n            : args.precision === 0\n                ? `${hhmm}:[0-5]\\\\d`\n                : `${hhmm}:[0-5]\\\\d\\\\.\\\\d{${args.precision}}`\n        : `${hhmm}(?::[0-5]\\\\d(?:\\\\.\\\\d+)?)?`;\n    return regex;\n}\nexport function time(args) {\n    return new RegExp(`^${timeSource(args)}$`);\n}\n// Adapted from https://stackoverflow.com/a/3143231\nexport function datetime(args) {\n    const time = timeSource({ precision: args.precision });\n    const opts = [\"Z\"];\n    if (args.local)\n        opts.push(\"\");\n    if (args.offset)\n        opts.push(`([+-]\\\\d{2}:\\\\d{2})`);\n    const timeRegex = `${time}(?:${opts.join(\"|\")})`;\n    return new RegExp(`^${dateSource}T(?:${timeRegex})$`);\n}\nexport const string = (params) => {\n    const regex = params ? `[\\\\s\\\\S]{${params?.minimum ?? 0},${params?.maximum ?? \"\"}}` : `[\\\\s\\\\S]*`;\n    return new RegExp(`^${regex}$`);\n};\nexport const bigint = /^\\d+n?$/;\nexport const integer = /^\\d+$/;\nexport const number = /^-?\\d+(?:\\.\\d+)?/i;\nexport const boolean = /true|false/i;\nconst _null = /null/i;\nexport { _null as null };\nconst _undefined = /undefined/i;\nexport { _undefined as undefined };\n// regex for string with no uppercase letters\nexport const lowercase = /^[^A-Z]*$/;\n// regex for string with no lowercase letters\nexport const uppercase = /^[^a-z]*$/;\n","// import { $ZodType } from \"./schemas.js\";\nimport * as core from \"./core.js\";\nimport * as regexes from \"./regexes.js\";\nimport * as util from \"./util.js\";\nexport const $ZodCheck = /*@__PURE__*/ core.$constructor(\"$ZodCheck\", (inst, def) => {\n    var _a;\n    inst._zod ?? (inst._zod = {});\n    inst._zod.def = def;\n    (_a = inst._zod).onattach ?? (_a.onattach = []);\n});\nconst numericOriginMap = {\n    number: \"number\",\n    bigint: \"bigint\",\n    object: \"date\",\n};\nexport const $ZodCheckLessThan = /*@__PURE__*/ core.$constructor(\"$ZodCheckLessThan\", (inst, def) => {\n    $ZodCheck.init(inst, def);\n    const origin = numericOriginMap[typeof def.value];\n    inst._zod.onattach.push((inst) => {\n        const bag = inst._zod.bag;\n        const curr = (def.inclusive ? bag.maximum : bag.exclusiveMaximum) ?? Number.POSITIVE_INFINITY;\n        if (def.value < curr) {\n            if (def.inclusive)\n                bag.maximum = def.value;\n            else\n                bag.exclusiveMaximum = def.value;\n        }\n    });\n    inst._zod.check = (payload) => {\n        if (def.inclusive ? payload.value <= def.value : payload.value < def.value) {\n            return;\n        }\n        payload.issues.push({\n            origin,\n            code: \"too_big\",\n            maximum: def.value,\n            input: payload.value,\n            inclusive: def.inclusive,\n            inst,\n            continue: !def.abort,\n        });\n    };\n});\nexport const $ZodCheckGreaterThan = /*@__PURE__*/ core.$constructor(\"$ZodCheckGreaterThan\", (inst, def) => {\n    $ZodCheck.init(inst, def);\n    const origin = numericOriginMap[typeof def.value];\n    inst._zod.onattach.push((inst) => {\n        const bag = inst._zod.bag;\n        const curr = (def.inclusive ? bag.minimum : bag.exclusiveMinimum) ?? Number.NEGATIVE_INFINITY;\n        if (def.value > curr) {\n            if (def.inclusive)\n                bag.minimum = def.value;\n            else\n                bag.exclusiveMinimum = def.value;\n        }\n    });\n    inst._zod.check = (payload) => {\n        if (def.inclusive ? payload.value >= def.value : payload.value > def.value) {\n            return;\n        }\n        payload.issues.push({\n            origin: origin,\n            code: \"too_small\",\n            minimum: def.value,\n            input: payload.value,\n            inclusive: def.inclusive,\n            inst,\n            continue: !def.abort,\n        });\n    };\n});\nexport const $ZodCheckMultipleOf = \n/*@__PURE__*/ core.$constructor(\"$ZodCheckMultipleOf\", (inst, def) => {\n    $ZodCheck.init(inst, def);\n    inst._zod.onattach.push((inst) => {\n        var _a;\n        (_a = inst._zod.bag).multipleOf ?? (_a.multipleOf = def.value);\n    });\n    inst._zod.check = (payload) => {\n        if (typeof payload.value !== typeof def.value)\n            throw new Error(\"Cannot mix number and bigint in multiple_of check.\");\n        const isMultiple = typeof payload.value === \"bigint\"\n            ? payload.value % def.value === BigInt(0)\n            : util.floatSafeRemainder(payload.value, def.value) === 0;\n        if (isMultiple)\n            return;\n        payload.issues.push({\n            origin: typeof payload.value,\n            code: \"not_multiple_of\",\n            divisor: def.value,\n            input: payload.value,\n            inst,\n            continue: !def.abort,\n        });\n    };\n});\nexport const $ZodCheckNumberFormat = /*@__PURE__*/ core.$constructor(\"$ZodCheckNumberFormat\", (inst, def) => {\n    $ZodCheck.init(inst, def); // no format checks\n    def.format = def.format || \"float64\";\n    const isInt = def.format?.includes(\"int\");\n    const origin = isInt ? \"int\" : \"number\";\n    const [minimum, maximum] = util.NUMBER_FORMAT_RANGES[def.format];\n    inst._zod.onattach.push((inst) => {\n        const bag = inst._zod.bag;\n        bag.format = def.format;\n        bag.minimum = minimum;\n        bag.maximum = maximum;\n        if (isInt)\n            bag.pattern = regexes.integer;\n    });\n    inst._zod.check = (payload) => {\n        const input = payload.value;\n        if (isInt) {\n            if (!Number.isInteger(input)) {\n                // invalid_format issue\n                // payload.issues.push({\n                //   expected: def.format,\n                //   format: def.format,\n                //   code: \"invalid_format\",\n                //   input,\n                //   inst,\n                // });\n                // invalid_type issue\n                payload.issues.push({\n                    expected: origin,\n                    format: def.format,\n                    code: \"invalid_type\",\n                    input,\n                    inst,\n                });\n                return;\n                // not_multiple_of issue\n                // payload.issues.push({\n                //   code: \"not_multiple_of\",\n                //   origin: \"number\",\n                //   input,\n                //   inst,\n                //   divisor: 1,\n                // });\n            }\n            if (!Number.isSafeInteger(input)) {\n                if (input > 0) {\n                    // too_big\n                    payload.issues.push({\n                        input,\n                        code: \"too_big\",\n                        maximum: Number.MAX_SAFE_INTEGER,\n                        note: \"Integers must be within the safe integer range.\",\n                        inst,\n                        origin,\n                        continue: !def.abort,\n                    });\n                }\n                else {\n                    // too_small\n                    payload.issues.push({\n                        input,\n                        code: \"too_small\",\n                        minimum: Number.MIN_SAFE_INTEGER,\n                        note: \"Integers must be within the safe integer range.\",\n                        inst,\n                        origin,\n                        continue: !def.abort,\n                    });\n                }\n                return;\n            }\n        }\n        if (input < minimum) {\n            payload.issues.push({\n                origin: \"number\",\n                input,\n                code: \"too_small\",\n                minimum,\n                inclusive: true,\n                inst,\n                continue: !def.abort,\n            });\n        }\n        if (input > maximum) {\n            payload.issues.push({\n                origin: \"number\",\n                input,\n                code: \"too_big\",\n                maximum,\n                inst,\n            });\n        }\n    };\n});\nexport const $ZodCheckBigIntFormat = /*@__PURE__*/ core.$constructor(\"$ZodCheckBigIntFormat\", (inst, def) => {\n    $ZodCheck.init(inst, def); // no format checks\n    const [minimum, maximum] = util.BIGINT_FORMAT_RANGES[def.format];\n    inst._zod.onattach.push((inst) => {\n        const bag = inst._zod.bag;\n        bag.format = def.format;\n        bag.minimum = minimum;\n        bag.maximum = maximum;\n    });\n    inst._zod.check = (payload) => {\n        const input = payload.value;\n        if (input < minimum) {\n            payload.issues.push({\n                origin: \"bigint\",\n                input,\n                code: \"too_small\",\n                minimum: minimum,\n                inclusive: true,\n                inst,\n                continue: !def.abort,\n            });\n        }\n        if (input > maximum) {\n            payload.issues.push({\n                origin: \"bigint\",\n                input,\n                code: \"too_big\",\n                maximum,\n                inst,\n            });\n        }\n    };\n});\nexport const $ZodCheckMaxSize = /*@__PURE__*/ core.$constructor(\"$ZodCheckMaxSize\", (inst, def) => {\n    $ZodCheck.init(inst, def);\n    inst._zod.when = (payload) => {\n        const val = payload.value;\n        return !util.nullish(val) && val.size !== undefined;\n    };\n    inst._zod.onattach.push((inst) => {\n        const curr = (inst._zod.bag.maximum ?? Number.POSITIVE_INFINITY);\n        if (def.maximum < curr)\n            inst._zod.bag.maximum = def.maximum;\n    });\n    inst._zod.check = (payload) => {\n        const input = payload.value;\n        const size = input.size;\n        if (size <= def.maximum)\n            return;\n        payload.issues.push({\n            origin: util.getSizableOrigin(input),\n            code: \"too_big\",\n            maximum: def.maximum,\n            input,\n            inst,\n            continue: !def.abort,\n        });\n    };\n});\nexport const $ZodCheckMinSize = /*@__PURE__*/ core.$constructor(\"$ZodCheckMinSize\", (inst, def) => {\n    $ZodCheck.init(inst, def);\n    inst._zod.when = (payload) => {\n        const val = payload.value;\n        return !util.nullish(val) && val.size !== undefined;\n    };\n    inst._zod.onattach.push((inst) => {\n        const curr = (inst._zod.bag.minimum ?? Number.NEGATIVE_INFINITY);\n        if (def.minimum > curr)\n            inst._zod.bag.minimum = def.minimum;\n    });\n    inst._zod.check = (payload) => {\n        const input = payload.value;\n        const size = input.size;\n        if (size >= def.minimum)\n            return;\n        payload.issues.push({\n            origin: util.getSizableOrigin(input),\n            code: \"too_small\",\n            minimum: def.minimum,\n            input,\n            inst,\n            continue: !def.abort,\n        });\n    };\n});\nexport const $ZodCheckSizeEquals = /*@__PURE__*/ core.$constructor(\"$ZodCheckSizeEquals\", (inst, def) => {\n    $ZodCheck.init(inst, def);\n    inst._zod.when = (payload) => {\n        const val = payload.value;\n        return !util.nullish(val) && val.size !== undefined;\n    };\n    inst._zod.onattach.push((inst) => {\n        const bag = inst._zod.bag;\n        bag.minimum = def.size;\n        bag.maximum = def.size;\n        bag.size = def.size;\n    });\n    inst._zod.check = (payload) => {\n        const input = payload.value;\n        const size = input.size;\n        if (size === def.size)\n            return;\n        const tooBig = size > def.size;\n        payload.issues.push({\n            origin: util.getSizableOrigin(input),\n            ...(tooBig ? { code: \"too_big\", maximum: def.size } : { code: \"too_small\", minimum: def.size }),\n            input: payload.value,\n            inst,\n            continue: !def.abort,\n        });\n    };\n});\nexport const $ZodCheckMaxLength = /*@__PURE__*/ core.$constructor(\"$ZodCheckMaxLength\", (inst, def) => {\n    $ZodCheck.init(inst, def);\n    inst._zod.when = (payload) => {\n        const val = payload.value;\n        return !util.nullish(val) && val.length !== undefined;\n    };\n    inst._zod.onattach.push((inst) => {\n        const curr = (inst._zod.bag.maximum ?? Number.POSITIVE_INFINITY);\n        if (def.maximum < curr)\n            inst._zod.bag.maximum = def.maximum;\n    });\n    inst._zod.check = (payload) => {\n        const input = payload.value;\n        const length = input.length;\n        if (length <= def.maximum)\n            return;\n        const origin = util.getLengthableOrigin(input);\n        payload.issues.push({\n            origin,\n            code: \"too_big\",\n            maximum: def.maximum,\n            inclusive: true,\n            input,\n            inst,\n            continue: !def.abort,\n        });\n    };\n});\nexport const $ZodCheckMinLength = /*@__PURE__*/ core.$constructor(\"$ZodCheckMinLength\", (inst, def) => {\n    $ZodCheck.init(inst, def);\n    inst._zod.when = (payload) => {\n        const val = payload.value;\n        return !util.nullish(val) && val.length !== undefined;\n    };\n    inst._zod.onattach.push((inst) => {\n        const curr = (inst._zod.bag.minimum ?? Number.NEGATIVE_INFINITY);\n        if (def.minimum > curr)\n            inst._zod.bag.minimum = def.minimum;\n    });\n    inst._zod.check = (payload) => {\n        const input = payload.value;\n        const length = input.length;\n        if (length >= def.minimum)\n            return;\n        const origin = util.getLengthableOrigin(input);\n        payload.issues.push({\n            origin,\n            code: \"too_small\",\n            minimum: def.minimum,\n            inclusive: true,\n            input,\n            inst,\n            continue: !def.abort,\n        });\n    };\n});\nexport const $ZodCheckLengthEquals = /*@__PURE__*/ core.$constructor(\"$ZodCheckLengthEquals\", (inst, def) => {\n    $ZodCheck.init(inst, def);\n    inst._zod.when = (payload) => {\n        const val = payload.value;\n        return !util.nullish(val) && val.length !== undefined;\n    };\n    inst._zod.onattach.push((inst) => {\n        const bag = inst._zod.bag;\n        bag.minimum = def.length;\n        bag.maximum = def.length;\n        bag.length = def.length;\n    });\n    inst._zod.check = (payload) => {\n        const input = payload.value;\n        const length = input.length;\n        if (length === def.length)\n            return;\n        const origin = util.getLengthableOrigin(input);\n        const tooBig = length > def.length;\n        payload.issues.push({\n            origin,\n            ...(tooBig ? { code: \"too_big\", maximum: def.length } : { code: \"too_small\", minimum: def.length }),\n            input: payload.value,\n            inst,\n            continue: !def.abort,\n        });\n    };\n});\nexport const $ZodCheckStringFormat = /*@__PURE__*/ core.$constructor(\"$ZodCheckStringFormat\", (inst, def) => {\n    var _a;\n    $ZodCheck.init(inst, def);\n    inst._zod.onattach.push((inst) => {\n        const bag = inst._zod.bag;\n        bag.format = def.format;\n        if (def.pattern) {\n            bag.patterns ?? (bag.patterns = new Set());\n            bag.patterns.add(def.pattern);\n        }\n    });\n    (_a = inst._zod).check ?? (_a.check = (payload) => {\n        if (!def.pattern)\n            throw new Error(\"Not implemented.\");\n        def.pattern.lastIndex = 0;\n        if (def.pattern.test(payload.value))\n            return;\n        payload.issues.push({\n            origin: \"string\",\n            code: \"invalid_format\",\n            format: def.format,\n            input: payload.value,\n            ...(def.pattern ? { pattern: def.pattern.toString() } : {}),\n            inst,\n            continue: !def.abort,\n        });\n    });\n});\nexport const $ZodCheckRegex = /*@__PURE__*/ core.$constructor(\"$ZodCheckRegex\", (inst, def) => {\n    $ZodCheckStringFormat.init(inst, def);\n    inst._zod.check = (payload) => {\n        def.pattern.lastIndex = 0;\n        if (def.pattern.test(payload.value))\n            return;\n        payload.issues.push({\n            origin: \"string\",\n            code: \"invalid_format\",\n            format: \"regex\",\n            input: payload.value,\n            pattern: def.pattern.toString(),\n            inst,\n            continue: !def.abort,\n        });\n    };\n});\nexport const $ZodCheckLowerCase = /*@__PURE__*/ core.$constructor(\"$ZodCheckLowerCase\", (inst, def) => {\n    def.pattern ?? (def.pattern = regexes.lowercase);\n    $ZodCheckStringFormat.init(inst, def);\n});\nexport const $ZodCheckUpperCase = /*@__PURE__*/ core.$constructor(\"$ZodCheckUpperCase\", (inst, def) => {\n    def.pattern ?? (def.pattern = regexes.uppercase);\n    $ZodCheckStringFormat.init(inst, def);\n});\nexport const $ZodCheckIncludes = /*@__PURE__*/ core.$constructor(\"$ZodCheckIncludes\", (inst, def) => {\n    $ZodCheck.init(inst, def);\n    const escapedRegex = util.escapeRegex(def.includes);\n    const pattern = new RegExp(typeof def.position === \"number\" ? `^.{${def.position}}${escapedRegex}` : escapedRegex);\n    def.pattern = pattern;\n    inst._zod.onattach.push((inst) => {\n        const bag = inst._zod.bag;\n        bag.patterns ?? (bag.patterns = new Set());\n        bag.patterns.add(pattern);\n    });\n    inst._zod.check = (payload) => {\n        if (payload.value.includes(def.includes, def.position))\n            return;\n        payload.issues.push({\n            origin: \"string\",\n            code: \"invalid_format\",\n            format: \"includes\",\n            includes: def.includes,\n            input: payload.value,\n            inst,\n            continue: !def.abort,\n        });\n    };\n});\nexport const $ZodCheckStartsWith = /*@__PURE__*/ core.$constructor(\"$ZodCheckStartsWith\", (inst, def) => {\n    $ZodCheck.init(inst, def);\n    const pattern = new RegExp(`^${util.escapeRegex(def.prefix)}.*`);\n    def.pattern ?? (def.pattern = pattern);\n    inst._zod.onattach.push((inst) => {\n        const bag = inst._zod.bag;\n        bag.patterns ?? (bag.patterns = new Set());\n        bag.patterns.add(pattern);\n    });\n    inst._zod.check = (payload) => {\n        if (payload.value.startsWith(def.prefix))\n            return;\n        payload.issues.push({\n            origin: \"string\",\n            code: \"invalid_format\",\n            format: \"starts_with\",\n            prefix: def.prefix,\n            input: payload.value,\n            inst,\n            continue: !def.abort,\n        });\n    };\n});\nexport const $ZodCheckEndsWith = /*@__PURE__*/ core.$constructor(\"$ZodCheckEndsWith\", (inst, def) => {\n    $ZodCheck.init(inst, def);\n    const pattern = new RegExp(`.*${util.escapeRegex(def.suffix)}$`);\n    def.pattern ?? (def.pattern = pattern);\n    inst._zod.onattach.push((inst) => {\n        const bag = inst._zod.bag;\n        bag.patterns ?? (bag.patterns = new Set());\n        bag.patterns.add(pattern);\n    });\n    inst._zod.check = (payload) => {\n        if (payload.value.endsWith(def.suffix))\n            return;\n        payload.issues.push({\n            origin: \"string\",\n            code: \"invalid_format\",\n            format: \"ends_with\",\n            suffix: def.suffix,\n            input: payload.value,\n            inst,\n            continue: !def.abort,\n        });\n    };\n});\n///////////////////////////////////\n/////    $ZodCheckProperty    /////\n///////////////////////////////////\nfunction handleCheckPropertyResult(result, payload, property) {\n    if (result.issues.length) {\n        payload.issues.push(...util.prefixIssues(property, result.issues));\n    }\n}\nexport const $ZodCheckProperty = /*@__PURE__*/ core.$constructor(\"$ZodCheckProperty\", (inst, def) => {\n    $ZodCheck.init(inst, def);\n    inst._zod.check = (payload) => {\n        const result = def.schema._zod.run({\n            value: payload.value[def.property],\n            issues: [],\n        }, {});\n        if (result instanceof Promise) {\n            return result.then((result) => handleCheckPropertyResult(result, payload, def.property));\n        }\n        handleCheckPropertyResult(result, payload, def.property);\n        return;\n    };\n});\nexport const $ZodCheckMimeType = /*@__PURE__*/ core.$constructor(\"$ZodCheckMimeType\", (inst, def) => {\n    $ZodCheck.init(inst, def);\n    const mimeSet = new Set(def.mime);\n    inst._zod.onattach.push((inst) => {\n        inst._zod.bag.mime = def.mime;\n    });\n    inst._zod.check = (payload) => {\n        if (mimeSet.has(payload.value.type))\n            return;\n        payload.issues.push({\n            code: \"invalid_value\",\n            values: def.mime,\n            input: payload.value.type,\n            inst,\n        });\n    };\n});\nexport const $ZodCheckOverwrite = /*@__PURE__*/ core.$constructor(\"$ZodCheckOverwrite\", (inst, def) => {\n    $ZodCheck.init(inst, def);\n    inst._zod.check = (payload) => {\n        payload.value = def.tx(payload.value);\n    };\n});\n","export class Doc {\n    constructor(args = []) {\n        this.content = [];\n        this.indent = 0;\n        if (this)\n            this.args = args;\n    }\n    indented(fn) {\n        this.indent += 1;\n        fn(this);\n        this.indent -= 1;\n    }\n    write(arg) {\n        if (typeof arg === \"function\") {\n            arg(this, { execution: \"sync\" });\n            arg(this, { execution: \"async\" });\n            return;\n        }\n        const content = arg;\n        const lines = content.split(\"\\n\").filter((x) => x);\n        const minIndent = Math.min(...lines.map((x) => x.length - x.trimStart().length));\n        const dedented = lines.map((x) => x.slice(minIndent)).map((x) => \" \".repeat(this.indent * 2) + x);\n        for (const line of dedented) {\n            this.content.push(line);\n        }\n    }\n    compile() {\n        const F = Function;\n        const args = this?.args;\n        const content = this?.content ?? [``];\n        const lines = [...content.map((x) => `  ${x}`)];\n        // console.log(lines.join(\"\\n\"));\n        return new F(...args, lines.join(\"\\n\"));\n    }\n}\n","export const version = {\n    major: 4,\n    minor: 0,\n    patch: 0,\n};\n","import * as checks from \"./checks.js\";\nimport * as core from \"./core.js\";\nimport { Doc } from \"./doc.js\";\nimport { safeParse, safeParseAsync } from \"./parse.js\";\nimport * as regexes from \"./regexes.js\";\nimport * as util from \"./util.js\";\nimport { version } from \"./versions.js\";\nexport const $ZodType = /*@__PURE__*/ core.$constructor(\"$ZodType\", (inst, def) => {\n    var _a;\n    inst ?? (inst = {});\n    // avoids issues with using Math.random() in Next.js caching\n    util.defineLazy(inst._zod, \"id\", () => def.type + \"_\" + util.randomString(10));\n    inst._zod.def = def; // set _def property\n    inst._zod.bag = inst._zod.bag || {}; // initialize _bag object\n    inst._zod.version = version;\n    const checks = [...(inst._zod.def.checks ?? [])];\n    // if inst is itself a checks.$ZodCheck, run it as a check\n    if (inst._zod.traits.has(\"$ZodCheck\")) {\n        checks.unshift(inst);\n    }\n    //\n    for (const ch of checks) {\n        for (const fn of ch._zod.onattach) {\n            fn(inst);\n        }\n    }\n    if (checks.length === 0) {\n        // deferred initializer\n        // inst._zod.parse is not yet defined\n        (_a = inst._zod).deferred ?? (_a.deferred = []);\n        inst._zod.deferred?.push(() => {\n            inst._zod.run = inst._zod.parse;\n        });\n    }\n    else {\n        const runChecks = (payload, checks, ctx) => {\n            let isAborted = util.aborted(payload);\n            let asyncResult;\n            for (const ch of checks) {\n                if (ch._zod.when) {\n                    const shouldRun = ch._zod.when(payload);\n                    if (!shouldRun)\n                        continue;\n                }\n                else if (isAborted) {\n                    continue;\n                }\n                const currLen = payload.issues.length;\n                const _ = ch._zod.check(payload);\n                if (_ instanceof Promise && ctx?.async === false) {\n                    throw new core.$ZodAsyncError();\n                }\n                if (asyncResult || _ instanceof Promise) {\n                    asyncResult = (asyncResult ?? Promise.resolve()).then(async () => {\n                        await _;\n                        const nextLen = payload.issues.length;\n                        if (nextLen === currLen)\n                            return;\n                        if (!isAborted)\n                            isAborted = util.aborted(payload, currLen);\n                    });\n                }\n                else {\n                    const nextLen = payload.issues.length;\n                    if (nextLen === currLen)\n                        continue;\n                    if (!isAborted)\n                        isAborted = util.aborted(payload, currLen);\n                }\n            }\n            if (asyncResult) {\n                return asyncResult.then(() => {\n                    return payload;\n                });\n            }\n            return payload;\n        };\n        inst._zod.run = (payload, ctx) => {\n            const result = inst._zod.parse(payload, ctx);\n            if (result instanceof Promise) {\n                if (ctx.async === false)\n                    throw new core.$ZodAsyncError();\n                return result.then((result) => runChecks(result, checks, ctx));\n            }\n            return runChecks(result, checks, ctx);\n        };\n    }\n    inst[\"~standard\"] = {\n        validate: (value) => {\n            try {\n                const r = safeParse(inst, value);\n                return r.success ? { value: r.data } : { issues: r.error?.issues };\n            }\n            catch (_) {\n                return safeParseAsync(inst, value).then((r) => (r.success ? { value: r.data } : { issues: r.error?.issues }));\n            }\n        },\n        vendor: \"zod\",\n        version: 1,\n    };\n});\nexport { clone } from \"./util.js\";\nexport const $ZodString = /*@__PURE__*/ core.$constructor(\"$ZodString\", (inst, def) => {\n    $ZodType.init(inst, def);\n    inst._zod.pattern = [...(inst?._zod.bag?.patterns ?? [])].pop() ?? regexes.string(inst._zod.bag);\n    inst._zod.parse = (payload, _) => {\n        if (def.coerce)\n            try {\n                payload.value = String(payload.value);\n            }\n            catch (_) { }\n        if (typeof payload.value === \"string\")\n            return payload;\n        payload.issues.push({\n            expected: \"string\",\n            code: \"invalid_type\",\n            input: payload.value,\n            inst,\n        });\n        return payload;\n    };\n});\nexport const $ZodStringFormat = /*@__PURE__*/ core.$constructor(\"$ZodStringFormat\", (inst, def) => {\n    // check initialization must come first\n    checks.$ZodCheckStringFormat.init(inst, def);\n    $ZodString.init(inst, def);\n});\nexport const $ZodGUID = /*@__PURE__*/ core.$constructor(\"$ZodGUID\", (inst, def) => {\n    def.pattern ?? (def.pattern = regexes.guid);\n    $ZodStringFormat.init(inst, def);\n});\nexport const $ZodUUID = /*@__PURE__*/ core.$constructor(\"$ZodUUID\", (inst, def) => {\n    if (def.version) {\n        const versionMap = {\n            v1: 1,\n            v2: 2,\n            v3: 3,\n            v4: 4,\n            v5: 5,\n            v6: 6,\n            v7: 7,\n            v8: 8,\n        };\n        const v = versionMap[def.version];\n        if (v === undefined)\n            throw new Error(`Invalid UUID version: \"${def.version}\"`);\n        def.pattern ?? (def.pattern = regexes.uuid(v));\n    }\n    else\n        def.pattern ?? (def.pattern = regexes.uuid());\n    $ZodStringFormat.init(inst, def);\n});\nexport const $ZodEmail = /*@__PURE__*/ core.$constructor(\"$ZodEmail\", (inst, def) => {\n    def.pattern ?? (def.pattern = regexes.email);\n    $ZodStringFormat.init(inst, def);\n});\nexport const $ZodURL = /*@__PURE__*/ core.$constructor(\"$ZodURL\", (inst, def) => {\n    $ZodStringFormat.init(inst, def);\n    inst._zod.check = (payload) => {\n        try {\n            const url = new URL(payload.value);\n            if (def.hostname) {\n                def.hostname.lastIndex = 0;\n                if (!def.hostname.test(url.hostname)) {\n                    payload.issues.push({\n                        code: \"invalid_format\",\n                        format: \"url\",\n                        note: \"Invalid hostname\",\n                        pattern: regexes.hostname.source,\n                        input: payload.value,\n                        inst,\n                        continue: !def.abort,\n                    });\n                }\n            }\n            if (def.protocol) {\n                def.protocol.lastIndex = 0;\n                if (!def.protocol.test(url.protocol.endsWith(\":\") ? url.protocol.slice(0, -1) : url.protocol)) {\n                    payload.issues.push({\n                        code: \"invalid_format\",\n                        format: \"url\",\n                        note: \"Invalid protocol\",\n                        pattern: def.protocol.source,\n                        input: payload.value,\n                        inst,\n                        continue: !def.abort,\n                    });\n                }\n            }\n            return;\n        }\n        catch (_) {\n            payload.issues.push({\n                code: \"invalid_format\",\n                format: \"url\",\n                input: payload.value,\n                inst,\n                continue: !def.abort,\n            });\n        }\n    };\n});\nexport const $ZodEmoji = /*@__PURE__*/ core.$constructor(\"$ZodEmoji\", (inst, def) => {\n    def.pattern ?? (def.pattern = regexes.emoji());\n    $ZodStringFormat.init(inst, def);\n});\nexport const $ZodNanoID = /*@__PURE__*/ core.$constructor(\"$ZodNanoID\", (inst, def) => {\n    def.pattern ?? (def.pattern = regexes.nanoid);\n    $ZodStringFormat.init(inst, def);\n});\nexport const $ZodCUID = /*@__PURE__*/ core.$constructor(\"$ZodCUID\", (inst, def) => {\n    def.pattern ?? (def.pattern = regexes.cuid);\n    $ZodStringFormat.init(inst, def);\n});\nexport const $ZodCUID2 = /*@__PURE__*/ core.$constructor(\"$ZodCUID2\", (inst, def) => {\n    def.pattern ?? (def.pattern = regexes.cuid2);\n    $ZodStringFormat.init(inst, def);\n});\nexport const $ZodULID = /*@__PURE__*/ core.$constructor(\"$ZodULID\", (inst, def) => {\n    def.pattern ?? (def.pattern = regexes.ulid);\n    $ZodStringFormat.init(inst, def);\n});\nexport const $ZodXID = /*@__PURE__*/ core.$constructor(\"$ZodXID\", (inst, def) => {\n    def.pattern ?? (def.pattern = regexes.xid);\n    $ZodStringFormat.init(inst, def);\n});\nexport const $ZodKSUID = /*@__PURE__*/ core.$constructor(\"$ZodKSUID\", (inst, def) => {\n    def.pattern ?? (def.pattern = regexes.ksuid);\n    $ZodStringFormat.init(inst, def);\n});\nexport const $ZodISODateTime = /*@__PURE__*/ core.$constructor(\"$ZodISODateTime\", (inst, def) => {\n    def.pattern ?? (def.pattern = regexes.datetime(def));\n    $ZodStringFormat.init(inst, def);\n    const _super = inst._zod.check;\n});\nexport const $ZodISODate = /*@__PURE__*/ core.$constructor(\"$ZodISODate\", (inst, def) => {\n    def.pattern ?? (def.pattern = regexes.date);\n    $ZodStringFormat.init(inst, def);\n});\nexport const $ZodISOTime = /*@__PURE__*/ core.$constructor(\"$ZodISOTime\", (inst, def) => {\n    def.pattern ?? (def.pattern = regexes.time(def));\n    $ZodStringFormat.init(inst, def);\n    const _super = inst._zod.check;\n});\nexport const $ZodISODuration = /*@__PURE__*/ core.$constructor(\"$ZodISODuration\", (inst, def) => {\n    def.pattern ?? (def.pattern = regexes.duration);\n    $ZodStringFormat.init(inst, def);\n});\nexport const $ZodIPv4 = /*@__PURE__*/ core.$constructor(\"$ZodIPv4\", (inst, def) => {\n    def.pattern ?? (def.pattern = regexes.ipv4);\n    $ZodStringFormat.init(inst, def);\n    inst._zod.onattach.push((inst) => {\n        const bag = inst._zod.bag;\n        bag.format = `ipv4`;\n    });\n});\nexport const $ZodIPv6 = /*@__PURE__*/ core.$constructor(\"$ZodIPv6\", (inst, def) => {\n    def.pattern ?? (def.pattern = regexes.ipv6);\n    $ZodStringFormat.init(inst, def);\n    inst._zod.onattach.push((inst) => {\n        const bag = inst._zod.bag;\n        bag.format = `ipv6`;\n    });\n    inst._zod.check = (payload) => {\n        try {\n            new URL(`http://[${payload.value}]`);\n            // return;\n        }\n        catch {\n            payload.issues.push({\n                code: \"invalid_format\",\n                format: \"ipv6\",\n                input: payload.value,\n                inst,\n                continue: !def.abort,\n            });\n        }\n    };\n});\nexport const $ZodCIDRv4 = /*@__PURE__*/ core.$constructor(\"$ZodCIDRv4\", (inst, def) => {\n    def.pattern ?? (def.pattern = regexes.cidrv4);\n    $ZodStringFormat.init(inst, def);\n});\nexport const $ZodCIDRv6 = /*@__PURE__*/ core.$constructor(\"$ZodCIDRv6\", (inst, def) => {\n    def.pattern ?? (def.pattern = regexes.cidrv6); // not used for validation\n    $ZodStringFormat.init(inst, def);\n    inst._zod.check = (payload) => {\n        const [address, prefix] = payload.value.split(\"/\");\n        try {\n            if (!prefix)\n                throw new Error();\n            const prefixNum = Number(prefix);\n            if (`${prefixNum}` !== prefix)\n                throw new Error();\n            if (prefixNum < 0 || prefixNum > 128)\n                throw new Error();\n            new URL(`http://[${address}]`);\n        }\n        catch {\n            payload.issues.push({\n                code: \"invalid_format\",\n                format: \"cidrv6\",\n                input: payload.value,\n                inst,\n                continue: !def.abort,\n            });\n        }\n    };\n});\n//////////////////////////////   ZodBase64   //////////////////////////////\nexport function isValidBase64(data) {\n    if (data === \"\")\n        return true;\n    if (data.length % 4 !== 0)\n        return false;\n    try {\n        atob(data);\n        return true;\n    }\n    catch {\n        return false;\n    }\n}\nexport const $ZodBase64 = /*@__PURE__*/ core.$constructor(\"$ZodBase64\", (inst, def) => {\n    def.pattern ?? (def.pattern = regexes.base64);\n    $ZodStringFormat.init(inst, def);\n    inst._zod.onattach.push((inst) => {\n        inst._zod.bag.contentEncoding = \"base64\";\n    });\n    inst._zod.check = (payload) => {\n        if (isValidBase64(payload.value))\n            return;\n        payload.issues.push({\n            code: \"invalid_format\",\n            format: \"base64\",\n            input: payload.value,\n            inst,\n            continue: !def.abort,\n        });\n    };\n});\n//////////////////////////////   ZodBase64   //////////////////////////////\nexport function isValidBase64URL(data) {\n    if (!regexes.base64url.test(data))\n        return false;\n    const base64 = data.replace(/[-_]/g, (c) => (c === \"-\" ? \"+\" : \"/\"));\n    const padded = base64.padEnd(Math.ceil(base64.length / 4) * 4, \"=\");\n    return isValidBase64(padded);\n}\nexport const $ZodBase64URL = /*@__PURE__*/ core.$constructor(\"$ZodBase64URL\", (inst, def) => {\n    def.pattern ?? (def.pattern = regexes.base64url);\n    $ZodStringFormat.init(inst, def);\n    inst._zod.onattach.push((inst) => {\n        inst._zod.bag.contentEncoding = \"base64url\";\n    });\n    inst._zod.check = (payload) => {\n        if (isValidBase64URL(payload.value))\n            return;\n        payload.issues.push({\n            code: \"invalid_format\",\n            format: \"base64url\",\n            input: payload.value,\n            inst,\n            continue: !def.abort,\n        });\n    };\n});\nexport const $ZodE164 = /*@__PURE__*/ core.$constructor(\"$ZodE164\", (inst, def) => {\n    def.pattern ?? (def.pattern = regexes.e164);\n    $ZodStringFormat.init(inst, def);\n});\n//////////////////////////////   ZodJWT   //////////////////////////////\nexport function isValidJWT(token, algorithm = null) {\n    try {\n        const tokensParts = token.split(\".\");\n        if (tokensParts.length !== 3)\n            return false;\n        const [header] = tokensParts;\n        const parsedHeader = JSON.parse(atob(header));\n        if (\"typ\" in parsedHeader && parsedHeader?.typ !== \"JWT\")\n            return false;\n        if (!parsedHeader.alg)\n            return false;\n        if (algorithm && (!(\"alg\" in parsedHeader) || parsedHeader.alg !== algorithm))\n            return false;\n        return true;\n    }\n    catch {\n        return false;\n    }\n}\nexport const $ZodJWT = /*@__PURE__*/ core.$constructor(\"$ZodJWT\", (inst, def) => {\n    $ZodStringFormat.init(inst, def);\n    inst._zod.check = (payload) => {\n        if (isValidJWT(payload.value, def.alg))\n            return;\n        payload.issues.push({\n            code: \"invalid_format\",\n            format: \"jwt\",\n            input: payload.value,\n            inst,\n            continue: !def.abort,\n        });\n    };\n});\nexport const $ZodNumber = /*@__PURE__*/ core.$constructor(\"$ZodNumber\", (inst, def) => {\n    $ZodType.init(inst, def);\n    inst._zod.pattern = inst._zod.bag.pattern ?? regexes.number;\n    inst._zod.parse = (payload, _ctx) => {\n        if (def.coerce)\n            try {\n                payload.value = Number(payload.value);\n            }\n            catch (_) { }\n        const input = payload.value;\n        if (typeof input === \"number\" && !Number.isNaN(input) && Number.isFinite(input)) {\n            return payload;\n        }\n        const received = typeof input === \"number\"\n            ? Number.isNaN(input)\n                ? \"NaN\"\n                : !Number.isFinite(input)\n                    ? \"Infinity\"\n                    : undefined\n            : undefined;\n        payload.issues.push({\n            expected: \"number\",\n            code: \"invalid_type\",\n            input,\n            inst,\n            ...(received ? { received } : {}),\n        });\n        return payload;\n    };\n});\nexport const $ZodNumberFormat = /*@__PURE__*/ core.$constructor(\"$ZodNumber\", (inst, def) => {\n    checks.$ZodCheckNumberFormat.init(inst, def);\n    $ZodNumber.init(inst, def); // no format checksp\n});\nexport const $ZodBoolean = /*@__PURE__*/ core.$constructor(\"$ZodBoolean\", (inst, def) => {\n    $ZodType.init(inst, def);\n    inst._zod.pattern = regexes.boolean;\n    inst._zod.parse = (payload, _ctx) => {\n        if (def.coerce)\n            try {\n                payload.value = Boolean(payload.value);\n            }\n            catch (_) { }\n        const input = payload.value;\n        if (typeof input === \"boolean\")\n            return payload;\n        payload.issues.push({\n            expected: \"boolean\",\n            code: \"invalid_type\",\n            input,\n            inst,\n        });\n        return payload;\n    };\n});\nexport const $ZodBigInt = /*@__PURE__*/ core.$constructor(\"$ZodBigInt\", (inst, def) => {\n    $ZodType.init(inst, def);\n    inst._zod.pattern = regexes.bigint;\n    inst._zod.parse = (payload, _ctx) => {\n        if (def.coerce)\n            try {\n                payload.value = BigInt(payload.value);\n            }\n            catch (_) { }\n        const { value: input } = payload;\n        if (typeof input === \"bigint\")\n            return payload;\n        payload.issues.push({\n            expected: \"bigint\",\n            code: \"invalid_type\",\n            input,\n            inst,\n        });\n        return payload;\n    };\n});\nexport const $ZodBigIntFormat = /*@__PURE__*/ core.$constructor(\"$ZodBigInt\", (inst, def) => {\n    checks.$ZodCheckBigIntFormat.init(inst, def);\n    $ZodBigInt.init(inst, def); // no format checks\n});\nexport const $ZodSymbol = /*@__PURE__*/ core.$constructor(\"$ZodSymbol\", (inst, def) => {\n    $ZodType.init(inst, def);\n    inst._zod.parse = (payload, _ctx) => {\n        const { value: input } = payload;\n        if (typeof input === \"symbol\")\n            return payload;\n        payload.issues.push({\n            expected: \"symbol\",\n            code: \"invalid_type\",\n            input,\n            inst,\n        });\n        return payload;\n    };\n});\nexport const $ZodUndefined = /*@__PURE__*/ core.$constructor(\"$ZodUndefined\", (inst, def) => {\n    $ZodType.init(inst, def);\n    inst._zod.pattern = regexes.undefined;\n    inst._zod.values = new Set([undefined]);\n    inst._zod.parse = (payload, _ctx) => {\n        const { value: input } = payload;\n        if (typeof input === \"undefined\")\n            return payload;\n        payload.issues.push({\n            expected: \"undefined\",\n            code: \"invalid_type\",\n            input,\n            inst,\n        });\n        return payload;\n    };\n});\nexport const $ZodNull = /*@__PURE__*/ core.$constructor(\"$ZodNull\", (inst, def) => {\n    $ZodType.init(inst, def);\n    inst._zod.pattern = regexes.null;\n    inst._zod.values = new Set([null]);\n    inst._zod.parse = (payload, _ctx) => {\n        const { value: input } = payload;\n        if (input === null)\n            return payload;\n        payload.issues.push({\n            expected: \"null\",\n            code: \"invalid_type\",\n            input,\n            inst,\n        });\n        return payload;\n    };\n});\nexport const $ZodAny = /*@__PURE__*/ core.$constructor(\"$ZodAny\", (inst, def) => {\n    $ZodType.init(inst, def);\n    inst._zod.parse = (payload) => payload;\n});\nexport const $ZodUnknown = /*@__PURE__*/ core.$constructor(\"$ZodUnknown\", (inst, def) => {\n    $ZodType.init(inst, def);\n    inst._zod.parse = (payload) => payload;\n});\nexport const $ZodNever = /*@__PURE__*/ core.$constructor(\"$ZodNever\", (inst, def) => {\n    $ZodType.init(inst, def);\n    inst._zod.parse = (payload, _ctx) => {\n        payload.issues.push({\n            expected: \"never\",\n            code: \"invalid_type\",\n            input: payload.value,\n            inst,\n        });\n        return payload;\n    };\n});\nexport const $ZodVoid = /*@__PURE__*/ core.$constructor(\"$ZodVoid\", (inst, def) => {\n    $ZodType.init(inst, def);\n    inst._zod.parse = (payload, _ctx) => {\n        const { value: input } = payload;\n        if (typeof input === \"undefined\")\n            return payload;\n        payload.issues.push({\n            expected: \"void\",\n            code: \"invalid_type\",\n            input,\n            inst,\n        });\n        return payload;\n    };\n});\nexport const $ZodDate = /*@__PURE__*/ core.$constructor(\"$ZodDate\", (inst, def) => {\n    $ZodType.init(inst, def);\n    inst._zod.parse = (payload, _ctx) => {\n        if (def.coerce) {\n            try {\n                payload.value = new Date(payload.value);\n            }\n            catch (_err) { }\n        }\n        const input = payload.value;\n        const isDate = input instanceof Date;\n        const isValidDate = isDate && !Number.isNaN(input.getTime());\n        if (isValidDate)\n            return payload;\n        payload.issues.push({\n            expected: \"date\",\n            code: \"invalid_type\",\n            input,\n            ...(isDate ? { received: \"Invalid Date\" } : {}),\n            inst,\n        });\n        return payload;\n    };\n});\nfunction handleArrayResult(result, final, index) {\n    if (result.issues.length) {\n        final.issues.push(...util.prefixIssues(index, result.issues));\n    }\n    final.value[index] = result.value;\n}\nexport const $ZodArray = /*@__PURE__*/ core.$constructor(\"$ZodArray\", (inst, def) => {\n    $ZodType.init(inst, def);\n    inst._zod.parse = (payload, ctx) => {\n        const input = payload.value;\n        if (!Array.isArray(input)) {\n            payload.issues.push({\n                expected: \"array\",\n                code: \"invalid_type\",\n                input,\n                inst,\n            });\n            return payload;\n        }\n        payload.value = Array(input.length);\n        const proms = [];\n        for (let i = 0; i < input.length; i++) {\n            const item = input[i];\n            const result = def.element._zod.run({\n                value: item,\n                issues: [],\n            }, ctx);\n            if (result instanceof Promise) {\n                proms.push(result.then((result) => handleArrayResult(result, payload, i)));\n            }\n            else {\n                handleArrayResult(result, payload, i);\n            }\n        }\n        if (proms.length) {\n            return Promise.all(proms).then(() => payload);\n        }\n        return payload; //handleArrayResultsAsync(parseResults, final);\n    };\n});\nfunction handleObjectResult(result, final, key) {\n    // if(isOptional)\n    if (result.issues.length) {\n        final.issues.push(...util.prefixIssues(key, result.issues));\n    }\n    final.value[key] = result.value;\n}\nfunction handleOptionalObjectResult(result, final, key, input) {\n    if (result.issues.length) {\n        // validation failed against value schema\n        if (input[key] === undefined) {\n            // if input was undefined, ignore the error\n            if (key in input) {\n                final.value[key] = undefined;\n            }\n            else {\n                final.value[key] = result.value;\n            }\n        }\n        else {\n            final.issues.push(...util.prefixIssues(key, result.issues));\n        }\n    }\n    else if (result.value === undefined) {\n        // validation returned `undefined`\n        if (key in input)\n            final.value[key] = undefined;\n    }\n    else {\n        // non-undefined value\n        final.value[key] = result.value;\n    }\n}\nexport const $ZodObject = /*@__PURE__*/ core.$constructor(\"$ZodObject\", (inst, def) => {\n    // requires cast because technically $ZodObject doesn't extend\n    $ZodType.init(inst, def);\n    const _normalized = util.cached(() => {\n        const keys = Object.keys(def.shape);\n        for (const k of keys) {\n            if (!(def.shape[k] instanceof $ZodType)) {\n                throw new Error(`Invalid element at key \"${k}\": expected a Zod schema`);\n            }\n        }\n        const okeys = util.optionalKeys(def.shape);\n        return {\n            shape: def.shape,\n            keys,\n            keySet: new Set(keys),\n            numKeys: keys.length,\n            optionalKeys: new Set(okeys),\n        };\n    });\n    util.defineLazy(inst._zod, \"propValues\", () => {\n        const shape = def.shape;\n        const propValues = {};\n        for (const key in shape) {\n            const field = shape[key]._zod;\n            if (field.values) {\n                propValues[key] ?? (propValues[key] = new Set());\n                for (const v of field.values)\n                    propValues[key].add(v);\n            }\n        }\n        return propValues;\n    });\n    const generateFastpass = (shape) => {\n        const doc = new Doc([\"shape\", \"payload\", \"ctx\"]);\n        const { keys, optionalKeys } = _normalized.value;\n        const parseStr = (key) => {\n            const k = util.esc(key);\n            return `shape[${k}]._zod.run({ value: input[${k}], issues: [] }, ctx)`;\n        };\n        doc.write(`const input = payload.value;`);\n        const ids = Object.create(null);\n        for (const key of keys) {\n            ids[key] = util.randomString(15);\n        }\n        // A: preserve key order {\n        doc.write(`const newResult = {}`);\n        for (const key of keys) {\n            if (optionalKeys.has(key)) {\n                const id = ids[key];\n                doc.write(`const ${id} = ${parseStr(key)};`);\n                const k = util.esc(key);\n                doc.write(`\n        if (${id}.issues.length) {\n          if (input[${k}] === undefined) {\n            if (${k} in input) {\n              newResult[${k}] = undefined;\n            }\n          } else {\n            payload.issues = payload.issues.concat(\n              ${id}.issues.map((iss) => ({\n                ...iss,\n                path: iss.path ? [${k}, ...iss.path] : [${k}],\n              }))\n            );\n          }\n        } else if (${id}.value === undefined) {\n          if (${k} in input) newResult[${k}] = undefined;\n        } else {\n          newResult[${k}] = ${id}.value;\n        }\n        `);\n            }\n            else {\n                const id = ids[key];\n                //  const id = ids[key];\n                doc.write(`const ${id} = ${parseStr(key)};`);\n                doc.write(`\n          if (${id}.issues.length) payload.issues = payload.issues.concat(${id}.issues.map(iss => ({\n            ...iss,\n            path: iss.path ? [${util.esc(key)}, ...iss.path] : [${util.esc(key)}]\n          })));`);\n                doc.write(`newResult[${util.esc(key)}] = ${id}.value`);\n            }\n        }\n        doc.write(`payload.value = newResult;`);\n        doc.write(`return payload;`);\n        const fn = doc.compile();\n        return (payload, ctx) => fn(shape, payload, ctx);\n    };\n    let fastpass;\n    const isObject = util.isObject;\n    const jit = !core.globalConfig.jitless;\n    const allowsEval = util.allowsEval;\n    const fastEnabled = jit && allowsEval.value; // && !def.catchall;\n    const { catchall } = def;\n    let value;\n    inst._zod.parse = (payload, ctx) => {\n        value ?? (value = _normalized.value);\n        const input = payload.value;\n        if (!isObject(input)) {\n            payload.issues.push({\n                expected: \"object\",\n                code: \"invalid_type\",\n                input,\n                inst,\n            });\n            return payload;\n        }\n        const proms = [];\n        if (jit && fastEnabled && ctx?.async === false && ctx.jitless !== true) {\n            // always synchronous\n            if (!fastpass)\n                fastpass = generateFastpass(def.shape);\n            payload = fastpass(payload, ctx);\n        }\n        else {\n            payload.value = {};\n            const shape = value.shape;\n            for (const key of value.keys) {\n                const el = shape[key];\n                // do not add omitted optional keys\n                // if (!(key in input)) {\n                //   if (optionalKeys.has(key)) continue;\n                //   payload.issues.push({\n                //     code: \"invalid_type\",\n                //     path: [key],\n                //     expected: \"nonoptional\",\n                //     note: `Missing required key: \"${key}\"`,\n                //     input,\n                //     inst,\n                //   });\n                // }\n                const r = el._zod.run({ value: input[key], issues: [] }, ctx);\n                const isOptional = el._zod.optin === \"optional\" && el._zod.optout === \"optional\";\n                if (r instanceof Promise) {\n                    proms.push(r.then((r) => isOptional ? handleOptionalObjectResult(r, payload, key, input) : handleObjectResult(r, payload, key)));\n                }\n                else if (isOptional) {\n                    handleOptionalObjectResult(r, payload, key, input);\n                }\n                else {\n                    handleObjectResult(r, payload, key);\n                }\n            }\n        }\n        if (!catchall) {\n            // return payload;\n            return proms.length ? Promise.all(proms).then(() => payload) : payload;\n        }\n        const unrecognized = [];\n        // iterate over input keys\n        const keySet = value.keySet;\n        const _catchall = catchall._zod;\n        const t = _catchall.def.type;\n        for (const key of Object.keys(input)) {\n            if (keySet.has(key))\n                continue;\n            if (t === \"never\") {\n                unrecognized.push(key);\n                continue;\n            }\n            const r = _catchall.run({ value: input[key], issues: [] }, ctx);\n            if (r instanceof Promise) {\n                proms.push(r.then((r) => handleObjectResult(r, payload, key)));\n            }\n            else {\n                handleObjectResult(r, payload, key);\n            }\n        }\n        if (unrecognized.length) {\n            payload.issues.push({\n                code: \"unrecognized_keys\",\n                keys: unrecognized,\n                input,\n                inst,\n            });\n        }\n        if (!proms.length)\n            return payload;\n        return Promise.all(proms).then(() => {\n            return payload;\n        });\n    };\n});\nfunction handleUnionResults(results, final, inst, ctx) {\n    for (const result of results) {\n        if (result.issues.length === 0) {\n            final.value = result.value;\n            return final;\n        }\n    }\n    final.issues.push({\n        code: \"invalid_union\",\n        input: final.value,\n        inst,\n        errors: results.map((result) => result.issues.map((iss) => util.finalizeIssue(iss, ctx, core.config()))),\n    });\n    return final;\n}\nexport const $ZodUnion = /*@__PURE__*/ core.$constructor(\"$ZodUnion\", (inst, def) => {\n    $ZodType.init(inst, def);\n    util.defineLazy(inst._zod, \"values\", () => {\n        if (def.options.every((o) => o._zod.values)) {\n            return new Set(def.options.flatMap((option) => Array.from(option._zod.values)));\n        }\n        return undefined;\n    });\n    util.defineLazy(inst._zod, \"pattern\", () => {\n        if (def.options.every((o) => o._zod.pattern)) {\n            const patterns = def.options.map((o) => o._zod.pattern);\n            return new RegExp(`^(${patterns.map((p) => util.cleanRegex(p.source)).join(\"|\")})$`);\n        }\n        return undefined;\n    });\n    inst._zod.parse = (payload, ctx) => {\n        let async = false;\n        const results = [];\n        for (const option of def.options) {\n            const result = option._zod.run({\n                value: payload.value,\n                issues: [],\n            }, ctx);\n            if (result instanceof Promise) {\n                results.push(result);\n                async = true;\n            }\n            else {\n                if (result.issues.length === 0)\n                    return result;\n                results.push(result);\n            }\n        }\n        if (!async)\n            return handleUnionResults(results, payload, inst, ctx);\n        return Promise.all(results).then((results) => {\n            return handleUnionResults(results, payload, inst, ctx);\n        });\n    };\n});\nexport const $ZodDiscriminatedUnion = \n/*@__PURE__*/\ncore.$constructor(\"$ZodDiscriminatedUnion\", (inst, def) => {\n    $ZodUnion.init(inst, def);\n    const _super = inst._zod.parse;\n    util.defineLazy(inst._zod, \"propValues\", () => {\n        const propValues = {};\n        for (const option of def.options) {\n            const pv = option._zod.propValues;\n            if (!pv || Object.keys(pv).length === 0)\n                throw new Error(`Invalid discriminated union option at index \"${def.options.indexOf(option)}\"`);\n            for (const [k, v] of Object.entries(pv)) {\n                if (!propValues[k])\n                    propValues[k] = new Set();\n                for (const val of v) {\n                    propValues[k].add(val);\n                }\n            }\n        }\n        return propValues;\n    });\n    const disc = util.cached(() => {\n        const opts = def.options;\n        const map = new Map();\n        for (const o of opts) {\n            const values = o._zod.propValues[def.discriminator];\n            if (!values || values.size === 0)\n                throw new Error(`Invalid discriminated union option at index \"${def.options.indexOf(o)}\"`);\n            for (const v of values) {\n                if (map.has(v)) {\n                    throw new Error(`Duplicate discriminator value \"${String(v)}\"`);\n                }\n                map.set(v, o);\n            }\n        }\n        return map;\n    });\n    inst._zod.parse = (payload, ctx) => {\n        const input = payload.value;\n        if (!util.isObject(input)) {\n            payload.issues.push({\n                code: \"invalid_type\",\n                expected: \"object\",\n                input,\n                inst,\n            });\n            return payload;\n        }\n        const opt = disc.value.get(input?.[def.discriminator]);\n        if (opt) {\n            return opt._zod.run(payload, ctx);\n        }\n        if (def.unionFallback) {\n            return _super(payload, ctx);\n        }\n        // no matching discriminator\n        payload.issues.push({\n            code: \"invalid_union\",\n            errors: [],\n            note: \"No matching discriminator\",\n            input,\n            path: [def.discriminator],\n            inst,\n        });\n        return payload;\n    };\n});\nexport const $ZodIntersection = /*@__PURE__*/ core.$constructor(\"$ZodIntersection\", (inst, def) => {\n    $ZodType.init(inst, def);\n    inst._zod.parse = (payload, ctx) => {\n        const { value: input } = payload;\n        const left = def.left._zod.run({ value: input, issues: [] }, ctx);\n        const right = def.right._zod.run({ value: input, issues: [] }, ctx);\n        const async = left instanceof Promise || right instanceof Promise;\n        if (async) {\n            return Promise.all([left, right]).then(([left, right]) => {\n                return handleIntersectionResults(payload, left, right);\n            });\n        }\n        return handleIntersectionResults(payload, left, right);\n    };\n});\nfunction mergeValues(a, b) {\n    // const aType = parse.t(a);\n    // const bType = parse.t(b);\n    if (a === b) {\n        return { valid: true, data: a };\n    }\n    if (a instanceof Date && b instanceof Date && +a === +b) {\n        return { valid: true, data: a };\n    }\n    if (util.isPlainObject(a) && util.isPlainObject(b)) {\n        const bKeys = Object.keys(b);\n        const sharedKeys = Object.keys(a).filter((key) => bKeys.indexOf(key) !== -1);\n        const newObj = { ...a, ...b };\n        for (const key of sharedKeys) {\n            const sharedValue = mergeValues(a[key], b[key]);\n            if (!sharedValue.valid) {\n                return {\n                    valid: false,\n                    mergeErrorPath: [key, ...sharedValue.mergeErrorPath],\n                };\n            }\n            newObj[key] = sharedValue.data;\n        }\n        return { valid: true, data: newObj };\n    }\n    if (Array.isArray(a) && Array.isArray(b)) {\n        if (a.length !== b.length) {\n            return { valid: false, mergeErrorPath: [] };\n        }\n        const newArray = [];\n        for (let index = 0; index < a.length; index++) {\n            const itemA = a[index];\n            const itemB = b[index];\n            const sharedValue = mergeValues(itemA, itemB);\n            if (!sharedValue.valid) {\n                return {\n                    valid: false,\n                    mergeErrorPath: [index, ...sharedValue.mergeErrorPath],\n                };\n            }\n            newArray.push(sharedValue.data);\n        }\n        return { valid: true, data: newArray };\n    }\n    return { valid: false, mergeErrorPath: [] };\n}\nfunction handleIntersectionResults(result, left, right) {\n    if (left.issues.length) {\n        result.issues.push(...left.issues);\n    }\n    if (right.issues.length) {\n        result.issues.push(...right.issues);\n    }\n    if (util.aborted(result))\n        return result;\n    const merged = mergeValues(left.value, right.value);\n    if (!merged.valid) {\n        throw new Error(`Unmergable intersection. Error path: ` + `${JSON.stringify(merged.mergeErrorPath)}`);\n    }\n    result.value = merged.data;\n    return result;\n}\nexport const $ZodTuple = /*@__PURE__*/ core.$constructor(\"$ZodTuple\", (inst, def) => {\n    $ZodType.init(inst, def);\n    const items = def.items;\n    const optStart = items.length - [...items].reverse().findIndex((item) => item._zod.optin !== \"optional\");\n    inst._zod.parse = (payload, ctx) => {\n        const input = payload.value;\n        if (!Array.isArray(input)) {\n            payload.issues.push({\n                input,\n                inst,\n                expected: \"tuple\",\n                code: \"invalid_type\",\n            });\n            return payload;\n        }\n        payload.value = [];\n        const proms = [];\n        if (!def.rest) {\n            const tooBig = input.length > items.length;\n            const tooSmall = input.length < optStart - 1;\n            if (tooBig || tooSmall) {\n                payload.issues.push({\n                    input,\n                    inst,\n                    origin: \"array\",\n                    ...(tooBig ? { code: \"too_big\", maximum: items.length } : { code: \"too_small\", minimum: items.length }),\n                });\n                return payload;\n            }\n        }\n        let i = -1;\n        for (const item of items) {\n            i++;\n            if (i >= input.length)\n                if (i >= optStart)\n                    continue;\n            const result = item._zod.run({\n                value: input[i],\n                issues: [],\n            }, ctx);\n            if (result instanceof Promise) {\n                proms.push(result.then((result) => handleTupleResult(result, payload, i)));\n            }\n            else {\n                handleTupleResult(result, payload, i);\n            }\n        }\n        if (def.rest) {\n            const rest = input.slice(items.length);\n            for (const el of rest) {\n                i++;\n                const result = def.rest._zod.run({\n                    value: el,\n                    issues: [],\n                }, ctx);\n                if (result instanceof Promise) {\n                    proms.push(result.then((result) => handleTupleResult(result, payload, i)));\n                }\n                else {\n                    handleTupleResult(result, payload, i);\n                }\n            }\n        }\n        if (proms.length)\n            return Promise.all(proms).then(() => payload);\n        return payload;\n    };\n});\nfunction handleTupleResult(result, final, index) {\n    if (result.issues.length) {\n        final.issues.push(...util.prefixIssues(index, result.issues));\n    }\n    final.value[index] = result.value;\n}\nexport const $ZodRecord = /*@__PURE__*/ core.$constructor(\"$ZodRecord\", (inst, def) => {\n    $ZodType.init(inst, def);\n    inst._zod.parse = (payload, ctx) => {\n        const input = payload.value;\n        if (!util.isPlainObject(input)) {\n            payload.issues.push({\n                expected: \"record\",\n                code: \"invalid_type\",\n                input,\n                inst,\n            });\n            return payload;\n        }\n        const proms = [];\n        if (def.keyType._zod.values) {\n            const values = def.keyType._zod.values;\n            payload.value = {};\n            for (const key of values) {\n                if (typeof key === \"string\" || typeof key === \"number\" || typeof key === \"symbol\") {\n                    const result = def.valueType._zod.run({ value: input[key], issues: [] }, ctx);\n                    if (result instanceof Promise) {\n                        proms.push(result.then((result) => {\n                            if (result.issues.length) {\n                                payload.issues.push(...util.prefixIssues(key, result.issues));\n                            }\n                            payload.value[key] = result.value;\n                        }));\n                    }\n                    else {\n                        if (result.issues.length) {\n                            payload.issues.push(...util.prefixIssues(key, result.issues));\n                        }\n                        payload.value[key] = result.value;\n                    }\n                }\n            }\n            let unrecognized;\n            for (const key in input) {\n                if (!values.has(key)) {\n                    unrecognized = unrecognized ?? [];\n                    unrecognized.push(key);\n                }\n            }\n            if (unrecognized && unrecognized.length > 0) {\n                payload.issues.push({\n                    code: \"unrecognized_keys\",\n                    input,\n                    inst,\n                    keys: unrecognized,\n                });\n            }\n        }\n        else {\n            payload.value = {};\n            for (const key of Reflect.ownKeys(input)) {\n                if (key === \"__proto__\")\n                    continue;\n                const keyResult = def.keyType._zod.run({ value: key, issues: [] }, ctx);\n                if (keyResult instanceof Promise) {\n                    throw new Error(\"Async schemas not supported in object keys currently\");\n                }\n                if (keyResult.issues.length) {\n                    payload.issues.push({\n                        origin: \"record\",\n                        code: \"invalid_key\",\n                        issues: keyResult.issues.map((iss) => util.finalizeIssue(iss, ctx, core.config())),\n                        input: key,\n                        path: [key],\n                        inst,\n                    });\n                    payload.value[keyResult.value] = keyResult.value;\n                    continue;\n                }\n                const result = def.valueType._zod.run({ value: input[key], issues: [] }, ctx);\n                if (result instanceof Promise) {\n                    proms.push(result.then((result) => {\n                        if (result.issues.length) {\n                            payload.issues.push(...util.prefixIssues(key, result.issues));\n                        }\n                        payload.value[keyResult.value] = result.value;\n                    }));\n                }\n                else {\n                    if (result.issues.length) {\n                        payload.issues.push(...util.prefixIssues(key, result.issues));\n                    }\n                    payload.value[keyResult.value] = result.value;\n                }\n            }\n        }\n        if (proms.length) {\n            return Promise.all(proms).then(() => payload);\n        }\n        return payload;\n    };\n});\nexport const $ZodMap = /*@__PURE__*/ core.$constructor(\"$ZodMap\", (inst, def) => {\n    $ZodType.init(inst, def);\n    inst._zod.parse = (payload, ctx) => {\n        const input = payload.value;\n        if (!(input instanceof Map)) {\n            payload.issues.push({\n                expected: \"map\",\n                code: \"invalid_type\",\n                input,\n                inst,\n            });\n            return payload;\n        }\n        const proms = [];\n        payload.value = new Map();\n        for (const [key, value] of input) {\n            const keyResult = def.keyType._zod.run({ value: key, issues: [] }, ctx);\n            const valueResult = def.valueType._zod.run({ value: value, issues: [] }, ctx);\n            if (keyResult instanceof Promise || valueResult instanceof Promise) {\n                proms.push(Promise.all([keyResult, valueResult]).then(([keyResult, valueResult]) => {\n                    handleMapResult(keyResult, valueResult, payload, key, input, inst, ctx);\n                }));\n            }\n            else {\n                handleMapResult(keyResult, valueResult, payload, key, input, inst, ctx);\n            }\n        }\n        if (proms.length)\n            return Promise.all(proms).then(() => payload);\n        return payload;\n    };\n});\nfunction handleMapResult(keyResult, valueResult, final, key, input, inst, ctx) {\n    if (keyResult.issues.length) {\n        if (util.propertyKeyTypes.has(typeof key)) {\n            final.issues.push(...util.prefixIssues(key, keyResult.issues));\n        }\n        else {\n            final.issues.push({\n                origin: \"map\",\n                code: \"invalid_key\",\n                input,\n                inst,\n                issues: keyResult.issues.map((iss) => util.finalizeIssue(iss, ctx, core.config())),\n            });\n        }\n    }\n    if (valueResult.issues.length) {\n        if (util.propertyKeyTypes.has(typeof key)) {\n            final.issues.push(...util.prefixIssues(key, valueResult.issues));\n        }\n        else {\n            final.issues.push({\n                origin: \"map\",\n                code: \"invalid_element\",\n                input,\n                inst,\n                key: key,\n                issues: valueResult.issues.map((iss) => util.finalizeIssue(iss, ctx, core.config())),\n            });\n        }\n    }\n    final.value.set(keyResult.value, valueResult.value);\n}\nexport const $ZodSet = /*@__PURE__*/ core.$constructor(\"$ZodSet\", (inst, def) => {\n    $ZodType.init(inst, def);\n    inst._zod.parse = (payload, ctx) => {\n        const input = payload.value;\n        if (!(input instanceof Set)) {\n            payload.issues.push({\n                input,\n                inst,\n                expected: \"set\",\n                code: \"invalid_type\",\n            });\n            return payload;\n        }\n        const proms = [];\n        payload.value = new Set();\n        for (const item of input) {\n            const result = def.valueType._zod.run({ value: item, issues: [] }, ctx);\n            if (result instanceof Promise) {\n                proms.push(result.then((result) => handleSetResult(result, payload)));\n            }\n            else\n                handleSetResult(result, payload);\n        }\n        if (proms.length)\n            return Promise.all(proms).then(() => payload);\n        return payload;\n    };\n});\nfunction handleSetResult(result, final) {\n    if (result.issues.length) {\n        final.issues.push(...result.issues);\n    }\n    final.value.add(result.value);\n}\nexport const $ZodEnum = /*@__PURE__*/ core.$constructor(\"$ZodEnum\", (inst, def) => {\n    $ZodType.init(inst, def);\n    const values = util.getEnumValues(def.entries);\n    inst._zod.values = new Set(values);\n    inst._zod.pattern = new RegExp(`^(${values\n        .filter((k) => util.propertyKeyTypes.has(typeof k))\n        .map((o) => (typeof o === \"string\" ? util.escapeRegex(o) : o.toString()))\n        .join(\"|\")})$`);\n    inst._zod.parse = (payload, _ctx) => {\n        const input = payload.value;\n        if (inst._zod.values.has(input)) {\n            return payload;\n        }\n        payload.issues.push({\n            code: \"invalid_value\",\n            values,\n            input,\n            inst,\n        });\n        return payload;\n    };\n});\nexport const $ZodLiteral = /*@__PURE__*/ core.$constructor(\"$ZodLiteral\", (inst, def) => {\n    $ZodType.init(inst, def);\n    inst._zod.values = new Set(def.values);\n    inst._zod.pattern = new RegExp(`^(${def.values\n        .map((o) => (typeof o === \"string\" ? util.escapeRegex(o) : o ? o.toString() : String(o)))\n        .join(\"|\")})$`);\n    inst._zod.parse = (payload, _ctx) => {\n        const input = payload.value;\n        if (inst._zod.values.has(input)) {\n            return payload;\n        }\n        payload.issues.push({\n            code: \"invalid_value\",\n            values: def.values,\n            input,\n            inst,\n        });\n        return payload;\n    };\n});\nexport const $ZodFile = /*@__PURE__*/ core.$constructor(\"$ZodFile\", (inst, def) => {\n    $ZodType.init(inst, def);\n    inst._zod.parse = (payload, _ctx) => {\n        const input = payload.value;\n        if (input instanceof File)\n            return payload;\n        payload.issues.push({\n            expected: \"file\",\n            code: \"invalid_type\",\n            input,\n            inst,\n        });\n        return payload;\n    };\n});\nexport const $ZodTransform = /*@__PURE__*/ core.$constructor(\"$ZodTransform\", (inst, def) => {\n    $ZodType.init(inst, def);\n    inst._zod.parse = (payload, _ctx) => {\n        const _out = def.transform(payload.value, payload);\n        if (_ctx.async) {\n            const output = _out instanceof Promise ? _out : Promise.resolve(_out);\n            return output.then((output) => {\n                payload.value = output;\n                return payload;\n            });\n        }\n        if (_out instanceof Promise) {\n            throw new core.$ZodAsyncError();\n        }\n        payload.value = _out;\n        return payload;\n    };\n});\nexport const $ZodOptional = /*@__PURE__*/ core.$constructor(\"$ZodOptional\", (inst, def) => {\n    $ZodType.init(inst, def);\n    inst._zod.optin = \"optional\";\n    inst._zod.optout = \"optional\";\n    util.defineLazy(inst._zod, \"values\", () => {\n        return def.innerType._zod.values ? new Set([...def.innerType._zod.values, undefined]) : undefined;\n    });\n    util.defineLazy(inst._zod, \"pattern\", () => {\n        const pattern = def.innerType._zod.pattern;\n        return pattern ? new RegExp(`^(${util.cleanRegex(pattern.source)})?$`) : undefined;\n    });\n    inst._zod.parse = (payload, ctx) => {\n        if (payload.value === undefined) {\n            return payload;\n        }\n        return def.innerType._zod.run(payload, ctx);\n    };\n});\nexport const $ZodNullable = /*@__PURE__*/ core.$constructor(\"$ZodNullable\", (inst, def) => {\n    $ZodType.init(inst, def);\n    util.defineLazy(inst._zod, \"optin\", () => def.innerType._zod.optin);\n    util.defineLazy(inst._zod, \"optout\", () => def.innerType._zod.optout);\n    util.defineLazy(inst._zod, \"pattern\", () => {\n        const pattern = def.innerType._zod.pattern;\n        return pattern ? new RegExp(`^(${util.cleanRegex(pattern.source)}|null)$`) : undefined;\n    });\n    util.defineLazy(inst._zod, \"values\", () => {\n        return def.innerType._zod.values ? new Set([...def.innerType._zod.values, null]) : undefined;\n    });\n    inst._zod.parse = (payload, ctx) => {\n        if (payload.value === null)\n            return payload;\n        return def.innerType._zod.run(payload, ctx);\n    };\n});\nexport const $ZodDefault = /*@__PURE__*/ core.$constructor(\"$ZodDefault\", (inst, def) => {\n    $ZodType.init(inst, def);\n    // inst._zod.qin = \"true\";\n    inst._zod.optin = \"optional\";\n    util.defineLazy(inst._zod, \"values\", () => def.innerType._zod.values);\n    inst._zod.parse = (payload, ctx) => {\n        if (payload.value === undefined) {\n            payload.value = def.defaultValue;\n            /**\n             * $ZodDefault always returns the default value immediately.\n             * It doesn't pass the default value into the validator (\"prefault\"). There's no reason to pass the default value through validation. The validity of the default is enforced by TypeScript statically. Otherwise, it's the responsibility of the user to ensure the default is valid. In the case of pipes with divergent in/out types, you can specify the default on the `in` schema of your ZodPipe to set a \"prefault\" for the pipe.   */\n            return payload;\n        }\n        const result = def.innerType._zod.run(payload, ctx);\n        if (result instanceof Promise) {\n            return result.then((result) => handleDefaultResult(result, def));\n        }\n        return handleDefaultResult(result, def);\n    };\n});\nfunction handleDefaultResult(payload, def) {\n    if (payload.value === undefined) {\n        payload.value = def.defaultValue;\n    }\n    return payload;\n}\nexport const $ZodPrefault = /*@__PURE__*/ core.$constructor(\"$ZodPrefault\", (inst, def) => {\n    $ZodType.init(inst, def);\n    inst._zod.optin = \"optional\";\n    util.defineLazy(inst._zod, \"values\", () => def.innerType._zod.values);\n    inst._zod.parse = (payload, ctx) => {\n        if (payload.value === undefined) {\n            payload.value = def.defaultValue;\n        }\n        return def.innerType._zod.run(payload, ctx);\n    };\n});\nexport const $ZodNonOptional = /*@__PURE__*/ core.$constructor(\"$ZodNonOptional\", (inst, def) => {\n    $ZodType.init(inst, def);\n    util.defineLazy(inst._zod, \"values\", () => {\n        const v = def.innerType._zod.values;\n        return v ? new Set([...v].filter((x) => x !== undefined)) : undefined;\n    });\n    inst._zod.parse = (payload, ctx) => {\n        const result = def.innerType._zod.run(payload, ctx);\n        if (result instanceof Promise) {\n            return result.then((result) => handleNonOptionalResult(result, inst));\n        }\n        return handleNonOptionalResult(result, inst);\n    };\n});\nfunction handleNonOptionalResult(payload, inst) {\n    if (!payload.issues.length && payload.value === undefined) {\n        payload.issues.push({\n            code: \"invalid_type\",\n            expected: \"nonoptional\",\n            input: payload.value,\n            inst,\n        });\n    }\n    return payload;\n}\nexport const $ZodSuccess = /*@__PURE__*/ core.$constructor(\"$ZodSuccess\", (inst, def) => {\n    $ZodType.init(inst, def);\n    inst._zod.parse = (payload, ctx) => {\n        const result = def.innerType._zod.run(payload, ctx);\n        if (result instanceof Promise) {\n            return result.then((result) => {\n                payload.value = result.issues.length === 0;\n                return payload;\n            });\n        }\n        payload.value = result.issues.length === 0;\n        return payload;\n    };\n});\nexport const $ZodCatch = /*@__PURE__*/ core.$constructor(\"$ZodCatch\", (inst, def) => {\n    $ZodType.init(inst, def);\n    util.defineLazy(inst._zod, \"optin\", () => def.innerType._zod.optin);\n    util.defineLazy(inst._zod, \"optout\", () => def.innerType._zod.optout);\n    util.defineLazy(inst._zod, \"values\", () => def.innerType._zod.values);\n    inst._zod.parse = (payload, ctx) => {\n        const result = def.innerType._zod.run(payload, ctx);\n        if (result instanceof Promise) {\n            return result.then((result) => {\n                payload.value = result.value;\n                if (result.issues.length) {\n                    payload.value = def.catchValue({\n                        ...payload,\n                        error: {\n                            issues: result.issues.map((iss) => util.finalizeIssue(iss, ctx, core.config())),\n                        },\n                        input: payload.value,\n                    });\n                    payload.issues = [];\n                }\n                return payload;\n            });\n        }\n        payload.value = result.value;\n        if (result.issues.length) {\n            payload.value = def.catchValue({\n                ...payload,\n                error: {\n                    issues: result.issues.map((iss) => util.finalizeIssue(iss, ctx, core.config())),\n                },\n                input: payload.value,\n            });\n            payload.issues = [];\n        }\n        return payload;\n    };\n});\nexport const $ZodNaN = /*@__PURE__*/ core.$constructor(\"$ZodNaN\", (inst, def) => {\n    $ZodType.init(inst, def);\n    inst._zod.parse = (payload, _ctx) => {\n        if (typeof payload.value !== \"number\" || !Number.isNaN(payload.value)) {\n            payload.issues.push({\n                input: payload.value,\n                inst,\n                expected: \"nan\",\n                code: \"invalid_type\",\n            });\n            return payload;\n        }\n        return payload;\n    };\n});\nexport const $ZodPipe = /*@__PURE__*/ core.$constructor(\"$ZodPipe\", (inst, def) => {\n    $ZodType.init(inst, def);\n    util.defineLazy(inst._zod, \"values\", () => def.in._zod.values);\n    util.defineLazy(inst._zod, \"optin\", () => def.in._zod.optin);\n    util.defineLazy(inst._zod, \"optout\", () => def.out._zod.optout);\n    inst._zod.parse = (payload, ctx) => {\n        const left = def.in._zod.run(payload, ctx);\n        if (left instanceof Promise) {\n            return left.then((left) => handlePipeResult(left, def, ctx));\n        }\n        return handlePipeResult(left, def, ctx);\n    };\n});\nfunction handlePipeResult(left, def, ctx) {\n    if (util.aborted(left)) {\n        return left;\n    }\n    return def.out._zod.run({ value: left.value, issues: left.issues }, ctx);\n}\nexport const $ZodReadonly = /*@__PURE__*/ core.$constructor(\"$ZodReadonly\", (inst, def) => {\n    $ZodType.init(inst, def);\n    util.defineLazy(inst._zod, \"propValues\", () => def.innerType._zod.propValues);\n    util.defineLazy(inst._zod, \"optin\", () => def.innerType._zod.optin);\n    util.defineLazy(inst._zod, \"optout\", () => def.innerType._zod.optout);\n    inst._zod.parse = (payload, ctx) => {\n        const result = def.innerType._zod.run(payload, ctx);\n        if (result instanceof Promise) {\n            return result.then(handleReadonlyResult);\n        }\n        return handleReadonlyResult(result);\n    };\n});\nfunction handleReadonlyResult(payload) {\n    payload.value = Object.freeze(payload.value);\n    return payload;\n}\nexport const $ZodTemplateLiteral = /*@__PURE__*/ core.$constructor(\"$ZodTemplateLiteral\", (inst, def) => {\n    $ZodType.init(inst, def);\n    const regexParts = [];\n    for (const part of def.parts) {\n        if (part instanceof $ZodType) {\n            if (!part._zod.pattern) {\n                // if (!source)\n                throw new Error(`Invalid template literal part, no pattern found: ${[...part._zod.traits].shift()}`);\n            }\n            const source = part._zod.pattern instanceof RegExp ? part._zod.pattern.source : part._zod.pattern;\n            if (!source)\n                throw new Error(`Invalid template literal part: ${part._zod.traits}`);\n            const start = source.startsWith(\"^\") ? 1 : 0;\n            const end = source.endsWith(\"$\") ? source.length - 1 : source.length;\n            regexParts.push(source.slice(start, end));\n        }\n        else if (part === null || util.primitiveTypes.has(typeof part)) {\n            regexParts.push(util.escapeRegex(`${part}`));\n        }\n        else {\n            throw new Error(`Invalid template literal part: ${part}`);\n        }\n    }\n    inst._zod.pattern = new RegExp(`^${regexParts.join(\"\")}$`);\n    inst._zod.parse = (payload, _ctx) => {\n        if (typeof payload.value !== \"string\") {\n            payload.issues.push({\n                input: payload.value,\n                inst,\n                expected: \"template_literal\",\n                code: \"invalid_type\",\n            });\n            return payload;\n        }\n        inst._zod.pattern.lastIndex = 0;\n        if (!inst._zod.pattern.test(payload.value)) {\n            payload.issues.push({\n                input: payload.value,\n                inst,\n                code: \"invalid_format\",\n                format: \"template_literal\",\n                pattern: inst._zod.pattern.source,\n            });\n            return payload;\n        }\n        return payload;\n    };\n});\nexport const $ZodPromise = /*@__PURE__*/ core.$constructor(\"$ZodPromise\", (inst, def) => {\n    $ZodType.init(inst, def);\n    inst._zod.parse = (payload, ctx) => {\n        return Promise.resolve(payload.value).then((inner) => def.innerType._zod.run({ value: inner, issues: [] }, ctx));\n    };\n});\nexport const $ZodLazy = /*@__PURE__*/ core.$constructor(\"$ZodLazy\", (inst, def) => {\n    $ZodType.init(inst, def);\n    util.defineLazy(inst._zod, \"innerType\", () => def.getter());\n    util.defineLazy(inst._zod, \"pattern\", () => inst._zod.innerType._zod.pattern);\n    util.defineLazy(inst._zod, \"propValues\", () => inst._zod.innerType._zod.propValues);\n    util.defineLazy(inst._zod, \"optin\", () => inst._zod.innerType._zod.optin);\n    util.defineLazy(inst._zod, \"optout\", () => inst._zod.innerType._zod.optout);\n    inst._zod.parse = (payload, ctx) => {\n        const inner = inst._zod.innerType;\n        return inner._zod.run(payload, ctx);\n    };\n});\nexport const $ZodCustom = /*@__PURE__*/ core.$constructor(\"$ZodCustom\", (inst, def) => {\n    checks.$ZodCheck.init(inst, def);\n    $ZodType.init(inst, def);\n    inst._zod.parse = (payload, _) => {\n        return payload;\n    };\n    inst._zod.check = (payload) => {\n        const input = payload.value;\n        const r = def.fn(input);\n        if (r instanceof Promise) {\n            return r.then((r) => handleRefineResult(r, payload, input, inst));\n        }\n        handleRefineResult(r, payload, input, inst);\n        return;\n    };\n});\nfunction handleRefineResult(result, payload, input, inst) {\n    if (!result) {\n        const _iss = {\n            code: \"custom\",\n            input,\n            inst, // incorporates params.error into issue reporting\n            path: [...(inst._zod.def.path ?? [])], // incorporates params.error into issue reporting\n            continue: !inst._zod.def.abort,\n            // params: inst._zod.def.params,\n        };\n        if (inst._zod.def.params)\n            _iss.params = inst._zod.def.params;\n        payload.issues.push(util.issue(_iss));\n    }\n}\n","import * as util from \"../core/util.js\";\nexport const parsedType = (data) => {\n    const t = typeof data;\n    switch (t) {\n        case \"number\": {\n            return Number.isNaN(data) ? \"NaN\" : \"number\";\n        }\n        case \"object\": {\n            if (Array.isArray(data)) {\n                return \"array\";\n            }\n            if (data === null) {\n                return \"null\";\n            }\n            if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {\n                return data.constructor.name;\n            }\n        }\n    }\n    return t;\n};\nconst error = () => {\n    const Sizable = {\n        string: { unit: \"characters\", verb: \"to have\" },\n        file: { unit: \"bytes\", verb: \"to have\" },\n        array: { unit: \"items\", verb: \"to have\" },\n        set: { unit: \"items\", verb: \"to have\" },\n    };\n    function getSizing(origin) {\n        return Sizable[origin] ?? null;\n    }\n    const Nouns = {\n        regex: \"input\",\n        email: \"email address\",\n        url: \"URL\",\n        emoji: \"emoji\",\n        uuid: \"UUID\",\n        uuidv4: \"UUIDv4\",\n        uuidv6: \"UUIDv6\",\n        nanoid: \"nanoid\",\n        guid: \"GUID\",\n        cuid: \"cuid\",\n        cuid2: \"cuid2\",\n        ulid: \"ULID\",\n        xid: \"XID\",\n        ksuid: \"KSUID\",\n        datetime: \"ISO datetime\",\n        date: \"ISO date\",\n        time: \"ISO time\",\n        duration: \"ISO duration\",\n        ipv4: \"IPv4 address\",\n        ipv6: \"IPv6 address\",\n        cidrv4: \"IPv4 range\",\n        cidrv6: \"IPv6 range\",\n        base64: \"base64-encoded string\",\n        base64url: \"base64url-encoded string\",\n        json_string: \"JSON string\",\n        e164: \"E.164 number\",\n        jwt: \"JWT\",\n        template_literal: \"input\",\n    };\n    return (issue) => {\n        switch (issue.code) {\n            case \"invalid_type\":\n                return `Invalid input: expected ${issue.expected}, received ${parsedType(issue.input)}`;\n            case \"invalid_value\":\n                if (issue.values.length === 1)\n                    return `Invalid input: expected ${util.stringifyPrimitive(issue.values[0])}`;\n                return `Invalid option: expected one of ${util.joinValues(issue.values, \"|\")}`;\n            case \"too_big\": {\n                const adj = issue.inclusive ? \"<=\" : \"<\";\n                const sizing = getSizing(issue.origin);\n                if (sizing)\n                    return `Too big: expected ${issue.origin ?? \"value\"} to have ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"elements\"}`;\n                return `Too big: expected ${issue.origin ?? \"value\"} to be ${adj}${issue.maximum.toString()}`;\n            }\n            case \"too_small\": {\n                const adj = issue.inclusive ? \">=\" : \">\";\n                const sizing = getSizing(issue.origin);\n                if (sizing) {\n                    return `Too small: expected ${issue.origin} to have ${adj}${issue.minimum.toString()} ${sizing.unit}`;\n                }\n                return `Too small: expected ${issue.origin} to be ${adj}${issue.minimum.toString()}`;\n            }\n            case \"invalid_format\": {\n                const _issue = issue;\n                if (_issue.format === \"starts_with\") {\n                    return `Invalid string: must start with \"${_issue.prefix}\"`;\n                }\n                if (_issue.format === \"ends_with\")\n                    return `Invalid string: must end with \"${_issue.suffix}\"`;\n                if (_issue.format === \"includes\")\n                    return `Invalid string: must include \"${_issue.includes}\"`;\n                if (_issue.format === \"regex\")\n                    return `Invalid string: must match pattern ${_issue.pattern}`;\n                return `Invalid ${Nouns[_issue.format] ?? issue.format}`;\n            }\n            case \"not_multiple_of\":\n                return `Invalid number: must be a multiple of ${issue.divisor}`;\n            case \"unrecognized_keys\":\n                return `Unrecognized key${issue.keys.length > 1 ? \"s\" : \"\"}: ${util.joinValues(issue.keys, \", \")}`;\n            case \"invalid_key\":\n                return `Invalid key in ${issue.origin}`;\n            case \"invalid_union\":\n                return \"Invalid input\";\n            case \"invalid_element\":\n                return `Invalid value in ${issue.origin}`;\n            default:\n                return `Invalid input`;\n        }\n    };\n};\nexport default function () {\n    return {\n        localeError: error(),\n    };\n}\n","export const $output = Symbol(\"ZodOutput\");\nexport const $input = Symbol(\"ZodInput\");\nexport class $ZodRegistry {\n    constructor() {\n        this._map = new WeakMap();\n        this._idmap = new Map();\n    }\n    add(schema, ..._meta) {\n        const meta = _meta[0];\n        this._map.set(schema, meta);\n        if (meta && typeof meta === \"object\" && \"id\" in meta) {\n            if (this._idmap.has(meta.id)) {\n                throw new Error(`ID ${meta.id} already exists in the registry`);\n            }\n            this._idmap.set(meta.id, schema);\n        }\n        return this;\n    }\n    remove(schema) {\n        this._map.delete(schema);\n        return this;\n    }\n    get(schema) {\n        // return this._map.get(schema) as any;\n        // inherit metadata\n        const p = schema._zod.parent;\n        if (p) {\n            const pm = { ...(this.get(p) ?? {}) };\n            delete pm.id; // do not inherit id\n            return { ...pm, ...this._map.get(schema) };\n        }\n        return this._map.get(schema);\n    }\n    has(schema) {\n        return this._map.has(schema);\n    }\n}\n// registries\nexport function registry() {\n    return new $ZodRegistry();\n}\nexport const globalRegistry = /*@__PURE__*/ registry();\n","import * as checks from \"./checks.js\";\nimport * as schemas from \"./schemas.js\";\nimport * as util from \"./util.js\";\nexport function _string(Class, params) {\n    return new Class({\n        type: \"string\",\n        ...util.normalizeParams(params),\n    });\n}\nexport function _coercedString(Class, params) {\n    return new Class({\n        type: \"string\",\n        coerce: true,\n        ...util.normalizeParams(params),\n    });\n}\nexport function _email(Class, params) {\n    return new Class({\n        type: \"string\",\n        format: \"email\",\n        check: \"string_format\",\n        abort: false,\n        ...util.normalizeParams(params),\n    });\n}\nexport function _guid(Class, params) {\n    return new Class({\n        type: \"string\",\n        format: \"guid\",\n        check: \"string_format\",\n        abort: false,\n        ...util.normalizeParams(params),\n    });\n}\nexport function _uuid(Class, params) {\n    return new Class({\n        type: \"string\",\n        format: \"uuid\",\n        check: \"string_format\",\n        abort: false,\n        ...util.normalizeParams(params),\n    });\n}\nexport function _uuidv4(Class, params) {\n    return new Class({\n        type: \"string\",\n        format: \"uuid\",\n        check: \"string_format\",\n        abort: false,\n        version: \"v4\",\n        ...util.normalizeParams(params),\n    });\n}\nexport function _uuidv6(Class, params) {\n    return new Class({\n        type: \"string\",\n        format: \"uuid\",\n        check: \"string_format\",\n        abort: false,\n        version: \"v6\",\n        ...util.normalizeParams(params),\n    });\n}\nexport function _uuidv7(Class, params) {\n    return new Class({\n        type: \"string\",\n        format: \"uuid\",\n        check: \"string_format\",\n        abort: false,\n        version: \"v7\",\n        ...util.normalizeParams(params),\n    });\n}\nexport function _url(Class, params) {\n    return new Class({\n        type: \"string\",\n        format: \"url\",\n        check: \"string_format\",\n        abort: false,\n        ...util.normalizeParams(params),\n    });\n}\nexport function _emoji(Class, params) {\n    return new Class({\n        type: \"string\",\n        format: \"emoji\",\n        check: \"string_format\",\n        abort: false,\n        ...util.normalizeParams(params),\n    });\n}\nexport function _nanoid(Class, params) {\n    return new Class({\n        type: \"string\",\n        format: \"nanoid\",\n        check: \"string_format\",\n        abort: false,\n        ...util.normalizeParams(params),\n    });\n}\nexport function _cuid(Class, params) {\n    return new Class({\n        type: \"string\",\n        format: \"cuid\",\n        check: \"string_format\",\n        abort: false,\n        ...util.normalizeParams(params),\n    });\n}\nexport function _cuid2(Class, params) {\n    return new Class({\n        type: \"string\",\n        format: \"cuid2\",\n        check: \"string_format\",\n        abort: false,\n        ...util.normalizeParams(params),\n    });\n}\nexport function _ulid(Class, params) {\n    return new Class({\n        type: \"string\",\n        format: \"ulid\",\n        check: \"string_format\",\n        abort: false,\n        ...util.normalizeParams(params),\n    });\n}\nexport function _xid(Class, params) {\n    return new Class({\n        type: \"string\",\n        format: \"xid\",\n        check: \"string_format\",\n        abort: false,\n        ...util.normalizeParams(params),\n    });\n}\nexport function _ksuid(Class, params) {\n    return new Class({\n        type: \"string\",\n        format: \"ksuid\",\n        check: \"string_format\",\n        abort: false,\n        ...util.normalizeParams(params),\n    });\n}\nexport function _ipv4(Class, params) {\n    return new Class({\n        type: \"string\",\n        format: \"ipv4\",\n        check: \"string_format\",\n        abort: false,\n        ...util.normalizeParams(params),\n    });\n}\nexport function _ipv6(Class, params) {\n    return new Class({\n        type: \"string\",\n        format: \"ipv6\",\n        check: \"string_format\",\n        abort: false,\n        ...util.normalizeParams(params),\n    });\n}\nexport function _cidrv4(Class, params) {\n    return new Class({\n        type: \"string\",\n        format: \"cidrv4\",\n        check: \"string_format\",\n        abort: false,\n        ...util.normalizeParams(params),\n    });\n}\nexport function _cidrv6(Class, params) {\n    return new Class({\n        type: \"string\",\n        format: \"cidrv6\",\n        check: \"string_format\",\n        abort: false,\n        ...util.normalizeParams(params),\n    });\n}\nexport function _base64(Class, params) {\n    return new Class({\n        type: \"string\",\n        format: \"base64\",\n        check: \"string_format\",\n        abort: false,\n        ...util.normalizeParams(params),\n    });\n}\nexport function _base64url(Class, params) {\n    return new Class({\n        type: \"string\",\n        format: \"base64url\",\n        check: \"string_format\",\n        abort: false,\n        ...util.normalizeParams(params),\n    });\n}\nexport function _e164(Class, params) {\n    return new Class({\n        type: \"string\",\n        format: \"e164\",\n        check: \"string_format\",\n        abort: false,\n        ...util.normalizeParams(params),\n    });\n}\nexport function _jwt(Class, params) {\n    return new Class({\n        type: \"string\",\n        format: \"jwt\",\n        check: \"string_format\",\n        abort: false,\n        ...util.normalizeParams(params),\n    });\n}\nexport const TimePrecision = {\n    Any: null,\n    Minute: -1,\n    Second: 0,\n    Millisecond: 3,\n    Microsecond: 6,\n};\nexport function _isoDateTime(Class, params) {\n    return new Class({\n        type: \"string\",\n        format: \"datetime\",\n        check: \"string_format\",\n        offset: false,\n        local: false,\n        precision: null,\n        ...util.normalizeParams(params),\n    });\n}\nexport function _isoDate(Class, params) {\n    return new Class({\n        type: \"string\",\n        format: \"date\",\n        check: \"string_format\",\n        ...util.normalizeParams(params),\n    });\n}\nexport function _isoTime(Class, params) {\n    return new Class({\n        type: \"string\",\n        format: \"time\",\n        check: \"string_format\",\n        precision: null,\n        ...util.normalizeParams(params),\n    });\n}\nexport function _isoDuration(Class, params) {\n    return new Class({\n        type: \"string\",\n        format: \"duration\",\n        check: \"string_format\",\n        ...util.normalizeParams(params),\n    });\n}\nexport function _number(Class, params) {\n    return new Class({\n        type: \"number\",\n        checks: [],\n        ...util.normalizeParams(params),\n    });\n}\nexport function _coercedNumber(Class, params) {\n    return new Class({\n        type: \"number\",\n        coerce: true,\n        checks: [],\n        ...util.normalizeParams(params),\n    });\n}\nexport function _int(Class, params) {\n    return new Class({\n        type: \"number\",\n        check: \"number_format\",\n        abort: false,\n        format: \"safeint\",\n        ...util.normalizeParams(params),\n    });\n}\nexport function _float32(Class, params) {\n    return new Class({\n        type: \"number\",\n        check: \"number_format\",\n        abort: false,\n        format: \"float32\",\n        ...util.normalizeParams(params),\n    });\n}\nexport function _float64(Class, params) {\n    return new Class({\n        type: \"number\",\n        check: \"number_format\",\n        abort: false,\n        format: \"float64\",\n        ...util.normalizeParams(params),\n    });\n}\nexport function _int32(Class, params) {\n    return new Class({\n        type: \"number\",\n        check: \"number_format\",\n        abort: false,\n        format: \"int32\",\n        ...util.normalizeParams(params),\n    });\n}\nexport function _uint32(Class, params) {\n    return new Class({\n        type: \"number\",\n        check: \"number_format\",\n        abort: false,\n        format: \"uint32\",\n        ...util.normalizeParams(params),\n    });\n}\nexport function _boolean(Class, params) {\n    return new Class({\n        type: \"boolean\",\n        ...util.normalizeParams(params),\n    });\n}\nexport function _coercedBoolean(Class, params) {\n    return new Class({\n        type: \"boolean\",\n        coerce: true,\n        ...util.normalizeParams(params),\n    });\n}\nexport function _bigint(Class, params) {\n    return new Class({\n        type: \"bigint\",\n        ...util.normalizeParams(params),\n    });\n}\nexport function _coercedBigint(Class, params) {\n    return new Class({\n        type: \"bigint\",\n        coerce: true,\n        ...util.normalizeParams(params),\n    });\n}\nexport function _int64(Class, params) {\n    return new Class({\n        type: \"bigint\",\n        check: \"bigint_format\",\n        abort: false,\n        format: \"int64\",\n        ...util.normalizeParams(params),\n    });\n}\nexport function _uint64(Class, params) {\n    return new Class({\n        type: \"bigint\",\n        check: \"bigint_format\",\n        abort: false,\n        format: \"uint64\",\n        ...util.normalizeParams(params),\n    });\n}\nexport function _symbol(Class, params) {\n    return new Class({\n        type: \"symbol\",\n        ...util.normalizeParams(params),\n    });\n}\nexport function _undefined(Class, params) {\n    return new Class({\n        type: \"undefined\",\n        ...util.normalizeParams(params),\n    });\n}\nexport function _null(Class, params) {\n    return new Class({\n        type: \"null\",\n        ...util.normalizeParams(params),\n    });\n}\nexport function _any(Class) {\n    return new Class({\n        type: \"any\",\n    });\n}\nexport function _unknown(Class) {\n    return new Class({\n        type: \"unknown\",\n    });\n}\nexport function _never(Class, params) {\n    return new Class({\n        type: \"never\",\n        ...util.normalizeParams(params),\n    });\n}\nexport function _void(Class, params) {\n    return new Class({\n        type: \"void\",\n        ...util.normalizeParams(params),\n    });\n}\nexport function _date(Class, params) {\n    return new Class({\n        type: \"date\",\n        ...util.normalizeParams(params),\n    });\n}\nexport function _coercedDate(Class, params) {\n    return new Class({\n        type: \"date\",\n        coerce: true,\n        ...util.normalizeParams(params),\n    });\n}\nexport function _nan(Class, params) {\n    return new Class({\n        type: \"nan\",\n        ...util.normalizeParams(params),\n    });\n}\nexport function _lt(value, params) {\n    return new checks.$ZodCheckLessThan({\n        check: \"less_than\",\n        ...util.normalizeParams(params),\n        value,\n        inclusive: false,\n    });\n}\nexport function _lte(value, params) {\n    return new checks.$ZodCheckLessThan({\n        check: \"less_than\",\n        ...util.normalizeParams(params),\n        value,\n        inclusive: true,\n    });\n}\nexport { \n/** @deprecated Use `z.lte()` instead. */\n_lte as _max, };\nexport function _gt(value, params) {\n    return new checks.$ZodCheckGreaterThan({\n        check: \"greater_than\",\n        ...util.normalizeParams(params),\n        value,\n        inclusive: false,\n    });\n}\nexport function _gte(value, params) {\n    return new checks.$ZodCheckGreaterThan({\n        check: \"greater_than\",\n        ...util.normalizeParams(params),\n        value,\n        inclusive: true,\n    });\n}\nexport { \n/** @deprecated Use `z.gte()` instead. */\n_gte as _min, };\nexport function _positive(params) {\n    return _gt(0, params);\n}\n// negative\nexport function _negative(params) {\n    return _lt(0, params);\n}\n// nonpositive\nexport function _nonpositive(params) {\n    return _lte(0, params);\n}\n// nonnegative\nexport function _nonnegative(params) {\n    return _gte(0, params);\n}\nexport function _multipleOf(value, params) {\n    return new checks.$ZodCheckMultipleOf({\n        check: \"multiple_of\",\n        ...util.normalizeParams(params),\n        value,\n    });\n}\nexport function _maxSize(maximum, params) {\n    return new checks.$ZodCheckMaxSize({\n        check: \"max_size\",\n        ...util.normalizeParams(params),\n        maximum,\n    });\n}\nexport function _minSize(minimum, params) {\n    return new checks.$ZodCheckMinSize({\n        check: \"min_size\",\n        ...util.normalizeParams(params),\n        minimum,\n    });\n}\nexport function _size(size, params) {\n    return new checks.$ZodCheckSizeEquals({\n        check: \"size_equals\",\n        ...util.normalizeParams(params),\n        size,\n    });\n}\nexport function _maxLength(maximum, params) {\n    const ch = new checks.$ZodCheckMaxLength({\n        check: \"max_length\",\n        ...util.normalizeParams(params),\n        maximum,\n    });\n    return ch;\n}\nexport function _minLength(minimum, params) {\n    return new checks.$ZodCheckMinLength({\n        check: \"min_length\",\n        ...util.normalizeParams(params),\n        minimum,\n    });\n}\nexport function _length(length, params) {\n    return new checks.$ZodCheckLengthEquals({\n        check: \"length_equals\",\n        ...util.normalizeParams(params),\n        length,\n    });\n}\nexport function _regex(pattern, params) {\n    return new checks.$ZodCheckRegex({\n        check: \"string_format\",\n        format: \"regex\",\n        ...util.normalizeParams(params),\n        pattern,\n    });\n}\nexport function _lowercase(params) {\n    return new checks.$ZodCheckLowerCase({\n        check: \"string_format\",\n        format: \"lowercase\",\n        ...util.normalizeParams(params),\n    });\n}\nexport function _uppercase(params) {\n    return new checks.$ZodCheckUpperCase({\n        check: \"string_format\",\n        format: \"uppercase\",\n        ...util.normalizeParams(params),\n    });\n}\nexport function _includes(includes, params) {\n    return new checks.$ZodCheckIncludes({\n        check: \"string_format\",\n        format: \"includes\",\n        ...util.normalizeParams(params),\n        includes,\n    });\n}\nexport function _startsWith(prefix, params) {\n    return new checks.$ZodCheckStartsWith({\n        check: \"string_format\",\n        format: \"starts_with\",\n        ...util.normalizeParams(params),\n        prefix,\n    });\n}\nexport function _endsWith(suffix, params) {\n    return new checks.$ZodCheckEndsWith({\n        check: \"string_format\",\n        format: \"ends_with\",\n        ...util.normalizeParams(params),\n        suffix,\n    });\n}\nexport function _property(property, schema, params) {\n    return new checks.$ZodCheckProperty({\n        check: \"property\",\n        property,\n        schema,\n        ...util.normalizeParams(params),\n    });\n}\nexport function _mime(types, params) {\n    return new checks.$ZodCheckMimeType({\n        check: \"mime_type\",\n        mime: types,\n        ...util.normalizeParams(params),\n    });\n}\nexport function _overwrite(tx) {\n    return new checks.$ZodCheckOverwrite({\n        check: \"overwrite\",\n        tx,\n    });\n}\n// normalize\nexport function _normalize(form) {\n    return _overwrite((input) => input.normalize(form));\n}\n// trim\nexport function _trim() {\n    return _overwrite((input) => input.trim());\n}\n// toLowerCase\nexport function _toLowerCase() {\n    return _overwrite((input) => input.toLowerCase());\n}\n// toUpperCase\nexport function _toUpperCase() {\n    return _overwrite((input) => input.toUpperCase());\n}\nexport function _array(Class, element, params) {\n    return new Class({\n        type: \"array\",\n        element,\n        // get element() {\n        //   return element;\n        // },\n        ...util.normalizeParams(params),\n    });\n}\nexport function _union(Class, options, params) {\n    return new Class({\n        type: \"union\",\n        options,\n        ...util.normalizeParams(params),\n    });\n}\nexport function _discriminatedUnion(Class, discriminator, options, params) {\n    return new Class({\n        type: \"union\",\n        options,\n        discriminator,\n        ...util.normalizeParams(params),\n    });\n}\nexport function _intersection(Class, left, right) {\n    return new Class({\n        type: \"intersection\",\n        left,\n        right,\n    });\n}\n// export function _tuple(\n//   Class: util.SchemaClass<schemas.$ZodTuple>,\n//   items: [],\n//   params?: string | $ZodTupleParams\n// ): schemas.$ZodTuple<[], null>;\nexport function _tuple(Class, items, _paramsOrRest, _params) {\n    const hasRest = _paramsOrRest instanceof schemas.$ZodType;\n    const params = hasRest ? _params : _paramsOrRest;\n    const rest = hasRest ? _paramsOrRest : null;\n    return new Class({\n        type: \"tuple\",\n        items,\n        rest,\n        ...util.normalizeParams(params),\n    });\n}\nexport function _record(Class, keyType, valueType, params) {\n    return new Class({\n        type: \"record\",\n        keyType,\n        valueType,\n        ...util.normalizeParams(params),\n    });\n}\nexport function _map(Class, keyType, valueType, params) {\n    return new Class({\n        type: \"map\",\n        keyType,\n        valueType,\n        ...util.normalizeParams(params),\n    });\n}\nexport function _set(Class, valueType, params) {\n    return new Class({\n        type: \"set\",\n        valueType,\n        ...util.normalizeParams(params),\n    });\n}\nexport function _enum(Class, values, params) {\n    const entries = Array.isArray(values) ? Object.fromEntries(values.map((v) => [v, v])) : values;\n    // if (Array.isArray(values)) {\n    //   for (const value of values) {\n    //     entries[value] = value;\n    //   }\n    // } else {\n    //   Object.assign(entries, values);\n    // }\n    // const entries: util.EnumLike = {};\n    // for (const val of values) {\n    //   entries[val] = val;\n    // }\n    return new Class({\n        type: \"enum\",\n        entries,\n        ...util.normalizeParams(params),\n    });\n}\n/** @deprecated This API has been merged into `z.enum()`. Use `z.enum()` instead.\n *\n * ```ts\n * enum Colors { red, green, blue }\n * z.enum(Colors);\n * ```\n */\nexport function _nativeEnum(Class, entries, params) {\n    return new Class({\n        type: \"enum\",\n        entries,\n        ...util.normalizeParams(params),\n    });\n}\nexport function _literal(Class, value, params) {\n    return new Class({\n        type: \"literal\",\n        values: Array.isArray(value) ? value : [value],\n        ...util.normalizeParams(params),\n    });\n}\nexport function _file(Class, params) {\n    return new Class({\n        type: \"file\",\n        ...util.normalizeParams(params),\n    });\n}\nexport function _transform(Class, fn) {\n    return new Class({\n        type: \"transform\",\n        transform: fn,\n    });\n}\nexport function _optional(Class, innerType) {\n    return new Class({\n        type: \"optional\",\n        innerType,\n    });\n}\nexport function _nullable(Class, innerType) {\n    return new Class({\n        type: \"nullable\",\n        innerType,\n    });\n}\nexport function _default(Class, innerType, defaultValue) {\n    return new Class({\n        type: \"default\",\n        innerType,\n        get defaultValue() {\n            return typeof defaultValue === \"function\" ? defaultValue() : defaultValue;\n        },\n    });\n}\nexport function _nonoptional(Class, innerType, params) {\n    return new Class({\n        type: \"nonoptional\",\n        innerType,\n        ...util.normalizeParams(params),\n    });\n}\nexport function _success(Class, innerType) {\n    return new Class({\n        type: \"success\",\n        innerType,\n    });\n}\nexport function _catch(Class, innerType, catchValue) {\n    return new Class({\n        type: \"catch\",\n        innerType,\n        catchValue: (typeof catchValue === \"function\" ? catchValue : () => catchValue),\n    });\n}\nexport function _pipe(Class, in_, out) {\n    return new Class({\n        type: \"pipe\",\n        in: in_,\n        out,\n    });\n}\nexport function _readonly(Class, innerType) {\n    return new Class({\n        type: \"readonly\",\n        innerType,\n    });\n}\nexport function _templateLiteral(Class, parts, params) {\n    return new Class({\n        type: \"template_literal\",\n        parts,\n        ...util.normalizeParams(params),\n    });\n}\nexport function _lazy(Class, getter) {\n    return new Class({\n        type: \"lazy\",\n        getter,\n    });\n}\nexport function _promise(Class, innerType) {\n    return new Class({\n        type: \"promise\",\n        innerType,\n    });\n}\nexport function _custom(Class, fn, _params) {\n    const norm = util.normalizeParams(_params);\n    norm.abort ?? (norm.abort = true); // default to abort:false\n    const schema = new Class({\n        type: \"custom\",\n        check: \"custom\",\n        fn: fn,\n        ...norm,\n    });\n    return schema;\n}\n// export function _refine<T>(\n//   Class: util.SchemaClass<schemas.$ZodCustom>,\n//   fn: (arg: NoInfer<T>) => util.MaybeAsync<unknown>,\n//   _params: string | $ZodCustomParams = {}\n// ): checks.$ZodCheck<T> {\n//   return _custom(Class, fn, _params);\n// }\n// same as _custom but defaults to abort:false\nexport function _refine(Class, fn, _params) {\n    const schema = new Class({\n        type: \"custom\",\n        check: \"custom\",\n        fn: fn,\n        ...util.normalizeParams(_params),\n    });\n    return schema;\n}\nexport function _stringbool(Classes, _params) {\n    const { case: _case, error, truthy, falsy } = util.normalizeParams(_params);\n    let truthyArray = truthy ?? [\"true\", \"1\", \"yes\", \"on\", \"y\", \"enabled\"];\n    let falsyArray = falsy ?? [\"false\", \"0\", \"no\", \"off\", \"n\", \"disabled\"];\n    if (_case !== \"sensitive\") {\n        truthyArray = truthyArray.map((v) => (typeof v === \"string\" ? v.toLowerCase() : v));\n        falsyArray = falsyArray.map((v) => (typeof v === \"string\" ? v.toLowerCase() : v));\n    }\n    const truthySet = new Set(truthyArray);\n    const falsySet = new Set(falsyArray);\n    const _Pipe = Classes.Pipe ?? schemas.$ZodPipe;\n    const _Boolean = Classes.Boolean ?? schemas.$ZodBoolean;\n    const _String = Classes.String ?? schemas.$ZodString;\n    const _Transform = Classes.Transform ?? schemas.$ZodTransform;\n    const tx = new _Transform({\n        type: \"transform\",\n        transform: (input, payload) => {\n            let data = input;\n            if (_case !== \"sensitive\")\n                data = data.toLowerCase();\n            if (truthySet.has(data)) {\n                return true;\n            }\n            else if (falsySet.has(data)) {\n                return false;\n            }\n            else {\n                payload.issues.push({\n                    code: \"invalid_value\",\n                    expected: \"stringbool\",\n                    values: [...truthySet, ...falsySet],\n                    input: payload.value,\n                    inst: tx,\n                });\n                return {};\n            }\n        },\n        error,\n    });\n    const innerPipe = new _Pipe({\n        type: \"pipe\",\n        in: new _String({ type: \"string\", error }),\n        out: tx,\n        error,\n    });\n    const outerPipe = new _Pipe({\n        type: \"pipe\",\n        in: innerPipe,\n        out: new _Boolean({\n            type: \"boolean\",\n            error,\n        }),\n        error,\n    });\n    return outerPipe;\n}\n","import * as core from \"zod/v4/core\";\nimport * as schemas from \"./schemas.js\";\nexport const ZodISODateTime = /*@__PURE__*/ core.$constructor(\"ZodISODateTime\", (inst, def) => {\n    core.$ZodISODateTime.init(inst, def);\n    schemas.ZodStringFormat.init(inst, def);\n});\nexport function datetime(params) {\n    return core._isoDateTime(ZodISODateTime, params);\n}\nexport const ZodISODate = /*@__PURE__*/ core.$constructor(\"ZodISODate\", (inst, def) => {\n    core.$ZodISODate.init(inst, def);\n    schemas.ZodStringFormat.init(inst, def);\n});\nexport function date(params) {\n    return core._isoDate(ZodISODate, params);\n}\nexport const ZodISOTime = /*@__PURE__*/ core.$constructor(\"ZodISOTime\", (inst, def) => {\n    core.$ZodISOTime.init(inst, def);\n    schemas.ZodStringFormat.init(inst, def);\n});\nexport function time(params) {\n    return core._isoTime(ZodISOTime, params);\n}\nexport const ZodISODuration = /*@__PURE__*/ core.$constructor(\"ZodISODuration\", (inst, def) => {\n    core.$ZodISODuration.init(inst, def);\n    schemas.ZodStringFormat.init(inst, def);\n});\nexport function duration(params) {\n    return core._isoDuration(ZodISODuration, params);\n}\n","import * as core from \"zod/v4/core\";\nimport { $ZodError } from \"zod/v4/core\";\nconst initializer = (inst, issues) => {\n    $ZodError.init(inst, issues);\n    inst.name = \"ZodError\";\n    Object.defineProperties(inst, {\n        format: {\n            value: (mapper) => core.formatError(inst, mapper),\n            // enumerable: false,\n        },\n        flatten: {\n            value: (mapper) => core.flattenError(inst, mapper),\n            // enumerable: false,\n        },\n        addIssue: {\n            value: (issue) => inst.issues.push(issue),\n            // enumerable: false,\n        },\n        addIssues: {\n            value: (issues) => inst.issues.push(...issues),\n            // enumerable: false,\n        },\n        isEmpty: {\n            get() {\n                return inst.issues.length === 0;\n            },\n            // enumerable: false,\n        },\n    });\n    // Object.defineProperty(inst, \"isEmpty\", {\n    //   get() {\n    //     return inst.issues.length === 0;\n    //   },\n    // });\n};\nexport const ZodError = core.$constructor(\"ZodError\", initializer);\nexport const ZodRealError = core.$constructor(\"ZodError\", initializer, {\n    Parent: Error,\n});\n// /** @deprecated Use `z.core.$ZodErrorMapCtx` instead. */\n// export type ErrorMapCtx = core.$ZodErrorMapCtx;\n","import * as core from \"zod/v4/core\";\nimport { ZodRealError } from \"./errors.js\";\nexport const parse = /* @__PURE__ */ core._parse(ZodRealError);\nexport const parseAsync = /* @__PURE__ */ core._parseAsync(ZodRealError);\nexport const safeParse = /* @__PURE__ */ core._safeParse(ZodRealError);\nexport const safeParseAsync = /* @__PURE__ */ core._safeParseAsync(ZodRealError);\n","import * as core from \"zod/v4/core\";\nimport { util } from \"zod/v4/core\";\nimport * as checks from \"./checks.js\";\nimport * as iso from \"./iso.js\";\nimport * as parse from \"./parse.js\";\nexport const ZodType = /*@__PURE__*/ core.$constructor(\"ZodType\", (inst, def) => {\n    core.$ZodType.init(inst, def);\n    inst.def = def;\n    Object.defineProperty(inst, \"_def\", { value: def });\n    // base methods\n    inst.check = (...checks) => {\n        return inst.clone({\n            ...def,\n            checks: [\n                ...(def.checks ?? []),\n                ...checks.map((ch) => typeof ch === \"function\" ? { _zod: { check: ch, def: { check: \"custom\" }, onattach: [] } } : ch),\n            ],\n        }\n        // { parent: true }\n        );\n    };\n    inst.clone = (def, params) => core.clone(inst, def, params);\n    inst.brand = () => inst;\n    inst.register = ((reg, meta) => {\n        reg.add(inst, meta);\n        return inst;\n    });\n    // parsing\n    inst.parse = (data, params) => parse.parse(inst, data, params, { callee: inst.parse });\n    inst.safeParse = (data, params) => parse.safeParse(inst, data, params);\n    inst.parseAsync = async (data, params) => parse.parseAsync(inst, data, params, { callee: inst.parseAsync });\n    inst.safeParseAsync = async (data, params) => parse.safeParseAsync(inst, data, params);\n    inst.spa = inst.safeParseAsync;\n    // refinements\n    inst.refine = (check, params) => inst.check(refine(check, params));\n    inst.superRefine = (refinement) => inst.check(superRefine(refinement));\n    inst.overwrite = (fn) => inst.check(checks.overwrite(fn));\n    // wrappers\n    inst.optional = () => optional(inst);\n    inst.nullable = () => nullable(inst);\n    inst.nullish = () => optional(nullable(inst));\n    inst.nonoptional = (params) => nonoptional(inst, params);\n    inst.array = () => array(inst);\n    inst.or = (arg) => union([inst, arg]);\n    inst.and = (arg) => intersection(inst, arg);\n    inst.transform = (tx) => pipe(inst, transform(tx));\n    inst.default = (def) => _default(inst, def);\n    inst.prefault = (def) => prefault(inst, def);\n    // inst.coalesce = (def, params) => coalesce(inst, def, params);\n    inst.catch = (params) => _catch(inst, params);\n    inst.pipe = (target) => pipe(inst, target);\n    inst.readonly = () => readonly(inst);\n    // meta\n    inst.describe = (description) => {\n        const cl = inst.clone();\n        core.globalRegistry.add(cl, { description });\n        return cl;\n    };\n    Object.defineProperty(inst, \"description\", {\n        get() {\n            return core.globalRegistry.get(inst)?.description;\n        },\n        configurable: true,\n    });\n    inst.meta = (...args) => {\n        if (args.length === 0) {\n            return core.globalRegistry.get(inst);\n        }\n        const cl = inst.clone();\n        core.globalRegistry.add(cl, args[0]);\n        return cl;\n    };\n    // helpers\n    inst.isOptional = () => inst.safeParse(undefined).success;\n    inst.isNullable = () => inst.safeParse(null).success;\n    return inst;\n});\n/** @internal */\nexport const _ZodString = /*@__PURE__*/ core.$constructor(\"_ZodString\", (inst, def) => {\n    core.$ZodString.init(inst, def);\n    ZodType.init(inst, def);\n    const bag = inst._zod.bag;\n    inst.format = bag.format ?? null;\n    inst.minLength = bag.minimum ?? null;\n    inst.maxLength = bag.maximum ?? null;\n    // validations\n    inst.regex = (...args) => inst.check(checks.regex(...args));\n    inst.includes = (...args) => inst.check(checks.includes(...args));\n    inst.startsWith = (...args) => inst.check(checks.startsWith(...args));\n    inst.endsWith = (...args) => inst.check(checks.endsWith(...args));\n    inst.min = (...args) => inst.check(checks.minLength(...args));\n    inst.max = (...args) => inst.check(checks.maxLength(...args));\n    inst.length = (...args) => inst.check(checks.length(...args));\n    inst.nonempty = (...args) => inst.check(checks.minLength(1, ...args));\n    inst.lowercase = (params) => inst.check(checks.lowercase(params));\n    inst.uppercase = (params) => inst.check(checks.uppercase(params));\n    // transforms\n    inst.trim = () => inst.check(checks.trim());\n    inst.normalize = (...args) => inst.check(checks.normalize(...args));\n    inst.toLowerCase = () => inst.check(checks.toLowerCase());\n    inst.toUpperCase = () => inst.check(checks.toUpperCase());\n});\nexport const ZodString = /*@__PURE__*/ core.$constructor(\"ZodString\", (inst, def) => {\n    core.$ZodString.init(inst, def);\n    _ZodString.init(inst, def);\n    inst.email = (params) => inst.check(core._email(ZodEmail, params));\n    inst.url = (params) => inst.check(core._url(ZodURL, params));\n    inst.jwt = (params) => inst.check(core._jwt(ZodJWT, params));\n    inst.emoji = (params) => inst.check(core._emoji(ZodEmoji, params));\n    inst.guid = (params) => inst.check(core._guid(ZodGUID, params));\n    inst.uuid = (params) => inst.check(core._uuid(ZodUUID, params));\n    inst.uuidv4 = (params) => inst.check(core._uuidv4(ZodUUID, params));\n    inst.uuidv6 = (params) => inst.check(core._uuidv6(ZodUUID, params));\n    inst.uuidv7 = (params) => inst.check(core._uuidv7(ZodUUID, params));\n    inst.nanoid = (params) => inst.check(core._nanoid(ZodNanoID, params));\n    inst.guid = (params) => inst.check(core._guid(ZodGUID, params));\n    inst.cuid = (params) => inst.check(core._cuid(ZodCUID, params));\n    inst.cuid2 = (params) => inst.check(core._cuid2(ZodCUID2, params));\n    inst.ulid = (params) => inst.check(core._ulid(ZodULID, params));\n    inst.base64 = (params) => inst.check(core._base64(ZodBase64, params));\n    inst.base64url = (params) => inst.check(core._base64url(ZodBase64URL, params));\n    inst.xid = (params) => inst.check(core._xid(ZodXID, params));\n    inst.ksuid = (params) => inst.check(core._ksuid(ZodKSUID, params));\n    inst.ipv4 = (params) => inst.check(core._ipv4(ZodIPv4, params));\n    inst.ipv6 = (params) => inst.check(core._ipv6(ZodIPv6, params));\n    inst.cidrv4 = (params) => inst.check(core._cidrv4(ZodCIDRv4, params));\n    inst.cidrv6 = (params) => inst.check(core._cidrv6(ZodCIDRv6, params));\n    inst.e164 = (params) => inst.check(core._e164(ZodE164, params));\n    // iso\n    inst.datetime = (params) => inst.check(iso.datetime(params));\n    inst.date = (params) => inst.check(iso.date(params));\n    inst.time = (params) => inst.check(iso.time(params));\n    inst.duration = (params) => inst.check(iso.duration(params));\n});\nexport function string(params) {\n    return core._string(ZodString, params);\n}\nexport const ZodStringFormat = /*@__PURE__*/ core.$constructor(\"ZodStringFormat\", (inst, def) => {\n    core.$ZodStringFormat.init(inst, def);\n    _ZodString.init(inst, def);\n});\nexport const ZodEmail = /*@__PURE__*/ core.$constructor(\"ZodEmail\", (inst, def) => {\n    // ZodStringFormat.init(inst, def);\n    core.$ZodEmail.init(inst, def);\n    ZodStringFormat.init(inst, def);\n});\nexport function email(params) {\n    return core._email(ZodEmail, params);\n}\nexport const ZodGUID = /*@__PURE__*/ core.$constructor(\"ZodGUID\", (inst, def) => {\n    // ZodStringFormat.init(inst, def);\n    core.$ZodGUID.init(inst, def);\n    ZodStringFormat.init(inst, def);\n});\nexport function guid(params) {\n    return core._guid(ZodGUID, params);\n}\nexport const ZodUUID = /*@__PURE__*/ core.$constructor(\"ZodUUID\", (inst, def) => {\n    // ZodStringFormat.init(inst, def);\n    core.$ZodUUID.init(inst, def);\n    ZodStringFormat.init(inst, def);\n});\nexport function uuid(params) {\n    return core._uuid(ZodUUID, params);\n}\nexport function uuidv4(params) {\n    return core._uuidv4(ZodUUID, params);\n}\n// ZodUUIDv6\nexport function uuidv6(params) {\n    return core._uuidv6(ZodUUID, params);\n}\n// ZodUUIDv7\nexport function uuidv7(params) {\n    return core._uuidv7(ZodUUID, params);\n}\nexport const ZodURL = /*@__PURE__*/ core.$constructor(\"ZodURL\", (inst, def) => {\n    // ZodStringFormat.init(inst, def);\n    core.$ZodURL.init(inst, def);\n    ZodStringFormat.init(inst, def);\n});\nexport function url(params) {\n    return core._url(ZodURL, params);\n}\nexport const ZodEmoji = /*@__PURE__*/ core.$constructor(\"ZodEmoji\", (inst, def) => {\n    // ZodStringFormat.init(inst, def);\n    core.$ZodEmoji.init(inst, def);\n    ZodStringFormat.init(inst, def);\n});\nexport function emoji(params) {\n    return core._emoji(ZodEmoji, params);\n}\nexport const ZodNanoID = /*@__PURE__*/ core.$constructor(\"ZodNanoID\", (inst, def) => {\n    // ZodStringFormat.init(inst, def);\n    core.$ZodNanoID.init(inst, def);\n    ZodStringFormat.init(inst, def);\n});\nexport function nanoid(params) {\n    return core._nanoid(ZodNanoID, params);\n}\nexport const ZodCUID = /*@__PURE__*/ core.$constructor(\"ZodCUID\", (inst, def) => {\n    // ZodStringFormat.init(inst, def);\n    core.$ZodCUID.init(inst, def);\n    ZodStringFormat.init(inst, def);\n});\nexport function cuid(params) {\n    return core._cuid(ZodCUID, params);\n}\nexport const ZodCUID2 = /*@__PURE__*/ core.$constructor(\"ZodCUID2\", (inst, def) => {\n    // ZodStringFormat.init(inst, def);\n    core.$ZodCUID2.init(inst, def);\n    ZodStringFormat.init(inst, def);\n});\nexport function cuid2(params) {\n    return core._cuid2(ZodCUID2, params);\n}\nexport const ZodULID = /*@__PURE__*/ core.$constructor(\"ZodULID\", (inst, def) => {\n    // ZodStringFormat.init(inst, def);\n    core.$ZodULID.init(inst, def);\n    ZodStringFormat.init(inst, def);\n});\nexport function ulid(params) {\n    return core._ulid(ZodULID, params);\n}\nexport const ZodXID = /*@__PURE__*/ core.$constructor(\"ZodXID\", (inst, def) => {\n    // ZodStringFormat.init(inst, def);\n    core.$ZodXID.init(inst, def);\n    ZodStringFormat.init(inst, def);\n});\nexport function xid(params) {\n    return core._xid(ZodXID, params);\n}\nexport const ZodKSUID = /*@__PURE__*/ core.$constructor(\"ZodKSUID\", (inst, def) => {\n    // ZodStringFormat.init(inst, def);\n    core.$ZodKSUID.init(inst, def);\n    ZodStringFormat.init(inst, def);\n});\nexport function ksuid(params) {\n    return core._ksuid(ZodKSUID, params);\n}\nexport const ZodIPv4 = /*@__PURE__*/ core.$constructor(\"ZodIPv4\", (inst, def) => {\n    // ZodStringFormat.init(inst, def);\n    core.$ZodIPv4.init(inst, def);\n    ZodStringFormat.init(inst, def);\n});\nexport function ipv4(params) {\n    return core._ipv4(ZodIPv4, params);\n}\nexport const ZodIPv6 = /*@__PURE__*/ core.$constructor(\"ZodIPv6\", (inst, def) => {\n    // ZodStringFormat.init(inst, def);\n    core.$ZodIPv6.init(inst, def);\n    ZodStringFormat.init(inst, def);\n});\nexport function ipv6(params) {\n    return core._ipv6(ZodIPv6, params);\n}\nexport const ZodCIDRv4 = /*@__PURE__*/ core.$constructor(\"ZodCIDRv4\", (inst, def) => {\n    core.$ZodCIDRv4.init(inst, def);\n    ZodStringFormat.init(inst, def);\n});\nexport function cidrv4(params) {\n    return core._cidrv4(ZodCIDRv4, params);\n}\nexport const ZodCIDRv6 = /*@__PURE__*/ core.$constructor(\"ZodCIDRv6\", (inst, def) => {\n    core.$ZodCIDRv6.init(inst, def);\n    ZodStringFormat.init(inst, def);\n});\nexport function cidrv6(params) {\n    return core._cidrv6(ZodCIDRv6, params);\n}\nexport const ZodBase64 = /*@__PURE__*/ core.$constructor(\"ZodBase64\", (inst, def) => {\n    // ZodStringFormat.init(inst, def);\n    core.$ZodBase64.init(inst, def);\n    ZodStringFormat.init(inst, def);\n});\nexport function base64(params) {\n    return core._base64(ZodBase64, params);\n}\nexport const ZodBase64URL = /*@__PURE__*/ core.$constructor(\"ZodBase64URL\", (inst, def) => {\n    // ZodStringFormat.init(inst, def);\n    core.$ZodBase64URL.init(inst, def);\n    ZodStringFormat.init(inst, def);\n});\nexport function base64url(params) {\n    return core._base64url(ZodBase64URL, params);\n}\nexport const ZodE164 = /*@__PURE__*/ core.$constructor(\"ZodE164\", (inst, def) => {\n    // ZodStringFormat.init(inst, def);\n    core.$ZodE164.init(inst, def);\n    ZodStringFormat.init(inst, def);\n});\nexport function e164(params) {\n    return core._e164(ZodE164, params);\n}\nexport const ZodJWT = /*@__PURE__*/ core.$constructor(\"ZodJWT\", (inst, def) => {\n    // ZodStringFormat.init(inst, def);\n    core.$ZodJWT.init(inst, def);\n    ZodStringFormat.init(inst, def);\n});\nexport function jwt(params) {\n    return core._jwt(ZodJWT, params);\n}\nexport const ZodNumber = /*@__PURE__*/ core.$constructor(\"ZodNumber\", (inst, def) => {\n    core.$ZodNumber.init(inst, def);\n    ZodType.init(inst, def);\n    inst.gt = (value, params) => inst.check(checks.gt(value, params));\n    inst.gte = (value, params) => inst.check(checks.gte(value, params));\n    inst.min = (value, params) => inst.check(checks.gte(value, params));\n    inst.lt = (value, params) => inst.check(checks.lt(value, params));\n    inst.lte = (value, params) => inst.check(checks.lte(value, params));\n    inst.max = (value, params) => inst.check(checks.lte(value, params));\n    inst.int = (params) => inst.check(int(params));\n    inst.safe = (params) => inst.check(int(params));\n    inst.positive = (params) => inst.check(checks.gt(0, params));\n    inst.nonnegative = (params) => inst.check(checks.gte(0, params));\n    inst.negative = (params) => inst.check(checks.lt(0, params));\n    inst.nonpositive = (params) => inst.check(checks.lte(0, params));\n    inst.multipleOf = (value, params) => inst.check(checks.multipleOf(value, params));\n    inst.step = (value, params) => inst.check(checks.multipleOf(value, params));\n    // inst.finite = (params) => inst.check(core.finite(params));\n    inst.finite = () => inst;\n    const bag = inst._zod.bag;\n    inst.minValue =\n        Math.max(bag.minimum ?? Number.NEGATIVE_INFINITY, bag.exclusiveMinimum ?? Number.NEGATIVE_INFINITY) ?? null;\n    inst.maxValue =\n        Math.min(bag.maximum ?? Number.POSITIVE_INFINITY, bag.exclusiveMaximum ?? Number.POSITIVE_INFINITY) ?? null;\n    inst.isInt = (bag.format ?? \"\").includes(\"int\") || Number.isSafeInteger(bag.multipleOf ?? 0.5);\n    inst.isFinite = true;\n    inst.format = bag.format ?? null;\n});\nexport function number(params) {\n    return core._number(ZodNumber, params);\n}\nexport const ZodNumberFormat = /*@__PURE__*/ core.$constructor(\"ZodNumberFormat\", (inst, def) => {\n    core.$ZodNumberFormat.init(inst, def);\n    ZodNumber.init(inst, def);\n});\nexport function int(params) {\n    return core._int(ZodNumberFormat, params);\n}\nexport function float32(params) {\n    return core._float32(ZodNumberFormat, params);\n}\nexport function float64(params) {\n    return core._float64(ZodNumberFormat, params);\n}\nexport function int32(params) {\n    return core._int32(ZodNumberFormat, params);\n}\nexport function uint32(params) {\n    return core._uint32(ZodNumberFormat, params);\n}\nexport const ZodBoolean = /*@__PURE__*/ core.$constructor(\"ZodBoolean\", (inst, def) => {\n    core.$ZodBoolean.init(inst, def);\n    ZodType.init(inst, def);\n});\nexport function boolean(params) {\n    return core._boolean(ZodBoolean, params);\n}\nexport const ZodBigInt = /*@__PURE__*/ core.$constructor(\"ZodBigInt\", (inst, def) => {\n    core.$ZodBigInt.init(inst, def);\n    ZodType.init(inst, def);\n    inst.gte = (value, params) => inst.check(checks.gte(value, params));\n    inst.min = (value, params) => inst.check(checks.gte(value, params));\n    inst.gt = (value, params) => inst.check(checks.gt(value, params));\n    inst.gte = (value, params) => inst.check(checks.gte(value, params));\n    inst.min = (value, params) => inst.check(checks.gte(value, params));\n    inst.lt = (value, params) => inst.check(checks.lt(value, params));\n    inst.lte = (value, params) => inst.check(checks.lte(value, params));\n    inst.max = (value, params) => inst.check(checks.lte(value, params));\n    inst.positive = (params) => inst.check(checks.gt(BigInt(0), params));\n    inst.negative = (params) => inst.check(checks.lt(BigInt(0), params));\n    inst.nonpositive = (params) => inst.check(checks.lte(BigInt(0), params));\n    inst.nonnegative = (params) => inst.check(checks.gte(BigInt(0), params));\n    inst.multipleOf = (value, params) => inst.check(checks.multipleOf(value, params));\n    const bag = inst._zod.bag;\n    inst.minValue = bag.minimum ?? null;\n    inst.maxValue = bag.maximum ?? null;\n    inst.format = bag.format ?? null;\n});\nexport function bigint(params) {\n    return core._bigint(ZodBigInt, params);\n}\nexport const ZodBigIntFormat = /*@__PURE__*/ core.$constructor(\"ZodBigIntFormat\", (inst, def) => {\n    core.$ZodBigIntFormat.init(inst, def);\n    ZodBigInt.init(inst, def);\n});\n// int64\nexport function int64(params) {\n    return core._int64(ZodBigIntFormat, params);\n}\n// uint64\nexport function uint64(params) {\n    return core._uint64(ZodBigIntFormat, params);\n}\nexport const ZodSymbol = /*@__PURE__*/ core.$constructor(\"ZodSymbol\", (inst, def) => {\n    core.$ZodSymbol.init(inst, def);\n    ZodType.init(inst, def);\n});\nexport function symbol(params) {\n    return core._symbol(ZodSymbol, params);\n}\nexport const ZodUndefined = /*@__PURE__*/ core.$constructor(\"ZodUndefined\", (inst, def) => {\n    core.$ZodUndefined.init(inst, def);\n    ZodType.init(inst, def);\n});\nfunction _undefined(params) {\n    return core._undefined(ZodUndefined, params);\n}\nexport { _undefined as undefined };\nexport const ZodNull = /*@__PURE__*/ core.$constructor(\"ZodNull\", (inst, def) => {\n    core.$ZodNull.init(inst, def);\n    ZodType.init(inst, def);\n});\nfunction _null(params) {\n    return core._null(ZodNull, params);\n}\nexport { _null as null };\nexport const ZodAny = /*@__PURE__*/ core.$constructor(\"ZodAny\", (inst, def) => {\n    core.$ZodAny.init(inst, def);\n    ZodType.init(inst, def);\n});\nexport function any() {\n    return core._any(ZodAny);\n}\nexport const ZodUnknown = /*@__PURE__*/ core.$constructor(\"ZodUnknown\", (inst, def) => {\n    core.$ZodUnknown.init(inst, def);\n    ZodType.init(inst, def);\n});\nexport function unknown() {\n    return core._unknown(ZodUnknown);\n}\nexport const ZodNever = /*@__PURE__*/ core.$constructor(\"ZodNever\", (inst, def) => {\n    core.$ZodNever.init(inst, def);\n    ZodType.init(inst, def);\n});\nexport function never(params) {\n    return core._never(ZodNever, params);\n}\nexport const ZodVoid = /*@__PURE__*/ core.$constructor(\"ZodVoid\", (inst, def) => {\n    core.$ZodVoid.init(inst, def);\n    ZodType.init(inst, def);\n});\nfunction _void(params) {\n    return core._void(ZodVoid, params);\n}\nexport { _void as void };\nexport const ZodDate = /*@__PURE__*/ core.$constructor(\"ZodDate\", (inst, def) => {\n    core.$ZodDate.init(inst, def);\n    ZodType.init(inst, def);\n    inst.min = (value, params) => inst.check(checks.gte(value, params));\n    inst.max = (value, params) => inst.check(checks.lte(value, params));\n    const c = inst._zod.bag;\n    inst.minDate = c.minimum ? new Date(c.minimum) : null;\n    inst.maxDate = c.maximum ? new Date(c.maximum) : null;\n});\nexport function date(params) {\n    return core._date(ZodDate, params);\n}\nexport const ZodArray = /*@__PURE__*/ core.$constructor(\"ZodArray\", (inst, def) => {\n    core.$ZodArray.init(inst, def);\n    ZodType.init(inst, def);\n    inst.element = def.element;\n    inst.min = (minLength, params) => inst.check(checks.minLength(minLength, params));\n    inst.nonempty = (params) => inst.check(checks.minLength(1, params));\n    inst.max = (maxLength, params) => inst.check(checks.maxLength(maxLength, params));\n    inst.length = (len, params) => inst.check(checks.length(len, params));\n    inst.unwrap = () => inst.element;\n});\nexport function array(element, params) {\n    return core._array(ZodArray, element, params);\n}\n// .keyof\nexport function keyof(schema) {\n    const shape = schema._zod.def.shape;\n    return literal(Object.keys(shape));\n}\nexport const ZodObject = /*@__PURE__*/ core.$constructor(\"ZodObject\", (inst, def) => {\n    core.$ZodObject.init(inst, def);\n    ZodType.init(inst, def);\n    util.defineLazy(inst, \"shape\", () => def.shape);\n    inst.keyof = () => _enum(Object.keys(inst._zod.def.shape));\n    inst.catchall = (catchall) => inst.clone({ ...inst._zod.def, catchall: catchall });\n    inst.passthrough = () => inst.clone({ ...inst._zod.def, catchall: unknown() });\n    // inst.nonstrict = () => inst.clone({ ...inst._zod.def, catchall: api.unknown() });\n    inst.loose = () => inst.clone({ ...inst._zod.def, catchall: unknown() });\n    inst.strict = () => inst.clone({ ...inst._zod.def, catchall: never() });\n    inst.strip = () => inst.clone({ ...inst._zod.def, catchall: undefined });\n    inst.extend = (incoming) => {\n        return util.extend(inst, incoming);\n    };\n    inst.merge = (other) => util.merge(inst, other);\n    inst.pick = (mask) => util.pick(inst, mask);\n    inst.omit = (mask) => util.omit(inst, mask);\n    inst.partial = (...args) => util.partial(ZodOptional, inst, args[0]);\n    inst.required = (...args) => util.required(ZodNonOptional, inst, args[0]);\n});\nexport function object(shape, params) {\n    const def = {\n        type: \"object\",\n        get shape() {\n            util.assignProp(this, \"shape\", { ...shape });\n            return this.shape;\n        },\n        ...util.normalizeParams(params),\n    };\n    return new ZodObject(def);\n}\n// strictObject\nexport function strictObject(shape, params) {\n    return new ZodObject({\n        type: \"object\",\n        get shape() {\n            util.assignProp(this, \"shape\", { ...shape });\n            return this.shape;\n        },\n        catchall: never(),\n        ...util.normalizeParams(params),\n    });\n}\n// looseObject\nexport function looseObject(shape, params) {\n    return new ZodObject({\n        type: \"object\",\n        get shape() {\n            util.assignProp(this, \"shape\", { ...shape });\n            return this.shape;\n        },\n        catchall: unknown(),\n        ...util.normalizeParams(params),\n    });\n}\nexport const ZodUnion = /*@__PURE__*/ core.$constructor(\"ZodUnion\", (inst, def) => {\n    core.$ZodUnion.init(inst, def);\n    ZodType.init(inst, def);\n    inst.options = def.options;\n});\nexport function union(options, params) {\n    return new ZodUnion({\n        type: \"union\",\n        options: options,\n        ...util.normalizeParams(params),\n    });\n}\nexport const ZodDiscriminatedUnion = /*@__PURE__*/ core.$constructor(\"ZodDiscriminatedUnion\", (inst, def) => {\n    ZodUnion.init(inst, def);\n    core.$ZodDiscriminatedUnion.init(inst, def);\n});\nexport function discriminatedUnion(discriminator, options, params) {\n    // const [options, params] = args;\n    return new ZodDiscriminatedUnion({\n        type: \"union\",\n        options,\n        discriminator,\n        ...util.normalizeParams(params),\n    });\n}\nexport const ZodIntersection = /*@__PURE__*/ core.$constructor(\"ZodIntersection\", (inst, def) => {\n    core.$ZodIntersection.init(inst, def);\n    ZodType.init(inst, def);\n});\nexport function intersection(left, right) {\n    return new ZodIntersection({\n        type: \"intersection\",\n        left: left,\n        right: right,\n    });\n}\nexport const ZodTuple = /*@__PURE__*/ core.$constructor(\"ZodTuple\", (inst, def) => {\n    core.$ZodTuple.init(inst, def);\n    ZodType.init(inst, def);\n    inst.rest = (rest) => inst.clone({\n        ...inst._zod.def,\n        rest: rest,\n    });\n});\nexport function tuple(items, _paramsOrRest, _params) {\n    const hasRest = _paramsOrRest instanceof core.$ZodType;\n    const params = hasRest ? _params : _paramsOrRest;\n    const rest = hasRest ? _paramsOrRest : null;\n    return new ZodTuple({\n        type: \"tuple\",\n        items: items,\n        rest,\n        ...util.normalizeParams(params),\n    });\n}\nexport const ZodRecord = /*@__PURE__*/ core.$constructor(\"ZodRecord\", (inst, def) => {\n    core.$ZodRecord.init(inst, def);\n    ZodType.init(inst, def);\n    inst.keyType = def.keyType;\n    inst.valueType = def.valueType;\n});\nexport function record(keyType, valueType, params) {\n    return new ZodRecord({\n        type: \"record\",\n        keyType,\n        valueType: valueType,\n        ...util.normalizeParams(params),\n    });\n}\n// type alksjf = core.output<core.$ZodRecordKey>;\nexport function partialRecord(keyType, valueType, params) {\n    return new ZodRecord({\n        type: \"record\",\n        keyType: union([keyType, never()]),\n        valueType: valueType,\n        ...util.normalizeParams(params),\n    });\n}\nexport const ZodMap = /*@__PURE__*/ core.$constructor(\"ZodMap\", (inst, def) => {\n    core.$ZodMap.init(inst, def);\n    ZodType.init(inst, def);\n    inst.keyType = def.keyType;\n    inst.valueType = def.valueType;\n});\nexport function map(keyType, valueType, params) {\n    return new ZodMap({\n        type: \"map\",\n        keyType: keyType,\n        valueType: valueType,\n        ...util.normalizeParams(params),\n    });\n}\nexport const ZodSet = /*@__PURE__*/ core.$constructor(\"ZodSet\", (inst, def) => {\n    core.$ZodSet.init(inst, def);\n    ZodType.init(inst, def);\n    inst.min = (...args) => inst.check(core._minSize(...args));\n    inst.nonempty = (params) => inst.check(core._minSize(1, params));\n    inst.max = (...args) => inst.check(core._maxSize(...args));\n    inst.size = (...args) => inst.check(core._size(...args));\n});\nexport function set(valueType, params) {\n    return new ZodSet({\n        type: \"set\",\n        valueType: valueType,\n        ...util.normalizeParams(params),\n    });\n}\nexport const ZodEnum = /*@__PURE__*/ core.$constructor(\"ZodEnum\", (inst, def) => {\n    core.$ZodEnum.init(inst, def);\n    ZodType.init(inst, def);\n    inst.enum = def.entries;\n    inst.options = Object.values(def.entries);\n    const keys = new Set(Object.keys(def.entries));\n    inst.extract = (values, params) => {\n        const newEntries = {};\n        for (const value of values) {\n            if (keys.has(value)) {\n                newEntries[value] = def.entries[value];\n            }\n            else\n                throw new Error(`Key ${value} not found in enum`);\n        }\n        return new ZodEnum({\n            ...def,\n            checks: [],\n            ...util.normalizeParams(params),\n            entries: newEntries,\n        });\n    };\n    inst.exclude = (values, params) => {\n        const newEntries = { ...def.entries };\n        for (const value of values) {\n            if (keys.has(value)) {\n                delete newEntries[value];\n            }\n            else\n                throw new Error(`Key ${value} not found in enum`);\n        }\n        return new ZodEnum({\n            ...def,\n            checks: [],\n            ...util.normalizeParams(params),\n            entries: newEntries,\n        });\n    };\n});\nfunction _enum(values, params) {\n    const entries = Array.isArray(values) ? Object.fromEntries(values.map((v) => [v, v])) : values;\n    return new ZodEnum({\n        type: \"enum\",\n        entries,\n        ...util.normalizeParams(params),\n    });\n}\nexport { _enum as enum };\n/** @deprecated This API has been merged into `z.enum()`. Use `z.enum()` instead.\n *\n * ```ts\n * enum Colors { red, green, blue }\n * z.enum(Colors);\n * ```\n */\nexport function nativeEnum(entries, params) {\n    return new ZodEnum({\n        type: \"enum\",\n        entries,\n        ...util.normalizeParams(params),\n    });\n}\nexport const ZodLiteral = /*@__PURE__*/ core.$constructor(\"ZodLiteral\", (inst, def) => {\n    core.$ZodLiteral.init(inst, def);\n    ZodType.init(inst, def);\n    inst.values = new Set(def.values);\n    Object.defineProperty(inst, \"value\", {\n        get() {\n            if (def.values.length > 1) {\n                throw new Error(\"This schema contains multiple valid literal values. Use `.values` instead.\");\n            }\n            return def.values[0];\n        },\n    });\n});\nexport function literal(value, params) {\n    return new ZodLiteral({\n        type: \"literal\",\n        values: Array.isArray(value) ? value : [value],\n        ...util.normalizeParams(params),\n    });\n}\nexport const ZodFile = /*@__PURE__*/ core.$constructor(\"ZodFile\", (inst, def) => {\n    core.$ZodFile.init(inst, def);\n    ZodType.init(inst, def);\n    inst.min = (size, params) => inst.check(core._minSize(size, params));\n    inst.max = (size, params) => inst.check(core._maxSize(size, params));\n    inst.mime = (types, params) => inst.check(core._mime(Array.isArray(types) ? types : [types], params));\n});\nexport function file(params) {\n    return core._file(ZodFile, params);\n}\nexport const ZodTransform = /*@__PURE__*/ core.$constructor(\"ZodTransform\", (inst, def) => {\n    core.$ZodTransform.init(inst, def);\n    ZodType.init(inst, def);\n    inst._zod.parse = (payload, _ctx) => {\n        payload.addIssue = (issue) => {\n            if (typeof issue === \"string\") {\n                payload.issues.push(util.issue(issue, payload.value, def));\n            }\n            else {\n                // for Zod 3 backwards compatibility\n                const _issue = issue;\n                if (_issue.fatal)\n                    _issue.continue = false;\n                _issue.code ?? (_issue.code = \"custom\");\n                _issue.input ?? (_issue.input = payload.value);\n                _issue.inst ?? (_issue.inst = inst);\n                _issue.continue ?? (_issue.continue = true);\n                payload.issues.push(util.issue(_issue));\n            }\n        };\n        const output = def.transform(payload.value, payload);\n        if (output instanceof Promise) {\n            return output.then((output) => {\n                payload.value = output;\n                return payload;\n            });\n        }\n        payload.value = output;\n        return payload;\n    };\n});\nexport function transform(fn) {\n    return new ZodTransform({\n        type: \"transform\",\n        transform: fn,\n    });\n}\nexport const ZodOptional = /*@__PURE__*/ core.$constructor(\"ZodOptional\", (inst, def) => {\n    core.$ZodOptional.init(inst, def);\n    ZodType.init(inst, def);\n    inst.unwrap = () => inst._zod.def.innerType;\n});\nexport function optional(innerType) {\n    return new ZodOptional({\n        type: \"optional\",\n        innerType: innerType,\n    });\n}\nexport const ZodNullable = /*@__PURE__*/ core.$constructor(\"ZodNullable\", (inst, def) => {\n    core.$ZodNullable.init(inst, def);\n    ZodType.init(inst, def);\n    inst.unwrap = () => inst._zod.def.innerType;\n});\nexport function nullable(innerType) {\n    return new ZodNullable({\n        type: \"nullable\",\n        innerType: innerType,\n    });\n}\n// nullish\nexport function nullish(innerType) {\n    return optional(nullable(innerType));\n}\nexport const ZodDefault = /*@__PURE__*/ core.$constructor(\"ZodDefault\", (inst, def) => {\n    core.$ZodDefault.init(inst, def);\n    ZodType.init(inst, def);\n    inst.unwrap = () => inst._zod.def.innerType;\n    inst.removeDefault = inst.unwrap;\n});\nexport function _default(innerType, defaultValue) {\n    return new ZodDefault({\n        type: \"default\",\n        innerType: innerType,\n        get defaultValue() {\n            return typeof defaultValue === \"function\" ? defaultValue() : defaultValue;\n        },\n    });\n}\nexport const ZodPrefault = /*@__PURE__*/ core.$constructor(\"ZodPrefault\", (inst, def) => {\n    core.$ZodPrefault.init(inst, def);\n    ZodType.init(inst, def);\n    inst.unwrap = () => inst._zod.def.innerType;\n});\nexport function prefault(innerType, defaultValue) {\n    return new ZodPrefault({\n        type: \"prefault\",\n        innerType: innerType,\n        get defaultValue() {\n            return typeof defaultValue === \"function\" ? defaultValue() : defaultValue;\n        },\n    });\n}\nexport const ZodNonOptional = /*@__PURE__*/ core.$constructor(\"ZodNonOptional\", (inst, def) => {\n    core.$ZodNonOptional.init(inst, def);\n    ZodType.init(inst, def);\n    inst.unwrap = () => inst._zod.def.innerType;\n});\nexport function nonoptional(innerType, params) {\n    return new ZodNonOptional({\n        type: \"nonoptional\",\n        innerType: innerType,\n        ...util.normalizeParams(params),\n    });\n}\nexport const ZodSuccess = /*@__PURE__*/ core.$constructor(\"ZodSuccess\", (inst, def) => {\n    core.$ZodSuccess.init(inst, def);\n    ZodType.init(inst, def);\n    inst.unwrap = () => inst._zod.def.innerType;\n});\nexport function success(innerType) {\n    return new ZodSuccess({\n        type: \"success\",\n        innerType: innerType,\n    });\n}\nexport const ZodCatch = /*@__PURE__*/ core.$constructor(\"ZodCatch\", (inst, def) => {\n    core.$ZodCatch.init(inst, def);\n    ZodType.init(inst, def);\n    inst.unwrap = () => inst._zod.def.innerType;\n    inst.removeCatch = inst.unwrap;\n});\nfunction _catch(innerType, catchValue) {\n    return new ZodCatch({\n        type: \"catch\",\n        innerType: innerType,\n        catchValue: (typeof catchValue === \"function\" ? catchValue : () => catchValue),\n    });\n}\nexport { _catch as catch };\nexport const ZodNaN = /*@__PURE__*/ core.$constructor(\"ZodNaN\", (inst, def) => {\n    core.$ZodNaN.init(inst, def);\n    ZodType.init(inst, def);\n});\nexport function nan(params) {\n    return core._nan(ZodNaN, params);\n}\nexport const ZodPipe = /*@__PURE__*/ core.$constructor(\"ZodPipe\", (inst, def) => {\n    core.$ZodPipe.init(inst, def);\n    ZodType.init(inst, def);\n    inst.in = def.in;\n    inst.out = def.out;\n});\nexport function pipe(in_, out) {\n    return new ZodPipe({\n        type: \"pipe\",\n        in: in_,\n        out: out,\n        // ...util.normalizeParams(params),\n    });\n}\nexport const ZodReadonly = /*@__PURE__*/ core.$constructor(\"ZodReadonly\", (inst, def) => {\n    core.$ZodReadonly.init(inst, def);\n    ZodType.init(inst, def);\n});\nexport function readonly(innerType) {\n    return new ZodReadonly({\n        type: \"readonly\",\n        innerType: innerType,\n    });\n}\nexport const ZodTemplateLiteral = /*@__PURE__*/ core.$constructor(\"ZodTemplateLiteral\", (inst, def) => {\n    core.$ZodTemplateLiteral.init(inst, def);\n    ZodType.init(inst, def);\n});\nexport function templateLiteral(parts, params) {\n    return new ZodTemplateLiteral({\n        type: \"template_literal\",\n        parts,\n        ...util.normalizeParams(params),\n    });\n}\nexport const ZodLazy = /*@__PURE__*/ core.$constructor(\"ZodLazy\", (inst, def) => {\n    core.$ZodLazy.init(inst, def);\n    ZodType.init(inst, def);\n    inst.unwrap = () => inst._zod.def.getter();\n});\nexport function lazy(getter) {\n    return new ZodLazy({\n        type: \"lazy\",\n        getter: getter,\n    });\n}\nexport const ZodPromise = /*@__PURE__*/ core.$constructor(\"ZodPromise\", (inst, def) => {\n    core.$ZodPromise.init(inst, def);\n    ZodType.init(inst, def);\n    inst.unwrap = () => inst._zod.def.innerType;\n});\nexport function promise(innerType) {\n    return new ZodPromise({\n        type: \"promise\",\n        innerType: innerType,\n    });\n}\nexport const ZodCustom = /*@__PURE__*/ core.$constructor(\"ZodCustom\", (inst, def) => {\n    core.$ZodCustom.init(inst, def);\n    ZodType.init(inst, def);\n});\n// custom checks\nexport function check(fn, params) {\n    const ch = new core.$ZodCheck({\n        check: \"custom\",\n        ...util.normalizeParams(params),\n    });\n    ch._zod.check = fn;\n    return ch;\n}\nexport function custom(fn, _params) {\n    return core._custom(ZodCustom, fn ?? (() => true), _params);\n}\nexport function refine(fn, _params = {}) {\n    return core._refine(ZodCustom, fn, _params);\n}\n// superRefine\nexport function superRefine(fn, params) {\n    const ch = check((payload) => {\n        payload.addIssue = (issue) => {\n            if (typeof issue === \"string\") {\n                payload.issues.push(util.issue(issue, payload.value, ch._zod.def));\n            }\n            else {\n                // for Zod 3 backwards compatibility\n                const _issue = issue;\n                if (_issue.fatal)\n                    _issue.continue = false;\n                _issue.code ?? (_issue.code = \"custom\");\n                _issue.input ?? (_issue.input = payload.value);\n                _issue.inst ?? (_issue.inst = ch);\n                _issue.continue ?? (_issue.continue = !ch._zod.def.abort);\n                payload.issues.push(util.issue(_issue));\n            }\n        };\n        return fn(payload.value, payload);\n    }, params);\n    return ch;\n}\nfunction _instanceof(cls, params = {\n    error: `Input not instance of ${cls.name}`,\n}) {\n    const inst = new ZodCustom({\n        type: \"custom\",\n        check: \"custom\",\n        fn: (data) => data instanceof cls,\n        abort: true,\n        ...util.normalizeParams(params),\n    });\n    inst._zod.bag.Class = cls;\n    return inst;\n}\nexport { _instanceof as instanceof };\n// stringbool\nexport const stringbool = (...args) => core._stringbool({\n    Pipe: ZodPipe,\n    Boolean: ZodBoolean,\n    String: ZodString,\n    Transform: ZodTransform,\n}, ...args);\nexport function json(params) {\n    const jsonSchema = lazy(() => {\n        return union([string(params), number(), boolean(), _null(), array(jsonSchema), record(string(), jsonSchema)]);\n    });\n    return jsonSchema;\n}\n// preprocess\n// /** @deprecated Use `z.pipe()` and `z.transform()` instead. */\nexport function preprocess(fn, schema) {\n    return pipe(transform(fn), schema);\n}\n","export * as core from \"zod/v4/core\";\nexport * from \"./schemas.js\";\nexport * from \"./checks.js\";\nexport * from \"./errors.js\";\nexport * from \"./parse.js\";\nexport * from \"./compat.js\";\n// zod-specified\nimport { config } from \"zod/v4/core\";\nimport en from \"zod/v4/locales/en.js\";\nconfig(en());\nexport { globalRegistry, registry, config, function, $output, $input, $brand, clone, regexes, treeifyError, prettifyError, formatError, flattenError, toJSONSchema, TimePrecision, } from \"zod/v4/core\";\nexport * as locales from \"../locales/index.js\";\n// iso\n// must be exported from top-level\n// https://github.com/colinhacks/zod/issues/4491\nexport { ZodISODateTime, ZodISODate, ZodISOTime, ZodISODuration } from \"./iso.js\";\nexport * as iso from \"./iso.js\";\nexport * as coerce from \"./coerce.js\";\n","import {\n    z,\n    ZodAny,\n    ZodArray as ZodArrayClass,\n    ZodBase64,\n    ZodBase64URL,\n    ZodBoolean,\n    ZodCatch,\n    ZodCIDRv4,\n    ZodCIDRv6,\n    ZodCUID,\n    ZodCUID2,\n    ZodDate as ZodDateClass,\n    ZodDefault,\n    ZodDiscriminatedUnion,\n    ZodE164,\n    ZodEmail,\n    ZodEmoji,\n    ZodEnum as ZodEnumClass,\n    ZodIntersection,\n    ZodIPv4,\n    ZodIPv6,\n    ZodISODate,\n    ZodISODateTime,\n    ZodISODuration,\n    ZodISOTime,\n    ZodJWT,\n    ZodKSUID,\n    ZodLiteral as ZodLiteralClass,\n    ZodMap as ZodMapClass,\n    ZodNanoID,\n    ZodNull,\n    ZodNullable,\n    ZodNumber as ZodNumberClass,\n    ZodObject as ZodObjectClass,\n    ZodOptional,\n    ZodPipe,\n    ZodPromise,\n    ZodRecord as ZodRecordClass,\n    ZodSet as ZodSetClass,\n    ZodString as ZodStringClass,\n    ZodTransform,\n    ZodTuple as ZodTupleClass,\n    ZodULID,\n    ZodUndefined,\n    ZodUnion,\n    ZodUnknown,\n    ZodURL,\n    ZodUUID,\n    ZodVoid,\n    ZodXID,\n} from 'zod/v4';\nimport type {\n    ZodArray,\n    ZodDate,\n    ZodEnum,\n    ZodLiteral,\n    ZodMap,\n    ZodNumber,\n    ZodObject,\n    ZodRecord,\n    ZodSet,\n    ZodString,\n    ZodTuple,\n    ZodType,\n} from 'zod/v4';\nimport type { ZodType as ZodV3Type } from 'zod';\nimport type {\n    $ZodCheckGreaterThan,\n    $ZodCheckLengthEquals,\n    $ZodCheckLessThan,\n    $ZodCheckMaxLength,\n    $ZodCheckMinLength,\n    $ZodCheckMultipleOf,\n    $ZodCheckNumberFormat,\n    $ZodCheckRegex,\n    $ZodChecks,\n    $ZodCheckStringFormat,\n    $ZodType,\n} from 'zod/v4/core';\nimport { Factory, FactoryFunction, type FactoryOptions } from './index';\nimport { ConfigurationError } from './errors';\nimport {\n    createTypeGuard,\n    isAsyncFunction,\n    isFunction,\n    isNotNullish,\n    isObject,\n} from '@tool-belt/type-predicates';\nimport { PartialFactoryFunction } from '.';\nimport {\n    COLLECTION_SIZES,\n    DEFAULT_MAX_DEPTH,\n    NUMBER_CONSTRAINTS,\n    STRING_LENGTHS,\n} from './constants';\nimport { getProperty, hasMethod, hasProperty, merge } from './utils';\n\n/**\n * Helper functions to handle both Zod v3 and v4 schema structures\n */\nconst schemaHelpers = {\n    /**\n     * Get items schema for array types\n     *\n     * @param schema\n     * @returns The array element type or undefined\n     */\n    getArrayElement(schema: ZodArray): undefined | ZodType {\n        const def = schemaHelpers.getDef(schema);\n        return (getProperty(def, ['element']) ?? getProperty(def, ['type'])) as\n            | undefined\n            | ZodType;\n    },\n\n    /**\n     * Get format from a string check, handling both v3 and v4\n     *\n     * @param check\n     * @returns The check format or undefined\n     */\n    getCheckFormat(check: $ZodChecks): string | undefined {\n        const v4Format = getProperty(check, ['_zod', 'def', 'format']) as\n            | string\n            | undefined;\n        if (v4Format) {\n            return v4Format;\n        }\n\n        const v3Kind = getProperty(check, ['kind']) as string | undefined;\n        if (\n            v3Kind &&\n            ['cuid', 'cuid2', 'email', 'regex', 'ulid', 'url', 'uuid'].includes(\n                v3Kind,\n            )\n        ) {\n            return v3Kind;\n        }\n        return getProperty(check, ['format']) as string | undefined;\n    },\n\n    /**\n     * Get inclusive flag from a check, handling both v3 and v4\n     *\n     * @param check\n     * @returns The inclusive flag or false as default\n     */\n    getCheckInclusive(check: unknown): boolean {\n        const v4Inclusive = getProperty(check, ['_zod', 'def', 'inclusive']) as\n            | boolean\n            | undefined;\n        const v3Inclusive = getProperty(check, ['inclusive']) as\n            | boolean\n            | undefined;\n        return v4Inclusive ?? v3Inclusive ?? false;\n    },\n\n    /**\n     * Get checks array from a schema definition\n     *\n     * @param schema\n     * @returns Array of checks\n     */\n    getChecks(schema: ZodType): $ZodChecks[] {\n        const def = schemaHelpers.getDef(schema);\n        return (getProperty(def, ['checks']) as $ZodChecks[] | undefined) ?? [];\n    },\n\n    /**\n     * Get check type/kind\n     *\n     * @param check\n     * @returns The check type or undefined\n     */\n    getCheckType(check: $ZodChecks): string | undefined {\n        const v4CheckType = getProperty(check, ['_zod', 'def', 'check']) as\n            | string\n            | undefined;\n        if (v4CheckType) {\n            return v4CheckType;\n        }\n\n        return getProperty(check, ['kind']) as string | undefined;\n    },\n\n    /**\n     * Get the value from a check (for min/max/length checks)\n     *\n     * @param check\n     * @returns The check value\n     */\n    getCheckValue(check: $ZodChecks): unknown {\n        const v4Value = getProperty(check, ['_zod', 'def', 'value']);\n        if (v4Value !== undefined) {\n            return v4Value;\n        }\n\n        const v4Minimum = getProperty(check, ['_zod', 'def', 'minimum']);\n        if (v4Minimum !== undefined) {\n            return v4Minimum;\n        }\n\n        const v4Maximum = getProperty(check, ['_zod', 'def', 'maximum']);\n        if (v4Maximum !== undefined) {\n            return v4Maximum;\n        }\n\n        const v4Length = getProperty(check, ['_zod', 'def', 'length']);\n        if (v4Length !== undefined) {\n            return v4Length;\n        }\n\n        const v3Value = getProperty(check, ['value']);\n        if (v3Value !== undefined) {\n            return v3Value;\n        }\n\n        const v3Minimum = getProperty(check, ['minimum']);\n        if (v3Minimum !== undefined) {\n            return v3Minimum;\n        }\n\n        const v3Maximum = getProperty(check, ['maximum']);\n        if (v3Maximum !== undefined) {\n            return v3Maximum;\n        }\n\n        return getProperty(check, ['length']);\n    },\n\n    /**\n     * Get the definition object from a schema, handling both v3 and v4\n     *\n     * @param schema\n     * @returns The schema definition\n     */\n    getDef(schema: ZodType | ZodV3Type): unknown {\n        const v4Def = getProperty(schema, ['_zod', 'def']);\n        if (v4Def !== undefined) {\n            return v4Def;\n        }\n\n        return getProperty(schema, ['_def']);\n    },\n\n    /**\n     * Get enum values\n     *\n     * @param schema\n     * @returns Array of enum values\n     */\n    getEnumValues(schema: ZodEnum): unknown[] {\n        const def = schemaHelpers.getDef(schema);\n        const v4Entries = getProperty(def, ['entries']) as\n            | Record<string, unknown>\n            | undefined;\n        if (v4Entries) {\n            const values = Object.entries(v4Entries)\n                .filter(([key]) => Number.isNaN(Number(key)))\n                .map(([, value]) => value);\n            return values.length > 0 ? values : Object.values(v4Entries);\n        }\n        return (getProperty(def, ['values']) as undefined | unknown[]) ?? [];\n    },\n\n    /**\n     * Get inner type for optional/nullable schemas\n     *\n     * @param schema\n     * @returns The inner type or undefined\n     */\n    getInnerType(schema: ZodType): undefined | ZodType {\n        const def = schemaHelpers.getDef(schema);\n        return getProperty(def, ['innerType']) as undefined | ZodType;\n    },\n\n    /**\n     * Get literal value\n     *\n     * @param schema\n     * @returns The literal value\n     */\n    getLiteralValue(schema: ZodLiteral): unknown {\n        const def = schemaHelpers.getDef(schema);\n        const v4Values = getProperty(def, ['values']) as undefined | unknown[];\n        if (v4Values && Array.isArray(v4Values) && v4Values.length > 0) {\n            return v4Values[0];\n        }\n        return getProperty(def, ['value']);\n    },\n\n    /**\n     * Get the shape of an object schema\n     *\n     * @param schema\n     * @returns The object shape or undefined\n     */\n    getObjectShape(schema: ZodObject): Record<string, ZodType> | undefined {\n        const def = schemaHelpers.getDef(schema);\n\n        if (hasMethod(def, 'shape')) {\n            return def.shape() as Record<string, ZodType>;\n        }\n\n        const shape = getProperty(def, ['shape']);\n        if (shape) {\n            return shape as Record<string, ZodType>;\n        }\n\n        if (hasProperty(schema, 'shape') && isObject(schema.shape)) {\n            return schema.shape as Record<string, ZodType>;\n        }\n\n        return undefined;\n    },\n\n    /**\n     * Get value type for record schemas\n     *\n     * @param schema\n     * @returns The record value type or undefined\n     */\n    getRecordValueType(schema: ZodRecord): undefined | ZodType {\n        const def = schemaHelpers.getDef(schema);\n        return getProperty(def, ['valueType']) as undefined | ZodType;\n    },\n\n    /**\n     * Get the type name from a schema definition\n     *\n     * @param schema\n     * @returns The type name or undefined\n     */\n    getTypeName(schema: ZodType): string | undefined {\n        const def = schemaHelpers.getDef(schema);\n        const type = getProperty(def, ['type']) as string | undefined;\n        if (type) {\n            return type;\n        }\n\n        return getProperty(def, ['typeName']) as string | undefined;\n    },\n\n    /**\n     * Get options for union types\n     *\n     * @param schema\n     * @returns Array of union options\n     */\n    getUnionOptions(schema: ZodUnion): ZodType[] {\n        const def = schemaHelpers.getDef(schema);\n        return (getProperty(def, ['options']) as undefined | ZodType[]) ?? [];\n    },\n\n    /**\n     * Check if a check is a string format check\n     *\n     * @param check\n     * @returns True if the check is a string format check\n     */\n    isStringFormatCheck(check: $ZodChecks): boolean {\n        const format = schemaHelpers.getCheckFormat(check);\n        return format !== undefined;\n    },\n};\n\n/**\n * Options for configuring ZodFactory behavior.\n *\n */\nexport interface ZodFactoryOptions extends FactoryOptions {\n    /**\n     * Custom generator functions for specific field types.\n     *\n     * Generators are matched by the field's description metadata.\n     *\n     * @example\n     * ```typescript\n     * const factory = new ZodFactory(schema, {\n     *   generators: {\n     *     // Schema field must have .describe('userId')\n     *     userId: () => `USR_${Date.now()}`,\n     *     customEmail: () => `test_${Date.now()}@example.com`\n     *   }\n     * });\n     * ```\n     */\n    generators?: Record<string, () => unknown>;\n}\n\ntype ZodTypeHandler = (\n    schema: ZodType,\n    generator: ZodSchemaGenerator,\n    currentDepth: number,\n) => unknown;\n\nconst hasZodV4Structure = (schema: unknown): schema is $ZodType => {\n    return isObject(schema) && '_zod' in schema && isObject(schema._zod);\n};\n\nconst hasZodV3Structure = (schema: unknown): schema is ZodV3Type => {\n    return isObject(schema) && '_def' in schema;\n};\n\nconst getSchemaTypeName = (schema: ZodType | ZodV3Type): string | undefined => {\n    if (hasZodV4Structure(schema)) {\n        return (\n            (schema._zod.def as { type?: string } | undefined)?.type ??\n            (schema._zod.def as { typeName?: string } | undefined)?.typeName\n        );\n    }\n    if (hasZodV3Structure(schema)) {\n        return (\n            (schema._def as { type?: string } | undefined)?.type ??\n            (schema._def as { typeName?: string } | undefined)?.typeName\n        );\n    }\n    return undefined;\n};\n\nconst createZodTypeGuard = <T extends ZodType>(\n    constructor: new (...args: never[]) => T,\n    typeName?: string,\n) => {\n    return createTypeGuard<T>((value: unknown): value is T => {\n        try {\n            if (value instanceof constructor) {\n                return true;\n            }\n\n            if (typeName) {\n                if (hasZodV3Structure(value)) {\n                    const v3TypeName = Reflect.get(value._def, 'typeName') as\n                        | string\n                        | undefined;\n                    if (v3TypeName === typeName) {\n                        return true;\n                    }\n                }\n\n                if (hasZodV4Structure(value)) {\n                    const schemaTypeName = getSchemaTypeName(value as ZodType);\n                    if (schemaTypeName === typeName) {\n                        return true;\n                    }\n                }\n            }\n\n            return false;\n        } catch {\n            return false;\n        }\n    });\n};\n\nconst zodTypeGuards = {\n    any: createZodTypeGuard(ZodAny, 'ZodAny'),\n    array: createZodTypeGuard(ZodArrayClass, 'ZodArray'),\n    boolean: createZodTypeGuard(ZodBoolean, 'ZodBoolean'),\n    catch: createZodTypeGuard(ZodCatch, 'ZodCatch'),\n    date: createZodTypeGuard(ZodDateClass, 'ZodDate'),\n    default: createZodTypeGuard(ZodDefault, 'ZodDefault'),\n    discriminatedUnion: createZodTypeGuard(\n        ZodDiscriminatedUnion,\n        'ZodDiscriminatedUnion',\n    ),\n    enum: createZodTypeGuard(ZodEnumClass, 'ZodEnum'),\n    intersection: createZodTypeGuard(ZodIntersection, 'ZodIntersection'),\n    literal: createZodTypeGuard(ZodLiteralClass, 'ZodLiteral'),\n    map: createZodTypeGuard(ZodMapClass, 'ZodMap'),\n    null: createZodTypeGuard(ZodNull, 'ZodNull'),\n    nullable: createZodTypeGuard(ZodNullable, 'ZodNullable'),\n    number: createZodTypeGuard(ZodNumberClass, 'ZodNumber'),\n    object: createZodTypeGuard(ZodObjectClass, 'ZodObject'),\n    optional: createZodTypeGuard(ZodOptional, 'ZodOptional'),\n    pipe: createZodTypeGuard(ZodPipe, 'ZodPipeline'),\n    promise: createZodTypeGuard(ZodPromise, 'ZodPromise'),\n    record: createZodTypeGuard(ZodRecordClass, 'ZodRecord'),\n    set: createZodTypeGuard(ZodSetClass, 'ZodSet'),\n    string: createZodTypeGuard(ZodStringClass, 'ZodString'),\n    transform: createZodTypeGuard(ZodTransform, 'ZodTransform'),\n    tuple: createZodTypeGuard(ZodTupleClass, 'ZodTuple'),\n    undefined: createZodTypeGuard(ZodUndefined, 'ZodUndefined'),\n    union: createZodTypeGuard(ZodUnion, 'ZodUnion'),\n    unknown: createZodTypeGuard(ZodUnknown, 'ZodUnknown'),\n    void: createZodTypeGuard(ZodVoid, 'ZodVoid'),\n} as const;\n\nconst zodStringFormats = {\n    base64: createZodTypeGuard(ZodBase64, 'ZodString'),\n    base64url: createZodTypeGuard(ZodBase64URL, 'ZodString'),\n    cidrv4: createZodTypeGuard(ZodCIDRv4, 'ZodString'),\n    cidrv6: createZodTypeGuard(ZodCIDRv6, 'ZodString'),\n    cuid: createZodTypeGuard(ZodCUID, 'ZodString'),\n    cuid2: createZodTypeGuard(ZodCUID2, 'ZodString'),\n    e164: createZodTypeGuard(ZodE164, 'ZodString'),\n    email: createZodTypeGuard(ZodEmail, 'ZodString'),\n    emoji: createZodTypeGuard(ZodEmoji, 'ZodString'),\n    ipv4: createZodTypeGuard(ZodIPv4, 'ZodString'),\n    ipv6: createZodTypeGuard(ZodIPv6, 'ZodString'),\n    jwt: createZodTypeGuard(ZodJWT, 'ZodString'),\n    ksuid: createZodTypeGuard(ZodKSUID, 'ZodString'),\n    nanoid: createZodTypeGuard(ZodNanoID, 'ZodString'),\n    ulid: createZodTypeGuard(ZodULID, 'ZodString'),\n    url: createZodTypeGuard(ZodURL, 'ZodString'),\n    uuid: createZodTypeGuard(ZodUUID, 'ZodString'),\n    xid: createZodTypeGuard(ZodXID, 'ZodString'),\n} as const;\n\nconst zodDateFormats = {\n    date: createZodTypeGuard(ZodISODate, 'ZodString'),\n    datetime: createZodTypeGuard(ZodISODateTime, 'ZodString'),\n    duration: createZodTypeGuard(ZodISODuration, 'ZodString'),\n    time: createZodTypeGuard(ZodISOTime, 'ZodString'),\n} as const;\n\nconst primitiveTypeHandlers = {\n    any: (generator: ZodSchemaGenerator) => generator.factory.lorem.word(),\n    boolean: (generator: ZodSchemaGenerator) =>\n        generator.factory.datatype.boolean(),\n    date: (generator: ZodSchemaGenerator) => generator.factory.date.recent(),\n    null: () => null,\n    undefined: () => undefined,\n    void: () => undefined,\n} as const;\n\nconst builtinTypeMapping = {\n    bigint: 'ZodBigInt',\n    custom: 'ZodCustom',\n    function: 'ZodFunction',\n    lazy: 'ZodLazy',\n    nan: 'ZodNaN',\n    never: 'ZodNever',\n    promise: 'ZodPromise',\n    unknown: 'ZodUnknown',\n    void: 'ZodVoid',\n} as const;\n\ninterface NumberConstraints {\n    isInt: boolean;\n    max?: number;\n    min?: number;\n    step?: number;\n}\n\ninterface SizeConstraints {\n    exactLength?: number;\n    maxLength?: number;\n    minLength?: number;\n}\n\nconst isStringFormatCheck = createTypeGuard<$ZodCheckStringFormat>(\n    (check): check is $ZodCheckStringFormat => {\n        const v4CheckType = getProperty(check, ['_zod', 'def', 'check']) as\n            | string\n            | undefined;\n        const v3Kind = getProperty(check, ['kind']) as string | undefined;\n        return (\n            v4CheckType === 'string_format' ||\n            ['cuid', 'cuid2', 'email', 'regex', 'ulid', 'url', 'uuid'].includes(\n                v3Kind ?? '',\n            )\n        );\n    },\n);\n\nconst isRegexCheck = createTypeGuard<$ZodCheckRegex>(\n    (check): check is $ZodCheckRegex => {\n        const v4CheckType = getProperty(check, ['_zod', 'def', 'check']) as\n            | string\n            | undefined;\n        const v4Format = getProperty(check, ['_zod', 'def', 'format']) as\n            | string\n            | undefined;\n        const v3Kind = getProperty(check, ['kind']) as string | undefined;\n        const v3Regex = getProperty(check, ['regex']);\n        return (\n            (v4CheckType === 'string_format' && v4Format === 'regex') ||\n            v3Kind === 'regex' ||\n            v3Regex instanceof RegExp\n        );\n    },\n);\n\nconst isLessThanCheck = createTypeGuard<$ZodCheckLessThan>(\n    (check): check is $ZodCheckLessThan => {\n        const v4CheckType = getProperty(check, ['_zod', 'def', 'check']) as\n            | string\n            | undefined;\n        const v3Kind = getProperty(check, ['kind']) as string | undefined;\n        return v4CheckType === 'less_than' || v3Kind === 'max';\n    },\n);\n\nconst isGreaterThanCheck = createTypeGuard<$ZodCheckGreaterThan>(\n    (check): check is $ZodCheckGreaterThan => {\n        const v4CheckType = getProperty(check, ['_zod', 'def', 'check']) as\n            | string\n            | undefined;\n        const v3Kind = getProperty(check, ['kind']) as string | undefined;\n        return v4CheckType === 'greater_than' || v3Kind === 'min';\n    },\n);\n\nconst isMultipleOfCheck = createTypeGuard<$ZodCheckMultipleOf>(\n    (check): check is $ZodCheckMultipleOf => {\n        const v4CheckType = getProperty(check, ['_zod', 'def', 'check']) as\n            | string\n            | undefined;\n        const v3Kind = getProperty(check, ['kind']) as string | undefined;\n        return v4CheckType === 'multiple_of' || v3Kind === 'multipleOf';\n    },\n);\n\nconst isNumberFormatCheck = createTypeGuard<$ZodCheckNumberFormat>(\n    (check): check is $ZodCheckNumberFormat => {\n        const v4CheckType = getProperty(check, ['_zod', 'def', 'check']) as\n            | string\n            | undefined;\n        return v4CheckType === 'number_format';\n    },\n);\n\nconst isMaxLengthCheck = createTypeGuard<$ZodCheckMaxLength>(\n    (check): check is $ZodCheckMaxLength => {\n        const v4CheckType = getProperty(check, ['_zod', 'def', 'check']) as\n            | string\n            | undefined;\n        const v3Kind = getProperty(check, ['kind']) as string | undefined;\n        return (\n            v4CheckType === 'max_length' ||\n            v3Kind === 'maxLength' ||\n            v3Kind === 'max'\n        );\n    },\n);\n\nconst isMinLengthCheck = createTypeGuard<$ZodCheckMinLength>(\n    (check): check is $ZodCheckMinLength => {\n        const v4CheckType = getProperty(check, ['_zod', 'def', 'check']) as\n            | string\n            | undefined;\n        const v3Kind = getProperty(check, ['kind']) as string | undefined;\n        return (\n            v4CheckType === 'min_length' ||\n            v3Kind === 'minLength' ||\n            v3Kind === 'min'\n        );\n    },\n);\n\nconst isLengthEqualsCheck = createTypeGuard<$ZodCheckLengthEquals>(\n    (check): check is $ZodCheckLengthEquals => {\n        const v4CheckType = getProperty(check, ['_zod', 'def', 'check']) as\n            | string\n            | undefined;\n        const v3Kind = getProperty(check, ['kind']) as string | undefined;\n        return v4CheckType === 'length_equals' || v3Kind === 'length';\n    },\n);\n\ntype SchemaGeneratorFunction = (\n    generator: ZodSchemaGenerator,\n    schema: $ZodType,\n) => unknown;\n\n/**\n * Schema generator class that handles recursive generation of values from any ZodType.\n * This class is responsible for all the complex schema traversal and generation logic.\n */\nclass ZodSchemaGenerator {\n    public readonly factory: ZodFactory<never>;\n    private dateFormatGenerators = {\n        date: () => new Date().toISOString().split('T')[0],\n        datetime: () => new Date().toISOString(),\n        duration: (generator: ZodSchemaGenerator) => {\n            const hours = generator.factory.number.int({ max: 23, min: 0 });\n            const minutes = generator.factory.number.int({ max: 59, min: 0 });\n            const seconds = generator.factory.number.int({ max: 59, min: 0 });\n            return `PT${hours}H${minutes}M${seconds}S`;\n        },\n        time: () => {\n            const date = new Date();\n            const hours = String(date.getHours()).padStart(2, '0');\n            const minutes = String(date.getMinutes()).padStart(2, '0');\n            const seconds = String(date.getSeconds()).padStart(2, '0');\n            return `${hours}:${minutes}:${seconds}`;\n        },\n    } as const;\n    private readonly NOT_FOUND = Symbol('NOT_FOUND');\n\n    private stringFormatGenerators = {\n        base64: (generator: ZodSchemaGenerator) =>\n            Buffer.from(generator.factory.string.alpha(16)).toString('base64'),\n        base64url: (generator: ZodSchemaGenerator) =>\n            Buffer.from(generator.factory.string.alpha(16)).toString(\n                'base64url',\n            ),\n        cidrv4: (generator: ZodSchemaGenerator) =>\n            `${generator.factory.internet.ipv4()}/${generator.factory.number.int({ max: 32, min: 0 })}`,\n        cidrv6: (generator: ZodSchemaGenerator) =>\n            `${generator.factory.internet.ipv6()}/${generator.factory.number.int({ max: 128, min: 0 })}`,\n        cuid: (generator: ZodSchemaGenerator) =>\n            `c${generator.factory.string.alphanumeric(24).toLowerCase()}`,\n        cuid2: (generator: ZodSchemaGenerator) =>\n            generator.factory.string.alphanumeric(24).toLowerCase(),\n        e164: (generator: ZodSchemaGenerator) => {\n            const countryCode = generator.factory.string.numeric({\n                exclude: ['0'],\n                length: 1,\n            });\n            const length = generator.factory.number.int({ max: 14, min: 10 });\n            const number = generator.factory.string.numeric({ length });\n            return `+${countryCode}${number}`;\n        },\n        email: (generator: ZodSchemaGenerator) =>\n            generator.factory.internet.email(),\n        emoji: (generator: ZodSchemaGenerator) =>\n            generator.factory.helpers.arrayElement([\n                '😀',\n                '😎',\n                '🚀',\n                '🌟',\n                '❤️',\n                '🔥',\n                '✨',\n                '🎉',\n            ]),\n        ipv4: (generator: ZodSchemaGenerator) =>\n            generator.factory.internet.ipv4(),\n        ipv6: (generator: ZodSchemaGenerator) =>\n            generator.factory.internet.ipv6(),\n        jwt: (generator: ZodSchemaGenerator) => {\n            const header = Buffer.from('{\"alg\":\"HS256\",\"typ\":\"JWT\"}').toString(\n                'base64url',\n            );\n            const payload = Buffer.from(\n                `{\"sub\":\"${generator.factory.string.uuid()}\",\"iat\":${Math.floor(Date.now() / 1000)}}`,\n            ).toString('base64url');\n            const signature = generator.factory.string.alphanumeric(43);\n            return `${header}.${payload}.${signature}`;\n        },\n        ksuid: (generator: ZodSchemaGenerator) =>\n            generator.factory.string.alphanumeric(27),\n        nanoid: (generator: ZodSchemaGenerator) =>\n            generator.factory.string.nanoid(),\n        ulid: (generator: ZodSchemaGenerator) => {\n            const chars = '0123456789ABCDEFGHJKMNPQRSTVWXYZ';\n            let ulid = '';\n            for (let i = 0; i < STRING_LENGTHS.ULID; i++) {\n                // eslint-disable-next-line @typescript-eslint/no-misused-spread\n                ulid += generator.factory.helpers.arrayElement([...chars]);\n            }\n            return ulid;\n        },\n        url: (generator: ZodSchemaGenerator) =>\n            generator.factory.internet.url(),\n        uuid: (generator: ZodSchemaGenerator) =>\n            generator.factory.string.uuid(),\n        xid: (generator: ZodSchemaGenerator) => {\n            const chars = '0123456789abcdefghijklmnopqrstuv';\n            let xid = '';\n            for (let i = 0; i < STRING_LENGTHS.XID; i++) {\n                // eslint-disable-next-line @typescript-eslint/no-misused-spread\n                xid += generator.factory.helpers.arrayElement([...chars]);\n            }\n            return xid;\n        },\n    } as const;\n\n    private readonly typeHandlers = new Map<string, ZodTypeHandler>();\n\n    constructor(factory: ZodFactory<never>) {\n        this.factory = factory;\n        this.initializeBuiltinHandlers();\n    }\n\n    /**\n     * Generate a value from any ZodType schema.\n     *\n     * @param schema\n     * @param currentDepth\n     *\n     * @returns The generated value\n     */\n    generateFromSchema(schema: ZodType, currentDepth = 0): unknown {\n        const metadataResult = this.tryGenerateFromMetadata(schema);\n        if (metadataResult !== undefined) {\n            return metadataResult;\n        }\n\n        const handlerResult = this.tryGenerateFromTypeHandler(\n            schema,\n            currentDepth,\n        );\n        if (handlerResult !== undefined) {\n            return handlerResult;\n        }\n\n        return this.generateFromZodType(schema, currentDepth);\n    }\n\n    getDepthLimitFallback(schema: ZodType): unknown {\n        if (zodTypeGuards.optional(schema)) {\n            return undefined;\n        }\n        if (zodTypeGuards.array(schema)) {\n            return [];\n        }\n        if (zodTypeGuards.string(schema)) {\n            const checks = schemaHelpers.getChecks(schema);\n            for (const check of checks) {\n                if (schemaHelpers.isStringFormatCheck(check)) {\n                    const format = schemaHelpers.getCheckFormat(check);\n                    if (format === 'email') {\n                        return this.factory.internet.email();\n                    }\n                    if (format === 'uuid' || format === 'guid') {\n                        return this.factory.string.uuid();\n                    }\n                    if (format === 'url') {\n                        return this.factory.internet.url();\n                    }\n                }\n            }\n            return '';\n        }\n        if (zodTypeGuards.number(schema)) {\n            return 0;\n        }\n        if (zodTypeGuards.object(schema)) {\n            return {};\n        }\n        return this.factory.lorem.word();\n    }\n\n    /**\n     * Register a custom handler for a specific Zod type.\n     *\n     * @param typeName\n     * @param handler\n     *\n     * @returns The factory instance\n     */\n    registerTypeHandler(typeName: string, handler: ZodTypeHandler): this {\n        this.typeHandlers.set(typeName, handler);\n        return this;\n    }\n\n    /**\n     * Register multiple type handlers at once.\n     *\n     * @param handlers\n     *\n     * @returns The factory instance\n     */\n    registerTypeHandlers(handlers: Record<string, ZodTypeHandler>): this {\n        Object.entries(handlers).forEach(([typeName, handler]) => {\n            this.typeHandlers.set(typeName, handler);\n        });\n        return this;\n    }\n\n    private calculateArrayLength(constraints: SizeConstraints): number {\n        const { exactLength, maxLength, minLength } = constraints;\n\n        if (exactLength !== undefined) {\n            return exactLength;\n        }\n\n        return this.calculateTargetLength(minLength, maxLength, 0, 10);\n    }\n\n    private calculateTargetLength(\n        min: number | undefined,\n        max: number | undefined,\n        defaultMin: number,\n        defaultMax: number,\n    ): number {\n        if (min !== undefined && max !== undefined) {\n            return this.factory.number.int({ max, min });\n        }\n\n        if (min !== undefined) {\n            return min + this.factory.number.int({ max: 10, min: 0 });\n        }\n\n        if (max !== undefined) {\n            return this.factory.number.int({ max, min: 1 });\n        }\n\n        return this.factory.number.int({ max: defaultMax, min: defaultMin });\n    }\n\n    private extractSizeConstraints(\n        checks: $ZodChecks[] | undefined,\n    ): SizeConstraints {\n        const constraints: SizeConstraints = {};\n\n        if (!checks || !Array.isArray(checks)) {\n            return constraints;\n        }\n\n        for (const check of checks) {\n            if (isMinLengthCheck(check)) {\n                const value = schemaHelpers.getCheckValue(check);\n                if (typeof value === 'number') {\n                    constraints.minLength = value;\n                }\n            } else if (isMaxLengthCheck(check)) {\n                const value = schemaHelpers.getCheckValue(check);\n                if (typeof value === 'number') {\n                    constraints.maxLength = value;\n                }\n            } else if (isLengthEqualsCheck(check)) {\n                const value = schemaHelpers.getCheckValue(check);\n                if (typeof value === 'number') {\n                    constraints.exactLength = value;\n                }\n            }\n        }\n\n        return constraints;\n    }\n\n    private generateArray(schema: ZodArray, currentDepth: number): unknown[] {\n        const maxDepth = this.factory.options?.maxDepth ?? DEFAULT_MAX_DEPTH;\n\n        if (currentDepth >= maxDepth) {\n            return [];\n        }\n\n        const def = schemaHelpers.getDef(schema);\n        const itemSchema = schemaHelpers.getArrayElement(schema);\n\n        const checks = getProperty(def, ['checks']) as $ZodChecks[] | undefined;\n        const constraints = this.extractSizeConstraints(checks);\n        if (constraints.exactLength === undefined) {\n            const v3ExactLength = getProperty(def, ['exactLength', 'value']) as\n                | number\n                | undefined;\n            if (v3ExactLength !== undefined) {\n                constraints.exactLength = v3ExactLength;\n            }\n        }\n        if (constraints.minLength === undefined) {\n            const v3MinLength = getProperty(def, ['minLength', 'value']) as\n                | number\n                | undefined;\n            if (v3MinLength !== undefined) {\n                constraints.minLength = v3MinLength;\n            }\n        }\n        if (constraints.maxLength === undefined) {\n            const v3MaxLength = getProperty(def, ['maxLength', 'value']) as\n                | number\n                | undefined;\n            if (v3MaxLength !== undefined) {\n                constraints.maxLength = v3MaxLength;\n            }\n        }\n\n        const length = this.calculateArrayLength(constraints);\n\n        if (!itemSchema) {\n            return [];\n        }\n\n        return Array.from({ length }, () => {\n            const generated = this.generateFromSchema(\n                itemSchema,\n                currentDepth + 1,\n            );\n            return generated;\n        });\n    }\n\n    private generateDate(schema: ZodDate): Date {\n        const checks = schemaHelpers.getChecks(schema);\n\n        let minDate: Date | undefined;\n        let maxDate: Date | undefined;\n\n        for (const check of checks) {\n            const checkType = schemaHelpers.getCheckType(check);\n            const checkValue = schemaHelpers.getCheckValue(check);\n            if (checkType === 'greater_than' || checkType === 'min') {\n                if (\n                    checkValue instanceof Date ||\n                    typeof checkValue === 'string' ||\n                    typeof checkValue === 'number'\n                ) {\n                    minDate = new Date(checkValue);\n                }\n            } else if (\n                (checkType === 'less_than' || checkType === 'max') &&\n                (checkValue instanceof Date ||\n                    typeof checkValue === 'string' ||\n                    typeof checkValue === 'number')\n            ) {\n                maxDate = new Date(checkValue);\n            }\n        }\n\n        if (minDate && maxDate) {\n            return this.factory.date.between({ from: minDate, to: maxDate });\n        } else if (minDate) {\n            return this.factory.date.between({\n                from: minDate,\n                to: new Date(Date.now() + 365 * 24 * 60 * 60 * 1000),\n            });\n        } else if (maxDate) {\n            return this.factory.date.between({\n                from: new Date(Date.now() - 365 * 24 * 60 * 60 * 1000),\n                to: maxDate,\n            });\n        }\n\n        return this.factory.date.recent();\n    }\n\n    private generateFromRegex(check: $ZodCheckRegex): string {\n        const v4Pattern = getProperty(check, ['_zod', 'def', 'pattern']) as\n            | RegExp\n            | undefined;\n        const v3Regex = getProperty(check, ['regex']) as RegExp | undefined;\n        const v3Pattern = getProperty(check, ['pattern']) as RegExp | undefined;\n\n        const pattern = v4Pattern ?? v3Regex ?? v3Pattern;\n        if (pattern instanceof RegExp) {\n            const { source } = pattern;\n            if (source.includes('@')) {\n                return this.factory.internet.email();\n            }\n\n            if (source === '^[a-zA-Z0-9_]+$') {\n                return this.factory.string.alphanumeric(10);\n            }\n            if (source === '^[A-Z]{3}-\\\\d{3}$') {\n                return `${this.factory.string.alpha({\n                    casing: 'upper',\n                    length: 3,\n                })}-${this.factory.string.numeric({ length: 3 })}`;\n            }\n\n            if (\n                source.includes('+') &&\n                source.includes('\\\\d') &&\n                (source.includes('-') || source.includes('\\\\-')) &&\n                source.includes('(')\n            ) {\n                return `+${this.factory.string.numeric({ length: 1 })} (${this.factory.string.numeric({ length: 3 })}) ${this.factory.string.numeric({ length: 3 })}-${this.factory.string.numeric({ length: 4 })}`;\n            }\n\n            if (source === '^\\\\d{5}$') {\n                return this.factory.string.numeric({ length: 5 });\n            }\n\n            if (source === '^key_') {\n                return `key_${this.factory.string.alphanumeric(10)}`;\n            }\n        }\n\n        return this.factory.string.alphanumeric(10);\n    }\n\n    private generateFromZodType(\n        schema: ZodType,\n        currentDepth: number,\n    ): unknown {\n        const isV3String =\n            hasZodV3Structure(schema) &&\n            getSchemaTypeName(schema) === 'ZodString';\n\n        if (!isV3String) {\n            const stringFormatResult = this.tryGenerateFromMapping(\n                schema,\n                zodStringFormats,\n                this.stringFormatGenerators,\n            );\n            if (stringFormatResult !== this.NOT_FOUND) {\n                return stringFormatResult;\n            }\n\n            const dateFormatResult = this.tryGenerateFromMapping(\n                schema,\n                zodDateFormats,\n                this.dateFormatGenerators,\n            );\n            if (dateFormatResult !== this.NOT_FOUND) {\n                return dateFormatResult;\n            }\n        }\n\n        const primitiveResult = this.tryGenerateFromMapping(\n            schema,\n            zodTypeGuards,\n            {\n                ...primitiveTypeHandlers,\n                date: (generator: ZodSchemaGenerator, schema: ZodDate) =>\n                    generator.generateDate(schema),\n                enum: (generator: ZodSchemaGenerator, schema: ZodEnum) => {\n                    const values = schemaHelpers.getEnumValues(schema);\n                    return generator.factory.helpers.arrayElement(values);\n                },\n                literal: (_: ZodSchemaGenerator, schema: ZodLiteral) => {\n                    return schemaHelpers.getLiteralValue(schema);\n                },\n                number: (generator: ZodSchemaGenerator, schema: ZodNumber) =>\n                    generator.generateNumber(schema),\n                string: (generator: ZodSchemaGenerator, schema: ZodString) =>\n                    generator.generateString(schema),\n            } as unknown as Record<string, SchemaGeneratorFunction>,\n        );\n        if (primitiveResult !== this.NOT_FOUND) {\n            return primitiveResult;\n        }\n\n        if (zodTypeGuards.tuple(schema)) {\n            return this.generateTuple(schema, currentDepth);\n        }\n        if (zodTypeGuards.map(schema)) {\n            return this.generateMap(schema, currentDepth);\n        }\n        if (zodTypeGuards.set(schema)) {\n            return this.generateSet(schema, currentDepth);\n        }\n        if (zodTypeGuards.array(schema)) {\n            return this.generateArray(schema, currentDepth);\n        }\n        if (zodTypeGuards.object(schema)) {\n            return this.generateObject(schema, currentDepth);\n        }\n        if (zodTypeGuards.record(schema)) {\n            return this.generateRecord(schema, currentDepth);\n        }\n\n        if (zodTypeGuards.default(schema) || zodTypeGuards.catch(schema)) {\n            const innerType = schemaHelpers.getInnerType(schema);\n            if (!innerType) {\n                return this.factory.lorem.word();\n            }\n            return this.generateFromSchema(innerType, currentDepth + 1);\n        }\n        if (zodTypeGuards.optional(schema)) {\n            const innerType = schemaHelpers.getInnerType(schema);\n            if (!innerType) {\n                return undefined;\n            }\n            return this.factory.datatype.boolean({ probability: 0.7 })\n                ? this.generateFromSchema(innerType, currentDepth + 1)\n                : undefined;\n        }\n        if (zodTypeGuards.nullable(schema)) {\n            const innerType = schemaHelpers.getInnerType(schema);\n            if (!innerType) {\n                return null;\n            }\n            return this.factory.datatype.boolean({ probability: 0.8 })\n                ? this.generateFromSchema(innerType, currentDepth + 1)\n                : null;\n        }\n\n        if (zodTypeGuards.union(schema)) {\n            const options = schemaHelpers.getUnionOptions(schema);\n            if (options.length === 0) {\n                return this.factory.lorem.word();\n            }\n            const randomOption = this.factory.helpers.arrayElement(options);\n            return this.generateFromSchema(randomOption, currentDepth + 1);\n        }\n        if (zodTypeGuards.discriminatedUnion(schema)) {\n            const def = schemaHelpers.getDef(schema);\n            const options = getProperty(def, ['options']) as\n                | Record<string, ZodType>\n                | undefined\n                | ZodType[];\n            if (!options) {\n                return this.factory.lorem.word();\n            }\n            const optionsArray = Array.isArray(options)\n                ? options\n                : Object.values(options);\n            const randomOption =\n                this.factory.helpers.arrayElement(optionsArray);\n            return this.generateFromSchema(randomOption, currentDepth + 1);\n        }\n        if (zodTypeGuards.intersection(schema)) {\n            const def = schemaHelpers.getDef(schema);\n            const left = getProperty(def, ['left']) as undefined | ZodType;\n            const right = getProperty(def, ['right']) as undefined | ZodType;\n\n            if (!left || !right) {\n                return this.factory.lorem.word();\n            }\n\n            const leftResult = this.generateFromSchema(left, currentDepth + 1);\n            const rightResult = this.generateFromSchema(\n                right,\n                currentDepth + 1,\n            );\n\n            if (\n                isObject(leftResult) &&\n                isNotNullish(leftResult) &&\n                isObject(rightResult) &&\n                isNotNullish(rightResult)\n            ) {\n                return merge(leftResult, rightResult);\n            }\n            return leftResult;\n        }\n\n        if (zodTypeGuards.transform(schema) || zodTypeGuards.pipe(schema)) {\n            if (zodTypeGuards.pipe(schema)) {\n                const def = schemaHelpers.getDef(schema);\n                const out = getProperty(def, ['out']) as undefined | ZodType;\n                if (out) {\n                    return this.generateFromSchema(out, currentDepth + 1);\n                }\n            }\n\n            if (zodTypeGuards.transform(schema)) {\n                return this.factory.lorem.word();\n            }\n        }\n\n        if (zodTypeGuards.promise(schema)) {\n            throw new Error(\n                'z.promise() schemas require custom type handlers. Use .withTypeHandler(\"ZodPromise\", yourHandler) to provide a custom promise generator.',\n            );\n        }\n\n        return this.factory.lorem.word();\n    }\n\n    private generateMap(\n        schema: ZodMap,\n        currentDepth: number,\n    ): Map<unknown, unknown> {\n        const def = schemaHelpers.getDef(schema);\n        const keyType = getProperty(def, ['keyType']) as undefined | ZodType;\n        const valueType = getProperty(def, ['valueType']) as\n            | undefined\n            | ZodType;\n        const map = new Map();\n        const size = this.factory.number.int({\n            max: COLLECTION_SIZES.DEFAULT_MAP_MAX,\n            min: COLLECTION_SIZES.DEFAULT_MAP_MIN,\n        });\n\n        if (!keyType || !valueType) {\n            return map;\n        }\n\n        for (let i = 0; i < size; i++) {\n            const key = this.generateFromSchema(keyType, currentDepth + 1);\n            const value = this.generateFromSchema(valueType, currentDepth + 1);\n            map.set(key, value);\n        }\n\n        return map;\n    }\n\n    private generateNumber(schema: ZodNumber): number {\n        const checks = schemaHelpers.getChecks(schema);\n        const constraints: NumberConstraints = { isInt: false };\n\n        for (const check of checks) {\n            if (isLessThanCheck(check)) {\n                const inclusive = schemaHelpers.getCheckInclusive(check);\n                const value = schemaHelpers.getCheckValue(check);\n                if (typeof value === 'number') {\n                    constraints.max = inclusive\n                        ? value\n                        : value - NUMBER_CONSTRAINTS.PRECISION_OFFSET;\n                }\n            } else if (isGreaterThanCheck(check)) {\n                const inclusive = schemaHelpers.getCheckInclusive(check);\n                const value = schemaHelpers.getCheckValue(check);\n                if (typeof value === 'number') {\n                    constraints.min = inclusive\n                        ? value\n                        : value + NUMBER_CONSTRAINTS.PRECISION_OFFSET;\n                }\n            } else if (isMultipleOfCheck(check)) {\n                const value = schemaHelpers.getCheckValue(check);\n                if (typeof value === 'number') {\n                    constraints.step = value;\n                }\n            } else if (isNumberFormatCheck(check)) {\n                const format = schemaHelpers.getCheckFormat(check);\n                if (\n                    format === 'int32' ||\n                    format === 'uint32' ||\n                    format === 'safeint'\n                ) {\n                    constraints.isInt = true;\n                }\n            } else {\n                const v3Kind = getProperty(check, ['kind']) as\n                    | string\n                    | undefined;\n                if (v3Kind === 'int') {\n                    constraints.isInt = true;\n                }\n            }\n        }\n\n        const { isInt, max, min, step } = constraints;\n\n        const hasStepWithoutMin = step && min === undefined;\n\n        const safeMin =\n            min !== undefined && Number.isFinite(min)\n                ? min\n                : hasStepWithoutMin\n                  ? 0\n                  : isInt\n                    ? NUMBER_CONSTRAINTS.DEFAULT_INT_MIN\n                    : NUMBER_CONSTRAINTS.DEFAULT_MIN;\n        const safeMax =\n            max !== undefined && Number.isFinite(max)\n                ? max\n                : isInt\n                  ? NUMBER_CONSTRAINTS.DEFAULT_INT_MAX\n                  : NUMBER_CONSTRAINTS.DEFAULT_MAX;\n\n        const options = { max: safeMax, min: safeMin };\n        let result = isInt\n            ? this.factory.number.int(options)\n            : this.factory.number.float(options);\n\n        if (step && step > 0) {\n            if (step < 1) {\n                const precision = Math.ceil(-Math.log10(step));\n                result = Math.round(result / step) * step;\n                result =\n                    Math.round(result * Math.pow(10, precision)) /\n                    Math.pow(10, precision);\n            } else {\n                result = Math.round(result / step) * step;\n            }\n            if (Object.is(result, -0)) {\n                result = 0;\n            }\n        }\n\n        if (isInt) {\n            result = Math.floor(result);\n        }\n\n        if (Object.is(result, -0)) {\n            result = 0;\n        }\n\n        if (step && result === 0) {\n            result = step;\n        }\n\n        return Number.isFinite(result) ? result : 0;\n    }\n\n    private generateObject(\n        schema: ZodObject,\n        currentDepth: number,\n    ): Record<string, unknown> {\n        const maxDepth = this.factory.options?.maxDepth ?? DEFAULT_MAX_DEPTH;\n        const result: Record<string, unknown> = {};\n\n        if (currentDepth >= maxDepth) {\n            return {};\n        }\n\n        const shape = schemaHelpers.getObjectShape(schema);\n        if (!shape) {\n            return {};\n        }\n\n        for (const [key, fieldSchema] of Object.entries(shape)) {\n            result[key] = this.generateFromSchema(\n                fieldSchema,\n                currentDepth + 1,\n            );\n        }\n\n        return result;\n    }\n\n    private generateRecord(\n        schema: ZodRecord,\n        currentDepth: number,\n    ): Record<string, unknown> {\n        const def = schemaHelpers.getDef(schema);\n        const keyType = getProperty(def, ['keyType']) as undefined | ZodType;\n        const valueType = schemaHelpers.getRecordValueType(schema);\n        const numKeys = this.factory.number.int({\n            max: COLLECTION_SIZES.DEFAULT_RECORD_MAX,\n            min: COLLECTION_SIZES.DEFAULT_RECORD_MIN,\n        });\n        const result: Record<string, unknown> = {};\n\n        if (!valueType) {\n            return result;\n        }\n\n        for (let i = 0; i < numKeys; i++) {\n            const key = keyType\n                ? String(this.generateFromSchema(keyType, currentDepth + 1))\n                : this.factory.lorem.word();\n            result[key] = this.generateFromSchema(valueType, currentDepth + 1);\n        }\n\n        return result;\n    }\n\n    private generateSet(schema: ZodSet, currentDepth: number): Set<unknown> {\n        const def = schemaHelpers.getDef(schema);\n        const valueType = getProperty(def, ['valueType']) as\n            | undefined\n            | ZodType;\n        const set = new Set();\n        const size = this.factory.number.int({\n            max: COLLECTION_SIZES.DEFAULT_SET_MAX,\n            min: COLLECTION_SIZES.DEFAULT_SET_MIN,\n        });\n\n        if (!valueType) {\n            return set;\n        }\n\n        for (let i = 0; i < size; i++) {\n            const value = this.generateFromSchema(valueType, currentDepth + 1);\n            set.add(value);\n        }\n\n        return set;\n    }\n\n    private generateString(schema: ZodString): string {\n        const checks = schemaHelpers.getChecks(schema);\n\n        for (const check of checks) {\n            if (isStringFormatCheck(check)) {\n                const format = schemaHelpers.getCheckFormat(check);\n                switch (format) {\n                    case 'email': {\n                        return this.factory.internet.email();\n                    }\n                    case 'guid':\n                    case 'uuid': {\n                        return this.factory.string.uuid();\n                    }\n                    case 'regex': {\n                        if (isRegexCheck(check)) {\n                            return this.generateFromRegex(check);\n                        }\n                        break;\n                    }\n                    case undefined: {\n                        break;\n                    }\n                    case 'url': {\n                        return this.factory.internet.url();\n                    }\n                    default: {\n                        break;\n                    }\n                }\n            }\n        }\n\n        const constraints = this.extractSizeConstraints(checks);\n        return this.generateStringWithConstraints(constraints);\n    }\n\n    private generateStringWithConstraints(\n        constraints: SizeConstraints,\n    ): string {\n        const { exactLength, maxLength, minLength } = constraints;\n\n        if (exactLength !== undefined) {\n            return this.factory.string.alphanumeric(exactLength);\n        }\n\n        const targetLength = this.calculateTargetLength(\n            minLength,\n            maxLength,\n            5,\n            20,\n        );\n        return this.factory.string.alphanumeric(targetLength);\n    }\n\n    private generateTuple(schema: ZodTuple, currentDepth: number): unknown[] {\n        const def = schemaHelpers.getDef(schema);\n        const items = getProperty(def, ['items']) as undefined | ZodType[];\n        const rest = getProperty(def, ['rest']) as undefined | ZodType;\n\n        if (!items || !Array.isArray(items)) {\n            return [];\n        }\n\n        const result = items.map((itemSchema) =>\n            this.generateFromSchema(itemSchema, currentDepth + 1),\n        );\n\n        if (rest) {\n            const restCount = this.factory.number.int({ max: 3, min: 0 });\n            for (let i = 0; i < restCount; i++) {\n                result.push(this.generateFromSchema(rest, currentDepth + 1));\n            }\n        }\n\n        return result;\n    }\n\n    private initializeBuiltinHandlers(): void {\n        const builtinHandlers: Record<string, ZodTypeHandler> = {\n            ZodBigInt: (_schema, generator) =>\n                BigInt(\n                    generator.factory.number.int({ max: 1_000_000, min: 0 }),\n                ),\n\n            ZodCustom: () => {\n                throw new Error(\n                    'ZodFactory cannot generate data for z.custom() schemas without additional configuration',\n                );\n            },\n\n            ZodFunction: () => {\n                throw new Error(\n                    'z.function() schemas require custom type handlers. Use .withTypeHandler(\"ZodFunction\", yourHandler) to provide a custom function generator.',\n                );\n            },\n\n            ZodLazy: (schema, generator, currentDepth) => {\n                const def = schemaHelpers.getDef(schema);\n                const getter = getProperty(def, ['getter']) as\n                    | (() => ZodType)\n                    | undefined;\n                const maxDepth =\n                    generator.factory.options?.maxDepth ?? DEFAULT_MAX_DEPTH;\n\n                if (!getter || !isFunction(getter)) {\n                    return {};\n                }\n\n                if (currentDepth >= maxDepth) {\n                    try {\n                        const innerSchema = getter();\n                        return generator.getDepthLimitFallback(innerSchema);\n                    } catch {\n                        return {};\n                    }\n                }\n\n                try {\n                    const innerSchema = getter();\n                    return generator.generateFromSchema(\n                        innerSchema,\n                        currentDepth + 1,\n                    );\n                } catch {\n                    return {};\n                }\n            },\n\n            ZodNaN: () => Number.NaN,\n\n            ZodNever: () => {\n                throw new Error(\n                    'ZodNever should never be reached in factory generation',\n                );\n            },\n\n            ZodPromise: () => {\n                throw new Error(\n                    'z.promise() schemas require custom type handlers. Use .withTypeHandler(\"ZodPromise\", yourHandler) to provide a custom promise generator.',\n                );\n            },\n\n            ZodUnknown: (_schema, generator) => generator.factory.lorem.word(),\n\n            ZodVoid: () => undefined,\n        };\n\n        this.registerTypeHandlers(builtinHandlers);\n    }\n\n    private tryGenerateFromMapping<\n        T extends Record<string, (value: unknown) => boolean>,\n    >(\n        schema: ZodType,\n        guards: T,\n        generators: Record<keyof T, SchemaGeneratorFunction>,\n    ): unknown {\n        for (const [key, guard] of Object.entries(guards)) {\n            if (guard(schema)) {\n                const generator = generators[key as keyof T] as\n                    | ((\n                          generator: ZodSchemaGenerator,\n                          schema?: unknown,\n                      ) => unknown)\n                    | undefined;\n                return generator ? generator(this, schema) : this.NOT_FOUND;\n            }\n        }\n        return this.NOT_FOUND;\n    }\n\n    private tryGenerateFromMetadata(schema: ZodType): unknown {\n        // eslint-disable-next-line @typescript-eslint/unbound-method\n        const metadata = isFunction(schema.meta) ? schema.meta() : undefined;\n        if (!metadata) {\n            return undefined;\n        }\n\n        const { description } = metadata;\n        if (description && this.factory.options?.generators?.[description]) {\n            return this.factory.options.generators[description]();\n        }\n\n        if (metadata.example !== undefined) {\n            return metadata.example;\n        }\n\n        if (metadata.examples) {\n            const examples = Array.isArray(metadata.examples)\n                ? metadata.examples\n                : Object.values(metadata.examples).map((ex) => ex.value ?? ex);\n\n            if (examples.length > 0) {\n                return this.factory.helpers.arrayElement(examples);\n            }\n        }\n\n        return undefined;\n    }\n\n    private tryGenerateFromTypeHandler(\n        schema: ZodType,\n        currentDepth: number,\n    ): unknown {\n        const def = schemaHelpers.getDef(schema);\n        if (!def) {\n            return undefined;\n        }\n\n        const type = getProperty(def, ['type']) as string | undefined;\n        if (!type) {\n            return undefined;\n        }\n\n        const typeName =\n            builtinTypeMapping[type as keyof typeof builtinTypeMapping];\n\n        if (this.typeHandlers.has(typeName)) {\n            return this.typeHandlers.get(typeName)!(schema, this, currentDepth);\n        }\n\n        return undefined;\n    }\n}\n\n/**\n * A factory class for generating type-safe mock data from Zod schemas.\n *\n * ZodFactory extends the base Factory class to provide automatic generation of mock data\n * that conforms to Zod schema definitions. It supports all major Zod types including\n * primitives, objects, arrays, unions, enums, and more.\n *\n * Note: This class requires the `zod` package to be installed and uses Zod v4 API.\n *\n * @example\n * Basic usage with a simple schema:\n * ```typescript\n * import { z } from 'zod/v4';\n * import { ZodFactory } from 'interface-forge/zod';\n *\n * const UserSchema = z.object({\n *   id: z.string().uuid(),\n *   name: z.string().min(1).max(100),\n *   email: z.string().email(),\n *   age: z.number().int().min(18).max(120)\n * });\n *\n * const factory = new ZodFactory(UserSchema);\n * const user = factory.build();\n * ```\n *\n * @example\n * Using partial factory functions for custom generation:\n * ```typescript\n * const factory = new ZodFactory(UserSchema, (faker) => ({\n *   name: faker.person.fullName(),\n * }));\n * ```\n *\n * @template T - Must be a ZodObject type that defines the schema shape\n * @template O - Factory options extending ZodFactoryOptions\n *\n * @see {@link https://github.com/goldziher/interface-forge/blob/main/examples/07-zod-basic.ts | Basic Example}\n * @see {@link https://github.com/goldziher/interface-forge/blob/main/examples/07-zod-integration.ts | Advanced Example}\n * @see {@link https://github.com/goldziher/interface-forge/blob/main/examples/07-zod-testing.ts | Testing Example}\n */\nexport class ZodFactory<\n    // eslint-disable-next-line @typescript-eslint/no-explicit-any\n    T extends ZodObject<any, any>,\n    O extends ZodFactoryOptions = ZodFactoryOptions,\n> extends Factory<z.output<T>, O> {\n    private readonly generator: ZodSchemaGenerator;\n    private readonly schema: T;\n\n    /**\n     * Creates a new ZodFactory instance.\n     *\n     * @param schema - The Zod object schema to generate data from\n     * @param optionsOrFactory - Either factory options or a partial factory function\n     * @param options - Factory options (when second parameter is a factory function)\n     *\n     * @example\n     * Simple schema-based generation:\n     * ```typescript\n     * const factory = new ZodFactory(UserSchema);\n     * ```\n     *\n     * @example\n     * With partial factory function:\n     * ```typescript\n     * const factory = new ZodFactory(UserSchema, (faker) => ({\n     *   name: faker.person.fullName(),\n     *   // Other fields auto-generated\n     * }));\n     * ```\n     *\n     * @example\n     * With options:\n     * ```typescript\n     * const factory = new ZodFactory(UserSchema, {\n     *   maxDepth: 3,\n     *   generators: { userId: () => 'custom-id' }\n     * });\n     * ```\n     */\n    constructor(\n        schema: T,\n        optionsOrFactory?: O | PartialFactoryFunction<z.output<T>>,\n        options?: O,\n    ) {\n        const factoryFunction = isFunction(optionsOrFactory)\n            ? optionsOrFactory\n            : ((() => ({})) as PartialFactoryFunction<z.output<T>>);\n        const factoryOptions = isObject(options)\n            ? options\n            : isObject(optionsOrFactory) && !isFunction(optionsOrFactory)\n              ? (optionsOrFactory as O)\n              : ({} as O);\n\n        super(factoryFunction as FactoryFunction<z.output<T>>, factoryOptions);\n\n        this.schema = schema;\n        this.generator = new ZodSchemaGenerator(\n            this as unknown as ZodFactory<never>,\n        );\n    }\n\n    /**\n     * Generates a batch of instances that conform to the Zod schema.\n     *\n     * @param size - Number of instances to generate\n     * @param kwargs - Optional overrides for each instance\n     * @returns Array of generated instances\n     */\n    batch = (\n        size: number,\n        kwargs?: Partial<z.output<T>> | Partial<z.output<T>>[],\n    ): z.output<T>[] => {\n        if (isAsyncFunction(this.factory)) {\n            throw new ConfigurationError(\n                'Async factory function detected. Use buildAsync() method to build instances with async factories.',\n            );\n        }\n\n        if (!Number.isInteger(size) || size < 0) {\n            throw new Error('Batch size must be a non-negative integer');\n        }\n\n        if (size === 0) {\n            return [];\n        }\n\n        const results: z.output<T>[] = [];\n\n        if (kwargs) {\n            const generator = this.iterate<Partial<z.output<T>>>(\n                Array.isArray(kwargs)\n                    ? kwargs\n                    : ([kwargs] as Partial<z.output<T>>[]),\n            );\n\n            for (let i = 0; i < size; i++) {\n                const overrides = generator.next().value;\n                const generatedSchema = this.generator.generateFromSchema(\n                    this.schema,\n                );\n                const generatedFromFactory = this.factory(this, i);\n\n                const result = this.schema.parse({\n                    ...(generatedSchema as Record<string, unknown>),\n                    ...(generatedFromFactory as Record<string, unknown>),\n                    ...(overrides as Record<string, unknown>),\n                });\n                results.push(result);\n            }\n        } else {\n            for (let i = 0; i < size; i++) {\n                const generatedSchema = this.generator.generateFromSchema(\n                    this.schema,\n                );\n                const generatedFromFactory = this.factory(this, i);\n\n                const result = this.schema.parse({\n                    ...(generatedSchema as Record<string, unknown>),\n                    ...(generatedFromFactory as Record<string, unknown>),\n                });\n                results.push(result);\n            }\n        }\n\n        return results;\n    };\n\n    /**\n     * Builds a single instance that conforms to the Zod schema.\n     *\n     * The build process:\n     * 1. Generates data from the Zod schema constraints\n     * 2. Applies any factory function customizations\n     * 3. Applies the provided overrides\n     * 4. Validates the result against the schema\n     *\n     * @param kwargs - Optional property overrides\n     * @returns A generated instance conforming to the schema\n     *\n     * @example\n     * ```typescript\n     * const user = factory.build({\n     *   role: 'admin',\n     *   isActive: true\n     * });\n     * ```\n     */\n    build = (kwargs?: Partial<z.output<T>>): z.output<T> => {\n        if (isAsyncFunction(this.factory)) {\n            throw new ConfigurationError(\n                'Async factory function detected. Use buildAsync() method to build instances with async factories.',\n            );\n        }\n\n        const hasAsyncHooks =\n            this.beforeBuildHooks.some((hook) => isAsyncFunction(hook)) ||\n            this.afterBuildHooks.some((hook) => isAsyncFunction(hook));\n\n        if (hasAsyncHooks) {\n            throw new ConfigurationError(\n                'Async hooks detected. Use buildAsync() method to build instances with async hooks.',\n            );\n        }\n\n        let params = kwargs ?? {};\n\n        for (const hook of this.beforeBuildHooks) {\n            params = hook(params) as Partial<z.output<T>>;\n        }\n\n        const generatedSchema = this.generator.generateFromSchema(this.schema);\n        const generatedFromFactory = this.factory(this, 0);\n\n        const merged =\n            Array.isArray(generatedSchema) ||\n            typeof generatedSchema !== 'object' ||\n            generatedSchema === null\n                ? generatedSchema\n                : merge(\n                      generatedSchema as Record<string, unknown>,\n                      generatedFromFactory as Record<string, unknown>,\n                      params as Record<string, unknown>,\n                  );\n\n        let result = this.schema.parse(merged);\n\n        for (const hook of this.afterBuildHooks) {\n            result = hook(result) as z.output<T>;\n        }\n\n        return result;\n    };\n\n    /**\n     * Register a custom handler for a specific Zod type.\n     * Allows customization of how specific Zod types are generated.\n     *\n     * @param typeName - The Zod type name (e.g., 'ZodCustom', 'ZodBigInt')\n     * @param handler - Function that generates values for this type\n     * @returns The factory instance for method chaining\n     *\n     * @example\n     * const factory = new ZodFactory(schema)\n     *   .withTypeHandler('ZodCustom', (schema, generator) => ({\n     *     customField: generator.factory.lorem.word()\n     *   }))\n     *   .withTypeHandler('ZodBigInt', () => BigInt(42));\n     */\n    withTypeHandler(typeName: string, handler: ZodTypeHandler): this {\n        this.generator.registerTypeHandler(typeName, handler);\n        return this;\n    }\n\n    /**\n     * Register multiple type handlers at once.\n     *\n     * @param handlers - Object mapping type names to handler functions\n     * @returns The factory instance for method chaining\n     *\n     * @example\n     * const factory = new ZodFactory(schema).withTypeHandlers({\n     *   ZodCustom: (schema, generator) => ({ id: generator.factory.string.uuid() }),\n     *   ZodBigInt: () => BigInt(Math.floor(Math.random() * 1000))\n     * });\n     */\n    withTypeHandlers(handlers: Record<string, ZodTypeHandler>): this {\n        this.generator.registerTypeHandlers(handlers);\n        return this;\n    }\n}\n"],"names":["$constructor","name","initializer","params","init","inst","def","_a","k","_","Parent","Definition","fn","$ZodAsyncError","globalConfig","config","newConfig","getEnumValues","entries","numericValues","v","joinValues","array","separator","val","stringifyPrimitive","jsonStringifyReplacer","value","cached","getter","nullish","input","cleanRegex","source","start","end","floatSafeRemainder","step","valDecCount","stepDecCount","decCount","valInt","stepInt","defineLazy","object","key","assignProp","target","prop","randomString","length","chars","str","i","esc","captureStackTrace","_args","isObject","data","allowsEval","F","isPlainObject","o","ctor","prot","propertyKeyTypes","escapeRegex","clone","cl","normalizeParams","_params","optionalKeys","shape","NUMBER_FORMAT_RANGES","pick","schema","mask","newShape","currDef","omit","extend","_shape","merge","a","b","partial","Class","oldShape","required","aborted","x","startIndex","prefixIssues","path","issues","iss","unwrapMessage","message","finalizeIssue","ctx","full","getSizableOrigin","getLengthableOrigin","issue","args","util.jsonStringifyReplacer","$ZodError","$ZodRealError","flattenError","error","mapper","fieldErrors","formErrors","sub","formatError","_mapper","processError","curr","el","_parse","_Err","_ctx","result","core.$ZodAsyncError","e","util.finalizeIssue","core.config","util.captureStackTrace","_parseAsync","_safeParse","errors.$ZodError","safeParse","errors.$ZodRealError","_safeParseAsync","safeParseAsync","cuid","cuid2","ulid","xid","ksuid","nanoid","duration","guid","uuid","version","email","_emoji","emoji","ipv4","ipv6","cidrv4","cidrv6","base64","base64url","hostname","e164","dateSource","date","timeSource","hhmm","time","datetime","opts","timeRegex","string","regex","integer","number","boolean","_null","_undefined","lowercase","uppercase","$ZodCheck","core.$constructor","numericOriginMap","$ZodCheckLessThan","origin","bag","payload","$ZodCheckGreaterThan","$ZodCheckMultipleOf","util.floatSafeRemainder","$ZodCheckNumberFormat","isInt","minimum","maximum","util.NUMBER_FORMAT_RANGES","regexes.integer","$ZodCheckMaxSize","util.nullish","util.getSizableOrigin","$ZodCheckMinSize","$ZodCheckSizeEquals","size","tooBig","$ZodCheckMaxLength","util.getLengthableOrigin","$ZodCheckMinLength","$ZodCheckLengthEquals","$ZodCheckStringFormat","$ZodCheckRegex","$ZodCheckLowerCase","regexes.lowercase","$ZodCheckUpperCase","regexes.uppercase","$ZodCheckIncludes","escapedRegex","util.escapeRegex","pattern","$ZodCheckStartsWith","$ZodCheckEndsWith","$ZodCheckOverwrite","Doc","arg","lines","minIndent","dedented","line","$ZodType","util.defineLazy","util.randomString","checks","ch","runChecks","isAborted","util.aborted","asyncResult","currLen","r","$ZodString","regexes.string","$ZodStringFormat","checks.$ZodCheckStringFormat","$ZodGUID","regexes.guid","$ZodUUID","regexes.uuid","$ZodEmail","regexes.email","$ZodURL","url","regexes.hostname","$ZodEmoji","regexes.emoji","$ZodNanoID","regexes.nanoid","$ZodCUID","regexes.cuid","$ZodCUID2","regexes.cuid2","$ZodULID","regexes.ulid","$ZodXID","regexes.xid","$ZodKSUID","regexes.ksuid","$ZodISODateTime","regexes.datetime","$ZodISODate","regexes.date","$ZodISOTime","regexes.time","$ZodISODuration","regexes.duration","$ZodIPv4","regexes.ipv4","$ZodIPv6","regexes.ipv6","$ZodCIDRv4","regexes.cidrv4","$ZodCIDRv6","regexes.cidrv6","address","prefix","prefixNum","isValidBase64","$ZodBase64","regexes.base64","isValidBase64URL","regexes.base64url","c","padded","$ZodBase64URL","$ZodE164","regexes.e164","isValidJWT","token","algorithm","tokensParts","header","parsedHeader","$ZodJWT","$ZodNumber","regexes.number","received","$ZodNumberFormat","checks.$ZodCheckNumberFormat","$ZodBoolean","regexes.boolean","$ZodUndefined","regexes.undefined","$ZodNull","regexes.null","$ZodAny","$ZodUnknown","$ZodNever","$ZodVoid","$ZodDate","isDate","handleArrayResult","final","index","util.prefixIssues","$ZodArray","proms","item","handleObjectResult","handleOptionalObjectResult","$ZodObject","_normalized","util.cached","keys","okeys","util.optionalKeys","propValues","field","generateFastpass","doc","parseStr","util.esc","ids","id","fastpass","util.isObject","jit","core.globalConfig","fastEnabled","util.allowsEval","catchall","isOptional","unrecognized","keySet","_catchall","t","handleUnionResults","results","$ZodUnion","option","patterns","p","util.cleanRegex","async","$ZodDiscriminatedUnion","_super","pv","disc","map","values","opt","$ZodIntersection","left","right","handleIntersectionResults","mergeValues","util.isPlainObject","bKeys","sharedKeys","newObj","sharedValue","newArray","itemA","itemB","merged","$ZodTuple","items","optStart","tooSmall","handleTupleResult","rest","$ZodRecord","keyResult","$ZodMap","valueResult","handleMapResult","util.propertyKeyTypes","$ZodSet","handleSetResult","$ZodEnum","util.getEnumValues","$ZodLiteral","$ZodTransform","_out","output","$ZodOptional","$ZodNullable","$ZodDefault","handleDefaultResult","$ZodPrefault","$ZodNonOptional","handleNonOptionalResult","$ZodCatch","$ZodPipe","handlePipeResult","$ZodReadonly","handleReadonlyResult","$ZodPromise","inner","$ZodCustom","checks.$ZodCheck","handleRefineResult","_iss","util.issue","parsedType","Sizable","getSizing","Nouns","util.stringifyPrimitive","util.joinValues","adj","sizing","_issue","en","$ZodRegistry","_meta","meta","pm","registry","globalRegistry","_email","util.normalizeParams","_guid","_uuid","_uuidv4","_uuidv6","_uuidv7","_url","_nanoid","_cuid","_cuid2","_ulid","_xid","_ksuid","_ipv4","_ipv6","_cidrv4","_cidrv6","_base64","_base64url","_e164","_jwt","_isoDateTime","_isoDate","_isoTime","_isoDuration","_int","_unknown","_never","_lt","checks.$ZodCheckLessThan","_lte","_gt","checks.$ZodCheckGreaterThan","_gte","_multipleOf","checks.$ZodCheckMultipleOf","_maxSize","checks.$ZodCheckMaxSize","_minSize","checks.$ZodCheckMinSize","_size","checks.$ZodCheckSizeEquals","_maxLength","checks.$ZodCheckMaxLength","_minLength","checks.$ZodCheckMinLength","_length","checks.$ZodCheckLengthEquals","_regex","checks.$ZodCheckRegex","_lowercase","checks.$ZodCheckLowerCase","_uppercase","checks.$ZodCheckUpperCase","_includes","includes","checks.$ZodCheckIncludes","_startsWith","checks.$ZodCheckStartsWith","_endsWith","suffix","checks.$ZodCheckEndsWith","_overwrite","tx","checks.$ZodCheckOverwrite","_normalize","form","_trim","_toLowerCase","_toUpperCase","_array","element","_refine","ZodISODateTime","core.$ZodISODateTime","schemas.ZodStringFormat","core._isoDateTime","ZodISODate","core.$ZodISODate","core._isoDate","ZodISOTime","core.$ZodISOTime","core._isoTime","ZodISODuration","core.$ZodISODuration","core._isoDuration","core.formatError","core.flattenError","ZodRealError","parse","core._parse","parseAsync","core._parseAsync","core._safeParse","core._safeParseAsync","ZodType","core.$ZodType","core.clone","reg","parse.parse","parse.safeParse","parse.parseAsync","parse.safeParseAsync","check","refine","refinement","superRefine","checks.overwrite","optional","nullable","nonoptional","union","intersection","pipe","transform","_default","prefault","_catch","readonly","description","core.globalRegistry","_ZodString","core.$ZodString","checks.regex","checks.includes","checks.startsWith","checks.endsWith","checks.minLength","checks.maxLength","checks.length","checks.lowercase","checks.uppercase","checks.trim","checks.normalize","checks.toLowerCase","checks.toUpperCase","ZodString","core._email","ZodEmail","core._url","ZodURL","core._jwt","ZodJWT","core._emoji","ZodEmoji","core._guid","ZodGUID","core._uuid","ZodUUID","core._uuidv4","core._uuidv6","core._uuidv7","core._nanoid","ZodNanoID","core._cuid","ZodCUID","core._cuid2","ZodCUID2","core._ulid","ZodULID","core._base64","ZodBase64","core._base64url","ZodBase64URL","core._xid","ZodXID","core._ksuid","ZodKSUID","core._ipv4","ZodIPv4","core._ipv6","ZodIPv6","core._cidrv4","ZodCIDRv4","core._cidrv6","ZodCIDRv6","core._e164","ZodE164","iso.datetime","iso.date","iso.time","iso.duration","ZodStringFormat","core.$ZodStringFormat","core.$ZodEmail","core.$ZodGUID","core.$ZodUUID","core.$ZodURL","core.$ZodEmoji","core.$ZodNanoID","core.$ZodCUID","core.$ZodCUID2","core.$ZodULID","core.$ZodXID","core.$ZodKSUID","core.$ZodIPv4","core.$ZodIPv6","core.$ZodCIDRv4","core.$ZodCIDRv6","core.$ZodBase64","core.$ZodBase64URL","core.$ZodE164","core.$ZodJWT","ZodNumber","core.$ZodNumber","checks.gt","checks.gte","checks.lt","checks.lte","int","checks.multipleOf","ZodNumberFormat","core.$ZodNumberFormat","core._int","ZodBoolean","core.$ZodBoolean","ZodUndefined","core.$ZodUndefined","ZodNull","core.$ZodNull","ZodAny","core.$ZodAny","ZodUnknown","core.$ZodUnknown","unknown","core._unknown","ZodNever","core.$ZodNever","never","core._never","ZodVoid","core.$ZodVoid","ZodDate","core.$ZodDate","ZodArray","core.$ZodArray","minLength","maxLength","len","core._array","ZodObject","core.$ZodObject","_enum","incoming","util.extend","other","util.merge","util.pick","util.omit","util.partial","ZodOptional","util.required","ZodNonOptional","ZodUnion","core.$ZodUnion","options","ZodDiscriminatedUnion","core.$ZodDiscriminatedUnion","ZodIntersection","core.$ZodIntersection","ZodTuple","core.$ZodTuple","ZodRecord","core.$ZodRecord","ZodMap","core.$ZodMap","ZodSet","core.$ZodSet","core._minSize","core._maxSize","core._size","ZodEnum","core.$ZodEnum","newEntries","ZodLiteral","core.$ZodLiteral","ZodTransform","core.$ZodTransform","core.$ZodOptional","innerType","ZodNullable","core.$ZodNullable","ZodDefault","core.$ZodDefault","defaultValue","ZodPrefault","core.$ZodPrefault","core.$ZodNonOptional","ZodCatch","core.$ZodCatch","catchValue","ZodPipe","core.$ZodPipe","in_","out","ZodReadonly","core.$ZodReadonly","ZodPromise","core.$ZodPromise","ZodCustom","core.$ZodCustom","core.$ZodCheck","core._refine","schemaHelpers","getProperty","v4Format","v3Kind","v4Inclusive","v3Inclusive","v4CheckType","v4Value","v4Minimum","v4Maximum","v4Length","v3Value","v3Minimum","v3Maximum","v4Def","v4Entries","v4Values","hasMethod","hasProperty","type","hasZodV4Structure","hasZodV3Structure","getSchemaTypeName","createZodTypeGuard","constructor","typeName","createTypeGuard","zodTypeGuards","ZodArrayClass","ZodDateClass","ZodEnumClass","ZodLiteralClass","ZodMapClass","ZodNumberClass","ZodObjectClass","ZodRecordClass","ZodSetClass","ZodStringClass","ZodTupleClass","zodStringFormats","zodDateFormats","primitiveTypeHandlers","generator","builtinTypeMapping","isStringFormatCheck","isRegexCheck","v3Regex","isLessThanCheck","isGreaterThanCheck","isMultipleOfCheck","isNumberFormatCheck","isMaxLengthCheck","isMinLengthCheck","isLengthEqualsCheck","ZodSchemaGenerator","factory","__publicField","hours","minutes","seconds","countryCode","signature","STRING_LENGTHS","currentDepth","metadataResult","handlerResult","format","handler","handlers","constraints","exactLength","min","max","defaultMin","defaultMax","maxDepth","DEFAULT_MAX_DEPTH","itemSchema","v3ExactLength","v3MinLength","v3MaxLength","minDate","maxDate","checkType","checkValue","v4Pattern","v3Pattern","stringFormatResult","dateFormatResult","primitiveResult","randomOption","optionsArray","leftResult","rightResult","isNotNullish","keyType","valueType","COLLECTION_SIZES","inclusive","NUMBER_CONSTRAINTS","hasStepWithoutMin","safeMin","precision","fieldSchema","numKeys","set","targetLength","restCount","builtinHandlers","_schema","isFunction","innerSchema","guards","generators","guard","metadata","examples","ex","ZodFactory","Factory","optionsOrFactory","factoryFunction","factoryOptions","kwargs","isAsyncFunction","ConfigurationError","overrides","generatedSchema","generatedFromFactory","hook"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16]}