import { createRequire as __zcodeCreateRequire } from "node:module"; const require = __zcodeCreateRequire(import.meta.url); var __defProp = Object.defineProperty; var __export = (target, all) => { for (var name in all) __defProp(target, name, { get: all[name], enumerable: true }); }; // src/server.ts import { resolve } from "node:path"; import { isMainThread, parentPort, Worker, workerData } from "node:worker_threads"; // ../../../../node_modules/@modelcontextprotocol/server/dist/chunk-Br0eD_fh.mjs var __create = Object.create; var __defProp2 = Object.defineProperty; var __getOwnPropDesc = Object.getOwnPropertyDescriptor; var __getOwnPropNames = Object.getOwnPropertyNames; var __getProtoOf = Object.getPrototypeOf; var __hasOwnProp = Object.prototype.hasOwnProperty; var __commonJSMin = (cb, mod) => () => (mod || cb((mod = { exports: {} }).exports, mod), mod.exports); var __exportAll = (all, symbols) => { let target = {}; for (var name in all) { __defProp2(target, name, { get: all[name], enumerable: true }); } if (symbols) { __defProp2(target, Symbol.toStringTag, { value: "Module" }); } return target; }; var __copyProps = (to, from, except, desc) => { if (from && typeof from === "object" || typeof from === "function") { for (var keys = __getOwnPropNames(from), i = 0, n = keys.length, key; i < n; i++) { key = keys[i]; if (!__hasOwnProp.call(to, key) && key !== except) { __defProp2(to, key, { get: ((k) => from[k]).bind(null, key), enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); } } } return to; }; var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp2(target, "default", { value: mod, enumerable: true }) : target, mod)); // ../../../../node_modules/@modelcontextprotocol/server/dist/dialects-DoSzNhcb.mjs var DRAFT_2020_12_URIS = /* @__PURE__ */ new Set(["https://json-schema.org/draft/2020-12/schema", "http://json-schema.org/draft/2020-12/schema"]); var DRAFT_2019_09_URIS = /* @__PURE__ */ new Set(["https://json-schema.org/draft/2019-09/schema", "http://json-schema.org/draft/2019-09/schema"]); var DRAFT_07_URIS = /* @__PURE__ */ new Set(["https://json-schema.org/draft-07/schema", "http://json-schema.org/draft-07/schema"]); var DRAFT_06_URIS = /* @__PURE__ */ new Set(["https://json-schema.org/draft-06/schema", "http://json-schema.org/draft-06/schema"]); function declares2019Dialect($schema) { return typeof $schema === "string" && DRAFT_2019_09_URIS.has($schema.replace(/#$/, "")); } function declaredDialect(schema, remedy) { if (!("$schema" in schema) || typeof schema.$schema !== "string") return "2020-12"; const declared = schema.$schema.replace(/#$/, ""); if (DRAFT_2020_12_URIS.has(declared)) return "2020-12"; if (DRAFT_2019_09_URIS.has(declared)) return "2019-09"; if (DRAFT_07_URIS.has(declared) || DRAFT_06_URIS.has(declared)) return "draft-7"; throw new Error(`JSON Schema declares an unsupported dialect ("$schema": "${schema.$schema.slice(0, 200)}"). The default validator supports JSON Schema 2020-12, 2019-09, draft-07, and draft-06; ${remedy}`); } // ../../../../node_modules/zod/v4/classic/external.js var external_exports = {}; __export(external_exports, { $brand: () => $brand, $input: () => $input, $output: () => $output, INVALID: () => INVALID, NEVER: () => NEVER, TimePrecision: () => TimePrecision, ZodAny: () => ZodAny, ZodArray: () => ZodArray, ZodBase64: () => ZodBase64, ZodBase64URL: () => ZodBase64URL, ZodBigInt: () => ZodBigInt, ZodBigIntFormat: () => ZodBigIntFormat, ZodBoolean: () => ZodBoolean, ZodCIDRv4: () => ZodCIDRv4, ZodCIDRv6: () => ZodCIDRv6, ZodCUID: () => ZodCUID, ZodCUID2: () => ZodCUID2, ZodCatch: () => ZodCatch, ZodCodec: () => ZodCodec, ZodCompileAsyncError: () => ZodCompileAsyncError, ZodCompileUnsupportedError: () => ZodCompileUnsupportedError, ZodCreditCard: () => ZodCreditCard, ZodCustom: () => ZodCustom, ZodCustomStringFormat: () => ZodCustomStringFormat, ZodDate: () => ZodDate, ZodDefault: () => ZodDefault, ZodDiscriminatedUnion: () => ZodDiscriminatedUnion, ZodE164: () => ZodE164, ZodEmail: () => ZodEmail, ZodEmoji: () => ZodEmoji, ZodEnum: () => ZodEnum, ZodError: () => ZodError, ZodExactOptional: () => ZodExactOptional, ZodFile: () => ZodFile, ZodFirstPartyTypeKind: () => ZodFirstPartyTypeKind, ZodFunction: () => ZodFunction, ZodGUID: () => ZodGUID, ZodIBAN: () => ZodIBAN, ZodIPv4: () => ZodIPv4, ZodIPv6: () => ZodIPv6, ZodISODate: () => ZodISODate, ZodISODateTime: () => ZodISODateTime, ZodISODuration: () => ZodISODuration, ZodISOTime: () => ZodISOTime, ZodInstanceOf: () => ZodInstanceOf, ZodIntersection: () => ZodIntersection, ZodIssueCode: () => ZodIssueCode, ZodJWT: () => ZodJWT, ZodKSUID: () => ZodKSUID, ZodLazy: () => ZodLazy, ZodLiteral: () => ZodLiteral, ZodMAC: () => ZodMAC, ZodMap: () => ZodMap, ZodNaN: () => ZodNaN, ZodNanoID: () => ZodNanoID, ZodNever: () => ZodNever, ZodNonOptional: () => ZodNonOptional, ZodNull: () => ZodNull, ZodNullable: () => ZodNullable, ZodNumber: () => ZodNumber, ZodNumberFormat: () => ZodNumberFormat, ZodObject: () => ZodObject, ZodOptional: () => ZodOptional, ZodPipe: () => ZodPipe, ZodPrefault: () => ZodPrefault, ZodPreprocess: () => ZodPreprocess, ZodPromise: () => ZodPromise, ZodReadonly: () => ZodReadonly, ZodRealError: () => ZodRealError, ZodRecord: () => ZodRecord, ZodSet: () => ZodSet, ZodString: () => ZodString, ZodStringFormat: () => ZodStringFormat, ZodSuccess: () => ZodSuccess, ZodSymbol: () => ZodSymbol, ZodTemplateLiteral: () => ZodTemplateLiteral, ZodTransform: () => ZodTransform, ZodTuple: () => ZodTuple, ZodType: () => ZodType, ZodULID: () => ZodULID, ZodURL: () => ZodURL, ZodUUID: () => ZodUUID, ZodUndefined: () => ZodUndefined, ZodUnion: () => ZodUnion, ZodUnknown: () => ZodUnknown, ZodVoid: () => ZodVoid, ZodXID: () => ZodXID, ZodXor: () => ZodXor, _ZodString: () => _ZodString, _default: () => _default2, _function: () => _function, any: () => any, array: () => array, base64: () => base642, base64url: () => base64url2, bigint: () => bigint2, boolean: () => boolean2, catch: () => _catch2, check: () => check, cidrv4: () => cidrv42, cidrv6: () => cidrv62, clone: () => clone, codec: () => codec, coerce: () => coerce_exports, compile: () => compile, config: () => config, core: () => core_exports2, creditCard: () => creditCard2, cuid: () => cuid3, cuid2: () => cuid22, currencyCode: () => currencyCode2, custom: () => custom, date: () => date2, decode: () => decode2, decodeAsync: () => decodeAsync2, deepPartial: () => deepPartial, describe: () => describe2, discriminatedUnion: () => discriminatedUnion, e164: () => e1642, email: () => email2, emoji: () => emoji2, encode: () => encode2, encodeAsync: () => encodeAsync2, endsWith: () => _endsWith, enum: () => _enum2, exactOptional: () => exactOptional, file: () => file, flattenError: () => flattenError, float32: () => float32, float64: () => float64, formatError: () => formatError, fromJSONSchema: () => fromJSONSchema, function: () => _function, getDiscriminatedOption: () => getDiscriminatedOption, getErrorMap: () => getErrorMap, globalRegistry: () => globalRegistry, gt: () => _gt, gte: () => _gte, guid: () => guid2, hash: () => hash, hex: () => hex2, hostname: () => hostname2, httpUrl: () => httpUrl, iban: () => iban2, includes: () => _includes, input: () => input, instanceof: () => _instanceof, int: () => int, int32: () => int32, int64: () => int64, intersection: () => intersection, invertCodec: () => invertCodec, ipv4: () => ipv42, ipv6: () => ipv62, iso: () => iso_exports, json: () => json, jwt: () => jwt, keyof: () => keyof, ksuid: () => ksuid2, lazy: () => lazy, length: () => _length, literal: () => literal, locales: () => locales_exports, looseObject: () => looseObject, looseRecord: () => looseRecord, lowercase: () => _lowercase, lt: () => _lt, lte: () => _lte, mac: () => mac2, map: () => map, maxLength: () => _maxLength, maxSize: () => _maxSize, memoizer: () => memoizer, meta: () => meta2, mime: () => _mime, minLength: () => _minLength, minSize: () => _minSize, multipleOf: () => _multipleOf, nan: () => nan, nanoid: () => nanoid2, nativeEnum: () => nativeEnum, negative: () => _negative, never: () => never, nonnegative: () => _nonnegative, nonoptional: () => nonoptional, nonpositive: () => _nonpositive, normalize: () => _normalize, null: () => _null3, nullable: () => nullable, nullish: () => nullish2, number: () => number2, object: () => object, optional: () => optional, output: () => output, overwrite: () => _overwrite, parse: () => parse2, parseAsync: () => parseAsync2, partialRecord: () => partialRecord, pipe: () => pipe, positive: () => _positive, prefault: () => prefault, preprocess: () => preprocess, prettifyError: () => prettifyError, promise: () => promise, properties: () => _properties, property: () => _property, readonly: () => readonly, record: () => record, refine: () => refine, regex: () => _regex, regexes: () => regexes_exports, registry: () => registry, safeDecode: () => safeDecode2, safeDecodeAsync: () => safeDecodeAsync2, safeEncode: () => safeEncode2, safeEncodeAsync: () => safeEncodeAsync2, safeParse: () => safeParse2, safeParseAsync: () => safeParseAsync2, set: () => set, setErrorMap: () => setErrorMap, size: () => _size, slugify: () => _slugify, startsWith: () => _startsWith, strictObject: () => strictObject, string: () => string2, stringFormat: () => stringFormat, stringbool: () => stringbool, success: () => success, superRefine: () => superRefine, symbol: () => symbol, templateLiteral: () => templateLiteral, toJSONSchema: () => toJSONSchema, toLowerCase: () => _toLowerCase, toUpperCase: () => _toUpperCase, toZod: () => toZod, transform: () => transform, treeifyError: () => treeifyError, trim: () => _trim, tuple: () => tuple, uint32: () => uint32, uint64: () => uint64, ulid: () => ulid2, undefined: () => _undefined3, union: () => union, unknown: () => unknown, uppercase: () => _uppercase, url: () => url, util: () => util_exports, uuid: () => uuid2, uuidv4: () => uuidv4, uuidv6: () => uuidv6, uuidv7: () => uuidv7, validate: () => validate, validateAsync: () => validateAsync, void: () => _void2, withParser: () => withParser, xid: () => xid2, xor: () => xor }); // ../../../../node_modules/zod/v4/core/index.js var core_exports2 = {}; __export(core_exports2, { $ZodAny: () => $ZodAny, $ZodArray: () => $ZodArray, $ZodAsyncError: () => $ZodAsyncError, $ZodBase64: () => $ZodBase64, $ZodBase64URL: () => $ZodBase64URL, $ZodBigInt: () => $ZodBigInt, $ZodBigIntFormat: () => $ZodBigIntFormat, $ZodBoolean: () => $ZodBoolean, $ZodCIDRv4: () => $ZodCIDRv4, $ZodCIDRv6: () => $ZodCIDRv6, $ZodCUID: () => $ZodCUID, $ZodCUID2: () => $ZodCUID2, $ZodCatch: () => $ZodCatch, $ZodCheck: () => $ZodCheck, $ZodCheckBigIntFormat: () => $ZodCheckBigIntFormat, $ZodCheckEndsWith: () => $ZodCheckEndsWith, $ZodCheckGreaterThan: () => $ZodCheckGreaterThan, $ZodCheckIncludes: () => $ZodCheckIncludes, $ZodCheckLengthEquals: () => $ZodCheckLengthEquals, $ZodCheckLessThan: () => $ZodCheckLessThan, $ZodCheckLowerCase: () => $ZodCheckLowerCase, $ZodCheckMaxLength: () => $ZodCheckMaxLength, $ZodCheckMaxSize: () => $ZodCheckMaxSize, $ZodCheckMimeType: () => $ZodCheckMimeType, $ZodCheckMinLength: () => $ZodCheckMinLength, $ZodCheckMinSize: () => $ZodCheckMinSize, $ZodCheckMultipleOf: () => $ZodCheckMultipleOf, $ZodCheckNumberFormat: () => $ZodCheckNumberFormat, $ZodCheckOverwrite: () => $ZodCheckOverwrite, $ZodCheckProperties: () => $ZodCheckProperties, $ZodCheckProperty: () => $ZodCheckProperty, $ZodCheckRegex: () => $ZodCheckRegex, $ZodCheckSizeEquals: () => $ZodCheckSizeEquals, $ZodCheckStartsWith: () => $ZodCheckStartsWith, $ZodCheckStringFormat: () => $ZodCheckStringFormat, $ZodCheckUpperCase: () => $ZodCheckUpperCase, $ZodCodec: () => $ZodCodec, $ZodCreditCard: () => $ZodCreditCard, $ZodCustom: () => $ZodCustom, $ZodCustomStringFormat: () => $ZodCustomStringFormat, $ZodCyclicError: () => $ZodCyclicError, $ZodDate: () => $ZodDate, $ZodDefault: () => $ZodDefault, $ZodDiscriminatedUnion: () => $ZodDiscriminatedUnion, $ZodE164: () => $ZodE164, $ZodEmail: () => $ZodEmail, $ZodEmoji: () => $ZodEmoji, $ZodEncodeError: () => $ZodEncodeError, $ZodEnum: () => $ZodEnum, $ZodError: () => $ZodError, $ZodExactOptional: () => $ZodExactOptional, $ZodFile: () => $ZodFile, $ZodFunction: () => $ZodFunction, $ZodGUID: () => $ZodGUID, $ZodIBAN: () => $ZodIBAN, $ZodIPv4: () => $ZodIPv4, $ZodIPv6: () => $ZodIPv6, $ZodISODate: () => $ZodISODate, $ZodISODateTime: () => $ZodISODateTime, $ZodISODuration: () => $ZodISODuration, $ZodISOTime: () => $ZodISOTime, $ZodIntersection: () => $ZodIntersection, $ZodJWT: () => $ZodJWT, $ZodKSUID: () => $ZodKSUID, $ZodLazy: () => $ZodLazy, $ZodLiteral: () => $ZodLiteral, $ZodMAC: () => $ZodMAC, $ZodMap: () => $ZodMap, $ZodNaN: () => $ZodNaN, $ZodNanoID: () => $ZodNanoID, $ZodNever: () => $ZodNever, $ZodNonOptional: () => $ZodNonOptional, $ZodNull: () => $ZodNull, $ZodNullable: () => $ZodNullable, $ZodNumber: () => $ZodNumber, $ZodNumberFormat: () => $ZodNumberFormat, $ZodObject: () => $ZodObject, $ZodObjectJIT: () => $ZodObjectJIT, $ZodOptional: () => $ZodOptional, $ZodPipe: () => $ZodPipe, $ZodPrefault: () => $ZodPrefault, $ZodPreprocess: () => $ZodPreprocess, $ZodPromise: () => $ZodPromise, $ZodReadonly: () => $ZodReadonly, $ZodRealError: () => $ZodRealError, $ZodRecord: () => $ZodRecord, $ZodRegistry: () => $ZodRegistry, $ZodSet: () => $ZodSet, $ZodString: () => $ZodString, $ZodStringFormat: () => $ZodStringFormat, $ZodSuccess: () => $ZodSuccess, $ZodSymbol: () => $ZodSymbol, $ZodTemplateLiteral: () => $ZodTemplateLiteral, $ZodTransform: () => $ZodTransform, $ZodTuple: () => $ZodTuple, $ZodType: () => $ZodType, $ZodULID: () => $ZodULID, $ZodURL: () => $ZodURL, $ZodUUID: () => $ZodUUID, $ZodUndefined: () => $ZodUndefined, $ZodUnion: () => $ZodUnion, $ZodUnknown: () => $ZodUnknown, $ZodVoid: () => $ZodVoid, $ZodXID: () => $ZodXID, $ZodXor: () => $ZodXor, $brand: () => $brand, $constructor: () => $constructor, $input: () => $input, $output: () => $output, Doc: () => Doc, INVALID: () => INVALID, JSONSchema: () => json_schema_exports, JSONSchemaGenerator: () => JSONSchemaGenerator, NEVER: () => NEVER, TimePrecision: () => TimePrecision, URL_BAD_FORMAT: () => URL_BAD_FORMAT, URL_UNPARSEABLE: () => URL_UNPARSEABLE, ZodCompileAsyncError: () => ZodCompileAsyncError, ZodCompileUnsupportedError: () => ZodCompileUnsupportedError, _any: () => _any, _array: () => _array, _base64: () => _base64, _base64url: () => _base64url, _bigint: () => _bigint, _boolean: () => _boolean, _catch: () => _catch, _check: () => _check, _cidrv4: () => _cidrv4, _cidrv6: () => _cidrv6, _coercedBigint: () => _coercedBigint, _coercedBoolean: () => _coercedBoolean, _coercedDate: () => _coercedDate, _coercedNumber: () => _coercedNumber, _coercedString: () => _coercedString, _creditCard: () => _creditCard, _cuid: () => _cuid, _cuid2: () => _cuid2, _custom: () => _custom, _date: () => _date, _decode: () => _decode, _decodeAsync: () => _decodeAsync, _default: () => _default, _discriminatedUnion: () => _discriminatedUnion, _e164: () => _e164, _email: () => _email, _emoji: () => _emoji2, _encode: () => _encode, _encodeAsync: () => _encodeAsync, _endsWith: () => _endsWith, _enum: () => _enum, _file: () => _file, _float32: () => _float32, _float64: () => _float64, _gt: () => _gt, _gte: () => _gte, _guid: () => _guid, _iban: () => _iban, _includes: () => _includes, _int: () => _int, _int32: () => _int32, _int64: () => _int64, _intersection: () => _intersection, _ipv4: () => _ipv4, _ipv6: () => _ipv6, _isoDate: () => _isoDate, _isoDateTime: () => _isoDateTime, _isoDuration: () => _isoDuration, _isoTime: () => _isoTime, _jwt: () => _jwt, _ksuid: () => _ksuid, _lazy: () => _lazy, _length: () => _length, _literal: () => _literal, _lowercase: () => _lowercase, _lt: () => _lt, _lte: () => _lte, _mac: () => _mac, _map: () => _map, _max: () => _lte, _maxLength: () => _maxLength, _maxSize: () => _maxSize, _mime: () => _mime, _min: () => _gte, _minLength: () => _minLength, _minSize: () => _minSize, _multipleOf: () => _multipleOf, _nan: () => _nan, _nanoid: () => _nanoid, _nativeEnum: () => _nativeEnum, _negative: () => _negative, _never: () => _never, _nonnegative: () => _nonnegative, _nonoptional: () => _nonoptional, _nonpositive: () => _nonpositive, _normalize: () => _normalize, _null: () => _null2, _nullable: () => _nullable, _number: () => _number, _optional: () => _optional, _overwrite: () => _overwrite, _parse: () => _parse, _parseAsync: () => _parseAsync, _pipe: () => _pipe, _positive: () => _positive, _promise: () => _promise, _properties: () => _properties, _property: () => _property, _readonly: () => _readonly, _record: () => _record, _refine: () => _refine, _regex: () => _regex, _safeDecode: () => _safeDecode, _safeDecodeAsync: () => _safeDecodeAsync, _safeEncode: () => _safeEncode, _safeEncodeAsync: () => _safeEncodeAsync, _safeParse: () => _safeParse, _safeParseAsync: () => _safeParseAsync, _set: () => _set, _size: () => _size, _slugify: () => _slugify, _startsWith: () => _startsWith, _string: () => _string, _stringFormat: () => _stringFormat, _stringbool: () => _stringbool, _success: () => _success, _superRefine: () => _superRefine, _symbol: () => _symbol, _templateLiteral: () => _templateLiteral, _toLowerCase: () => _toLowerCase, _toUpperCase: () => _toUpperCase, _transform: () => _transform, _trim: () => _trim, _tuple: () => _tuple, _uint32: () => _uint32, _uint64: () => _uint64, _ulid: () => _ulid, _undefined: () => _undefined2, _union: () => _union, _unknown: () => _unknown, _uppercase: () => _uppercase, _url: () => _url, _uuid: () => _uuid, _uuidv4: () => _uuidv4, _uuidv6: () => _uuidv6, _uuidv7: () => _uuidv7, _void: () => _void, _xid: () => _xid, _xor: () => _xor, base64Charset: () => base64Charset, base64urlCharset: () => base64urlCharset, canParseURL: () => canParseURL, clone: () => clone, compile: () => compile, compileFn: () => compileFn, config: () => config, createStandardJSONSchemaMethod: () => createStandardJSONSchemaMethod, createToJSONSchemaMethod: () => createToJSONSchemaMethod, decode: () => decode, decodeAsync: () => decodeAsync, describe: () => describe, encode: () => encode, encodeAsync: () => encodeAsync, extractDefs: () => extractDefs, finalize: () => finalize, flattenError: () => flattenError, formatError: () => formatError, getDiscriminatedOption: () => getDiscriminatedOption, globalConfig: () => globalConfig, globalRegistry: () => globalRegistry, handleUnrepresentable: () => handleUnrepresentable, initializeContext: () => initializeContext, isBackEdge: () => isBackEdge, isRecursiveSchema: () => isRecursiveSchema, isValidBase64: () => isValidBase64, isValidBase64URL: () => isValidBase64URL, isValidCIDRv6: () => isValidCIDRv6, isValidCreditCard: () => isValidCreditCard, isValidIBAN: () => isValidIBAN, isValidIPv6: () => isValidIPv6, isValidJWT: () => isValidJWT, locales: () => locales_exports, memoizer: () => memoizer, mergeValues: () => mergeValues, meta: () => meta, parse: () => parse, parseAsync: () => parseAsync, parseURLObject: () => parseURLObject, prettifyError: () => prettifyError, process: () => processSchema, processSchema: () => processSchema, regexes: () => regexes_exports, registry: () => registry, safeDecode: () => safeDecode, safeDecodeAsync: () => safeDecodeAsync, safeEncode: () => safeEncode, safeEncodeAsync: () => safeEncodeAsync, safeParse: () => safeParse, safeParseAsync: () => safeParseAsync, standardProps: () => standardProps, stripTabAndNewline: () => stripTabAndNewline, toDotPath: () => toDotPath, toJSONSchema: () => toJSONSchema, toZod: () => toZod, treeifyError: () => treeifyError, urlHostnameOk: () => urlHostnameOk, urlProtocolOk: () => urlProtocolOk, util: () => util_exports, validate: () => validate, validateAsync: () => validateAsync, validateURL: () => validateURL, version: () => version, withParser: () => withParser }); // ../../../../node_modules/zod/v4/core/util.js var util_exports = {}; __export(util_exports, { BIGINT_FORMAT_RANGES: () => BIGINT_FORMAT_RANGES, CONSTANT_CATCH: () => CONSTANT_CATCH, Class: () => Class, NUMBER_FORMAT_RANGES: () => NUMBER_FORMAT_RANGES, aborted: () => aborted, allowsEval: () => allowsEval, assert: () => assert, assertEqual: () => assertEqual, assertIs: () => assertIs, assertNever: () => assertNever, assertNotEqual: () => assertNotEqual, assignProp: () => assignProp, attachSchema: () => attachSchema, base64ToUint8Array: () => base64ToUint8Array, base64urlToUint8Array: () => base64urlToUint8Array, cached: () => cached, captureStackTrace: () => captureStackTrace, cleanEnum: () => cleanEnum, cleanRegex: () => cleanRegex, clone: () => clone, cloneDef: () => cloneDef, codePointLength: () => codePointLength, constantCatch: () => constantCatch, createTransparentProxy: () => createTransparentProxy, defineLazy: () => defineLazy, defineLazyInternal: () => defineLazyInternal, derived: () => derived, esc: () => esc, escapeRegex: () => escapeRegex, explicitlyAborted: () => explicitlyAborted, extend: () => extend, finalizeIssue: () => finalizeIssue, floatSafeRemainder: () => floatSafeRemainder, getElementAtPath: () => getElementAtPath, getEnumValues: () => getEnumValues, getLengthableOrigin: () => getLengthableOrigin, getParsedType: () => getParsedType, getSizableOrigin: () => getSizableOrigin, hexToUint8Array: () => hexToUint8Array, hide: () => hide, installLazyProp: () => installLazyProp, isObject: () => isObject, isPlainObject: () => isPlainObject, issue: () => issue, joinValues: () => joinValues, jsonStringifyReplacer: () => jsonStringifyReplacer, members: () => members, merge: () => merge, mergeDefs: () => mergeDefs, normalizeParams: () => normalizeParams, nullish: () => nullish, numKeys: () => numKeys, objectClone: () => objectClone, omit: () => omit, optionalKeys: () => optionalKeys, own: () => own, parsedType: () => parsedType, partial: () => partial, pick: () => pick, prefixIssues: () => prefixIssues, primitiveTypes: () => primitiveTypes, promiseAllObject: () => promiseAllObject, propertyKeyTypes: () => propertyKeyTypes, randomString: () => randomString, rawShape: () => rawShape, required: () => required, safeExtend: () => safeExtend, shallowClone: () => shallowClone, slugify: () => slugify, stringifyPrimitive: () => stringifyPrimitive, toZod: () => toZod, uint8ArrayToBase64: () => uint8ArrayToBase64, uint8ArrayToBase64url: () => uint8ArrayToBase64url, uint8ArrayToHex: () => uint8ArrayToHex, unwrapMessage: () => unwrapMessage }); function assertEqual(val) { return val; } function assertNotEqual(val) { return val; } function toZod() { return (schema) => schema; } function assertIs(_arg) { } function assertNever(_x) { throw new Error("Unexpected value in exhaustive check"); } function assert(_) { } function getEnumValues(entries) { const numericValues = Object.values(entries).filter((v) => typeof v === "number"); const values = Object.entries(entries).filter(([k, _]) => numericValues.indexOf(+k) === -1).map(([_, v]) => v); return values; } function joinValues(array2, separator = "|") { return array2.map((val) => stringifyPrimitive(val)).join(separator); } function jsonStringifyReplacer(_, value) { if (typeof value === "bigint") return value.toString(); return value; } var Cached = class { constructor(getter) { this._getter = getter; this._value = void 0; } get value() { const getter = this._getter; if (getter !== void 0) { this._value = getter(); this._getter = void 0; } return this._value; } }; function cached(getter) { return new Cached(getter); } function nullish(input2) { return input2 === null || input2 === void 0; } function cleanRegex(source) { const start = source.startsWith("^") ? 1 : 0; const end = source.endsWith("$") ? source.length - 1 : source.length; return source.slice(start, end); } function floatSafeRemainder(val, step) { const ratio = val / step; const roundedRatio = Math.round(ratio); const tolerance = 4 * Number.EPSILON * Math.max(Math.abs(ratio), 1); if (Math.abs(ratio - roundedRatio) < tolerance) return 0; return ratio - roundedRatio; } var EVALUATING = /* @__PURE__ */ Symbol("evaluating"); function defineLazy(object2, key, getter) { let value = void 0; Object.defineProperty(object2, key, { get() { if (value === EVALUATING) { return void 0; } if (value === void 0) { value = EVALUATING; value = getter(); } return value; }, set(v) { Object.defineProperty(object2, key, { value: v // configurable: true, }); }, configurable: true }); } function objectClone(obj) { return Object.create(Object.getPrototypeOf(obj), Object.getOwnPropertyDescriptors(obj)); } function assignProp(target, prop, value) { Object.defineProperty(target, prop, { value, writable: true, enumerable: true, configurable: true }); } function rawShape(def) { const desc = Object.getOwnPropertyDescriptor(def, "shape"); return desc?.get ? desc.get.raw : desc?.value; } function sourceShape(schema) { return rawShape(schema._zod.def) ?? schema._zod.def.shape; } function deferProp(target, key, getter) { Object.defineProperty(target, key, { get() { const value = getter(); assignProp(this, key, value); return value; }, enumerable: true, configurable: true }); } function putProp(target, key, value) { if (key in target) assignProp(target, key, value); else target[key] = value; } function mirrorShape(target, source, keys, wrap) { const raw = sourceShape(source); for (const key of keys) { const desc = Object.getOwnPropertyDescriptor(raw, key); if (!desc.enumerable) continue; if (desc.get) { deferProp(target, key, () => { const value = source._zod.def.shape[key]; return wrap ? wrap(value, key) : value; }); } else putProp(target, key, wrap ? wrap(desc.value, key) : desc.value); } } function mirrorProps(target, source) { for (const key of Reflect.ownKeys(source)) { const desc = Object.getOwnPropertyDescriptor(source, key); if (!desc.enumerable) continue; if (desc.get) deferProp(target, key, () => source[key]); else putProp(target, key, desc.value); } } function mergeDefs(...defs) { const mergedDescriptors = {}; for (const def of defs) { const descriptors = Object.getOwnPropertyDescriptors(def); Object.assign(mergedDescriptors, descriptors); } return Object.defineProperties({}, mergedDescriptors); } function cloneDef(schema) { return mergeDefs(schema._zod.def); } function getElementAtPath(obj, path) { if (!path) return obj; return path.reduce((acc, key) => acc?.[key], obj); } function promiseAllObject(promisesObj) { const keys = Object.keys(promisesObj); const promises = keys.map((key) => promisesObj[key]); return Promise.all(promises).then((results) => { const resolvedObj = {}; for (let i = 0; i < keys.length; i++) { resolvedObj[keys[i]] = results[i]; } return resolvedObj; }); } function randomString(length = 10) { const chars = "abcdefghijklmnopqrstuvwxyz"; let str = ""; for (let i = 0; i < length; i++) { str += chars[Math.floor(Math.random() * chars.length)]; } return str; } function esc(str) { return JSON.stringify(str); } function slugify(input2) { return input2.toLowerCase().trim().replace(/[^\w\s-]/g, "").replace(/[\s_-]+/g, "-").replace(/^-+|-+$/g, ""); } var captureStackTrace = "captureStackTrace" in Error ? Error.captureStackTrace : (..._args) => { }; function isObject(data) { return typeof data === "object" && data !== null && !Array.isArray(data); } var allowsEval = /* @__PURE__ */ cached(() => { if (globalConfig.jitless) { return false; } if (typeof navigator !== "undefined" && navigator?.userAgent?.includes("Cloudflare")) { return false; } try { const F = Function; new F(""); return true; } catch (_) { return false; } }); function isPlainObject(o) { if (isObject(o) === false) return false; const ctor = o.constructor; if (ctor === void 0) return true; if (typeof ctor !== "function") return true; const prot = ctor.prototype; if (isObject(prot) === false) return false; if (Object.prototype.hasOwnProperty.call(prot, "isPrototypeOf") === false) { return false; } return true; } function shallowClone(o) { if (isPlainObject(o)) return { ...o }; if (Array.isArray(o)) return [...o]; if (o instanceof Map) return new Map(o); if (o instanceof Set) return new Set(o); return o; } function numKeys(data) { let keyCount = 0; for (const key in data) { if (Object.prototype.hasOwnProperty.call(data, key)) { keyCount++; } } return keyCount; } var getParsedType = (data) => { const t = typeof data; switch (t) { case "undefined": return "undefined"; case "string": return "string"; case "number": return Number.isNaN(data) ? "nan" : "number"; case "boolean": return "boolean"; case "function": return "function"; case "bigint": return "bigint"; case "symbol": return "symbol"; case "object": if (Array.isArray(data)) { return "array"; } if (data === null) { return "null"; } if (data.then && typeof data.then === "function" && data.catch && typeof data.catch === "function") { return "promise"; } if (typeof Map !== "undefined" && data instanceof Map) { return "map"; } if (typeof Set !== "undefined" && data instanceof Set) { return "set"; } if (typeof Date !== "undefined" && data instanceof Date) { return "date"; } if (typeof File !== "undefined" && data instanceof File) { return "file"; } return "object"; default: throw new Error(`Unknown data type: ${t}`); } }; var propertyKeyTypes = /* @__PURE__ */ new Set(["string", "number", "symbol"]); var primitiveTypes = /* @__PURE__ */ new Set([ "string", "number", "bigint", "boolean", "symbol", "undefined" ]); function escapeRegex(str) { return str.replace(/[.*+?^${}()|[\]\\]/g, "\\$&"); } function clone(inst, def, params) { const cl = new inst._zod.constr(def ?? inst._zod.def); if (!def || params?.parent) cl._zod.parent = inst; return cl; } function normalizeParams(_params) { const params = _params; if (!params) return {}; if (typeof params === "string") return { error: () => params }; if (params?.message !== void 0) { if (params?.error !== void 0) throw new Error("Cannot specify both `message` and `error` params"); params.error = params.message; } delete params.message; if (typeof params.error === "string") return { ...params, error: () => params.error }; return params; } function createTransparentProxy(getter) { let target; return new Proxy({}, { get(_, prop, receiver) { target ?? (target = getter()); return Reflect.get(target, prop, receiver); }, set(_, prop, value, receiver) { target ?? (target = getter()); return Reflect.set(target, prop, value, receiver); }, has(_, prop) { target ?? (target = getter()); return Reflect.has(target, prop); }, deleteProperty(_, prop) { target ?? (target = getter()); return Reflect.deleteProperty(target, prop); }, ownKeys(_) { target ?? (target = getter()); return Reflect.ownKeys(target); }, getOwnPropertyDescriptor(_, prop) { target ?? (target = getter()); return Reflect.getOwnPropertyDescriptor(target, prop); }, defineProperty(_, prop, descriptor) { target ?? (target = getter()); return Reflect.defineProperty(target, prop, descriptor); } }); } function stringifyPrimitive(value) { if (typeof value === "bigint") return value.toString() + "n"; if (typeof value === "string") return `"${value}"`; return `${value}`; } function optionalKeys(shape) { return Object.keys(shape).filter((k) => { return shape[k]._zod.optin !== void 0 && shape[k]._zod.optout === "optional"; }); } var NUMBER_FORMAT_RANGES = /* @__PURE__ */ (() => ({ safeint: [Number.MIN_SAFE_INTEGER, Number.MAX_SAFE_INTEGER], int32: [-2147483648, 2147483647], uint32: [0, 4294967295], float32: [-34028234663852886e22, 34028234663852886e22], float64: [-Number.MAX_VALUE, Number.MAX_VALUE] }))(); var BIGINT_FORMAT_RANGES = { int64: [/* @__PURE__ */ BigInt("-9223372036854775808"), /* @__PURE__ */ BigInt("9223372036854775807")], uint64: [/* @__PURE__ */ BigInt(0), /* @__PURE__ */ BigInt("18446744073709551615")] }; function pick(schema, mask) { const currDef = schema._zod.def; const checks = currDef.checks; const hasChecks = checks && checks.length > 0; if (hasChecks) { throw new Error(".pick() cannot be used on object schemas containing refinements"); } const newShape = {}; mirrorShape(newShape, schema, maskedKeys(schema, mask)); return clone(schema, mergeDefs(currDef, { shape: newShape, checks: [] })); } function maskedKeys(schema, mask) { const raw = sourceShape(schema); const keys = []; for (const key of Reflect.ownKeys(mask)) { if (!Object.getOwnPropertyDescriptor(raw, key)?.enumerable) { throw new Error(`Unrecognized key: "${String(key)}"`); } if (mask[key]) keys.push(key); } return keys; } function omit(schema, mask) { const currDef = schema._zod.def; const checks = currDef.checks; const hasChecks = checks && checks.length > 0; if (hasChecks) { throw new Error(".omit() cannot be used on object schemas containing refinements"); } const omitted = new Set(maskedKeys(schema, mask)); const newShape = {}; mirrorShape(newShape, schema, Reflect.ownKeys(sourceShape(schema)).filter((key) => !omitted.has(key))); return clone(schema, mergeDefs(currDef, { shape: newShape, checks: [] })); } function extend(schema, shape) { if (!isPlainObject(shape)) { throw new Error("Invalid input to extend: expected a plain object"); } const checks = schema._zod.def.checks; const hasChecks = checks && checks.length > 0; if (hasChecks) { const existingShape = sourceShape(schema); for (const key of Reflect.ownKeys(shape)) { if (Object.getOwnPropertyDescriptor(existingShape, key) !== void 0) { throw new Error("Cannot overwrite keys on object schemas containing refinements. Use `.safeExtend()` instead."); } } } return clone(schema, mergeDefs(schema._zod.def, { shape: extended(schema, shape) })); } function extended(schema, shape) { const newShape = {}; mirrorShape(newShape, schema, Reflect.ownKeys(sourceShape(schema))); mirrorProps(newShape, shape); return newShape; } function safeExtend(schema, shape) { if (!isPlainObject(shape)) { throw new Error("Invalid input to safeExtend: expected a plain object"); } return clone(schema, mergeDefs(schema._zod.def, { shape: extended(schema, shape) })); } function merge(a, b) { if (!b?._zod?.def) { throw new Error("Invalid input to merge: expected an object schema. To merge a plain shape, use `.extend()`."); } if (a._zod.def.checks?.length) { throw new Error(".merge() cannot be used on object schemas containing refinements. Use .safeExtend() instead."); } const newShape = {}; mirrorShape(newShape, a, Reflect.ownKeys(sourceShape(a))); mirrorShape(newShape, b, Reflect.ownKeys(sourceShape(b))); const def = mergeDefs(a._zod.def, { shape: newShape, get catchall() { return b._zod.def.catchall; }, checks: b._zod.def.checks ?? [] }); return clone(a, def); } function partial(Class2, schema, mask, name = "partial") { const currDef = schema._zod.def; const checks = currDef.checks; const hasChecks = checks && checks.length > 0; if (hasChecks) { throw new Error(`.${name}() cannot be used on object schemas containing refinements`); } const selected = mask ? new Set(maskedKeys(schema, mask)) : void 0; const newShape = {}; mirrorShape(newShape, schema, Reflect.ownKeys(sourceShape(schema)), Class2 && ((value, key) => selected && !selected.has(key) ? value : new Class2({ type: "optional", innerType: value }))); return clone(schema, mergeDefs(schema._zod.def, { shape: newShape, checks: [] })); } function required(Class2, schema, mask) { const selected = mask ? new Set(maskedKeys(schema, mask)) : void 0; const newShape = {}; mirrorShape(newShape, schema, Reflect.ownKeys(sourceShape(schema)), (value, key) => ( // overwrite with non-optional selected && !selected.has(key) ? value : new Class2({ type: "nonoptional", innerType: value }) )); return clone(schema, mergeDefs(schema._zod.def, { shape: newShape })); } function aborted(x, startIndex = 0) { if (x.aborted === true) return true; for (let i = startIndex; i < x.issues.length; i++) { if (x.issues[i]?.continue !== true) { return true; } } return false; } function explicitlyAborted(x, startIndex = 0) { if (x.aborted === true) return true; for (let i = startIndex; i < x.issues.length; i++) { if (x.issues[i]?.continue === false) { return true; } } return false; } function prefixIssues(path, issues) { return issues.map((iss) => { var _a3; (_a3 = iss).path ?? (_a3.path = []); iss.path.unshift(path); return iss; }); } function unwrapMessage(message) { return typeof message === "string" ? message : message?.message; } function attachSchema(issues, start, inst) { var _a3; for (let i = start; i < issues.length; i++) { (_a3 = issues[i]).schema ?? (_a3.schema = inst); } } function finalizeIssue(iss, ctx, config2) { var _a3; const traits = iss.inst?._zod?.traits; if (traits?.has("$ZodType")) { if (traits.has("$ZodCheck")) (_a3 = iss).schema ?? (_a3.schema = iss.inst); else iss.schema = iss.inst; } const schemaError = iss.schema !== iss.inst ? iss.schema?._zod.def?.error : void 0; const message = iss.message ? iss.message : unwrapMessage(iss.inst?._zod.def?.error?.(iss)) ?? unwrapMessage(schemaError?.(iss)) ?? unwrapMessage(ctx?.error?.(iss)) ?? unwrapMessage(config2.customError?.(iss)) ?? unwrapMessage(config2.localeError?.(iss)) ?? "Invalid input"; const full = {}; for (const k of Object.keys(iss)) { if (k === "inst" || k === "schema" || k === "continue" || k === "input" || k === "__proto__") continue; full[k] = iss[k]; } full.path ?? (full.path = []); full.message = message; if (ctx?.reportInput) { full.input = iss.input; } return full; } function getSizableOrigin(input2) { if (input2 instanceof Set) return "set"; if (input2 instanceof Map) return "map"; if (input2 instanceof File) return "file"; return "unknown"; } var highSurrogate = /[\uD800-\uDBFF]/; function codePointLength(str) { const units = str.length; if (!highSurrogate.test(str)) return units; let count = units; for (let i = 0; i < units - 1; i++) { if ((str.charCodeAt(i) & 64512) === 55296 && (str.charCodeAt(i + 1) & 64512) === 56320) { count--; i++; } } return count; } function getLengthableOrigin(input2) { if (Array.isArray(input2)) return "array"; if (typeof input2 === "string") return "string"; return "unknown"; } function parsedType(data) { const t = typeof data; switch (t) { case "number": { return Number.isNaN(data) ? "nan" : "number"; } case "object": { if (data === null) { return "null"; } if (Array.isArray(data)) { return "array"; } const obj = data; if (obj && Object.getPrototypeOf(obj) !== Object.prototype && "constructor" in obj && obj.constructor) { return obj.constructor.name; } } } return t; } function issue(...args) { const [iss, input2, inst] = args; if (typeof iss === "string") { return { message: iss, code: "custom", input: input2, inst }; } return { ...iss }; } function cleanEnum(obj) { return Object.entries(obj).filter(([k, _]) => { return Number.isNaN(Number.parseInt(k, 10)); }).map((el) => el[1]); } function base64ToUint8Array(base643) { const binaryString = atob(base643); const bytes = new Uint8Array(binaryString.length); for (let i = 0; i < binaryString.length; i++) { bytes[i] = binaryString.charCodeAt(i); } return bytes; } function uint8ArrayToBase64(bytes) { let binaryString = ""; for (let i = 0; i < bytes.length; i++) { binaryString += String.fromCharCode(bytes[i]); } return btoa(binaryString); } function base64urlToUint8Array(base64url3) { const base643 = base64url3.replace(/-/g, "+").replace(/_/g, "/"); const padding = "=".repeat((4 - base643.length % 4) % 4); return base64ToUint8Array(base643 + padding); } function uint8ArrayToBase64url(bytes) { return uint8ArrayToBase64(bytes).replace(/\+/g, "-").replace(/\//g, "_").replace(/=/g, ""); } function hexToUint8Array(hex3) { const cleanHex = hex3.replace(/^0x/, ""); if (cleanHex.length % 2 !== 0) { throw new Error("Invalid hex string length"); } const bytes = new Uint8Array(cleanHex.length / 2); for (let i = 0; i < cleanHex.length; i += 2) { bytes[i / 2] = Number.parseInt(cleanHex.slice(i, i + 2), 16); } return bytes; } function uint8ArrayToHex(bytes) { return Array.from(bytes).map((b) => b.toString(16).padStart(2, "0")).join(""); } var Class = class { constructor(..._args) { } }; function members(proto, table) { for (const key in table) { const desc = Object.getOwnPropertyDescriptor(table, key); if (desc.get) Object.defineProperty(proto, key, { ...desc, enumerable: false }); else defineBound(proto, key, desc.value); } } function own(inst, key, value, enumerable = true) { Object.defineProperty(inst, key, { configurable: true, writable: true, enumerable, value }); return value; } function hide(inst, key, value) { return own(inst, key, value, false); } // @__NO_SIDE_EFFECTS__ function derived(computes, table) { for (const key in computes) { const compute = computes[key]; Object.defineProperty(table, key, { configurable: true, enumerable: true, get() { return own(this, key, compute(this)); }, set(value) { own(this, key, value); } }); } return table; } function defineBound(proto, key, fn) { Object.defineProperty(proto, key, { configurable: true, get() { return this == null ? fn : own(this, key, fn.bind(this)); }, set(value) { own(this, key, value); } }); } function claim(inst, sentinel) { const proto = Object.getPrototypeOf(inst); return sentinel in proto ? void 0 : proto; } var installing; var broke = false; var breaker = { configurable: true, get() { broke = true; return void 0; } }; function defineLazyInternal(inst, key, compute) { const proto = Object.getPrototypeOf(inst._zod); if (key in proto && installing !== inst._zod) { installing = void 0; return; } installing = inst._zod; Object.defineProperty(proto, key, { configurable: true, get() { Object.defineProperty(this, key, breaker); const outer = broke; broke = false; try { const value = compute(this); if (broke) delete this[key]; else Object.defineProperty(this, key, { configurable: true, writable: true, value }); broke = broke || outer; return value; } catch (err) { delete this[key]; broke = broke || outer; throw err; } }, set(value) { Object.defineProperty(this, key, { configurable: true, writable: true, value }); } }); } function installLazyProp(inst, key, make, enumerable) { const proto = claim(inst, key); if (!proto) return; Object.defineProperty(proto, key, { configurable: true, get() { const desc = { configurable: true, writable: true, enumerable, value: void 0 }; Object.defineProperty(this, key, desc); desc.value = make(this); Object.defineProperty(this, key, desc); return desc.value; }, set(value) { Object.defineProperty(this, key, { configurable: true, writable: true, enumerable, value }); } }); } var CONSTANT_CATCH = "~constantCatch"; function constantCatch(value) { const fn = () => value; fn[CONSTANT_CATCH] = true; return fn; } // ../../../../node_modules/zod/v4/core/core.js var _a; var NEVER = /* @__PURE__ */ Object.freeze({ status: "aborted" }); var _zodDesc = { value: void 0, enumerable: false }; var _E = "captureStackTrace" in Error ? Error : null; function newError(Definition) { const E = _E; if (E) { const saved = E.stackTraceLimit; if (typeof saved === "number") { try { E.stackTraceLimit = 0; } catch { _E = null; return new Definition(); } try { return new Definition(); } finally { E.stackTraceLimit = saved; } } } return new Definition(); } // @__NO_SIDE_EFFECTS__ function $constructor(name, initializer3, proto, params) { const zodProto = {}; function Internals(def) { this.def = def; this.constr = _; this.traits = /* @__PURE__ */ new Set(); } Internals.prototype = zodProto; const protoMembers = proto; const initialized = protoMembers && /* @__PURE__ */ new WeakSet(); function init(inst, def) { if (!inst._zod) { _zodDesc.value = new Internals(def); try { Object.defineProperty(inst, "_zod", _zodDesc); } finally { _zodDesc.value = void 0; } } else if (inst._zod.traits.has(name)) { return; } inst._zod.traits.add(name); initializer3(inst, def); if (initialized) { const own2 = Object.getPrototypeOf(inst); const ctorProto = inst._zod.constr.prototype; let up = own2; while (up && up !== ctorProto) up = Object.getPrototypeOf(up); const target = up ?? own2; if (!initialized.has(target)) { initialized.add(target); members(target, protoMembers); } } const proto2 = _.prototype; for (const k in proto2) { if (!Object.prototype.hasOwnProperty.call(proto2, k)) continue; if (!(k in inst)) { inst[k] = proto2[k].bind(inst); } } } const Parent = params?.Parent ?? Object; class Definition extends Parent { } Object.defineProperty(Definition, "name", { value: name }); function _(def) { const inst = params?.Parent ? newError(Definition) : this; init(inst, def); const deferred = inst._zod.deferred; if (deferred) { for (const fn of deferred) { fn(); } inst._zod.deferred = void 0; } const pp = globalThis.__zod_globalConfig?.postProcessor; if (pp) pp(inst); return inst; } Object.defineProperty(_, "init", { value: init }); Object.defineProperty(_, Symbol.hasInstance, { value: (inst) => { if (params?.Parent && inst instanceof params.Parent) return true; return inst?._zod?.traits?.has(name); } }); Object.defineProperty(_, "name", { value: name }); return _; } var $brand = /* @__PURE__ */ Symbol("zod_brand"); var $ZodAsyncError = class extends Error { constructor() { super(`Encountered Promise during synchronous parse. Use .parseAsync() instead.`); } }; var $ZodEncodeError = class extends Error { constructor(name) { super(`Encountered unidirectional transform during encode: ${name}`); this.name = "ZodEncodeError"; } }; (_a = globalThis).__zod_globalConfig ?? (_a.__zod_globalConfig = {}); var globalConfig = globalThis.__zod_globalConfig; function config(newConfig) { if (newConfig) Object.assign(globalConfig, newConfig); return globalConfig; } // ../../../../node_modules/zod/v4/core/errors.js function _getMessage() { const internals = this._zod; internals.message ?? (internals.message = JSON.stringify(internals.def, jsonStringifyReplacer, 2)); return internals.message; } function _setMessage(value) { this._zod.message = value; } var _messageDesc = { get: _getMessage, set: _setMessage, enumerable: true, configurable: true }; var _issuesDesc = { value: void 0, enumerable: false }; var _installedToString = /* @__PURE__ */ new WeakSet([Object.prototype, Error.prototype]); var initializer = (inst, def) => { inst.name = "$ZodError"; _issuesDesc.value = def; Object.defineProperty(inst, "issues", _issuesDesc); _issuesDesc.value = void 0; Object.defineProperty(inst, "message", _messageDesc); const proto = Object.getPrototypeOf(inst); if (!_installedToString.has(proto)) { _installedToString.add(proto); Object.defineProperty(proto, "toString", { configurable: true, enumerable: false, get() { const value = () => this.message; Object.defineProperty(this, "toString", { value, configurable: true, writable: true }); return value; }, set(value) { Object.defineProperty(this, "toString", { value, configurable: true, writable: true }); } }); } }; var $ZodError = $constructor("$ZodError", initializer); var $ZodRealError = $constructor("$ZodError", initializer, void 0, { Parent: Error }); function node(obj, key, make) { if (!Object.prototype.hasOwnProperty.call(obj, key)) { if (key === "__proto__") { Object.defineProperty(obj, key, { value: make(), writable: true, enumerable: true, configurable: true }); } else { obj[key] = make(); } } return obj[key]; } function flattenError(error62, mapper = (issue2) => issue2.message) { const fieldErrors = {}; const formErrors = []; for (const sub of error62.issues) { if (sub.path.length > 0) { node(fieldErrors, sub.path[0], () => []).push(mapper(sub)); } else { formErrors.push(mapper(sub)); } } return { formErrors, fieldErrors }; } function formatError(error62, mapper = (issue2) => issue2.message) { const fieldErrors = { _errors: [] }; const processError = (error63, path = []) => { for (const issue2 of error63.issues) { if (issue2.code === "invalid_union" && issue2.errors.length) { issue2.errors.map((issues) => processError({ issues }, [...path, ...issue2.path])); } else if (issue2.code === "invalid_key") { processError({ issues: issue2.issues }, [...path, ...issue2.path]); } else if (issue2.code === "invalid_element") { processError({ issues: issue2.issues }, [...path, ...issue2.path]); } else { const fullpath = [...path, ...issue2.path]; if (fullpath.length === 0) { fieldErrors._errors.push(mapper(issue2)); } else { let curr = fieldErrors; let i = 0; while (i < fullpath.length) { const el = fullpath[i]; const terminal = i === fullpath.length - 1; if (el === "_errors") { if (terminal) curr._errors.push(mapper(issue2)); i++; continue; } if (!Object.prototype.hasOwnProperty.call(curr, el)) { Object.defineProperty(curr, el, { value: { _errors: [] }, enumerable: true, writable: true, configurable: true }); } const node2 = curr[el]; if (terminal) { node2._errors.push(mapper(issue2)); } curr = node2; i++; } } } } }; processError(error62); return fieldErrors; } function treeifyError(error62, mapper = (issue2) => issue2.message) { const result = { errors: [] }; const processError = (error63, path = []) => { var _a3; for (const issue2 of error63.issues) { if (issue2.code === "invalid_union" && issue2.errors.length) { issue2.errors.map((issues) => processError({ issues }, [...path, ...issue2.path])); } else if (issue2.code === "invalid_key") { processError({ issues: issue2.issues }, [...path, ...issue2.path]); } else if (issue2.code === "invalid_element") { processError({ issues: issue2.issues }, [...path, ...issue2.path]); } else { const fullpath = [...path, ...issue2.path]; if (fullpath.length === 0) { result.errors.push(mapper(issue2)); continue; } let curr = result; let i = 0; while (i < fullpath.length) { const el = fullpath[i]; const terminal = i === fullpath.length - 1; if (typeof el === "string") { curr.properties ?? (curr.properties = {}); if (!Object.prototype.hasOwnProperty.call(curr.properties, el)) { Object.defineProperty(curr.properties, el, { value: { errors: [] }, enumerable: true, writable: true, configurable: true }); } curr = curr.properties[el]; } else { curr.items ?? (curr.items = []); (_a3 = curr.items)[el] ?? (_a3[el] = { errors: [] }); curr = curr.items[el]; } if (terminal) { curr.errors.push(mapper(issue2)); } i++; } } } }; processError(error62); return result; } function toDotPath(_path) { const segs = []; const path = _path.map((seg) => typeof seg === "object" ? seg.key : seg); for (const seg of path) { if (typeof seg === "number") segs.push(`[${seg}]`); else if (typeof seg === "symbol") segs.push(`[${JSON.stringify(String(seg))}]`); else if (/[^\w$]/.test(seg)) segs.push(`[${JSON.stringify(seg)}]`); else { if (segs.length) segs.push("."); segs.push(seg); } } return segs.join(""); } function prettifyError(error62) { const lines = []; const issues = [...error62.issues].sort((a, b) => (a.path ?? []).length - (b.path ?? []).length); for (const issue2 of issues) { lines.push(`\u2716 ${issue2.message}`); if (issue2.path?.length) lines.push(` \u2192 at ${toDotPath(issue2.path)}`); } return lines.join("\n"); } // ../../../../node_modules/zod/v4/core/parse.js function finalizeParams(callee, params) { return { callee: params?.callee ?? callee, Err: params?.Err }; } var _parse = (_Err) => { const fn = (schema, value, _ctx, _params) => { const ctx = _ctx ? { ..._ctx, async: false } : { async: false }; const result = schema._zod.run({ value, issues: [] }, ctx); if (result instanceof Promise) { throw new $ZodAsyncError(); } if (result.issues.length) { const e = new (_params?.Err ?? _Err)(result.issues.map((iss) => finalizeIssue(iss, ctx, config()))); captureStackTrace(e, _params?.callee ?? fn); throw e; } return result.value; }; return fn; }; var parse = /* @__PURE__ */ _parse($ZodRealError); var _parseAsync = (_Err) => { const fn = async (schema, value, _ctx, params) => { const ctx = _ctx ? { ..._ctx, async: true } : { async: true }; let result = schema._zod.run({ value, issues: [] }, ctx); if (result instanceof Promise) result = await result; if (result.issues.length) { const e = new (params?.Err ?? _Err)(result.issues.map((iss) => finalizeIssue(iss, ctx, config()))); captureStackTrace(e, params?.callee ?? fn); throw e; } return result.value; }; return fn; }; var parseAsync = /* @__PURE__ */ _parseAsync($ZodRealError); var _safeParse = (_Err) => (schema, value, _ctx) => { const ctx = _ctx ? { ..._ctx, async: false } : { async: false }; const result = schema._zod.run({ value, issues: [] }, ctx); if (result instanceof Promise) { throw new $ZodAsyncError(); } return result.issues.length ? failure(_Err, result.issues, ctx) : { success: true, data: result.value }; }; var safeParse = /* @__PURE__ */ _safeParse($ZodRealError); function failure(Err, issues, ctx) { let error62; return { success: false, get error() { if (!error62) { error62 = new Err(issues.map((iss) => finalizeIssue(iss, ctx, config()))); issues = void 0; ctx = void 0; } return error62; }, set error(e) { error62 = e; issues = void 0; ctx = void 0; } }; } var _safeParseAsync = (_Err) => async (schema, value, _ctx) => { const ctx = _ctx ? { ..._ctx, async: true } : { async: true }; let result = schema._zod.run({ value, issues: [] }, ctx); if (result instanceof Promise) result = await result; return result.issues.length ? failure(_Err, result.issues, ctx) : { success: true, data: result.value }; }; var safeParseAsync = /* @__PURE__ */ _safeParseAsync($ZodRealError); var COMPILE_INVALID = /* @__PURE__ */ Symbol.for("zod.compile.invalid"); var COMPILE_FALLBACK = /* @__PURE__ */ Symbol.for("zod.compile.fallback"); var validate = ((schema, value, _ctx) => { const validator = schema._zod.bag.validator; if (validator !== void 0) { if (validator(value) !== COMPILE_INVALID) return true; if (validator.definite === true && _ctx === void 0) return false; } return validateFallback(schema, value, _ctx); }); function validateFallback(schema, value, _ctx) { const ctx = _ctx ? { ..._ctx, async: false, abortEarly: true } : { async: false, abortEarly: true }; const fallbackRun = schema._zod.bag.fallbackRun; let result; if (fallbackRun) { ctx[COMPILE_FALLBACK] = true; result = fallbackRun({ value, issues: [] }, ctx); } else { result = schema._zod.run({ value, issues: [] }, ctx); } if (result instanceof Promise) { throw new $ZodAsyncError(); } return result.issues.length === 0; } var validateAsync = async (schema, value, _ctx) => { const ctx = _ctx ? { ..._ctx, async: true, abortEarly: true } : { async: true, abortEarly: true }; let result = schema._zod.run({ value, issues: [] }, ctx); if (result instanceof Promise) result = await result; return result.issues.length === 0; }; var _encode = (_Err) => { const parse3 = _parse(_Err); const fn = (schema, value, _ctx, _params) => { const ctx = _ctx ? { ..._ctx, direction: "backward" } : { direction: "backward" }; return parse3(schema, value, ctx, finalizeParams(fn, _params)); }; return fn; }; var encode = /* @__PURE__ */ _encode($ZodRealError); var _decode = (_Err) => { const parse3 = _parse(_Err); const fn = (schema, value, _ctx, _params) => { return parse3(schema, value, _ctx, finalizeParams(fn, _params)); }; return fn; }; var decode = /* @__PURE__ */ _decode($ZodRealError); var _encodeAsync = (_Err) => { const parseAsync3 = _parseAsync(_Err); const fn = async (schema, value, _ctx, _params) => { const ctx = _ctx ? { ..._ctx, direction: "backward" } : { direction: "backward" }; return await parseAsync3(schema, value, ctx, finalizeParams(fn, _params)); }; return fn; }; var encodeAsync = /* @__PURE__ */ _encodeAsync($ZodRealError); var _decodeAsync = (_Err) => { const parseAsync3 = _parseAsync(_Err); const fn = async (schema, value, _ctx, _params) => { return await parseAsync3(schema, value, _ctx, finalizeParams(fn, _params)); }; return fn; }; var decodeAsync = /* @__PURE__ */ _decodeAsync($ZodRealError); var _safeEncode = (_Err) => (schema, value, _ctx) => { const ctx = _ctx ? { ..._ctx, direction: "backward" } : { direction: "backward" }; return _safeParse(_Err)(schema, value, ctx); }; var safeEncode = /* @__PURE__ */ _safeEncode($ZodRealError); var _safeDecode = (_Err) => (schema, value, _ctx) => { return _safeParse(_Err)(schema, value, _ctx); }; var safeDecode = /* @__PURE__ */ _safeDecode($ZodRealError); var _safeEncodeAsync = (_Err) => async (schema, value, _ctx) => { const ctx = _ctx ? { ..._ctx, direction: "backward" } : { direction: "backward" }; return _safeParseAsync(_Err)(schema, value, ctx); }; var safeEncodeAsync = /* @__PURE__ */ _safeEncodeAsync($ZodRealError); var _safeDecodeAsync = (_Err) => async (schema, value, _ctx) => { return _safeParseAsync(_Err)(schema, value, _ctx); }; var safeDecodeAsync = /* @__PURE__ */ _safeDecodeAsync($ZodRealError); // ../../../../node_modules/zod/v4/core/regexes.js var regexes_exports = {}; __export(regexes_exports, { anyString: () => anyString, base64: () => base64, base64url: () => base64url, bigint: () => bigint, boolean: () => boolean, browserEmail: () => browserEmail, cidrv4: () => cidrv4, cidrv6: () => cidrv6, creditCard: () => creditCard, cuid: () => cuid, cuid2: () => cuid2, currencyCode: () => currencyCode, date: () => date, datetime: () => datetime, domain: () => domain, duration: () => duration, e164: () => e164, email: () => email, emoji: () => emoji, extendedDuration: () => extendedDuration, guid: () => guid, hex: () => hex, hostname: () => hostname, html5Email: () => html5Email, httpProtocol: () => httpProtocol, iban: () => iban, idnEmail: () => idnEmail, integer: () => integer, ipv4: () => ipv4, ipv6: () => ipv6, ksuid: () => ksuid, lowercase: () => lowercase, mac: () => mac, md5_base64: () => md5_base64, md5_base64url: () => md5_base64url, md5_hex: () => md5_hex, nanoid: () => nanoid, nanoidOfLength: () => nanoidOfLength, null: () => _null, number: () => number, rfc5322Email: () => rfc5322Email, sha1_base64: () => sha1_base64, sha1_base64url: () => sha1_base64url, sha1_hex: () => sha1_hex, sha256_base64: () => sha256_base64, sha256_base64url: () => sha256_base64url, sha256_hex: () => sha256_hex, sha384_base64: () => sha384_base64, sha384_base64url: () => sha384_base64url, sha384_hex: () => sha384_hex, sha512_base64: () => sha512_base64, sha512_base64url: () => sha512_base64url, sha512_hex: () => sha512_hex, string: () => string, time: () => time, ulid: () => ulid, undefined: () => _undefined, unicodeEmail: () => unicodeEmail, uppercase: () => uppercase, uuid: () => uuid, uuid4: () => uuid4, uuid6: () => uuid6, uuid7: () => uuid7, xid: () => xid }); var cuid = /^[cC][0-9a-z]{6,}$/; var cuid2 = /^[0-9a-z]+$/; var ulid = /^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$/; var xid = /^[0-9a-vA-V]{20}$/; var ksuid = /^[A-Za-z0-9]{27}$/; var nanoid = /^[a-zA-Z0-9_-]{21}$/; function nanoidOfLength(length) { return new RegExp(`^[a-zA-Z0-9_-]{${length}}$`); } var duration = /^P(?:(\d+W)|(?!.*W)(?=\d|T\d)(\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+([.,]\d+)?S)?)?)$/; var 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)?)??$/; var 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})$/; var uuid = (version3) => { if (!version3) 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|ffffffff-ffff-ffff-ffff-ffffffffffff)$/; return new RegExp(`^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-${version3}[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$`); }; var uuid4 = /* @__PURE__ */ uuid(4); var uuid6 = /* @__PURE__ */ uuid(6); var uuid7 = /* @__PURE__ */ uuid(7); var email = /^(?:[A-Za-z0-9_'+\-]+\.)*[A-Za-z0-9_'+\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$/; var 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])?)*$/; var 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,}))$/; var unicodeEmail = /^[^\s@"]{1,64}@[^\s@]{1,255}$/u; var idnEmail = unicodeEmail; var 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])?)*$/; var _emoji = `^(?=[\\s\\S]*[\\p{Extended_Pictographic}\\p{Regional_Indicator}\\u20E3])[\\p{Extended_Pictographic}\\p{Emoji_Component}]+$`; function emoji() { return new RegExp(_emoji, "u"); } var 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])$/; var ipv6 = /^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))$/; var mac = (delimiter) => { const escapedDelim = escapeRegex(delimiter ?? ":"); return new RegExp(`^(?:[0-9A-F]{2}${escapedDelim}){5}[0-9A-F]{2}$|^(?:[0-9a-f]{2}${escapedDelim}){5}[0-9a-f]{2}$`); }; var 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])$/; var cidrv6 = /^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/; var base64 = /^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$/; var base64url = /^(?:[A-Za-z0-9_-]{4})*(?:[A-Za-z0-9_-]{2,3})?$/; var hostname = /^(?=.{1,253}\.?$)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[-0-9a-zA-Z]{0,61}[0-9a-zA-Z])?)*\.?$/; var domain = /^(?=.{1,253}$)([a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?\.)+[a-zA-Z]{2,63}$/; var httpProtocol = /^https?$/; var e164 = /^\+[1-9]\d{6,14}$/; var creditCard = /^\d(?:[ -]?\d){11,18}$/; var currencyCode = /^(?:AED|AFN|ALL|AMD|AOA|ARS|AUD|AWG|AZN|BAM|BBD|BDT|BHD|BIF|BMD|BND|BOB|BOV|BRL|BSD|BTN|BWP|BYN|BZD|CAD|CDF|CHE|CHF|CHW|CLF|CLP|CNY|COP|COU|CRC|CUP|CVE|CZK|DJF|DKK|DOP|DZD|EGP|ERN|ETB|EUR|FJD|FKP|GBP|GEL|GHS|GIP|GMD|GNF|GTQ|GYD|HKD|HNL|HTG|HUF|IDR|ILS|INR|IQD|IRR|ISK|JMD|JOD|JPY|KES|KGS|KHR|KMF|KPW|KRW|KWD|KYD|KZT|LAK|LBP|LKR|LRD|LSL|LYD|MAD|MDL|MGA|MKD|MMK|MNT|MOP|MRU|MUR|MVR|MWK|MXN|MXV|MYR|MZN|NAD|NGN|NIO|NOK|NPR|NZD|OMR|PAB|PEN|PGK|PHP|PKR|PLN|PYG|QAR|RON|RSD|RUB|RWF|SAR|SBD|SCR|SDG|SEK|SGD|SHP|SLE|SOS|SRD|SSP|STN|SVC|SYP|SZL|THB|TJS|TMT|TND|TOP|TRY|TTD|TWD|TZS|UAH|UGX|USD|USN|UYI|UYU|UYW|UZS|VED|VES|VND|VUV|WST|XAD|XAF|XAG|XAU|XBA|XBB|XBC|XBD|XCD|XCG|XDR|XOF|XPD|XPF|XPT|XSU|XTS|XUA|XXX|YER|ZAR|ZMW|ZWG)$/; var iban = /^[A-Z]{2}(?!00|01|99)\d{2}[A-Z0-9]{11,30}$/; var 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])))`; function anchor(source) { return new RegExp(`^${source}$`); } var date = /* @__PURE__ */ anchor(dateSource); function timeSource(args) { const hhmm = `(?:[01]\\d|2[0-3]):[0-5]\\d`; const regex = typeof args.precision === "number" ? args.precision === -1 ? `${hhmm}` : args.precision === 0 ? `${hhmm}:[0-5]\\d` : `${hhmm}:[0-5]\\d\\.\\d{${args.precision}}` : args.seconds ? `${hhmm}:[0-5]\\d(?:\\.\\d+)?` : `${hhmm}(?::[0-5]\\d(?:\\.\\d+)?)?`; return regex; } function time(args) { return new RegExp(`^${timeSource(args)}$`); } function datetime(args) { const opts = ["Z"]; if (args.offset) opts.push(`([+-](?:[01]\\d|2[0-3]):[0-5]\\d)`); const qualified = `${timeSource({ precision: args.precision, seconds: true })}(?:${opts.join("|")})`; const timeRegex3 = args.local ? `${qualified}|${timeSource({ precision: args.precision })}` : qualified; return new RegExp(`^${dateSource}T(?:${timeRegex3})$`); } var anyString = /^[\s\S]{0,}$/; var string = (params) => { const regex = params ? `[\\s\\S]{${params?.minimum ?? 0},${params?.maximum ?? ""}}` : `[\\s\\S]*`; return new RegExp(`^${regex}$`); }; var bigint = /^-?\d+n?$/; var integer = /^-?\d+$/; var number = /^-?\d+(?:\.\d+)?$/; var boolean = /^(?:true|false)$/i; var _null = /^null$/i; var _undefined = /^undefined$/i; var lowercase = /^[^A-Z]*$/; var uppercase = /^[^a-z]*$/; var hex = /^[0-9a-fA-F]*$/; function fixedBase64(bodyLength, padding) { return new RegExp(`^[A-Za-z0-9+/]{${bodyLength}}${padding}$`); } function fixedBase64url(length) { return new RegExp(`^[A-Za-z0-9_-]{${length}}$`); } var md5_hex = /^[0-9a-fA-F]{32}$/; var md5_base64 = /* @__PURE__ */ fixedBase64(22, "=="); var md5_base64url = /* @__PURE__ */ fixedBase64url(22); var sha1_hex = /^[0-9a-fA-F]{40}$/; var sha1_base64 = /* @__PURE__ */ fixedBase64(27, "="); var sha1_base64url = /* @__PURE__ */ fixedBase64url(27); var sha256_hex = /^[0-9a-fA-F]{64}$/; var sha256_base64 = /* @__PURE__ */ fixedBase64(43, "="); var sha256_base64url = /* @__PURE__ */ fixedBase64url(43); var sha384_hex = /^[0-9a-fA-F]{96}$/; var sha384_base64 = /* @__PURE__ */ fixedBase64(64, ""); var sha384_base64url = /* @__PURE__ */ fixedBase64url(64); var sha512_hex = /^[0-9a-fA-F]{128}$/; var sha512_base64 = /* @__PURE__ */ fixedBase64(86, "=="); var sha512_base64url = /* @__PURE__ */ fixedBase64url(86); // ../../../../node_modules/zod/v4/core/checks.js var $ZodCheck = /* @__PURE__ */ $constructor("$ZodCheck", (inst, def) => { var _a3; inst._zod ?? (inst._zod = {}); inst._zod.def = def; (_a3 = inst._zod).onattach ?? (_a3.onattach = []); }); var _whenHasSize = (payload) => { const val = payload.value; return !nullish(val) && val.size !== void 0; }; var _whenHasLength = (payload) => { const val = payload.value; return !nullish(val) && val.length !== void 0; }; var numericOriginMap = { number: "number", bigint: "bigint", object: "date" }; var $ZodCheckLessThan = /* @__PURE__ */ $constructor("$ZodCheckLessThan", (inst, def) => { $ZodCheck.init(inst, def); const origin = numericOriginMap[typeof def.value]; inst._zod.check = (payload) => { if (def.inclusive ? payload.value <= def.value : payload.value < def.value) { return; } payload.issues.push({ origin: numericOriginMap[typeof payload.value] ?? origin, code: "too_big", maximum: typeof def.value === "object" ? def.value.getTime() : def.value, input: payload.value, inclusive: def.inclusive, inst, continue: !def.abort }); }; }); var $ZodCheckGreaterThan = /* @__PURE__ */ $constructor("$ZodCheckGreaterThan", (inst, def) => { $ZodCheck.init(inst, def); const origin = numericOriginMap[typeof def.value]; inst._zod.check = (payload) => { if (def.inclusive ? payload.value >= def.value : payload.value > def.value) { return; } payload.issues.push({ origin: numericOriginMap[typeof payload.value] ?? origin, code: "too_small", minimum: typeof def.value === "object" ? def.value.getTime() : def.value, input: payload.value, inclusive: def.inclusive, inst, continue: !def.abort }); }; }); var $ZodCheckMultipleOf = /* @__PURE__ */ $constructor("$ZodCheckMultipleOf", (inst, def) => { $ZodCheck.init(inst, def); inst._zod.check = (payload) => { if (typeof payload.value !== typeof def.value) throw new Error("Cannot mix number and bigint in multiple_of check."); const isMultiple = typeof payload.value === "bigint" ? ( // `value % 0n` throws, and nothing is a multiple of zero — the number branch already fails this way via NaN def.value !== BigInt(0) && payload.value % def.value === BigInt(0) ) : floatSafeRemainder(payload.value, def.value) === 0; if (isMultiple) return; payload.issues.push({ origin: typeof payload.value, code: "not_multiple_of", divisor: def.value, input: payload.value, inst, continue: !def.abort }); }; }); var $ZodCheckNumberFormat = /* @__PURE__ */ $constructor("$ZodCheckNumberFormat", (inst, def) => { $ZodCheck.init(inst, def); def.format = def.format || "float64"; const isInt = def.format?.includes("int"); const origin = isInt ? "int" : "number"; const [minimum, maximum] = NUMBER_FORMAT_RANGES[def.format]; inst._zod.check = (payload) => { const input2 = payload.value; if (isInt) { if (!Number.isInteger(input2)) { payload.issues.push({ expected: origin, format: def.format, code: "invalid_type", continue: false, input: input2, inst }); return; } if (!Number.isSafeInteger(input2)) { if (input2 > 0) { payload.issues.push({ input: input2, code: "too_big", maximum: Number.MAX_SAFE_INTEGER, note: "Integers must be within the safe integer range.", inst, origin, inclusive: true, continue: !def.abort }); } else { payload.issues.push({ input: input2, code: "too_small", minimum: Number.MIN_SAFE_INTEGER, note: "Integers must be within the safe integer range.", inst, origin, inclusive: true, continue: !def.abort }); } return; } } if (input2 < minimum) { payload.issues.push({ origin: "number", input: input2, code: "too_small", minimum, inclusive: true, inst, continue: !def.abort }); } if (input2 > maximum) { payload.issues.push({ origin: "number", input: input2, code: "too_big", maximum, inclusive: true, inst, continue: !def.abort }); } }; }); var $ZodCheckBigIntFormat = /* @__PURE__ */ $constructor("$ZodCheckBigIntFormat", (inst, def) => { $ZodCheck.init(inst, def); const [minimum, maximum] = BIGINT_FORMAT_RANGES[def.format]; inst._zod.check = (payload) => { const input2 = payload.value; if (input2 < minimum) { payload.issues.push({ origin: "bigint", input: input2, code: "too_small", minimum, inclusive: true, inst, continue: !def.abort }); } if (input2 > maximum) { payload.issues.push({ origin: "bigint", input: input2, code: "too_big", maximum, inclusive: true, inst, continue: !def.abort }); } }; }); var $ZodCheckMaxSize = /* @__PURE__ */ $constructor("$ZodCheckMaxSize", (inst, def) => { var _a3; $ZodCheck.init(inst, def); (_a3 = inst._zod.def).when ?? (_a3.when = _whenHasSize); inst._zod.check = (payload) => { const input2 = payload.value; const size = input2.size; if (size <= def.maximum) return; payload.issues.push({ origin: getSizableOrigin(input2), code: "too_big", maximum: def.maximum, inclusive: true, input: input2, inst, continue: !def.abort }); }; }); var $ZodCheckMinSize = /* @__PURE__ */ $constructor("$ZodCheckMinSize", (inst, def) => { var _a3; $ZodCheck.init(inst, def); (_a3 = inst._zod.def).when ?? (_a3.when = _whenHasSize); inst._zod.check = (payload) => { const input2 = payload.value; const size = input2.size; if (size >= def.minimum) return; payload.issues.push({ origin: getSizableOrigin(input2), code: "too_small", minimum: def.minimum, inclusive: true, input: input2, inst, continue: !def.abort }); }; }); var $ZodCheckSizeEquals = /* @__PURE__ */ $constructor("$ZodCheckSizeEquals", (inst, def) => { var _a3; $ZodCheck.init(inst, def); (_a3 = inst._zod.def).when ?? (_a3.when = _whenHasSize); inst._zod.check = (payload) => { const input2 = payload.value; const size = input2.size; if (size === def.size) return; const tooBig = size > def.size; payload.issues.push({ origin: getSizableOrigin(input2), ...tooBig ? { code: "too_big", maximum: def.size } : { code: "too_small", minimum: def.size }, inclusive: true, exact: true, input: payload.value, inst, continue: !def.abort }); }; }); var $ZodCheckMaxLength = /* @__PURE__ */ $constructor("$ZodCheckMaxLength", (inst, def) => { var _a3; $ZodCheck.init(inst, def); (_a3 = inst._zod.def).when ?? (_a3.when = _whenHasLength); inst._zod.check = (payload) => { const input2 = payload.value; const units = input2.length; const length = typeof input2 === "string" && units > def.maximum ? codePointLength(input2) : units; if (length <= def.maximum) return; const origin = getLengthableOrigin(input2); payload.issues.push({ origin, code: "too_big", maximum: def.maximum, inclusive: true, input: input2, inst, continue: !def.abort }); }; }); var $ZodCheckMinLength = /* @__PURE__ */ $constructor("$ZodCheckMinLength", (inst, def) => { var _a3; $ZodCheck.init(inst, def); (_a3 = inst._zod.def).when ?? (_a3.when = _whenHasLength); inst._zod.check = (payload) => { const input2 = payload.value; const units = input2.length; const length = typeof input2 === "string" && units >= def.minimum && units < def.minimum * 2 ? codePointLength(input2) : units; if (length >= def.minimum) return; const origin = getLengthableOrigin(input2); payload.issues.push({ origin, code: "too_small", minimum: def.minimum, inclusive: true, input: input2, inst, continue: !def.abort }); }; }); var $ZodCheckLengthEquals = /* @__PURE__ */ $constructor("$ZodCheckLengthEquals", (inst, def) => { var _a3; $ZodCheck.init(inst, def); (_a3 = inst._zod.def).when ?? (_a3.when = _whenHasLength); inst._zod.check = (payload) => { const input2 = payload.value; const units = input2.length; const length = typeof input2 === "string" && units >= def.length && units <= def.length * 2 ? codePointLength(input2) : units; if (length === def.length) return; const origin = getLengthableOrigin(input2); const tooBig = length > def.length; payload.issues.push({ origin, ...tooBig ? { code: "too_big", maximum: def.length } : { code: "too_small", minimum: def.length }, inclusive: true, exact: true, input: payload.value, inst, continue: !def.abort }); }; }); var $ZodCheckStringFormat = /* @__PURE__ */ $constructor("$ZodCheckStringFormat", (inst, def) => { var _a3, _b; $ZodCheck.init(inst, def); if (def.pattern) (_a3 = inst._zod).check ?? (_a3.check = (payload) => { def.pattern.lastIndex = 0; if (def.pattern.test(payload.value)) return; payload.issues.push({ origin: "string", code: "invalid_format", format: def.format, input: payload.value, ...def.pattern ? { pattern: def.pattern.toString() } : {}, inst, continue: !def.abort }); }); else (_b = inst._zod).check ?? (_b.check = () => { }); }); var $ZodCheckRegex = /* @__PURE__ */ $constructor("$ZodCheckRegex", (inst, def) => { $ZodCheckStringFormat.init(inst, def); inst._zod.check = (payload) => { def.pattern.lastIndex = 0; if (def.pattern.test(payload.value)) return; payload.issues.push({ origin: "string", code: "invalid_format", format: "regex", input: payload.value, pattern: def.pattern.toString(), inst, continue: !def.abort }); }; }); var $ZodCheckLowerCase = /* @__PURE__ */ $constructor("$ZodCheckLowerCase", (inst, def) => { def.pattern ?? (def.pattern = lowercase); $ZodCheckStringFormat.init(inst, def); }); var $ZodCheckUpperCase = /* @__PURE__ */ $constructor("$ZodCheckUpperCase", (inst, def) => { def.pattern ?? (def.pattern = uppercase); $ZodCheckStringFormat.init(inst, def); }); var $ZodCheckIncludes = /* @__PURE__ */ $constructor("$ZodCheckIncludes", (inst, def) => { $ZodCheck.init(inst, def); const escapedRegex = escapeRegex(def.includes); const pattern = new RegExp(typeof def.position === "number" ? `^.{${def.position},}${escapedRegex}` : escapedRegex); def.pattern = pattern; inst._zod.check = (payload) => { if (payload.value.includes(def.includes, def.position)) return; payload.issues.push({ origin: "string", code: "invalid_format", format: "includes", includes: def.includes, input: payload.value, inst, continue: !def.abort }); }; }); var $ZodCheckStartsWith = /* @__PURE__ */ $constructor("$ZodCheckStartsWith", (inst, def) => { $ZodCheck.init(inst, def); const pattern = new RegExp(`^${escapeRegex(def.prefix)}.*`); def.pattern ?? (def.pattern = pattern); inst._zod.check = (payload) => { if (payload.value.startsWith(def.prefix)) return; payload.issues.push({ origin: "string", code: "invalid_format", format: "starts_with", prefix: def.prefix, input: payload.value, inst, continue: !def.abort }); }; }); var $ZodCheckEndsWith = /* @__PURE__ */ $constructor("$ZodCheckEndsWith", (inst, def) => { $ZodCheck.init(inst, def); const pattern = new RegExp(`.*${escapeRegex(def.suffix)}$`); def.pattern ?? (def.pattern = pattern); inst._zod.check = (payload) => { if (payload.value.endsWith(def.suffix)) return; payload.issues.push({ origin: "string", code: "invalid_format", format: "ends_with", suffix: def.suffix, input: payload.value, inst, continue: !def.abort }); }; }); function handleCheckPropertyResult(result, payload, property) { if (result.issues.length) { payload.issues.push(...prefixIssues(property, result.issues)); } } var $ZodCheckProperty = /* @__PURE__ */ $constructor("$ZodCheckProperty", (inst, def) => { $ZodCheck.init(inst, def); inst._zod.check = (payload) => { const result = def.schema._zod.run({ value: payload.value[def.property], issues: [] }, {}); if (result instanceof Promise) { return result.then((result2) => handleCheckPropertyResult(result2, payload, def.property)); } handleCheckPropertyResult(result, payload, def.property); return; }; }); var $ZodCheckProperties = /* @__PURE__ */ $constructor("$ZodCheckProperties", (inst, def) => { $ZodCheck.init(inst, def); hide(inst, Symbol.iterator, function* () { yield inst; }); let entries; inst._zod.check = (payload) => { if (payload.value == null) { payload.issues.push({ expected: "object", code: "invalid_type", input: payload.value, inst }); return void 0; } entries ?? (entries = Reflect.ownKeys(def.shape).map((key) => [key, def.shape[key]])); const input2 = payload.value; let proms; for (const [key, schema] of entries) { const result = schema._zod.run({ value: input2[key], issues: [] }, {}); if (result instanceof Promise) { proms ?? (proms = []); proms.push(result.then((result2) => handleCheckPropertyResult(result2, payload, key))); } else { handleCheckPropertyResult(result, payload, key); } } if (proms) return Promise.all(proms).then(() => void 0); return void 0; }; }); var $ZodCheckMimeType = /* @__PURE__ */ $constructor("$ZodCheckMimeType", (inst, def) => { $ZodCheck.init(inst, def); const mimeSet = new Set(def.mime); inst._zod.check = (payload) => { if (mimeSet.has(payload.value.type)) return; payload.issues.push({ code: "invalid_value", values: def.mime, input: payload.value.type, inst, continue: !def.abort }); }; }); var $ZodCheckOverwrite = /* @__PURE__ */ $constructor("$ZodCheckOverwrite", (inst, def) => { $ZodCheck.init(inst, def); inst._zod.check = (payload) => { payload.value = def.tx(payload.value); }; }); // ../../../../node_modules/zod/v4/core/doc.js var Doc = class { constructor(args = [], closed = {}) { this.content = []; this.indent = 0; this.args = args; this.closed = closed; } // the compiler catches a child's throw and keeps writing into this doc, so the indent has to unwind with it indented(fn) { this.indent += 1; try { fn(this); } finally { this.indent -= 1; } } write(arg) { if (typeof arg === "function") { arg(this, { execution: "sync" }); arg(this, { execution: "async" }); return; } const content = arg; const lines = content.split("\n").filter((x) => x); const minIndent = Math.min(...lines.map((x) => x.length - x.trimStart().length)); const dedented = lines.map((x) => x.slice(minIndent)).map((x) => " ".repeat(this.indent * 2) + x); for (const line of dedented) { this.content.push(line); } } compile() { const F = Function; const content = this?.content ?? [``]; const factory = new F(...Object.keys(this.closed), `return function (${this.args.join(", ")}) { ${content.join("\n")} };`); return factory(...Object.values(this.closed)); } }; // ../../../../node_modules/zod/v4/core/versions.js var version = { major: 4, minor: 6, patch: 5 }; // ../../../../node_modules/zod/v4/core/schemas.js var $ZodType = /* @__PURE__ */ $constructor("$ZodType", (inst, def) => { var _a3; inst ?? (inst = {}); inst._zod.def = def; inst._zod.bag = inst._zod.bag || {}; inst._zod.version = version; const defChecks = inst._zod.def.checks; const checks = inst._zod.traits.has("$ZodCheck") ? [inst, ...defChecks ?? []] : defChecks?.length ? [...defChecks] : []; for (const ch of checks) { for (const fn of ch._zod.onattach) { fn(inst); } } if (checks.length === 0) { (_a3 = inst._zod).deferred ?? (_a3.deferred = []); inst._zod.deferred?.push(() => { inst._zod.run = inst._zod.parse; }); } else { const runChecks = (payload, checks2, ctx) => { if (payload.memo) return payload; let isAborted3 = aborted(payload); let asyncResult; for (const ch of checks2) { if (ch._zod.def.when) { if (explicitlyAborted(payload)) continue; const shouldRun = ch._zod.def.when(payload); if (!shouldRun) continue; } else if (isAborted3) { continue; } const currLen = payload.issues.length; const _ = ch._zod.check(payload); if (_ instanceof Promise && ctx?.async === false) { throw new $ZodAsyncError(); } if (asyncResult || _ instanceof Promise) { asyncResult = (asyncResult ?? Promise.resolve()).then(async () => { await _; const nextLen = payload.issues.length; if (nextLen === currLen) return; attachSchema(payload.issues, currLen, inst); if (!isAborted3) isAborted3 = aborted(payload, currLen); }); } else { const nextLen = payload.issues.length; if (nextLen === currLen) continue; attachSchema(payload.issues, currLen, inst); if (!isAborted3) isAborted3 = aborted(payload, currLen); } } if (asyncResult) { return asyncResult.then(() => { return payload; }); } return payload; }; const handleCanaryResult = (canary, payload, ctx) => { if (aborted(canary)) { canary.aborted = true; return canary; } const checkResult = runChecks(payload, checks, ctx); if (checkResult instanceof Promise) { if (ctx.async === false) throw new $ZodAsyncError(); return checkResult.then((checkResult2) => inst._zod.parse(checkResult2, ctx)); } return inst._zod.parse(checkResult, ctx); }; inst._zod.run = (payload, ctx) => { if (ctx.skipChecks) { return inst._zod.parse(payload, ctx); } if (ctx.direction === "backward") { const canary = inst._zod.parse({ value: payload.value, issues: [] }, { ...ctx, skipChecks: true }); if (canary instanceof Promise) { return canary.then((canary2) => { return handleCanaryResult(canary2, payload, ctx); }); } return handleCanaryResult(canary, payload, ctx); } const result = inst._zod.parse(payload, ctx); if (result instanceof Promise) { if (ctx.async === false) throw new $ZodAsyncError(); return result.then((result2) => runChecks(result2, checks, ctx)); } return runChecks(result, checks, ctx); }; } }, { // Wrappers extend this by installing a richer factory over it; reading it eagerly would defeat the laziness. get "~standard"() { return hide(this, "~standard", standardProps(this)); }, set "~standard"(value) { own(this, "~standard", value); } }); var toStandardResult = (r, ctx) => r.issues.length ? { issues: r.issues.map((iss) => finalizeIssue(iss, ctx, config())) } : { value: r.value }; async function validateAsync2(inst, value) { const ctx = { async: true }; return toStandardResult(await inst._zod.run({ value, issues: [] }, ctx), ctx); } function standardProps(inst) { return { validate: (value) => { const ctx = { async: false }; try { const r = inst._zod.run({ value, issues: [] }, ctx); if (!(r instanceof Promise)) return toStandardResult(r, ctx); } catch (_) { } return validateAsync2(inst, value); }, vendor: "zod", version: 1 }; } var $ZodString = /* @__PURE__ */ $constructor("$ZodString", (inst, def) => { $ZodType.init(inst, def); inst._zod.pattern = def.pattern ?? anyString; inst._zod.parse = (payload, _) => { if (def.coerce) try { payload.value = String(payload.value); } catch (_2) { } if (typeof payload.value === "string") return payload; payload.issues.push({ expected: "string", code: "invalid_type", input: payload.value, inst }); return payload; }; }); var $ZodStringFormat = /* @__PURE__ */ $constructor("$ZodStringFormat", (inst, def) => { $ZodCheckStringFormat.init(inst, def); $ZodString.init(inst, def); }); var $ZodGUID = /* @__PURE__ */ $constructor("$ZodGUID", (inst, def) => { def.pattern ?? (def.pattern = guid); $ZodStringFormat.init(inst, def); }); var $ZodUUID = /* @__PURE__ */ $constructor("$ZodUUID", (inst, def) => { if (def.version) { const versionMap = { v1: 1, v2: 2, v3: 3, v4: 4, v5: 5, v6: 6, v7: 7, v8: 8 }; const v = versionMap[def.version]; if (v === void 0) throw new Error(`Invalid UUID version: "${def.version}"`); def.pattern ?? (def.pattern = uuid(v)); } else def.pattern ?? (def.pattern = uuid()); $ZodStringFormat.init(inst, def); }); var $ZodEmail = /* @__PURE__ */ $constructor("$ZodEmail", (inst, def) => { def.pattern ?? (def.pattern = email); $ZodStringFormat.init(inst, def); }); var URL_BAD_FORMAT = 1; var URL_UNPARSEABLE = 2; function canParseURL(input2) { try { if (typeof URL !== "undefined" && typeof URL.canParse === "function") return URL.canParse(input2); new URL(input2); return true; } catch { return false; } } function validateURL(trimmed, def) { if (!("normalize" in def) && !("hostname" in def) && !("protocol" in def)) { return canParseURL(trimmed) || URL_UNPARSEABLE; } return parseURLObject(trimmed, def); } function parseURLObject(trimmed, def) { if (!def.normalize && def.protocol?.source === httpProtocol.source && !/^https?:\/\//i.test(trimmed)) { return URL_BAD_FORMAT; } try { if (typeof URL !== "undefined") { const URLStatic = URL; if (typeof URLStatic.parse === "function") return URLStatic.parse(trimmed) ?? URL_UNPARSEABLE; } return new URL(trimmed); } catch { return URL_UNPARSEABLE; } } var asciiTabOrNewline = /[\t\n\r]/g; function stripTabAndNewline(value) { return value.replace(asciiTabOrNewline, ""); } function urlHostnameOk(url2, hostname3) { hostname3.lastIndex = 0; return hostname3.test(url2.hostname); } function urlProtocolOk(url2, protocol) { protocol.lastIndex = 0; return protocol.test(url2.protocol.endsWith(":") ? url2.protocol.slice(0, -1) : url2.protocol); } var $ZodURL = /* @__PURE__ */ $constructor("$ZodURL", (inst, def) => { $ZodStringFormat.init(inst, def); inst._zod.check = (payload) => { try { const trimmed = payload.value.trim(); const url2 = validateURL(trimmed, def); if (url2 === URL_BAD_FORMAT) { payload.issues.push({ code: "invalid_format", format: "url", note: "Invalid URL format", input: payload.value, inst, continue: !def.abort }); return; } if (url2 === URL_UNPARSEABLE) { payload.issues.push({ code: "invalid_format", format: "url", input: payload.value, inst, continue: !def.abort }); return; } if (url2 === true) { payload.value = stripTabAndNewline(trimmed); return; } if (def.hostname && !urlHostnameOk(url2, def.hostname)) { payload.issues.push({ code: "invalid_format", format: "url", note: "Invalid hostname", pattern: def.hostname.source, input: payload.value, inst, continue: !def.abort }); } if (def.protocol && !urlProtocolOk(url2, def.protocol)) { payload.issues.push({ code: "invalid_format", format: "url", note: "Invalid protocol", pattern: def.protocol.source, input: payload.value, inst, continue: !def.abort }); } payload.value = def.normalize ? url2.href : stripTabAndNewline(trimmed); return; } catch (_) { payload.issues.push({ code: "invalid_format", format: "url", input: payload.value, inst, continue: !def.abort }); } }; }); var $ZodEmoji = /* @__PURE__ */ $constructor("$ZodEmoji", (inst, def) => { def.pattern ?? (def.pattern = emoji()); $ZodStringFormat.init(inst, def); }); var $ZodNanoID = /* @__PURE__ */ $constructor("$ZodNanoID", (inst, def) => { if (def.length !== void 0 && (!Number.isInteger(def.length) || def.length < 1)) throw new Error(`Invalid nanoid length: ${def.length}`); def.pattern ?? (def.pattern = def.length === void 0 ? nanoid : nanoidOfLength(def.length)); $ZodStringFormat.init(inst, def); }); var $ZodCUID = /* @__PURE__ */ $constructor("$ZodCUID", (inst, def) => { def.pattern ?? (def.pattern = cuid); $ZodStringFormat.init(inst, def); }); var $ZodCUID2 = /* @__PURE__ */ $constructor("$ZodCUID2", (inst, def) => { def.pattern ?? (def.pattern = cuid2); $ZodStringFormat.init(inst, def); }); var $ZodULID = /* @__PURE__ */ $constructor("$ZodULID", (inst, def) => { def.pattern ?? (def.pattern = ulid); $ZodStringFormat.init(inst, def); }); var $ZodXID = /* @__PURE__ */ $constructor("$ZodXID", (inst, def) => { def.pattern ?? (def.pattern = xid); $ZodStringFormat.init(inst, def); }); var $ZodKSUID = /* @__PURE__ */ $constructor("$ZodKSUID", (inst, def) => { def.pattern ?? (def.pattern = ksuid); $ZodStringFormat.init(inst, def); }); var $ZodISODateTime = /* @__PURE__ */ $constructor("$ZodISODateTime", (inst, def) => { def.pattern ?? (def.pattern = datetime(def)); $ZodStringFormat.init(inst, def); }); var $ZodISODate = /* @__PURE__ */ $constructor("$ZodISODate", (inst, def) => { def.pattern ?? (def.pattern = date); $ZodStringFormat.init(inst, def); }); var $ZodISOTime = /* @__PURE__ */ $constructor("$ZodISOTime", (inst, def) => { def.pattern ?? (def.pattern = time(def)); $ZodStringFormat.init(inst, def); }); var $ZodISODuration = /* @__PURE__ */ $constructor("$ZodISODuration", (inst, def) => { def.pattern ?? (def.pattern = duration); $ZodStringFormat.init(inst, def); }); var $ZodIPv4 = /* @__PURE__ */ $constructor("$ZodIPv4", (inst, def) => { def.pattern ?? (def.pattern = ipv4); $ZodStringFormat.init(inst, def); }); var ipv6Alphabet = /^[0-9a-fA-F:.]+$/; function isValidIPv6(value) { if (!ipv6Alphabet.test(value)) return false; return canParseURL(`http://[${value}]`); } var $ZodIPv6 = /* @__PURE__ */ $constructor("$ZodIPv6", (inst, def) => { def.pattern ?? (def.pattern = ipv6); $ZodStringFormat.init(inst, def); inst._zod.check = (payload) => { if (!isValidIPv6(payload.value)) { payload.issues.push({ code: "invalid_format", format: "ipv6", input: payload.value, inst, continue: !def.abort }); } }; }); var $ZodMAC = /* @__PURE__ */ $constructor("$ZodMAC", (inst, def) => { def.pattern ?? (def.pattern = mac(def.delimiter)); $ZodStringFormat.init(inst, def); }); var $ZodCIDRv4 = /* @__PURE__ */ $constructor("$ZodCIDRv4", (inst, def) => { def.pattern ?? (def.pattern = cidrv4); $ZodStringFormat.init(inst, def); }); function isValidCIDRv6(value) { const parts = value.split("/"); if (parts.length !== 2) return false; const [address, prefix] = parts; if (!prefix) return false; const prefixNum = Number(prefix); if (`${prefixNum}` !== prefix) return false; if (prefixNum < 0 || prefixNum > 128) return false; return isValidIPv6(address); } var $ZodCIDRv6 = /* @__PURE__ */ $constructor("$ZodCIDRv6", (inst, def) => { def.pattern ?? (def.pattern = cidrv6); $ZodStringFormat.init(inst, def); inst._zod.check = (payload) => { if (!isValidCIDRv6(payload.value)) { payload.issues.push({ code: "invalid_format", format: "cidrv6", input: payload.value, inst, continue: !def.abort }); } }; }); function isValidBase64(data) { if (data === "") return true; if (/\s/.test(data)) return false; if (data.length % 4 !== 0) return false; try { atob(data); return true; } catch { return false; } } var base64Charset = /^[0-9a-zA-Z+/]*={0,2}$/; var $ZodBase64 = /* @__PURE__ */ $constructor("$ZodBase64", (inst, def) => { def.pattern ?? (def.pattern = base64Charset); $ZodStringFormat.init(inst, def); inst._zod.check = (payload) => { if (isValidBase64(payload.value)) return; payload.issues.push({ code: "invalid_format", format: "base64", input: payload.value, inst, continue: !def.abort }); }; }); var base64urlCharset = /^[A-Za-z0-9_-]*$/; function isValidBase64URL(data) { if (!base64urlCharset.test(data)) return false; const base643 = data.replace(/[-_]/g, (c) => c === "-" ? "+" : "/"); const padded = base643.padEnd(Math.ceil(base643.length / 4) * 4, "="); return isValidBase64(padded); } var $ZodBase64URL = /* @__PURE__ */ $constructor("$ZodBase64URL", (inst, def) => { def.pattern ?? (def.pattern = base64urlCharset); $ZodStringFormat.init(inst, def); inst._zod.check = (payload) => { if (isValidBase64URL(payload.value)) return; payload.issues.push({ code: "invalid_format", format: "base64url", input: payload.value, inst, continue: !def.abort }); }; }); var $ZodE164 = /* @__PURE__ */ $constructor("$ZodE164", (inst, def) => { def.pattern ?? (def.pattern = e164); $ZodStringFormat.init(inst, def); }); var CC_SANITIZE = /[- ]/g; function isLuhnAlgo(digits) { let length = digits.length; let bit = 1; let sum = 0; while (length) { const value = digits.charCodeAt(--length) - 48; bit ^= 1; sum += bit ? [0, 2, 4, 6, 8, 1, 3, 5, 7, 9][value] : value; } return sum % 10 === 0; } function isValidCreditCard(input2) { if (!creditCard.test(input2)) return false; return isLuhnAlgo(input2.replace(CC_SANITIZE, "")); } var $ZodCreditCard = /* @__PURE__ */ $constructor("$ZodCreditCard", (inst, def) => { def.pattern ?? (def.pattern = creditCard); $ZodStringFormat.init(inst, def); inst._zod.check = (payload) => { if (isValidCreditCard(payload.value)) return; payload.issues.push({ code: "invalid_format", format: "credit_card", input: payload.value, inst, continue: !def.abort }); }; }); function isIso7064Mod97(iban3) { let remainder = 0; const len = iban3.length; for (let i = 4; i < len; i++) { const code = iban3.charCodeAt(i); remainder = (code >= 65 ? remainder * 100 + (code - 55) : remainder * 10 + (code - 48)) % 97; } for (let i = 0; i < 4; i++) { const code = iban3.charCodeAt(i); remainder = (code >= 65 ? remainder * 100 + (code - 55) : remainder * 10 + (code - 48)) % 97; } return remainder === 1; } function isValidIBAN(input2) { if (!iban.test(input2)) return false; return isIso7064Mod97(input2); } var $ZodIBAN = /* @__PURE__ */ $constructor("$ZodIBAN", (inst, def) => { def.pattern ?? (def.pattern = iban); $ZodStringFormat.init(inst, def); inst._zod.check = (payload) => { if (isValidIBAN(payload.value)) return; payload.issues.push({ code: "invalid_format", format: "iban", input: payload.value, inst, continue: !def.abort }); }; }); function isValidJWT(token, algorithm = null) { try { const tokensParts = token.split("."); if (tokensParts.length !== 3) return false; const [header] = tokensParts; if (!header) return false; const parsedHeader = JSON.parse(atob(header)); if ("typ" in parsedHeader && parsedHeader?.typ !== "JWT") return false; if (!parsedHeader.alg) return false; if (algorithm && (!("alg" in parsedHeader) || parsedHeader.alg !== algorithm)) return false; return true; } catch { return false; } } var $ZodJWT = /* @__PURE__ */ $constructor("$ZodJWT", (inst, def) => { $ZodStringFormat.init(inst, def); inst._zod.check = (payload) => { if (isValidJWT(payload.value, def.alg)) return; payload.issues.push({ code: "invalid_format", format: "jwt", input: payload.value, inst, continue: !def.abort }); }; }); var $ZodCustomStringFormat = /* @__PURE__ */ $constructor("$ZodCustomStringFormat", (inst, def) => { $ZodStringFormat.init(inst, def); inst._zod.check = (payload) => { if (def.fn(payload.value)) return; payload.issues.push({ code: "invalid_format", format: def.format, input: payload.value, inst, continue: !def.abort }); }; }); var $ZodNumber = /* @__PURE__ */ $constructor("$ZodNumber", (inst, def) => { $ZodType.init(inst, def); inst._zod.pattern = number; inst._zod.parse = (payload, _ctx) => { if (def.coerce) try { payload.value = Number(payload.value); } catch (_) { } const input2 = payload.value; if (typeof input2 === "number" && !Number.isNaN(input2) && Number.isFinite(input2)) { return payload; } const received = typeof input2 === "number" ? Number.isNaN(input2) ? "NaN" : !Number.isFinite(input2) ? String(input2) : void 0 : void 0; payload.issues.push({ expected: "number", code: "invalid_type", input: input2, inst, ...received ? { received } : {} }); return payload; }; }); var $ZodNumberFormat = /* @__PURE__ */ $constructor("$ZodNumberFormat", (inst, def) => { $ZodCheckNumberFormat.init(inst, def); $ZodNumber.init(inst, def); }); var $ZodBoolean = /* @__PURE__ */ $constructor("$ZodBoolean", (inst, def) => { $ZodType.init(inst, def); inst._zod.pattern = boolean; inst._zod.parse = (payload, _ctx) => { if (def.coerce) try { payload.value = Boolean(payload.value); } catch (_) { } const input2 = payload.value; if (typeof input2 === "boolean") return payload; payload.issues.push({ expected: "boolean", code: "invalid_type", input: input2, inst }); return payload; }; }); var $ZodBigInt = /* @__PURE__ */ $constructor("$ZodBigInt", (inst, def) => { $ZodType.init(inst, def); inst._zod.pattern = bigint; inst._zod.parse = (payload, _ctx) => { if (def.coerce) try { payload.value = BigInt(payload.value); } catch (_) { } if (typeof payload.value === "bigint") return payload; payload.issues.push({ expected: "bigint", code: "invalid_type", input: payload.value, inst }); return payload; }; }); var $ZodBigIntFormat = /* @__PURE__ */ $constructor("$ZodBigIntFormat", (inst, def) => { $ZodCheckBigIntFormat.init(inst, def); $ZodBigInt.init(inst, def); }); var $ZodSymbol = /* @__PURE__ */ $constructor("$ZodSymbol", (inst, def) => { $ZodType.init(inst, def); inst._zod.parse = (payload, _ctx) => { const input2 = payload.value; if (typeof input2 === "symbol") return payload; payload.issues.push({ expected: "symbol", code: "invalid_type", input: input2, inst }); return payload; }; }); var $ZodUndefined = /* @__PURE__ */ $constructor("$ZodUndefined", (inst, def) => { $ZodType.init(inst, def); inst._zod.pattern = _undefined; inst._zod.values = /* @__PURE__ */ new Set([void 0]); inst._zod.parse = (payload, _ctx) => { const input2 = payload.value; if (typeof input2 === "undefined") return payload; payload.issues.push({ expected: "undefined", code: "invalid_type", input: input2, inst }); return payload; }; }); var $ZodNull = /* @__PURE__ */ $constructor("$ZodNull", (inst, def) => { $ZodType.init(inst, def); inst._zod.pattern = _null; inst._zod.values = /* @__PURE__ */ new Set([null]); inst._zod.parse = (payload, _ctx) => { const input2 = payload.value; if (input2 === null) return payload; payload.issues.push({ expected: "null", code: "invalid_type", input: input2, inst }); return payload; }; }); var $ZodAny = /* @__PURE__ */ $constructor("$ZodAny", (inst, def) => { $ZodType.init(inst, def); inst._zod.parse = (payload) => payload; }); var $ZodUnknown = /* @__PURE__ */ $constructor("$ZodUnknown", (inst, def) => { $ZodType.init(inst, def); inst._zod.parse = (payload) => payload; }); var $ZodNever = /* @__PURE__ */ $constructor("$ZodNever", (inst, def) => { $ZodType.init(inst, def); inst._zod.parse = (payload, _ctx) => { payload.issues.push({ expected: "never", code: "invalid_type", input: payload.value, inst }); return payload; }; }); var $ZodVoid = /* @__PURE__ */ $constructor("$ZodVoid", (inst, def) => { $ZodType.init(inst, def); inst._zod.parse = (payload, _ctx) => { const input2 = payload.value; if (typeof input2 === "undefined") return payload; payload.issues.push({ expected: "void", code: "invalid_type", input: input2, inst }); return payload; }; }); var $ZodDate = /* @__PURE__ */ $constructor("$ZodDate", (inst, def) => { $ZodType.init(inst, def); inst._zod.parse = (payload, _ctx) => { if (def.coerce) { try { payload.value = new Date(payload.value); } catch (_err) { } } const input2 = payload.value; const isDate = input2 instanceof Date; const isValidDate = isDate && !Number.isNaN(input2.getTime()); if (isValidDate) return payload; payload.issues.push({ expected: "date", code: "invalid_type", input: input2, ...isDate ? { received: "Invalid Date" } : {}, inst }); return payload; }; }); function handleArrayResult(result, final, index) { if (result.issues.length) { final.issues.push(...prefixIssues(index, result.issues)); } final.value[index] = result.value; } var $ZodArray = /* @__PURE__ */ $constructor("$ZodArray", (inst, def) => { $ZodType.init(inst, def); const memo3 = globalConfig.memoizer; memo3?.attach(inst); inst._zod.parse = (payload, ctx) => { const input2 = payload.value; if (!Array.isArray(input2)) { payload.issues.push({ expected: "array", code: "invalid_type", input: input2, inst }); return payload; } payload.value = memo3 ? memo3.alloc(inst, payload, Array(input2.length), ctx) : Array(input2.length); const proms = []; const abortEarly = ctx?.abortEarly; for (let i = 0; i < input2.length; i++) { const item = input2[i]; const result = def.element._zod.run({ value: item, issues: [] }, ctx); if (result instanceof Promise) { proms.push(result.then((result2) => handleArrayResult(result2, payload, i))); } else { handleArrayResult(result, payload, i); if (abortEarly && result.issues.length !== 0 && aborted(result)) break; } } if (proms.length) { return Promise.all(proms).then(() => payload); } return payload; }; }); function handlePropertyResult(result, final, key, input2, optin, optout) { const isPresent = key in input2; const isOptionalOut = optout === "optional"; if (!isPresent && isOptionalOut && optin === "optional") { return; } if (result.issues.length) { if (optin !== void 0 && isOptionalOut && !isPresent) { return; } final.issues.push(...prefixIssues(key, result.issues)); } if (!isPresent && optin === void 0) { if (!result.issues.length) { final.issues.push({ code: "invalid_type", expected: "nonoptional", input: void 0, path: [key] }); } return; } if (result.value === void 0) { if (isPresent || optin === "defaulted" && !isOptionalOut) { final.value[key] = void 0; } } else { final.value[key] = result.value; } } var NO_SYMBOL_KEYS = []; function normalizeDef(def) { const keys = Object.keys(def.shape); const ownSymbols = Object.getOwnPropertySymbols(def.shape); const symbolKeys = ownSymbols.length ? ownSymbols : NO_SYMBOL_KEYS; const allKeys = symbolKeys.length ? [...keys, ...symbolKeys] : keys; for (const k of allKeys) { if (!def.shape?.[k]?._zod?.traits?.has("$ZodType")) { throw new Error(`Invalid element at key "${String(k)}": expected a Zod schema`); } } const okeys = optionalKeys(def.shape); return { ...def, allKeys, symbolKeys, // string-only: handleCatchall matches it against `for...in`, which never yields a symbol keySet: new Set(keys), numKeys: keys.length, optionalKeys: new Set(okeys) }; } function handleCatchall(proms, input2, payload, ctx, def, inst, abortEarly) { const unrecognized = []; const keySet = def.keySet; const _catchall = def.catchall._zod; const t = _catchall.def.type; const optin = _catchall.optin; const optout = _catchall.optout; let seen = 0; for (const key in input2) { if (abortEarly && payload.issues.length !== seen) { if (aborted(payload, seen)) break; seen = payload.issues.length; } if (keySet.has(key)) continue; if (key === "__proto__") { if (t === "never") unrecognized.push(key); continue; } if (t === "never") { unrecognized.push(key); continue; } const r = _catchall.run({ value: input2[key], issues: [] }, ctx); if (r instanceof Promise) { proms.push(r.then((r2) => handlePropertyResult(r2, payload, key, input2, optin, optout))); } else { handlePropertyResult(r, payload, key, input2, optin, optout); } } if (unrecognized.length) { payload.issues.push({ code: "unrecognized_keys", keys: unrecognized, input: input2, inst, // Describes the shape of the input, not the validity of the parsed value, so it never aborts. The parse still fails; the schema's own checks just get to run first, and an enclosing intersection can reconcile the key against a sibling operand. continue: true }); } if (!proms.length) return payload; return Promise.all(proms).then(() => { return payload; }); } var $ZodObject = /* @__PURE__ */ $constructor("$ZodObject", (inst, def) => { $ZodType.init(inst, def); const desc = Object.getOwnPropertyDescriptor(def, "shape"); const sh = desc?.get ? desc.get.raw : def.shape ?? {}; if (sh) { const get = () => { const newSh = { ...sh }; Object.defineProperty(def, "shape", { value: newSh }); get.raw = newSh; return newSh; }; get.raw = sh; Object.defineProperty(def, "shape", { get }); } const _normalized = cached(() => normalizeDef(def)); defineLazyInternal(inst, "propValues", (zod) => { const shape = zod.def.shape; const propValues = {}; for (const key in shape) { const field = shape[key]._zod; if (field.values) { if (!Object.prototype.hasOwnProperty.call(propValues, key)) { assignProp(propValues, key, /* @__PURE__ */ new Set()); } for (const v of field.values) propValues[key].add(v); if (field.optin !== void 0) propValues[key].add(void 0); } } return propValues; }); const isObject2 = isObject; const catchall = def.catchall; let value; const memo3 = globalConfig.memoizer; memo3?.attach(inst); inst._zod.parse = (payload, ctx) => { value ?? (value = _normalized.value); const input2 = payload.value; if (!isObject2(input2)) { payload.issues.push({ expected: "object", code: "invalid_type", input: input2, inst }); return payload; } payload.value = memo3 ? memo3.alloc(inst, payload, {}, ctx) : {}; const proms = []; const shape = value.shape; const abortEarly = ctx?.abortEarly; let seen = payload.issues.length; for (const key of value.allKeys) { if (abortEarly && payload.issues.length !== seen) { if (aborted(payload, seen)) break; seen = payload.issues.length; } if (key === "__proto__") continue; const el = shape[key]; const optin = el._zod.optin; const optout = el._zod.optout; const r = el._zod.run({ value: input2[key], issues: [] }, ctx); if (r instanceof Promise) { proms.push(r.then((r2) => handlePropertyResult(r2, payload, key, input2, optin, optout))); } else { handlePropertyResult(r, payload, key, input2, optin, optout); } } if (!catchall) { return proms.length ? Promise.all(proms).then(() => payload) : payload; } return handleCatchall(proms, input2, payload, ctx, _normalized.value, inst, abortEarly === true); }; }); var $ZodObjectJIT = /* @__PURE__ */ $constructor("$ZodObjectJIT", (inst, def) => { $ZodObject.init(inst, def); const superParse = inst._zod.parse; const _normalized = cached(() => normalizeDef(def)); const memo3 = globalConfig.memoizer; const generateFastpass = (shape) => { const normalized = _normalized.value; const syms = normalized.symbolKeys; const doc = new Doc(["payload", "ctx"], { shape, inst, memo: memo3, syms }); const parseStr = (k) => `shape[${k}]._zod.run({ value: input[${k}], issues: [] }, ctx)`; const prefixStr = (id, k) => ` let ${id}_ab = false; for (let i = 0; i < ${id}.issues.length; i++) { const iss = ${id}.issues[i]; iss.path = iss.path ? [${k}, ...iss.path] : [${k}]; payload.issues.push(iss); if (iss.continue !== true) ${id}_ab = true; } if (${id}_ab && ctx && ctx.abortEarly) { payload.value = newResult; return payload; }`; doc.write(`const input = payload.value;`); const ids = /* @__PURE__ */ Object.create(null); let counter = 0; for (const key of normalized.allKeys) { ids[key] = `key_${counter++}`; } doc.write(memo3 ? `const newResult = memo.alloc(inst, payload, {}, ctx);` : `const newResult = {};`); for (const key of normalized.allKeys) { if (key === "__proto__") continue; const id = ids[key]; const k = typeof key === "symbol" ? `syms[${syms.indexOf(key)}]` : esc(key); const isPresent = `${k} in input`; const schema = shape[key]; const optin = schema?._zod?.optin; const isOptionalIn = optin !== void 0; const isOptionalOut = schema?._zod?.optout === "optional"; doc.write(`const ${id} = ${parseStr(k)};`); if (isOptionalIn && isOptionalOut) { const assign = optin === "optional" ? `${id}_present` : `${id}.value !== undefined || ${id}_present`; doc.write(` const ${id}_present = ${isPresent}; if (!${id}.issues.length || ${id}_present) { if (${id}.issues.length) {${prefixStr(id, k)} } if (${assign}) { newResult[${k}] = ${id}.value; } } `); } else if (!isOptionalIn) { doc.write(` const ${id}_present = ${isPresent}; if (${id}.issues.length) {${prefixStr(id, k)} } if (!${id}_present && !${id}.issues.length) { payload.issues.push({ code: "invalid_type", expected: "nonoptional", input: undefined, path: [${k}] }); if (ctx && ctx.abortEarly) { payload.value = newResult; return payload; } } if (${id}_present) { newResult[${k}] = ${id}.value; } `); } else { doc.write(` if (${id}.issues.length) {${prefixStr(id, k)} } `); if (optin === "defaulted") { doc.write(`newResult[${k}] = ${id}.value;`); } else { doc.write(` if (${id}.value !== undefined || ${isPresent}) { newResult[${k}] = ${id}.value; } `); } } } doc.write(`payload.value = newResult;`); doc.write(`return payload;`); return doc.compile(); }; let fastpass; const isObject2 = isObject; const jit = !globalConfig.jitless; const allowsEval2 = allowsEval; const fastEnabled = jit && allowsEval2.value; const catchall = def.catchall; let value; inst._zod.parse = (payload, ctx) => { value ?? (value = _normalized.value); const input2 = payload.value; if (!isObject2(input2)) { payload.issues.push({ expected: "object", code: "invalid_type", input: input2, inst }); return payload; } if (jit && fastEnabled && ctx?.async === false && ctx.jitless !== true) { if (!fastpass) fastpass = generateFastpass(def.shape); payload = fastpass(payload, ctx); if (!catchall) return payload; return handleCatchall([], input2, payload, ctx, value, inst, ctx?.abortEarly === true); } return superParse(payload, ctx); }; }); function handleUnionResults(results, final, inst, ctx) { for (const result of results) { if (result.issues.length === 0) { final.value = result.value; return final; } } const nonaborted = results.filter((r) => !aborted(r)); if (nonaborted.length === 1) { final.value = nonaborted[0].value; return nonaborted[0]; } final.issues.push({ code: "invalid_union", input: final.value, inst, errors: results.map((result) => result.issues.map((iss) => finalizeIssue(iss, ctx, config()))) }); return final; } var $ZodUnion = /* @__PURE__ */ $constructor("$ZodUnion", (inst, def) => { $ZodType.init(inst, def); defineLazyInternal(inst, "optin", (zod) => zod.def.options.some((o) => o._zod.optin === "defaulted") ? "defaulted" : zod.def.options.some((o) => o._zod.optin !== void 0) ? "optional" : void 0); defineLazyInternal(inst, "optout", (zod) => zod.def.options.some((o) => o._zod.optout === "optional") ? "optional" : void 0); defineLazyInternal(inst, "values", (zod) => { if (zod.def.options.every((o) => o._zod.values)) { return new Set(zod.def.options.flatMap((option) => Array.from(option._zod.values))); } return void 0; }); defineLazyInternal(inst, "pattern", (zod) => { if (zod.def.options.every((o) => o._zod.pattern)) { const patterns = zod.def.options.map((o) => o._zod.pattern); return new RegExp(`^(${patterns.map((p) => cleanRegex(p.source)).join("|")})$`); } return void 0; }); const first = def.options.length === 1 ? def.options[0]._zod.run : null; inst._zod.parse = (payload, ctx) => { if (first) { return first(payload, ctx); } let async = false; const results = []; for (const option of def.options) { const result = option._zod.run({ value: payload.value, issues: [] }, ctx); if (result instanceof Promise) { results.push(result); async = true; } else { if (result.issues.length === 0) return result; results.push(result); } } if (!async) return handleUnionResults(results, payload, inst, ctx); return Promise.all(results).then((results2) => { return handleUnionResults(results2, payload, inst, ctx); }); }; }); function handleExclusiveUnionResults(results, final, inst, ctx) { const matches = []; for (let i = 0; i < results.length; i++) { if (results[i].issues.length === 0) matches.push(i); } if (matches.length === 1) { final.value = results[matches[0]].value; return final; } if (matches.length === 0) { final.issues.push({ code: "invalid_union", input: final.value, inst, errors: results.map((result) => result.issues.map((iss) => finalizeIssue(iss, ctx, config()))) }); } else { final.issues.push({ code: "invalid_union", input: final.value, inst, errors: [], inclusive: false, matches }); } return final; } var $ZodXor = /* @__PURE__ */ $constructor("$ZodXor", (inst, def) => { $ZodUnion.init(inst, def); def.inclusive = false; const first = def.options.length === 1 ? def.options[0]._zod.run : null; inst._zod.parse = (payload, ctx) => { if (first) { return first(payload, ctx); } let async = false; const results = []; for (const option of def.options) { const result = option._zod.run({ value: payload.value, issues: [] }, ctx); if (result instanceof Promise) { results.push(result); async = true; } else { results.push(result); } } if (!async) return handleExclusiveUnionResults(results, payload, inst, ctx); return Promise.all(results).then((results2) => { return handleExclusiveUnionResults(results2, payload, inst, ctx); }); }; }); function getDiscriminatedOption(union2, value) { const internals = union2._zod; let map2 = internals.bag.optionsMap; if (!map2) { map2 = discriminatorMap(internals.def); internals.bag.optionsMap = map2; } const option = map2.get(value); if (option === null) throw new Error(`Ambiguous discriminator value "${String(value)}"`); return option; } function discriminatorMap(def) { const map2 = /* @__PURE__ */ new Map(); for (const option of def.options) { const values = option._zod.propValues?.[def.discriminator]; if (!values || values.size === 0) throw new Error(`Invalid discriminated union option at index "${def.options.indexOf(option)}"`); for (const value of values) { if (map2.has(value)) { if (value !== void 0) throw new Error(`Duplicate discriminator value "${String(value)}"`); map2.set(value, null); } else { map2.set(value, option); } } } return map2; } var $ZodDiscriminatedUnion = /* @__PURE__ */ $constructor("$ZodDiscriminatedUnion", (inst, def) => { def.inclusive = false; $ZodUnion.init(inst, def); const _super = inst._zod.parse; defineLazyInternal(inst, "propValues", (zod) => { const propValues = {}; let undefinedCount = 0; for (const option of zod.def.options) { const pv = option._zod.propValues; if (!pv || Object.keys(pv).length === 0) throw new Error(`Invalid discriminated union option at index "${zod.def.options.indexOf(option)}"`); if (pv[zod.def.discriminator]?.has(void 0)) undefinedCount++; for (const [k, v] of Object.entries(pv)) { if (!Object.prototype.hasOwnProperty.call(propValues, k)) { assignProp(propValues, k, /* @__PURE__ */ new Set()); } for (const val of v) { propValues[k].add(val); } } } if (!zod.def.unionFallback && undefinedCount > 1) propValues[zod.def.discriminator]?.delete(void 0); return propValues; }); def.options.forEach((option, i) => { const propShape = rawShape(option._zod.def); if (propShape && !Object.prototype.hasOwnProperty.call(propShape, def.discriminator)) { throw new Error(`Invalid discriminated union option at index "${i}"`); } }); const disc = cached(() => discriminatorMap(def)); inst._zod.parse = (payload, ctx) => { const input2 = payload.value; if (!isObject(input2)) { payload.issues.push({ code: "invalid_type", expected: "object", input: input2, inst }); return payload; } const value = input2?.[def.discriminator]; const opt = disc.value.get(value); if (opt && (value !== void 0 || ctx.direction !== "backward")) { return opt._zod.run(payload, ctx); } if (def.unionFallback || ctx.direction === "backward") { return _super(payload, ctx); } payload.issues.push({ code: "invalid_union", errors: [], note: "No matching discriminator", discriminator: def.discriminator, options: Array.from(disc.value.keys()).filter((value2) => disc.value.get(value2) !== null), input: input2, path: [def.discriminator], inst }); return payload; }; }); var $ZodIntersection = /* @__PURE__ */ $constructor("$ZodIntersection", (inst, def) => { $ZodType.init(inst, def); inst._zod.parse = (payload, ctx) => { const input2 = payload.value; const left = def.left._zod.run({ value: input2, issues: [] }, ctx); const right = def.right._zod.run({ value: input2, issues: [] }, ctx); const async = left instanceof Promise || right instanceof Promise; if (async) { return Promise.all([left, right]).then(([left2, right2]) => { return handleIntersectionResults(payload, left2, right2); }); } return handleIntersectionResults(payload, left, right); }; }); function mergeValues(a, b) { if (a === b) { return { valid: true, data: a }; } if (a instanceof Date && b instanceof Date && +a === +b) { return { valid: true, data: a }; } if (isPlainObject(a) && isPlainObject(b)) { const bKeys = Object.keys(b); const sharedKeys = Object.keys(a).filter((key) => bKeys.indexOf(key) !== -1); const newObj = { ...a, ...b }; if (Object.prototype.hasOwnProperty.call(newObj, "__proto__")) delete newObj.__proto__; for (const key of sharedKeys) { if (key === "__proto__") continue; const sharedValue = mergeValues(a[key], b[key]); if (!sharedValue.valid) { return { valid: false, mergeErrorPath: [key, ...sharedValue.mergeErrorPath] }; } newObj[key] = sharedValue.data; } return { valid: true, data: newObj }; } if (Array.isArray(a) && Array.isArray(b)) { if (a.length !== b.length) { return { valid: false, mergeErrorPath: [] }; } const newArray = []; for (let index = 0; index < a.length; index++) { const itemA = a[index]; const itemB = b[index]; const sharedValue = mergeValues(itemA, itemB); if (!sharedValue.valid) { return { valid: false, mergeErrorPath: [index, ...sharedValue.mergeErrorPath] }; } newArray.push(sharedValue.data); } return { valid: true, data: newArray }; } return { valid: false, mergeErrorPath: [] }; } function handleIntersectionResults(result, left, right) { const unrecKeys = /* @__PURE__ */ new Map(); let unrecIssue; const keyIssues = /* @__PURE__ */ new Map(); const collect = (iss, side) => { let keys; if (iss.code === "unrecognized_keys" && !iss.path?.length) { unrecIssue ?? (unrecIssue = iss); keys = iss.keys; } else if (iss.code === "invalid_key" && iss.origin === "record" && iss.path?.length === 1) { const k = String(iss.path[0]); if (!keyIssues.has(k)) keyIssues.set(k, iss); keys = [k]; } else { return false; } for (const k of keys) { if (!unrecKeys.has(k)) unrecKeys.set(k, {}); unrecKeys.get(k)[side] = true; } return true; }; for (const iss of left.issues) { if (!collect(iss, "l")) result.issues.push(iss); } for (const iss of right.issues) { if (!collect(iss, "r")) result.issues.push(iss); } const bothKeys = [...unrecKeys].filter(([, f]) => f.l && f.r).map(([k]) => k); if (bothKeys.length) { const aggregated = unrecIssue ? bothKeys.filter((k) => unrecIssue.keys.includes(k)) : []; if (aggregated.length) result.issues.push({ ...unrecIssue, keys: aggregated }); for (const k of bothKeys) { if (!aggregated.includes(k) && keyIssues.has(k)) result.issues.push(keyIssues.get(k)); } } const merged = mergeValues(left.value, right.value); if (!merged.valid) { if (aborted(result)) return result; throw new Error(`Unmergable intersection. Error path: ${JSON.stringify(merged.mergeErrorPath)}`); } result.value = merged.data; return result; } var $ZodTuple = /* @__PURE__ */ $constructor("$ZodTuple", (inst, def) => { $ZodType.init(inst, def); const items = def.items; const memo3 = globalConfig.memoizer; memo3?.attach(inst); inst._zod.parse = (payload, ctx) => { const input2 = payload.value; if (!Array.isArray(input2)) { payload.issues.push({ input: input2, inst, expected: "tuple", code: "invalid_type" }); return payload; } payload.value = memo3 ? memo3.alloc(inst, payload, [], ctx) : []; const proms = []; const optinStart = getTupleOptStart(items, "optin"); const optoutStart = getTupleOptStart(items, "optout"); if (!def.rest) { if (input2.length < optinStart) { payload.issues.push({ code: "too_small", minimum: optinStart, inclusive: true, input: input2, inst, origin: "array" }); return payload; } if (input2.length > items.length) { payload.issues.push({ code: "too_big", maximum: items.length, inclusive: true, input: input2, inst, origin: "array" }); } } const itemResults = new Array(items.length); const abortEarly = def.rest ? ctx?.abortEarly : void 0; let itemAborted = false; for (let i = 0; i < items.length; i++) { const r = items[i]._zod.run({ value: input2[i], issues: [] }, ctx); if (r instanceof Promise) { proms.push(r.then((rr) => { itemResults[i] = rr; })); } else { itemResults[i] = r; if (abortEarly && !itemAborted && r.issues.length) itemAborted = aborted(r); } } if (def.rest && !itemAborted) { let i = items.length - 1; const rest = input2.slice(items.length); let seen = payload.issues.length; for (const el of rest) { if (abortEarly && payload.issues.length !== seen) { if (aborted(payload, seen)) break; seen = payload.issues.length; } i++; const result = def.rest._zod.run({ value: el, issues: [] }, ctx); if (result instanceof Promise) { proms.push(result.then((r) => handleTupleResult(r, payload, i))); } else { handleTupleResult(result, payload, i); } } } if (proms.length) { return Promise.all(proms).then(() => handleTupleResults(itemResults, payload, items, input2, optoutStart)); } return handleTupleResults(itemResults, payload, items, input2, optoutStart); }; }); function getTupleOptStart(items, key) { for (let i = items.length - 1; i >= 0; i--) { const omittable = key === "optin" ? items[i]._zod.optin !== void 0 : items[i]._zod.optout === "optional"; if (!omittable) return i + 1; } return 0; } function handleTupleResult(result, final, index) { if (result.issues.length) { final.issues.push(...prefixIssues(index, result.issues)); } final.value[index] = result.value; } function handleTupleResults(itemResults, final, items, input2, optoutStart) { for (let i = 0; i < items.length; i++) { const r = itemResults[i]; const isPresent = i < input2.length; if (!isPresent && i >= optoutStart && items[i]._zod.optin === "optional") { final.value.length = i; break; } if (r.issues.length) { if (!isPresent && i >= optoutStart) { final.value.length = i; break; } final.issues.push(...prefixIssues(i, r.issues)); } final.value[i] = r.value; } for (let i = final.value.length - 1; i >= input2.length; i--) { if (items[i]._zod.optout === "optional" && final.value[i] === void 0) { final.value.length = i; } else { break; } } return final; } var $ZodRecord = /* @__PURE__ */ $constructor("$ZodRecord", (inst, def) => { $ZodType.init(inst, def); const memo3 = globalConfig.memoizer; memo3?.attach(inst); inst._zod.parse = (payload, ctx) => { const input2 = payload.value; if (!isPlainObject(input2)) { payload.issues.push({ expected: "record", code: "invalid_type", input: input2, inst }); return payload; } const proms = []; const values = def.keyType._zod.values; if (values && !def.partial) { payload.value = memo3 ? memo3.alloc(inst, payload, {}, ctx) : {}; const recordKeys = /* @__PURE__ */ new Set(); for (const key of values) { if (typeof key === "string" || typeof key === "number" || typeof key === "symbol") { recordKeys.add(typeof key === "number" ? key.toString() : key); if (key === "__proto__") continue; const keyResult = def.keyType._zod.run({ value: key, issues: [] }, ctx); if (keyResult instanceof Promise) { throw new Error("Async schemas not supported in object keys currently"); } if (keyResult.issues.length) { payload.issues.push({ code: "invalid_key", origin: "record", issues: keyResult.issues.map((iss) => finalizeIssue(iss, ctx, config())), input: key, path: [key], inst }); continue; } const outKey = keyResult.value; if (outKey === "__proto__") continue; const result = def.valueType._zod.run({ value: input2[key], issues: [] }, ctx); if (result instanceof Promise) { proms.push(result.then((result2) => { if (result2.issues.length) { payload.issues.push(...prefixIssues(key, result2.issues)); } payload.value[outKey] = result2.value; })); } else { if (result.issues.length) { payload.issues.push(...prefixIssues(key, result.issues)); } payload.value[outKey] = result.value; } } } let unrecognized; for (const key in input2) { if (!recordKeys.has(key)) { if (def.mode === "loose") { if (key === "__proto__") continue; payload.value[key] = input2[key]; } else { unrecognized = unrecognized ?? []; unrecognized.push(key); } } } if (unrecognized && unrecognized.length > 0) { payload.issues.push({ code: "unrecognized_keys", input: input2, inst, keys: unrecognized, continue: true }); } } else { payload.value = memo3 ? memo3.alloc(inst, payload, {}, ctx) : {}; let unrecognized; for (const key of Reflect.ownKeys(input2)) { if (key === "__proto__") continue; if (!Object.prototype.propertyIsEnumerable.call(input2, key)) continue; let keyResult = def.keyType._zod.run({ value: key, issues: [] }, ctx); if (keyResult instanceof Promise) { throw new Error("Async schemas not supported in object keys currently"); } const checkNumericKey = typeof key === "string" && number.test(key) && keyResult.issues.length; if (checkNumericKey) { const retryResult = def.keyType._zod.run({ value: Number(key), issues: [] }, ctx); if (retryResult instanceof Promise) { throw new Error("Async schemas not supported in object keys currently"); } if (retryResult.issues.length === 0) { keyResult = retryResult; } } if (keyResult.issues.length) { if (def.mode === "loose") { payload.value[key] = input2[key]; } else if (values) { unrecognized = unrecognized ?? []; unrecognized.push(key); } else { payload.issues.push({ code: "invalid_key", origin: "record", issues: keyResult.issues.map((iss) => finalizeIssue(iss, ctx, config())), input: key, path: [key], inst }); } continue; } const outKey = keyResult.value; if (outKey === "__proto__") continue; const result = def.valueType._zod.run({ value: input2[key], issues: [] }, ctx); if (result instanceof Promise) { proms.push(result.then((result2) => { if (result2.issues.length) { payload.issues.push(...prefixIssues(key, result2.issues)); } payload.value[outKey] = result2.value; })); } else { if (result.issues.length) { payload.issues.push(...prefixIssues(key, result.issues)); } payload.value[outKey] = result.value; } } if (unrecognized && unrecognized.length > 0) { payload.issues.push({ code: "unrecognized_keys", input: input2, inst, keys: unrecognized, continue: true }); } } if (proms.length) { return Promise.all(proms).then(() => payload); } return payload; }; }); var $ZodMap = /* @__PURE__ */ $constructor("$ZodMap", (inst, def) => { $ZodType.init(inst, def); const memo3 = globalConfig.memoizer; memo3?.attach(inst); inst._zod.parse = (payload, ctx) => { const input2 = payload.value; if (!(input2 instanceof Map)) { payload.issues.push({ expected: "map", code: "invalid_type", input: input2, inst }); return payload; } const proms = []; payload.value = memo3 ? memo3.alloc(inst, payload, /* @__PURE__ */ new Map(), ctx) : /* @__PURE__ */ new Map(); const abortEarly = ctx?.abortEarly; let seen = payload.issues.length; for (const [key, value] of input2) { if (abortEarly && payload.issues.length !== seen) { if (aborted(payload, seen)) break; seen = payload.issues.length; } const keyResult = def.keyType._zod.run({ value: key, issues: [] }, ctx); const valueResult = def.valueType._zod.run({ value, issues: [] }, ctx); if (keyResult instanceof Promise || valueResult instanceof Promise) { proms.push(Promise.all([keyResult, valueResult]).then(([keyResult2, valueResult2]) => { handleMapResult(keyResult2, valueResult2, payload, key, input2, inst, ctx); })); } else { handleMapResult(keyResult, valueResult, payload, key, input2, inst, ctx); } } if (proms.length) return Promise.all(proms).then(() => payload); return payload; }; }); function handleMapResult(keyResult, valueResult, final, key, input2, inst, ctx) { if (keyResult.issues.length) { if (propertyKeyTypes.has(typeof key)) { final.issues.push(...prefixIssues(key, keyResult.issues)); } else { final.issues.push({ code: "invalid_key", origin: "map", input: input2, inst, issues: keyResult.issues.map((iss) => finalizeIssue(iss, ctx, config())) }); } } if (valueResult.issues.length) { if (propertyKeyTypes.has(typeof key)) { final.issues.push(...prefixIssues(key, valueResult.issues)); } else { final.issues.push({ origin: "map", code: "invalid_element", input: input2, inst, key, issues: valueResult.issues.map((iss) => finalizeIssue(iss, ctx, config())) }); } } final.value.set(keyResult.value, valueResult.value); } var $ZodSet = /* @__PURE__ */ $constructor("$ZodSet", (inst, def) => { $ZodType.init(inst, def); const memo3 = globalConfig.memoizer; memo3?.attach(inst); inst._zod.parse = (payload, ctx) => { const input2 = payload.value; if (!(input2 instanceof Set)) { payload.issues.push({ input: input2, inst, expected: "set", code: "invalid_type" }); return payload; } const proms = []; payload.value = memo3 ? memo3.alloc(inst, payload, /* @__PURE__ */ new Set(), ctx) : /* @__PURE__ */ new Set(); const abortEarly = ctx?.abortEarly; let seen = payload.issues.length; for (const item of input2) { if (abortEarly && payload.issues.length !== seen) { if (aborted(payload, seen)) break; seen = payload.issues.length; } const result = def.valueType._zod.run({ value: item, issues: [] }, ctx); if (result instanceof Promise) { proms.push(result.then((result2) => handleSetResult(result2, payload))); } else handleSetResult(result, payload); } if (proms.length) return Promise.all(proms).then(() => payload); return payload; }; }); function handleSetResult(result, final) { if (result.issues.length) { final.issues.push(...result.issues); } final.value.add(result.value); } var $ZodEnum = /* @__PURE__ */ $constructor("$ZodEnum", (inst, def) => { $ZodType.init(inst, def); const values = getEnumValues(def.entries); const valuesSet = new Set(values); inst._zod.values = valuesSet; defineLazyInternal(inst, "pattern", (zod) => { const patternValues = getEnumValues(zod.def.entries).filter((k) => propertyKeyTypes.has(typeof k)); return new RegExp(patternValues.length ? `^(${patternValues.map((o) => escapeRegex(o.toString())).join("|")})$` : "^[^\\s\\S]$"); }); inst._zod.parse = (payload, _ctx) => { const input2 = payload.value; if (valuesSet.has(input2)) { return payload; } payload.issues.push({ code: "invalid_value", values, input: input2, inst }); return payload; }; }); var $ZodLiteral = /* @__PURE__ */ $constructor("$ZodLiteral", (inst, def) => { $ZodType.init(inst, def); const values = new Set(def.values); inst._zod.values = values; defineLazyInternal(inst, "pattern", (zod) => { const vals = zod.def.values; return new RegExp(vals.length ? `^(${vals.map((o) => typeof o === "string" ? escapeRegex(o) : o ? escapeRegex(o.toString()) : String(o)).join("|")})$` : "^[^\\s\\S]$"); }); inst._zod.parse = (payload, _ctx) => { const input2 = payload.value; if (values.has(input2)) { return payload; } payload.issues.push({ code: "invalid_value", values: def.values, input: input2, inst }); return payload; }; }); var $ZodFile = /* @__PURE__ */ $constructor("$ZodFile", (inst, def) => { $ZodType.init(inst, def); inst._zod.parse = (payload, _ctx) => { const input2 = payload.value; if (input2 instanceof File) return payload; payload.issues.push({ expected: "file", code: "invalid_type", input: input2, inst }); return payload; }; }); var $ZodTransform = /* @__PURE__ */ $constructor("$ZodTransform", (inst, def) => { $ZodType.init(inst, def); inst._zod.optin = "optional"; globalConfig.memoizer?.guard(inst); inst._zod.parse = (payload, ctx) => { if (ctx.direction === "backward") { throw new $ZodEncodeError(inst.constructor.name); } const _out = def.transform(payload.value, payload); if (ctx.async) { const output2 = _out instanceof Promise ? _out : Promise.resolve(_out); return output2.then((output3) => { payload.value = output3; return payload; }); } if (_out instanceof Promise) { throw new $ZodAsyncError(); } payload.value = _out; return payload; }; }); function handleOptionalResult(payload, result) { payload.value = result.issues.length ? void 0 : result.value; return payload; } var $ZodOptional = /* @__PURE__ */ $constructor("$ZodOptional", (inst, def) => { $ZodType.init(inst, def); defineLazyInternal(inst, "optin", (zod) => zod.def.innerType._zod.optin === "defaulted" ? "defaulted" : "optional"); inst._zod.optout = "optional"; defineLazyInternal(inst, "values", (zod) => { const values = zod.def.innerType._zod.values; return values ? /* @__PURE__ */ new Set([...values, void 0]) : void 0; }); defineLazyInternal(inst, "pattern", (zod) => { const pattern = zod.def.innerType._zod.pattern; return pattern ? new RegExp(`^(${cleanRegex(pattern.source)})?$`) : void 0; }); inst._zod.parse = (payload, ctx) => { if (payload.value === void 0) { if (def.innerType._zod.optin !== "defaulted") return payload; const result = def.innerType._zod.run({ value: payload.value, issues: [] }, ctx); if (result instanceof Promise) return result.then((result2) => handleOptionalResult(payload, result2)); return handleOptionalResult(payload, result); } return def.innerType._zod.run(payload, ctx); }; }); var $ZodExactOptional = /* @__PURE__ */ $constructor("$ZodExactOptional", (inst, def) => { $ZodOptional.init(inst, def); defineLazyInternal(inst, "values", (zod) => zod.def.innerType._zod.values); defineLazyInternal(inst, "pattern", (zod) => zod.def.innerType._zod.pattern); inst._zod.parse = (payload, ctx) => { return def.innerType._zod.run(payload, ctx); }; }); var $ZodNullable = /* @__PURE__ */ $constructor("$ZodNullable", (inst, def) => { $ZodType.init(inst, def); defineLazyInternal(inst, "optin", (zod) => zod.def.innerType._zod.optin); defineLazyInternal(inst, "optout", (zod) => zod.def.innerType._zod.optout); defineLazyInternal(inst, "pattern", (zod) => { const pattern = zod.def.innerType._zod.pattern; return pattern ? new RegExp(`^(${cleanRegex(pattern.source)}|null)$`) : void 0; }); defineLazyInternal(inst, "values", (zod) => { return zod.def.innerType._zod.values ? /* @__PURE__ */ new Set([...zod.def.innerType._zod.values, null]) : void 0; }); inst._zod.parse = (payload, ctx) => { if (payload.value === null) return payload; return def.innerType._zod.run(payload, ctx); }; }); var $ZodDefault = /* @__PURE__ */ $constructor("$ZodDefault", (inst, def) => { $ZodType.init(inst, def); inst._zod.optin = "defaulted"; defineLazyInternal(inst, "values", (zod) => zod.def.innerType._zod.values); inst._zod.parse = (payload, ctx) => { if (ctx.direction === "backward") { return def.innerType._zod.run(payload, ctx); } if (payload.value === void 0) { payload.value = def.defaultValue; return payload; } const result = def.innerType._zod.run(payload, ctx); if (result instanceof Promise) { return result.then((result2) => handleDefaultResult(result2, def)); } return handleDefaultResult(result, def); }; }); function handleDefaultResult(payload, def) { if (payload.value === void 0) { payload.value = def.defaultValue; } return payload; } var $ZodPrefault = /* @__PURE__ */ $constructor("$ZodPrefault", (inst, def) => { $ZodType.init(inst, def); inst._zod.optin = "defaulted"; defineLazyInternal(inst, "values", (zod) => zod.def.innerType._zod.values); inst._zod.parse = (payload, ctx) => { if (ctx.direction === "backward") { return def.innerType._zod.run(payload, ctx); } if (payload.value === void 0) { payload.value = def.defaultValue; } return def.innerType._zod.run(payload, ctx); }; }); var $ZodNonOptional = /* @__PURE__ */ $constructor("$ZodNonOptional", (inst, def) => { $ZodType.init(inst, def); defineLazyInternal(inst, "values", (zod) => { const v = zod.def.innerType._zod.values; return v ? new Set([...v].filter((x) => x !== void 0)) : void 0; }); inst._zod.parse = (payload, ctx) => { const result = def.innerType._zod.run(payload, ctx); if (result instanceof Promise) { return result.then((result2) => handleNonOptionalResult(result2, inst)); } return handleNonOptionalResult(result, inst); }; }); function handleNonOptionalResult(payload, inst) { if (!payload.issues.length && payload.value === void 0) { payload.issues.push({ code: "invalid_type", expected: "nonoptional", input: payload.value, inst }); } return payload; } var $ZodSuccess = /* @__PURE__ */ $constructor("$ZodSuccess", (inst, def) => { $ZodType.init(inst, def); inst._zod.parse = (payload, ctx) => { if (ctx.direction === "backward") { throw new $ZodEncodeError("ZodSuccess"); } const result = def.innerType._zod.run(payload, ctx); if (result instanceof Promise) { return result.then((result2) => { payload.value = result2.issues.length === 0; return payload; }); } payload.value = result.issues.length === 0; return payload; }; }); function handleCatchResult(payload, result, def, ctx) { if (!result.issues.length) { payload.value = result.value; if (result.memo) payload.memo = true; return payload; } payload.value = def.catchValue({ ...result, value: payload.value, error: { issues: result.issues.map((iss) => finalizeIssue(iss, ctx, config())) }, input: payload.value }); return payload; } var $ZodCatch = /* @__PURE__ */ $constructor("$ZodCatch", (inst, def) => { $ZodType.init(inst, def); defineLazyInternal(inst, "optin", (zod) => zod.def.innerType._zod.optin === "defaulted" ? "defaulted" : "optional"); defineLazyInternal(inst, "optout", (zod) => zod.def.innerType._zod.optout); defineLazyInternal(inst, "values", (zod) => zod.def.innerType._zod.values); inst._zod.parse = (payload, ctx) => { if (ctx.direction === "backward") { return def.innerType._zod.run(payload, ctx); } const result = def.innerType._zod.run({ value: payload.value, issues: [] }, ctx); if (result instanceof Promise) { return result.then((result2) => handleCatchResult(payload, result2, def, ctx)); } return handleCatchResult(payload, result, def, ctx); }; }); var $ZodNaN = /* @__PURE__ */ $constructor("$ZodNaN", (inst, def) => { $ZodType.init(inst, def); inst._zod.parse = (payload, _ctx) => { if (typeof payload.value !== "number" || !Number.isNaN(payload.value)) { payload.issues.push({ input: payload.value, inst, expected: "nan", code: "invalid_type" }); return payload; } return payload; }; }); var $ZodPipe = /* @__PURE__ */ $constructor("$ZodPipe", (inst, def) => { $ZodType.init(inst, def); defineLazyInternal(inst, "values", (zod) => zod.def.in._zod.values); defineLazyInternal(inst, "optin", (zod) => zod.def.in._zod.optin); defineLazyInternal(inst, "optout", (zod) => zod.def.out._zod.optout); defineLazyInternal(inst, "propValues", (zod) => zod.def.in._zod.propValues); inst._zod.parse = (payload, ctx) => { if (ctx.direction === "backward") { const right = def.out._zod.run(payload, ctx); if (right instanceof Promise) { return right.then((right2) => handlePipeResult(right2, def.in, ctx)); } return handlePipeResult(right, def.in, ctx); } const left = def.in._zod.run(payload, ctx); if (left instanceof Promise) { return left.then((left2) => handlePipeResult(left2, def.out, ctx)); } return handlePipeResult(left, def.out, ctx); }; }); function handlePipeResult(left, next, ctx) { if (left.issues.some((iss) => iss.code !== "unrecognized_keys")) { left.aborted = true; return left; } return next._zod.run({ value: left.value, issues: left.issues }, ctx); } var $ZodCodec = /* @__PURE__ */ $constructor("$ZodCodec", (inst, def) => { $ZodType.init(inst, def); defineLazyInternal(inst, "values", (zod) => zod.def.in._zod.values); defineLazyInternal(inst, "optin", (zod) => zod.def.in._zod.optin); defineLazyInternal(inst, "optout", (zod) => zod.def.out._zod.optout); defineLazyInternal(inst, "propValues", (zod) => zod.def.in._zod.propValues); inst._zod.parse = (payload, ctx) => { const direction = ctx.direction || "forward"; if (direction === "forward") { const left = def.in._zod.run(payload, ctx); if (left instanceof Promise) { return left.then((left2) => handleCodecAResult(left2, def, ctx)); } return handleCodecAResult(left, def, ctx); } else { const right = def.out._zod.run(payload, ctx); if (right instanceof Promise) { return right.then((right2) => handleCodecAResult(right2, def, ctx)); } return handleCodecAResult(right, def, ctx); } }; }); function handleCodecAResult(result, def, ctx) { if (result.issues.length) { result.aborted = true; return result; } const direction = ctx.direction || "forward"; if (direction === "forward") { const transformed = def.transform(result.value, result); if (transformed instanceof Promise) { return transformed.then((value) => handleCodecTxResult(result, value, def.out, ctx)); } return handleCodecTxResult(result, transformed, def.out, ctx); } else { const transformed = def.reverseTransform(result.value, result); if (transformed instanceof Promise) { return transformed.then((value) => handleCodecTxResult(result, value, def.in, ctx)); } return handleCodecTxResult(result, transformed, def.in, ctx); } } function handleCodecTxResult(left, value, nextSchema, ctx) { if (left.issues.length) { left.aborted = true; return left; } return nextSchema._zod.run({ value, issues: left.issues }, ctx); } var $ZodPreprocess = /* @__PURE__ */ $constructor("$ZodPreprocess", (inst, def) => { $ZodPipe.init(inst, def); }); var $ZodReadonly = /* @__PURE__ */ $constructor("$ZodReadonly", (inst, def) => { $ZodType.init(inst, def); defineLazyInternal(inst, "propValues", (zod) => zod.def.innerType._zod.propValues); defineLazyInternal(inst, "values", (zod) => zod.def.innerType._zod.values); defineLazyInternal(inst, "optin", (zod) => zod.def.innerType?._zod?.optin); defineLazyInternal(inst, "optout", (zod) => zod.def.innerType?._zod?.optout); inst._zod.parse = (payload, ctx) => { if (ctx.direction === "backward") { return def.innerType._zod.run(payload, ctx); } const result = def.innerType._zod.run(payload, ctx); if (result instanceof Promise) { return result.then(handleReadonlyResult); } return handleReadonlyResult(result); }; }); function handleReadonlyResult(payload) { if (!payload.memo) payload.value = Object.freeze(payload.value); return payload; } function leafPattern(schema) { const def = schema._zod.def; let pattern = def.pattern; let isInt = !!def.format?.includes("int"); let minimum; let maximum; for (const ch of def.checks ?? []) { const d = ch._zod.def; if (d.pattern) pattern = d.pattern; isInt || (isInt = !!d.format?.includes("int")); const lo = d.minimum ?? d.length; const hi = d.maximum ?? d.length; if (lo !== void 0 && (minimum === void 0 || lo > minimum)) minimum = lo; if (hi !== void 0 && (maximum === void 0 || hi < maximum)) maximum = hi; } if (pattern) return pattern.source; if (minimum !== void 0 && maximum !== void 0 && minimum > maximum) return "(?!)"; if (minimum !== void 0 || maximum !== void 0) return string({ minimum, maximum }).source; const own2 = schema._zod.pattern; return (isInt && own2 === number ? integer : own2)?.source; } function partPattern(schema) { const def = schema._zod.def; const own2 = schema._zod.pattern?.source; const inner = def.innerType ?? schema._zod.innerType; if (inner) { const before = inner._zod.pattern?.source; const after = partPattern(inner); if (own2 && before && after && after !== before) { return own2.replace(cleanRegex(before), () => cleanRegex(after)); } return own2; } if (def.options) { const sources = def.options.map(partPattern); if (sources.every(Boolean)) return `^(${sources.map((s) => cleanRegex(s)).join("|")})$`; } return leafPattern(schema); } var $ZodTemplateLiteral = /* @__PURE__ */ $constructor("$ZodTemplateLiteral", (inst, def) => { $ZodType.init(inst, def); const regexParts = []; for (const part of def.parts) { if (typeof part === "object" && part !== null) { const source = partPattern(part); if (!source) { throw new Error(`Invalid template literal part, no pattern found: ${[...part._zod.traits].shift()}`); } regexParts.push(cleanRegex(source)); } else if (part === null || primitiveTypes.has(typeof part)) { regexParts.push(escapeRegex(`${part}`)); } else { throw new Error(`Invalid template literal part: ${part}`); } } inst._zod.pattern = new RegExp(`^${regexParts.join("")}$`); inst._zod.parse = (payload, _ctx) => { if (typeof payload.value !== "string") { payload.issues.push({ input: payload.value, inst, expected: "string", code: "invalid_type" }); return payload; } inst._zod.pattern.lastIndex = 0; if (!inst._zod.pattern.test(payload.value)) { payload.issues.push({ input: payload.value, inst, code: "invalid_format", format: def.format ?? "template_literal", pattern: inst._zod.pattern.source }); return payload; } return payload; }; }); var $ZodFunction = /* @__PURE__ */ $constructor("$ZodFunction", (inst, def) => { $ZodType.init(inst, def); Object.defineProperty(inst, "_def", { value: def }); inst._zod.def = def; inst.implement = (func) => { if (typeof func !== "function") { throw new Error("implement() must be called with a function"); } return Object.defineProperty(function(...args) { const parsedArgs = inst._def.input ? parse(inst._def.input, args) : args; const result = Reflect.apply(func, this, parsedArgs); if (inst._def.output) { return parse(inst._def.output, result); } return result; }, "_zod", { value: inst._zod, enumerable: false }); }; inst.implementAsync = (func) => { if (typeof func !== "function") { throw new Error("implementAsync() must be called with a function"); } return Object.defineProperty(async function(...args) { const parsedArgs = inst._def.input ? await parseAsync(inst._def.input, args) : args; const result = await Reflect.apply(func, this, parsedArgs); if (inst._def.output) { return await parseAsync(inst._def.output, result); } return result; }, "_zod", { value: inst._zod, enumerable: false }); }; inst._zod.parse = (payload, _ctx) => { if (typeof payload.value !== "function") { payload.issues.push({ code: "invalid_type", expected: "function", input: payload.value, inst }); return payload; } const hasPromiseOutput = inst._def.output && inst._def.output._zod.def.type === "promise"; if (hasPromiseOutput) { payload.value = inst.implementAsync(payload.value); } else { payload.value = inst.implement(payload.value); } return payload; }; inst.input = (...args) => { const F = inst.constructor; if (Array.isArray(args[0])) { return new F({ type: "function", input: new $ZodTuple({ type: "tuple", items: args[0], rest: args[1] }), output: inst._def.output }); } return new F({ type: "function", input: args[0], output: inst._def.output }); }; inst.output = (output2) => { const F = inst.constructor; return new F({ type: "function", input: inst._def.input, output: output2 }); }; return inst; }); var $ZodPromise = /* @__PURE__ */ $constructor("$ZodPromise", (inst, def) => { $ZodType.init(inst, def); inst._zod.parse = (payload, ctx) => { return Promise.resolve(payload.value).then((inner) => def.innerType._zod.run({ value: inner, issues: [] }, ctx)); }; }); var $ZodLazy = /* @__PURE__ */ $constructor("$ZodLazy", (inst, def) => { $ZodType.init(inst, def); defineLazy(inst._zod, "innerType", () => { const d = def; if (!d._cachedInner) d._cachedInner = def.getter(); return d._cachedInner; }); defineLazyInternal(inst, "pattern", (zod) => zod.innerType?._zod?.pattern); defineLazyInternal(inst, "propValues", (zod) => zod.innerType?._zod?.propValues); defineLazyInternal(inst, "optin", (zod) => zod.innerType?._zod?.optin ?? void 0); defineLazyInternal(inst, "optout", (zod) => zod.innerType?._zod?.optout ?? void 0); inst._zod.parse = (payload, ctx) => { const inner = inst._zod.innerType; return inner._zod.run(payload, ctx); }; }); var $ZodCustom = /* @__PURE__ */ $constructor("$ZodCustom", (inst, def) => { $ZodCheck.init(inst, def); $ZodType.init(inst, def); inst._zod.parse = (payload, _) => { return payload; }; inst._zod.check = (payload) => { const input2 = payload.value; const r = def.fn(input2); if (r instanceof Promise) { return r.then((r2) => handleRefineResult(r2, payload, input2, inst)); } handleRefineResult(r, payload, input2, inst); return; }; }); function handleRefineResult(result, payload, input2, inst) { if (!result) { const _iss = { code: "custom", input: input2, inst, // incorporates params.error into issue reporting path: [...inst._zod.def.path ?? []], // incorporates params.error into issue reporting continue: !inst._zod.def.abort // params: inst._zod.def.params, }; if (inst._zod.def.params) _iss.params = inst._zod.def.params; payload.issues.push(issue(_iss)); } } // ../../../../node_modules/zod/v4/core/memoizer.js var $ZodCyclicError = class extends Error { constructor() { super(`Cannot parse a reference cycle that closes through a transform`); this.name = "ZodCyclicError"; } }; var STATE = "~memo"; var NO_ISSUES = []; function isRef(value) { return value !== null && typeof value === "object"; } function cloneIssues(issues) { return issues.map((iss) => iss.path ? { ...iss, path: iss.path.slice() } : { ...iss }); } var recursive = /* @__PURE__ */ new WeakMap(); var NONE = 0; var ASSUMED = 1; var PROVEN = 2; function isRecursive(inst, stack, resolve2) { const cached2 = recursive.get(inst); if (cached2 !== void 0) return cached2 ? PROVEN : NONE; if (stack.has(inst)) return PROVEN; stack.add(inst); let result = NONE; const check2 = (child) => { if (result !== PROVEN && child?._zod) { const answer = isRecursive(child, stack, resolve2); if (answer > result) result = answer; } }; const shape = (sh, spread) => { let answer = NONE; for (const key of Reflect.ownKeys(sh)) { const desc = Object.getOwnPropertyDescriptor(sh, key); if (spread && !desc.enumerable) continue; const child = desc.get ? ASSUMED : desc.value?._zod ? isRecursive(desc.value, stack, resolve2) : NONE; if (child > answer) answer = child; } return answer; }; const merge2 = (answer) => { if (answer > result) result = answer; }; const def = inst._zod.def; const kind = def.type; switch (kind) { case "object": { const raw = rawShape(def); merge2(raw ? shape(raw, true) : ASSUMED); check2(def.catchall); break; } case "array": check2(def.element); break; case "tuple": for (const el of def.items) check2(el); check2(def.rest); break; case "record": case "map": check2(def.keyType); check2(def.valueType); break; case "set": check2(def.valueType); break; case "union": for (const el of def.options) check2(el); break; case "intersection": check2(def.left); check2(def.right); break; case "optional": case "nullable": case "default": case "prefault": case "catch": case "readonly": case "nonoptional": case "promise": case "success": check2(def.innerType); break; case "pipe": check2(def.in); check2(def.out); break; case "function": check2(def.input); check2(def.output); break; // `$ZodLazy` caches its inner on the def, so a resolved edge is followed exactly case "lazy": { const inner = def._cachedInner ?? (resolve2 ? inst._zod.innerType : void 0); merge2(inner ? isRecursive(inner, stack, false) : ASSUMED); break; } // a leaf by choice: `parts` are regex fragments, not data positions case "template_literal": // leaves case "string": case "number": case "int": case "boolean": case "bigint": case "symbol": case "undefined": case "null": case "void": case "never": case "any": case "unknown": case "date": case "nan": case "enum": case "literal": case "file": case "transform": case "custom": break; default: { kind; for (const key in def) { const desc = Object.getOwnPropertyDescriptor(def, key); if (!desc || desc.get) continue; const value = desc.value; if (!value || typeof value !== "object") continue; if (value._zod) check2(value); else if (Array.isArray(value)) for (const el of value) check2(el); } } } stack.delete(inst); return settle(inst, result); } function settle(inst, answer) { if (answer !== ASSUMED) recursive.set(inst, answer === PROVEN); return answer; } function isRecursiveSchema(inst) { return isRecursive(inst, /* @__PURE__ */ new Set(), true) !== NONE; } function bucketFor(state, inst) { let bucket = state.buckets.get(inst); if (!bucket) { bucket = /* @__PURE__ */ new WeakMap(); state.buckets.set(inst, bucket); } return bucket; } var handoff; var open = []; var memo = { alloc(_inst, payload, empty) { const bucket = handoff; if (!bucket) return empty; handoff = void 0; const entry = { value: empty, issues: null }; bucket.set(payload.value, entry); open.push(entry); return empty; }, guard(inst) { var _a3; (_a3 = inst._zod).deferred ?? (_a3.deferred = []); inst._zod.deferred.push(() => { const base = inst._zod.parse; const wrapped = (payload, ctx) => { if (ctx.direction !== "backward" && isBackEdge(ctx, payload.value)) throw new $ZodCyclicError(); return base(payload, ctx); }; inst._zod.parse = wrapped; if (inst._zod.run === base) inst._zod.run = wrapped; }); }, attach(inst) { var _a3; let isRecursiveInst; let rechecked = false; let lastCtx; let lastBucket; (_a3 = inst._zod).deferred ?? (_a3.deferred = []); inst._zod.deferred.push(() => { const base = inst._zod.parse; const wrapped = (payload, ctx) => { if (isRecursiveInst === void 0) { const walked = isRecursive(inst, /* @__PURE__ */ new Set(), false); if (walked === NONE) { inst._zod.parse = base; if (inst._zod.run === wrapped) inst._zod.run = base; return base(payload, ctx); } if (walked === PROVEN || rechecked) isRecursiveInst = true; else rechecked = true; } const input2 = payload.value; if (!isRef(input2)) return base(payload, ctx); let state = ctx[STATE]; if (!state) { state = { buckets: /* @__PURE__ */ new WeakMap(), backEdges: void 0 }; ctx[STATE] = state; } let bucket; if (lastCtx === ctx) { bucket = lastBucket; } else { bucket = bucketFor(state, inst); lastCtx = ctx; lastBucket = bucket; } const hit = bucket.get(input2); if (hit) { payload.value = hit.value; if (hit.issues) { if (hit.issues.length) payload.issues.push(...cloneIssues(hit.issues)); } else { payload.memo = true; state.backEdges ?? (state.backEdges = /* @__PURE__ */ new WeakSet()); state.backEdges.add(hit.value); } return payload; } handoff = bucket; const depth = open.length; const result = base(payload, ctx); handoff = void 0; const entry = open.length > depth ? open.pop() : void 0; if (result instanceof Promise) { return result.then((r) => { if (entry) entry.issues = r.issues.length ? cloneIssues(r.issues) : NO_ISSUES; return r; }); } if (entry) entry.issues = result.issues.length ? cloneIssues(result.issues) : NO_ISSUES; return result; }; inst._zod.parse = wrapped; if (inst._zod.run === base) inst._zod.run = wrapped; }); } }; function memoizer() { return memo; } function isBackEdge(ctx, value) { const backEdges = ctx[STATE]?.backEdges; return backEdges !== void 0 && isRef(value) && backEdges.has(value); } // ../../../../node_modules/zod/v4/locales/index.js var locales_exports = {}; __export(locales_exports, { ar: () => ar_default, az: () => az_default, be: () => be_default, bg: () => bg_default, bn: () => bn_default, ca: () => ca_default, ckb: () => ckb_default, cs: () => cs_default, da: () => da_default, de: () => de_default, el: () => el_default, en: () => en_default, eo: () => eo_default, es: () => es_default, fa: () => fa_default, fi: () => fi_default, fr: () => fr_default, frCA: () => fr_CA_default, gu: () => gu_default, he: () => he_default, hi: () => hi_default, hr: () => hr_default, hu: () => hu_default, hy: () => hy_default, id: () => id_default, is: () => is_default, it: () => it_default, ja: () => ja_default, ka: () => ka_default, kh: () => kh_default, km: () => km_default, kn: () => kn_default, ko: () => ko_default, lt: () => lt_default, mk: () => mk_default, ms: () => ms_default, ne: () => ne_default, nl: () => nl_default, nn: () => nn_default, no: () => no_default, ota: () => ota_default, pl: () => pl_default, ps: () => ps_default, pt: () => pt_default, ptBR: () => pt_BR_default, ro: () => ro_default, ru: () => ru_default, sk: () => sk_default, sl: () => sl_default, sv: () => sv_default, ta: () => ta_default, tg: () => tg_default, th: () => th_default, tk: () => tk_default, tr: () => tr_default, ua: () => ua_default, uk: () => uk_default, ur: () => ur_default, uz: () => uz_default, vi: () => vi_default, yo: () => yo_default, zhCN: () => zh_CN_default, zhTW: () => zh_TW_default }); // ../../../../node_modules/zod/v4/locales/ar.js var error = () => { const Sizable = { string: { unit: "\u062D\u0631\u0641", verb: "\u0623\u0646 \u064A\u062D\u0648\u064A" }, file: { unit: "\u0628\u0627\u064A\u062A", verb: "\u0623\u0646 \u064A\u062D\u0648\u064A" }, array: { unit: "\u0639\u0646\u0635\u0631", verb: "\u0623\u0646 \u064A\u062D\u0648\u064A" }, set: { unit: "\u0639\u0646\u0635\u0631", verb: "\u0623\u0646 \u064A\u062D\u0648\u064A" }, map: { unit: "\u0639\u0646\u0635\u0631", verb: "\u0623\u0646 \u064A\u062D\u0648\u064A" } }; function getSizing(origin) { return Sizable[origin] ?? null; } const FormatDictionary = { regex: "\u0645\u062F\u062E\u0644", email: "\u0628\u0631\u064A\u062F \u0625\u0644\u0643\u062A\u0631\u0648\u0646\u064A", url: "\u0631\u0627\u0628\u0637", emoji: "\u0625\u064A\u0645\u0648\u062C\u064A", uuid: "UUID", uuidv4: "UUIDv4", uuidv6: "UUIDv6", nanoid: "nanoid", guid: "GUID", cuid: "cuid", cuid2: "cuid2", ulid: "ULID", xid: "XID", ksuid: "KSUID", datetime: "\u062A\u0627\u0631\u064A\u062E \u0648\u0648\u0642\u062A \u0628\u0645\u0639\u064A\u0627\u0631 ISO", date: "\u062A\u0627\u0631\u064A\u062E \u0628\u0645\u0639\u064A\u0627\u0631 ISO", time: "\u0648\u0642\u062A \u0628\u0645\u0639\u064A\u0627\u0631 ISO", duration: "\u0645\u062F\u0629 \u0628\u0645\u0639\u064A\u0627\u0631 ISO", ipv4: "\u0639\u0646\u0648\u0627\u0646 IPv4", ipv6: "\u0639\u0646\u0648\u0627\u0646 IPv6", mac: "\u0639\u0646\u0648\u0627\u0646 MAC", cidrv4: "\u0645\u062F\u0649 \u0639\u0646\u0627\u0648\u064A\u0646 \u0628\u0635\u064A\u063A\u0629 IPv4", cidrv6: "\u0645\u062F\u0649 \u0639\u0646\u0627\u0648\u064A\u0646 \u0628\u0635\u064A\u063A\u0629 IPv6", base64: "\u0646\u064E\u0635 \u0628\u062A\u0631\u0645\u064A\u0632 base64-encoded", base64url: "\u0646\u064E\u0635 \u0628\u062A\u0631\u0645\u064A\u0632 base64url-encoded", json_string: "\u0646\u064E\u0635 \u0639\u0644\u0649 \u0647\u064A\u0626\u0629 JSON", e164: "\u0631\u0642\u0645 \u0647\u0627\u062A\u0641 \u0628\u0645\u0639\u064A\u0627\u0631 E.164", credit_card: "\u0631\u0642\u0645 \u0628\u0637\u0627\u0642\u0629 \u0627\u0644\u0627\u0626\u062A\u0645\u0627\u0646", currency_code: "\u0631\u0645\u0632 \u0627\u0644\u0639\u0645\u0644\u0629", iban: "IBAN", jwt: "JWT", template_literal: "\u0645\u062F\u062E\u0644" }; const TypeDictionary = { nan: "NaN" }; return (issue2) => { switch (issue2.code) { case "invalid_type": { const expected = TypeDictionary[issue2.expected] ?? issue2.expected; const receivedType = parsedType(issue2.input); const received = TypeDictionary[receivedType] ?? receivedType; if (/^[A-Z]/.test(issue2.expected)) { return `\u0645\u062F\u062E\u0644\u0627\u062A \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644\u0629: \u064A\u0641\u062A\u0631\u0636 \u0625\u062F\u062E\u0627\u0644 instanceof ${issue2.expected}\u060C \u0648\u0644\u0643\u0646 \u062A\u0645 \u0625\u062F\u062E\u0627\u0644 ${received}`; } return `\u0645\u062F\u062E\u0644\u0627\u062A \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644\u0629: \u064A\u0641\u062A\u0631\u0636 \u0625\u062F\u062E\u0627\u0644 ${expected}\u060C \u0648\u0644\u0643\u0646 \u062A\u0645 \u0625\u062F\u062E\u0627\u0644 ${received}`; } case "invalid_value": if (issue2.values.length === 1) return `\u0645\u062F\u062E\u0644\u0627\u062A \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644\u0629: \u064A\u0641\u062A\u0631\u0636 \u0625\u062F\u062E\u0627\u0644 ${stringifyPrimitive(issue2.values[0])}`; return `\u0627\u062E\u062A\u064A\u0627\u0631 \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644: \u064A\u062A\u0648\u0642\u0639 \u0627\u0646\u062A\u0642\u0627\u0621 \u0623\u062D\u062F \u0647\u0630\u0647 \u0627\u0644\u062E\u064A\u0627\u0631\u0627\u062A: ${joinValues(issue2.values, "|")}`; case "too_big": { const adj = issue2.inclusive ? "<=" : "<"; const sizing = getSizing(issue2.origin); if (sizing) return ` \u0623\u0643\u0628\u0631 \u0645\u0646 \u0627\u0644\u0644\u0627\u0632\u0645: \u064A\u0641\u062A\u0631\u0636 \u0623\u0646 \u062A\u0643\u0648\u0646 ${issue2.origin ?? "\u0627\u0644\u0642\u064A\u0645\u0629"} ${adj} ${issue2.maximum.toString()} ${sizing.unit ?? "\u0639\u0646\u0635\u0631"}`; return `\u0623\u0643\u0628\u0631 \u0645\u0646 \u0627\u0644\u0644\u0627\u0632\u0645: \u064A\u0641\u062A\u0631\u0636 \u0623\u0646 \u062A\u0643\u0648\u0646 ${issue2.origin ?? "\u0627\u0644\u0642\u064A\u0645\u0629"} ${adj} ${issue2.maximum.toString()}`; } case "too_small": { const adj = issue2.inclusive ? ">=" : ">"; const sizing = getSizing(issue2.origin); if (sizing) { return `\u0623\u0635\u063A\u0631 \u0645\u0646 \u0627\u0644\u0644\u0627\u0632\u0645: \u064A\u0641\u062A\u0631\u0636 \u0644\u0640 ${issue2.origin} \u0623\u0646 \u064A\u0643\u0648\u0646 ${adj} ${issue2.minimum.toString()} ${sizing.unit}`; } return `\u0623\u0635\u063A\u0631 \u0645\u0646 \u0627\u0644\u0644\u0627\u0632\u0645: \u064A\u0641\u062A\u0631\u0636 \u0644\u0640 ${issue2.origin} \u0623\u0646 \u064A\u0643\u0648\u0646 ${adj} ${issue2.minimum.toString()}`; } case "invalid_format": { const _issue = issue2; if (_issue.format === "starts_with") return `\u0646\u064E\u0635 \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644: \u064A\u062C\u0628 \u0623\u0646 \u064A\u0628\u062F\u0623 \u0628\u0640 "${issue2.prefix}"`; if (_issue.format === "ends_with") return `\u0646\u064E\u0635 \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644: \u064A\u062C\u0628 \u0623\u0646 \u064A\u0646\u062A\u0647\u064A \u0628\u0640 "${_issue.suffix}"`; if (_issue.format === "includes") return `\u0646\u064E\u0635 \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644: \u064A\u062C\u0628 \u0623\u0646 \u064A\u062A\u0636\u0645\u0651\u064E\u0646 "${_issue.includes}"`; if (_issue.format === "regex") return `\u0646\u064E\u0635 \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644: \u064A\u062C\u0628 \u0623\u0646 \u064A\u0637\u0627\u0628\u0642 \u0627\u0644\u0646\u0645\u0637 ${_issue.pattern}`; return `${FormatDictionary[_issue.format] ?? issue2.format} \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644`; } case "not_multiple_of": return `\u0631\u0642\u0645 \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644: \u064A\u062C\u0628 \u0623\u0646 \u064A\u0643\u0648\u0646 \u0645\u0646 \u0645\u0636\u0627\u0639\u0641\u0627\u062A ${issue2.divisor}`; case "unrecognized_keys": return `\u0645\u0639\u0631\u0641${issue2.keys.length > 1 ? "\u0627\u062A" : ""} \u063A\u0631\u064A\u0628${issue2.keys.length > 1 ? "\u0629" : ""}: ${joinValues(issue2.keys, "\u060C ")}`; case "invalid_key": return `\u0645\u0639\u0631\u0641 \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644 \u0641\u064A ${issue2.origin}`; case "invalid_union": return "\u0645\u062F\u062E\u0644 \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644"; case "invalid_element": return `\u0645\u062F\u062E\u0644 \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644 \u0641\u064A ${issue2.origin}`; default: return "\u0645\u062F\u062E\u0644 \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644"; } }; }; function ar_default() { return { localeError: error() }; } // ../../../../node_modules/zod/v4/locales/az.js var error2 = () => { const Sizable = { string: { unit: "simvol", verb: "olmal\u0131d\u0131r" }, file: { unit: "bayt", verb: "olmal\u0131d\u0131r" }, array: { unit: "element", verb: "olmal\u0131d\u0131r" }, set: { unit: "element", verb: "olmal\u0131d\u0131r" }, map: { unit: "element", verb: "olmal\u0131d\u0131r" } }; function getSizing(origin) { return Sizable[origin] ?? null; } const FormatDictionary = { regex: "input", email: "email address", url: "URL", emoji: "emoji", uuid: "UUID", uuidv4: "UUIDv4", uuidv6: "UUIDv6", nanoid: "nanoid", guid: "GUID", cuid: "cuid", cuid2: "cuid2", ulid: "ULID", xid: "XID", ksuid: "KSUID", datetime: "ISO datetime", date: "ISO date", time: "ISO time", duration: "ISO duration", ipv4: "IPv4 address", ipv6: "IPv6 address", mac: "MAC address", cidrv4: "IPv4 range", cidrv6: "IPv6 range", base64: "base64-encoded string", base64url: "base64url-encoded string", json_string: "JSON string", e164: "E.164 number", credit_card: "kredit kart\u0131 n\xF6mr\u0259si", currency_code: "valyuta kodu", iban: "IBAN", jwt: "JWT", template_literal: "input" }; const TypeDictionary = { nan: "NaN" }; return (issue2) => { switch (issue2.code) { case "invalid_type": { const expected = TypeDictionary[issue2.expected] ?? issue2.expected; const receivedType = parsedType(issue2.input); const received = TypeDictionary[receivedType] ?? receivedType; if (/^[A-Z]/.test(issue2.expected)) { return `Yanl\u0131\u015F d\u0259y\u0259r: g\xF6zl\u0259nil\u0259n instanceof ${issue2.expected}, daxil olan ${received}`; } return `Yanl\u0131\u015F d\u0259y\u0259r: g\xF6zl\u0259nil\u0259n ${expected}, daxil olan ${received}`; } case "invalid_value": if (issue2.values.length === 1) return `Yanl\u0131\u015F d\u0259y\u0259r: g\xF6zl\u0259nil\u0259n ${stringifyPrimitive(issue2.values[0])}`; return `Yanl\u0131\u015F se\xE7im: a\u015Fa\u011F\u0131dak\u0131lardan biri olmal\u0131d\u0131r: ${joinValues(issue2.values, "|")}`; case "too_big": { const adj = issue2.inclusive ? "<=" : "<"; const sizing = getSizing(issue2.origin); if (sizing) return `\xC7ox b\xF6y\xFCk: g\xF6zl\u0259nil\u0259n ${issue2.origin ?? "d\u0259y\u0259r"} ${adj}${issue2.maximum.toString()} ${sizing.unit ?? "element"}`; return `\xC7ox b\xF6y\xFCk: g\xF6zl\u0259nil\u0259n ${issue2.origin ?? "d\u0259y\u0259r"} ${adj}${issue2.maximum.toString()}`; } case "too_small": { const adj = issue2.inclusive ? ">=" : ">"; const sizing = getSizing(issue2.origin); if (sizing) return `\xC7ox ki\xE7ik: g\xF6zl\u0259nil\u0259n ${issue2.origin} ${adj}${issue2.minimum.toString()} ${sizing.unit}`; return `\xC7ox ki\xE7ik: g\xF6zl\u0259nil\u0259n ${issue2.origin} ${adj}${issue2.minimum.toString()}`; } case "invalid_format": { const _issue = issue2; if (_issue.format === "starts_with") return `Yanl\u0131\u015F m\u0259tn: "${_issue.prefix}" il\u0259 ba\u015Flamal\u0131d\u0131r`; if (_issue.format === "ends_with") return `Yanl\u0131\u015F m\u0259tn: "${_issue.suffix}" il\u0259 bitm\u0259lidir`; if (_issue.format === "includes") return `Yanl\u0131\u015F m\u0259tn: "${_issue.includes}" daxil olmal\u0131d\u0131r`; if (_issue.format === "regex") return `Yanl\u0131\u015F m\u0259tn: ${_issue.pattern} \u015Fablonuna uy\u011Fun olmal\u0131d\u0131r`; return `Yanl\u0131\u015F ${FormatDictionary[_issue.format] ?? issue2.format}`; } case "not_multiple_of": return `Yanl\u0131\u015F \u0259d\u0259d: ${issue2.divisor} il\u0259 b\xF6l\xFCn\u0259 bil\u0259n olmal\u0131d\u0131r`; case "unrecognized_keys": return `Tan\u0131nmayan a\xE7ar${issue2.keys.length > 1 ? "lar" : ""}: ${joinValues(issue2.keys, ", ")}`; case "invalid_key": return `${issue2.origin} daxilind\u0259 yanl\u0131\u015F a\xE7ar`; case "invalid_union": return "Yanl\u0131\u015F d\u0259y\u0259r"; case "invalid_element": return `${issue2.origin} daxilind\u0259 yanl\u0131\u015F d\u0259y\u0259r`; default: return `Yanl\u0131\u015F d\u0259y\u0259r`; } }; }; function az_default() { return { localeError: error2() }; } // ../../../../node_modules/zod/v4/locales/be.js function getBelarusianPlural(count, one, few, many) { const absCount = Math.abs(count); const lastDigit = absCount % 10; const lastTwoDigits = absCount % 100; if (lastTwoDigits >= 11 && lastTwoDigits <= 19) { return many; } if (lastDigit === 1) { return one; } if (lastDigit >= 2 && lastDigit <= 4) { return few; } return many; } var error3 = () => { const Sizable = { string: { unit: { one: "\u0441\u0456\u043C\u0432\u0430\u043B", few: "\u0441\u0456\u043C\u0432\u0430\u043B\u044B", many: "\u0441\u0456\u043C\u0432\u0430\u043B\u0430\u045E" }, verb: "\u043C\u0435\u0446\u044C" }, array: { unit: { one: "\u044D\u043B\u0435\u043C\u0435\u043D\u0442", few: "\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u044B", many: "\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u0430\u045E" }, verb: "\u043C\u0435\u0446\u044C" }, set: { unit: { one: "\u044D\u043B\u0435\u043C\u0435\u043D\u0442", few: "\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u044B", many: "\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u0430\u045E" }, verb: "\u043C\u0435\u0446\u044C" }, map: { unit: { one: "\u044D\u043B\u0435\u043C\u0435\u043D\u0442", few: "\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u044B", many: "\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u0430\u045E" }, verb: "\u043C\u0435\u0446\u044C" }, file: { unit: { one: "\u0431\u0430\u0439\u0442", few: "\u0431\u0430\u0439\u0442\u044B", many: "\u0431\u0430\u0439\u0442\u0430\u045E" }, verb: "\u043C\u0435\u0446\u044C" } }; function getSizing(origin) { return Sizable[origin] ?? null; } const FormatDictionary = { regex: "\u0443\u0432\u043E\u0434", email: "email \u0430\u0434\u0440\u0430\u0441", url: "URL", emoji: "\u044D\u043C\u043E\u0434\u0437\u0456", uuid: "UUID", uuidv4: "UUIDv4", uuidv6: "UUIDv6", nanoid: "nanoid", guid: "GUID", cuid: "cuid", cuid2: "cuid2", ulid: "ULID", xid: "XID", ksuid: "KSUID", datetime: "ISO \u0434\u0430\u0442\u0430 \u0456 \u0447\u0430\u0441", date: "ISO \u0434\u0430\u0442\u0430", time: "ISO \u0447\u0430\u0441", duration: "ISO \u043F\u0440\u0430\u0446\u044F\u0433\u043B\u0430\u0441\u0446\u044C", ipv4: "IPv4 \u0430\u0434\u0440\u0430\u0441", ipv6: "IPv6 \u0430\u0434\u0440\u0430\u0441", mac: "MAC \u0430\u0434\u0440\u0430\u0441", cidrv4: "IPv4 \u0434\u044B\u044F\u043F\u0430\u0437\u043E\u043D", cidrv6: "IPv6 \u0434\u044B\u044F\u043F\u0430\u0437\u043E\u043D", base64: "\u0440\u0430\u0434\u043E\u043A \u0443 \u0444\u0430\u0440\u043C\u0430\u0446\u0435 base64", base64url: "\u0440\u0430\u0434\u043E\u043A \u0443 \u0444\u0430\u0440\u043C\u0430\u0446\u0435 base64url", json_string: "JSON \u0440\u0430\u0434\u043E\u043A", e164: "\u043D\u0443\u043C\u0430\u0440 E.164", credit_card: "\u043D\u0443\u043C\u0430\u0440 \u043A\u0440\u044D\u0434\u044B\u0442\u043D\u0430\u0439 \u043A\u0430\u0440\u0442\u044B", currency_code: "\u043A\u043E\u0434 \u0432\u0430\u043B\u044E\u0442\u044B", iban: "IBAN", jwt: "JWT", template_literal: "\u0443\u0432\u043E\u0434" }; const TypeDictionary = { nan: "NaN", number: "\u043B\u0456\u043A", array: "\u043C\u0430\u0441\u0456\u045E" }; return (issue2) => { switch (issue2.code) { case "invalid_type": { const expected = TypeDictionary[issue2.expected] ?? issue2.expected; const receivedType = parsedType(issue2.input); const received = TypeDictionary[receivedType] ?? receivedType; if (/^[A-Z]/.test(issue2.expected)) { return `\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B \u045E\u0432\u043E\u0434: \u0447\u0430\u043A\u0430\u045E\u0441\u044F instanceof ${issue2.expected}, \u0430\u0442\u0440\u044B\u043C\u0430\u043D\u0430 ${received}`; } return `\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B \u045E\u0432\u043E\u0434: \u0447\u0430\u043A\u0430\u045E\u0441\u044F ${expected}, \u0430\u0442\u0440\u044B\u043C\u0430\u043D\u0430 ${received}`; } case "invalid_value": if (issue2.values.length === 1) return `\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B \u045E\u0432\u043E\u0434: \u0447\u0430\u043A\u0430\u043B\u0430\u0441\u044F ${stringifyPrimitive(issue2.values[0])}`; return `\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B \u0432\u0430\u0440\u044B\u044F\u043D\u0442: \u0447\u0430\u043A\u0430\u045E\u0441\u044F \u0430\u0434\u0437\u0456\u043D \u0437 ${joinValues(issue2.values, "|")}`; case "too_big": { const adj = issue2.inclusive ? "<=" : "<"; const sizing = getSizing(issue2.origin); if (sizing) { const maxValue = Number(issue2.maximum); const unit = getBelarusianPlural(maxValue, sizing.unit.one, sizing.unit.few, sizing.unit.many); return `\u0417\u0430\u043D\u0430\u0434\u0442\u0430 \u0432\u044F\u043B\u0456\u043A\u0456: \u0447\u0430\u043A\u0430\u043B\u0430\u0441\u044F, \u0448\u0442\u043E ${issue2.origin ?? "\u0437\u043D\u0430\u0447\u044D\u043D\u043D\u0435"} \u043F\u0430\u0432\u0456\u043D\u043D\u0430 ${sizing.verb} ${adj}${issue2.maximum.toString()} ${unit}`; } return `\u0417\u0430\u043D\u0430\u0434\u0442\u0430 \u0432\u044F\u043B\u0456\u043A\u0456: \u0447\u0430\u043A\u0430\u043B\u0430\u0441\u044F, \u0448\u0442\u043E ${issue2.origin ?? "\u0437\u043D\u0430\u0447\u044D\u043D\u043D\u0435"} \u043F\u0430\u0432\u0456\u043D\u043D\u0430 \u0431\u044B\u0446\u044C ${adj}${issue2.maximum.toString()}`; } case "too_small": { const adj = issue2.inclusive ? ">=" : ">"; const sizing = getSizing(issue2.origin); if (sizing) { const minValue = Number(issue2.minimum); const unit = getBelarusianPlural(minValue, sizing.unit.one, sizing.unit.few, sizing.unit.many); return `\u0417\u0430\u043D\u0430\u0434\u0442\u0430 \u043C\u0430\u043B\u044B: \u0447\u0430\u043A\u0430\u043B\u0430\u0441\u044F, \u0448\u0442\u043E ${issue2.origin} \u043F\u0430\u0432\u0456\u043D\u043D\u0430 ${sizing.verb} ${adj}${issue2.minimum.toString()} ${unit}`; } return `\u0417\u0430\u043D\u0430\u0434\u0442\u0430 \u043C\u0430\u043B\u044B: \u0447\u0430\u043A\u0430\u043B\u0430\u0441\u044F, \u0448\u0442\u043E ${issue2.origin} \u043F\u0430\u0432\u0456\u043D\u043D\u0430 \u0431\u044B\u0446\u044C ${adj}${issue2.minimum.toString()}`; } case "invalid_format": { const _issue = issue2; if (_issue.format === "starts_with") return `\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B \u0440\u0430\u0434\u043E\u043A: \u043F\u0430\u0432\u0456\u043D\u0435\u043D \u043F\u0430\u0447\u044B\u043D\u0430\u0446\u0446\u0430 \u0437 "${_issue.prefix}"`; if (_issue.format === "ends_with") return `\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B \u0440\u0430\u0434\u043E\u043A: \u043F\u0430\u0432\u0456\u043D\u0435\u043D \u0437\u0430\u043A\u0430\u043D\u0447\u0432\u0430\u0446\u0446\u0430 \u043D\u0430 "${_issue.suffix}"`; if (_issue.format === "includes") return `\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B \u0440\u0430\u0434\u043E\u043A: \u043F\u0430\u0432\u0456\u043D\u0435\u043D \u0437\u043C\u044F\u0448\u0447\u0430\u0446\u044C "${_issue.includes}"`; if (_issue.format === "regex") return `\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B \u0440\u0430\u0434\u043E\u043A: \u043F\u0430\u0432\u0456\u043D\u0435\u043D \u0430\u0434\u043F\u0430\u0432\u044F\u0434\u0430\u0446\u044C \u0448\u0430\u0431\u043B\u043E\u043D\u0443 ${_issue.pattern}`; return `\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B ${FormatDictionary[_issue.format] ?? issue2.format}`; } case "not_multiple_of": return `\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B \u043B\u0456\u043A: \u043F\u0430\u0432\u0456\u043D\u0435\u043D \u0431\u044B\u0446\u044C \u043A\u0440\u0430\u0442\u043D\u044B\u043C ${issue2.divisor}`; case "unrecognized_keys": return `\u041D\u0435\u0440\u0430\u0441\u043F\u0430\u0437\u043D\u0430\u043D\u044B ${issue2.keys.length > 1 ? "\u043A\u043B\u044E\u0447\u044B" : "\u043A\u043B\u044E\u0447"}: ${joinValues(issue2.keys, ", ")}`; case "invalid_key": return `\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B \u043A\u043B\u044E\u0447 \u0443 ${issue2.origin}`; case "invalid_union": return "\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B \u045E\u0432\u043E\u0434"; case "invalid_element": return `\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u0430\u0435 \u0437\u043D\u0430\u0447\u044D\u043D\u043D\u0435 \u045E ${issue2.origin}`; default: return `\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B \u045E\u0432\u043E\u0434`; } }; }; function be_default() { return { localeError: error3() }; } // ../../../../node_modules/zod/v4/locales/bg.js var error4 = () => { const Sizable = { string: { unit: "\u0441\u0438\u043C\u0432\u043E\u043B\u0430", verb: "\u0434\u0430 \u0441\u044A\u0434\u044A\u0440\u0436\u0430" }, file: { unit: "\u0431\u0430\u0439\u0442\u0430", verb: "\u0434\u0430 \u0441\u044A\u0434\u044A\u0440\u0436\u0430" }, array: { unit: "\u0435\u043B\u0435\u043C\u0435\u043D\u0442\u0430", verb: "\u0434\u0430 \u0441\u044A\u0434\u044A\u0440\u0436\u0430" }, set: { unit: "\u0435\u043B\u0435\u043C\u0435\u043D\u0442\u0430", verb: "\u0434\u0430 \u0441\u044A\u0434\u044A\u0440\u0436\u0430" }, map: { unit: "\u0435\u043B\u0435\u043C\u0435\u043D\u0442\u0430", verb: "\u0434\u0430 \u0441\u044A\u0434\u044A\u0440\u0436\u0430" } }; function getSizing(origin) { return Sizable[origin] ?? null; } const FormatDictionary = { regex: "\u0432\u0445\u043E\u0434", email: "\u0438\u043C\u0435\u0439\u043B \u0430\u0434\u0440\u0435\u0441", url: "URL", emoji: "\u0435\u043C\u043E\u0434\u0436\u0438", uuid: "UUID", uuidv4: "UUIDv4", uuidv6: "UUIDv6", nanoid: "nanoid", guid: "GUID", cuid: "cuid", cuid2: "cuid2", ulid: "ULID", xid: "XID", ksuid: "KSUID", datetime: "ISO \u0432\u0440\u0435\u043C\u0435", date: "ISO \u0434\u0430\u0442\u0430", time: "ISO \u0432\u0440\u0435\u043C\u0435", duration: "ISO \u043F\u0440\u043E\u0434\u044A\u043B\u0436\u0438\u0442\u0435\u043B\u043D\u043E\u0441\u0442", ipv4: "IPv4 \u0430\u0434\u0440\u0435\u0441", ipv6: "IPv6 \u0430\u0434\u0440\u0435\u0441", mac: "MAC \u0430\u0434\u0440\u0435\u0441", cidrv4: "IPv4 \u0434\u0438\u0430\u043F\u0430\u0437\u043E\u043D", cidrv6: "IPv6 \u0434\u0438\u0430\u043F\u0430\u0437\u043E\u043D", base64: "base64-\u043A\u043E\u0434\u0438\u0440\u0430\u043D \u043D\u0438\u0437", base64url: "base64url-\u043A\u043E\u0434\u0438\u0440\u0430\u043D \u043D\u0438\u0437", json_string: "JSON \u043D\u0438\u0437", e164: "E.164 \u043D\u043E\u043C\u0435\u0440", credit_card: "\u043D\u043E\u043C\u0435\u0440 \u043D\u0430 \u043A\u0440\u0435\u0434\u0438\u0442\u043D\u0430 \u043A\u0430\u0440\u0442\u0430", currency_code: "\u043A\u043E\u0434 \u043D\u0430 \u0432\u0430\u043B\u0443\u0442\u0430", iban: "IBAN", jwt: "JWT", template_literal: "\u0432\u0445\u043E\u0434" }; const TypeDictionary = { nan: "NaN", number: "\u0447\u0438\u0441\u043B\u043E", array: "\u043C\u0430\u0441\u0438\u0432" }; return (issue2) => { switch (issue2.code) { case "invalid_type": { const expected = TypeDictionary[issue2.expected] ?? issue2.expected; const receivedType = parsedType(issue2.input); const received = TypeDictionary[receivedType] ?? receivedType; if (/^[A-Z]/.test(issue2.expected)) { return `\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u0435\u043D \u0432\u0445\u043E\u0434: \u043E\u0447\u0430\u043A\u0432\u0430\u043D instanceof ${issue2.expected}, \u043F\u043E\u043B\u0443\u0447\u0435\u043D ${received}`; } return `\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u0435\u043D \u0432\u0445\u043E\u0434: \u043E\u0447\u0430\u043A\u0432\u0430\u043D ${expected}, \u043F\u043E\u043B\u0443\u0447\u0435\u043D ${received}`; } case "invalid_value": if (issue2.values.length === 1) return `\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u0435\u043D \u0432\u0445\u043E\u0434: \u043E\u0447\u0430\u043A\u0432\u0430\u043D ${stringifyPrimitive(issue2.values[0])}`; return `\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u043D\u0430 \u043E\u043F\u0446\u0438\u044F: \u043E\u0447\u0430\u043A\u0432\u0430\u043D\u043E \u0435\u0434\u043D\u043E \u043E\u0442 ${joinValues(issue2.values, "|")}`; case "too_big": { const adj = issue2.inclusive ? "<=" : "<"; const sizing = getSizing(issue2.origin); if (sizing) return `\u0422\u0432\u044A\u0440\u0434\u0435 \u0433\u043E\u043B\u044F\u043C\u043E: \u043E\u0447\u0430\u043A\u0432\u0430 \u0441\u0435 ${issue2.origin ?? "\u0441\u0442\u043E\u0439\u043D\u043E\u0441\u0442"} \u0434\u0430 \u0441\u044A\u0434\u044A\u0440\u0436\u0430 ${adj}${issue2.maximum.toString()} ${sizing.unit ?? "\u0435\u043B\u0435\u043C\u0435\u043D\u0442\u0430"}`; return `\u0422\u0432\u044A\u0440\u0434\u0435 \u0433\u043E\u043B\u044F\u043C\u043E: \u043E\u0447\u0430\u043A\u0432\u0430 \u0441\u0435 ${issue2.origin ?? "\u0441\u0442\u043E\u0439\u043D\u043E\u0441\u0442"} \u0434\u0430 \u0431\u044A\u0434\u0435 ${adj}${issue2.maximum.toString()}`; } case "too_small": { const adj = issue2.inclusive ? ">=" : ">"; const sizing = getSizing(issue2.origin); if (sizing) { return `\u0422\u0432\u044A\u0440\u0434\u0435 \u043C\u0430\u043B\u043A\u043E: \u043E\u0447\u0430\u043A\u0432\u0430 \u0441\u0435 ${issue2.origin} \u0434\u0430 \u0441\u044A\u0434\u044A\u0440\u0436\u0430 ${adj}${issue2.minimum.toString()} ${sizing.unit}`; } return `\u0422\u0432\u044A\u0440\u0434\u0435 \u043C\u0430\u043B\u043A\u043E: \u043E\u0447\u0430\u043A\u0432\u0430 \u0441\u0435 ${issue2.origin} \u0434\u0430 \u0431\u044A\u0434\u0435 ${adj}${issue2.minimum.toString()}`; } case "invalid_format": { const _issue = issue2; if (_issue.format === "starts_with") { return `\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u0435\u043D \u043D\u0438\u0437: \u0442\u0440\u044F\u0431\u0432\u0430 \u0434\u0430 \u0437\u0430\u043F\u043E\u0447\u0432\u0430 \u0441 "${_issue.prefix}"`; } if (_issue.format === "ends_with") return `\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u0435\u043D \u043D\u0438\u0437: \u0442\u0440\u044F\u0431\u0432\u0430 \u0434\u0430 \u0437\u0430\u0432\u044A\u0440\u0448\u0432\u0430 \u0441 "${_issue.suffix}"`; if (_issue.format === "includes") return `\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u0435\u043D \u043D\u0438\u0437: \u0442\u0440\u044F\u0431\u0432\u0430 \u0434\u0430 \u0432\u043A\u043B\u044E\u0447\u0432\u0430 "${_issue.includes}"`; if (_issue.format === "regex") return `\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u0435\u043D \u043D\u0438\u0437: \u0442\u0440\u044F\u0431\u0432\u0430 \u0434\u0430 \u0441\u044A\u0432\u043F\u0430\u0434\u0430 \u0441 ${_issue.pattern}`; let invalid_adj = "\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u0435\u043D"; if (_issue.format === "emoji") invalid_adj = "\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u043D\u043E"; if (_issue.format === "datetime") invalid_adj = "\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u043D\u043E"; if (_issue.format === "date") invalid_adj = "\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u043D\u0430"; if (_issue.format === "time") invalid_adj = "\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u043D\u043E"; if (_issue.format === "duration") invalid_adj = "\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u043D\u0430"; return `${invalid_adj} ${FormatDictionary[_issue.format] ?? issue2.format}`; } case "not_multiple_of": return `\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u043D\u043E \u0447\u0438\u0441\u043B\u043E: \u0442\u0440\u044F\u0431\u0432\u0430 \u0434\u0430 \u0431\u044A\u0434\u0435 \u043A\u0440\u0430\u0442\u043D\u043E \u043D\u0430 ${issue2.divisor}`; case "unrecognized_keys": return `\u041D\u0435\u0440\u0430\u0437\u043F\u043E\u0437\u043D\u0430\u0442${issue2.keys.length > 1 ? "\u0438" : ""} \u043A\u043B\u044E\u0447${issue2.keys.length > 1 ? "\u043E\u0432\u0435" : ""}: ${joinValues(issue2.keys, ", ")}`; case "invalid_key": return `\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u0435\u043D \u043A\u043B\u044E\u0447 \u0432 ${issue2.origin}`; case "invalid_union": return "\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u0435\u043D \u0432\u0445\u043E\u0434"; case "invalid_element": return `\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u043D\u0430 \u0441\u0442\u043E\u0439\u043D\u043E\u0441\u0442 \u0432 ${issue2.origin}`; default: return `\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u0435\u043D \u0432\u0445\u043E\u0434`; } }; }; function bg_default() { return { localeError: error4() }; } // ../../../../node_modules/zod/v4/locales/bn.js var error5 = () => { const Sizable = { string: { unit: "\u0985\u0995\u09CD\u09B7\u09B0", verb: "\u09A5\u09BE\u0995\u09A4\u09C7 \u09B9\u09AC\u09C7" }, file: { unit: "\u09AC\u09BE\u0987\u099F", verb: "\u09A5\u09BE\u0995\u09A4\u09C7 \u09B9\u09AC\u09C7" }, array: { unit: "\u0986\u0987\u099F\u09C7\u09AE", verb: "\u09A5\u09BE\u0995\u09A4\u09C7 \u09B9\u09AC\u09C7" }, set: { unit: "\u0986\u0987\u099F\u09C7\u09AE", verb: "\u09A5\u09BE\u0995\u09A4\u09C7 \u09B9\u09AC\u09C7" }, map: { unit: "\u098F\u09A8\u09CD\u099F\u09CD\u09B0\u09BF", verb: "\u09A5\u09BE\u0995\u09A4\u09C7 \u09B9\u09AC\u09C7" } }; function getSizing(origin) { return Sizable[origin] ?? null; } const FormatDictionary = { regex: "\u0987\u09A8\u09AA\u09C1\u099F", email: "\u0987\u09AE\u09C7\u0987\u09B2 \u09A0\u09BF\u0995\u09BE\u09A8\u09BE", url: "URL", emoji: "\u0987\u09AE\u09CB\u099C\u09BF", uuid: "UUID", uuidv4: "UUIDv4", uuidv6: "UUIDv6", nanoid: "nanoid", guid: "GUID", cuid: "cuid", cuid2: "cuid2", ulid: "ULID", xid: "XID", ksuid: "KSUID", datetime: "ISO \u09A4\u09BE\u09B0\u09BF\u0996 \u0993 \u09B8\u09AE\u09AF\u09BC", date: "ISO \u09A4\u09BE\u09B0\u09BF\u0996", time: "ISO \u09B8\u09AE\u09AF\u09BC", duration: "ISO \u09B8\u09AE\u09AF\u09BC\u0995\u09BE\u09B2", ipv4: "IPv4 \u09A0\u09BF\u0995\u09BE\u09A8\u09BE", ipv6: "IPv6 \u09A0\u09BF\u0995\u09BE\u09A8\u09BE", mac: "MAC \u09A0\u09BF\u0995\u09BE\u09A8\u09BE", cidrv4: "IPv4 \u09B0\u09C7\u099E\u09CD\u099C", cidrv6: "IPv6 \u09B0\u09C7\u099E\u09CD\u099C", base64: "base64-\u098F\u09A8\u0995\u09CB\u09A1\u09C7\u09A1 \u09B8\u09CD\u099F\u09CD\u09B0\u09BF\u0982", base64url: "base64url-\u098F\u09A8\u0995\u09CB\u09A1\u09C7\u09A1 \u09B8\u09CD\u099F\u09CD\u09B0\u09BF\u0982", json_string: "JSON \u09B8\u09CD\u099F\u09CD\u09B0\u09BF\u0982", e164: "E.164 \u09A8\u09AE\u09CD\u09AC\u09B0", credit_card: "\u0995\u09CD\u09B0\u09C7\u09A1\u09BF\u099F \u0995\u09BE\u09B0\u09CD\u09A1 \u09A8\u09AE\u09CD\u09AC\u09B0", currency_code: "\u09AE\u09C1\u09A6\u09CD\u09B0\u09BE \u0995\u09CB\u09A1", iban: "IBAN", jwt: "JWT", template_literal: "\u0987\u09A8\u09AA\u09C1\u099F" }; const TypeDictionary = { nan: "NaN" }; return (issue2) => { switch (issue2.code) { case "invalid_type": { const expected = TypeDictionary[issue2.expected] ?? issue2.expected; const receivedType = parsedType(issue2.input); const received = TypeDictionary[receivedType] ?? receivedType; return `\u0985\u09AC\u09C8\u09A7 \u0987\u09A8\u09AA\u09C1\u099F: \u09AA\u09CD\u09B0\u09A4\u09CD\u09AF\u09BE\u09B6\u09BF\u09A4 ${expected}, \u09AA\u09CD\u09B0\u09BE\u09AA\u09CD\u09A4 ${received}`; } case "invalid_value": if (issue2.values.length === 1) return `\u0985\u09AC\u09C8\u09A7 \u0987\u09A8\u09AA\u09C1\u099F: \u09AA\u09CD\u09B0\u09A4\u09CD\u09AF\u09BE\u09B6\u09BF\u09A4 ${stringifyPrimitive(issue2.values[0])}`; return `\u0985\u09AC\u09C8\u09A7 \u0985\u09AA\u09B6\u09A8: ${joinValues(issue2.values, " | ")} \u098F\u09B0 \u09AE\u09A7\u09CD\u09AF\u09C7 \u098F\u0995\u099F\u09BF \u09AA\u09CD\u09B0\u09A4\u09CD\u09AF\u09BE\u09B6\u09BF\u09A4`; case "too_big": { const adj = issue2.inclusive ? "<=" : "<"; const sizing = getSizing(issue2.origin); if (sizing) return `\u0985\u09A8\u09C7\u0995 \u09AC\u09A1\u09BC: ${issue2.origin ?? "\u09AE\u09BE\u09A8"} ${adj}${issue2.maximum.toString()} ${sizing.unit ?? "\u098F\u09B2\u09BF\u09AE\u09C7\u09A8\u09CD\u099F"} \u09B9\u09A4\u09C7 \u09B9\u09AC\u09C7`; return `\u0985\u09A8\u09C7\u0995 \u09AC\u09A1\u09BC: ${issue2.origin ?? "\u09AE\u09BE\u09A8"} ${adj}${issue2.maximum.toString()} \u09B9\u09A4\u09C7 \u09B9\u09AC\u09C7`; } case "too_small": { const adj = issue2.inclusive ? ">=" : ">"; const sizing = getSizing(issue2.origin); if (sizing) { return `\u0985\u09A8\u09C7\u0995 \u099B\u09CB\u099F: ${issue2.origin} ${adj}${issue2.minimum.toString()} ${sizing.unit} \u09B9\u09A4\u09C7 \u09B9\u09AC\u09C7`; } return `\u0985\u09A8\u09C7\u0995 \u099B\u09CB\u099F: ${issue2.origin} ${adj}${issue2.minimum.toString()} \u09B9\u09A4\u09C7 \u09B9\u09AC\u09C7`; } case "invalid_format": { const _issue = issue2; if (_issue.format === "starts_with") { return `\u0985\u09AC\u09C8\u09A7 \u09B8\u09CD\u099F\u09CD\u09B0\u09BF\u0982: "${_issue.prefix}" \u09A6\u09BF\u09AF\u09BC\u09C7 \u09B6\u09C1\u09B0\u09C1 \u09B9\u09A4\u09C7 \u09B9\u09AC\u09C7`; } if (_issue.format === "ends_with") return `\u0985\u09AC\u09C8\u09A7 \u09B8\u09CD\u099F\u09CD\u09B0\u09BF\u0982: "${_issue.suffix}" \u09A6\u09BF\u09AF\u09BC\u09C7 \u09B6\u09C7\u09B7 \u09B9\u09A4\u09C7 \u09B9\u09AC\u09C7`; if (_issue.format === "includes") return `\u0985\u09AC\u09C8\u09A7 \u09B8\u09CD\u099F\u09CD\u09B0\u09BF\u0982: "${_issue.includes}" \u0985\u09A8\u09CD\u09A4\u09B0\u09CD\u09AD\u09C1\u0995\u09CD\u09A4 \u09A5\u09BE\u0995\u09A4\u09C7 \u09B9\u09AC\u09C7`; if (_issue.format === "regex") return `\u0985\u09AC\u09C8\u09A7 \u09B8\u09CD\u099F\u09CD\u09B0\u09BF\u0982: ${_issue.pattern} \u09AA\u09CD\u09AF\u09BE\u099F\u09BE\u09B0\u09CD\u09A8 \u09AE\u09BF\u09B2\u09A4\u09C7 \u09B9\u09AC\u09C7`; return `\u0985\u09AC\u09C8\u09A7 ${FormatDictionary[_issue.format] ?? issue2.format}`; } case "not_multiple_of": return `\u0985\u09AC\u09C8\u09A7 \u09A8\u09AE\u09CD\u09AC\u09B0: ${issue2.divisor} \u098F\u09B0 \u0997\u09C1\u09A3\u09BF\u09A4\u0995 \u09B9\u09A4\u09C7 \u09B9\u09AC\u09C7`; case "unrecognized_keys": return `\u0985\u099A\u09C7\u09A8\u09BE \u0995\u09C0${issue2.keys.length > 1 ? "\u0997\u09C1\u09B2\u09CB" : ""}: ${joinValues(issue2.keys, ", ")}`; case "invalid_key": return `${issue2.origin} \u098F \u0985\u09AC\u09C8\u09A7 \u0995\u09C0`; case "invalid_union": if (issue2.options && Array.isArray(issue2.options) && issue2.options.length > 0) { const opts = issue2.options.map((o) => `'${o}'`).join(" | "); return `\u0985\u09AC\u09C8\u09A7 \u09A1\u09BF\u09B8\u0995\u09CD\u09B0\u09BF\u09AE\u09BF\u09A8\u09C7\u099F\u09B0 \u09AE\u09BE\u09A8\u0964 \u09AA\u09CD\u09B0\u09A4\u09CD\u09AF\u09BE\u09B6\u09BF\u09A4 ${opts}`; } return "\u0985\u09AC\u09C8\u09A7 \u0987\u09A8\u09AA\u09C1\u099F"; case "invalid_element": return `${issue2.origin} \u098F \u0985\u09AC\u09C8\u09A7 \u09AE\u09BE\u09A8`; default: return "\u0985\u09AC\u09C8\u09A7 \u0987\u09A8\u09AA\u09C1\u099F"; } }; }; function bn_default() { return { localeError: error5() }; } // ../../../../node_modules/zod/v4/locales/ca.js var error6 = () => { const Sizable = { string: { unit: "car\xE0cters", verb: "contenir" }, file: { unit: "bytes", verb: "contenir" }, array: { unit: "elements", verb: "contenir" }, set: { unit: "elements", verb: "contenir" }, map: { unit: "elements", verb: "contenir" } }; function getSizing(origin) { return Sizable[origin] ?? null; } const FormatDictionary = { regex: "entrada", email: "adre\xE7a electr\xF2nica", url: "URL", emoji: "emoji", uuid: "UUID", uuidv4: "UUIDv4", uuidv6: "UUIDv6", nanoid: "nanoid", guid: "GUID", cuid: "cuid", cuid2: "cuid2", ulid: "ULID", xid: "XID", ksuid: "KSUID", datetime: "data i hora ISO", date: "data ISO", time: "hora ISO", duration: "durada ISO", ipv4: "adre\xE7a IPv4", ipv6: "adre\xE7a IPv6", mac: "adre\xE7a MAC", cidrv4: "rang IPv4", cidrv6: "rang IPv6", base64: "cadena codificada en base64", base64url: "cadena codificada en base64url", json_string: "cadena JSON", e164: "n\xFAmero E.164", credit_card: "n\xFAmero de targeta de cr\xE8dit", currency_code: "codi de moneda", iban: "IBAN", jwt: "JWT", template_literal: "entrada" }; const TypeDictionary = { nan: "NaN" }; return (issue2) => { switch (issue2.code) { case "invalid_type": { const expected = TypeDictionary[issue2.expected] ?? issue2.expected; const receivedType = parsedType(issue2.input); const received = TypeDictionary[receivedType] ?? receivedType; if (/^[A-Z]/.test(issue2.expected)) { return `Tipus inv\xE0lid: s'esperava instanceof ${issue2.expected}, s'ha rebut ${received}`; } return `Tipus inv\xE0lid: s'esperava ${expected}, s'ha rebut ${received}`; } case "invalid_value": if (issue2.values.length === 1) return `Valor inv\xE0lid: s'esperava ${stringifyPrimitive(issue2.values[0])}`; return `Opci\xF3 inv\xE0lida: s'esperava una de ${joinValues(issue2.values, " o ")}`; case "too_big": { const adj = issue2.inclusive ? "com a m\xE0xim" : "menys de"; const sizing = getSizing(issue2.origin); if (sizing) return `Massa gran: s'esperava que ${issue2.origin ?? "el valor"} contingu\xE9s ${adj} ${issue2.maximum.toString()} ${sizing.unit ?? "elements"}`; return `Massa gran: s'esperava que ${issue2.origin ?? "el valor"} fos ${adj} ${issue2.maximum.toString()}`; } case "too_small": { const adj = issue2.inclusive ? "com a m\xEDnim" : "m\xE9s de"; const sizing = getSizing(issue2.origin); if (sizing) { return `Massa petit: s'esperava que ${issue2.origin} contingu\xE9s ${adj} ${issue2.minimum.toString()} ${sizing.unit}`; } return `Massa petit: s'esperava que ${issue2.origin} fos ${adj} ${issue2.minimum.toString()}`; } case "invalid_format": { const _issue = issue2; if (_issue.format === "starts_with") { return `Format inv\xE0lid: ha de comen\xE7ar amb "${_issue.prefix}"`; } if (_issue.format === "ends_with") return `Format inv\xE0lid: ha d'acabar amb "${_issue.suffix}"`; if (_issue.format === "includes") return `Format inv\xE0lid: ha d'incloure "${_issue.includes}"`; if (_issue.format === "regex") return `Format inv\xE0lid: ha de coincidir amb el patr\xF3 ${_issue.pattern}`; return `Format inv\xE0lid per a ${FormatDictionary[_issue.format] ?? issue2.format}`; } case "not_multiple_of": return `N\xFAmero inv\xE0lid: ha de ser m\xFAltiple de ${issue2.divisor}`; case "unrecognized_keys": return `Clau${issue2.keys.length > 1 ? "s" : ""} no reconeguda${issue2.keys.length > 1 ? "s" : ""}: ${joinValues(issue2.keys, ", ")}`; case "invalid_key": return `Clau inv\xE0lida a ${issue2.origin}`; case "invalid_union": return "Entrada inv\xE0lida"; // Could also be "Tipus d'unió invàlid" but "Entrada invàlida" is more general case "invalid_element": return `Element inv\xE0lid a ${issue2.origin}`; default: return `Entrada inv\xE0lida`; } }; }; function ca_default() { return { localeError: error6() }; } // ../../../../node_modules/zod/v4/locales/ckb.js var error7 = () => { const Sizable = { string: { unit: "\u067E\u06CC\u062A", verb: "\u0628\u06CE\u062A" }, file: { unit: "\u0628\u0627\u06CC\u062A", verb: "\u0628\u06CE\u062A" }, array: { unit: "\u062F\u0627\u0646\u06D5", verb: "\u0628\u06CE\u062A" }, set: { unit: "\u062F\u0627\u0646\u06D5", verb: "\u0628\u06CE\u062A" }, map: { unit: "\u062F\u0627\u0646\u06D5", verb: "\u0628\u06CE\u062A" } }; function getSizing(origin) { return Sizable[origin] ?? null; } const FormatDictionary = { regex: "regex", email: "\u0626\u06CC\u0645\u06D5\u06CC\u06B5", url: "\u0628\u06D5\u0633\u062A\u06D5\u0631 (URL)", emoji: "\u0626\u06CC\u0645\u06C6\u062C\u06CC", uuid: "UUID", uuidv4: "UUIDv4", uuidv6: "UUIDv6", nanoid: "nanoid", guid: "GUID", cuid: "cuid", cuid2: "cuid2", ulid: "ULID", xid: "XID", ksuid: "KSUID", datetime: "\u0695\u06CE\u06A9\u06D5\u0648\u062A \u0648 \u06A9\u0627\u062A", date: "\u0695\u06CE\u06A9\u06D5\u0648\u062A", time: "\u06A9\u0627\u062A", duration: "\u0645\u0627\u0648\u06D5", ipv4: "\u0646\u0627\u0648\u0646\u06CC\u0634\u0627\u0646\u06CC IPv4", ipv6: "\u0646\u0627\u0648\u0646\u06CC\u0634\u0627\u0646\u06CC IPv6", mac: "\u0646\u0627\u0648\u0646\u06CC\u0634\u0627\u0646\u06CC MAC", cidrv4: "\u0645\u06D5\u0648\u062F\u0627\u06CC IPv4", cidrv6: "\u0645\u06D5\u0648\u062F\u0627\u06CC IPv6", base64: "\u062F\u06D5\u0642\u06CC base64", base64url: "\u062F\u06D5\u0642\u06CC base64url", json_string: "\u062F\u06D5\u0642\u06CC JSON", e164: "\u0698\u0645\u0627\u0631\u06D5\u06CC E.164", credit_card: "\u0698\u0645\u0627\u0631\u06D5\u06CC \u06A9\u0627\u0631\u062A\u06CC \u06A9\u0631\u06CE\u062F\u06CC\u062A", currency_code: "\u06A9\u06C6\u062F\u06CC \u062F\u0631\u0627\u0648", iban: "IBAN", jwt: "JWT", template_literal: "\u062A\u06CE\u06A9\u0631\u062F\u06D5" }; const TypeDictionary = { nan: "NaN", string: "\u0646\u0648\u0648\u0633\u06CC\u0646", number: "\u0698\u0645\u0627\u0631\u06D5", boolean: "boolean", array: "array", object: "object", date: "\u0695\u06CE\u06A9\u06D5\u0648\u062A", integer: "\u0698\u0645\u0627\u0631\u06D5", float: "\u0698\u0645\u0627\u0631\u06D5", null: "null", undefined: "undefined", function: "function", symbol: "symbol", unknown: "unknown", promise: "promise", void: "void", never: "never", map: "map", set: "set" }; return (issue2) => { switch (issue2.code) { case "invalid_type": { const expected = TypeDictionary[issue2.expected] ?? issue2.expected; const receivedType = parsedType(issue2.input); const received = TypeDictionary[receivedType] ?? receivedType; const postfix = ["\u0627", "\u0648", "\u06C6", "\u0648\u0648", "\u06D5", "\u06CC", "\u06CE"].some((p) => received.endsWith(p)) ? "\u06CC\u06D5" : "\u06D5"; const isEnglish = /^[a-zA-Z]+$/.test(received); if (receivedType === "null" || receivedType === "undefined") return `\u062F\u0627\u0648\u0627\u06A9\u0631\u0627\u0648\u06D5`; return `\u0686\u0627\u0648\u06D5\u0695\u0648\u0627\u0646\u06A9\u0631\u0627\u0648\u06D5 ${expected} \u0628\u06CE\u062A\u060C \u0628\u06D5\u06B5\u0627\u0645 ${received}${isEnglish ? "" : postfix}`; } case "invalid_value": if (issue2.values.length === 1) return `\u0628\u06D5\u0647\u0627\u06A9\u06D5 \u0646\u0627\u062F\u0631\u0648\u0648\u0633\u062A\u06D5: \u0686\u0627\u0648\u06D5\u0695\u0648\u0627\u0646\u06A9\u0631\u0627\u0648\u06D5 ${stringifyPrimitive(issue2.values[0])} \u0628\u06CE\u062A`; return `\u0647\u06D5\u06B5\u0628\u0698\u0627\u0631\u062F\u06D5\u06CC \u0646\u0627\u062F\u0631\u0648\u0633\u062A: \u0686\u0627\u0648\u06D5\u0695\u0648\u0627\u0646\u06A9\u0631\u0627\u0648\u06D5 \u06CC\u06D5\u06A9\u06CE\u06A9 \u0628\u06CE\u062A \u0644\u06D5 ${joinValues(issue2.values, "|")}`; case "too_big": { const sizing = getSizing(issue2.origin); if (sizing) return `\u067E\u06CE\u0648\u06CC\u0633\u062A\u06D5 \u0628\u06D5 \u0644\u0627\u06CC\u06D5\u0646\u06CC \u0632\u06C6\u0631\u06D5\u0648\u06D5 ${issue2.maximum.toString()} ${sizing.unit} ${sizing.verb}`; return `\u067E\u06CE\u0648\u06CC\u0633\u062A\u06D5 \u0628\u06D5 \u0644\u0627\u06CC\u06D5\u0646\u06CC \u0632\u06C6\u0631\u06D5\u0648\u06D5 ${issue2.maximum.toString()} \u0628\u06CE\u062A`; } case "too_small": { const sizing = getSizing(issue2.origin); if (sizing) return `\u067E\u06CE\u0648\u06CC\u0633\u062A\u06D5 \u0628\u06D5 \u0644\u0627\u06CC\u06D5\u0646\u06CC \u06A9\u06D5\u0645\u06D5\u0648\u06D5 ${issue2.minimum.toString()} ${sizing.unit} ${sizing.verb}`; return `\u067E\u06CE\u0648\u06CC\u0633\u062A\u06D5 \u0628\u06D5 \u0644\u0627\u06CC\u06D5\u0646\u06CC \u06A9\u06D5\u0645\u06D5\u0648\u06D5 ${issue2.minimum.toString()} \u0628\u06CE\u062A`; } case "invalid_format": { const _issue = issue2; if (_issue.format === "starts_with") { return `\u062F\u06D5\u0642\u06CC \u0646\u0627\u062F\u0631\u0648\u0633\u062A: \u067E\u06CE\u0648\u06CC\u0633\u062A\u06D5 \u062F\u06D5\u0633\u062A\u067E\u06CE\u0628\u06A9\u0627\u062A \u0628\u06D5 "${_issue.prefix}"`; } if (_issue.format === "ends_with") return `\u062F\u06D5\u0642\u06CC \u0646\u0627\u062F\u0631\u0648\u0633\u062A: \u067E\u06CE\u0648\u06CC\u0633\u062A\u06D5 \u06A9\u06C6\u062A\u0627\u06CC\u06CC\u0628\u06CE\u062A \u0628\u06D5 "${_issue.suffix}"`; if (_issue.format === "includes") return `\u062F\u06D5\u0642\u06CC \u0646\u0627\u062F\u0631\u0648\u0633\u062A: \u067E\u06CE\u0648\u06CC\u0633\u062A\u06D5 "${_issue.includes}" \u0644\u06D5\u062E\u06C6\u0628\u06AF\u0631\u06CE\u062A`; if (_issue.format === "regex") return `\u062F\u06D5\u0642\u06CC \u0646\u0627\u062F\u0631\u0648\u0633\u062A: \u067E\u06CE\u0648\u06CC\u0633\u062A\u06D5 \u0644\u06D5\u06AF\u06D5\u06B5 \u067E\u0627\u062A\u06CE\u0631\u0646\u06CC ${_issue.pattern} \u0628\u06AF\u0648\u0646\u062C\u06CE\u062A`; return `\u0628\u06D5\u0647\u0627\u06CC ${FormatDictionary[_issue.format] ?? issue2.format} \u0646\u0627\u062F\u0631\u0648\u0633\u062A\u06D5`; } case "not_multiple_of": return `\u0698\u0645\u0627\u0631\u06D5\u06CC \u0646\u0627\u062F\u0631\u0648\u0633\u062A: \u062F\u06D5\u0628\u06CE\u062A \u0686\u06D5\u0646\u062F \u0647\u06CE\u0646\u062F\u06D5 \u0628\u06CE\u062A \u0628\u06C6 ${issue2.divisor}`; case "unrecognized_keys": return `\u06A9\u0644\u06CC\u0644\u06CC \u0646\u06D5\u0646\u0627\u0633\u0631\u0627\u0648: ${joinValues(issue2.keys, ", ")}`; case "invalid_key": return `\u06A9\u0644\u06CC\u0644\u06CC \u0646\u0627\u062F\u0631\u0648\u0633\u062A \u0644\u06D5 ${issue2.origin}`; case "invalid_union": if (issue2.options && Array.isArray(issue2.options) && issue2.options.length > 0) { const opts = issue2.options.map((o) => `'${o}'`).join(" | "); return `\u0628\u06D5\u0647\u0627\u06CC \u0646\u06D5\u0646\u0627\u0633\u0631\u0627\u0648 \u0647\u06D5\u06CC\u06D5. \u0628\u06D5\u0647\u0627\u06CC \u0686\u0627\u0648\u06D5\u0695\u0648\u0627\u0646\u06A9\u0631\u0627\u0648: ${opts}`; } return "\u06CC\u06D5\u06A9\u06AF\u0631\u062A\u0646\u06CC \u0646\u0627\u062F\u0631\u0648\u0633\u062A"; case "invalid_element": return `${issue2.origin} \u0628\u06D5\u0647\u0627\u06A9\u06D5 \u0646\u0627\u062F\u0631\u0648\u0633\u062A\u06D5`; default: return `\u062A\u06CE\u06A9\u0631\u062F\u06D5\u06CC \u0646\u0627\u062F\u0631\u0648\u0633\u062A`; } }; }; function ckb_default() { return { localeError: error7() }; } // ../../../../node_modules/zod/v4/locales/cs.js var error8 = () => { const Sizable = { string: { unit: "znak\u016F", verb: "m\xEDt" }, file: { unit: "bajt\u016F", verb: "m\xEDt" }, array: { unit: "prvk\u016F", verb: "m\xEDt" }, set: { unit: "prvk\u016F", verb: "m\xEDt" }, map: { unit: "prvk\u016F", verb: "m\xEDt" } }; function getSizing(origin) { return Sizable[origin] ?? null; } const FormatDictionary = { regex: "regul\xE1rn\xED v\xFDraz", email: "e-mailov\xE1 adresa", url: "URL", emoji: "emoji", uuid: "UUID", uuidv4: "UUIDv4", uuidv6: "UUIDv6", nanoid: "nanoid", guid: "GUID", cuid: "cuid", cuid2: "cuid2", ulid: "ULID", xid: "XID", ksuid: "KSUID", datetime: "datum a \u010Das ve form\xE1tu ISO", date: "datum ve form\xE1tu ISO", time: "\u010Das ve form\xE1tu ISO", duration: "doba trv\xE1n\xED ISO", ipv4: "IPv4 adresa", ipv6: "IPv6 adresa", mac: "MAC adresa", cidrv4: "rozsah IPv4", cidrv6: "rozsah IPv6", base64: "\u0159et\u011Bzec zak\xF3dovan\xFD ve form\xE1tu base64", base64url: "\u0159et\u011Bzec zak\xF3dovan\xFD ve form\xE1tu base64url", json_string: "\u0159et\u011Bzec ve form\xE1tu JSON", e164: "\u010D\xEDslo E.164", credit_card: "\u010D\xEDslo kreditn\xED karty", currency_code: "k\xF3d m\u011Bny", iban: "IBAN", jwt: "JWT", template_literal: "vstup" }; const TypeDictionary = { nan: "NaN", number: "\u010D\xEDslo", string: "\u0159et\u011Bzec", function: "funkce", array: "pole" }; return (issue2) => { switch (issue2.code) { case "invalid_type": { const expected = TypeDictionary[issue2.expected] ?? issue2.expected; const receivedType = parsedType(issue2.input); const received = TypeDictionary[receivedType] ?? receivedType; if (/^[A-Z]/.test(issue2.expected)) { return `Neplatn\xFD vstup: o\u010Dek\xE1v\xE1no instanceof ${issue2.expected}, obdr\u017Eeno ${received}`; } return `Neplatn\xFD vstup: o\u010Dek\xE1v\xE1no ${expected}, obdr\u017Eeno ${received}`; } case "invalid_value": if (issue2.values.length === 1) return `Neplatn\xFD vstup: o\u010Dek\xE1v\xE1no ${stringifyPrimitive(issue2.values[0])}`; return `Neplatn\xE1 mo\u017Enost: o\u010Dek\xE1v\xE1na jedna z hodnot ${joinValues(issue2.values, "|")}`; case "too_big": { const adj = issue2.inclusive ? "<=" : "<"; const sizing = getSizing(issue2.origin); if (sizing) { return `Hodnota je p\u0159\xEDli\u0161 velk\xE1: ${issue2.origin ?? "hodnota"} mus\xED m\xEDt ${adj}${issue2.maximum.toString()} ${sizing.unit ?? "prvk\u016F"}`; } return `Hodnota je p\u0159\xEDli\u0161 velk\xE1: ${issue2.origin ?? "hodnota"} mus\xED b\xFDt ${adj}${issue2.maximum.toString()}`; } case "too_small": { const adj = issue2.inclusive ? ">=" : ">"; const sizing = getSizing(issue2.origin); if (sizing) { return `Hodnota je p\u0159\xEDli\u0161 mal\xE1: ${issue2.origin ?? "hodnota"} mus\xED m\xEDt ${adj}${issue2.minimum.toString()} ${sizing.unit ?? "prvk\u016F"}`; } return `Hodnota je p\u0159\xEDli\u0161 mal\xE1: ${issue2.origin ?? "hodnota"} mus\xED b\xFDt ${adj}${issue2.minimum.toString()}`; } case "invalid_format": { const _issue = issue2; if (_issue.format === "starts_with") return `Neplatn\xFD \u0159et\u011Bzec: mus\xED za\u010D\xEDnat na "${_issue.prefix}"`; if (_issue.format === "ends_with") return `Neplatn\xFD \u0159et\u011Bzec: mus\xED kon\u010Dit na "${_issue.suffix}"`; if (_issue.format === "includes") return `Neplatn\xFD \u0159et\u011Bzec: mus\xED obsahovat "${_issue.includes}"`; if (_issue.format === "regex") return `Neplatn\xFD \u0159et\u011Bzec: mus\xED odpov\xEDdat vzoru ${_issue.pattern}`; return `Neplatn\xFD form\xE1t ${FormatDictionary[_issue.format] ?? issue2.format}`; } case "not_multiple_of": return `Neplatn\xE9 \u010D\xEDslo: mus\xED b\xFDt n\xE1sobkem ${issue2.divisor}`; case "unrecognized_keys": return `Nezn\xE1m\xE9 kl\xED\u010De: ${joinValues(issue2.keys, ", ")}`; case "invalid_key": return `Neplatn\xFD kl\xED\u010D v ${issue2.origin}`; case "invalid_union": return "Neplatn\xFD vstup"; case "invalid_element": return `Neplatn\xE1 hodnota v ${issue2.origin}`; default: return `Neplatn\xFD vstup`; } }; }; function cs_default() { return { localeError: error8() }; } // ../../../../node_modules/zod/v4/locales/da.js var error9 = () => { const Sizable = { string: { unit: "tegn", verb: "havde" }, file: { unit: "bytes", verb: "havde" }, array: { unit: "elementer", verb: "indeholdt" }, set: { unit: "elementer", verb: "indeholdt" }, map: { unit: "elementer", verb: "indeholdt" } }; function getSizing(origin) { return Sizable[origin] ?? null; } const FormatDictionary = { regex: "input", email: "e-mailadresse", url: "URL", emoji: "emoji", uuid: "UUID", uuidv4: "UUIDv4", uuidv6: "UUIDv6", nanoid: "nanoid", guid: "GUID", cuid: "cuid", cuid2: "cuid2", ulid: "ULID", xid: "XID", ksuid: "KSUID", datetime: "ISO dato- og klokkesl\xE6t", date: "ISO-dato", time: "ISO-klokkesl\xE6t", duration: "ISO-varighed", ipv4: "IPv4-adresse", ipv6: "IPv6-adresse", mac: "MAC-adresse", cidrv4: "IPv4-spektrum", cidrv6: "IPv6-spektrum", base64: "base64-kodet streng", base64url: "base64url-kodet streng", json_string: "JSON-streng", e164: "E.164-nummer", credit_card: "kreditkortnummer", currency_code: "valutakode", iban: "IBAN", jwt: "JWT", template_literal: "input" }; const TypeDictionary = { nan: "NaN", string: "streng", number: "tal", boolean: "boolean", array: "liste", object: "objekt", set: "s\xE6t", file: "fil" }; return (issue2) => { switch (issue2.code) { case "invalid_type": { const expected = TypeDictionary[issue2.expected] ?? issue2.expected; const receivedType = parsedType(issue2.input); const received = TypeDictionary[receivedType] ?? receivedType; if (/^[A-Z]/.test(issue2.expected)) { return `Ugyldigt input: forventede instanceof ${issue2.expected}, fik ${received}`; } return `Ugyldigt input: forventede ${expected}, fik ${received}`; } case "invalid_value": if (issue2.values.length === 1) return `Ugyldig v\xE6rdi: forventede ${stringifyPrimitive(issue2.values[0])}`; return `Ugyldigt valg: forventede en af f\xF8lgende ${joinValues(issue2.values, "|")}`; case "too_big": { const adj = issue2.inclusive ? "<=" : "<"; const sizing = getSizing(issue2.origin); const origin = TypeDictionary[issue2.origin] ?? issue2.origin; if (sizing) return `For stor: forventede ${origin ?? "value"} ${sizing.verb} ${adj} ${issue2.maximum.toString()} ${sizing.unit ?? "elementer"}`; return `For stor: forventede ${origin ?? "value"} havde ${adj} ${issue2.maximum.toString()}`; } case "too_small": { const adj = issue2.inclusive ? ">=" : ">"; const sizing = getSizing(issue2.origin); const origin = TypeDictionary[issue2.origin] ?? issue2.origin; if (sizing) { return `For lille: forventede ${origin} ${sizing.verb} ${adj} ${issue2.minimum.toString()} ${sizing.unit}`; } return `For lille: forventede ${origin} havde ${adj} ${issue2.minimum.toString()}`; } case "invalid_format": { const _issue = issue2; if (_issue.format === "starts_with") return `Ugyldig streng: skal starte med "${_issue.prefix}"`; if (_issue.format === "ends_with") return `Ugyldig streng: skal ende med "${_issue.suffix}"`; if (_issue.format === "includes") return `Ugyldig streng: skal indeholde "${_issue.includes}"`; if (_issue.format === "regex") return `Ugyldig streng: skal matche m\xF8nsteret ${_issue.pattern}`; return `Ugyldig ${FormatDictionary[_issue.format] ?? issue2.format}`; } case "not_multiple_of": return `Ugyldigt tal: skal v\xE6re deleligt med ${issue2.divisor}`; case "unrecognized_keys": return `${issue2.keys.length > 1 ? "Ukendte n\xF8gler" : "Ukendt n\xF8gle"}: ${joinValues(issue2.keys, ", ")}`; case "invalid_key": return `Ugyldig n\xF8gle i ${issue2.origin}`; case "invalid_union": return "Ugyldigt input: matcher ingen af de tilladte typer"; case "invalid_element": return `Ugyldig v\xE6rdi i ${issue2.origin}`; default: return `Ugyldigt input`; } }; }; function da_default() { return { localeError: error9() }; } // ../../../../node_modules/zod/v4/locales/de.js var error10 = () => { const Sizable = { string: { unit: "Zeichen", verb: "zu haben" }, file: { unit: "Bytes", verb: "zu haben" }, array: { unit: "Elemente", verb: "zu haben" }, set: { unit: "Elemente", verb: "zu haben" }, map: { unit: "Elemente", verb: "zu haben" } }; function getSizing(origin) { return Sizable[origin] ?? null; } const FormatDictionary = { regex: "Eingabe", email: "E-Mail-Adresse", url: "URL", emoji: "Emoji", uuid: "UUID", uuidv4: "UUIDv4", uuidv6: "UUIDv6", nanoid: "nanoid", guid: "GUID", cuid: "cuid", cuid2: "cuid2", ulid: "ULID", xid: "XID", ksuid: "KSUID", datetime: "ISO-Datum und -Uhrzeit", date: "ISO-Datum", time: "ISO-Uhrzeit", duration: "ISO-Dauer", ipv4: "IPv4-Adresse", ipv6: "IPv6-Adresse", mac: "MAC-Adresse", cidrv4: "IPv4-Bereich", cidrv6: "IPv6-Bereich", base64: "Base64-codierter String", base64url: "Base64-URL-codierter String", json_string: "JSON-String", e164: "E.164-Nummer", credit_card: "Kreditkartennummer", currency_code: "W\xE4hrungscode", iban: "IBAN", jwt: "JWT", template_literal: "Eingabe" }; const TypeDictionary = { nan: "NaN", number: "Zahl", array: "Array" }; return (issue2) => { switch (issue2.code) { case "invalid_type": { const expected = TypeDictionary[issue2.expected] ?? issue2.expected; const receivedType = parsedType(issue2.input); const received = TypeDictionary[receivedType] ?? receivedType; if (/^[A-Z]/.test(issue2.expected)) { return `Ung\xFCltige Eingabe: erwartet instanceof ${issue2.expected}, erhalten ${received}`; } return `Ung\xFCltige Eingabe: erwartet ${expected}, erhalten ${received}`; } case "invalid_value": if (issue2.values.length === 1) return `Ung\xFCltige Eingabe: erwartet ${stringifyPrimitive(issue2.values[0])}`; return `Ung\xFCltige Option: erwartet eine von ${joinValues(issue2.values, "|")}`; case "too_big": { const adj = issue2.inclusive ? "<=" : "<"; const sizing = getSizing(issue2.origin); if (sizing) return `Zu gro\xDF: erwartet, dass ${issue2.origin ?? "Wert"} ${adj}${issue2.maximum.toString()} ${sizing.unit ?? "Elemente"} hat`; return `Zu gro\xDF: erwartet, dass ${issue2.origin ?? "Wert"} ${adj}${issue2.maximum.toString()} ist`; } case "too_small": { const adj = issue2.inclusive ? ">=" : ">"; const sizing = getSizing(issue2.origin); if (sizing) { return `Zu klein: erwartet, dass ${issue2.origin} ${adj}${issue2.minimum.toString()} ${sizing.unit} hat`; } return `Zu klein: erwartet, dass ${issue2.origin} ${adj}${issue2.minimum.toString()} ist`; } case "invalid_format": { const _issue = issue2; if (_issue.format === "starts_with") return `Ung\xFCltiger String: muss mit "${_issue.prefix}" beginnen`; if (_issue.format === "ends_with") return `Ung\xFCltiger String: muss mit "${_issue.suffix}" enden`; if (_issue.format === "includes") return `Ung\xFCltiger String: muss "${_issue.includes}" enthalten`; if (_issue.format === "regex") return `Ung\xFCltiger String: muss dem Muster ${_issue.pattern} entsprechen`; return `Ung\xFCltig: ${FormatDictionary[_issue.format] ?? issue2.format}`; } case "not_multiple_of": return `Ung\xFCltige Zahl: muss ein Vielfaches von ${issue2.divisor} sein`; case "unrecognized_keys": return `${issue2.keys.length > 1 ? "Unbekannte Schl\xFCssel" : "Unbekannter Schl\xFCssel"}: ${joinValues(issue2.keys, ", ")}`; case "invalid_key": return `Ung\xFCltiger Schl\xFCssel in ${issue2.origin}`; case "invalid_union": return "Ung\xFCltige Eingabe"; case "invalid_element": return `Ung\xFCltiger Wert in ${issue2.origin}`; default: return `Ung\xFCltige Eingabe`; } }; }; function de_default() { return { localeError: error10() }; } // ../../../../node_modules/zod/v4/locales/el.js var error11 = () => { const Sizable = { string: { unit: "\u03C7\u03B1\u03C1\u03B1\u03BA\u03C4\u03AE\u03C1\u03B5\u03C2", verb: "\u03BD\u03B1 \u03AD\u03C7\u03B5\u03B9" }, file: { unit: "bytes", verb: "\u03BD\u03B1 \u03AD\u03C7\u03B5\u03B9" }, array: { unit: "\u03C3\u03C4\u03BF\u03B9\u03C7\u03B5\u03AF\u03B1", verb: "\u03BD\u03B1 \u03AD\u03C7\u03B5\u03B9" }, set: { unit: "\u03C3\u03C4\u03BF\u03B9\u03C7\u03B5\u03AF\u03B1", verb: "\u03BD\u03B1 \u03AD\u03C7\u03B5\u03B9" }, map: { unit: "\u03BA\u03B1\u03C4\u03B1\u03C7\u03C9\u03C1\u03AE\u03C3\u03B5\u03B9\u03C2", verb: "\u03BD\u03B1 \u03AD\u03C7\u03B5\u03B9" } }; function getSizing(origin) { return Sizable[origin] ?? null; } const FormatDictionary = { regex: "\u03B5\u03AF\u03C3\u03BF\u03B4\u03BF\u03C2", email: "\u03B4\u03B9\u03B5\u03CD\u03B8\u03C5\u03BD\u03C3\u03B7 email", url: "URL", emoji: "emoji", uuid: "UUID", uuidv4: "UUIDv4", uuidv6: "UUIDv6", nanoid: "nanoid", guid: "GUID", cuid: "cuid", cuid2: "cuid2", ulid: "ULID", xid: "XID", ksuid: "KSUID", datetime: "ISO \u03B7\u03BC\u03B5\u03C1\u03BF\u03BC\u03B7\u03BD\u03AF\u03B1 \u03BA\u03B1\u03B9 \u03CE\u03C1\u03B1", date: "ISO \u03B7\u03BC\u03B5\u03C1\u03BF\u03BC\u03B7\u03BD\u03AF\u03B1", time: "ISO \u03CE\u03C1\u03B1", duration: "ISO \u03B4\u03B9\u03AC\u03C1\u03BA\u03B5\u03B9\u03B1", ipv4: "\u03B4\u03B9\u03B5\u03CD\u03B8\u03C5\u03BD\u03C3\u03B7 IPv4", ipv6: "\u03B4\u03B9\u03B5\u03CD\u03B8\u03C5\u03BD\u03C3\u03B7 IPv6", mac: "\u03B4\u03B9\u03B5\u03CD\u03B8\u03C5\u03BD\u03C3\u03B7 MAC", cidrv4: "\u03B5\u03CD\u03C1\u03BF\u03C2 IPv4", cidrv6: "\u03B5\u03CD\u03C1\u03BF\u03C2 IPv6", base64: "\u03C3\u03C5\u03BC\u03B2\u03BF\u03BB\u03BF\u03C3\u03B5\u03B9\u03C1\u03AC \u03BA\u03C9\u03B4\u03B9\u03BA\u03BF\u03C0\u03BF\u03B9\u03B7\u03BC\u03AD\u03BD\u03B7 \u03C3\u03B5 base64", base64url: "\u03C3\u03C5\u03BC\u03B2\u03BF\u03BB\u03BF\u03C3\u03B5\u03B9\u03C1\u03AC \u03BA\u03C9\u03B4\u03B9\u03BA\u03BF\u03C0\u03BF\u03B9\u03B7\u03BC\u03AD\u03BD\u03B7 \u03C3\u03B5 base64url", json_string: "\u03C3\u03C5\u03BC\u03B2\u03BF\u03BB\u03BF\u03C3\u03B5\u03B9\u03C1\u03AC JSON", e164: "\u03B1\u03C1\u03B9\u03B8\u03BC\u03CC\u03C2 E.164", credit_card: "\u03B1\u03C1\u03B9\u03B8\u03BC\u03CC\u03C2 \u03C0\u03B9\u03C3\u03C4\u03C9\u03C4\u03B9\u03BA\u03AE\u03C2 \u03BA\u03AC\u03C1\u03C4\u03B1\u03C2", currency_code: "\u03BA\u03C9\u03B4\u03B9\u03BA\u03CC\u03C2 \u03BD\u03BF\u03BC\u03AF\u03C3\u03BC\u03B1\u03C4\u03BF\u03C2", iban: "IBAN", jwt: "JWT", template_literal: "\u03B5\u03AF\u03C3\u03BF\u03B4\u03BF\u03C2" }; const TypeDictionary = { nan: "NaN" }; return (issue2) => { switch (issue2.code) { case "invalid_type": { const expected = TypeDictionary[issue2.expected] ?? issue2.expected; const receivedType = parsedType(issue2.input); const received = TypeDictionary[receivedType] ?? receivedType; if (typeof issue2.expected === "string" && /^[A-Z]/.test(issue2.expected)) { return `\u039C\u03B7 \u03AD\u03B3\u03BA\u03C5\u03C1\u03B7 \u03B5\u03AF\u03C3\u03BF\u03B4\u03BF\u03C2: \u03B1\u03BD\u03B1\u03BC\u03B5\u03BD\u03CC\u03C4\u03B1\u03BD instanceof ${issue2.expected}, \u03BB\u03AE\u03C6\u03B8\u03B7\u03BA\u03B5 ${received}`; } return `\u039C\u03B7 \u03AD\u03B3\u03BA\u03C5\u03C1\u03B7 \u03B5\u03AF\u03C3\u03BF\u03B4\u03BF\u03C2: \u03B1\u03BD\u03B1\u03BC\u03B5\u03BD\u03CC\u03C4\u03B1\u03BD ${expected}, \u03BB\u03AE\u03C6\u03B8\u03B7\u03BA\u03B5 ${received}`; } case "invalid_value": if (issue2.values.length === 1) return `\u039C\u03B7 \u03AD\u03B3\u03BA\u03C5\u03C1\u03B7 \u03B5\u03AF\u03C3\u03BF\u03B4\u03BF\u03C2: \u03B1\u03BD\u03B1\u03BC\u03B5\u03BD\u03CC\u03C4\u03B1\u03BD ${stringifyPrimitive(issue2.values[0])}`; return `\u039C\u03B7 \u03AD\u03B3\u03BA\u03C5\u03C1\u03B7 \u03B5\u03C0\u03B9\u03BB\u03BF\u03B3\u03AE: \u03B1\u03BD\u03B1\u03BC\u03B5\u03BD\u03CC\u03C4\u03B1\u03BD \u03AD\u03BD\u03B1 \u03B1\u03C0\u03CC ${joinValues(issue2.values, "|")}`; case "too_big": { const adj = issue2.inclusive ? "<=" : "<"; const sizing = getSizing(issue2.origin); if (sizing) return `\u03A0\u03BF\u03BB\u03CD \u03BC\u03B5\u03B3\u03AC\u03BB\u03BF: \u03B1\u03BD\u03B1\u03BC\u03B5\u03BD\u03CC\u03C4\u03B1\u03BD ${issue2.origin ?? "\u03C4\u03B9\u03BC\u03AE"} \u03BD\u03B1 \u03AD\u03C7\u03B5\u03B9 ${adj}${issue2.maximum.toString()} ${sizing.unit ?? "\u03C3\u03C4\u03BF\u03B9\u03C7\u03B5\u03AF\u03B1"}`; return `\u03A0\u03BF\u03BB\u03CD \u03BC\u03B5\u03B3\u03AC\u03BB\u03BF: \u03B1\u03BD\u03B1\u03BC\u03B5\u03BD\u03CC\u03C4\u03B1\u03BD ${issue2.origin ?? "\u03C4\u03B9\u03BC\u03AE"} \u03BD\u03B1 \u03B5\u03AF\u03BD\u03B1\u03B9 ${adj}${issue2.maximum.toString()}`; } case "too_small": { const adj = issue2.inclusive ? ">=" : ">"; const sizing = getSizing(issue2.origin); if (sizing) { return `\u03A0\u03BF\u03BB\u03CD \u03BC\u03B9\u03BA\u03C1\u03CC: \u03B1\u03BD\u03B1\u03BC\u03B5\u03BD\u03CC\u03C4\u03B1\u03BD ${issue2.origin} \u03BD\u03B1 \u03AD\u03C7\u03B5\u03B9 ${adj}${issue2.minimum.toString()} ${sizing.unit}`; } return `\u03A0\u03BF\u03BB\u03CD \u03BC\u03B9\u03BA\u03C1\u03CC: \u03B1\u03BD\u03B1\u03BC\u03B5\u03BD\u03CC\u03C4\u03B1\u03BD ${issue2.origin} \u03BD\u03B1 \u03B5\u03AF\u03BD\u03B1\u03B9 ${adj}${issue2.minimum.toString()}`; } case "invalid_format": { const _issue = issue2; if (_issue.format === "starts_with") { return `\u039C\u03B7 \u03AD\u03B3\u03BA\u03C5\u03C1\u03B7 \u03C3\u03C5\u03BC\u03B2\u03BF\u03BB\u03BF\u03C3\u03B5\u03B9\u03C1\u03AC: \u03C0\u03C1\u03AD\u03C0\u03B5\u03B9 \u03BD\u03B1 \u03BE\u03B5\u03BA\u03B9\u03BD\u03AC \u03BC\u03B5 "${_issue.prefix}"`; } if (_issue.format === "ends_with") return `\u039C\u03B7 \u03AD\u03B3\u03BA\u03C5\u03C1\u03B7 \u03C3\u03C5\u03BC\u03B2\u03BF\u03BB\u03BF\u03C3\u03B5\u03B9\u03C1\u03AC: \u03C0\u03C1\u03AD\u03C0\u03B5\u03B9 \u03BD\u03B1 \u03C4\u03B5\u03BB\u03B5\u03B9\u03CE\u03BD\u03B5\u03B9 \u03BC\u03B5 "${_issue.suffix}"`; if (_issue.format === "includes") return `\u039C\u03B7 \u03AD\u03B3\u03BA\u03C5\u03C1\u03B7 \u03C3\u03C5\u03BC\u03B2\u03BF\u03BB\u03BF\u03C3\u03B5\u03B9\u03C1\u03AC: \u03C0\u03C1\u03AD\u03C0\u03B5\u03B9 \u03BD\u03B1 \u03C0\u03B5\u03C1\u03B9\u03AD\u03C7\u03B5\u03B9 "${_issue.includes}"`; if (_issue.format === "regex") return `\u039C\u03B7 \u03AD\u03B3\u03BA\u03C5\u03C1\u03B7 \u03C3\u03C5\u03BC\u03B2\u03BF\u03BB\u03BF\u03C3\u03B5\u03B9\u03C1\u03AC: \u03C0\u03C1\u03AD\u03C0\u03B5\u03B9 \u03BD\u03B1 \u03C4\u03B1\u03B9\u03C1\u03B9\u03AC\u03B6\u03B5\u03B9 \u03BC\u03B5 \u03C4\u03BF \u03BC\u03BF\u03C4\u03AF\u03B2\u03BF ${_issue.pattern}`; return `\u039C\u03B7 \u03AD\u03B3\u03BA\u03C5\u03C1\u03BF: ${FormatDictionary[_issue.format] ?? issue2.format}`; } case "not_multiple_of": return `\u039C\u03B7 \u03AD\u03B3\u03BA\u03C5\u03C1\u03BF\u03C2 \u03B1\u03C1\u03B9\u03B8\u03BC\u03CC\u03C2: \u03C0\u03C1\u03AD\u03C0\u03B5\u03B9 \u03BD\u03B1 \u03B5\u03AF\u03BD\u03B1\u03B9 \u03C0\u03BF\u03BB\u03BB\u03B1\u03C0\u03BB\u03AC\u03C3\u03B9\u03BF \u03C4\u03BF\u03C5 ${issue2.divisor}`; case "unrecognized_keys": return `\u0386\u03B3\u03BD\u03C9\u03C3\u03C4${issue2.keys.length > 1 ? "\u03B1" : "\u03BF"} \u03BA\u03BB\u03B5\u03B9\u03B4${issue2.keys.length > 1 ? "\u03B9\u03AC" : "\u03AF"}: ${joinValues(issue2.keys, ", ")}`; case "invalid_key": return `\u039C\u03B7 \u03AD\u03B3\u03BA\u03C5\u03C1\u03BF \u03BA\u03BB\u03B5\u03B9\u03B4\u03AF \u03C3\u03C4\u03BF ${issue2.origin}`; case "invalid_union": return "\u039C\u03B7 \u03AD\u03B3\u03BA\u03C5\u03C1\u03B7 \u03B5\u03AF\u03C3\u03BF\u03B4\u03BF\u03C2"; case "invalid_element": return `\u039C\u03B7 \u03AD\u03B3\u03BA\u03C5\u03C1\u03B7 \u03C4\u03B9\u03BC\u03AE \u03C3\u03C4\u03BF ${issue2.origin}`; default: return `\u039C\u03B7 \u03AD\u03B3\u03BA\u03C5\u03C1\u03B7 \u03B5\u03AF\u03C3\u03BF\u03B4\u03BF\u03C2`; } }; }; function el_default() { return { localeError: error11() }; } // ../../../../node_modules/zod/v4/locales/en.js var error12 = () => { const Sizable = { string: { unit: "characters", verb: "to have" }, file: { unit: "bytes", verb: "to have" }, array: { unit: "items", verb: "to have" }, set: { unit: "items", verb: "to have" }, map: { unit: "entries", verb: "to have" } }; function getSizing(origin) { return Sizable[origin] ?? null; } const FormatDictionary = { regex: "input", email: "email address", url: "URL", emoji: "emoji", uuid: "UUID", uuidv4: "UUIDv4", uuidv6: "UUIDv6", nanoid: "nanoid", guid: "GUID", cuid: "cuid", cuid2: "cuid2", ulid: "ULID", xid: "XID", ksuid: "KSUID", datetime: "ISO datetime", date: "ISO date", time: "ISO time", duration: "ISO duration", ipv4: "IPv4 address", ipv6: "IPv6 address", mac: "MAC address", cidrv4: "IPv4 range", cidrv6: "IPv6 range", base64: "base64-encoded string", base64url: "base64url-encoded string", json_string: "JSON string", e164: "E.164 number", currency_code: "currency code", credit_card: "credit card number", iban: "IBAN", jwt: "JWT", template_literal: "input" }; const TypeDictionary = { // Compatibility: "nan" -> "NaN" for display nan: "NaN" // All other type names omitted - they fall back to raw values via ?? operator }; function getTypeName(type, input2) { if (type === "number" && typeof input2 === "number" && !Number.isFinite(input2)) { return String(input2); } return TypeDictionary[type] ?? type; } return (issue2) => { switch (issue2.code) { case "invalid_type": { const expected = getTypeName(issue2.expected); const receivedType = parsedType(issue2.input); const received = getTypeName(receivedType, issue2.input); return `Invalid input: expected ${expected}, received ${received}`; } case "invalid_value": if (issue2.values.length === 1) return `Invalid input: expected ${stringifyPrimitive(issue2.values[0])}`; return `Invalid option: expected one of ${joinValues(issue2.values, "|")}`; case "too_big": { const adj = issue2.exact ? "exactly " : issue2.inclusive ? "<=" : "<"; const sizing = getSizing(issue2.origin); if (sizing) return `Too big: expected ${issue2.origin ?? "value"} to have ${adj}${issue2.maximum.toString()} ${sizing.unit ?? "elements"}`; return `Too big: expected ${issue2.origin ?? "value"} to be ${adj}${issue2.maximum.toString()}`; } case "too_small": { const adj = issue2.exact ? "exactly " : issue2.inclusive ? ">=" : ">"; const sizing = getSizing(issue2.origin); if (sizing) { return `Too small: expected ${issue2.origin} to have ${adj}${issue2.minimum.toString()} ${sizing.unit}`; } return `Too small: expected ${issue2.origin} to be ${adj}${issue2.minimum.toString()}`; } case "invalid_format": { const _issue = issue2; if (_issue.format === "starts_with") { return `Invalid string: must start with "${_issue.prefix}"`; } if (_issue.format === "ends_with") return `Invalid string: must end with "${_issue.suffix}"`; if (_issue.format === "includes") return `Invalid string: must include "${_issue.includes}"`; if (_issue.format === "regex") return `Invalid string: must match pattern ${_issue.pattern}`; return `Invalid ${FormatDictionary[_issue.format] ?? issue2.format}`; } case "not_multiple_of": return `Invalid number: must be a multiple of ${issue2.divisor}`; case "unrecognized_keys": return `Unrecognized key${issue2.keys.length > 1 ? "s" : ""}: ${joinValues(issue2.keys, ", ")}`; case "invalid_key": return `Invalid key in ${issue2.origin}`; case "invalid_union": if (issue2.options && Array.isArray(issue2.options) && issue2.options.length > 0) { const opts = issue2.options.map((o) => `'${o}'`).join(" | "); return `Invalid discriminator value. Expected ${opts}`; } if (issue2.inclusive === false) { return "Invalid input: more than one option matched"; } return "Invalid input"; case "invalid_element": return `Invalid value in ${issue2.origin}`; default: return `Invalid input`; } }; }; function en_default() { return { localeError: error12() }; } // ../../../../node_modules/zod/v4/locales/eo.js var error13 = () => { const Sizable = { string: { unit: "karaktrojn", verb: "havi" }, file: { unit: "bajtojn", verb: "havi" }, array: { unit: "elementojn", verb: "havi" }, set: { unit: "elementojn", verb: "havi" }, map: { unit: "elementojn", verb: "havi" } }; function getSizing(origin) { return Sizable[origin] ?? null; } const FormatDictionary = { regex: "enigo", email: "retadreso", url: "URL", emoji: "emo\u011Dio", uuid: "UUID", uuidv4: "UUIDv4", uuidv6: "UUIDv6", nanoid: "nanoid", guid: "GUID", cuid: "cuid", cuid2: "cuid2", ulid: "ULID", xid: "XID", ksuid: "KSUID", datetime: "ISO-datotempo", date: "ISO-dato", time: "ISO-tempo", duration: "ISO-da\u016Dro", ipv4: "IPv4-adreso", ipv6: "IPv6-adreso", mac: "MAC-adreso", cidrv4: "IPv4-rango", cidrv6: "IPv6-rango", base64: "64-ume kodita karaktraro", base64url: "URL-64-ume kodita karaktraro", json_string: "JSON-karaktraro", e164: "E.164-nombro", credit_card: "kreditkarta numero", currency_code: "valuta kodo", iban: "IBAN", jwt: "JWT", template_literal: "enigo" }; const TypeDictionary = { nan: "NaN", number: "nombro", array: "tabelo", null: "senvalora" }; return (issue2) => { switch (issue2.code) { case "invalid_type": { const expected = TypeDictionary[issue2.expected] ?? issue2.expected; const receivedType = parsedType(issue2.input); const received = TypeDictionary[receivedType] ?? receivedType; if (/^[A-Z]/.test(issue2.expected)) { return `Nevalida enigo: atendi\u011Dis instanceof ${issue2.expected}, ricevi\u011Dis ${received}`; } return `Nevalida enigo: atendi\u011Dis ${expected}, ricevi\u011Dis ${received}`; } case "invalid_value": if (issue2.values.length === 1) return `Nevalida enigo: atendi\u011Dis ${stringifyPrimitive(issue2.values[0])}`; return `Nevalida opcio: atendi\u011Dis unu el ${joinValues(issue2.values, "|")}`; case "too_big": { const adj = issue2.inclusive ? "<=" : "<"; const sizing = getSizing(issue2.origin); if (sizing) return `Tro granda: atendi\u011Dis ke ${issue2.origin ?? "valoro"} havu ${adj}${issue2.maximum.toString()} ${sizing.unit ?? "elementojn"}`; return `Tro granda: atendi\u011Dis ke ${issue2.origin ?? "valoro"} havu ${adj}${issue2.maximum.toString()}`; } case "too_small": { const adj = issue2.inclusive ? ">=" : ">"; const sizing = getSizing(issue2.origin); if (sizing) { return `Tro malgranda: atendi\u011Dis ke ${issue2.origin} havu ${adj}${issue2.minimum.toString()} ${sizing.unit}`; } return `Tro malgranda: atendi\u011Dis ke ${issue2.origin} estu ${adj}${issue2.minimum.toString()}`; } case "invalid_format": { const _issue = issue2; if (_issue.format === "starts_with") return `Nevalida karaktraro: devas komenci\u011Di per "${_issue.prefix}"`; if (_issue.format === "ends_with") return `Nevalida karaktraro: devas fini\u011Di per "${_issue.suffix}"`; if (_issue.format === "includes") return `Nevalida karaktraro: devas inkluzivi "${_issue.includes}"`; if (_issue.format === "regex") return `Nevalida karaktraro: devas kongrui kun la modelo ${_issue.pattern}`; return `Nevalida ${FormatDictionary[_issue.format] ?? issue2.format}`; } case "not_multiple_of": return `Nevalida nombro: devas esti oblo de ${issue2.divisor}`; case "unrecognized_keys": return `Nekonata${issue2.keys.length > 1 ? "j" : ""} \u015Dlosilo${issue2.keys.length > 1 ? "j" : ""}: ${joinValues(issue2.keys, ", ")}`; case "invalid_key": return `Nevalida \u015Dlosilo en ${issue2.origin}`; case "invalid_union": return "Nevalida enigo"; case "invalid_element": return `Nevalida valoro en ${issue2.origin}`; default: return `Nevalida enigo`; } }; }; function eo_default() { return { localeError: error13() }; } // ../../../../node_modules/zod/v4/locales/es.js var error14 = () => { const Sizable = { string: { unit: "caracteres", verb: "tener" }, file: { unit: "bytes", verb: "tener" }, array: { unit: "elementos", verb: "tener" }, set: { unit: "elementos", verb: "tener" } }; function getSizing(origin) { return Sizable[origin] ?? null; } const FormatDictionary = { regex: "entrada", email: "direcci\xF3n de correo electr\xF3nico", url: "URL", emoji: "emoji", uuid: "UUID", uuidv4: "UUIDv4", uuidv6: "UUIDv6", nanoid: "nanoid", guid: "GUID", cuid: "cuid", cuid2: "cuid2", ulid: "ULID", xid: "XID", ksuid: "KSUID", datetime: "fecha y hora ISO", date: "fecha ISO", time: "hora ISO", duration: "duraci\xF3n ISO", ipv4: "direcci\xF3n IPv4", ipv6: "direcci\xF3n IPv6", mac: "direcci\xF3n MAC", cidrv4: "rango IPv4", cidrv6: "rango IPv6", base64: "cadena codificada en base64", base64url: "URL codificada en base64", json_string: "cadena JSON", e164: "n\xFAmero E.164", credit_card: "n\xFAmero de tarjeta de cr\xE9dito", currency_code: "c\xF3digo de moneda", iban: "IBAN", jwt: "JWT", template_literal: "entrada" }; const TypeDictionary = { nan: "NaN", string: "texto", number: "n\xFAmero", boolean: "booleano", array: "arreglo", object: "objeto", set: "conjunto", file: "archivo", date: "fecha", bigint: "n\xFAmero grande", symbol: "s\xEDmbolo", undefined: "indefinido", null: "nulo", function: "funci\xF3n", map: "mapa", record: "registro", tuple: "tupla", enum: "enumeraci\xF3n", union: "uni\xF3n", literal: "literal", promise: "promesa", void: "vac\xEDo", never: "nunca", unknown: "desconocido", any: "cualquiera" }; return (issue2) => { switch (issue2.code) { case "invalid_type": { const expected = TypeDictionary[issue2.expected] ?? issue2.expected; const receivedType = parsedType(issue2.input); const received = TypeDictionary[receivedType] ?? receivedType; if (/^[A-Z]/.test(issue2.expected)) { return `Entrada inv\xE1lida: se esperaba instanceof ${issue2.expected}, recibido ${received}`; } return `Entrada inv\xE1lida: se esperaba ${expected}, recibido ${received}`; } case "invalid_value": if (issue2.values.length === 1) return `Entrada inv\xE1lida: se esperaba ${stringifyPrimitive(issue2.values[0])}`; return `Opci\xF3n inv\xE1lida: se esperaba una de ${joinValues(issue2.values, "|")}`; case "too_big": { const adj = issue2.inclusive ? "<=" : "<"; const sizing = getSizing(issue2.origin); const origin = TypeDictionary[issue2.origin] ?? issue2.origin; if (sizing) return `Demasiado grande: se esperaba que ${origin ?? "valor"} tuviera ${adj}${issue2.maximum.toString()} ${sizing.unit ?? "elementos"}`; return `Demasiado grande: se esperaba que ${origin ?? "valor"} fuera ${adj}${issue2.maximum.toString()}`; } case "too_small": { const adj = issue2.inclusive ? ">=" : ">"; const sizing = getSizing(issue2.origin); const origin = TypeDictionary[issue2.origin] ?? issue2.origin; if (sizing) { return `Demasiado peque\xF1o: se esperaba que ${origin} tuviera ${adj}${issue2.minimum.toString()} ${sizing.unit}`; } return `Demasiado peque\xF1o: se esperaba que ${origin} fuera ${adj}${issue2.minimum.toString()}`; } case "invalid_format": { const _issue = issue2; if (_issue.format === "starts_with") return `Cadena inv\xE1lida: debe comenzar con "${_issue.prefix}"`; if (_issue.format === "ends_with") return `Cadena inv\xE1lida: debe terminar en "${_issue.suffix}"`; if (_issue.format === "includes") return `Cadena inv\xE1lida: debe incluir "${_issue.includes}"`; if (_issue.format === "regex") return `Cadena inv\xE1lida: debe coincidir con el patr\xF3n ${_issue.pattern}`; return `Inv\xE1lido ${FormatDictionary[_issue.format] ?? issue2.format}`; } case "not_multiple_of": return `N\xFAmero inv\xE1lido: debe ser m\xFAltiplo de ${issue2.divisor}`; case "unrecognized_keys": return `Llave${issue2.keys.length > 1 ? "s" : ""} desconocida${issue2.keys.length > 1 ? "s" : ""}: ${joinValues(issue2.keys, ", ")}`; case "invalid_key": return `Llave inv\xE1lida en ${TypeDictionary[issue2.origin] ?? issue2.origin}`; case "invalid_union": return "Entrada inv\xE1lida"; case "invalid_element": return `Valor inv\xE1lido en ${TypeDictionary[issue2.origin] ?? issue2.origin}`; default: return `Entrada inv\xE1lida`; } }; }; function es_default() { return { localeError: error14() }; } // ../../../../node_modules/zod/v4/locales/fa.js var error15 = () => { const Sizable = { string: { unit: "\u06A9\u0627\u0631\u0627\u06A9\u062A\u0631", verb: "\u062F\u0627\u0634\u062A\u0647 \u0628\u0627\u0634\u062F" }, file: { unit: "\u0628\u0627\u06CC\u062A", verb: "\u062F\u0627\u0634\u062A\u0647 \u0628\u0627\u0634\u062F" }, array: { unit: "\u0622\u06CC\u062A\u0645", verb: "\u062F\u0627\u0634\u062A\u0647 \u0628\u0627\u0634\u062F" }, set: { unit: "\u0622\u06CC\u062A\u0645", verb: "\u062F\u0627\u0634\u062A\u0647 \u0628\u0627\u0634\u062F" }, map: { unit: "\u0622\u06CC\u062A\u0645", verb: "\u062F\u0627\u0634\u062A\u0647 \u0628\u0627\u0634\u062F" } }; function getSizing(origin) { return Sizable[origin] ?? null; } const FormatDictionary = { regex: "\u0648\u0631\u0648\u062F\u06CC", email: "\u0622\u062F\u0631\u0633 \u0627\u06CC\u0645\u06CC\u0644", url: "URL", emoji: "\u0627\u06CC\u0645\u0648\u062C\u06CC", uuid: "UUID", uuidv4: "UUIDv4", uuidv6: "UUIDv6", nanoid: "nanoid", guid: "GUID", cuid: "cuid", cuid2: "cuid2", ulid: "ULID", xid: "XID", ksuid: "KSUID", datetime: "\u062A\u0627\u0631\u06CC\u062E \u0648 \u0632\u0645\u0627\u0646 \u0627\u06CC\u0632\u0648", date: "\u062A\u0627\u0631\u06CC\u062E \u0627\u06CC\u0632\u0648", time: "\u0632\u0645\u0627\u0646 \u0627\u06CC\u0632\u0648", duration: "\u0645\u062F\u062A \u0632\u0645\u0627\u0646 \u0627\u06CC\u0632\u0648", ipv4: "IPv4 \u0622\u062F\u0631\u0633", ipv6: "IPv6 \u0622\u062F\u0631\u0633", mac: "MAC \u0622\u062F\u0631\u0633", cidrv4: "IPv4 \u062F\u0627\u0645\u0646\u0647", cidrv6: "IPv6 \u062F\u0627\u0645\u0646\u0647", base64: "base64-encoded \u0631\u0634\u062A\u0647", base64url: "base64url-encoded \u0631\u0634\u062A\u0647", json_string: "JSON \u0631\u0634\u062A\u0647", e164: "E.164 \u0639\u062F\u062F", credit_card: "\u0634\u0645\u0627\u0631\u0647 \u06A9\u0627\u0631\u062A \u0627\u0639\u062A\u0628\u0627\u0631\u06CC", currency_code: "\u06A9\u062F \u0627\u0631\u0632", iban: "IBAN", jwt: "JWT", template_literal: "\u0648\u0631\u0648\u062F\u06CC" }; const TypeDictionary = { nan: "NaN", number: "\u0639\u062F\u062F", array: "\u0622\u0631\u0627\u06CC\u0647" }; return (issue2) => { switch (issue2.code) { case "invalid_type": { const expected = TypeDictionary[issue2.expected] ?? issue2.expected; const receivedType = parsedType(issue2.input); const received = TypeDictionary[receivedType] ?? receivedType; if (/^[A-Z]/.test(issue2.expected)) { return `\u0648\u0631\u0648\u062F\u06CC \u0646\u0627\u0645\u0639\u062A\u0628\u0631: \u0645\u06CC\u200C\u0628\u0627\u06CC\u0633\u062A instanceof ${issue2.expected} \u0645\u06CC\u200C\u0628\u0648\u062F\u060C ${received} \u062F\u0631\u06CC\u0627\u0641\u062A \u0634\u062F`; } return `\u0648\u0631\u0648\u062F\u06CC \u0646\u0627\u0645\u0639\u062A\u0628\u0631: \u0645\u06CC\u200C\u0628\u0627\u06CC\u0633\u062A ${expected} \u0645\u06CC\u200C\u0628\u0648\u062F\u060C ${received} \u062F\u0631\u06CC\u0627\u0641\u062A \u0634\u062F`; } case "invalid_value": if (issue2.values.length === 1) { return `\u0648\u0631\u0648\u062F\u06CC \u0646\u0627\u0645\u0639\u062A\u0628\u0631: \u0645\u06CC\u200C\u0628\u0627\u06CC\u0633\u062A ${stringifyPrimitive(issue2.values[0])} \u0645\u06CC\u200C\u0628\u0648\u062F`; } return `\u06AF\u0632\u06CC\u0646\u0647 \u0646\u0627\u0645\u0639\u062A\u0628\u0631: \u0645\u06CC\u200C\u0628\u0627\u06CC\u0633\u062A \u06CC\u06A9\u06CC \u0627\u0632 ${joinValues(issue2.values, "|")} \u0645\u06CC\u200C\u0628\u0648\u062F`; case "too_big": { const adj = issue2.inclusive ? "<=" : "<"; const sizing = getSizing(issue2.origin); if (sizing) { return `\u062E\u06CC\u0644\u06CC \u0628\u0632\u0631\u06AF: ${issue2.origin ?? "\u0645\u0642\u062F\u0627\u0631"} \u0628\u0627\u06CC\u062F ${adj}${issue2.maximum.toString()} ${sizing.unit ?? "\u0639\u0646\u0635\u0631"} \u0628\u0627\u0634\u062F`; } return `\u062E\u06CC\u0644\u06CC \u0628\u0632\u0631\u06AF: ${issue2.origin ?? "\u0645\u0642\u062F\u0627\u0631"} \u0628\u0627\u06CC\u062F ${adj}${issue2.maximum.toString()} \u0628\u0627\u0634\u062F`; } case "too_small": { const adj = issue2.inclusive ? ">=" : ">"; const sizing = getSizing(issue2.origin); if (sizing) { return `\u062E\u06CC\u0644\u06CC \u06A9\u0648\u0686\u06A9: ${issue2.origin} \u0628\u0627\u06CC\u062F ${adj}${issue2.minimum.toString()} ${sizing.unit} \u0628\u0627\u0634\u062F`; } return `\u062E\u06CC\u0644\u06CC \u06A9\u0648\u0686\u06A9: ${issue2.origin} \u0628\u0627\u06CC\u062F ${adj}${issue2.minimum.toString()} \u0628\u0627\u0634\u062F`; } case "invalid_format": { const _issue = issue2; if (_issue.format === "starts_with") { return `\u0631\u0634\u062A\u0647 \u0646\u0627\u0645\u0639\u062A\u0628\u0631: \u0628\u0627\u06CC\u062F \u0628\u0627 "${_issue.prefix}" \u0634\u0631\u0648\u0639 \u0634\u0648\u062F`; } if (_issue.format === "ends_with") { return `\u0631\u0634\u062A\u0647 \u0646\u0627\u0645\u0639\u062A\u0628\u0631: \u0628\u0627\u06CC\u062F \u0628\u0627 "${_issue.suffix}" \u062A\u0645\u0627\u0645 \u0634\u0648\u062F`; } if (_issue.format === "includes") { return `\u0631\u0634\u062A\u0647 \u0646\u0627\u0645\u0639\u062A\u0628\u0631: \u0628\u0627\u06CC\u062F \u0634\u0627\u0645\u0644 "${_issue.includes}" \u0628\u0627\u0634\u062F`; } if (_issue.format === "regex") { return `\u0631\u0634\u062A\u0647 \u0646\u0627\u0645\u0639\u062A\u0628\u0631: \u0628\u0627\u06CC\u062F \u0628\u0627 \u0627\u0644\u06AF\u0648\u06CC ${_issue.pattern} \u0645\u0637\u0627\u0628\u0642\u062A \u062F\u0627\u0634\u062A\u0647 \u0628\u0627\u0634\u062F`; } return `${FormatDictionary[_issue.format] ?? issue2.format} \u0646\u0627\u0645\u0639\u062A\u0628\u0631`; } case "not_multiple_of": return `\u0639\u062F\u062F \u0646\u0627\u0645\u0639\u062A\u0628\u0631: \u0628\u0627\u06CC\u062F \u0645\u0636\u0631\u0628 ${issue2.divisor} \u0628\u0627\u0634\u062F`; case "unrecognized_keys": return `\u06A9\u0644\u06CC\u062F${issue2.keys.length > 1 ? "\u0647\u0627\u06CC" : ""} \u0646\u0627\u0634\u0646\u0627\u0633: ${joinValues(issue2.keys, ", ")}`; case "invalid_key": return `\u06A9\u0644\u06CC\u062F \u0646\u0627\u0634\u0646\u0627\u0633 \u062F\u0631 ${issue2.origin}`; case "invalid_union": return `\u0648\u0631\u0648\u062F\u06CC \u0646\u0627\u0645\u0639\u062A\u0628\u0631`; case "invalid_element": return `\u0645\u0642\u062F\u0627\u0631 \u0646\u0627\u0645\u0639\u062A\u0628\u0631 \u062F\u0631 ${issue2.origin}`; default: return `\u0648\u0631\u0648\u062F\u06CC \u0646\u0627\u0645\u0639\u062A\u0628\u0631`; } }; }; function fa_default() { return { localeError: error15() }; } // ../../../../node_modules/zod/v4/locales/fi.js var error16 = () => { const Sizable = { string: { unit: "merkki\xE4", subject: "merkkijonon" }, file: { unit: "tavua", subject: "tiedoston" }, array: { unit: "alkiota", subject: "listan" }, set: { unit: "alkiota", subject: "joukon" }, map: { unit: "alkiota", subject: "kuvauksen" }, number: { unit: "", subject: "luvun" }, bigint: { unit: "", subject: "suuren kokonaisluvun" }, int: { unit: "", subject: "kokonaisluvun" }, date: { unit: "", subject: "p\xE4iv\xE4m\xE4\xE4r\xE4n" } }; function getSizing(origin) { return Sizable[origin] ?? null; } const FormatDictionary = { regex: "s\xE4\xE4nn\xF6llinen lauseke", email: "s\xE4hk\xF6postiosoite", url: "URL-osoite", emoji: "emoji", uuid: "UUID", uuidv4: "UUIDv4", uuidv6: "UUIDv6", nanoid: "nanoid", guid: "GUID", cuid: "cuid", cuid2: "cuid2", ulid: "ULID", xid: "XID", ksuid: "KSUID", datetime: "ISO-aikaleima", date: "ISO-p\xE4iv\xE4m\xE4\xE4r\xE4", time: "ISO-aika", duration: "ISO-kesto", ipv4: "IPv4-osoite", ipv6: "IPv6-osoite", mac: "MAC-osoite", cidrv4: "IPv4-alue", cidrv6: "IPv6-alue", base64: "base64-koodattu merkkijono", base64url: "base64url-koodattu merkkijono", json_string: "JSON-merkkijono", e164: "E.164-luku", credit_card: "luottokortin numero", currency_code: "valuuttakoodi", iban: "IBAN", jwt: "JWT", template_literal: "templaattimerkkijono" }; const TypeDictionary = { nan: "NaN" }; return (issue2) => { switch (issue2.code) { case "invalid_type": { const expected = TypeDictionary[issue2.expected] ?? issue2.expected; const receivedType = parsedType(issue2.input); const received = TypeDictionary[receivedType] ?? receivedType; if (/^[A-Z]/.test(issue2.expected)) { return `Virheellinen tyyppi: odotettiin instanceof ${issue2.expected}, oli ${received}`; } return `Virheellinen tyyppi: odotettiin ${expected}, oli ${received}`; } case "invalid_value": if (issue2.values.length === 1) return `Virheellinen sy\xF6te: t\xE4ytyy olla ${stringifyPrimitive(issue2.values[0])}`; return `Virheellinen valinta: t\xE4ytyy olla yksi seuraavista: ${joinValues(issue2.values, "|")}`; case "too_big": { const adj = issue2.inclusive ? "<=" : "<"; const sizing = getSizing(issue2.origin); if (sizing) { return `Liian suuri: ${sizing.subject} t\xE4ytyy olla ${adj}${issue2.maximum.toString()} ${sizing.unit}`.trim(); } return `Liian suuri: arvon t\xE4ytyy olla ${adj}${issue2.maximum.toString()}`; } case "too_small": { const adj = issue2.inclusive ? ">=" : ">"; const sizing = getSizing(issue2.origin); if (sizing) { return `Liian pieni: ${sizing.subject} t\xE4ytyy olla ${adj}${issue2.minimum.toString()} ${sizing.unit}`.trim(); } return `Liian pieni: arvon t\xE4ytyy olla ${adj}${issue2.minimum.toString()}`; } case "invalid_format": { const _issue = issue2; if (_issue.format === "starts_with") return `Virheellinen sy\xF6te: t\xE4ytyy alkaa "${_issue.prefix}"`; if (_issue.format === "ends_with") return `Virheellinen sy\xF6te: t\xE4ytyy loppua "${_issue.suffix}"`; if (_issue.format === "includes") return `Virheellinen sy\xF6te: t\xE4ytyy sis\xE4lt\xE4\xE4 "${_issue.includes}"`; if (_issue.format === "regex") { return `Virheellinen sy\xF6te: t\xE4ytyy vastata s\xE4\xE4nn\xF6llist\xE4 lauseketta ${_issue.pattern}`; } return `Virheellinen ${FormatDictionary[_issue.format] ?? issue2.format}`; } case "not_multiple_of": return `Virheellinen luku: t\xE4ytyy olla luvun ${issue2.divisor} monikerta`; case "unrecognized_keys": return `${issue2.keys.length > 1 ? "Tuntemattomat avaimet" : "Tuntematon avain"}: ${joinValues(issue2.keys, ", ")}`; case "invalid_key": return "Virheellinen avain tietueessa"; case "invalid_union": return "Virheellinen unioni"; case "invalid_element": return "Virheellinen arvo joukossa"; default: return `Virheellinen sy\xF6te`; } }; }; function fi_default() { return { localeError: error16() }; } // ../../../../node_modules/zod/v4/locales/fr.js var error17 = () => { const Sizable = { string: { unit: "caract\xE8res", verb: "avoir" }, file: { unit: "octets", verb: "avoir" }, array: { unit: "\xE9l\xE9ments", verb: "avoir" }, set: { unit: "\xE9l\xE9ments", verb: "avoir" } }; function getSizing(origin) { return Sizable[origin] ?? null; } const FormatDictionary = { regex: "expression r\xE9guli\xE8re", email: "adresse e-mail", url: "URL", emoji: "emoji", uuid: "UUID", uuidv4: "UUIDv4", uuidv6: "UUIDv6", nanoid: "nanoid", guid: "GUID", cuid: "cuid", cuid2: "cuid2", ulid: "ULID", xid: "XID", ksuid: "KSUID", datetime: "date et heure ISO", date: "date ISO", time: "heure ISO", duration: "dur\xE9e ISO", ipv4: "adresse IPv4", ipv6: "adresse IPv6", mac: "adresse MAC", cidrv4: "plage IPv4", cidrv6: "plage IPv6", base64: "cha\xEEne de caract\xE8res encod\xE9e en base64", base64url: "cha\xEEne de caract\xE8res encod\xE9e en base64url", json_string: "cha\xEEne de caract\xE8res JSON", e164: "num\xE9ro au format E.164", credit_card: "num\xE9ro de carte de cr\xE9dit", currency_code: "code de devise", iban: "IBAN", jwt: "JWT", template_literal: "entr\xE9e" }; const TypeDictionary = { string: "cha\xEEne de caract\xE8res", number: "nombre", int: "entier", boolean: "bool\xE9en", bigint: "grand entier", symbol: "symbole", undefined: "ind\xE9fini", null: "null", never: "jamais", void: "vide", date: "date", array: "tableau", object: "objet", tuple: "tuple", record: "record", map: "map", set: "ensemble", file: "fichier", nonoptional: "non optionnel", nan: "NaN", function: "fonction" }; return (issue2) => { switch (issue2.code) { case "invalid_type": { const expected = TypeDictionary[issue2.expected] ?? issue2.expected; const receivedType = parsedType(issue2.input); const received = TypeDictionary[receivedType] ?? receivedType; if (/^[A-Z]/.test(issue2.expected)) { return `Entr\xE9e invalide : instance de ${issue2.expected} attendu, ${received} re\xE7u`; } return `Entr\xE9e invalide : ${expected} attendu, ${received} re\xE7u`; } case "invalid_value": if (issue2.values.length === 1) return `Entr\xE9e invalide : ${stringifyPrimitive(issue2.values[0])} attendu`; return `Option invalide : une valeur parmi ${joinValues(issue2.values, "|")} attendue`; case "too_big": { const adj = issue2.inclusive ? "<=" : "<"; const sizing = getSizing(issue2.origin); if (sizing) return `Trop grand : ${TypeDictionary[issue2.origin] ?? "valeur"} doit ${sizing.verb} ${adj}${issue2.maximum.toString()} ${sizing.unit ?? "\xE9l\xE9ment(s)"}`; return `Trop grand : ${TypeDictionary[issue2.origin] ?? "valeur"} doit \xEAtre ${adj}${issue2.maximum.toString()}`; } case "too_small": { const adj = issue2.inclusive ? ">=" : ">"; const sizing = getSizing(issue2.origin); if (sizing) return `Trop petit : ${TypeDictionary[issue2.origin] ?? "valeur"} doit ${sizing.verb} ${adj}${issue2.minimum.toString()} ${sizing.unit}`; return `Trop petit : ${TypeDictionary[issue2.origin] ?? "valeur"} doit \xEAtre ${adj}${issue2.minimum.toString()}`; } case "invalid_format": { const _issue = issue2; if (_issue.format === "starts_with") return `Cha\xEEne de caract\xE8res invalide : doit commencer par "${_issue.prefix}"`; if (_issue.format === "ends_with") return `Cha\xEEne de caract\xE8res invalide : doit se terminer par "${_issue.suffix}"`; if (_issue.format === "includes") return `Cha\xEEne de caract\xE8res invalide : doit inclure "${_issue.includes}"`; if (_issue.format === "regex") return `Cha\xEEne de caract\xE8res invalide : doit correspondre au motif ${_issue.pattern}`; return `${FormatDictionary[_issue.format] ?? issue2.format} invalide`; } case "not_multiple_of": return `Nombre invalide : doit \xEAtre un multiple de ${issue2.divisor}`; case "unrecognized_keys": return `Cl\xE9${issue2.keys.length > 1 ? "s" : ""} non reconnue${issue2.keys.length > 1 ? "s" : ""} : ${joinValues(issue2.keys, ", ")}`; case "invalid_key": return `Cl\xE9 invalide dans ${issue2.origin}`; case "invalid_union": return "Entr\xE9e invalide"; case "invalid_element": return `Valeur invalide dans ${issue2.origin}`; default: return `Entr\xE9e invalide`; } }; }; function fr_default() { return { localeError: error17() }; } // ../../../../node_modules/zod/v4/locales/fr-CA.js var error18 = () => { const Sizable = { string: { unit: "caract\xE8res", verb: "avoir" }, file: { unit: "octets", verb: "avoir" }, array: { unit: "\xE9l\xE9ments", verb: "avoir" }, set: { unit: "\xE9l\xE9ments", verb: "avoir" }, map: { unit: "\xE9l\xE9ments", verb: "avoir" } }; function getSizing(origin) { return Sizable[origin] ?? null; } const FormatDictionary = { regex: "entr\xE9e", email: "adresse courriel", url: "URL", emoji: "emoji", uuid: "UUID", uuidv4: "UUIDv4", uuidv6: "UUIDv6", nanoid: "nanoid", guid: "GUID", cuid: "cuid", cuid2: "cuid2", ulid: "ULID", xid: "XID", ksuid: "KSUID", datetime: "date-heure ISO", date: "date ISO", time: "heure ISO", duration: "dur\xE9e ISO", ipv4: "adresse IPv4", ipv6: "adresse IPv6", mac: "adresse MAC", cidrv4: "plage IPv4", cidrv6: "plage IPv6", base64: "cha\xEEne encod\xE9e en base64", base64url: "cha\xEEne encod\xE9e en base64url", json_string: "cha\xEEne JSON", e164: "num\xE9ro E.164", credit_card: "num\xE9ro de carte de cr\xE9dit", currency_code: "code de devise", iban: "IBAN", jwt: "JWT", template_literal: "entr\xE9e" }; const TypeDictionary = { nan: "NaN" }; return (issue2) => { switch (issue2.code) { case "invalid_type": { const expected = TypeDictionary[issue2.expected] ?? issue2.expected; const receivedType = parsedType(issue2.input); const received = TypeDictionary[receivedType] ?? receivedType; if (/^[A-Z]/.test(issue2.expected)) { return `Entr\xE9e invalide : attendu instanceof ${issue2.expected}, re\xE7u ${received}`; } return `Entr\xE9e invalide : attendu ${expected}, re\xE7u ${received}`; } case "invalid_value": if (issue2.values.length === 1) return `Entr\xE9e invalide : attendu ${stringifyPrimitive(issue2.values[0])}`; return `Option invalide : attendu l'une des valeurs suivantes ${joinValues(issue2.values, "|")}`; case "too_big": { const adj = issue2.inclusive ? "\u2264" : "<"; const sizing = getSizing(issue2.origin); if (sizing) return `Trop grand : attendu que ${issue2.origin ?? "la valeur"} ait ${adj}${issue2.maximum.toString()} ${sizing.unit}`; return `Trop grand : attendu que ${issue2.origin ?? "la valeur"} soit ${adj}${issue2.maximum.toString()}`; } case "too_small": { const adj = issue2.inclusive ? "\u2265" : ">"; const sizing = getSizing(issue2.origin); if (sizing) { return `Trop petit : attendu que ${issue2.origin} ait ${adj}${issue2.minimum.toString()} ${sizing.unit}`; } return `Trop petit : attendu que ${issue2.origin} soit ${adj}${issue2.minimum.toString()}`; } case "invalid_format": { const _issue = issue2; if (_issue.format === "starts_with") { return `Cha\xEEne invalide : doit commencer par "${_issue.prefix}"`; } if (_issue.format === "ends_with") return `Cha\xEEne invalide : doit se terminer par "${_issue.suffix}"`; if (_issue.format === "includes") return `Cha\xEEne invalide : doit inclure "${_issue.includes}"`; if (_issue.format === "regex") return `Cha\xEEne invalide : doit correspondre au motif ${_issue.pattern}`; return `${FormatDictionary[_issue.format] ?? issue2.format} invalide`; } case "not_multiple_of": return `Nombre invalide : doit \xEAtre un multiple de ${issue2.divisor}`; case "unrecognized_keys": return `Cl\xE9${issue2.keys.length > 1 ? "s" : ""} non reconnue${issue2.keys.length > 1 ? "s" : ""} : ${joinValues(issue2.keys, ", ")}`; case "invalid_key": return `Cl\xE9 invalide dans ${issue2.origin}`; case "invalid_union": return "Entr\xE9e invalide"; case "invalid_element": return `Valeur invalide dans ${issue2.origin}`; default: return `Entr\xE9e invalide`; } }; }; function fr_CA_default() { return { localeError: error18() }; } // ../../../../node_modules/zod/v4/locales/gu.js var error19 = () => { const Sizable = { string: { unit: "\u0A85\u0A95\u0ACD\u0AB7\u0AB0", verb: "\u0AB9\u0ACB\u0AB5\u0ABE \u0A9C\u0ACB\u0A88\u0A8F" }, file: { unit: "\u0AAC\u0ABE\u0AAF\u0A9F", verb: "\u0AB9\u0ACB\u0AB5\u0ABE \u0A9C\u0ACB\u0A88\u0A8F" }, array: { unit: "\u0A86\u0A87\u0A9F\u0AAE", verb: "\u0AB9\u0ACB\u0AB5\u0ABE \u0A9C\u0ACB\u0A88\u0A8F" }, set: { unit: "\u0A86\u0A87\u0A9F\u0AAE", verb: "\u0AB9\u0ACB\u0AB5\u0ABE \u0A9C\u0ACB\u0A88\u0A8F" }, map: { unit: "\u0A8F\u0AA8\u0ACD\u0A9F\u0ACD\u0AB0\u0AC0", verb: "\u0AB9\u0ACB\u0AB5\u0ABE \u0A9C\u0ACB\u0A88\u0A8F" } }; function getSizing(origin) { return Sizable[origin] ?? null; } const FormatDictionary = { regex: "\u0A87\u0AA8\u0AAA\u0AC1\u0A9F", email: "\u0A88\u0AAE\u0AC7\u0A87\u0AB2 \u0A8F\u0AA1\u0ACD\u0AB0\u0AC7\u0AB8", url: "URL", emoji: "\u0A87\u0AAE\u0ACB\u0A9C\u0AC0", uuid: "UUID", uuidv4: "UUIDv4", uuidv6: "UUIDv6", nanoid: "nanoid", guid: "GUID", cuid: "cuid", cuid2: "cuid2", ulid: "ULID", xid: "XID", ksuid: "KSUID", datetime: "ISO \u0AA4\u0ABE\u0AB0\u0AC0\u0A96 \u0A85\u0AA8\u0AC7 \u0AB8\u0AAE\u0AAF", date: "ISO \u0AA4\u0ABE\u0AB0\u0AC0\u0A96", time: "ISO \u0AB8\u0AAE\u0AAF", duration: "ISO \u0A85\u0AB5\u0AA7\u0ABF", ipv4: "IPv4 \u0A8F\u0AA1\u0ACD\u0AB0\u0AC7\u0AB8", ipv6: "IPv6 \u0A8F\u0AA1\u0ACD\u0AB0\u0AC7\u0AB8", mac: "MAC \u0A8F\u0AA1\u0ACD\u0AB0\u0AC7\u0AB8", cidrv4: "IPv4 \u0AB6\u0ACD\u0AB0\u0AC7\u0AA3\u0AC0", cidrv6: "IPv6 \u0AB6\u0ACD\u0AB0\u0AC7\u0AA3\u0AC0", base64: "base64-\u0A8F\u0AA8\u0ACD\u0A95\u0ACB\u0AA1\u0AC7\u0AA1 \u0AB8\u0ACD\u0A9F\u0ACD\u0AB0\u0ABF\u0A82\u0A97", base64url: "base64url-\u0A8F\u0AA8\u0ACD\u0A95\u0ACB\u0AA1\u0AC7\u0AA1 \u0AB8\u0ACD\u0A9F\u0ACD\u0AB0\u0ABF\u0A82\u0A97", json_string: "JSON \u0AB8\u0ACD\u0A9F\u0ACD\u0AB0\u0ABF\u0A82\u0A97", e164: "E.164 \u0AA8\u0A82\u0AAC\u0AB0", credit_card: "\u0A95\u0ACD\u0AB0\u0AC7\u0AA1\u0ABF\u0A9F \u0A95\u0ABE\u0AB0\u0ACD\u0AA1 \u0AA8\u0A82\u0AAC\u0AB0", currency_code: "\u0A9A\u0AB2\u0AA3 \u0A95\u0ACB\u0AA1", iban: "IBAN", jwt: "JWT", template_literal: "\u0A87\u0AA8\u0AAA\u0AC1\u0A9F" }; const TypeDictionary = { nan: "NaN" }; return (issue2) => { switch (issue2.code) { case "invalid_type": { const expected = TypeDictionary[issue2.expected] ?? issue2.expected; const receivedType = parsedType(issue2.input); const received = TypeDictionary[receivedType] ?? receivedType; return `\u0A85\u0AAE\u0ABE\u0AA8\u0ACD\u0AAF \u0A87\u0AA8\u0AAA\u0AC1\u0A9F: \u0A85\u0AAA\u0AC7\u0A95\u0ACD\u0AB7\u0ABF\u0AA4 ${expected}, \u0AAA\u0ACD\u0AB0\u0ABE\u0AAA\u0ACD\u0AA4 ${received}`; } case "invalid_value": if (issue2.values.length === 1) return `\u0A85\u0AAE\u0ABE\u0AA8\u0ACD\u0AAF \u0A87\u0AA8\u0AAA\u0AC1\u0A9F: \u0A85\u0AAA\u0AC7\u0A95\u0ACD\u0AB7\u0ABF\u0AA4 ${stringifyPrimitive(issue2.values[0])}`; return `\u0A85\u0AAE\u0ABE\u0AA8\u0ACD\u0AAF \u0AB5\u0ABF\u0A95\u0AB2\u0ACD\u0AAA: ${joinValues(issue2.values, " | ")} \u0AAE\u0ABE\u0AA7\u0ACD\u0AAF\u0AAE\u0AA5\u0AC0 \u0A8F\u0A95 \u0A85\u0AAA\u0AC7\u0A95\u0ACD\u0AB7\u0ABF\u0AA4`; case "too_big": { const adj = issue2.inclusive ? "<=" : "<"; const sizing = getSizing(issue2.origin); if (sizing) return `\u0A96\u0AC2\u0AAC \u0AAE\u0ACB\u0A9F\u0AC1\u0A82: ${issue2.origin ?? "\u0AAE\u0AC2\u0AB2\u0ACD\u0AAF"} ${adj}${issue2.maximum.toString()} ${sizing.unit ?? "\u0A8F\u0AB2\u0ABF\u0AAE\u0AC7\u0AA8\u0ACD\u0A9F"} \u0AB9\u0ACB\u0AB5\u0ABE \u0A9C\u0ACB\u0A88\u0A8F`; return `\u0A96\u0AC2\u0AAC \u0AAE\u0ACB\u0A9F\u0AC1\u0A82: ${issue2.origin ?? "\u0AAE\u0AC2\u0AB2\u0ACD\u0AAF"} ${adj}${issue2.maximum.toString()} \u0AB9\u0ACB\u0AB5\u0AC1\u0A82 \u0A9C\u0ACB\u0A88\u0A8F`; } case "too_small": { const adj = issue2.inclusive ? ">=" : ">"; const sizing = getSizing(issue2.origin); if (sizing) { return `\u0A96\u0AC2\u0AAC \u0AA8\u0ABE\u0AA8\u0AC1\u0A82: ${issue2.origin} ${adj}${issue2.minimum.toString()} ${sizing.unit} \u0AB9\u0ACB\u0AB5\u0ABE \u0A9C\u0ACB\u0A88\u0A8F`; } return `\u0A96\u0AC2\u0AAC \u0AA8\u0ABE\u0AA8\u0AC1\u0A82: ${issue2.origin} ${adj}${issue2.minimum.toString()} \u0AB9\u0ACB\u0AB5\u0AC1\u0A82 \u0A9C\u0ACB\u0A88\u0A8F`; } case "invalid_format": { const _issue = issue2; if (_issue.format === "starts_with") { return `\u0A85\u0AAE\u0ABE\u0AA8\u0ACD\u0AAF \u0AB8\u0ACD\u0A9F\u0ACD\u0AB0\u0ABF\u0A82\u0A97: "${_issue.prefix}" \u0AA5\u0AC0 \u0AB6\u0AB0\u0AC2 \u0AA5\u0AB5\u0AC1\u0A82 \u0A9C\u0ACB\u0A88\u0A8F`; } if (_issue.format === "ends_with") return `\u0A85\u0AAE\u0ABE\u0AA8\u0ACD\u0AAF \u0AB8\u0ACD\u0A9F\u0ACD\u0AB0\u0ABF\u0A82\u0A97: "${_issue.suffix}" \u0AAA\u0AB0 \u0AB8\u0AAE\u0ABE\u0AAA\u0ACD\u0AA4 \u0AA5\u0AB5\u0AC1\u0A82 \u0A9C\u0ACB\u0A88\u0A8F`; if (_issue.format === "includes") return `\u0A85\u0AAE\u0ABE\u0AA8\u0ACD\u0AAF \u0AB8\u0ACD\u0A9F\u0ACD\u0AB0\u0ABF\u0A82\u0A97: "${_issue.includes}" \u0AB6\u0ABE\u0AAE\u0AC7\u0AB2 \u0AB9\u0ACB\u0AB5\u0AC1\u0A82 \u0A9C\u0ACB\u0A88\u0A8F`; if (_issue.format === "regex") return `\u0A85\u0AAE\u0ABE\u0AA8\u0ACD\u0AAF \u0AB8\u0ACD\u0A9F\u0ACD\u0AB0\u0ABF\u0A82\u0A97: \u0AAA\u0AC7\u0A9F\u0AB0\u0ACD\u0AA8 ${_issue.pattern} \u0AB8\u0ABE\u0AA5\u0AC7 \u0AAE\u0AC7\u0AB3 \u0A96\u0ABE\u0AB5\u0AC1\u0A82 \u0A9C\u0ACB\u0A88\u0A8F`; return `\u0A85\u0AAE\u0ABE\u0AA8\u0ACD\u0AAF ${FormatDictionary[_issue.format] ?? issue2.format}`; } case "not_multiple_of": return `\u0A85\u0AAE\u0ABE\u0AA8\u0ACD\u0AAF \u0AA8\u0A82\u0AAC\u0AB0: ${issue2.divisor} \u0AA8\u0ACB \u0A97\u0AC1\u0AA3\u0ABE\u0A82\u0A95 \u0AB9\u0ACB\u0AB5\u0ACB \u0A9C\u0ACB\u0A88\u0A8F`; case "unrecognized_keys": return `\u0A93\u0AB3\u0A96\u0AC0 \u0AB6\u0A95\u0ABE\u0AA4\u0ABE \u0AA8\u0AB9\u0AC0\u0A82 \u0AA4\u0AC7 \u0A95\u0AC0${issue2.keys.length > 1 ? "\u0A93" : ""}: ${joinValues(issue2.keys, ", ")}`; case "invalid_key": return `${issue2.origin} \u0AAE\u0ABE\u0A82 \u0A85\u0AAE\u0ABE\u0AA8\u0ACD\u0AAF \u0A95\u0AC0`; case "invalid_union": if (issue2.options && Array.isArray(issue2.options) && issue2.options.length > 0) { const opts = issue2.options.map((o) => `'${o}'`).join(" | "); return `\u0A85\u0AAE\u0ABE\u0AA8\u0ACD\u0AAF \u0AA1\u0ABF\u0AB8\u0ACD\u0A95\u0ACD\u0AB0\u0ABF\u0AAE\u0ABF\u0AA8\u0AC7\u0A9F\u0AB0 \u0AAE\u0AC2\u0AB2\u0ACD\u0AAF. \u0A85\u0AAA\u0AC7\u0A95\u0ACD\u0AB7\u0ABF\u0AA4 ${opts}`; } return "\u0A85\u0AAE\u0ABE\u0AA8\u0ACD\u0AAF \u0A87\u0AA8\u0AAA\u0AC1\u0A9F"; case "invalid_element": return `${issue2.origin} \u0AAE\u0ABE\u0A82 \u0A85\u0AAE\u0ABE\u0AA8\u0ACD\u0AAF \u0AAE\u0AC2\u0AB2\u0ACD\u0AAF`; default: return "\u0A85\u0AAE\u0ABE\u0AA8\u0ACD\u0AAF \u0A87\u0AA8\u0AAA\u0AC1\u0A9F"; } }; }; function gu_default() { return { localeError: error19() }; } // ../../../../node_modules/zod/v4/locales/he.js var error20 = () => { const TypeNames = { string: { label: "\u05DE\u05D7\u05E8\u05D5\u05D6\u05EA", gender: "f" }, number: { label: "\u05DE\u05E1\u05E4\u05E8", gender: "m" }, boolean: { label: "\u05E2\u05E8\u05DA \u05D1\u05D5\u05DC\u05D9\u05D0\u05E0\u05D9", gender: "m" }, bigint: { label: "BigInt", gender: "m" }, date: { label: "\u05EA\u05D0\u05E8\u05D9\u05DA", gender: "m" }, array: { label: "\u05DE\u05E2\u05E8\u05DA", gender: "m" }, object: { label: "\u05D0\u05D5\u05D1\u05D9\u05D9\u05E7\u05D8", gender: "m" }, null: { label: "\u05E2\u05E8\u05DA \u05E8\u05D9\u05E7 (null)", gender: "m" }, undefined: { label: "\u05E2\u05E8\u05DA \u05DC\u05D0 \u05DE\u05D5\u05D2\u05D3\u05E8 (undefined)", gender: "m" }, symbol: { label: "\u05E1\u05D9\u05DE\u05D1\u05D5\u05DC (Symbol)", gender: "m" }, function: { label: "\u05E4\u05D5\u05E0\u05E7\u05E6\u05D9\u05D4", gender: "f" }, map: { label: "\u05DE\u05E4\u05D4 (Map)", gender: "f" }, set: { label: "\u05E7\u05D1\u05D5\u05E6\u05D4 (Set)", gender: "f" }, file: { label: "\u05E7\u05D5\u05D1\u05E5", gender: "m" }, promise: { label: "Promise", gender: "m" }, NaN: { label: "NaN", gender: "m" }, unknown: { label: "\u05E2\u05E8\u05DA \u05DC\u05D0 \u05D9\u05D3\u05D5\u05E2", gender: "m" }, value: { label: "\u05E2\u05E8\u05DA", gender: "m" } }; const Sizable = { string: { unit: "\u05EA\u05D5\u05D5\u05D9\u05DD", shortLabel: "\u05E7\u05E6\u05E8", longLabel: "\u05D0\u05E8\u05D5\u05DA" }, file: { unit: "\u05D1\u05D9\u05D9\u05D8\u05D9\u05DD", shortLabel: "\u05E7\u05D8\u05DF", longLabel: "\u05D2\u05D3\u05D5\u05DC" }, array: { unit: "\u05E4\u05E8\u05D9\u05D8\u05D9\u05DD", shortLabel: "\u05E7\u05D8\u05DF", longLabel: "\u05D2\u05D3\u05D5\u05DC" }, set: { unit: "\u05E4\u05E8\u05D9\u05D8\u05D9\u05DD", shortLabel: "\u05E7\u05D8\u05DF", longLabel: "\u05D2\u05D3\u05D5\u05DC" }, number: { unit: "", shortLabel: "\u05E7\u05D8\u05DF", longLabel: "\u05D2\u05D3\u05D5\u05DC" } // no unit }; const typeEntry = (t) => t ? TypeNames[t] : void 0; const typeLabel = (t) => { const e = typeEntry(t); if (e) return e.label; return t ?? TypeNames.unknown.label; }; const withDefinite = (t) => `\u05D4${typeLabel(t)}`; const verbFor = (t) => { const e = typeEntry(t); const gender = e?.gender ?? "m"; return gender === "f" ? "\u05E6\u05E8\u05D9\u05DB\u05D4 \u05DC\u05D4\u05D9\u05D5\u05EA" : "\u05E6\u05E8\u05D9\u05DA \u05DC\u05D4\u05D9\u05D5\u05EA"; }; const getSizing = (origin) => { if (!origin) return null; return Sizable[origin] ?? null; }; const FormatDictionary = { regex: { label: "\u05E7\u05DC\u05D8", gender: "m" }, email: { label: "\u05DB\u05EA\u05D5\u05D1\u05EA \u05D0\u05D9\u05DE\u05D9\u05D9\u05DC", gender: "f" }, url: { label: "\u05DB\u05EA\u05D5\u05D1\u05EA \u05E8\u05E9\u05EA", gender: "f" }, emoji: { label: "\u05D0\u05D9\u05DE\u05D5\u05D2'\u05D9", gender: "m" }, uuid: { label: "UUID", gender: "m" }, uuidv4: { label: "UUIDv4", gender: "m" }, uuidv6: { label: "UUIDv6", gender: "m" }, nanoid: { label: "nanoid", gender: "m" }, guid: { label: "GUID", gender: "m" }, cuid: { label: "cuid", gender: "m" }, cuid2: { label: "cuid2", gender: "m" }, ulid: { label: "ULID", gender: "m" }, xid: { label: "XID", gender: "m" }, ksuid: { label: "KSUID", gender: "m" }, datetime: { label: "\u05EA\u05D0\u05E8\u05D9\u05DA \u05D5\u05D6\u05DE\u05DF ISO", gender: "m" }, date: { label: "\u05EA\u05D0\u05E8\u05D9\u05DA ISO", gender: "m" }, time: { label: "\u05D6\u05DE\u05DF ISO", gender: "m" }, duration: { label: "\u05DE\u05E9\u05DA \u05D6\u05DE\u05DF ISO", gender: "m" }, ipv4: { label: "\u05DB\u05EA\u05D5\u05D1\u05EA IPv4", gender: "f" }, ipv6: { label: "\u05DB\u05EA\u05D5\u05D1\u05EA IPv6", gender: "f" }, mac: { label: "\u05DB\u05EA\u05D5\u05D1\u05EA MAC", gender: "f" }, cidrv4: { label: "\u05D8\u05D5\u05D5\u05D7 IPv4", gender: "m" }, cidrv6: { label: "\u05D8\u05D5\u05D5\u05D7 IPv6", gender: "m" }, base64: { label: "\u05DE\u05D7\u05E8\u05D5\u05D6\u05EA \u05D1\u05D1\u05E1\u05D9\u05E1 64", gender: "f" }, base64url: { label: "\u05DE\u05D7\u05E8\u05D5\u05D6\u05EA \u05D1\u05D1\u05E1\u05D9\u05E1 64 \u05DC\u05DB\u05EA\u05D5\u05D1\u05D5\u05EA \u05E8\u05E9\u05EA", gender: "f" }, json_string: { label: "\u05DE\u05D7\u05E8\u05D5\u05D6\u05EA JSON", gender: "f" }, e164: { label: "\u05DE\u05E1\u05E4\u05E8 E.164", gender: "m" }, credit_card: { label: "\u05DE\u05E1\u05E4\u05E8 \u05DB\u05E8\u05D8\u05D9\u05E1 \u05D0\u05E9\u05E8\u05D0\u05D9", gender: "m" }, currency_code: { label: "\u05E7\u05D5\u05D3 \u05DE\u05D8\u05D1\u05E2", gender: "m" }, iban: { label: "IBAN", gender: "m" }, jwt: { label: "JWT", gender: "m" }, template_literal: { label: "\u05E7\u05DC\u05D8", gender: "m" }, ends_with: { label: "\u05E7\u05DC\u05D8", gender: "m" }, includes: { label: "\u05E7\u05DC\u05D8", gender: "m" }, lowercase: { label: "\u05E7\u05DC\u05D8", gender: "m" }, starts_with: { label: "\u05E7\u05DC\u05D8", gender: "m" }, uppercase: { label: "\u05E7\u05DC\u05D8", gender: "m" } }; const TypeDictionary = { nan: "NaN" }; return (issue2) => { switch (issue2.code) { case "invalid_type": { const expectedKey = issue2.expected; const expected = TypeDictionary[expectedKey ?? ""] ?? typeLabel(expectedKey); const receivedType = parsedType(issue2.input); const received = TypeDictionary[receivedType] ?? TypeNames[receivedType]?.label ?? receivedType; if (/^[A-Z]/.test(issue2.expected)) { return `\u05E7\u05DC\u05D8 \u05DC\u05D0 \u05EA\u05E7\u05D9\u05DF: \u05E6\u05E8\u05D9\u05DA \u05DC\u05D4\u05D9\u05D5\u05EA instanceof ${issue2.expected}, \u05D4\u05EA\u05E7\u05D1\u05DC ${received}`; } return `\u05E7\u05DC\u05D8 \u05DC\u05D0 \u05EA\u05E7\u05D9\u05DF: \u05E6\u05E8\u05D9\u05DA \u05DC\u05D4\u05D9\u05D5\u05EA ${expected}, \u05D4\u05EA\u05E7\u05D1\u05DC ${received}`; } case "invalid_value": { if (issue2.values.length === 1) { return `\u05E2\u05E8\u05DA \u05DC\u05D0 \u05EA\u05E7\u05D9\u05DF: \u05D4\u05E2\u05E8\u05DA \u05D7\u05D9\u05D9\u05D1 \u05DC\u05D4\u05D9\u05D5\u05EA ${stringifyPrimitive(issue2.values[0])}`; } const stringified = issue2.values.map((v) => stringifyPrimitive(v)); if (issue2.values.length === 2) { return `\u05E2\u05E8\u05DA \u05DC\u05D0 \u05EA\u05E7\u05D9\u05DF: \u05D4\u05D0\u05E4\u05E9\u05E8\u05D5\u05D9\u05D5\u05EA \u05D4\u05DE\u05EA\u05D0\u05D9\u05DE\u05D5\u05EA \u05D4\u05DF ${stringified[0]} \u05D0\u05D5 ${stringified[1]}`; } const lastValue = stringified[stringified.length - 1]; const restValues = stringified.slice(0, -1).join(", "); return `\u05E2\u05E8\u05DA \u05DC\u05D0 \u05EA\u05E7\u05D9\u05DF: \u05D4\u05D0\u05E4\u05E9\u05E8\u05D5\u05D9\u05D5\u05EA \u05D4\u05DE\u05EA\u05D0\u05D9\u05DE\u05D5\u05EA \u05D4\u05DF ${restValues} \u05D0\u05D5 ${lastValue}`; } case "too_big": { const sizing = getSizing(issue2.origin); const subject = withDefinite(issue2.origin ?? "value"); if (issue2.origin === "string") { return `${sizing?.longLabel ?? "\u05D0\u05E8\u05D5\u05DA"} \u05DE\u05D3\u05D9: ${subject} \u05E6\u05E8\u05D9\u05DB\u05D4 \u05DC\u05D4\u05DB\u05D9\u05DC ${issue2.maximum.toString()} ${sizing?.unit ?? ""} ${issue2.inclusive ? "\u05D0\u05D5 \u05E4\u05D7\u05D5\u05EA" : "\u05DC\u05DB\u05DC \u05D4\u05D9\u05D5\u05EA\u05E8"}`.trim(); } if (issue2.origin === "number") { const comparison = issue2.inclusive ? `\u05E7\u05D8\u05DF \u05D0\u05D5 \u05E9\u05D5\u05D5\u05D4 \u05DC-${issue2.maximum}` : `\u05E7\u05D8\u05DF \u05DE-${issue2.maximum}`; return `\u05D2\u05D3\u05D5\u05DC \u05DE\u05D3\u05D9: ${subject} \u05E6\u05E8\u05D9\u05DA \u05DC\u05D4\u05D9\u05D5\u05EA ${comparison}`; } if (issue2.origin === "array" || issue2.origin === "set") { const verb = issue2.origin === "set" ? "\u05E6\u05E8\u05D9\u05DB\u05D4" : "\u05E6\u05E8\u05D9\u05DA"; const comparison = issue2.inclusive ? `${issue2.maximum} ${sizing?.unit ?? ""} \u05D0\u05D5 \u05E4\u05D7\u05D5\u05EA` : `\u05E4\u05D7\u05D5\u05EA \u05DE-${issue2.maximum} ${sizing?.unit ?? ""}`; return `\u05D2\u05D3\u05D5\u05DC \u05DE\u05D3\u05D9: ${subject} ${verb} \u05DC\u05D4\u05DB\u05D9\u05DC ${comparison}`.trim(); } const adj = issue2.inclusive ? "<=" : "<"; const be = verbFor(issue2.origin ?? "value"); if (sizing?.unit) { return `${sizing.longLabel} \u05DE\u05D3\u05D9: ${subject} ${be} ${adj}${issue2.maximum.toString()} ${sizing.unit}`; } return `${sizing?.longLabel ?? "\u05D2\u05D3\u05D5\u05DC"} \u05DE\u05D3\u05D9: ${subject} ${be} ${adj}${issue2.maximum.toString()}`; } case "too_small": { const sizing = getSizing(issue2.origin); const subject = withDefinite(issue2.origin ?? "value"); if (issue2.origin === "string") { return `${sizing?.shortLabel ?? "\u05E7\u05E6\u05E8"} \u05DE\u05D3\u05D9: ${subject} \u05E6\u05E8\u05D9\u05DB\u05D4 \u05DC\u05D4\u05DB\u05D9\u05DC ${issue2.minimum.toString()} ${sizing?.unit ?? ""} ${issue2.inclusive ? "\u05D0\u05D5 \u05D9\u05D5\u05EA\u05E8" : "\u05DC\u05E4\u05D7\u05D5\u05EA"}`.trim(); } if (issue2.origin === "number") { const comparison = issue2.inclusive ? `\u05D2\u05D3\u05D5\u05DC \u05D0\u05D5 \u05E9\u05D5\u05D5\u05D4 \u05DC-${issue2.minimum}` : `\u05D2\u05D3\u05D5\u05DC \u05DE-${issue2.minimum}`; return `\u05E7\u05D8\u05DF \u05DE\u05D3\u05D9: ${subject} \u05E6\u05E8\u05D9\u05DA \u05DC\u05D4\u05D9\u05D5\u05EA ${comparison}`; } if (issue2.origin === "array" || issue2.origin === "set") { const verb = issue2.origin === "set" ? "\u05E6\u05E8\u05D9\u05DB\u05D4" : "\u05E6\u05E8\u05D9\u05DA"; if (issue2.minimum === 1 && issue2.inclusive) { const singularPhrase = issue2.origin === "set" ? "\u05DC\u05E4\u05D7\u05D5\u05EA \u05E4\u05E8\u05D9\u05D8 \u05D0\u05D7\u05D3" : "\u05DC\u05E4\u05D7\u05D5\u05EA \u05E4\u05E8\u05D9\u05D8 \u05D0\u05D7\u05D3"; return `\u05E7\u05D8\u05DF \u05DE\u05D3\u05D9: ${subject} ${verb} \u05DC\u05D4\u05DB\u05D9\u05DC ${singularPhrase}`; } const comparison = issue2.inclusive ? `${issue2.minimum} ${sizing?.unit ?? ""} \u05D0\u05D5 \u05D9\u05D5\u05EA\u05E8` : `\u05D9\u05D5\u05EA\u05E8 \u05DE-${issue2.minimum} ${sizing?.unit ?? ""}`; return `\u05E7\u05D8\u05DF \u05DE\u05D3\u05D9: ${subject} ${verb} \u05DC\u05D4\u05DB\u05D9\u05DC ${comparison}`.trim(); } const adj = issue2.inclusive ? ">=" : ">"; const be = verbFor(issue2.origin ?? "value"); if (sizing?.unit) { return `${sizing.shortLabel} \u05DE\u05D3\u05D9: ${subject} ${be} ${adj}${issue2.minimum.toString()} ${sizing.unit}`; } return `${sizing?.shortLabel ?? "\u05E7\u05D8\u05DF"} \u05DE\u05D3\u05D9: ${subject} ${be} ${adj}${issue2.minimum.toString()}`; } case "invalid_format": { const _issue = issue2; if (_issue.format === "starts_with") return `\u05D4\u05DE\u05D7\u05E8\u05D5\u05D6\u05EA \u05D7\u05D9\u05D9\u05D1\u05EA \u05DC\u05D4\u05EA\u05D7\u05D9\u05DC \u05D1 "${_issue.prefix}"`; if (_issue.format === "ends_with") return `\u05D4\u05DE\u05D7\u05E8\u05D5\u05D6\u05EA \u05D7\u05D9\u05D9\u05D1\u05EA \u05DC\u05D4\u05E1\u05EA\u05D9\u05D9\u05DD \u05D1 "${_issue.suffix}"`; if (_issue.format === "includes") return `\u05D4\u05DE\u05D7\u05E8\u05D5\u05D6\u05EA \u05D7\u05D9\u05D9\u05D1\u05EA \u05DC\u05DB\u05DC\u05D5\u05DC "${_issue.includes}"`; if (_issue.format === "regex") return `\u05D4\u05DE\u05D7\u05E8\u05D5\u05D6\u05EA \u05D7\u05D9\u05D9\u05D1\u05EA \u05DC\u05D4\u05EA\u05D0\u05D9\u05DD \u05DC\u05EA\u05D1\u05E0\u05D9\u05EA ${_issue.pattern}`; const nounEntry = FormatDictionary[_issue.format]; const noun = nounEntry?.label ?? _issue.format; const gender = nounEntry?.gender ?? "m"; const adjective = gender === "f" ? "\u05EA\u05E7\u05D9\u05E0\u05D4" : "\u05EA\u05E7\u05D9\u05DF"; return `${noun} \u05DC\u05D0 ${adjective}`; } case "not_multiple_of": return `\u05DE\u05E1\u05E4\u05E8 \u05DC\u05D0 \u05EA\u05E7\u05D9\u05DF: \u05D7\u05D9\u05D9\u05D1 \u05DC\u05D4\u05D9\u05D5\u05EA \u05DE\u05DB\u05E4\u05DC\u05D4 \u05E9\u05DC ${issue2.divisor}`; case "unrecognized_keys": return `\u05DE\u05E4\u05EA\u05D7${issue2.keys.length > 1 ? "\u05D5\u05EA" : ""} \u05DC\u05D0 \u05DE\u05D6\u05D5\u05D4${issue2.keys.length > 1 ? "\u05D9\u05DD" : "\u05D4"}: ${joinValues(issue2.keys, ", ")}`; case "invalid_key": { return `\u05E9\u05D3\u05D4 \u05DC\u05D0 \u05EA\u05E7\u05D9\u05DF \u05D1\u05D0\u05D5\u05D1\u05D9\u05D9\u05E7\u05D8`; } case "invalid_union": return "\u05E7\u05DC\u05D8 \u05DC\u05D0 \u05EA\u05E7\u05D9\u05DF"; case "invalid_element": { const place = withDefinite(issue2.origin ?? "array"); return `\u05E2\u05E8\u05DA \u05DC\u05D0 \u05EA\u05E7\u05D9\u05DF \u05D1${place}`; } default: return `\u05E7\u05DC\u05D8 \u05DC\u05D0 \u05EA\u05E7\u05D9\u05DF`; } }; }; function he_default() { return { localeError: error20() }; } // ../../../../node_modules/zod/v4/locales/hi.js var error21 = () => { const Sizable = { string: { unit: "\u0905\u0915\u094D\u0937\u0930", verb: "\u0930\u0916\u0928\u0947 \u0915\u0947 \u0932\u093F\u090F" }, file: { unit: "\u092C\u093E\u0907\u091F\u094D\u0938", verb: "\u0930\u0916\u0928\u0947 \u0915\u0947 \u0932\u093F\u090F" }, array: { unit: "\u0924\u0924\u094D\u0935", verb: "\u0930\u0916\u0928\u0947 \u0915\u0947 \u0932\u093F\u090F" }, set: { unit: "\u0924\u0924\u094D\u0935", verb: "\u0930\u0916\u0928\u0947 \u0915\u0947 \u0932\u093F\u090F" }, map: { unit: "\u092A\u094D\u0930\u0935\u093F\u0937\u094D\u091F\u093F\u092F\u093E\u0901", verb: "\u0930\u0916\u0928\u0947 \u0915\u0947 \u0932\u093F\u090F" } }; function getSizing(origin) { return Sizable[origin] ?? null; } const FormatDictionary = { regex: "\u0907\u0928\u092A\u0941\u091F", email: "\u0908\u092E\u0947\u0932 \u092A\u0924\u093E", url: "URL", emoji: "\u0907\u092E\u094B\u091C\u0940", uuid: "UUID", uuidv4: "UUIDv4", uuidv6: "UUIDv6", nanoid: "nanoid", guid: "GUID", cuid: "cuid", cuid2: "cuid2", ulid: "ULID", xid: "XID", ksuid: "KSUID", datetime: "ISO \u0924\u093F\u0925\u093F \u0914\u0930 \u0938\u092E\u092F", date: "ISO \u0924\u093F\u0925\u093F", time: "ISO \u0938\u092E\u092F", duration: "ISO \u0905\u0935\u0927\u093F", ipv4: "IPv4 \u092A\u0924\u093E", ipv6: "IPv6 \u092A\u0924\u093E", mac: "MAC \u092A\u0924\u093E", cidrv4: "IPv4 \u0936\u094D\u0930\u0947\u0923\u0940", cidrv6: "IPv6 \u0936\u094D\u0930\u0947\u0923\u0940", base64: "Base64-\u090F\u0928\u094D\u0915\u094B\u0921\u0947\u0921 \u0938\u094D\u091F\u094D\u0930\u093F\u0902\u0917", base64url: "Base64URL-\u090F\u0928\u094D\u0915\u094B\u0921\u0947\u0921 \u0938\u094D\u091F\u094D\u0930\u093F\u0902\u0917", json_string: "JSON \u0938\u094D\u091F\u094D\u0930\u093F\u0902\u0917", e164: "E.164 \u0938\u0902\u0916\u094D\u092F\u093E", credit_card: "\u0915\u094D\u0930\u0947\u0921\u093F\u091F \u0915\u093E\u0930\u094D\u0921 \u0938\u0902\u0916\u094D\u092F\u093E", currency_code: "\u092E\u0941\u0926\u094D\u0930\u093E \u0915\u094B\u0921", iban: "IBAN", jwt: "JWT", template_literal: "\u0907\u0928\u092A\u0941\u091F" }; const TypeDictionary = { nan: "NaN" }; return (issue2) => { switch (issue2.code) { case "invalid_type": { const expected = TypeDictionary[issue2.expected] ?? issue2.expected; const receivedType = parsedType(issue2.input); const received = TypeDictionary[receivedType] ?? receivedType; return `\u0905\u092E\u093E\u0928\u094D\u092F \u0907\u0928\u092A\u0941\u091F: \u0905\u092A\u0947\u0915\u094D\u0937\u093F\u0924 ${expected}, \u092A\u094D\u0930\u093E\u092A\u094D\u0924 ${received}`; } case "invalid_value": if (issue2.values.length === 1) return `\u0905\u092E\u093E\u0928\u094D\u092F \u0907\u0928\u092A\u0941\u091F: \u0905\u092A\u0947\u0915\u094D\u0937\u093F\u0924 ${stringifyPrimitive(issue2.values[0])}`; return `\u0905\u092E\u093E\u0928\u094D\u092F \u0935\u093F\u0915\u0932\u094D\u092A: \u0905\u092A\u0947\u0915\u094D\u0937\u093F\u0924 \u092E\u093E\u0928\u094B\u0902 \u092E\u0947\u0902 \u0938\u0947 \u090F\u0915 ${joinValues(issue2.values, "|")}`; case "too_big": { const adj = issue2.inclusive ? "<=" : "<"; const sizing = getSizing(issue2.origin); if (sizing) return `\u092C\u0939\u0941\u0924 \u092C\u0921\u093C\u093E: \u0905\u092A\u0947\u0915\u094D\u0937\u093F\u0924 \u0925\u093E \u0915\u093F ${issue2.origin ?? "\u092E\u093E\u0928"} \u092E\u0947\u0902 ${adj}${issue2.maximum} ${sizing.unit} \u0939\u094B\u0902`; return `\u092C\u0939\u0941\u0924 \u092C\u0921\u093C\u093E: \u0905\u092A\u0947\u0915\u094D\u0937\u093F\u0924 \u0925\u093E \u0915\u093F ${issue2.origin ?? "\u092E\u093E\u0928"} ${adj}${issue2.maximum} \u0939\u094B`; } case "too_small": { const adj = issue2.inclusive ? ">=" : ">"; const sizing = getSizing(issue2.origin); if (sizing) return `\u092C\u0939\u0941\u0924 \u091B\u094B\u091F\u093E: \u0905\u092A\u0947\u0915\u094D\u0937\u093F\u0924 \u0925\u093E \u0915\u093F ${issue2.origin} \u092E\u0947\u0902 ${adj}${issue2.minimum} ${sizing.unit} \u0939\u094B\u0902`; return `\u092C\u0939\u0941\u0924 \u091B\u094B\u091F\u093E: \u0905\u092A\u0947\u0915\u094D\u0937\u093F\u0924 \u0925\u093E \u0915\u093F ${issue2.origin} ${adj}${issue2.minimum} \u0939\u094B`; } case "invalid_format": { const _issue = issue2; if (_issue.format === "starts_with") return `\u0905\u092E\u093E\u0928\u094D\u092F \u0938\u094D\u091F\u094D\u0930\u093F\u0902\u0917: "${_issue.prefix}" \u0938\u0947 \u0936\u0941\u0930\u0942 \u0939\u094B\u0928\u093E \u091A\u093E\u0939\u093F\u090F`; if (_issue.format === "ends_with") return `\u0905\u092E\u093E\u0928\u094D\u092F \u0938\u094D\u091F\u094D\u0930\u093F\u0902\u0917: "${_issue.suffix}" \u092A\u0930 \u0938\u092E\u093E\u092A\u094D\u0924 \u0939\u094B\u0928\u093E \u091A\u093E\u0939\u093F\u090F`; if (_issue.format === "includes") return `\u0905\u092E\u093E\u0928\u094D\u092F \u0938\u094D\u091F\u094D\u0930\u093F\u0902\u0917: \u0907\u0938\u092E\u0947\u0902 "${_issue.includes}" \u0936\u093E\u092E\u093F\u0932 \u0939\u094B\u0928\u093E \u091A\u093E\u0939\u093F\u090F`; if (_issue.format === "regex") return `\u0905\u092E\u093E\u0928\u094D\u092F \u0938\u094D\u091F\u094D\u0930\u093F\u0902\u0917: \u092A\u0948\u091F\u0930\u094D\u0928 ${_issue.pattern} \u0938\u0947 \u092E\u0947\u0932 \u0916\u093E\u0928\u093E \u091A\u093E\u0939\u093F\u090F`; return `\u0905\u092E\u093E\u0928\u094D\u092F ${FormatDictionary[_issue.format] ?? issue2.format}`; } case "not_multiple_of": return `\u0905\u092E\u093E\u0928\u094D\u092F \u0938\u0902\u0916\u094D\u092F\u093E: \u092F\u0939 ${issue2.divisor} \u0915\u093E \u0917\u0941\u0923\u091C \u0939\u094B\u0928\u093E \u091A\u093E\u0939\u093F\u090F`; case "unrecognized_keys": return `\u0905\u092A\u0930\u093F\u091A\u093F\u0924 \u0915\u0941\u0902\u091C\u0940${issue2.keys.length > 1 ? "\u092F\u093E\u0901" : ""}: ${joinValues(issue2.keys, ", ")}`; case "invalid_key": return `\u0905\u092E\u093E\u0928\u094D\u092F \u0915\u0941\u0902\u091C\u0940: ${issue2.origin} \u092E\u0947\u0902`; case "invalid_union": if (issue2.options && Array.isArray(issue2.options) && issue2.options.length > 0) { const opts = issue2.options.map((o) => `'${o}'`).join(" | "); return `\u0905\u092E\u093E\u0928\u094D\u092F \u0921\u093F\u0938\u094D\u0915\u094D\u0930\u093F\u092E\u093F\u0928\u0947\u091F\u0930 \u092E\u093E\u0928: \u0905\u092A\u0947\u0915\u094D\u0937\u093F\u0924 ${opts}`; } return "\u0905\u092E\u093E\u0928\u094D\u092F \u0907\u0928\u092A\u0941\u091F"; case "invalid_element": return `\u0905\u092E\u093E\u0928\u094D\u092F \u092E\u093E\u0928: ${issue2.origin} \u092E\u0947\u0902`; default: return `\u0905\u092E\u093E\u0928\u094D\u092F \u0907\u0928\u092A\u0941\u091F`; } }; }; function hi_default() { return { localeError: error21() }; } // ../../../../node_modules/zod/v4/locales/hr.js var error22 = () => { const Sizable = { string: { unit: "znakova", verb: "imati" }, file: { unit: "bajtova", verb: "imati" }, array: { unit: "stavki", verb: "imati" }, set: { unit: "stavki", verb: "imati" } }; function getSizing(origin) { return Sizable[origin] ?? null; } const FormatDictionary = { regex: "unos", email: "email adresa", url: "URL", emoji: "emoji", uuid: "UUID", uuidv4: "UUIDv4", uuidv6: "UUIDv6", nanoid: "nanoid", guid: "GUID", cuid: "cuid", cuid2: "cuid2", ulid: "ULID", xid: "XID", ksuid: "KSUID", datetime: "ISO datum i vrijeme", date: "ISO datum", time: "ISO vrijeme", duration: "ISO trajanje", ipv4: "IPv4 adresa", ipv6: "IPv6 adresa", mac: "MAC adresa", cidrv4: "IPv4 raspon", cidrv6: "IPv6 raspon", base64: "base64 kodirani tekst", base64url: "base64url kodirani tekst", json_string: "JSON tekst", e164: "E.164 broj", credit_card: "broj kreditne kartice", currency_code: "kod valute", iban: "IBAN", jwt: "JWT", template_literal: "unos" }; const TypeDictionary = { nan: "NaN", string: "tekst", number: "broj", boolean: "boolean", array: "niz", object: "objekt", set: "skup", file: "datoteka", date: "datum", bigint: "bigint", symbol: "simbol", undefined: "undefined", null: "null", function: "funkcija", map: "mapa" }; return (issue2) => { switch (issue2.code) { case "invalid_type": { const expected = TypeDictionary[issue2.expected] ?? issue2.expected; const receivedType = parsedType(issue2.input); const received = TypeDictionary[receivedType] ?? receivedType; if (/^[A-Z]/.test(issue2.expected)) { return `Neispravan unos: o\u010Dekuje se instanceof ${issue2.expected}, a primljeno je ${received}`; } return `Neispravan unos: o\u010Dekuje se ${expected}, a primljeno je ${received}`; } case "invalid_value": if (issue2.values.length === 1) return `Neispravna vrijednost: o\u010Dekivano ${stringifyPrimitive(issue2.values[0])}`; return `Neispravna opcija: o\u010Dekivano jedno od ${joinValues(issue2.values, "|")}`; case "too_big": { const adj = issue2.inclusive ? "<=" : "<"; const sizing = getSizing(issue2.origin); const origin = TypeDictionary[issue2.origin] ?? issue2.origin; if (sizing) return `Preveliko: o\u010Dekivano da ${origin ?? "vrijednost"} ima ${adj}${issue2.maximum.toString()} ${sizing.unit ?? "elemenata"}`; return `Preveliko: o\u010Dekivano da ${origin ?? "vrijednost"} bude ${adj}${issue2.maximum.toString()}`; } case "too_small": { const adj = issue2.inclusive ? ">=" : ">"; const sizing = getSizing(issue2.origin); const origin = TypeDictionary[issue2.origin] ?? issue2.origin; if (sizing) { return `Premalo: o\u010Dekivano da ${origin} ima ${adj}${issue2.minimum.toString()} ${sizing.unit}`; } return `Premalo: o\u010Dekivano da ${origin} bude ${adj}${issue2.minimum.toString()}`; } case "invalid_format": { const _issue = issue2; if (_issue.format === "starts_with") return `Neispravan tekst: mora zapo\u010Dinjati s "${_issue.prefix}"`; if (_issue.format === "ends_with") return `Neispravan tekst: mora zavr\u0161avati s "${_issue.suffix}"`; if (_issue.format === "includes") return `Neispravan tekst: mora sadr\u017Eavati "${_issue.includes}"`; if (_issue.format === "regex") return `Neispravan tekst: mora odgovarati uzorku ${_issue.pattern}`; return `Neispravna ${FormatDictionary[_issue.format] ?? issue2.format}`; } case "not_multiple_of": return `Neispravan broj: mora biti vi\u0161ekratnik od ${issue2.divisor}`; case "unrecognized_keys": return `Neprepoznat${issue2.keys.length > 1 ? "i klju\u010Devi" : " klju\u010D"}: ${joinValues(issue2.keys, ", ")}`; case "invalid_key": return `Neispravan klju\u010D u ${TypeDictionary[issue2.origin] ?? issue2.origin}`; case "invalid_union": return "Neispravan unos"; case "invalid_element": return `Neispravna vrijednost u ${TypeDictionary[issue2.origin] ?? issue2.origin}`; default: return `Neispravan unos`; } }; }; function hr_default() { return { localeError: error22() }; } // ../../../../node_modules/zod/v4/locales/hu.js var error23 = () => { const Sizable = { string: { unit: "karakter", verb: "legyen" }, file: { unit: "byte", verb: "legyen" }, array: { unit: "elem", verb: "legyen" }, set: { unit: "elem", verb: "legyen" }, map: { unit: "elem", verb: "legyen" } }; function getSizing(origin) { return Sizable[origin] ?? null; } const FormatDictionary = { regex: "bemenet", email: "email c\xEDm", url: "URL", emoji: "emoji", uuid: "UUID", uuidv4: "UUIDv4", uuidv6: "UUIDv6", nanoid: "nanoid", guid: "GUID", cuid: "cuid", cuid2: "cuid2", ulid: "ULID", xid: "XID", ksuid: "KSUID", datetime: "ISO id\u0151b\xE9lyeg", date: "ISO d\xE1tum", time: "ISO id\u0151", duration: "ISO id\u0151intervallum", ipv4: "IPv4 c\xEDm", ipv6: "IPv6 c\xEDm", mac: "MAC c\xEDm", cidrv4: "IPv4 tartom\xE1ny", cidrv6: "IPv6 tartom\xE1ny", base64: "base64-k\xF3dolt string", base64url: "base64url-k\xF3dolt string", json_string: "JSON string", e164: "E.164 sz\xE1m", credit_card: "hitelk\xE1rtyasz\xE1m", currency_code: "p\xE9nznemk\xF3d", iban: "IBAN", jwt: "JWT", template_literal: "bemenet" }; const TypeDictionary = { nan: "NaN", number: "sz\xE1m", array: "t\xF6mb" }; return (issue2) => { switch (issue2.code) { case "invalid_type": { const expected = TypeDictionary[issue2.expected] ?? issue2.expected; const receivedType = parsedType(issue2.input); const received = TypeDictionary[receivedType] ?? receivedType; if (/^[A-Z]/.test(issue2.expected)) { return `\xC9rv\xE9nytelen bemenet: a v\xE1rt \xE9rt\xE9k instanceof ${issue2.expected}, a kapott \xE9rt\xE9k ${received}`; } return `\xC9rv\xE9nytelen bemenet: a v\xE1rt \xE9rt\xE9k ${expected}, a kapott \xE9rt\xE9k ${received}`; } case "invalid_value": if (issue2.values.length === 1) return `\xC9rv\xE9nytelen bemenet: a v\xE1rt \xE9rt\xE9k ${stringifyPrimitive(issue2.values[0])}`; return `\xC9rv\xE9nytelen opci\xF3: valamelyik \xE9rt\xE9k v\xE1rt ${joinValues(issue2.values, "|")}`; case "too_big": { const adj = issue2.inclusive ? "<=" : "<"; const sizing = getSizing(issue2.origin); if (sizing) return `T\xFAl nagy: ${issue2.origin ?? "\xE9rt\xE9k"} m\xE9rete t\xFAl nagy ${adj}${issue2.maximum.toString()} ${sizing.unit ?? "elem"}`; return `T\xFAl nagy: a bemeneti \xE9rt\xE9k ${issue2.origin ?? "\xE9rt\xE9k"} t\xFAl nagy: ${adj}${issue2.maximum.toString()}`; } case "too_small": { const adj = issue2.inclusive ? ">=" : ">"; const sizing = getSizing(issue2.origin); if (sizing) { return `T\xFAl kicsi: a bemeneti \xE9rt\xE9k ${issue2.origin} m\xE9rete t\xFAl kicsi ${adj}${issue2.minimum.toString()} ${sizing.unit}`; } return `T\xFAl kicsi: a bemeneti \xE9rt\xE9k ${issue2.origin} t\xFAl kicsi ${adj}${issue2.minimum.toString()}`; } case "invalid_format": { const _issue = issue2; if (_issue.format === "starts_with") return `\xC9rv\xE9nytelen string: "${_issue.prefix}" \xE9rt\xE9kkel kell kezd\u0151dnie`; if (_issue.format === "ends_with") return `\xC9rv\xE9nytelen string: "${_issue.suffix}" \xE9rt\xE9kkel kell v\xE9gz\u0151dnie`; if (_issue.format === "includes") return `\xC9rv\xE9nytelen string: "${_issue.includes}" \xE9rt\xE9ket kell tartalmaznia`; if (_issue.format === "regex") return `\xC9rv\xE9nytelen string: ${_issue.pattern} mint\xE1nak kell megfelelnie`; return `\xC9rv\xE9nytelen ${FormatDictionary[_issue.format] ?? issue2.format}`; } case "not_multiple_of": return `\xC9rv\xE9nytelen sz\xE1m: ${issue2.divisor} t\xF6bbsz\xF6r\xF6s\xE9nek kell lennie`; case "unrecognized_keys": return `Ismeretlen kulcs${issue2.keys.length > 1 ? "s" : ""}: ${joinValues(issue2.keys, ", ")}`; case "invalid_key": return `\xC9rv\xE9nytelen kulcs ${issue2.origin}`; case "invalid_union": return "\xC9rv\xE9nytelen bemenet"; case "invalid_element": return `\xC9rv\xE9nytelen \xE9rt\xE9k: ${issue2.origin}`; default: return `\xC9rv\xE9nytelen bemenet`; } }; }; function hu_default() { return { localeError: error23() }; } // ../../../../node_modules/zod/v4/locales/hy.js function getArmenianPlural(count, one, many) { return Math.abs(count) === 1 ? one : many; } function withDefiniteArticle(word) { if (!word) return ""; const vowels = ["\u0561", "\u0565", "\u0568", "\u056B", "\u0578", "\u0578\u0582", "\u0585"]; const lastChar = word[word.length - 1]; return word + (vowels.includes(lastChar) ? "\u0576" : "\u0568"); } var error24 = () => { const Sizable = { string: { unit: { one: "\u0576\u0577\u0561\u0576", many: "\u0576\u0577\u0561\u0576\u0576\u0565\u0580" }, verb: "\u0578\u0582\u0576\u0565\u0576\u0561\u056C" }, file: { unit: { one: "\u0562\u0561\u0575\u0569", many: "\u0562\u0561\u0575\u0569\u0565\u0580" }, verb: "\u0578\u0582\u0576\u0565\u0576\u0561\u056C" }, array: { unit: { one: "\u057F\u0561\u0580\u0580", many: "\u057F\u0561\u0580\u0580\u0565\u0580" }, verb: "\u0578\u0582\u0576\u0565\u0576\u0561\u056C" }, set: { unit: { one: "\u057F\u0561\u0580\u0580", many: "\u057F\u0561\u0580\u0580\u0565\u0580" }, verb: "\u0578\u0582\u0576\u0565\u0576\u0561\u056C" }, map: { unit: { one: "\u057F\u0561\u0580\u0580", many: "\u057F\u0561\u0580\u0580\u0565\u0580" }, verb: "\u0578\u0582\u0576\u0565\u0576\u0561\u056C" } }; function getSizing(origin) { return Sizable[origin] ?? null; } const FormatDictionary = { regex: "\u0574\u0578\u0582\u057F\u0584", email: "\u0567\u056C. \u0570\u0561\u057D\u0581\u0565", url: "URL", emoji: "\u0567\u0574\u0578\u057B\u056B", uuid: "UUID", uuidv4: "UUIDv4", uuidv6: "UUIDv6", nanoid: "nanoid", guid: "GUID", cuid: "cuid", cuid2: "cuid2", ulid: "ULID", xid: "XID", ksuid: "KSUID", datetime: "ISO \u0561\u0574\u057D\u0561\u0569\u056B\u057E \u0587 \u056A\u0561\u0574", date: "ISO \u0561\u0574\u057D\u0561\u0569\u056B\u057E", time: "ISO \u056A\u0561\u0574", duration: "ISO \u057F\u0587\u0578\u0572\u0578\u0582\u0569\u0575\u0578\u0582\u0576", ipv4: "IPv4 \u0570\u0561\u057D\u0581\u0565", ipv6: "IPv6 \u0570\u0561\u057D\u0581\u0565", mac: "MAC \u0570\u0561\u057D\u0581\u0565", cidrv4: "IPv4 \u0574\u056B\u057B\u0561\u056F\u0561\u0575\u0584", cidrv6: "IPv6 \u0574\u056B\u057B\u0561\u056F\u0561\u0575\u0584", base64: "base64 \u0571\u0587\u0561\u0579\u0561\u0583\u0578\u057E \u057F\u0578\u0572", base64url: "base64url \u0571\u0587\u0561\u0579\u0561\u0583\u0578\u057E \u057F\u0578\u0572", json_string: "JSON \u057F\u0578\u0572", e164: "E.164 \u0570\u0561\u0574\u0561\u0580", credit_card: "\u056F\u0580\u0565\u0564\u056B\u057F \u0584\u0561\u0580\u057F\u056B \u0570\u0561\u0574\u0561\u0580", currency_code: "\u0561\u0580\u056A\u0578\u0582\u0575\u0569\u056B \u056F\u0578\u0564", iban: "IBAN", jwt: "JWT", template_literal: "\u0574\u0578\u0582\u057F\u0584" }; const TypeDictionary = { nan: "NaN", number: "\u0569\u056B\u057E", array: "\u0566\u0561\u0576\u0563\u057E\u0561\u056E" }; return (issue2) => { switch (issue2.code) { case "invalid_type": { const expected = TypeDictionary[issue2.expected] ?? issue2.expected; const receivedType = parsedType(issue2.input); const received = TypeDictionary[receivedType] ?? receivedType; if (/^[A-Z]/.test(issue2.expected)) { return `\u054D\u056D\u0561\u056C \u0574\u0578\u0582\u057F\u0584\u0561\u0563\u0580\u0578\u0582\u0574\u2024 \u057D\u057A\u0561\u057D\u057E\u0578\u0582\u0574 \u0567\u0580 instanceof ${issue2.expected}, \u057D\u057F\u0561\u0581\u057E\u0565\u056C \u0567 ${received}`; } return `\u054D\u056D\u0561\u056C \u0574\u0578\u0582\u057F\u0584\u0561\u0563\u0580\u0578\u0582\u0574\u2024 \u057D\u057A\u0561\u057D\u057E\u0578\u0582\u0574 \u0567\u0580 ${expected}, \u057D\u057F\u0561\u0581\u057E\u0565\u056C \u0567 ${received}`; } case "invalid_value": if (issue2.values.length === 1) return `\u054D\u056D\u0561\u056C \u0574\u0578\u0582\u057F\u0584\u0561\u0563\u0580\u0578\u0582\u0574\u2024 \u057D\u057A\u0561\u057D\u057E\u0578\u0582\u0574 \u0567\u0580 ${stringifyPrimitive(issue2.values[1])}`; return `\u054D\u056D\u0561\u056C \u057F\u0561\u0580\u0562\u0565\u0580\u0561\u056F\u2024 \u057D\u057A\u0561\u057D\u057E\u0578\u0582\u0574 \u0567\u0580 \u0570\u0565\u057F\u0587\u0575\u0561\u056C\u0576\u0565\u0580\u056B\u0581 \u0574\u0565\u056F\u0568\u055D ${joinValues(issue2.values, "|")}`; case "too_big": { const adj = issue2.inclusive ? "<=" : "<"; const sizing = getSizing(issue2.origin); if (sizing) { const maxValue = Number(issue2.maximum); const unit = getArmenianPlural(maxValue, sizing.unit.one, sizing.unit.many); return `\u0549\u0561\u0583\u0561\u0566\u0561\u0576\u0581 \u0574\u0565\u056E \u0561\u0580\u056A\u0565\u0584\u2024 \u057D\u057A\u0561\u057D\u057E\u0578\u0582\u0574 \u0567, \u0578\u0580 ${withDefiniteArticle(issue2.origin ?? "\u0561\u0580\u056A\u0565\u0584")} \u056F\u0578\u0582\u0576\u0565\u0576\u0561 ${adj}${issue2.maximum.toString()} ${unit}`; } return `\u0549\u0561\u0583\u0561\u0566\u0561\u0576\u0581 \u0574\u0565\u056E \u0561\u0580\u056A\u0565\u0584\u2024 \u057D\u057A\u0561\u057D\u057E\u0578\u0582\u0574 \u0567, \u0578\u0580 ${withDefiniteArticle(issue2.origin ?? "\u0561\u0580\u056A\u0565\u0584")} \u056C\u056B\u0576\u056B ${adj}${issue2.maximum.toString()}`; } case "too_small": { const adj = issue2.inclusive ? ">=" : ">"; const sizing = getSizing(issue2.origin); if (sizing) { const minValue = Number(issue2.minimum); const unit = getArmenianPlural(minValue, sizing.unit.one, sizing.unit.many); return `\u0549\u0561\u0583\u0561\u0566\u0561\u0576\u0581 \u0583\u0578\u0584\u0580 \u0561\u0580\u056A\u0565\u0584\u2024 \u057D\u057A\u0561\u057D\u057E\u0578\u0582\u0574 \u0567, \u0578\u0580 ${withDefiniteArticle(issue2.origin)} \u056F\u0578\u0582\u0576\u0565\u0576\u0561 ${adj}${issue2.minimum.toString()} ${unit}`; } return `\u0549\u0561\u0583\u0561\u0566\u0561\u0576\u0581 \u0583\u0578\u0584\u0580 \u0561\u0580\u056A\u0565\u0584\u2024 \u057D\u057A\u0561\u057D\u057E\u0578\u0582\u0574 \u0567, \u0578\u0580 ${withDefiniteArticle(issue2.origin)} \u056C\u056B\u0576\u056B ${adj}${issue2.minimum.toString()}`; } case "invalid_format": { const _issue = issue2; if (_issue.format === "starts_with") return `\u054D\u056D\u0561\u056C \u057F\u0578\u0572\u2024 \u057A\u0565\u057F\u0584 \u0567 \u057D\u056F\u057D\u057E\u056B "${_issue.prefix}"-\u0578\u057E`; if (_issue.format === "ends_with") return `\u054D\u056D\u0561\u056C \u057F\u0578\u0572\u2024 \u057A\u0565\u057F\u0584 \u0567 \u0561\u057E\u0561\u0580\u057F\u057E\u056B "${_issue.suffix}"-\u0578\u057E`; if (_issue.format === "includes") return `\u054D\u056D\u0561\u056C \u057F\u0578\u0572\u2024 \u057A\u0565\u057F\u0584 \u0567 \u057A\u0561\u0580\u0578\u0582\u0576\u0561\u056F\u056B "${_issue.includes}"`; if (_issue.format === "regex") return `\u054D\u056D\u0561\u056C \u057F\u0578\u0572\u2024 \u057A\u0565\u057F\u0584 \u0567 \u0570\u0561\u0574\u0561\u057A\u0561\u057F\u0561\u057D\u056D\u0561\u0576\u056B ${_issue.pattern} \u0571\u0587\u0561\u0579\u0561\u0583\u056B\u0576`; return `\u054D\u056D\u0561\u056C ${FormatDictionary[_issue.format] ?? issue2.format}`; } case "not_multiple_of": return `\u054D\u056D\u0561\u056C \u0569\u056B\u057E\u2024 \u057A\u0565\u057F\u0584 \u0567 \u0562\u0561\u0566\u0574\u0561\u057A\u0561\u057F\u056B\u056F \u056C\u056B\u0576\u056B ${issue2.divisor}-\u056B`; case "unrecognized_keys": return `\u0549\u0573\u0561\u0576\u0561\u0579\u057E\u0561\u056E \u0562\u0561\u0576\u0561\u056C\u056B${issue2.keys.length > 1 ? "\u0576\u0565\u0580" : ""}. ${joinValues(issue2.keys, ", ")}`; case "invalid_key": return `\u054D\u056D\u0561\u056C \u0562\u0561\u0576\u0561\u056C\u056B ${withDefiniteArticle(issue2.origin)}-\u0578\u0582\u0574`; case "invalid_union": return "\u054D\u056D\u0561\u056C \u0574\u0578\u0582\u057F\u0584\u0561\u0563\u0580\u0578\u0582\u0574"; case "invalid_element": return `\u054D\u056D\u0561\u056C \u0561\u0580\u056A\u0565\u0584 ${withDefiniteArticle(issue2.origin)}-\u0578\u0582\u0574`; default: return `\u054D\u056D\u0561\u056C \u0574\u0578\u0582\u057F\u0584\u0561\u0563\u0580\u0578\u0582\u0574`; } }; }; function hy_default() { return { localeError: error24() }; } // ../../../../node_modules/zod/v4/locales/id.js var error25 = () => { const Sizable = { string: { unit: "karakter", verb: "memiliki" }, file: { unit: "byte", verb: "memiliki" }, array: { unit: "item", verb: "memiliki" }, set: { unit: "item", verb: "memiliki" }, map: { unit: "item", verb: "memiliki" } }; function getSizing(origin) { return Sizable[origin] ?? null; } const FormatDictionary = { regex: "input", email: "alamat email", url: "URL", emoji: "emoji", uuid: "UUID", uuidv4: "UUIDv4", uuidv6: "UUIDv6", nanoid: "nanoid", guid: "GUID", cuid: "cuid", cuid2: "cuid2", ulid: "ULID", xid: "XID", ksuid: "KSUID", datetime: "tanggal dan waktu format ISO", date: "tanggal format ISO", time: "jam format ISO", duration: "durasi format ISO", ipv4: "alamat IPv4", ipv6: "alamat IPv6", mac: "alamat MAC", cidrv4: "rentang alamat IPv4", cidrv6: "rentang alamat IPv6", base64: "string dengan enkode base64", base64url: "string dengan enkode base64url", json_string: "string JSON", e164: "angka E.164", credit_card: "nomor kartu kredit", currency_code: "kode mata uang", iban: "IBAN", jwt: "JWT", template_literal: "input" }; const TypeDictionary = { nan: "NaN" }; return (issue2) => { switch (issue2.code) { case "invalid_type": { const expected = TypeDictionary[issue2.expected] ?? issue2.expected; const receivedType = parsedType(issue2.input); const received = TypeDictionary[receivedType] ?? receivedType; if (/^[A-Z]/.test(issue2.expected)) { return `Input tidak valid: diharapkan instanceof ${issue2.expected}, diterima ${received}`; } return `Input tidak valid: diharapkan ${expected}, diterima ${received}`; } case "invalid_value": if (issue2.values.length === 1) return `Input tidak valid: diharapkan ${stringifyPrimitive(issue2.values[0])}`; return `Pilihan tidak valid: diharapkan salah satu dari ${joinValues(issue2.values, "|")}`; case "too_big": { const adj = issue2.inclusive ? "<=" : "<"; const sizing = getSizing(issue2.origin); if (sizing) return `Terlalu besar: diharapkan ${issue2.origin ?? "value"} memiliki ${adj}${issue2.maximum.toString()} ${sizing.unit ?? "elemen"}`; return `Terlalu besar: diharapkan ${issue2.origin ?? "value"} menjadi ${adj}${issue2.maximum.toString()}`; } case "too_small": { const adj = issue2.inclusive ? ">=" : ">"; const sizing = getSizing(issue2.origin); if (sizing) { return `Terlalu kecil: diharapkan ${issue2.origin} memiliki ${adj}${issue2.minimum.toString()} ${sizing.unit}`; } return `Terlalu kecil: diharapkan ${issue2.origin} menjadi ${adj}${issue2.minimum.toString()}`; } case "invalid_format": { const _issue = issue2; if (_issue.format === "starts_with") return `String tidak valid: harus dimulai dengan "${_issue.prefix}"`; if (_issue.format === "ends_with") return `String tidak valid: harus berakhir dengan "${_issue.suffix}"`; if (_issue.format === "includes") return `String tidak valid: harus menyertakan "${_issue.includes}"`; if (_issue.format === "regex") return `String tidak valid: harus sesuai pola ${_issue.pattern}`; return `${FormatDictionary[_issue.format] ?? issue2.format} tidak valid`; } case "not_multiple_of": return `Angka tidak valid: harus kelipatan dari ${issue2.divisor}`; case "unrecognized_keys": return `Kunci tidak dikenali ${issue2.keys.length > 1 ? "s" : ""}: ${joinValues(issue2.keys, ", ")}`; case "invalid_key": return `Kunci tidak valid di ${issue2.origin}`; case "invalid_union": return "Input tidak valid"; case "invalid_element": return `Nilai tidak valid di ${issue2.origin}`; default: return `Input tidak valid`; } }; }; function id_default() { return { localeError: error25() }; } // ../../../../node_modules/zod/v4/locales/is.js var error26 = () => { const Sizable = { string: { unit: "stafi", verb: "a\xF0 hafa" }, file: { unit: "b\xE6ti", verb: "a\xF0 hafa" }, array: { unit: "hluti", verb: "a\xF0 hafa" }, set: { unit: "hluti", verb: "a\xF0 hafa" }, map: { unit: "hluti", verb: "a\xF0 hafa" } }; function getSizing(origin) { return Sizable[origin] ?? null; } const FormatDictionary = { regex: "gildi", email: "netfang", url: "vefsl\xF3\xF0", emoji: "emoji", uuid: "UUID", uuidv4: "UUIDv4", uuidv6: "UUIDv6", nanoid: "nanoid", guid: "GUID", cuid: "cuid", cuid2: "cuid2", ulid: "ULID", xid: "XID", ksuid: "KSUID", datetime: "ISO dagsetning og t\xEDmi", date: "ISO dagsetning", time: "ISO t\xEDmi", duration: "ISO t\xEDmalengd", ipv4: "IPv4 address", ipv6: "IPv6 address", mac: "MAC address", cidrv4: "IPv4 range", cidrv6: "IPv6 range", base64: "base64-encoded strengur", base64url: "base64url-encoded strengur", json_string: "JSON strengur", e164: "E.164 t\xF6lugildi", credit_card: "kreditkortan\xFAmer", currency_code: "gjaldmi\xF0ilsk\xF3\xF0i", iban: "IBAN", jwt: "JWT", template_literal: "gildi" }; const TypeDictionary = { nan: "NaN", number: "n\xFAmer", array: "fylki" }; return (issue2) => { switch (issue2.code) { case "invalid_type": { const expected = TypeDictionary[issue2.expected] ?? issue2.expected; const receivedType = parsedType(issue2.input); const received = TypeDictionary[receivedType] ?? receivedType; if (/^[A-Z]/.test(issue2.expected)) { return `Rangt gildi: \xDE\xFA sl\xF3st inn ${received} \xFEar sem \xE1 a\xF0 vera instanceof ${issue2.expected}`; } return `Rangt gildi: \xDE\xFA sl\xF3st inn ${received} \xFEar sem \xE1 a\xF0 vera ${expected}`; } case "invalid_value": if (issue2.values.length === 1) return `Rangt gildi: gert r\xE1\xF0 fyrir ${stringifyPrimitive(issue2.values[0])}`; return `\xD3gilt val: m\xE1 vera eitt af eftirfarandi ${joinValues(issue2.values, "|")}`; case "too_big": { const adj = issue2.inclusive ? "<=" : "<"; const sizing = getSizing(issue2.origin); if (sizing) return `Of st\xF3rt: gert er r\xE1\xF0 fyrir a\xF0 ${issue2.origin ?? "gildi"} hafi ${adj}${issue2.maximum.toString()} ${sizing.unit ?? "hluti"}`; return `Of st\xF3rt: gert er r\xE1\xF0 fyrir a\xF0 ${issue2.origin ?? "gildi"} s\xE9 ${adj}${issue2.maximum.toString()}`; } case "too_small": { const adj = issue2.inclusive ? ">=" : ">"; const sizing = getSizing(issue2.origin); if (sizing) { return `Of l\xEDti\xF0: gert er r\xE1\xF0 fyrir a\xF0 ${issue2.origin} hafi ${adj}${issue2.minimum.toString()} ${sizing.unit}`; } return `Of l\xEDti\xF0: gert er r\xE1\xF0 fyrir a\xF0 ${issue2.origin} s\xE9 ${adj}${issue2.minimum.toString()}`; } case "invalid_format": { const _issue = issue2; if (_issue.format === "starts_with") { return `\xD3gildur strengur: ver\xF0ur a\xF0 byrja \xE1 "${_issue.prefix}"`; } if (_issue.format === "ends_with") return `\xD3gildur strengur: ver\xF0ur a\xF0 enda \xE1 "${_issue.suffix}"`; if (_issue.format === "includes") return `\xD3gildur strengur: ver\xF0ur a\xF0 innihalda "${_issue.includes}"`; if (_issue.format === "regex") return `\xD3gildur strengur: ver\xF0ur a\xF0 fylgja mynstri ${_issue.pattern}`; return `Rangt ${FormatDictionary[_issue.format] ?? issue2.format}`; } case "not_multiple_of": return `R\xF6ng tala: ver\xF0ur a\xF0 vera margfeldi af ${issue2.divisor}`; case "unrecognized_keys": return `\xD3\xFEekkt ${issue2.keys.length > 1 ? "ir lyklar" : "ur lykill"}: ${joinValues(issue2.keys, ", ")}`; case "invalid_key": return `Rangur lykill \xED ${issue2.origin}`; case "invalid_union": return "Rangt gildi"; case "invalid_element": return `Rangt gildi \xED ${issue2.origin}`; default: return `Rangt gildi`; } }; }; function is_default() { return { localeError: error26() }; } // ../../../../node_modules/zod/v4/locales/it.js var error27 = () => { const Sizable = { string: { unit: "caratteri", verb: "avere" }, file: { unit: "byte", verb: "avere" }, array: { unit: "elementi", verb: "avere" }, set: { unit: "elementi", verb: "avere" }, map: { unit: "elementi", verb: "avere" } }; function getSizing(origin) { return Sizable[origin] ?? null; } const FormatDictionary = { regex: "input", email: "indirizzo email", url: "URL", emoji: "emoji", uuid: "UUID", uuidv4: "UUIDv4", uuidv6: "UUIDv6", nanoid: "nanoid", guid: "GUID", cuid: "cuid", cuid2: "cuid2", ulid: "ULID", xid: "XID", ksuid: "KSUID", datetime: "data e ora ISO", date: "data ISO", time: "ora ISO", duration: "durata ISO", ipv4: "indirizzo IPv4", ipv6: "indirizzo IPv6", mac: "indirizzo MAC", cidrv4: "intervallo IPv4", cidrv6: "intervallo IPv6", base64: "stringa codificata in base64", base64url: "URL codificata in base64", json_string: "stringa JSON", e164: "numero E.164", credit_card: "numero di carta di credito", currency_code: "codice valuta", iban: "IBAN", jwt: "JWT", template_literal: "input" }; const TypeDictionary = { nan: "NaN", number: "numero", array: "vettore" }; return (issue2) => { switch (issue2.code) { case "invalid_type": { const expected = TypeDictionary[issue2.expected] ?? issue2.expected; const receivedType = parsedType(issue2.input); const received = TypeDictionary[receivedType] ?? receivedType; if (/^[A-Z]/.test(issue2.expected)) { return `Input non valido: atteso instanceof ${issue2.expected}, ricevuto ${received}`; } return `Input non valido: atteso ${expected}, ricevuto ${received}`; } case "invalid_value": if (issue2.values.length === 1) return `Input non valido: atteso ${stringifyPrimitive(issue2.values[0])}`; return `Opzione non valida: atteso uno tra ${joinValues(issue2.values, "|")}`; case "too_big": { const adj = issue2.inclusive ? "<=" : "<"; const sizing = getSizing(issue2.origin); if (sizing) return `Troppo grande: ${issue2.origin ?? "valore"} deve avere ${adj}${issue2.maximum.toString()} ${sizing.unit ?? "elementi"}`; return `Troppo grande: ${issue2.origin ?? "valore"} deve essere ${adj}${issue2.maximum.toString()}`; } case "too_small": { const adj = issue2.inclusive ? ">=" : ">"; const sizing = getSizing(issue2.origin); if (sizing) { return `Troppo piccolo: ${issue2.origin} deve avere ${adj}${issue2.minimum.toString()} ${sizing.unit}`; } return `Troppo piccolo: ${issue2.origin} deve essere ${adj}${issue2.minimum.toString()}`; } case "invalid_format": { const _issue = issue2; if (_issue.format === "starts_with") return `Stringa non valida: deve iniziare con "${_issue.prefix}"`; if (_issue.format === "ends_with") return `Stringa non valida: deve terminare con "${_issue.suffix}"`; if (_issue.format === "includes") return `Stringa non valida: deve includere "${_issue.includes}"`; if (_issue.format === "regex") return `Stringa non valida: deve corrispondere al pattern ${_issue.pattern}`; return `Input non valido: ${FormatDictionary[_issue.format] ?? issue2.format}`; } case "not_multiple_of": return `Numero non valido: deve essere un multiplo di ${issue2.divisor}`; case "unrecognized_keys": return `Chiav${issue2.keys.length > 1 ? "i" : "e"} non riconosciut${issue2.keys.length > 1 ? "e" : "a"}: ${joinValues(issue2.keys, ", ")}`; case "invalid_key": return `Chiave non valida in ${issue2.origin}`; case "invalid_union": return "Input non valido"; case "invalid_element": return `Valore non valido in ${issue2.origin}`; default: return `Input non valido`; } }; }; function it_default() { return { localeError: error27() }; } // ../../../../node_modules/zod/v4/locales/ja.js var error28 = () => { const Sizable = { string: { unit: "\u6587\u5B57", verb: "\u3067\u3042\u308B" }, file: { unit: "\u30D0\u30A4\u30C8", verb: "\u3067\u3042\u308B" }, array: { unit: "\u8981\u7D20", verb: "\u3067\u3042\u308B" }, set: { unit: "\u8981\u7D20", verb: "\u3067\u3042\u308B" }, map: { unit: "\u8981\u7D20", verb: "\u3067\u3042\u308B" } }; function getSizing(origin) { return Sizable[origin] ?? null; } const FormatDictionary = { regex: "\u5165\u529B\u5024", email: "\u30E1\u30FC\u30EB\u30A2\u30C9\u30EC\u30B9", url: "URL", emoji: "\u7D75\u6587\u5B57", uuid: "UUID", uuidv4: "UUIDv4", uuidv6: "UUIDv6", nanoid: "nanoid", guid: "GUID", cuid: "cuid", cuid2: "cuid2", ulid: "ULID", xid: "XID", ksuid: "KSUID", datetime: "ISO\u65E5\u6642", date: "ISO\u65E5\u4ED8", time: "ISO\u6642\u523B", duration: "ISO\u671F\u9593", ipv4: "IPv4\u30A2\u30C9\u30EC\u30B9", ipv6: "IPv6\u30A2\u30C9\u30EC\u30B9", mac: "MAC\u30A2\u30C9\u30EC\u30B9", cidrv4: "IPv4\u7BC4\u56F2", cidrv6: "IPv6\u7BC4\u56F2", base64: "base64\u30A8\u30F3\u30B3\u30FC\u30C9\u6587\u5B57\u5217", base64url: "base64url\u30A8\u30F3\u30B3\u30FC\u30C9\u6587\u5B57\u5217", json_string: "JSON\u6587\u5B57\u5217", e164: "E.164\u756A\u53F7", credit_card: "\u30AF\u30EC\u30B8\u30C3\u30C8\u30AB\u30FC\u30C9\u756A\u53F7", currency_code: "\u901A\u8CA8\u30B3\u30FC\u30C9", iban: "IBAN", jwt: "JWT", template_literal: "\u5165\u529B\u5024" }; const TypeDictionary = { nan: "NaN", number: "\u6570\u5024", array: "\u914D\u5217" }; return (issue2) => { switch (issue2.code) { case "invalid_type": { const expected = TypeDictionary[issue2.expected] ?? issue2.expected; const receivedType = parsedType(issue2.input); const received = TypeDictionary[receivedType] ?? receivedType; if (/^[A-Z]/.test(issue2.expected)) { return `\u7121\u52B9\u306A\u5165\u529B: instanceof ${issue2.expected}\u304C\u671F\u5F85\u3055\u308C\u307E\u3057\u305F\u304C\u3001${received}\u304C\u5165\u529B\u3055\u308C\u307E\u3057\u305F`; } return `\u7121\u52B9\u306A\u5165\u529B: ${expected}\u304C\u671F\u5F85\u3055\u308C\u307E\u3057\u305F\u304C\u3001${received}\u304C\u5165\u529B\u3055\u308C\u307E\u3057\u305F`; } case "invalid_value": if (issue2.values.length === 1) return `\u7121\u52B9\u306A\u5165\u529B: ${stringifyPrimitive(issue2.values[0])}\u304C\u671F\u5F85\u3055\u308C\u307E\u3057\u305F`; return `\u7121\u52B9\u306A\u9078\u629E: ${joinValues(issue2.values, "\u3001")}\u306E\u3044\u305A\u308C\u304B\u3067\u3042\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059`; case "too_big": { const adj = issue2.inclusive ? "\u4EE5\u4E0B\u3067\u3042\u308B" : "\u3088\u308A\u5C0F\u3055\u3044"; const sizing = getSizing(issue2.origin); if (sizing) return `\u5927\u304D\u3059\u304E\u308B\u5024: ${issue2.origin ?? "\u5024"}\u306F${issue2.maximum.toString()}${sizing.unit ?? "\u8981\u7D20"}${adj}\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059`; return `\u5927\u304D\u3059\u304E\u308B\u5024: ${issue2.origin ?? "\u5024"}\u306F${issue2.maximum.toString()}${adj}\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059`; } case "too_small": { const adj = issue2.inclusive ? "\u4EE5\u4E0A\u3067\u3042\u308B" : "\u3088\u308A\u5927\u304D\u3044"; const sizing = getSizing(issue2.origin); if (sizing) return `\u5C0F\u3055\u3059\u304E\u308B\u5024: ${issue2.origin}\u306F${issue2.minimum.toString()}${sizing.unit}${adj}\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059`; return `\u5C0F\u3055\u3059\u304E\u308B\u5024: ${issue2.origin}\u306F${issue2.minimum.toString()}${adj}\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059`; } case "invalid_format": { const _issue = issue2; if (_issue.format === "starts_with") return `\u7121\u52B9\u306A\u6587\u5B57\u5217: "${_issue.prefix}"\u3067\u59CB\u307E\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059`; if (_issue.format === "ends_with") return `\u7121\u52B9\u306A\u6587\u5B57\u5217: "${_issue.suffix}"\u3067\u7D42\u308F\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059`; if (_issue.format === "includes") return `\u7121\u52B9\u306A\u6587\u5B57\u5217: "${_issue.includes}"\u3092\u542B\u3080\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059`; if (_issue.format === "regex") return `\u7121\u52B9\u306A\u6587\u5B57\u5217: \u30D1\u30BF\u30FC\u30F3${_issue.pattern}\u306B\u4E00\u81F4\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059`; return `\u7121\u52B9\u306A${FormatDictionary[_issue.format] ?? issue2.format}`; } case "not_multiple_of": return `\u7121\u52B9\u306A\u6570\u5024: ${issue2.divisor}\u306E\u500D\u6570\u3067\u3042\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059`; case "unrecognized_keys": return `\u8A8D\u8B58\u3055\u308C\u3066\u3044\u306A\u3044\u30AD\u30FC${issue2.keys.length > 1 ? "\u7FA4" : ""}: ${joinValues(issue2.keys, "\u3001")}`; case "invalid_key": return `${issue2.origin}\u5185\u306E\u7121\u52B9\u306A\u30AD\u30FC`; case "invalid_union": return "\u7121\u52B9\u306A\u5165\u529B"; case "invalid_element": return `${issue2.origin}\u5185\u306E\u7121\u52B9\u306A\u5024`; default: return `\u7121\u52B9\u306A\u5165\u529B`; } }; }; function ja_default() { return { localeError: error28() }; } // ../../../../node_modules/zod/v4/locales/ka.js var error29 = () => { const Sizable = { string: { unit: "\u10E1\u10D8\u10DB\u10D1\u10DD\u10DA\u10DD", verb: "\u10E3\u10DC\u10D3\u10D0 \u10E8\u10D4\u10D8\u10EA\u10D0\u10D5\u10D3\u10D4\u10E1" }, file: { unit: "\u10D1\u10D0\u10D8\u10E2\u10D8", verb: "\u10E3\u10DC\u10D3\u10D0 \u10E8\u10D4\u10D8\u10EA\u10D0\u10D5\u10D3\u10D4\u10E1" }, array: { unit: "\u10D4\u10DA\u10D4\u10DB\u10D4\u10DC\u10E2\u10D8", verb: "\u10E3\u10DC\u10D3\u10D0 \u10E8\u10D4\u10D8\u10EA\u10D0\u10D5\u10D3\u10D4\u10E1" }, set: { unit: "\u10D4\u10DA\u10D4\u10DB\u10D4\u10DC\u10E2\u10D8", verb: "\u10E3\u10DC\u10D3\u10D0 \u10E8\u10D4\u10D8\u10EA\u10D0\u10D5\u10D3\u10D4\u10E1" }, map: { unit: "\u10D4\u10DA\u10D4\u10DB\u10D4\u10DC\u10E2\u10D8", verb: "\u10E3\u10DC\u10D3\u10D0 \u10E8\u10D4\u10D8\u10EA\u10D0\u10D5\u10D3\u10D4\u10E1" } }; function getSizing(origin) { return Sizable[origin] ?? null; } const FormatDictionary = { regex: "\u10E8\u10D4\u10E7\u10D5\u10D0\u10DC\u10D0", email: "\u10D4\u10DA-\u10E4\u10DD\u10E1\u10E2\u10D8\u10E1 \u10DB\u10D8\u10E1\u10D0\u10DB\u10D0\u10E0\u10D7\u10D8", url: "URL", emoji: "\u10D4\u10DB\u10DD\u10EF\u10D8", uuid: "UUID", uuidv4: "UUIDv4", uuidv6: "UUIDv6", nanoid: "nanoid", guid: "GUID", cuid: "cuid", cuid2: "cuid2", ulid: "ULID", xid: "XID", ksuid: "KSUID", datetime: "\u10D7\u10D0\u10E0\u10D8\u10E6\u10D8-\u10D3\u10E0\u10DD", date: "\u10D7\u10D0\u10E0\u10D8\u10E6\u10D8", time: "\u10D3\u10E0\u10DD", duration: "\u10EE\u10D0\u10DC\u10D2\u10E0\u10EB\u10DA\u10D8\u10D5\u10DD\u10D1\u10D0", ipv4: "IPv4 \u10DB\u10D8\u10E1\u10D0\u10DB\u10D0\u10E0\u10D7\u10D8", ipv6: "IPv6 \u10DB\u10D8\u10E1\u10D0\u10DB\u10D0\u10E0\u10D7\u10D8", mac: "MAC \u10DB\u10D8\u10E1\u10D0\u10DB\u10D0\u10E0\u10D7\u10D8", cidrv4: "IPv4 \u10D3\u10D8\u10D0\u10DE\u10D0\u10D6\u10DD\u10DC\u10D8", cidrv6: "IPv6 \u10D3\u10D8\u10D0\u10DE\u10D0\u10D6\u10DD\u10DC\u10D8", base64: "base64-\u10D9\u10DD\u10D3\u10D8\u10E0\u10D4\u10D1\u10E3\u10DA\u10D8 \u10D5\u10D4\u10DA\u10D8", base64url: "base64url-\u10D9\u10DD\u10D3\u10D8\u10E0\u10D4\u10D1\u10E3\u10DA\u10D8 \u10D5\u10D4\u10DA\u10D8", json_string: "JSON \u10D5\u10D4\u10DA\u10D8", e164: "E.164 \u10DC\u10DD\u10DB\u10D4\u10E0\u10D8", credit_card: "\u10E1\u10D0\u10D9\u10E0\u10D4\u10D3\u10D8\u10E2\u10DD \u10D1\u10D0\u10E0\u10D0\u10D7\u10D8\u10E1 \u10DC\u10DD\u10DB\u10D4\u10E0\u10D8", currency_code: "\u10D5\u10D0\u10DA\u10E3\u10E2\u10D8\u10E1 \u10D9\u10DD\u10D3\u10D8", iban: "IBAN", jwt: "JWT", template_literal: "\u10E8\u10D4\u10E7\u10D5\u10D0\u10DC\u10D0" }; const TypeDictionary = { nan: "NaN", number: "\u10E0\u10D8\u10EA\u10EE\u10D5\u10D8", string: "\u10D5\u10D4\u10DA\u10D8", boolean: "\u10D1\u10E3\u10DA\u10D4\u10D0\u10DC\u10D8", function: "\u10E4\u10E3\u10DC\u10E5\u10EA\u10D8\u10D0", array: "\u10DB\u10D0\u10E1\u10D8\u10D5\u10D8" }; return (issue2) => { switch (issue2.code) { case "invalid_type": { const expected = TypeDictionary[issue2.expected] ?? issue2.expected; const receivedType = parsedType(issue2.input); const received = TypeDictionary[receivedType] ?? receivedType; if (/^[A-Z]/.test(issue2.expected)) { return `\u10D0\u10E0\u10D0\u10E1\u10EC\u10DD\u10E0\u10D8 \u10E8\u10D4\u10E7\u10D5\u10D0\u10DC\u10D0: \u10DB\u10DD\u10E1\u10D0\u10DA\u10DD\u10D3\u10DC\u10D4\u10DA\u10D8 instanceof ${issue2.expected}, \u10DB\u10D8\u10E6\u10D4\u10D1\u10E3\u10DA\u10D8 ${received}`; } return `\u10D0\u10E0\u10D0\u10E1\u10EC\u10DD\u10E0\u10D8 \u10E8\u10D4\u10E7\u10D5\u10D0\u10DC\u10D0: \u10DB\u10DD\u10E1\u10D0\u10DA\u10DD\u10D3\u10DC\u10D4\u10DA\u10D8 ${expected}, \u10DB\u10D8\u10E6\u10D4\u10D1\u10E3\u10DA\u10D8 ${received}`; } case "invalid_value": if (issue2.values.length === 1) return `\u10D0\u10E0\u10D0\u10E1\u10EC\u10DD\u10E0\u10D8 \u10E8\u10D4\u10E7\u10D5\u10D0\u10DC\u10D0: \u10DB\u10DD\u10E1\u10D0\u10DA\u10DD\u10D3\u10DC\u10D4\u10DA\u10D8 ${stringifyPrimitive(issue2.values[0])}`; return `\u10D0\u10E0\u10D0\u10E1\u10EC\u10DD\u10E0\u10D8 \u10D5\u10D0\u10E0\u10D8\u10D0\u10DC\u10E2\u10D8: \u10DB\u10DD\u10E1\u10D0\u10DA\u10DD\u10D3\u10DC\u10D4\u10DA\u10D8\u10D0 \u10D4\u10E0\u10D7-\u10D4\u10E0\u10D7\u10D8 ${joinValues(issue2.values, "|")}-\u10D3\u10D0\u10DC`; case "too_big": { const adj = issue2.inclusive ? "<=" : "<"; const sizing = getSizing(issue2.origin); if (sizing) return `\u10D6\u10D4\u10D3\u10DB\u10D4\u10E2\u10D0\u10D3 \u10D3\u10D8\u10D3\u10D8: \u10DB\u10DD\u10E1\u10D0\u10DA\u10DD\u10D3\u10DC\u10D4\u10DA\u10D8 ${issue2.origin ?? "\u10DB\u10DC\u10D8\u10E8\u10D5\u10DC\u10D4\u10DA\u10DD\u10D1\u10D0"} ${sizing.verb} ${adj}${issue2.maximum.toString()} ${sizing.unit}`; return `\u10D6\u10D4\u10D3\u10DB\u10D4\u10E2\u10D0\u10D3 \u10D3\u10D8\u10D3\u10D8: \u10DB\u10DD\u10E1\u10D0\u10DA\u10DD\u10D3\u10DC\u10D4\u10DA\u10D8 ${issue2.origin ?? "\u10DB\u10DC\u10D8\u10E8\u10D5\u10DC\u10D4\u10DA\u10DD\u10D1\u10D0"} \u10D8\u10E7\u10DD\u10E1 ${adj}${issue2.maximum.toString()}`; } case "too_small": { const adj = issue2.inclusive ? ">=" : ">"; const sizing = getSizing(issue2.origin); if (sizing) { return `\u10D6\u10D4\u10D3\u10DB\u10D4\u10E2\u10D0\u10D3 \u10DE\u10D0\u10E2\u10D0\u10E0\u10D0: \u10DB\u10DD\u10E1\u10D0\u10DA\u10DD\u10D3\u10DC\u10D4\u10DA\u10D8 ${issue2.origin} ${sizing.verb} ${adj}${issue2.minimum.toString()} ${sizing.unit}`; } return `\u10D6\u10D4\u10D3\u10DB\u10D4\u10E2\u10D0\u10D3 \u10DE\u10D0\u10E2\u10D0\u10E0\u10D0: \u10DB\u10DD\u10E1\u10D0\u10DA\u10DD\u10D3\u10DC\u10D4\u10DA\u10D8 ${issue2.origin} \u10D8\u10E7\u10DD\u10E1 ${adj}${issue2.minimum.toString()}`; } case "invalid_format": { const _issue = issue2; if (_issue.format === "starts_with") { return `\u10D0\u10E0\u10D0\u10E1\u10EC\u10DD\u10E0\u10D8 \u10D5\u10D4\u10DA\u10D8: \u10E3\u10DC\u10D3\u10D0 \u10D8\u10EC\u10E7\u10D4\u10D1\u10DD\u10D3\u10D4\u10E1 "${_issue.prefix}"-\u10D8\u10D7`; } if (_issue.format === "ends_with") return `\u10D0\u10E0\u10D0\u10E1\u10EC\u10DD\u10E0\u10D8 \u10D5\u10D4\u10DA\u10D8: \u10E3\u10DC\u10D3\u10D0 \u10DB\u10D7\u10D0\u10D5\u10E0\u10D3\u10D4\u10D1\u10DD\u10D3\u10D4\u10E1 "${_issue.suffix}"-\u10D8\u10D7`; if (_issue.format === "includes") return `\u10D0\u10E0\u10D0\u10E1\u10EC\u10DD\u10E0\u10D8 \u10D5\u10D4\u10DA\u10D8: \u10E3\u10DC\u10D3\u10D0 \u10E8\u10D4\u10D8\u10EA\u10D0\u10D5\u10D3\u10D4\u10E1 "${_issue.includes}"-\u10E1`; if (_issue.format === "regex") return `\u10D0\u10E0\u10D0\u10E1\u10EC\u10DD\u10E0\u10D8 \u10D5\u10D4\u10DA\u10D8: \u10E3\u10DC\u10D3\u10D0 \u10E8\u10D4\u10D4\u10E1\u10D0\u10D1\u10D0\u10DB\u10D4\u10D1\u10DD\u10D3\u10D4\u10E1 \u10E8\u10D0\u10D1\u10DA\u10DD\u10DC\u10E1 ${_issue.pattern}`; return `\u10D0\u10E0\u10D0\u10E1\u10EC\u10DD\u10E0\u10D8 ${FormatDictionary[_issue.format] ?? issue2.format}`; } case "not_multiple_of": return `\u10D0\u10E0\u10D0\u10E1\u10EC\u10DD\u10E0\u10D8 \u10E0\u10D8\u10EA\u10EE\u10D5\u10D8: \u10E3\u10DC\u10D3\u10D0 \u10D8\u10E7\u10DD\u10E1 ${issue2.divisor}-\u10D8\u10E1 \u10EF\u10D4\u10E0\u10D0\u10D3\u10D8`; case "unrecognized_keys": return `\u10E3\u10EA\u10DC\u10DD\u10D1\u10D8 \u10D2\u10D0\u10E1\u10D0\u10E6\u10D4\u10D1${issue2.keys.length > 1 ? "\u10D4\u10D1\u10D8" : "\u10D8"}: ${joinValues(issue2.keys, ", ")}`; case "invalid_key": return `\u10D0\u10E0\u10D0\u10E1\u10EC\u10DD\u10E0\u10D8 \u10D2\u10D0\u10E1\u10D0\u10E6\u10D4\u10D1\u10D8 ${issue2.origin}-\u10E8\u10D8`; case "invalid_union": return "\u10D0\u10E0\u10D0\u10E1\u10EC\u10DD\u10E0\u10D8 \u10E8\u10D4\u10E7\u10D5\u10D0\u10DC\u10D0"; case "invalid_element": return `\u10D0\u10E0\u10D0\u10E1\u10EC\u10DD\u10E0\u10D8 \u10DB\u10DC\u10D8\u10E8\u10D5\u10DC\u10D4\u10DA\u10DD\u10D1\u10D0 ${issue2.origin}-\u10E8\u10D8`; default: return `\u10D0\u10E0\u10D0\u10E1\u10EC\u10DD\u10E0\u10D8 \u10E8\u10D4\u10E7\u10D5\u10D0\u10DC\u10D0`; } }; }; function ka_default() { return { localeError: error29() }; } // ../../../../node_modules/zod/v4/locales/km.js var error30 = () => { const Sizable = { string: { unit: "\u178F\u17BD\u17A2\u1780\u17D2\u179F\u179A", verb: "\u1782\u17BD\u179A\u1798\u17B6\u1793" }, file: { unit: "\u1794\u17C3", verb: "\u1782\u17BD\u179A\u1798\u17B6\u1793" }, array: { unit: "\u1792\u17B6\u178F\u17BB", verb: "\u1782\u17BD\u179A\u1798\u17B6\u1793" }, set: { unit: "\u1792\u17B6\u178F\u17BB", verb: "\u1782\u17BD\u179A\u1798\u17B6\u1793" }, map: { unit: "\u1792\u17B6\u178F\u17BB", verb: "\u1782\u17BD\u179A\u1798\u17B6\u1793" } }; function getSizing(origin) { return Sizable[origin] ?? null; } const FormatDictionary = { regex: "\u1791\u17B7\u1793\u17D2\u1793\u1793\u17D0\u1799\u1794\u1789\u17D2\u1785\u17BC\u179B", email: "\u17A2\u17B6\u179F\u1799\u178A\u17D2\u178B\u17B6\u1793\u17A2\u17CA\u17B8\u1798\u17C2\u179B", url: "URL", emoji: "\u179F\u1789\u17D2\u1789\u17B6\u17A2\u17B6\u179A\u1798\u17D2\u1798\u178E\u17CD", uuid: "UUID", uuidv4: "UUIDv4", uuidv6: "UUIDv6", nanoid: "nanoid", guid: "GUID", cuid: "cuid", cuid2: "cuid2", ulid: "ULID", xid: "XID", ksuid: "KSUID", datetime: "\u1780\u17B6\u179B\u1794\u179A\u17B7\u1785\u17D2\u1786\u17C1\u1791 \u1793\u17B7\u1784\u1798\u17C9\u17C4\u1784 ISO", date: "\u1780\u17B6\u179B\u1794\u179A\u17B7\u1785\u17D2\u1786\u17C1\u1791 ISO", time: "\u1798\u17C9\u17C4\u1784 ISO", duration: "\u179A\u1799\u17C8\u1796\u17C1\u179B ISO", ipv4: "\u17A2\u17B6\u179F\u1799\u178A\u17D2\u178B\u17B6\u1793 IPv4", ipv6: "\u17A2\u17B6\u179F\u1799\u178A\u17D2\u178B\u17B6\u1793 IPv6", mac: "\u17A2\u17B6\u179F\u1799\u178A\u17D2\u178B\u17B6\u1793 MAC", cidrv4: "\u178A\u17C2\u1793\u17A2\u17B6\u179F\u1799\u178A\u17D2\u178B\u17B6\u1793 IPv4", cidrv6: "\u178A\u17C2\u1793\u17A2\u17B6\u179F\u1799\u178A\u17D2\u178B\u17B6\u1793 IPv6", base64: "\u1781\u17D2\u179F\u17C2\u17A2\u1780\u17D2\u179F\u179A\u17A2\u17CA\u17B7\u1780\u17BC\u178A base64", base64url: "\u1781\u17D2\u179F\u17C2\u17A2\u1780\u17D2\u179F\u179A\u17A2\u17CA\u17B7\u1780\u17BC\u178A base64url", json_string: "\u1781\u17D2\u179F\u17C2\u17A2\u1780\u17D2\u179F\u179A JSON", e164: "\u179B\u17C1\u1781 E.164", credit_card: "\u179B\u17C1\u1781\u1794\u17D0\u178E\u17D2\u178E\u17A5\u178E\u1791\u17B6\u1793", currency_code: "\u1780\u17BC\u178A\u179A\u17BC\u1794\u17B7\u1799\u1794\u17D0\u178E\u17D2\u178E", iban: "IBAN", jwt: "JWT", template_literal: "\u1791\u17B7\u1793\u17D2\u1793\u1793\u17D0\u1799\u1794\u1789\u17D2\u1785\u17BC\u179B" }; const TypeDictionary = { nan: "NaN", number: "\u179B\u17C1\u1781", array: "\u17A2\u17B6\u179A\u17C1 (Array)", null: "\u1782\u17D2\u1798\u17B6\u1793\u178F\u1798\u17D2\u179B\u17C3 (null)" }; return (issue2) => { switch (issue2.code) { case "invalid_type": { const expected = TypeDictionary[issue2.expected] ?? issue2.expected; const receivedType = parsedType(issue2.input); const received = TypeDictionary[receivedType] ?? receivedType; if (/^[A-Z]/.test(issue2.expected)) { return `\u1791\u17B7\u1793\u17D2\u1793\u1793\u17D0\u1799\u1794\u1789\u17D2\u1785\u17BC\u179B\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u1780\u17B6\u179A instanceof ${issue2.expected} \u1794\u17C9\u17BB\u1793\u17D2\u178F\u17C2\u1791\u1791\u17BD\u179B\u1794\u17B6\u1793 ${received}`; } return `\u1791\u17B7\u1793\u17D2\u1793\u1793\u17D0\u1799\u1794\u1789\u17D2\u1785\u17BC\u179B\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u1780\u17B6\u179A ${expected} \u1794\u17C9\u17BB\u1793\u17D2\u178F\u17C2\u1791\u1791\u17BD\u179B\u1794\u17B6\u1793 ${received}`; } case "invalid_value": if (issue2.values.length === 1) return `\u1791\u17B7\u1793\u17D2\u1793\u1793\u17D0\u1799\u1794\u1789\u17D2\u1785\u17BC\u179B\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u1780\u17B6\u179A ${stringifyPrimitive(issue2.values[0])}`; return `\u1787\u1798\u17D2\u179A\u17BE\u179F\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u1787\u17B6\u1798\u17BD\u1799\u1780\u17D2\u1793\u17BB\u1784\u1785\u17C6\u178E\u17C4\u1798 ${joinValues(issue2.values, "|")}`; case "too_big": { const adj = issue2.inclusive ? "<=" : "<"; const sizing = getSizing(issue2.origin); if (sizing) return `\u1792\u17C6\u1796\u17C1\u1780\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u1780\u17B6\u179A ${issue2.origin ?? "\u178F\u1798\u17D2\u179B\u17C3"} ${adj} ${issue2.maximum.toString()} ${sizing.unit ?? "\u1792\u17B6\u178F\u17BB"}`; return `\u1792\u17C6\u1796\u17C1\u1780\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u1780\u17B6\u179A ${issue2.origin ?? "\u178F\u1798\u17D2\u179B\u17C3"} ${adj} ${issue2.maximum.toString()}`; } case "too_small": { const adj = issue2.inclusive ? ">=" : ">"; const sizing = getSizing(issue2.origin); if (sizing) { return `\u178F\u17BC\u1785\u1796\u17C1\u1780\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u1780\u17B6\u179A ${issue2.origin} ${adj} ${issue2.minimum.toString()} ${sizing.unit}`; } return `\u178F\u17BC\u1785\u1796\u17C1\u1780\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u1780\u17B6\u179A ${issue2.origin} ${adj} ${issue2.minimum.toString()}`; } case "invalid_format": { const _issue = issue2; if (_issue.format === "starts_with") { return `\u1781\u17D2\u179F\u17C2\u17A2\u1780\u17D2\u179F\u179A\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u1785\u17B6\u1794\u17CB\u1795\u17D2\u178F\u17BE\u1798\u178A\u17C4\u1799 "${_issue.prefix}"`; } if (_issue.format === "ends_with") return `\u1781\u17D2\u179F\u17C2\u17A2\u1780\u17D2\u179F\u179A\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u1794\u1789\u17D2\u1785\u1794\u17CB\u178A\u17C4\u1799 "${_issue.suffix}"`; if (_issue.format === "includes") return `\u1781\u17D2\u179F\u17C2\u17A2\u1780\u17D2\u179F\u179A\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u1798\u17B6\u1793 "${_issue.includes}"`; if (_issue.format === "regex") return `\u1781\u17D2\u179F\u17C2\u17A2\u1780\u17D2\u179F\u179A\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u178F\u17C2\u1795\u17D2\u1782\u17BC\u1795\u17D2\u1782\u1784\u1793\u17B9\u1784\u1791\u1798\u17D2\u179A\u1784\u17CB\u178A\u17C2\u179B\u1794\u17B6\u1793\u1780\u17C6\u178E\u178F\u17CB ${_issue.pattern}`; return `\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C\u17D6 ${FormatDictionary[_issue.format] ?? issue2.format}`; } case "not_multiple_of": return `\u179B\u17C1\u1781\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u178F\u17C2\u1787\u17B6\u1796\u17A0\u17BB\u1782\u17BB\u178E\u1793\u17C3 ${issue2.divisor}`; case "unrecognized_keys": return `\u179A\u1780\u1783\u17BE\u1789\u179F\u17C4\u1798\u17B7\u1793\u179F\u17D2\u1782\u17B6\u179B\u17CB\u17D6 ${joinValues(issue2.keys, ", ")}`; case "invalid_key": return `\u179F\u17C4\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C\u1793\u17C5\u1780\u17D2\u1793\u17BB\u1784 ${issue2.origin}`; case "invalid_union": return `\u1791\u17B7\u1793\u17D2\u1793\u1793\u17D0\u1799\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C`; case "invalid_element": return `\u1791\u17B7\u1793\u17D2\u1793\u1793\u17D0\u1799\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C\u1793\u17C5\u1780\u17D2\u1793\u17BB\u1784 ${issue2.origin}`; default: return `\u1791\u17B7\u1793\u17D2\u1793\u1793\u17D0\u1799\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C`; } }; }; function km_default() { return { localeError: error30() }; } // ../../../../node_modules/zod/v4/locales/kh.js function kh_default() { return km_default(); } // ../../../../node_modules/zod/v4/locales/kn.js var error31 = () => { const Sizable = { string: { unit: "\u0C85\u0C95\u0CCD\u0CB7\u0CB0\u0C97\u0CB3\u0CC1", verb: "\u0CB9\u0CCA\u0C82\u0CA6\u0CB2\u0CC1" }, file: { unit: "\u0CAC\u0CC8\u0C9F\u0CCD\u200C\u0C97\u0CB3\u0CC1", verb: "\u0CB9\u0CCA\u0C82\u0CA6\u0CB2\u0CC1" }, array: { unit: "\u0CB5\u0CB8\u0CCD\u0CA4\u0CC1\u0C97\u0CB3\u0CC1", verb: "\u0CB9\u0CCA\u0C82\u0CA6\u0CB2\u0CC1" }, set: { unit: "\u0CB5\u0CB8\u0CCD\u0CA4\u0CC1\u0C97\u0CB3\u0CC1", verb: "\u0CB9\u0CCA\u0C82\u0CA6\u0CB2\u0CC1" }, map: { unit: "entries", verb: "\u0CB9\u0CCA\u0C82\u0CA6\u0CB2\u0CC1" } }; function getSizing(origin) { return Sizable[origin] ?? null; } const FormatDictionary = { regex: "\u0C87\u0CA8\u0CCD\u0CAA\u0CC1\u0C9F\u0CCD", email: "email \u0CB5\u0CBF\u0CB3\u0CBE\u0CB8", url: "URL", emoji: "emoji", uuid: "UUID", uuidv4: "UUIDv4", uuidv6: "UUIDv6", nanoid: "nanoid", guid: "GUID", cuid: "cuid", cuid2: "cuid2", ulid: "ULID", xid: "XID", ksuid: "KSUID", datetime: "ISO \u0CA6\u0CBF\u0CA8\u0CBE\u0C82\u0C95\u0CA6 \u0CB8\u0CAE\u0CAF", date: "ISO \u0CA6\u0CBF\u0CA8\u0CBE\u0C82\u0C95", time: "ISO \u0CB8\u0CAE\u0CAF", duration: "ISO \u0C85\u0CB5\u0CA7\u0CBF", ipv4: "IPv4 \u0CB5\u0CBF\u0CB3\u0CBE\u0CB8", ipv6: "IPv6 \u0CB5\u0CBF\u0CB3\u0CBE\u0CB8", mac: "MAC \u0CB5\u0CBF\u0CB3\u0CBE\u0CB8", cidrv4: "IPv4 \u0CB5\u0CCD\u0CAF\u0CBE\u0CAA\u0CCD\u0CA4\u0CBF\u0CAF", cidrv6: "IPv6 \u0CB5\u0CCD\u0CAF\u0CBE\u0CAA\u0CCD\u0CA4\u0CBF\u0CAF", base64: "base64-encoded\u0CB8\u0CCD\u0C9F\u0CCD\u0CB0\u0CBF\u0C82\u0C97\u0CCD", base64url: "base64url-encoded\u0CB8\u0CCD\u0C9F\u0CCD\u0CB0\u0CBF\u0C82\u0C97\u0CCD", json_string: "JSON\u0CB8\u0CCD\u0C9F\u0CCD\u0CB0\u0CBF\u0C82\u0C97\u0CCD", e164: "E.164 \u0CB8\u0C82\u0C96\u0CCD\u0CAF\u0CC6", credit_card: "\u0C95\u0CCD\u0CB0\u0CC6\u0CA1\u0CBF\u0C9F\u0CCD \u0C95\u0CBE\u0CB0\u0CCD\u0CA1\u0CCD \u0CB8\u0C82\u0C96\u0CCD\u0CAF\u0CC6", currency_code: "\u0C95\u0CB0\u0CC6\u0CA8\u0CCD\u0CB8\u0CBF \u0C95\u0CCB\u0CA1\u0CCD", iban: "IBAN", jwt: "JWT", template_literal: "\u0C87\u0CA8\u0CCD\u0CAA\u0CC1\u0C9F\u0CCD" }; const TypeDictionary = { // Compatibility: "nan" -> "NaN" for display nan: "NaN" // All other type names omitted - they fall back to raw values via ?? operator }; return (issue2) => { switch (issue2.code) { case "invalid_type": { const expected = TypeDictionary[issue2.expected] ?? issue2.expected; const receivedType = parsedType(issue2.input); const received = TypeDictionary[receivedType] ?? receivedType; return `\u0C85\u0CAE\u0CBE\u0CA8\u0CCD\u0CAF \u0C87\u0CA8\u0CCD\u200C\u0CAA\u0CC1\u0C9F\u0CCD: \u0CA8\u0CBF\u0CB0\u0CC0\u0C95\u0CCD\u0CB7\u0CBF\u0CB8\u0CB2\u0CBE\u0C97\u0CBF\u0CA6\u0CC6 ${expected}, \u0CB8\u0CCD\u0CB5\u0CC0\u0C95\u0CB0\u0CBF\u0CB8\u0CBF\u0CA6\u0CA8\u0CC1 ${received}`; } case "invalid_value": if (issue2.values.length === 1) return `\u0C85\u0CAE\u0CBE\u0CA8\u0CCD\u0CAF \u0C87\u0CA8\u0CCD\u200C\u0CAA\u0CC1\u0C9F\u0CCD: \u0CA8\u0CBF\u0CB0\u0CC0\u0C95\u0CCD\u0CB7\u0CBF\u0CB8\u0CB2\u0CBE\u0C97\u0CBF\u0CA6\u0CC6 ${stringifyPrimitive(issue2.values[0])}`; return `\u0C85\u0CAE\u0CBE\u0CA8\u0CCD\u0CAF \u0C86\u0CAF\u0CCD\u0C95\u0CC6: \u0C87\u0CB5\u0CC1\u0C97\u0CB3\u0CB2\u0CCD\u0CB2\u0CBF \u0C92\u0C82\u0CA6\u0CA8\u0CCD\u0CA8\u0CC1 \u0CA8\u0CBF\u0CB0\u0CC0\u0C95\u0CCD\u0CB7\u0CBF\u0CB8\u0CB2\u0CBE\u0C97\u0CBF\u0CA6\u0CC6 ${joinValues(issue2.values, "|")}`; case "too_big": { const adj = issue2.inclusive ? "<=" : "<"; const sizing = getSizing(issue2.origin); if (sizing) return `\u0CA4\u0CC1\u0C82\u0CAC\u0CBE \u0CA6\u0CCA\u0CA1\u0CCD\u0CA1\u0CA6\u0CC1: \u0CA8\u0CBF\u0CB0\u0CC0\u0C95\u0CCD\u0CB7\u0CBF\u0CB8\u0CB2\u0CBE\u0C97\u0CBF\u0CA6\u0CC6 ${issue2.origin ?? "value"} \u0CB9\u0CCA\u0C82\u0CA6\u0CB2\u0CC1 ${adj}${issue2.maximum.toString()} ${sizing.unit ?? "\u0C85\u0C82\u0CB6\u0C97\u0CB3\u0CC1"}`; return `\u0CA4\u0CC1\u0C82\u0CAC\u0CBE \u0CA6\u0CCA\u0CA1\u0CCD\u0CA1\u0CA6\u0CC1: \u0CA8\u0CBF\u0CB0\u0CC0\u0C95\u0CCD\u0CB7\u0CBF\u0CB8\u0CB2\u0CBE\u0C97\u0CBF\u0CA6\u0CC6 ${issue2.origin ?? "value"} \u0C8E\u0C82\u0CA6\u0CC1 ${adj}${issue2.maximum.toString()}`; } case "too_small": { const adj = issue2.inclusive ? ">=" : ">"; const sizing = getSizing(issue2.origin); if (sizing) { return `\u0CA4\u0CC1\u0C82\u0CAC\u0CBE \u0C9A\u0CBF\u0C95\u0CCD\u0C95\u0CA6\u0CC1: \u0CA8\u0CBF\u0CB0\u0CC0\u0C95\u0CCD\u0CB7\u0CBF\u0CB8\u0CB2\u0CBE\u0C97\u0CBF\u0CA6\u0CC6 ${issue2.origin} \u0CB9\u0CCA\u0C82\u0CA6\u0CB2\u0CC1 ${adj}${issue2.minimum.toString()} ${sizing.unit}`; } return `\u0CA4\u0CC1\u0C82\u0CAC\u0CBE \u0C9A\u0CBF\u0C95\u0CCD\u0C95\u0CA6\u0CC1: \u0CA8\u0CBF\u0CB0\u0CC0\u0C95\u0CCD\u0CB7\u0CBF\u0CB8\u0CB2\u0CBE\u0C97\u0CBF\u0CA6\u0CC6 ${issue2.origin} \u0C8E\u0C82\u0CA6\u0CC1 ${adj}${issue2.minimum.toString()}`; } case "invalid_format": { const _issue = issue2; if (_issue.format === "starts_with") { return `\u0C85\u0CAE\u0CBE\u0CA8\u0CCD\u0CAF\u0CB5\u0CBE\u0CA6 \u0CB8\u0CCD\u0C9F\u0CCD\u0CB0\u0CBF\u0C82\u0C97\u0CCD: \u0C87\u0CA6\u0CB0\u0CCA\u0C82\u0CA6\u0CBF\u0C97\u0CC6 \u0CAA\u0CCD\u0CB0\u0CBE\u0CB0\u0C82\u0CAD\u0CBF\u0CB8\u0CAC\u0CC7\u0C95\u0CC1 "${_issue.prefix}"`; } if (_issue.format === "ends_with") return `\u0C85\u0CAE\u0CBE\u0CA8\u0CCD\u0CAF\u0CB5\u0CBE\u0CA6 \u0CB8\u0CCD\u0C9F\u0CCD\u0CB0\u0CBF\u0C82\u0C97\u0CCD: \u0C87\u0CA6\u0CB0\u0CCA\u0C82\u0CA6\u0CBF\u0C97\u0CC6 \u0C95\u0CCA\u0CA8\u0CC6\u0C97\u0CCA\u0CB3\u0CCD\u0CB3\u0CAC\u0CC7\u0C95\u0CC1 "${_issue.suffix}"`; if (_issue.format === "includes") return `\u0C85\u0CAE\u0CBE\u0CA8\u0CCD\u0CAF \u0CB8\u0CCD\u0C9F\u0CCD\u0CB0\u0CBF\u0C82\u0C97\u0CCD: \u0C92\u0CB3\u0C97\u0CCA\u0C82\u0CA1\u0CBF\u0CB0\u0CAC\u0CC7\u0C95\u0CC1 "${_issue.includes}"`; if (_issue.format === "regex") return `\u0C85\u0CAE\u0CBE\u0CA8\u0CCD\u0CAF\u0CB5\u0CBE\u0CA6 \u0CB8\u0CCD\u0C9F\u0CCD\u0CB0\u0CBF\u0C82\u0C97\u0CCD: \u0CAE\u0CBE\u0CA6\u0CB0\u0CBF\u0C97\u0CC6 \u0CB9\u0CCA\u0C82\u0CA6\u0CBF\u0C95\u0CC6\u0CAF\u0CBE\u0C97\u0CAC\u0CC7\u0C95\u0CC1 ${_issue.pattern}`; return `\u0C85\u0CAE\u0CBE\u0CA8\u0CCD\u0CAF ${FormatDictionary[_issue.format] ?? issue2.format}`; } case "not_multiple_of": return `\u0C85\u0CAE\u0CBE\u0CA8\u0CCD\u0CAF \u0CB8\u0C82\u0C96\u0CCD\u0CAF\u0CC6: \u0CAC\u0CB9\u0CC1\u0CB8\u0C82\u0C96\u0CCD\u0CAF\u0CC6\u0CAF\u0CBE\u0C97\u0CBF\u0CB0\u0CAC\u0CC7\u0C95\u0CC1 ${issue2.divisor}`; case "unrecognized_keys": return `\u0C97\u0CC1\u0CB0\u0CC1\u0CA4\u0CBF\u0CB8\u0CB2\u0CBE\u0C97\u0CA6 \u0C95\u0CC0 ${issue2.keys.length > 1 ? "s" : ""}: ${joinValues(issue2.keys, ", ")}`; case "invalid_key": return `\u0C85\u0CAE\u0CBE\u0CA8\u0CCD\u0CAF\u0CB5\u0CBE\u0CA6 \u0C95\u0CC0 \u0C87\u0CA8\u0CCD ${issue2.origin}`; case "invalid_union": if (issue2.options && Array.isArray(issue2.options) && issue2.options.length > 0) { const opts = issue2.options.map((o) => `'${o}'`).join(" | "); return `\u0C85\u0CAE\u0CBE\u0CA8\u0CCD\u0CAF \u0CA4\u0CBE\u0CB0\u0CA4\u0CAE\u0CCD\u0CAF \u0CAE\u0CCC\u0CB2\u0CCD\u0CAF. \u0CA8\u0CBF\u0CB0\u0CC0\u0C95\u0CCD\u0CB7\u0CBF\u0CB8\u0CB2\u0CBE\u0C97\u0CBF\u0CA6\u0CC6 ${opts}`; } return "\u0C85\u0CAE\u0CBE\u0CA8\u0CCD\u0CAF \u0C87\u0CA8\u0CCD\u200C\u0CAA\u0CC1\u0C9F\u0CCD"; case "invalid_element": return `\u0CB0\u0CB2\u0CCD\u0CB2\u0CBF \u0C85\u0CAE\u0CBE\u0CA8\u0CCD\u0CAF \u0CAE\u0CCC\u0CB2\u0CCD\u0CAF ${issue2.origin}`; default: return `\u0C85\u0CAE\u0CBE\u0CA8\u0CCD\u0CAF \u0C87\u0CA8\u0CCD\u200C\u0CAA\u0CC1\u0C9F\u0CCD`; } }; }; function kn_default() { return { localeError: error31() }; } // ../../../../node_modules/zod/v4/locales/ko.js var error32 = () => { const Sizable = { string: { unit: "\uBB38\uC790", verb: "to have" }, file: { unit: "\uBC14\uC774\uD2B8", verb: "to have" }, array: { unit: "\uAC1C", verb: "to have" }, set: { unit: "\uAC1C", verb: "to have" }, map: { unit: "\uAC1C", verb: "to have" } }; function getSizing(origin) { return Sizable[origin] ?? null; } const FormatDictionary = { regex: "\uC785\uB825", email: "\uC774\uBA54\uC77C \uC8FC\uC18C", url: "URL", emoji: "\uC774\uBAA8\uC9C0", uuid: "UUID", uuidv4: "UUIDv4", uuidv6: "UUIDv6", nanoid: "nanoid", guid: "GUID", cuid: "cuid", cuid2: "cuid2", ulid: "ULID", xid: "XID", ksuid: "KSUID", datetime: "ISO \uB0A0\uC9DC\uC2DC\uAC04", date: "ISO \uB0A0\uC9DC", time: "ISO \uC2DC\uAC04", duration: "ISO \uAE30\uAC04", ipv4: "IPv4 \uC8FC\uC18C", ipv6: "IPv6 \uC8FC\uC18C", mac: "MAC \uC8FC\uC18C", cidrv4: "IPv4 \uBC94\uC704", cidrv6: "IPv6 \uBC94\uC704", base64: "base64 \uC778\uCF54\uB529 \uBB38\uC790\uC5F4", base64url: "base64url \uC778\uCF54\uB529 \uBB38\uC790\uC5F4", json_string: "JSON \uBB38\uC790\uC5F4", e164: "E.164 \uBC88\uD638", credit_card: "\uC2E0\uC6A9\uCE74\uB4DC \uBC88\uD638", currency_code: "\uD1B5\uD654 \uCF54\uB4DC", iban: "IBAN", jwt: "JWT", template_literal: "\uC785\uB825" }; const TypeDictionary = { nan: "NaN" }; return (issue2) => { switch (issue2.code) { case "invalid_type": { const expected = TypeDictionary[issue2.expected] ?? issue2.expected; const receivedType = parsedType(issue2.input); const received = TypeDictionary[receivedType] ?? receivedType; if (/^[A-Z]/.test(issue2.expected)) { return `\uC798\uBABB\uB41C \uC785\uB825: \uC608\uC0C1 \uD0C0\uC785\uC740 instanceof ${issue2.expected}, \uBC1B\uC740 \uD0C0\uC785\uC740 ${received}\uC785\uB2C8\uB2E4`; } return `\uC798\uBABB\uB41C \uC785\uB825: \uC608\uC0C1 \uD0C0\uC785\uC740 ${expected}, \uBC1B\uC740 \uD0C0\uC785\uC740 ${received}\uC785\uB2C8\uB2E4`; } case "invalid_value": if (issue2.values.length === 1) return `\uC798\uBABB\uB41C \uC785\uB825: \uAC12\uC740 ${stringifyPrimitive(issue2.values[0])} \uC774\uC5B4\uC57C \uD569\uB2C8\uB2E4`; return `\uC798\uBABB\uB41C \uC635\uC158: ${joinValues(issue2.values, "\uB610\uB294 ")} \uC911 \uD558\uB098\uC5EC\uC57C \uD569\uB2C8\uB2E4`; case "too_big": { const adj = issue2.inclusive ? "\uC774\uD558" : "\uBBF8\uB9CC"; const suffix = adj === "\uBBF8\uB9CC" ? "\uC774\uC5B4\uC57C \uD569\uB2C8\uB2E4" : "\uC5EC\uC57C \uD569\uB2C8\uB2E4"; const sizing = getSizing(issue2.origin); const unit = sizing?.unit ?? "\uC694\uC18C"; if (sizing) return `${issue2.origin ?? "\uAC12"}\uC774 \uB108\uBB34 \uD07D\uB2C8\uB2E4: ${issue2.maximum.toString()}${unit} ${adj}${suffix}`; return `${issue2.origin ?? "\uAC12"}\uC774 \uB108\uBB34 \uD07D\uB2C8\uB2E4: ${issue2.maximum.toString()} ${adj}${suffix}`; } case "too_small": { const adj = issue2.inclusive ? "\uC774\uC0C1" : "\uCD08\uACFC"; const suffix = adj === "\uC774\uC0C1" ? "\uC774\uC5B4\uC57C \uD569\uB2C8\uB2E4" : "\uC5EC\uC57C \uD569\uB2C8\uB2E4"; const sizing = getSizing(issue2.origin); const unit = sizing?.unit ?? "\uC694\uC18C"; if (sizing) { return `${issue2.origin ?? "\uAC12"}\uC774 \uB108\uBB34 \uC791\uC2B5\uB2C8\uB2E4: ${issue2.minimum.toString()}${unit} ${adj}${suffix}`; } return `${issue2.origin ?? "\uAC12"}\uC774 \uB108\uBB34 \uC791\uC2B5\uB2C8\uB2E4: ${issue2.minimum.toString()} ${adj}${suffix}`; } case "invalid_format": { const _issue = issue2; if (_issue.format === "starts_with") { return `\uC798\uBABB\uB41C \uBB38\uC790\uC5F4: "${_issue.prefix}"(\uC73C)\uB85C \uC2DC\uC791\uD574\uC57C \uD569\uB2C8\uB2E4`; } if (_issue.format === "ends_with") return `\uC798\uBABB\uB41C \uBB38\uC790\uC5F4: "${_issue.suffix}"(\uC73C)\uB85C \uB05D\uB098\uC57C \uD569\uB2C8\uB2E4`; if (_issue.format === "includes") return `\uC798\uBABB\uB41C \uBB38\uC790\uC5F4: "${_issue.includes}"\uC744(\uB97C) \uD3EC\uD568\uD574\uC57C \uD569\uB2C8\uB2E4`; if (_issue.format === "regex") return `\uC798\uBABB\uB41C \uBB38\uC790\uC5F4: \uC815\uADDC\uC2DD ${_issue.pattern} \uD328\uD134\uACFC \uC77C\uCE58\uD574\uC57C \uD569\uB2C8\uB2E4`; return `\uC798\uBABB\uB41C ${FormatDictionary[_issue.format] ?? issue2.format}`; } case "not_multiple_of": return `\uC798\uBABB\uB41C \uC22B\uC790: ${issue2.divisor}\uC758 \uBC30\uC218\uC5EC\uC57C \uD569\uB2C8\uB2E4`; case "unrecognized_keys": return `\uC778\uC2DD\uD560 \uC218 \uC5C6\uB294 \uD0A4: ${joinValues(issue2.keys, ", ")}`; case "invalid_key": return `\uC798\uBABB\uB41C \uD0A4: ${issue2.origin}`; case "invalid_union": return `\uC798\uBABB\uB41C \uC785\uB825`; case "invalid_element": return `\uC798\uBABB\uB41C \uAC12: ${issue2.origin}`; default: return `\uC798\uBABB\uB41C \uC785\uB825`; } }; }; function ko_default() { return { localeError: error32() }; } // ../../../../node_modules/zod/v4/locales/lt.js var capitalizeFirstCharacter = (text) => { return text.charAt(0).toUpperCase() + text.slice(1); }; function getUnitTypeFromNumber(number4) { const abs = Math.abs(number4); const last = abs % 10; const last2 = abs % 100; if (last2 >= 11 && last2 <= 19 || last === 0) return "many"; if (last === 1) return "one"; return "few"; } var error33 = () => { const Sizable = { string: { unit: { one: "simbolis", few: "simboliai", many: "simboli\u0173" }, verb: { smaller: { inclusive: "turi b\u016Bti ne ilgesn\u0117 kaip", notInclusive: "turi b\u016Bti trumpesn\u0117 kaip" }, bigger: { inclusive: "turi b\u016Bti ne trumpesn\u0117 kaip", notInclusive: "turi b\u016Bti ilgesn\u0117 kaip" } } }, file: { unit: { one: "baitas", few: "baitai", many: "bait\u0173" }, verb: { smaller: { inclusive: "turi b\u016Bti ne didesnis kaip", notInclusive: "turi b\u016Bti ma\u017Eesnis kaip" }, bigger: { inclusive: "turi b\u016Bti ne ma\u017Eesnis kaip", notInclusive: "turi b\u016Bti didesnis kaip" } } }, array: { unit: { one: "element\u0105", few: "elementus", many: "element\u0173" }, verb: { smaller: { inclusive: "turi tur\u0117ti ne daugiau kaip", notInclusive: "turi tur\u0117ti ma\u017Eiau kaip" }, bigger: { inclusive: "turi tur\u0117ti ne ma\u017Eiau kaip", notInclusive: "turi tur\u0117ti daugiau kaip" } } }, set: { unit: { one: "element\u0105", few: "elementus", many: "element\u0173" }, verb: { smaller: { inclusive: "turi tur\u0117ti ne daugiau kaip", notInclusive: "turi tur\u0117ti ma\u017Eiau kaip" }, bigger: { inclusive: "turi tur\u0117ti ne ma\u017Eiau kaip", notInclusive: "turi tur\u0117ti daugiau kaip" } } } }; function getSizing(origin, unitType, inclusive, targetShouldBe) { const result = Sizable[origin] ?? null; if (result === null) return result; return { unit: result.unit[unitType], verb: result.verb[targetShouldBe][inclusive ? "inclusive" : "notInclusive"] }; } const FormatDictionary = { regex: "\u012Fvestis", email: "el. pa\u0161to adresas", url: "URL", emoji: "jaustukas", uuid: "UUID", uuidv4: "UUIDv4", uuidv6: "UUIDv6", nanoid: "nanoid", guid: "GUID", cuid: "cuid", cuid2: "cuid2", ulid: "ULID", xid: "XID", ksuid: "KSUID", datetime: "ISO data ir laikas", date: "ISO data", time: "ISO laikas", duration: "ISO trukm\u0117", ipv4: "IPv4 adresas", ipv6: "IPv6 adresas", mac: "MAC adresas", cidrv4: "IPv4 tinklo prefiksas (CIDR)", cidrv6: "IPv6 tinklo prefiksas (CIDR)", base64: "base64 u\u017Ekoduota eilut\u0117", base64url: "base64url u\u017Ekoduota eilut\u0117", json_string: "JSON eilut\u0117", e164: "E.164 numeris", credit_card: "kredito kortel\u0117s numeris", currency_code: "valiutos kodas", iban: "IBAN", jwt: "JWT", template_literal: "\u012Fvestis" }; const TypeDictionary = { nan: "NaN", number: "skai\u010Dius", bigint: "sveikasis skai\u010Dius", string: "eilut\u0117", boolean: "login\u0117 reik\u0161m\u0117", undefined: "neapibr\u0117\u017Eta reik\u0161m\u0117", function: "funkcija", symbol: "simbolis", array: "masyvas", object: "objektas", null: "nulin\u0117 reik\u0161m\u0117" }; return (issue2) => { switch (issue2.code) { case "invalid_type": { const expected = TypeDictionary[issue2.expected] ?? issue2.expected; const receivedType = parsedType(issue2.input); const received = TypeDictionary[receivedType] ?? receivedType; if (/^[A-Z]/.test(issue2.expected)) { return `Gautas tipas ${received}, o tik\u0117tasi - instanceof ${issue2.expected}`; } return `Gautas tipas ${received}, o tik\u0117tasi - ${expected}`; } case "invalid_value": if (issue2.values.length === 1) return `Privalo b\u016Bti ${stringifyPrimitive(issue2.values[0])}`; return `Privalo b\u016Bti vienas i\u0161 ${joinValues(issue2.values, "|")} pasirinkim\u0173`; case "too_big": { const origin = TypeDictionary[issue2.origin] ?? issue2.origin; const sizing = getSizing(issue2.origin, getUnitTypeFromNumber(Number(issue2.maximum)), issue2.inclusive ?? false, "smaller"); if (sizing?.verb) return `${capitalizeFirstCharacter(origin ?? issue2.origin ?? "reik\u0161m\u0117")} ${sizing.verb} ${issue2.maximum.toString()} ${sizing.unit ?? "element\u0173"}`; const adj = issue2.inclusive ? "ne didesnis kaip" : "ma\u017Eesnis kaip"; return `${capitalizeFirstCharacter(origin ?? issue2.origin ?? "reik\u0161m\u0117")} turi b\u016Bti ${adj} ${issue2.maximum.toString()} ${sizing?.unit}`; } case "too_small": { const origin = TypeDictionary[issue2.origin] ?? issue2.origin; const sizing = getSizing(issue2.origin, getUnitTypeFromNumber(Number(issue2.minimum)), issue2.inclusive ?? false, "bigger"); if (sizing?.verb) return `${capitalizeFirstCharacter(origin ?? issue2.origin ?? "reik\u0161m\u0117")} ${sizing.verb} ${issue2.minimum.toString()} ${sizing.unit ?? "element\u0173"}`; const adj = issue2.inclusive ? "ne ma\u017Eesnis kaip" : "didesnis kaip"; return `${capitalizeFirstCharacter(origin ?? issue2.origin ?? "reik\u0161m\u0117")} turi b\u016Bti ${adj} ${issue2.minimum.toString()} ${sizing?.unit}`; } case "invalid_format": { const _issue = issue2; if (_issue.format === "starts_with") { return `Eilut\u0117 privalo prasid\u0117ti "${_issue.prefix}"`; } if (_issue.format === "ends_with") return `Eilut\u0117 privalo pasibaigti "${_issue.suffix}"`; if (_issue.format === "includes") return `Eilut\u0117 privalo \u012Ftraukti "${_issue.includes}"`; if (_issue.format === "regex") return `Eilut\u0117 privalo atitikti ${_issue.pattern}`; return `Neteisingas ${FormatDictionary[_issue.format] ?? issue2.format}`; } case "not_multiple_of": return `Skai\u010Dius privalo b\u016Bti ${issue2.divisor} kartotinis.`; case "unrecognized_keys": return `Neatpa\u017Eint${issue2.keys.length > 1 ? "i" : "as"} rakt${issue2.keys.length > 1 ? "ai" : "as"}: ${joinValues(issue2.keys, ", ")}`; case "invalid_key": return "Rastas klaidingas raktas"; case "invalid_union": return "Klaidinga \u012Fvestis"; case "invalid_element": { const origin = TypeDictionary[issue2.origin] ?? issue2.origin; return `${capitalizeFirstCharacter(origin ?? issue2.origin ?? "reik\u0161m\u0117")} turi klaiding\u0105 \u012Fvest\u012F`; } default: return "Klaidinga \u012Fvestis"; } }; }; function lt_default() { return { localeError: error33() }; } // ../../../../node_modules/zod/v4/locales/mk.js var error34 = () => { const Sizable = { string: { unit: "\u0437\u043D\u0430\u0446\u0438", verb: "\u0434\u0430 \u0438\u043C\u0430\u0430\u0442" }, file: { unit: "\u0431\u0430\u0458\u0442\u0438", verb: "\u0434\u0430 \u0438\u043C\u0430\u0430\u0442" }, array: { unit: "\u0441\u0442\u0430\u0432\u043A\u0438", verb: "\u0434\u0430 \u0438\u043C\u0430\u0430\u0442" }, set: { unit: "\u0441\u0442\u0430\u0432\u043A\u0438", verb: "\u0434\u0430 \u0438\u043C\u0430\u0430\u0442" }, map: { unit: "\u0441\u0442\u0430\u0432\u043A\u0438", verb: "\u0434\u0430 \u0438\u043C\u0430\u0430\u0442" } }; function getSizing(origin) { return Sizable[origin] ?? null; } const FormatDictionary = { regex: "\u0432\u043D\u0435\u0441", email: "\u0430\u0434\u0440\u0435\u0441\u0430 \u043D\u0430 \u0435-\u043F\u043E\u0448\u0442\u0430", url: "URL", emoji: "\u0435\u043C\u043E\u045F\u0438", uuid: "UUID", uuidv4: "UUIDv4", uuidv6: "UUIDv6", nanoid: "nanoid", guid: "GUID", cuid: "cuid", cuid2: "cuid2", ulid: "ULID", xid: "XID", ksuid: "KSUID", datetime: "ISO \u0434\u0430\u0442\u0443\u043C \u0438 \u0432\u0440\u0435\u043C\u0435", date: "ISO \u0434\u0430\u0442\u0443\u043C", time: "ISO \u0432\u0440\u0435\u043C\u0435", duration: "ISO \u0432\u0440\u0435\u043C\u0435\u0442\u0440\u0430\u0435\u045A\u0435", ipv4: "IPv4 \u0430\u0434\u0440\u0435\u0441\u0430", ipv6: "IPv6 \u0430\u0434\u0440\u0435\u0441\u0430", mac: "MAC \u0430\u0434\u0440\u0435\u0441\u0430", cidrv4: "IPv4 \u043E\u043F\u0441\u0435\u0433", cidrv6: "IPv6 \u043E\u043F\u0441\u0435\u0433", base64: "base64-\u0435\u043D\u043A\u043E\u0434\u0438\u0440\u0430\u043D\u0430 \u043D\u0438\u0437\u0430", base64url: "base64url-\u0435\u043D\u043A\u043E\u0434\u0438\u0440\u0430\u043D\u0430 \u043D\u0438\u0437\u0430", json_string: "JSON \u043D\u0438\u0437\u0430", e164: "E.164 \u0431\u0440\u043E\u0458", credit_card: "\u0431\u0440\u043E\u0458 \u043D\u0430 \u043A\u0440\u0435\u0434\u0438\u0442\u043D\u0430 \u043A\u0430\u0440\u0442\u0438\u0447\u043A\u0430", currency_code: "\u043A\u043E\u0434 \u043D\u0430 \u0432\u0430\u043B\u0443\u0442\u0430", iban: "IBAN", jwt: "JWT", template_literal: "\u0432\u043D\u0435\u0441" }; const TypeDictionary = { nan: "NaN", number: "\u0431\u0440\u043E\u0458", array: "\u043D\u0438\u0437\u0430" }; return (issue2) => { switch (issue2.code) { case "invalid_type": { const expected = TypeDictionary[issue2.expected] ?? issue2.expected; const receivedType = parsedType(issue2.input); const received = TypeDictionary[receivedType] ?? receivedType; if (/^[A-Z]/.test(issue2.expected)) { return `\u0413\u0440\u0435\u0448\u0435\u043D \u0432\u043D\u0435\u0441: \u0441\u0435 \u043E\u0447\u0435\u043A\u0443\u0432\u0430 instanceof ${issue2.expected}, \u043F\u0440\u0438\u043C\u0435\u043D\u043E ${received}`; } return `\u0413\u0440\u0435\u0448\u0435\u043D \u0432\u043D\u0435\u0441: \u0441\u0435 \u043E\u0447\u0435\u043A\u0443\u0432\u0430 ${expected}, \u043F\u0440\u0438\u043C\u0435\u043D\u043E ${received}`; } case "invalid_value": if (issue2.values.length === 1) return `Invalid input: expected ${stringifyPrimitive(issue2.values[0])}`; return `\u0413\u0440\u0435\u0448\u0430\u043D\u0430 \u043E\u043F\u0446\u0438\u0458\u0430: \u0441\u0435 \u043E\u0447\u0435\u043A\u0443\u0432\u0430 \u0435\u0434\u043D\u0430 ${joinValues(issue2.values, "|")}`; case "too_big": { const adj = issue2.inclusive ? "<=" : "<"; const sizing = getSizing(issue2.origin); if (sizing) return `\u041F\u0440\u0435\u043C\u043D\u043E\u0433\u0443 \u0433\u043E\u043B\u0435\u043C: \u0441\u0435 \u043E\u0447\u0435\u043A\u0443\u0432\u0430 ${issue2.origin ?? "\u0432\u0440\u0435\u0434\u043D\u043E\u0441\u0442\u0430"} \u0434\u0430 \u0438\u043C\u0430 ${adj}${issue2.maximum.toString()} ${sizing.unit ?? "\u0435\u043B\u0435\u043C\u0435\u043D\u0442\u0438"}`; return `\u041F\u0440\u0435\u043C\u043D\u043E\u0433\u0443 \u0433\u043E\u043B\u0435\u043C: \u0441\u0435 \u043E\u0447\u0435\u043A\u0443\u0432\u0430 ${issue2.origin ?? "\u0432\u0440\u0435\u0434\u043D\u043E\u0441\u0442\u0430"} \u0434\u0430 \u0431\u0438\u0434\u0435 ${adj}${issue2.maximum.toString()}`; } case "too_small": { const adj = issue2.inclusive ? ">=" : ">"; const sizing = getSizing(issue2.origin); if (sizing) { return `\u041F\u0440\u0435\u043C\u043D\u043E\u0433\u0443 \u043C\u0430\u043B: \u0441\u0435 \u043E\u0447\u0435\u043A\u0443\u0432\u0430 ${issue2.origin} \u0434\u0430 \u0438\u043C\u0430 ${adj}${issue2.minimum.toString()} ${sizing.unit}`; } return `\u041F\u0440\u0435\u043C\u043D\u043E\u0433\u0443 \u043C\u0430\u043B: \u0441\u0435 \u043E\u0447\u0435\u043A\u0443\u0432\u0430 ${issue2.origin} \u0434\u0430 \u0431\u0438\u0434\u0435 ${adj}${issue2.minimum.toString()}`; } case "invalid_format": { const _issue = issue2; if (_issue.format === "starts_with") { return `\u041D\u0435\u0432\u0430\u0436\u0435\u0447\u043A\u0430 \u043D\u0438\u0437\u0430: \u043C\u043E\u0440\u0430 \u0434\u0430 \u0437\u0430\u043F\u043E\u0447\u043D\u0443\u0432\u0430 \u0441\u043E "${_issue.prefix}"`; } if (_issue.format === "ends_with") return `\u041D\u0435\u0432\u0430\u0436\u0435\u0447\u043A\u0430 \u043D\u0438\u0437\u0430: \u043C\u043E\u0440\u0430 \u0434\u0430 \u0437\u0430\u0432\u0440\u0448\u0443\u0432\u0430 \u0441\u043E "${_issue.suffix}"`; if (_issue.format === "includes") return `\u041D\u0435\u0432\u0430\u0436\u0435\u0447\u043A\u0430 \u043D\u0438\u0437\u0430: \u043C\u043E\u0440\u0430 \u0434\u0430 \u0432\u043A\u043B\u0443\u0447\u0443\u0432\u0430 "${_issue.includes}"`; if (_issue.format === "regex") return `\u041D\u0435\u0432\u0430\u0436\u0435\u0447\u043A\u0430 \u043D\u0438\u0437\u0430: \u043C\u043E\u0440\u0430 \u0434\u0430 \u043E\u0434\u0433\u043E\u0430\u0440\u0430 \u043D\u0430 \u043F\u0430\u0442\u0435\u0440\u043D\u043E\u0442 ${_issue.pattern}`; return `Invalid ${FormatDictionary[_issue.format] ?? issue2.format}`; } case "not_multiple_of": return `\u0413\u0440\u0435\u0448\u0435\u043D \u0431\u0440\u043E\u0458: \u043C\u043E\u0440\u0430 \u0434\u0430 \u0431\u0438\u0434\u0435 \u0434\u0435\u043B\u0438\u0432 \u0441\u043E ${issue2.divisor}`; case "unrecognized_keys": return `${issue2.keys.length > 1 ? "\u041D\u0435\u043F\u0440\u0435\u043F\u043E\u0437\u043D\u0430\u0435\u043D\u0438 \u043A\u043B\u0443\u0447\u0435\u0432\u0438" : "\u041D\u0435\u043F\u0440\u0435\u043F\u043E\u0437\u043D\u0430\u0435\u043D \u043A\u043B\u0443\u0447"}: ${joinValues(issue2.keys, ", ")}`; case "invalid_key": return `\u0413\u0440\u0435\u0448\u0435\u043D \u043A\u043B\u0443\u0447 \u0432\u043E ${issue2.origin}`; case "invalid_union": return "\u0413\u0440\u0435\u0448\u0435\u043D \u0432\u043D\u0435\u0441"; case "invalid_element": return `\u0413\u0440\u0435\u0448\u043D\u0430 \u0432\u0440\u0435\u0434\u043D\u043E\u0441\u0442 \u0432\u043E ${issue2.origin}`; default: return `\u0413\u0440\u0435\u0448\u0435\u043D \u0432\u043D\u0435\u0441`; } }; }; function mk_default() { return { localeError: error34() }; } // ../../../../node_modules/zod/v4/locales/ms.js var error35 = () => { const Sizable = { string: { unit: "aksara", verb: "mempunyai" }, file: { unit: "bait", verb: "mempunyai" }, array: { unit: "elemen", verb: "mempunyai" }, set: { unit: "elemen", verb: "mempunyai" }, map: { unit: "elemen", verb: "mempunyai" } }; function getSizing(origin) { return Sizable[origin] ?? null; } const FormatDictionary = { regex: "input", email: "alamat e-mel", url: "URL", emoji: "emoji", uuid: "UUID", uuidv4: "UUIDv4", uuidv6: "UUIDv6", nanoid: "nanoid", guid: "GUID", cuid: "cuid", cuid2: "cuid2", ulid: "ULID", xid: "XID", ksuid: "KSUID", datetime: "tarikh masa ISO", date: "tarikh ISO", time: "masa ISO", duration: "tempoh ISO", ipv4: "alamat IPv4", ipv6: "alamat IPv6", mac: "alamat MAC", cidrv4: "julat IPv4", cidrv6: "julat IPv6", base64: "string dikodkan base64", base64url: "string dikodkan base64url", json_string: "string JSON", e164: "nombor E.164", credit_card: "nombor kad kredit", currency_code: "kod mata wang", iban: "IBAN", jwt: "JWT", template_literal: "input" }; const TypeDictionary = { nan: "NaN", number: "nombor" }; return (issue2) => { switch (issue2.code) { case "invalid_type": { const expected = TypeDictionary[issue2.expected] ?? issue2.expected; const receivedType = parsedType(issue2.input); const received = TypeDictionary[receivedType] ?? receivedType; if (/^[A-Z]/.test(issue2.expected)) { return `Input tidak sah: dijangka instanceof ${issue2.expected}, diterima ${received}`; } return `Input tidak sah: dijangka ${expected}, diterima ${received}`; } case "invalid_value": if (issue2.values.length === 1) return `Input tidak sah: dijangka ${stringifyPrimitive(issue2.values[0])}`; return `Pilihan tidak sah: dijangka salah satu daripada ${joinValues(issue2.values, "|")}`; case "too_big": { const adj = issue2.inclusive ? "<=" : "<"; const sizing = getSizing(issue2.origin); if (sizing) return `Terlalu besar: dijangka ${issue2.origin ?? "nilai"} ${sizing.verb} ${adj}${issue2.maximum.toString()} ${sizing.unit ?? "elemen"}`; return `Terlalu besar: dijangka ${issue2.origin ?? "nilai"} adalah ${adj}${issue2.maximum.toString()}`; } case "too_small": { const adj = issue2.inclusive ? ">=" : ">"; const sizing = getSizing(issue2.origin); if (sizing) { return `Terlalu kecil: dijangka ${issue2.origin} ${sizing.verb} ${adj}${issue2.minimum.toString()} ${sizing.unit}`; } return `Terlalu kecil: dijangka ${issue2.origin} adalah ${adj}${issue2.minimum.toString()}`; } case "invalid_format": { const _issue = issue2; if (_issue.format === "starts_with") return `String tidak sah: mesti bermula dengan "${_issue.prefix}"`; if (_issue.format === "ends_with") return `String tidak sah: mesti berakhir dengan "${_issue.suffix}"`; if (_issue.format === "includes") return `String tidak sah: mesti mengandungi "${_issue.includes}"`; if (_issue.format === "regex") return `String tidak sah: mesti sepadan dengan corak ${_issue.pattern}`; return `${FormatDictionary[_issue.format] ?? issue2.format} tidak sah`; } case "not_multiple_of": return `Nombor tidak sah: perlu gandaan ${issue2.divisor}`; case "unrecognized_keys": return `Kunci tidak dikenali: ${joinValues(issue2.keys, ", ")}`; case "invalid_key": return `Kunci tidak sah dalam ${issue2.origin}`; case "invalid_union": return "Input tidak sah"; case "invalid_element": return `Nilai tidak sah dalam ${issue2.origin}`; default: return `Input tidak sah`; } }; }; function ms_default() { return { localeError: error35() }; } // ../../../../node_modules/zod/v4/locales/ne.js var error36 = () => { const Sizable = { string: { unit: "\u0905\u0915\u094D\u0937\u0930", verb: "\u0939\u0941\u0928\u0941\u092A\u0930\u094D\u091B" }, file: { unit: "\u092C\u093E\u0907\u091F", verb: "\u0939\u0941\u0928\u0941\u092A\u0930\u094D\u091B" }, array: { unit: "\u0924\u0924\u094D\u0935", verb: "\u0939\u0941\u0928\u0941\u092A\u0930\u094D\u091B" }, set: { unit: "\u0924\u0924\u094D\u0935", verb: "\u0939\u0941\u0928\u0941\u092A\u0930\u094D\u091B" }, map: { unit: "\u092A\u094D\u0930\u0935\u093F\u0937\u094D\u091F\u093F", verb: "\u0939\u0941\u0928\u0941\u092A\u0930\u094D\u091B" } }; function getSizing(origin) { return Sizable[origin] ?? null; } const FormatDictionary = { regex: "\u0907\u0928\u092A\u0941\u091F", email: "\u0907\u092E\u0947\u0932 \u0920\u0947\u0917\u093E\u0928\u093E", url: "URL", emoji: "\u0907\u092E\u094B\u091C\u0940", uuid: "UUID", uuidv4: "UUIDv4", uuidv6: "UUIDv6", nanoid: "nanoid", guid: "GUID", cuid: "cuid", cuid2: "cuid2", ulid: "ULID", xid: "XID", ksuid: "KSUID", datetime: "ISO \u092E\u093F\u0924\u093F \u0930 \u0938\u092E\u092F", date: "ISO \u092E\u093F\u0924\u093F", time: "ISO \u0938\u092E\u092F", duration: "ISO \u0905\u0935\u0927\u093F", ipv4: "IPv4 \u0920\u0947\u0917\u093E\u0928\u093E", ipv6: "IPv6 \u0920\u0947\u0917\u093E\u0928\u093E", mac: "MAC \u0920\u0947\u0917\u093E\u0928\u093E", cidrv4: "IPv4 \u0926\u093E\u092F\u0930\u093E", cidrv6: "IPv6 \u0926\u093E\u092F\u0930\u093E", base64: "base64-\u0907\u0928\u094D\u0915\u094B\u0921 \u0917\u0930\u093F\u090F\u0915\u094B \u0938\u094D\u091F\u094D\u0930\u093F\u0919", base64url: "base64url-\u0907\u0928\u094D\u0915\u094B\u0921 \u0917\u0930\u093F\u090F\u0915\u094B \u0938\u094D\u091F\u094D\u0930\u093F\u0919", json_string: "JSON \u0938\u094D\u091F\u094D\u0930\u093F\u0919", e164: "E.164 \u0928\u092E\u094D\u092C\u0930", credit_card: "\u0915\u094D\u0930\u0947\u0921\u093F\u091F \u0915\u093E\u0930\u094D\u0921 \u0928\u092E\u094D\u092C\u0930", currency_code: "\u092E\u0941\u0926\u094D\u0930\u093E \u0915\u094B\u0921", iban: "IBAN", jwt: "JWT", template_literal: "\u0907\u0928\u092A\u0941\u091F" }; const TypeDictionary = { nan: "NaN" }; return (issue2) => { switch (issue2.code) { case "invalid_type": { const expected = TypeDictionary[issue2.expected] ?? issue2.expected; const receivedType = parsedType(issue2.input); const received = TypeDictionary[receivedType] ?? receivedType; return `\u0905\u092E\u093E\u0928\u094D\u092F \u0907\u0928\u092A\u0941\u091F: \u0905\u092A\u0947\u0915\u094D\u0937\u093F\u0924 ${expected}, \u092A\u094D\u0930\u093E\u092A\u094D\u0924 ${received}`; } case "invalid_value": if (issue2.values.length === 1) return `\u0905\u092E\u093E\u0928\u094D\u092F \u0907\u0928\u092A\u0941\u091F: \u0905\u092A\u0947\u0915\u094D\u0937\u093F\u0924 ${stringifyPrimitive(issue2.values[0])}`; return `\u0905\u092E\u093E\u0928\u094D\u092F \u0935\u093F\u0915\u0932\u094D\u092A: \u0905\u092A\u0947\u0915\u094D\u0937\u093F\u0924 \u092E\u093E\u0928\u0939\u0930\u0942 \u092E\u0927\u094D\u092F\u0947 \u090F\u0915 ${joinValues(issue2.values, "|")}`; case "too_big": { const adj = issue2.inclusive ? "<=" : "<"; const sizing = getSizing(issue2.origin); if (sizing) return `\u0927\u0947\u0930\u0948 \u0920\u0942\u0932\u094B: ${issue2.origin ?? "\u092E\u093E\u0928"} \u092E\u093E ${adj}${issue2.maximum.toString()} ${sizing.unit} ${sizing.verb}`; return `\u0927\u0947\u0930\u0948 \u0920\u0942\u0932\u094B: ${issue2.origin ?? "\u092E\u093E\u0928"} ${adj}${issue2.maximum.toString()} \u0939\u0941\u0928\u0941\u092A\u0930\u094D\u091B`; } case "too_small": { const adj = issue2.inclusive ? ">=" : ">"; const sizing = getSizing(issue2.origin); if (sizing) return `\u0927\u0947\u0930\u0948 \u0938\u093E\u0928\u094B: ${issue2.origin} \u092E\u093E ${adj}${issue2.minimum.toString()} ${sizing.unit} ${sizing.verb}`; return `\u0927\u0947\u0930\u0948 \u0938\u093E\u0928\u094B: ${issue2.origin} ${adj}${issue2.minimum.toString()} \u0939\u0941\u0928\u0941\u092A\u0930\u094D\u091B`; } case "invalid_format": { const _issue = issue2; if (_issue.format === "starts_with") return `\u0905\u092E\u093E\u0928\u094D\u092F \u0938\u094D\u091F\u094D\u0930\u093F\u0919: "${_issue.prefix}" \u092C\u093E\u091F \u0938\u0941\u0930\u0941 \u0939\u0941\u0928\u0941\u092A\u0930\u094D\u091B`; if (_issue.format === "ends_with") return `\u0905\u092E\u093E\u0928\u094D\u092F \u0938\u094D\u091F\u094D\u0930\u093F\u0919: "${_issue.suffix}" \u092E\u093E \u0938\u092E\u093E\u092A\u094D\u0924 \u0939\u0941\u0928\u0941\u092A\u0930\u094D\u091B`; if (_issue.format === "includes") return `\u0905\u092E\u093E\u0928\u094D\u092F \u0938\u094D\u091F\u094D\u0930\u093F\u0919: "${_issue.includes}" \u0938\u092E\u093E\u0935\u0947\u0936 \u0939\u0941\u0928\u0941\u092A\u0930\u094D\u091B`; if (_issue.format === "regex") return `\u0905\u092E\u093E\u0928\u094D\u092F \u0938\u094D\u091F\u094D\u0930\u093F\u0919: \u0922\u093E\u0901\u091A\u093E ${_issue.pattern} \u0938\u0901\u0917 \u092E\u0947\u0932 \u0916\u093E\u0928\u0941\u092A\u0930\u094D\u091B`; return `\u0905\u092E\u093E\u0928\u094D\u092F ${FormatDictionary[_issue.format] ?? issue2.format}`; } case "not_multiple_of": return `\u0905\u092E\u093E\u0928\u094D\u092F \u0938\u0902\u0916\u094D\u092F\u093E: ${issue2.divisor} \u0915\u094B \u0917\u0941\u0923\u091C \u0939\u0941\u0928\u0941\u092A\u0930\u094D\u091B`; case "unrecognized_keys": return `\u0905\u092A\u0930\u093F\u091A\u093F\u0924 \u0915\u0941\u091E\u094D\u091C\u0940${issue2.keys.length > 1 ? "\u0939\u0930\u0942" : ""}: ${joinValues(issue2.keys, ", ")}`; case "invalid_key": return `\u0905\u092E\u093E\u0928\u094D\u092F \u0915\u0941\u091E\u094D\u091C\u0940: ${issue2.origin} \u092E\u093E`; case "invalid_union": if (issue2.options && Array.isArray(issue2.options) && issue2.options.length > 0) { const opts = issue2.options.map((o) => `'${o}'`).join(" | "); return `\u0905\u092E\u093E\u0928\u094D\u092F \u0921\u093F\u0938\u094D\u0915\u094D\u0930\u093F\u092E\u093F\u0928\u0947\u091F\u0930 \u092E\u093E\u0928: \u0905\u092A\u0947\u0915\u094D\u0937\u093F\u0924 ${opts}`; } return "\u0905\u092E\u093E\u0928\u094D\u092F \u0907\u0928\u092A\u0941\u091F"; case "invalid_element": return `\u0905\u092E\u093E\u0928\u094D\u092F \u092E\u093E\u0928: ${issue2.origin} \u092E\u093E`; default: return `\u0905\u092E\u093E\u0928\u094D\u092F \u0907\u0928\u092A\u0941\u091F`; } }; }; function ne_default() { return { localeError: error36() }; } // ../../../../node_modules/zod/v4/locales/nl.js var error37 = () => { const Sizable = { string: { unit: "tekens", verb: "heeft" }, file: { unit: "bytes", verb: "heeft" }, array: { unit: "elementen", verb: "heeft" }, set: { unit: "elementen", verb: "heeft" }, map: { unit: "elementen", verb: "heeft" } }; function getSizing(origin) { return Sizable[origin] ?? null; } const FormatDictionary = { regex: "invoer", email: "emailadres", url: "URL", emoji: "emoji", uuid: "UUID", uuidv4: "UUIDv4", uuidv6: "UUIDv6", nanoid: "nanoid", guid: "GUID", cuid: "cuid", cuid2: "cuid2", ulid: "ULID", xid: "XID", ksuid: "KSUID", datetime: "ISO datum en tijd", date: "ISO datum", time: "ISO tijd", duration: "ISO duur", ipv4: "IPv4-adres", ipv6: "IPv6-adres", mac: "MAC-adres", cidrv4: "IPv4-bereik", cidrv6: "IPv6-bereik", base64: "base64-gecodeerde tekst", base64url: "base64 URL-gecodeerde tekst", json_string: "JSON string", e164: "E.164-nummer", credit_card: "creditcardnummer", currency_code: "valutacode", iban: "IBAN", jwt: "JWT", template_literal: "invoer" }; const TypeDictionary = { nan: "NaN", number: "getal" }; return (issue2) => { switch (issue2.code) { case "invalid_type": { const expected = TypeDictionary[issue2.expected] ?? issue2.expected; const receivedType = parsedType(issue2.input); const received = TypeDictionary[receivedType] ?? receivedType; if (/^[A-Z]/.test(issue2.expected)) { return `Ongeldige invoer: verwacht instanceof ${issue2.expected}, ontving ${received}`; } return `Ongeldige invoer: verwacht ${expected}, ontving ${received}`; } case "invalid_value": if (issue2.values.length === 1) return `Ongeldige invoer: verwacht ${stringifyPrimitive(issue2.values[0])}`; return `Ongeldige optie: verwacht \xE9\xE9n van ${joinValues(issue2.values, "|")}`; case "too_big": { const adj = issue2.inclusive ? "<=" : "<"; const sizing = getSizing(issue2.origin); const longName = issue2.origin === "date" ? "laat" : issue2.origin === "string" ? "lang" : "groot"; if (sizing) return `Te ${longName}: verwacht dat ${issue2.origin ?? "waarde"} ${adj}${issue2.maximum.toString()} ${sizing.unit ?? "elementen"} ${sizing.verb}`; return `Te ${longName}: verwacht dat ${issue2.origin ?? "waarde"} ${adj}${issue2.maximum.toString()} is`; } case "too_small": { const adj = issue2.inclusive ? ">=" : ">"; const sizing = getSizing(issue2.origin); const shortName = issue2.origin === "date" ? "vroeg" : issue2.origin === "string" ? "kort" : "klein"; if (sizing) { return `Te ${shortName}: verwacht dat ${issue2.origin} ${adj}${issue2.minimum.toString()} ${sizing.unit} ${sizing.verb}`; } return `Te ${shortName}: verwacht dat ${issue2.origin} ${adj}${issue2.minimum.toString()} is`; } case "invalid_format": { const _issue = issue2; if (_issue.format === "starts_with") { return `Ongeldige tekst: moet met "${_issue.prefix}" beginnen`; } if (_issue.format === "ends_with") return `Ongeldige tekst: moet op "${_issue.suffix}" eindigen`; if (_issue.format === "includes") return `Ongeldige tekst: moet "${_issue.includes}" bevatten`; if (_issue.format === "regex") return `Ongeldige tekst: moet overeenkomen met patroon ${_issue.pattern}`; return `Ongeldig: ${FormatDictionary[_issue.format] ?? issue2.format}`; } case "not_multiple_of": return `Ongeldig getal: moet een veelvoud van ${issue2.divisor} zijn`; case "unrecognized_keys": return `Onbekende key${issue2.keys.length > 1 ? "s" : ""}: ${joinValues(issue2.keys, ", ")}`; case "invalid_key": return `Ongeldige key in ${issue2.origin}`; case "invalid_union": return "Ongeldige invoer"; case "invalid_element": return `Ongeldige waarde in ${issue2.origin}`; default: return `Ongeldige invoer`; } }; }; function nl_default() { return { localeError: error37() }; } // ../../../../node_modules/zod/v4/locales/nn.js var error38 = () => { const Sizable = { string: { unit: "teikn", verb: "\xE5 ha" }, file: { unit: "bytes", verb: "\xE5 ha" }, array: { unit: "element", verb: "\xE5 innehalde" }, set: { unit: "element", verb: "\xE5 innehalde" }, map: { unit: "element", verb: "\xE5 innehalde" } }; function getSizing(origin) { return Sizable[origin] ?? null; } const FormatDictionary = { regex: "input", email: "e-postadresse", url: "URL", emoji: "emoji", uuid: "UUID", uuidv4: "UUIDv4", uuidv6: "UUIDv6", nanoid: "nanoid", guid: "GUID", cuid: "cuid", cuid2: "cuid2", ulid: "ULID", xid: "XID", ksuid: "KSUID", datetime: "ISO dato- og klokkeslett", date: "ISO-dato", time: "ISO-klokkeslett", duration: "ISO-varigheit", ipv4: "IPv4-adresse", ipv6: "IPv6-adresse", mac: "MAC-adresse", cidrv4: "IPv4-spekter", cidrv6: "IPv6-spekter", base64: "base64-enkoda streng", base64url: "base64url-enkoda streng", json_string: "JSON-streng", e164: "E.164-nummer", credit_card: "kredittkortnummer", currency_code: "valutakode", iban: "IBAN", jwt: "JWT", template_literal: "input" }; const TypeDictionary = { nan: "NaN", number: "tal", array: "liste" }; return (issue2) => { switch (issue2.code) { case "invalid_type": { const expected = TypeDictionary[issue2.expected] ?? issue2.expected; const receivedType = parsedType(issue2.input); const received = TypeDictionary[receivedType] ?? receivedType; if (/^[A-Z]/.test(issue2.expected)) { return `Ugyldig input: forventa instanceof ${issue2.expected}, fekk ${received}`; } return `Ugyldig input: forventa ${expected}, fekk ${received}`; } case "invalid_value": if (issue2.values.length === 1) return `Ugyldig verdi: forventa ${stringifyPrimitive(issue2.values[0])}`; return `Ugyldig val: forventa eitt av ${joinValues(issue2.values, "|")}`; case "too_big": { const adj = issue2.inclusive ? "<=" : "<"; const sizing = getSizing(issue2.origin); if (sizing) return `For stor(t): forventa ${issue2.origin ?? "value"} til \xE5 ha ${adj}${issue2.maximum.toString()} ${sizing.unit ?? "element"}`; return `For stor(t): forventa ${issue2.origin ?? "value"} til \xE5 ha ${adj}${issue2.maximum.toString()}`; } case "too_small": { const adj = issue2.inclusive ? ">=" : ">"; const sizing = getSizing(issue2.origin); if (sizing) { return `For lite(n): forventa ${issue2.origin} til \xE5 ha ${adj}${issue2.minimum.toString()} ${sizing.unit}`; } return `For lite(n): forventa ${issue2.origin} til \xE5 ha ${adj}${issue2.minimum.toString()}`; } case "invalid_format": { const _issue = issue2; if (_issue.format === "starts_with") return `Ugyldig streng: m\xE5 starte med "${_issue.prefix}"`; if (_issue.format === "ends_with") return `Ugyldig streng: m\xE5 slutte med "${_issue.suffix}"`; if (_issue.format === "includes") return `Ugyldig streng: m\xE5 innehalde "${_issue.includes}"`; if (_issue.format === "regex") return `Ugyldig streng: m\xE5 matche m\xF8nsteret ${_issue.pattern}`; return `Ugyldig ${FormatDictionary[_issue.format] ?? issue2.format}`; } case "not_multiple_of": return `Ugyldig tal: m\xE5 vere eit multiplum av ${issue2.divisor}`; case "unrecognized_keys": return `${issue2.keys.length > 1 ? "Ukjende n\xF8klar" : "Ukjend n\xF8kkel"}: ${joinValues(issue2.keys, ", ")}`; case "invalid_key": return `Ugyldig n\xF8kkel i ${issue2.origin}`; case "invalid_union": return "Ugyldig input"; case "invalid_element": return `Ugyldig verdi i ${issue2.origin}`; default: return `Ugyldig input`; } }; }; function nn_default() { return { localeError: error38() }; } // ../../../../node_modules/zod/v4/locales/no.js var error39 = () => { const Sizable = { string: { unit: "tegn", verb: "\xE5 ha" }, file: { unit: "bytes", verb: "\xE5 ha" }, array: { unit: "elementer", verb: "\xE5 inneholde" }, set: { unit: "elementer", verb: "\xE5 inneholde" }, map: { unit: "elementer", verb: "\xE5 inneholde" } }; function getSizing(origin) { return Sizable[origin] ?? null; } const FormatDictionary = { regex: "input", email: "e-postadresse", url: "URL", emoji: "emoji", uuid: "UUID", uuidv4: "UUIDv4", uuidv6: "UUIDv6", nanoid: "nanoid", guid: "GUID", cuid: "cuid", cuid2: "cuid2", ulid: "ULID", xid: "XID", ksuid: "KSUID", datetime: "ISO dato- og klokkeslett", date: "ISO-dato", time: "ISO-klokkeslett", duration: "ISO-varighet", ipv4: "IPv4-adresse", ipv6: "IPv6-adresse", mac: "MAC-adresse", cidrv4: "IPv4-spekter", cidrv6: "IPv6-spekter", base64: "base64-enkodet streng", base64url: "base64url-enkodet streng", json_string: "JSON-streng", e164: "E.164-nummer", credit_card: "kredittkortnummer", currency_code: "valutakode", iban: "IBAN", jwt: "JWT", template_literal: "input" }; const TypeDictionary = { nan: "NaN", number: "tall", array: "liste" }; return (issue2) => { switch (issue2.code) { case "invalid_type": { const expected = TypeDictionary[issue2.expected] ?? issue2.expected; const receivedType = parsedType(issue2.input); const received = TypeDictionary[receivedType] ?? receivedType; if (/^[A-Z]/.test(issue2.expected)) { return `Ugyldig input: forventet instanceof ${issue2.expected}, fikk ${received}`; } return `Ugyldig input: forventet ${expected}, fikk ${received}`; } case "invalid_value": if (issue2.values.length === 1) return `Ugyldig verdi: forventet ${stringifyPrimitive(issue2.values[0])}`; return `Ugyldig valg: forventet en av ${joinValues(issue2.values, "|")}`; case "too_big": { const adj = issue2.inclusive ? "<=" : "<"; const sizing = getSizing(issue2.origin); if (sizing) return `For stor(t): forventet ${issue2.origin ?? "value"} til \xE5 ha ${adj}${issue2.maximum.toString()} ${sizing.unit ?? "elementer"}`; return `For stor(t): forventet ${issue2.origin ?? "value"} til \xE5 ha ${adj}${issue2.maximum.toString()}`; } case "too_small": { const adj = issue2.inclusive ? ">=" : ">"; const sizing = getSizing(issue2.origin); if (sizing) { return `For lite(n): forventet ${issue2.origin} til \xE5 ha ${adj}${issue2.minimum.toString()} ${sizing.unit}`; } return `For lite(n): forventet ${issue2.origin} til \xE5 ha ${adj}${issue2.minimum.toString()}`; } case "invalid_format": { const _issue = issue2; if (_issue.format === "starts_with") return `Ugyldig streng: m\xE5 starte med "${_issue.prefix}"`; if (_issue.format === "ends_with") return `Ugyldig streng: m\xE5 ende med "${_issue.suffix}"`; if (_issue.format === "includes") return `Ugyldig streng: m\xE5 inneholde "${_issue.includes}"`; if (_issue.format === "regex") return `Ugyldig streng: m\xE5 matche m\xF8nsteret ${_issue.pattern}`; return `Ugyldig ${FormatDictionary[_issue.format] ?? issue2.format}`; } case "not_multiple_of": return `Ugyldig tall: m\xE5 v\xE6re et multiplum av ${issue2.divisor}`; case "unrecognized_keys": return `${issue2.keys.length > 1 ? "Ukjente n\xF8kler" : "Ukjent n\xF8kkel"}: ${joinValues(issue2.keys, ", ")}`; case "invalid_key": return `Ugyldig n\xF8kkel i ${issue2.origin}`; case "invalid_union": return "Ugyldig input"; case "invalid_element": return `Ugyldig verdi i ${issue2.origin}`; default: return `Ugyldig input`; } }; }; function no_default() { return { localeError: error39() }; } // ../../../../node_modules/zod/v4/locales/ota.js var error40 = () => { const Sizable = { string: { unit: "harf", verb: "olmal\u0131d\u0131r" }, file: { unit: "bayt", verb: "olmal\u0131d\u0131r" }, array: { unit: "unsur", verb: "olmal\u0131d\u0131r" }, set: { unit: "unsur", verb: "olmal\u0131d\u0131r" }, map: { unit: "unsur", verb: "olmal\u0131d\u0131r" } }; function getSizing(origin) { return Sizable[origin] ?? null; } const FormatDictionary = { regex: "giren", email: "epostag\xE2h", url: "URL", emoji: "emoji", uuid: "UUID", uuidv4: "UUIDv4", uuidv6: "UUIDv6", nanoid: "nanoid", guid: "GUID", cuid: "cuid", cuid2: "cuid2", ulid: "ULID", xid: "XID", ksuid: "KSUID", datetime: "ISO heng\xE2m\u0131", date: "ISO tarihi", time: "ISO zaman\u0131", duration: "ISO m\xFCddeti", ipv4: "IPv4 ni\u015F\xE2n\u0131", ipv6: "IPv6 ni\u015F\xE2n\u0131", mac: "MAC ni\u015F\xE2n\u0131", cidrv4: "IPv4 menzili", cidrv6: "IPv6 menzili", base64: "base64-\u015Fifreli metin", base64url: "base64url-\u015Fifreli metin", json_string: "JSON metin", e164: "E.164 say\u0131s\u0131", credit_card: "i'tib\xE2r kart\u0131 numaras\u0131", currency_code: "para birimi kodu", iban: "IBAN", jwt: "JWT", template_literal: "giren" }; const TypeDictionary = { nan: "NaN", number: "numara", array: "saf", null: "gayb" }; return (issue2) => { switch (issue2.code) { case "invalid_type": { const expected = TypeDictionary[issue2.expected] ?? issue2.expected; const receivedType = parsedType(issue2.input); const received = TypeDictionary[receivedType] ?? receivedType; if (/^[A-Z]/.test(issue2.expected)) { return `F\xE2sit giren: umulan instanceof ${issue2.expected}, al\u0131nan ${received}`; } return `F\xE2sit giren: umulan ${expected}, al\u0131nan ${received}`; } case "invalid_value": if (issue2.values.length === 1) return `F\xE2sit giren: umulan ${stringifyPrimitive(issue2.values[0])}`; return `F\xE2sit tercih: m\xFBteberler ${joinValues(issue2.values, "|")}`; case "too_big": { const adj = issue2.inclusive ? "<=" : "<"; const sizing = getSizing(issue2.origin); if (sizing) return `Fazla b\xFCy\xFCk: ${issue2.origin ?? "value"}, ${adj}${issue2.maximum.toString()} ${sizing.unit ?? "elements"} sahip olmal\u0131yd\u0131.`; return `Fazla b\xFCy\xFCk: ${issue2.origin ?? "value"}, ${adj}${issue2.maximum.toString()} olmal\u0131yd\u0131.`; } case "too_small": { const adj = issue2.inclusive ? ">=" : ">"; const sizing = getSizing(issue2.origin); if (sizing) { return `Fazla k\xFC\xE7\xFCk: ${issue2.origin}, ${adj}${issue2.minimum.toString()} ${sizing.unit} sahip olmal\u0131yd\u0131.`; } return `Fazla k\xFC\xE7\xFCk: ${issue2.origin}, ${adj}${issue2.minimum.toString()} olmal\u0131yd\u0131.`; } case "invalid_format": { const _issue = issue2; if (_issue.format === "starts_with") return `F\xE2sit metin: "${_issue.prefix}" ile ba\u015Flamal\u0131.`; if (_issue.format === "ends_with") return `F\xE2sit metin: "${_issue.suffix}" ile bitmeli.`; if (_issue.format === "includes") return `F\xE2sit metin: "${_issue.includes}" ihtiv\xE2 etmeli.`; if (_issue.format === "regex") return `F\xE2sit metin: ${_issue.pattern} nak\u015F\u0131na uymal\u0131.`; return `F\xE2sit ${FormatDictionary[_issue.format] ?? issue2.format}`; } case "not_multiple_of": return `F\xE2sit say\u0131: ${issue2.divisor} kat\u0131 olmal\u0131yd\u0131.`; case "unrecognized_keys": return `Tan\u0131nmayan anahtar ${issue2.keys.length > 1 ? "s" : ""}: ${joinValues(issue2.keys, ", ")}`; case "invalid_key": return `${issue2.origin} i\xE7in tan\u0131nmayan anahtar var.`; case "invalid_union": return "Giren tan\u0131namad\u0131."; case "invalid_element": return `${issue2.origin} i\xE7in tan\u0131nmayan k\u0131ymet var.`; default: return `K\u0131ymet tan\u0131namad\u0131.`; } }; }; function ota_default() { return { localeError: error40() }; } // ../../../../node_modules/zod/v4/locales/ps.js var error41 = () => { const Sizable = { string: { unit: "\u062A\u0648\u06A9\u064A", verb: "\u0648\u0644\u0631\u064A" }, file: { unit: "\u0628\u0627\u06CC\u067C\u0633", verb: "\u0648\u0644\u0631\u064A" }, array: { unit: "\u062A\u0648\u06A9\u064A", verb: "\u0648\u0644\u0631\u064A" }, set: { unit: "\u062A\u0648\u06A9\u064A", verb: "\u0648\u0644\u0631\u064A" }, map: { unit: "\u062A\u0648\u06A9\u064A", verb: "\u0648\u0644\u0631\u064A" } }; function getSizing(origin) { return Sizable[origin] ?? null; } const FormatDictionary = { regex: "\u0648\u0631\u0648\u062F\u064A", email: "\u0628\u0631\u06CC\u069A\u0646\u0627\u0644\u06CC\u06A9", url: "\u06CC\u0648 \u0622\u0631 \u0627\u0644", emoji: "\u0627\u06CC\u0645\u0648\u062C\u064A", uuid: "UUID", uuidv4: "UUIDv4", uuidv6: "UUIDv6", nanoid: "nanoid", guid: "GUID", cuid: "cuid", cuid2: "cuid2", ulid: "ULID", xid: "XID", ksuid: "KSUID", datetime: "\u0646\u06CC\u067C\u0647 \u0627\u0648 \u0648\u062E\u062A", date: "\u0646\u06D0\u067C\u0647", time: "\u0648\u062E\u062A", duration: "\u0645\u0648\u062F\u0647", ipv4: "\u062F IPv4 \u067E\u062A\u0647", ipv6: "\u062F IPv6 \u067E\u062A\u0647", mac: "\u062F MAC \u067E\u062A\u0647", cidrv4: "\u062F IPv4 \u0633\u0627\u062D\u0647", cidrv6: "\u062F IPv6 \u0633\u0627\u062D\u0647", base64: "base64-encoded \u0645\u062A\u0646", base64url: "base64url-encoded \u0645\u062A\u0646", json_string: "JSON \u0645\u062A\u0646", e164: "\u062F E.164 \u0634\u0645\u06D0\u0631\u0647", credit_card: "\u062F \u06A9\u0631\u06CC\u0689\u06CC\u067C \u06A9\u0627\u0631\u062A \u0634\u0645\u06CC\u0631\u0647", currency_code: "\u062F \u0627\u0633\u0639\u0627\u0631\u0648 \u06A9\u0648\u0689", iban: "IBAN", jwt: "JWT", template_literal: "\u0648\u0631\u0648\u062F\u064A" }; const TypeDictionary = { nan: "NaN", number: "\u0639\u062F\u062F", array: "\u0627\u0631\u06D0" }; return (issue2) => { switch (issue2.code) { case "invalid_type": { const expected = TypeDictionary[issue2.expected] ?? issue2.expected; const receivedType = parsedType(issue2.input); const received = TypeDictionary[receivedType] ?? receivedType; if (/^[A-Z]/.test(issue2.expected)) { return `\u0646\u0627\u0633\u0645 \u0648\u0631\u0648\u062F\u064A: \u0628\u0627\u06CC\u062F instanceof ${issue2.expected} \u0648\u0627\u06CC, \u0645\u06AB\u0631 ${received} \u062A\u0631\u0644\u0627\u0633\u0647 \u0634\u0648`; } return `\u0646\u0627\u0633\u0645 \u0648\u0631\u0648\u062F\u064A: \u0628\u0627\u06CC\u062F ${expected} \u0648\u0627\u06CC, \u0645\u06AB\u0631 ${received} \u062A\u0631\u0644\u0627\u0633\u0647 \u0634\u0648`; } case "invalid_value": if (issue2.values.length === 1) { return `\u0646\u0627\u0633\u0645 \u0648\u0631\u0648\u062F\u064A: \u0628\u0627\u06CC\u062F ${stringifyPrimitive(issue2.values[0])} \u0648\u0627\u06CC`; } return `\u0646\u0627\u0633\u0645 \u0627\u0646\u062A\u062E\u0627\u0628: \u0628\u0627\u06CC\u062F \u06CC\u0648 \u0644\u0647 ${joinValues(issue2.values, "|")} \u0685\u062E\u0647 \u0648\u0627\u06CC`; case "too_big": { const adj = issue2.inclusive ? "<=" : "<"; const sizing = getSizing(issue2.origin); if (sizing) { return `\u0689\u06CC\u0631 \u0644\u0648\u06CC: ${issue2.origin ?? "\u0627\u0631\u0632\u069A\u062A"} \u0628\u0627\u06CC\u062F ${adj}${issue2.maximum.toString()} ${sizing.unit ?? "\u0639\u0646\u0635\u0631\u0648\u0646\u0647"} \u0648\u0644\u0631\u064A`; } return `\u0689\u06CC\u0631 \u0644\u0648\u06CC: ${issue2.origin ?? "\u0627\u0631\u0632\u069A\u062A"} \u0628\u0627\u06CC\u062F ${adj}${issue2.maximum.toString()} \u0648\u064A`; } case "too_small": { const adj = issue2.inclusive ? ">=" : ">"; const sizing = getSizing(issue2.origin); if (sizing) { return `\u0689\u06CC\u0631 \u06A9\u0648\u0686\u0646\u06CC: ${issue2.origin} \u0628\u0627\u06CC\u062F ${adj}${issue2.minimum.toString()} ${sizing.unit} \u0648\u0644\u0631\u064A`; } return `\u0689\u06CC\u0631 \u06A9\u0648\u0686\u0646\u06CC: ${issue2.origin} \u0628\u0627\u06CC\u062F ${adj}${issue2.minimum.toString()} \u0648\u064A`; } case "invalid_format": { const _issue = issue2; if (_issue.format === "starts_with") { return `\u0646\u0627\u0633\u0645 \u0645\u062A\u0646: \u0628\u0627\u06CC\u062F \u062F "${_issue.prefix}" \u0633\u0631\u0647 \u067E\u06CC\u0644 \u0634\u064A`; } if (_issue.format === "ends_with") { return `\u0646\u0627\u0633\u0645 \u0645\u062A\u0646: \u0628\u0627\u06CC\u062F \u062F "${_issue.suffix}" \u0633\u0631\u0647 \u067E\u0627\u06CC \u062A\u0647 \u0648\u0631\u0633\u064A\u0696\u064A`; } if (_issue.format === "includes") { return `\u0646\u0627\u0633\u0645 \u0645\u062A\u0646: \u0628\u0627\u06CC\u062F "${_issue.includes}" \u0648\u0644\u0631\u064A`; } if (_issue.format === "regex") { return `\u0646\u0627\u0633\u0645 \u0645\u062A\u0646: \u0628\u0627\u06CC\u062F \u062F ${_issue.pattern} \u0633\u0631\u0647 \u0645\u0637\u0627\u0628\u0642\u062A \u0648\u0644\u0631\u064A`; } return `${FormatDictionary[_issue.format] ?? issue2.format} \u0646\u0627\u0633\u0645 \u062F\u06CC`; } case "not_multiple_of": return `\u0646\u0627\u0633\u0645 \u0639\u062F\u062F: \u0628\u0627\u06CC\u062F \u062F ${issue2.divisor} \u0645\u0636\u0631\u0628 \u0648\u064A`; case "unrecognized_keys": return `\u0646\u0627\u0633\u0645 ${issue2.keys.length > 1 ? "\u06A9\u0644\u06CC\u0689\u0648\u0646\u0647" : "\u06A9\u0644\u06CC\u0689"}: ${joinValues(issue2.keys, ", ")}`; case "invalid_key": return `\u0646\u0627\u0633\u0645 \u06A9\u0644\u06CC\u0689 \u067E\u0647 ${issue2.origin} \u06A9\u06D0`; case "invalid_union": return `\u0646\u0627\u0633\u0645\u0647 \u0648\u0631\u0648\u062F\u064A`; case "invalid_element": return `\u0646\u0627\u0633\u0645 \u0639\u0646\u0635\u0631 \u067E\u0647 ${issue2.origin} \u06A9\u06D0`; default: return `\u0646\u0627\u0633\u0645\u0647 \u0648\u0631\u0648\u062F\u064A`; } }; }; function ps_default() { return { localeError: error41() }; } // ../../../../node_modules/zod/v4/locales/pl.js var error42 = () => { const Sizable = { string: { unit: "znak\xF3w", verb: "mie\u0107" }, file: { unit: "bajt\xF3w", verb: "mie\u0107" }, array: { unit: "element\xF3w", verb: "mie\u0107" }, set: { unit: "element\xF3w", verb: "mie\u0107" }, map: { unit: "element\xF3w", verb: "mie\u0107" } }; function getSizing(origin) { return Sizable[origin] ?? null; } const FormatDictionary = { regex: "wyra\u017Cenie", email: "adres email", url: "URL", emoji: "emoji", uuid: "UUID", uuidv4: "UUIDv4", uuidv6: "UUIDv6", nanoid: "nanoid", guid: "GUID", cuid: "cuid", cuid2: "cuid2", ulid: "ULID", xid: "XID", ksuid: "KSUID", datetime: "data i godzina w formacie ISO", date: "data w formacie ISO", time: "godzina w formacie ISO", duration: "czas trwania ISO", ipv4: "adres IPv4", ipv6: "adres IPv6", mac: "adres MAC", cidrv4: "zakres IPv4", cidrv6: "zakres IPv6", base64: "ci\u0105g znak\xF3w zakodowany w formacie base64", base64url: "ci\u0105g znak\xF3w zakodowany w formacie base64url", json_string: "ci\u0105g znak\xF3w w formacie JSON", e164: "liczba E.164", credit_card: "numer karty kredytowej", currency_code: "kod waluty", iban: "IBAN", jwt: "JWT", template_literal: "wej\u015Bcie" }; const TypeDictionary = { nan: "NaN", number: "liczba", array: "tablica" }; return (issue2) => { switch (issue2.code) { case "invalid_type": { const expected = TypeDictionary[issue2.expected] ?? issue2.expected; const receivedType = parsedType(issue2.input); const received = TypeDictionary[receivedType] ?? receivedType; if (/^[A-Z]/.test(issue2.expected)) { return `Nieprawid\u0142owe dane wej\u015Bciowe: oczekiwano instanceof ${issue2.expected}, otrzymano ${received}`; } return `Nieprawid\u0142owe dane wej\u015Bciowe: oczekiwano ${expected}, otrzymano ${received}`; } case "invalid_value": if (issue2.values.length === 1) return `Nieprawid\u0142owe dane wej\u015Bciowe: oczekiwano ${stringifyPrimitive(issue2.values[0])}`; return `Nieprawid\u0142owa opcja: oczekiwano jednej z warto\u015Bci ${joinValues(issue2.values, "|")}`; case "too_big": { const adj = issue2.inclusive ? "<=" : "<"; const sizing = getSizing(issue2.origin); if (sizing) { return `Za du\u017Ca warto\u015B\u0107: oczekiwano, \u017Ce ${issue2.origin ?? "warto\u015B\u0107"} b\u0119dzie mie\u0107 ${adj}${issue2.maximum.toString()} ${sizing.unit ?? "element\xF3w"}`; } return `Zbyt du\u017C(y/a/e): oczekiwano, \u017Ce ${issue2.origin ?? "warto\u015B\u0107"} b\u0119dzie wynosi\u0107 ${adj}${issue2.maximum.toString()}`; } case "too_small": { const adj = issue2.inclusive ? ">=" : ">"; const sizing = getSizing(issue2.origin); if (sizing) { return `Za ma\u0142a warto\u015B\u0107: oczekiwano, \u017Ce ${issue2.origin ?? "warto\u015B\u0107"} b\u0119dzie mie\u0107 ${adj}${issue2.minimum.toString()} ${sizing.unit ?? "element\xF3w"}`; } return `Zbyt ma\u0142(y/a/e): oczekiwano, \u017Ce ${issue2.origin ?? "warto\u015B\u0107"} b\u0119dzie wynosi\u0107 ${adj}${issue2.minimum.toString()}`; } case "invalid_format": { const _issue = issue2; if (_issue.format === "starts_with") return `Nieprawid\u0142owy ci\u0105g znak\xF3w: musi zaczyna\u0107 si\u0119 od "${_issue.prefix}"`; if (_issue.format === "ends_with") return `Nieprawid\u0142owy ci\u0105g znak\xF3w: musi ko\u0144czy\u0107 si\u0119 na "${_issue.suffix}"`; if (_issue.format === "includes") return `Nieprawid\u0142owy ci\u0105g znak\xF3w: musi zawiera\u0107 "${_issue.includes}"`; if (_issue.format === "regex") return `Nieprawid\u0142owy ci\u0105g znak\xF3w: musi odpowiada\u0107 wzorcowi ${_issue.pattern}`; return `Nieprawid\u0142ow(y/a/e) ${FormatDictionary[_issue.format] ?? issue2.format}`; } case "not_multiple_of": return `Nieprawid\u0142owa liczba: musi by\u0107 wielokrotno\u015Bci\u0105 ${issue2.divisor}`; case "unrecognized_keys": return `Nierozpoznane klucze${issue2.keys.length > 1 ? "s" : ""}: ${joinValues(issue2.keys, ", ")}`; case "invalid_key": return `Nieprawid\u0142owy klucz w ${issue2.origin}`; case "invalid_union": return "Nieprawid\u0142owe dane wej\u015Bciowe"; case "invalid_element": return `Nieprawid\u0142owa warto\u015B\u0107 w ${issue2.origin}`; default: return `Nieprawid\u0142owe dane wej\u015Bciowe`; } }; }; function pl_default() { return { localeError: error42() }; } // ../../../../node_modules/zod/v4/locales/pt.js var error43 = () => { const Sizable = { string: { unit: "caracteres" }, file: { unit: "bytes" }, array: { unit: "elementos" }, set: { unit: "elementos" }, map: { unit: "entradas" } }; function getSizing(origin) { return Sizable[origin] ?? null; } const FormatDictionary = { regex: "a entrada", email: "o endere\xE7o de e-mail", url: "o URL", emoji: "o emoji", uuid: "o UUID", uuidv4: "o UUIDv4", uuidv6: "o UUIDv6", nanoid: "o nanoid", guid: "o GUID", cuid: "o cuid", cuid2: "o cuid2", ulid: "o ULID", xid: "o XID", ksuid: "o KSUID", datetime: "a data e hora ISO", date: "a data ISO", time: "a hora ISO", duration: "a dura\xE7\xE3o ISO", ipv4: "o endere\xE7o IPv4", ipv6: "o endere\xE7o IPv6", mac: "o endere\xE7o MAC", cidrv4: "o intervalo de endere\xE7os IPv4", cidrv6: "o intervalo de endere\xE7os IPv6", base64: "o texto codificado em base64", base64url: "o texto codificado em base64url", json_string: "o texto JSON", e164: "o n\xFAmero E.164", credit_card: "o n\xFAmero de cart\xE3o de cr\xE9dito", currency_code: "o c\xF3digo de moeda", iban: "o IBAN", jwt: "o JWT", template_literal: "a entrada" }; const Gender = { masculine: { definite: "o", indefinite: "um" }, feminine: { definite: "a", indefinite: "uma" } }; const TypeDictionary = { string: { name: "texto", articles: Gender.masculine }, number: { name: "n\xFAmero", articles: Gender.masculine }, int: { name: "n\xFAmero inteiro", articles: Gender.masculine }, boolean: { name: "valor booleano", articles: Gender.masculine }, bigint: { name: "n\xFAmero bigint", articles: Gender.masculine }, symbol: { name: "s\xEDmbolo", articles: Gender.masculine }, undefined: { name: 'valor "undefined"', articles: Gender.masculine }, null: { name: 'valor "nulo"', articles: Gender.masculine }, never: { name: 'valor "never"', articles: Gender.masculine }, void: { name: 'valor "void"', articles: Gender.masculine }, date: { name: "data", articles: Gender.feminine }, array: { name: "vetor", articles: Gender.masculine }, object: { name: "objeto", articles: Gender.masculine }, tuple: { name: "tuplo", articles: Gender.masculine }, record: { name: "registo", articles: Gender.masculine }, map: { name: "mapa", articles: Gender.masculine }, set: { name: "conjunto", articles: Gender.masculine }, file: { name: "ficheiro", articles: Gender.masculine }, nonoptional: { name: "valor n\xE3o opcional", articles: Gender.masculine }, nan: { name: 'valor "NaN"', articles: Gender.masculine }, // Compatibility: "nan" -> "NaN" for display function: { name: "fun\xE7\xE3o", articles: Gender.feminine } }; function translateOriginWithArticle(type, articleType) { const translatedValue = TypeDictionary[type] ?? { name: `valor "${type}"`, articles: Gender.masculine }; return `${translatedValue.articles[articleType]} ${translatedValue.name}`; } return (issue2) => { switch (issue2.code) { case "invalid_type": { const expected = translateOriginWithArticle(issue2.expected, "indefinite"); const receivedType = parsedType(issue2.input); const received = translateOriginWithArticle(receivedType, "indefinite"); return `Entrada inv\xE1lida: esperava ${expected}, recebeu ${received}`; } case "invalid_value": if (issue2.values.length === 1) return `Entrada inv\xE1lida: esperava ${stringifyPrimitive(issue2.values[0])}`; return `Op\xE7\xE3o inv\xE1lida: esperava uma das seguintes op\xE7\xF5es: ${joinValues(issue2.values, "|")}`; case "too_big": { const adj = issue2.inclusive ? "<=" : "<"; const sizing = getSizing(issue2.origin); if (sizing) return `Demasiado grande: esperava que ${translateOriginWithArticle(issue2.origin, "definite")} tivesse ${adj} ${issue2.maximum.toString()} ${sizing.unit ?? "elementos"}`; return `Demasiado grande: esperava que ${translateOriginWithArticle(issue2.origin, "definite")} fosse ${adj} ${issue2.maximum.toString()}`; } case "too_small": { const adj = issue2.inclusive ? ">=" : ">"; const sizing = getSizing(issue2.origin); if (sizing) { return `Demasiado pequeno: esperava que ${translateOriginWithArticle(issue2.origin, "definite")} tivesse ${adj} ${issue2.minimum.toString()} ${sizing.unit ?? "elementos"}`; } return `Demasiado pequeno: esperava que ${translateOriginWithArticle(issue2.origin, "definite")} fosse ${adj} ${issue2.minimum.toString()}`; } case "invalid_format": { const _issue = issue2; if (_issue.format === "starts_with") return `Texto inv\xE1lido: deve come\xE7ar por "${_issue.prefix}"`; if (_issue.format === "ends_with") return `Texto inv\xE1lido: deve terminar em "${_issue.suffix}"`; if (_issue.format === "includes") return `Texto inv\xE1lido: deve incluir "${_issue.includes}"`; if (_issue.format === "regex") return `Texto inv\xE1lido: deve corresponder ao padr\xE3o ${_issue.pattern}`; return `Formato d${FormatDictionary[_issue.format] ?? issue2.format} inv\xE1lido`; } case "not_multiple_of": return `N\xFAmero inv\xE1lido: deve ser m\xFAltiplo de ${issue2.divisor}`; case "unrecognized_keys": { const plural2 = issue2.keys.length > 1 ? "s" : ""; return `Chave${plural2} inv\xE1lida${plural2}: ${joinValues(issue2.keys, ", ")}`; } case "invalid_key": return `Entrada inv\xE1lida n${translateOriginWithArticle(issue2.origin, "definite")}`; case "invalid_union": if (issue2.options && Array.isArray(issue2.options) && issue2.options.length > 0) { const opts = issue2.options.map((o) => `'${o}'`).join(" | "); return `Valor de discrimina\xE7\xE3o inv\xE1lido. Esperava ${opts}`; } return "Entrada inv\xE1lida"; case "invalid_element": return `Entrada inv\xE1lida n${translateOriginWithArticle(issue2.origin, "definite")}`; default: return `Entrada inv\xE1lida`; } }; }; function pt_default() { return { localeError: error43() }; } // ../../../../node_modules/zod/v4/locales/pt-BR.js var error44 = () => { const Sizable = { string: { unit: "caracteres" }, file: { unit: "bytes" }, array: { unit: "elementos" }, set: { unit: "elementos" }, map: { unit: "entradas" } }; function getSizing(origin) { return Sizable[origin] ?? null; } const FormatDictionary = { regex: "a entrada", email: "o endere\xE7o de e-mail", url: "o URL", emoji: "o emoji", uuid: "o UUID", uuidv4: "o UUIDv4", uuidv6: "o UUIDv6", nanoid: "o nanoid", guid: "o GUID", cuid: "o cuid", cuid2: "o cuid2", ulid: "o ULID", xid: "o XID", ksuid: "o KSUID", datetime: "a data e hora ISO", date: "a data ISO", time: "a hora ISO", duration: "a dura\xE7\xE3o ISO", ipv4: "o endere\xE7o IPv4", ipv6: "o endere\xE7o IPv6", mac: "o endere\xE7o MAC", cidrv4: "a faixa de endere\xE7os IPv4", cidrv6: "a faixa de endere\xE7os IPv6", base64: "o texto codificado em base64", base64url: "o texto codificado em base64url", json_string: "o texto JSON", e164: "o n\xFAmero E.164", credit_card: "o n\xFAmero de cart\xE3o de cr\xE9dito", currency_code: "o c\xF3digo de moeda", iban: "o IBAN", jwt: "o JWT", template_literal: "a entrada" }; const Gender = { masculine: { definite: "o", indefinite: "um" }, feminine: { definite: "a", indefinite: "uma" } }; const TypeDictionary = { string: { name: "texto", articles: Gender.masculine }, number: { name: "n\xFAmero", articles: Gender.masculine }, int: { name: "n\xFAmero inteiro", articles: Gender.masculine }, boolean: { name: "valor booleano", articles: Gender.masculine }, bigint: { name: "n\xFAmero bigint", articles: Gender.masculine }, symbol: { name: "s\xEDmbolo", articles: Gender.masculine }, undefined: { name: 'valor "undefined"', articles: Gender.masculine }, null: { name: 'valor "nulo"', articles: Gender.masculine }, never: { name: 'valor "never"', articles: Gender.masculine }, void: { name: 'valor "void"', articles: Gender.masculine }, date: { name: "data", articles: Gender.feminine }, array: { name: "vetor", articles: Gender.masculine }, object: { name: "objeto", articles: Gender.masculine }, tuple: { name: "tupla", articles: Gender.feminine }, record: { name: "registro", articles: Gender.masculine }, map: { name: "mapa", articles: Gender.masculine }, set: { name: "conjunto", articles: Gender.masculine }, file: { name: "arquivo", articles: Gender.masculine }, nonoptional: { name: "valor n\xE3o opcional", articles: Gender.masculine }, nan: { name: 'valor "NaN"', articles: Gender.masculine }, // Compatibility: "nan" -> "NaN" for display function: { name: "fun\xE7\xE3o", articles: Gender.feminine } }; function translateOriginWithArticle(type, articleType) { const translatedValue = TypeDictionary[type] ?? { name: `valor "${type}"`, articles: Gender.masculine }; return `${translatedValue.articles[articleType]} ${translatedValue.name}`; } return (issue2) => { switch (issue2.code) { case "invalid_type": { const expected = translateOriginWithArticle(issue2.expected, "indefinite"); const receivedType = parsedType(issue2.input); const received = translateOriginWithArticle(receivedType, "indefinite"); return `Entrada inv\xE1lida: esperava ${expected}, recebeu ${received}`; } case "invalid_value": if (issue2.values.length === 1) return `Entrada inv\xE1lida: esperava ${stringifyPrimitive(issue2.values[0])}`; return `Op\xE7\xE3o inv\xE1lida: esperava uma das seguintes op\xE7\xF5es: ${joinValues(issue2.values, "|")}`; case "too_big": { const adj = issue2.inclusive ? "<=" : "<"; const sizing = getSizing(issue2.origin); if (sizing) return `Grande demais: esperava que ${translateOriginWithArticle(issue2.origin, "definite")} tivesse ${adj} ${issue2.maximum.toString()} ${sizing.unit ?? "elementos"}`; return `Grande demais: esperava que ${translateOriginWithArticle(issue2.origin, "definite")} fosse ${adj} ${issue2.maximum.toString()}`; } case "too_small": { const adj = issue2.inclusive ? ">=" : ">"; const sizing = getSizing(issue2.origin); if (sizing) { return `Pequeno demais: esperava que ${translateOriginWithArticle(issue2.origin, "definite")} tivesse ${adj} ${issue2.minimum.toString()} ${sizing.unit ?? "elementos"}`; } return `Pequeno demais: esperava que ${translateOriginWithArticle(issue2.origin, "definite")} fosse ${adj} ${issue2.minimum.toString()}`; } case "invalid_format": { const _issue = issue2; if (_issue.format === "starts_with") { return `Texto inv\xE1lido: deve come\xE7ar com "${_issue.prefix}"`; } if (_issue.format === "ends_with") return `Texto inv\xE1lido: deve terminar com "${_issue.suffix}"`; if (_issue.format === "includes") return `Texto inv\xE1lido: deve incluir "${_issue.includes}"`; if (_issue.format === "regex") return `Texto inv\xE1lido: deve corresponder ao padr\xE3o ${_issue.pattern}`; return `Formato d${FormatDictionary[_issue.format] ?? issue2.format} inv\xE1lido`; } case "not_multiple_of": return `N\xFAmero inv\xE1lido: deve ser m\xFAltiplo de ${issue2.divisor}`; case "unrecognized_keys": { const plural2 = issue2.keys.length > 1 ? "s" : ""; return `Chave${plural2} inv\xE1lida${plural2}: ${joinValues(issue2.keys, ", ")}`; } case "invalid_key": return `Entrada inv\xE1lida n${translateOriginWithArticle(issue2.origin, "definite")}`; case "invalid_union": if (issue2.options && Array.isArray(issue2.options) && issue2.options.length > 0) { const opts = issue2.options.map((o) => `'${o}'`).join(" | "); return `Valor de discrimina\xE7\xE3o inv\xE1lido. Esperava ${opts}`; } return "Entrada inv\xE1lida"; case "invalid_element": return `Entrada inv\xE1lida n${translateOriginWithArticle(issue2.origin, "definite")}`; default: return `Entrada inv\xE1lida`; } }; }; function pt_BR_default() { return { localeError: error44() }; } // ../../../../node_modules/zod/v4/locales/ro.js var error45 = () => { const Sizable = { string: { unit: "caractere", verb: "s\u0103 aib\u0103" }, file: { unit: "octe\u021Bi", verb: "s\u0103 aib\u0103" }, array: { unit: "elemente", verb: "s\u0103 aib\u0103" }, set: { unit: "elemente", verb: "s\u0103 aib\u0103" }, map: { unit: "intr\u0103ri", verb: "s\u0103 aib\u0103" } }; function getSizing(origin) { return Sizable[origin] ?? null; } const FormatDictionary = { regex: "intrare", email: "adres\u0103 de email", url: "URL", emoji: "emoji", uuid: "UUID", uuidv4: "UUIDv4", uuidv6: "UUIDv6", nanoid: "nanoid", guid: "GUID", cuid: "cuid", cuid2: "cuid2", ulid: "ULID", xid: "XID", ksuid: "KSUID", datetime: "dat\u0103 \u0219i or\u0103 ISO", date: "dat\u0103 ISO", time: "or\u0103 ISO", duration: "durat\u0103 ISO", ipv4: "adres\u0103 IPv4", ipv6: "adres\u0103 IPv6", mac: "adres\u0103 MAC", cidrv4: "interval IPv4", cidrv6: "interval IPv6", base64: "\u0219ir codat base64", base64url: "\u0219ir codat base64url", json_string: "\u0219ir JSON", e164: "num\u0103r E.164", credit_card: "num\u0103r de card de credit", currency_code: "cod valutar", iban: "IBAN", jwt: "JWT", template_literal: "intrare" }; const TypeDictionary = { nan: "NaN", string: "\u0219ir", number: "num\u0103r", boolean: "boolean", function: "func\u021Bie", array: "matrice", object: "obiect", undefined: "nedefinit", symbol: "simbol", bigint: "num\u0103r mare", void: "void", never: "never", map: "hart\u0103", set: "set" }; return (issue2) => { switch (issue2.code) { case "invalid_type": { const expected = TypeDictionary[issue2.expected] ?? issue2.expected; const receivedType = parsedType(issue2.input); const received = TypeDictionary[receivedType] ?? receivedType; return `Intrare invalid\u0103: a\u0219teptat ${expected}, primit ${received}`; } case "invalid_value": if (issue2.values.length === 1) return `Intrare invalid\u0103: a\u0219teptat ${stringifyPrimitive(issue2.values[0])}`; return `Op\u021Biune invalid\u0103: a\u0219teptat una dintre ${joinValues(issue2.values, "|")}`; case "too_big": { const adj = issue2.inclusive ? "<=" : "<"; const sizing = getSizing(issue2.origin); if (sizing) return `Prea mare: a\u0219teptat ca ${issue2.origin ?? "valoarea"} ${sizing.verb} ${adj}${issue2.maximum.toString()} ${sizing.unit ?? "elemente"}`; return `Prea mare: a\u0219teptat ca ${issue2.origin ?? "valoarea"} s\u0103 fie ${adj}${issue2.maximum.toString()}`; } case "too_small": { const adj = issue2.inclusive ? ">=" : ">"; const sizing = getSizing(issue2.origin); if (sizing) { return `Prea mic: a\u0219teptat ca ${issue2.origin} ${sizing.verb} ${adj}${issue2.minimum.toString()} ${sizing.unit}`; } return `Prea mic: a\u0219teptat ca ${issue2.origin} s\u0103 fie ${adj}${issue2.minimum.toString()}`; } case "invalid_format": { const _issue = issue2; if (_issue.format === "starts_with") { return `\u0218ir invalid: trebuie s\u0103 \xEEnceap\u0103 cu "${_issue.prefix}"`; } if (_issue.format === "ends_with") return `\u0218ir invalid: trebuie s\u0103 se termine cu "${_issue.suffix}"`; if (_issue.format === "includes") return `\u0218ir invalid: trebuie s\u0103 includ\u0103 "${_issue.includes}"`; if (_issue.format === "regex") return `\u0218ir invalid: trebuie s\u0103 se potriveasc\u0103 cu modelul ${_issue.pattern}`; return `Format invalid: ${FormatDictionary[_issue.format] ?? issue2.format}`; } case "not_multiple_of": return `Num\u0103r invalid: trebuie s\u0103 fie multiplu de ${issue2.divisor}`; case "unrecognized_keys": return `Chei nerecunoscute: ${joinValues(issue2.keys, ", ")}`; case "invalid_key": return `Cheie invalid\u0103 \xEEn ${issue2.origin}`; case "invalid_union": return "Intrare invalid\u0103"; case "invalid_element": return `Valoare invalid\u0103 \xEEn ${issue2.origin}`; default: return `Intrare invalid\u0103`; } }; }; function ro_default() { return { localeError: error45() }; } // ../../../../node_modules/zod/v4/locales/ru.js function getRussianPlural(count, one, few, many) { const absCount = Math.abs(count); const lastDigit = absCount % 10; const lastTwoDigits = absCount % 100; if (lastTwoDigits >= 11 && lastTwoDigits <= 19) { return many; } if (lastDigit === 1) { return one; } if (lastDigit >= 2 && lastDigit <= 4) { return few; } return many; } var error46 = () => { const Sizable = { string: { unit: { one: "\u0441\u0438\u043C\u0432\u043E\u043B", few: "\u0441\u0438\u043C\u0432\u043E\u043B\u0430", many: "\u0441\u0438\u043C\u0432\u043E\u043B\u043E\u0432" }, verb: "\u0438\u043C\u0435\u0442\u044C" }, file: { unit: { one: "\u0431\u0430\u0439\u0442", few: "\u0431\u0430\u0439\u0442\u0430", many: "\u0431\u0430\u0439\u0442" }, verb: "\u0438\u043C\u0435\u0442\u044C" }, array: { unit: { one: "\u044D\u043B\u0435\u043C\u0435\u043D\u0442", few: "\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u0430", many: "\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u043E\u0432" }, verb: "\u0438\u043C\u0435\u0442\u044C" }, set: { unit: { one: "\u044D\u043B\u0435\u043C\u0435\u043D\u0442", few: "\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u0430", many: "\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u043E\u0432" }, verb: "\u0438\u043C\u0435\u0442\u044C" }, map: { unit: { one: "\u044D\u043B\u0435\u043C\u0435\u043D\u0442", few: "\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u0430", many: "\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u043E\u0432" }, verb: "\u0438\u043C\u0435\u0442\u044C" } }; function getSizing(origin) { return Sizable[origin] ?? null; } const FormatDictionary = { regex: "\u0432\u0432\u043E\u0434", email: "email \u0430\u0434\u0440\u0435\u0441", url: "URL", emoji: "\u044D\u043C\u043E\u0434\u0437\u0438", uuid: "UUID", uuidv4: "UUIDv4", uuidv6: "UUIDv6", nanoid: "nanoid", guid: "GUID", cuid: "cuid", cuid2: "cuid2", ulid: "ULID", xid: "XID", ksuid: "KSUID", datetime: "ISO \u0434\u0430\u0442\u0430 \u0438 \u0432\u0440\u0435\u043C\u044F", date: "ISO \u0434\u0430\u0442\u0430", time: "ISO \u0432\u0440\u0435\u043C\u044F", duration: "ISO \u0434\u043B\u0438\u0442\u0435\u043B\u044C\u043D\u043E\u0441\u0442\u044C", ipv4: "IPv4 \u0430\u0434\u0440\u0435\u0441", ipv6: "IPv6 \u0430\u0434\u0440\u0435\u0441", mac: "MAC \u0430\u0434\u0440\u0435\u0441", cidrv4: "IPv4 \u0434\u0438\u0430\u043F\u0430\u0437\u043E\u043D", cidrv6: "IPv6 \u0434\u0438\u0430\u043F\u0430\u0437\u043E\u043D", base64: "\u0441\u0442\u0440\u043E\u043A\u0430 \u0432 \u0444\u043E\u0440\u043C\u0430\u0442\u0435 base64", base64url: "\u0441\u0442\u0440\u043E\u043A\u0430 \u0432 \u0444\u043E\u0440\u043C\u0430\u0442\u0435 base64url", json_string: "JSON \u0441\u0442\u0440\u043E\u043A\u0430", e164: "\u043D\u043E\u043C\u0435\u0440 E.164", credit_card: "\u043D\u043E\u043C\u0435\u0440 \u043A\u0440\u0435\u0434\u0438\u0442\u043D\u043E\u0439 \u043A\u0430\u0440\u0442\u044B", currency_code: "\u043A\u043E\u0434 \u0432\u0430\u043B\u044E\u0442\u044B", iban: "IBAN", jwt: "JWT", template_literal: "\u0432\u0432\u043E\u0434" }; const TypeDictionary = { nan: "NaN", number: "\u0447\u0438\u0441\u043B\u043E", array: "\u043C\u0430\u0441\u0441\u0438\u0432" }; return (issue2) => { switch (issue2.code) { case "invalid_type": { const expected = TypeDictionary[issue2.expected] ?? issue2.expected; const receivedType = parsedType(issue2.input); const received = TypeDictionary[receivedType] ?? receivedType; if (/^[A-Z]/.test(issue2.expected)) { return `\u041D\u0435\u0432\u0435\u0440\u043D\u044B\u0439 \u0432\u0432\u043E\u0434: \u043E\u0436\u0438\u0434\u0430\u043B\u043E\u0441\u044C instanceof ${issue2.expected}, \u043F\u043E\u043B\u0443\u0447\u0435\u043D\u043E ${received}`; } return `\u041D\u0435\u0432\u0435\u0440\u043D\u044B\u0439 \u0432\u0432\u043E\u0434: \u043E\u0436\u0438\u0434\u0430\u043B\u043E\u0441\u044C ${expected}, \u043F\u043E\u043B\u0443\u0447\u0435\u043D\u043E ${received}`; } case "invalid_value": if (issue2.values.length === 1) return `\u041D\u0435\u0432\u0435\u0440\u043D\u044B\u0439 \u0432\u0432\u043E\u0434: \u043E\u0436\u0438\u0434\u0430\u043B\u043E\u0441\u044C ${stringifyPrimitive(issue2.values[0])}`; return `\u041D\u0435\u0432\u0435\u0440\u043D\u044B\u0439 \u0432\u0430\u0440\u0438\u0430\u043D\u0442: \u043E\u0436\u0438\u0434\u0430\u043B\u043E\u0441\u044C \u043E\u0434\u043D\u043E \u0438\u0437 ${joinValues(issue2.values, "|")}`; case "too_big": { const adj = issue2.inclusive ? "<=" : "<"; const sizing = getSizing(issue2.origin); if (sizing) { const maxValue = Number(issue2.maximum); const unit = getRussianPlural(maxValue, sizing.unit.one, sizing.unit.few, sizing.unit.many); return `\u0421\u043B\u0438\u0448\u043A\u043E\u043C \u0431\u043E\u043B\u044C\u0448\u043E\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435: \u043E\u0436\u0438\u0434\u0430\u043B\u043E\u0441\u044C, \u0447\u0442\u043E ${issue2.origin ?? "\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435"} \u0431\u0443\u0434\u0435\u0442 \u0438\u043C\u0435\u0442\u044C ${adj}${issue2.maximum.toString()} ${unit}`; } return `\u0421\u043B\u0438\u0448\u043A\u043E\u043C \u0431\u043E\u043B\u044C\u0448\u043E\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435: \u043E\u0436\u0438\u0434\u0430\u043B\u043E\u0441\u044C, \u0447\u0442\u043E ${issue2.origin ?? "\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435"} \u0431\u0443\u0434\u0435\u0442 ${adj}${issue2.maximum.toString()}`; } case "too_small": { const adj = issue2.inclusive ? ">=" : ">"; const sizing = getSizing(issue2.origin); if (sizing) { const minValue = Number(issue2.minimum); const unit = getRussianPlural(minValue, sizing.unit.one, sizing.unit.few, sizing.unit.many); return `\u0421\u043B\u0438\u0448\u043A\u043E\u043C \u043C\u0430\u043B\u0435\u043D\u044C\u043A\u043E\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435: \u043E\u0436\u0438\u0434\u0430\u043B\u043E\u0441\u044C, \u0447\u0442\u043E ${issue2.origin} \u0431\u0443\u0434\u0435\u0442 \u0438\u043C\u0435\u0442\u044C ${adj}${issue2.minimum.toString()} ${unit}`; } return `\u0421\u043B\u0438\u0448\u043A\u043E\u043C \u043C\u0430\u043B\u0435\u043D\u044C\u043A\u043E\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435: \u043E\u0436\u0438\u0434\u0430\u043B\u043E\u0441\u044C, \u0447\u0442\u043E ${issue2.origin} \u0431\u0443\u0434\u0435\u0442 ${adj}${issue2.minimum.toString()}`; } case "invalid_format": { const _issue = issue2; if (_issue.format === "starts_with") return `\u041D\u0435\u0432\u0435\u0440\u043D\u0430\u044F \u0441\u0442\u0440\u043E\u043A\u0430: \u0434\u043E\u043B\u0436\u043D\u0430 \u043D\u0430\u0447\u0438\u043D\u0430\u0442\u044C\u0441\u044F \u0441 "${_issue.prefix}"`; if (_issue.format === "ends_with") return `\u041D\u0435\u0432\u0435\u0440\u043D\u0430\u044F \u0441\u0442\u0440\u043E\u043A\u0430: \u0434\u043E\u043B\u0436\u043D\u0430 \u0437\u0430\u043A\u0430\u043D\u0447\u0438\u0432\u0430\u0442\u044C\u0441\u044F \u043D\u0430 "${_issue.suffix}"`; if (_issue.format === "includes") return `\u041D\u0435\u0432\u0435\u0440\u043D\u0430\u044F \u0441\u0442\u0440\u043E\u043A\u0430: \u0434\u043E\u043B\u0436\u043D\u0430 \u0441\u043E\u0434\u0435\u0440\u0436\u0430\u0442\u044C "${_issue.includes}"`; if (_issue.format === "regex") return `\u041D\u0435\u0432\u0435\u0440\u043D\u0430\u044F \u0441\u0442\u0440\u043E\u043A\u0430: \u0434\u043E\u043B\u0436\u043D\u0430 \u0441\u043E\u043E\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u043E\u0432\u0430\u0442\u044C \u0448\u0430\u0431\u043B\u043E\u043D\u0443 ${_issue.pattern}`; return `\u041D\u0435\u0432\u0435\u0440\u043D\u044B\u0439 ${FormatDictionary[_issue.format] ?? issue2.format}`; } case "not_multiple_of": return `\u041D\u0435\u0432\u0435\u0440\u043D\u043E\u0435 \u0447\u0438\u0441\u043B\u043E: \u0434\u043E\u043B\u0436\u043D\u043E \u0431\u044B\u0442\u044C \u043A\u0440\u0430\u0442\u043D\u044B\u043C ${issue2.divisor}`; case "unrecognized_keys": return `\u041D\u0435\u0440\u0430\u0441\u043F\u043E\u0437\u043D\u0430\u043D\u043D${issue2.keys.length > 1 ? "\u044B\u0435" : "\u044B\u0439"} \u043A\u043B\u044E\u0447${issue2.keys.length > 1 ? "\u0438" : ""}: ${joinValues(issue2.keys, ", ")}`; case "invalid_key": return `\u041D\u0435\u0432\u0435\u0440\u043D\u044B\u0439 \u043A\u043B\u044E\u0447 \u0432 ${issue2.origin}`; case "invalid_union": return "\u041D\u0435\u0432\u0435\u0440\u043D\u044B\u0435 \u0432\u0445\u043E\u0434\u043D\u044B\u0435 \u0434\u0430\u043D\u043D\u044B\u0435"; case "invalid_element": return `\u041D\u0435\u0432\u0435\u0440\u043D\u043E\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435 \u0432 ${issue2.origin}`; default: return `\u041D\u0435\u0432\u0435\u0440\u043D\u044B\u0435 \u0432\u0445\u043E\u0434\u043D\u044B\u0435 \u0434\u0430\u043D\u043D\u044B\u0435`; } }; }; function ru_default() { return { localeError: error46() }; } // ../../../../node_modules/zod/v4/locales/sk.js var error47 = () => { const Sizable = { string: { unit: "znakov", verb: "ma\u0165" }, file: { unit: "bajtov", verb: "ma\u0165" }, array: { unit: "prvkov", verb: "ma\u0165" }, set: { unit: "prvkov", verb: "ma\u0165" }, map: { unit: "polo\u017Eiek", verb: "ma\u0165" } }; function getSizing(origin) { return Sizable[origin] ?? null; } const FormatDictionary = { regex: "regul\xE1rny v\xFDraz", email: "e-mailov\xE1 adresa", url: "URL", emoji: "emoji", uuid: "UUID", uuidv4: "UUIDv4", uuidv6: "UUIDv6", nanoid: "nanoid", guid: "GUID", cuid: "cuid", cuid2: "cuid2", ulid: "ULID", xid: "XID", ksuid: "KSUID", datetime: "d\xE1tum a \u010Das vo form\xE1te ISO", date: "d\xE1tum vo form\xE1te ISO", time: "\u010Das vo form\xE1te ISO", duration: "doba trvania ISO", ipv4: "IPv4 adresa", ipv6: "IPv6 adresa", mac: "MAC adresa", cidrv4: "rozsah IPv4", cidrv6: "rozsah IPv6", base64: "re\u0165azec zak\xF3dovan\xFD vo form\xE1te base64", base64url: "re\u0165azec zak\xF3dovan\xFD vo form\xE1te base64url", json_string: "re\u0165azec vo form\xE1te JSON", e164: "\u010D\xEDslo E.164", credit_card: "\u010D\xEDslo kreditnej karty", currency_code: "k\xF3d meny", iban: "IBAN", jwt: "JWT", template_literal: "vstup" }; const TypeDictionary = { nan: "NaN", number: "\u010D\xEDslo", string: "re\u0165azec", function: "funkcia", array: "pole" }; return (issue2) => { switch (issue2.code) { case "invalid_type": { const expected = TypeDictionary[issue2.expected] ?? issue2.expected; const receivedType = parsedType(issue2.input); const received = TypeDictionary[receivedType] ?? receivedType; if (/^[A-Z]/.test(issue2.expected)) { return `Neplatn\xFD vstup: o\u010Dak\xE1van\xE9 instanceof ${issue2.expected}, obdr\u017Ean\xE9 ${received}`; } return `Neplatn\xFD vstup: o\u010Dak\xE1van\xE9 ${expected}, obdr\u017Ean\xE9 ${received}`; } case "invalid_value": if (issue2.values.length === 1) return `Neplatn\xFD vstup: o\u010Dak\xE1van\xE9 ${stringifyPrimitive(issue2.values[0])}`; return `Neplatn\xFD vstup: o\u010Dak\xE1van\xE1 jedna z hodn\xF4t ${joinValues(issue2.values, "|")}`; case "too_big": { const adj = issue2.inclusive ? "<=" : "<"; const sizing = getSizing(issue2.origin); if (sizing) { return `Hodnota je pr\xEDli\u0161 ve\u013Ek\xE1: ${issue2.origin ?? "hodnota"} mus\xED ma\u0165 ${adj}${issue2.maximum.toString()} ${sizing.unit ?? "prvkov"}`; } return `Hodnota je pr\xEDli\u0161 ve\u013Ek\xE1: ${issue2.origin ?? "hodnota"} mus\xED by\u0165 ${adj}${issue2.maximum.toString()}`; } case "too_small": { const adj = issue2.inclusive ? ">=" : ">"; const sizing = getSizing(issue2.origin); if (sizing) { return `Hodnota je pr\xEDli\u0161 mal\xE1: ${issue2.origin ?? "hodnota"} mus\xED ma\u0165 ${adj}${issue2.minimum.toString()} ${sizing.unit ?? "prvkov"}`; } return `Hodnota je pr\xEDli\u0161 mal\xE1: ${issue2.origin ?? "hodnota"} mus\xED by\u0165 ${adj}${issue2.minimum.toString()}`; } case "invalid_format": { const _issue = issue2; if (_issue.format === "starts_with") return `Neplatn\xFD re\u0165azec: mus\xED za\u010D\xEDna\u0165 na "${_issue.prefix}"`; if (_issue.format === "ends_with") return `Neplatn\xFD re\u0165azec: mus\xED kon\u010Di\u0165 na "${_issue.suffix}"`; if (_issue.format === "includes") return `Neplatn\xFD re\u0165azec: mus\xED obsahova\u0165 "${_issue.includes}"`; if (_issue.format === "regex") return `Neplatn\xFD re\u0165azec: mus\xED zodpoveda\u0165 vzoru ${_issue.pattern}`; return `Neplatn\xFD form\xE1t ${FormatDictionary[_issue.format] ?? issue2.format}`; } case "not_multiple_of": return `Neplatn\xE9 \u010D\xEDslo: mus\xED by\u0165 n\xE1sobkom ${issue2.divisor}`; case "unrecognized_keys": return `Nezn\xE1me kl\xFA\u010De: ${joinValues(issue2.keys, ", ")}`; case "invalid_key": return `Neplatn\xFD kl\xFA\u010D v ${issue2.origin}`; case "invalid_union": return "Neplatn\xFD vstup"; case "invalid_element": return `Neplatn\xE1 hodnota v ${issue2.origin}`; default: return `Neplatn\xFD vstup`; } }; }; function sk_default() { return { localeError: error47() }; } // ../../../../node_modules/zod/v4/locales/sl.js var error48 = () => { const Sizable = { string: { unit: "znakov", verb: "imeti" }, file: { unit: "bajtov", verb: "imeti" }, array: { unit: "elementov", verb: "imeti" }, set: { unit: "elementov", verb: "imeti" }, map: { unit: "elementov", verb: "imeti" } }; function getSizing(origin) { return Sizable[origin] ?? null; } const FormatDictionary = { regex: "vnos", email: "e-po\u0161tni naslov", url: "URL", emoji: "emoji", uuid: "UUID", uuidv4: "UUIDv4", uuidv6: "UUIDv6", nanoid: "nanoid", guid: "GUID", cuid: "cuid", cuid2: "cuid2", ulid: "ULID", xid: "XID", ksuid: "KSUID", datetime: "ISO datum in \u010Das", date: "ISO datum", time: "ISO \u010Das", duration: "ISO trajanje", ipv4: "IPv4 naslov", ipv6: "IPv6 naslov", mac: "MAC naslov", cidrv4: "obseg IPv4", cidrv6: "obseg IPv6", base64: "base64 kodiran niz", base64url: "base64url kodiran niz", json_string: "JSON niz", e164: "E.164 \u0161tevilka", credit_card: "\u0161tevilka kreditne kartice", currency_code: "koda valute", iban: "IBAN", jwt: "JWT", template_literal: "vnos" }; const TypeDictionary = { nan: "NaN", number: "\u0161tevilo", array: "tabela" }; return (issue2) => { switch (issue2.code) { case "invalid_type": { const expected = TypeDictionary[issue2.expected] ?? issue2.expected; const receivedType = parsedType(issue2.input); const received = TypeDictionary[receivedType] ?? receivedType; if (/^[A-Z]/.test(issue2.expected)) { return `Neveljaven vnos: pri\u010Dakovano instanceof ${issue2.expected}, prejeto ${received}`; } return `Neveljaven vnos: pri\u010Dakovano ${expected}, prejeto ${received}`; } case "invalid_value": if (issue2.values.length === 1) return `Neveljaven vnos: pri\u010Dakovano ${stringifyPrimitive(issue2.values[0])}`; return `Neveljavna mo\u017Enost: pri\u010Dakovano eno izmed ${joinValues(issue2.values, "|")}`; case "too_big": { const adj = issue2.inclusive ? "<=" : "<"; const sizing = getSizing(issue2.origin); if (sizing) return `Preveliko: pri\u010Dakovano, da bo ${issue2.origin ?? "vrednost"} imelo ${adj}${issue2.maximum.toString()} ${sizing.unit ?? "elementov"}`; return `Preveliko: pri\u010Dakovano, da bo ${issue2.origin ?? "vrednost"} ${adj}${issue2.maximum.toString()}`; } case "too_small": { const adj = issue2.inclusive ? ">=" : ">"; const sizing = getSizing(issue2.origin); if (sizing) { return `Premajhno: pri\u010Dakovano, da bo ${issue2.origin} imelo ${adj}${issue2.minimum.toString()} ${sizing.unit}`; } return `Premajhno: pri\u010Dakovano, da bo ${issue2.origin} ${adj}${issue2.minimum.toString()}`; } case "invalid_format": { const _issue = issue2; if (_issue.format === "starts_with") { return `Neveljaven niz: mora se za\u010Deti z "${_issue.prefix}"`; } if (_issue.format === "ends_with") return `Neveljaven niz: mora se kon\u010Dati z "${_issue.suffix}"`; if (_issue.format === "includes") return `Neveljaven niz: mora vsebovati "${_issue.includes}"`; if (_issue.format === "regex") return `Neveljaven niz: mora ustrezati vzorcu ${_issue.pattern}`; return `Neveljaven ${FormatDictionary[_issue.format] ?? issue2.format}`; } case "not_multiple_of": return `Neveljavno \u0161tevilo: mora biti ve\u010Dkratnik ${issue2.divisor}`; case "unrecognized_keys": return `Neprepoznan${issue2.keys.length > 1 ? "i klju\u010Di" : " klju\u010D"}: ${joinValues(issue2.keys, ", ")}`; case "invalid_key": return `Neveljaven klju\u010D v ${issue2.origin}`; case "invalid_union": return "Neveljaven vnos"; case "invalid_element": return `Neveljavna vrednost v ${issue2.origin}`; default: return "Neveljaven vnos"; } }; }; function sl_default() { return { localeError: error48() }; } // ../../../../node_modules/zod/v4/locales/sv.js var error49 = () => { const Sizable = { string: { unit: "tecken", verb: "att ha" }, file: { unit: "bytes", verb: "att ha" }, array: { unit: "objekt", verb: "att inneh\xE5lla" }, set: { unit: "objekt", verb: "att inneh\xE5lla" }, map: { unit: "objekt", verb: "att inneh\xE5lla" } }; function getSizing(origin) { return Sizable[origin] ?? null; } const FormatDictionary = { regex: "regulj\xE4rt uttryck", email: "e-postadress", url: "URL", emoji: "emoji", uuid: "UUID", uuidv4: "UUIDv4", uuidv6: "UUIDv6", nanoid: "nanoid", guid: "GUID", cuid: "cuid", cuid2: "cuid2", ulid: "ULID", xid: "XID", ksuid: "KSUID", datetime: "ISO-datum och tid", date: "ISO-datum", time: "ISO-tid", duration: "ISO-varaktighet", ipv4: "IPv4-adress", ipv6: "IPv6-adress", mac: "MAC-adress", cidrv4: "IPv4-spektrum", cidrv6: "IPv6-spektrum", base64: "base64-kodad str\xE4ng", base64url: "base64url-kodad str\xE4ng", json_string: "JSON-str\xE4ng", e164: "E.164-nummer", credit_card: "kreditkortsnummer", currency_code: "valutakod", iban: "IBAN", jwt: "JWT", template_literal: "mall-literal" }; const TypeDictionary = { nan: "NaN", number: "antal", array: "lista" }; return (issue2) => { switch (issue2.code) { case "invalid_type": { const expected = TypeDictionary[issue2.expected] ?? issue2.expected; const receivedType = parsedType(issue2.input); const received = TypeDictionary[receivedType] ?? receivedType; if (/^[A-Z]/.test(issue2.expected)) { return `Ogiltig inmatning: f\xF6rv\xE4ntat instanceof ${issue2.expected}, fick ${received}`; } return `Ogiltig inmatning: f\xF6rv\xE4ntat ${expected}, fick ${received}`; } case "invalid_value": if (issue2.values.length === 1) return `Ogiltig inmatning: f\xF6rv\xE4ntat ${stringifyPrimitive(issue2.values[0])}`; return `Ogiltigt val: f\xF6rv\xE4ntade en av ${joinValues(issue2.values, "|")}`; case "too_big": { const adj = issue2.inclusive ? "<=" : "<"; const sizing = getSizing(issue2.origin); if (sizing) { return `F\xF6r stor(t): f\xF6rv\xE4ntade ${issue2.origin ?? "v\xE4rdet"} att ha ${adj}${issue2.maximum.toString()} ${sizing.unit ?? "element"}`; } return `F\xF6r stor(t): f\xF6rv\xE4ntat ${issue2.origin ?? "v\xE4rdet"} att ha ${adj}${issue2.maximum.toString()}`; } case "too_small": { const adj = issue2.inclusive ? ">=" : ">"; const sizing = getSizing(issue2.origin); if (sizing) { return `F\xF6r lite(t): f\xF6rv\xE4ntade ${issue2.origin ?? "v\xE4rdet"} att ha ${adj}${issue2.minimum.toString()} ${sizing.unit}`; } return `F\xF6r lite(t): f\xF6rv\xE4ntade ${issue2.origin ?? "v\xE4rdet"} att ha ${adj}${issue2.minimum.toString()}`; } case "invalid_format": { const _issue = issue2; if (_issue.format === "starts_with") { return `Ogiltig str\xE4ng: m\xE5ste b\xF6rja med "${_issue.prefix}"`; } if (_issue.format === "ends_with") return `Ogiltig str\xE4ng: m\xE5ste sluta med "${_issue.suffix}"`; if (_issue.format === "includes") return `Ogiltig str\xE4ng: m\xE5ste inneh\xE5lla "${_issue.includes}"`; if (_issue.format === "regex") return `Ogiltig str\xE4ng: m\xE5ste matcha m\xF6nstret "${_issue.pattern}"`; return `Ogiltig(t) ${FormatDictionary[_issue.format] ?? issue2.format}`; } case "not_multiple_of": return `Ogiltigt tal: m\xE5ste vara en multipel av ${issue2.divisor}`; case "unrecognized_keys": return `${issue2.keys.length > 1 ? "Ok\xE4nda nycklar" : "Ok\xE4nd nyckel"}: ${joinValues(issue2.keys, ", ")}`; case "invalid_key": return `Ogiltig nyckel i ${issue2.origin ?? "v\xE4rdet"}`; case "invalid_union": return "Ogiltig input"; case "invalid_element": return `Ogiltigt v\xE4rde i ${issue2.origin ?? "v\xE4rdet"}`; default: return `Ogiltig input`; } }; }; function sv_default() { return { localeError: error49() }; } // ../../../../node_modules/zod/v4/locales/ta.js var error50 = () => { const Sizable = { string: { unit: "\u0B8E\u0BB4\u0BC1\u0BA4\u0BCD\u0BA4\u0BC1\u0B95\u0BCD\u0B95\u0BB3\u0BCD", verb: "\u0B95\u0BCA\u0BA3\u0BCD\u0B9F\u0BBF\u0BB0\u0BC1\u0B95\u0BCD\u0B95 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD" }, file: { unit: "\u0BAA\u0BC8\u0B9F\u0BCD\u0B9F\u0BC1\u0B95\u0BB3\u0BCD", verb: "\u0B95\u0BCA\u0BA3\u0BCD\u0B9F\u0BBF\u0BB0\u0BC1\u0B95\u0BCD\u0B95 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD" }, array: { unit: "\u0B89\u0BB1\u0BC1\u0BAA\u0BCD\u0BAA\u0BC1\u0B95\u0BB3\u0BCD", verb: "\u0B95\u0BCA\u0BA3\u0BCD\u0B9F\u0BBF\u0BB0\u0BC1\u0B95\u0BCD\u0B95 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD" }, set: { unit: "\u0B89\u0BB1\u0BC1\u0BAA\u0BCD\u0BAA\u0BC1\u0B95\u0BB3\u0BCD", verb: "\u0B95\u0BCA\u0BA3\u0BCD\u0B9F\u0BBF\u0BB0\u0BC1\u0B95\u0BCD\u0B95 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD" }, map: { unit: "\u0B89\u0BB1\u0BC1\u0BAA\u0BCD\u0BAA\u0BC1\u0B95\u0BB3\u0BCD", verb: "\u0B95\u0BCA\u0BA3\u0BCD\u0B9F\u0BBF\u0BB0\u0BC1\u0B95\u0BCD\u0B95 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD" } }; function getSizing(origin) { return Sizable[origin] ?? null; } const FormatDictionary = { regex: "\u0B89\u0BB3\u0BCD\u0BB3\u0BC0\u0B9F\u0BC1", email: "\u0BAE\u0BBF\u0BA9\u0BCD\u0BA9\u0B9E\u0BCD\u0B9A\u0BB2\u0BCD \u0BAE\u0BC1\u0B95\u0BB5\u0BB0\u0BBF", url: "URL", emoji: "emoji", uuid: "UUID", uuidv4: "UUIDv4", uuidv6: "UUIDv6", nanoid: "nanoid", guid: "GUID", cuid: "cuid", cuid2: "cuid2", ulid: "ULID", xid: "XID", ksuid: "KSUID", datetime: "ISO \u0BA4\u0BC7\u0BA4\u0BBF \u0BA8\u0BC7\u0BB0\u0BAE\u0BCD", date: "ISO \u0BA4\u0BC7\u0BA4\u0BBF", time: "ISO \u0BA8\u0BC7\u0BB0\u0BAE\u0BCD", duration: "ISO \u0B95\u0BBE\u0BB2 \u0B85\u0BB3\u0BB5\u0BC1", ipv4: "IPv4 \u0BAE\u0BC1\u0B95\u0BB5\u0BB0\u0BBF", ipv6: "IPv6 \u0BAE\u0BC1\u0B95\u0BB5\u0BB0\u0BBF", mac: "MAC \u0BAE\u0BC1\u0B95\u0BB5\u0BB0\u0BBF", cidrv4: "IPv4 \u0BB5\u0BB0\u0BAE\u0BCD\u0BAA\u0BC1", cidrv6: "IPv6 \u0BB5\u0BB0\u0BAE\u0BCD\u0BAA\u0BC1", base64: "base64-encoded \u0B9A\u0BB0\u0BAE\u0BCD", base64url: "base64url-encoded \u0B9A\u0BB0\u0BAE\u0BCD", json_string: "JSON \u0B9A\u0BB0\u0BAE\u0BCD", e164: "E.164 \u0B8E\u0BA3\u0BCD", credit_card: "\u0B95\u0B9F\u0BA9\u0BCD \u0B85\u0B9F\u0BCD\u0B9F\u0BC8 \u0B8E\u0BA3\u0BCD", currency_code: "\u0BA8\u0BBE\u0BA3\u0BAF\u0B95\u0BCD \u0B95\u0BC1\u0BB1\u0BBF\u0BAF\u0BC0\u0B9F\u0BC1", iban: "IBAN", jwt: "JWT", template_literal: "input" }; const TypeDictionary = { nan: "NaN", number: "\u0B8E\u0BA3\u0BCD", array: "\u0B85\u0BA3\u0BBF", null: "\u0BB5\u0BC6\u0BB1\u0BC1\u0BAE\u0BC8" }; return (issue2) => { switch (issue2.code) { case "invalid_type": { const expected = TypeDictionary[issue2.expected] ?? issue2.expected; const receivedType = parsedType(issue2.input); const received = TypeDictionary[receivedType] ?? receivedType; if (/^[A-Z]/.test(issue2.expected)) { return `\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0B89\u0BB3\u0BCD\u0BB3\u0BC0\u0B9F\u0BC1: \u0B8E\u0BA4\u0BBF\u0BB0\u0BCD\u0BAA\u0BBE\u0BB0\u0BCD\u0B95\u0BCD\u0B95\u0BAA\u0BCD\u0BAA\u0B9F\u0BCD\u0B9F\u0BA4\u0BC1 instanceof ${issue2.expected}, \u0BAA\u0BC6\u0BB1\u0BAA\u0BCD\u0BAA\u0B9F\u0BCD\u0B9F\u0BA4\u0BC1 ${received}`; } return `\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0B89\u0BB3\u0BCD\u0BB3\u0BC0\u0B9F\u0BC1: \u0B8E\u0BA4\u0BBF\u0BB0\u0BCD\u0BAA\u0BBE\u0BB0\u0BCD\u0B95\u0BCD\u0B95\u0BAA\u0BCD\u0BAA\u0B9F\u0BCD\u0B9F\u0BA4\u0BC1 ${expected}, \u0BAA\u0BC6\u0BB1\u0BAA\u0BCD\u0BAA\u0B9F\u0BCD\u0B9F\u0BA4\u0BC1 ${received}`; } case "invalid_value": if (issue2.values.length === 1) return `\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0B89\u0BB3\u0BCD\u0BB3\u0BC0\u0B9F\u0BC1: \u0B8E\u0BA4\u0BBF\u0BB0\u0BCD\u0BAA\u0BBE\u0BB0\u0BCD\u0B95\u0BCD\u0B95\u0BAA\u0BCD\u0BAA\u0B9F\u0BCD\u0B9F\u0BA4\u0BC1 ${stringifyPrimitive(issue2.values[0])}`; return `\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0BB5\u0BBF\u0BB0\u0BC1\u0BAA\u0BCD\u0BAA\u0BAE\u0BCD: \u0B8E\u0BA4\u0BBF\u0BB0\u0BCD\u0BAA\u0BBE\u0BB0\u0BCD\u0B95\u0BCD\u0B95\u0BAA\u0BCD\u0BAA\u0B9F\u0BCD\u0B9F\u0BA4\u0BC1 ${joinValues(issue2.values, "|")} \u0B87\u0BB2\u0BCD \u0B92\u0BA9\u0BCD\u0BB1\u0BC1`; case "too_big": { const adj = issue2.inclusive ? "<=" : "<"; const sizing = getSizing(issue2.origin); if (sizing) { return `\u0BAE\u0BBF\u0B95 \u0BAA\u0BC6\u0BB0\u0BBF\u0BAF\u0BA4\u0BC1: \u0B8E\u0BA4\u0BBF\u0BB0\u0BCD\u0BAA\u0BBE\u0BB0\u0BCD\u0B95\u0BCD\u0B95\u0BAA\u0BCD\u0BAA\u0B9F\u0BCD\u0B9F\u0BA4\u0BC1 ${issue2.origin ?? "\u0BAE\u0BA4\u0BBF\u0BAA\u0BCD\u0BAA\u0BC1"} ${adj}${issue2.maximum.toString()} ${sizing.unit ?? "\u0B89\u0BB1\u0BC1\u0BAA\u0BCD\u0BAA\u0BC1\u0B95\u0BB3\u0BCD"} \u0B86\u0B95 \u0B87\u0BB0\u0BC1\u0B95\u0BCD\u0B95 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD`; } return `\u0BAE\u0BBF\u0B95 \u0BAA\u0BC6\u0BB0\u0BBF\u0BAF\u0BA4\u0BC1: \u0B8E\u0BA4\u0BBF\u0BB0\u0BCD\u0BAA\u0BBE\u0BB0\u0BCD\u0B95\u0BCD\u0B95\u0BAA\u0BCD\u0BAA\u0B9F\u0BCD\u0B9F\u0BA4\u0BC1 ${issue2.origin ?? "\u0BAE\u0BA4\u0BBF\u0BAA\u0BCD\u0BAA\u0BC1"} ${adj}${issue2.maximum.toString()} \u0B86\u0B95 \u0B87\u0BB0\u0BC1\u0B95\u0BCD\u0B95 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD`; } case "too_small": { const adj = issue2.inclusive ? ">=" : ">"; const sizing = getSizing(issue2.origin); if (sizing) { return `\u0BAE\u0BBF\u0B95\u0B9A\u0BCD \u0B9A\u0BBF\u0BB1\u0BBF\u0BAF\u0BA4\u0BC1: \u0B8E\u0BA4\u0BBF\u0BB0\u0BCD\u0BAA\u0BBE\u0BB0\u0BCD\u0B95\u0BCD\u0B95\u0BAA\u0BCD\u0BAA\u0B9F\u0BCD\u0B9F\u0BA4\u0BC1 ${issue2.origin} ${adj}${issue2.minimum.toString()} ${sizing.unit} \u0B86\u0B95 \u0B87\u0BB0\u0BC1\u0B95\u0BCD\u0B95 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD`; } return `\u0BAE\u0BBF\u0B95\u0B9A\u0BCD \u0B9A\u0BBF\u0BB1\u0BBF\u0BAF\u0BA4\u0BC1: \u0B8E\u0BA4\u0BBF\u0BB0\u0BCD\u0BAA\u0BBE\u0BB0\u0BCD\u0B95\u0BCD\u0B95\u0BAA\u0BCD\u0BAA\u0B9F\u0BCD\u0B9F\u0BA4\u0BC1 ${issue2.origin} ${adj}${issue2.minimum.toString()} \u0B86\u0B95 \u0B87\u0BB0\u0BC1\u0B95\u0BCD\u0B95 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD`; } case "invalid_format": { const _issue = issue2; if (_issue.format === "starts_with") return `\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0B9A\u0BB0\u0BAE\u0BCD: "${_issue.prefix}" \u0B87\u0BB2\u0BCD \u0BA4\u0BCA\u0B9F\u0B99\u0BCD\u0B95 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD`; if (_issue.format === "ends_with") return `\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0B9A\u0BB0\u0BAE\u0BCD: "${_issue.suffix}" \u0B87\u0BB2\u0BCD \u0BAE\u0BC1\u0B9F\u0BBF\u0BB5\u0B9F\u0BC8\u0BAF \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD`; if (_issue.format === "includes") return `\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0B9A\u0BB0\u0BAE\u0BCD: "${_issue.includes}" \u0B90 \u0B89\u0BB3\u0BCD\u0BB3\u0B9F\u0B95\u0BCD\u0B95 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD`; if (_issue.format === "regex") return `\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0B9A\u0BB0\u0BAE\u0BCD: ${_issue.pattern} \u0BAE\u0BC1\u0BB1\u0BC8\u0BAA\u0BBE\u0B9F\u0BCD\u0B9F\u0BC1\u0B9F\u0BA9\u0BCD \u0BAA\u0BCA\u0BB0\u0BC1\u0BA8\u0BCD\u0BA4 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD`; return `\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 ${FormatDictionary[_issue.format] ?? issue2.format}`; } case "not_multiple_of": return `\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0B8E\u0BA3\u0BCD: ${issue2.divisor} \u0B87\u0BA9\u0BCD \u0BAA\u0BB2\u0BAE\u0BBE\u0B95 \u0B87\u0BB0\u0BC1\u0B95\u0BCD\u0B95 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD`; case "unrecognized_keys": return `\u0B85\u0B9F\u0BC8\u0BAF\u0BBE\u0BB3\u0BAE\u0BCD \u0BA4\u0BC6\u0BB0\u0BBF\u0BAF\u0BBE\u0BA4 \u0BB5\u0BBF\u0B9A\u0BC8${issue2.keys.length > 1 ? "\u0B95\u0BB3\u0BCD" : ""}: ${joinValues(issue2.keys, ", ")}`; case "invalid_key": return `${issue2.origin} \u0B87\u0BB2\u0BCD \u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0BB5\u0BBF\u0B9A\u0BC8`; case "invalid_union": return "\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0B89\u0BB3\u0BCD\u0BB3\u0BC0\u0B9F\u0BC1"; case "invalid_element": return `${issue2.origin} \u0B87\u0BB2\u0BCD \u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0BAE\u0BA4\u0BBF\u0BAA\u0BCD\u0BAA\u0BC1`; default: return `\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0B89\u0BB3\u0BCD\u0BB3\u0BC0\u0B9F\u0BC1`; } }; }; function ta_default() { return { localeError: error50() }; } // ../../../../node_modules/zod/v4/locales/tg.js var error51 = () => { const Sizable = { string: { unit: "\u0430\u043B\u043E\u043C\u0430\u0442", verb: "\u0434\u043E\u0448\u0442\u0430 \u0431\u043E\u0448\u0430\u0434" }, file: { unit: "\u0431\u0430\u0439\u0442", verb: "\u0434\u043E\u0448\u0442\u0430 \u0431\u043E\u0448\u0430\u0434" }, array: { unit: "\u0443\u043D\u0441\u0443\u0440", verb: "\u0434\u043E\u0448\u0442\u0430 \u0431\u043E\u0448\u0430\u0434" }, set: { unit: "\u0443\u043D\u0441\u0443\u0440", verb: "\u0434\u043E\u0448\u0442\u0430 \u0431\u043E\u0448\u0430\u0434" }, map: { unit: "\u0441\u0430\u0431\u0442", verb: "\u0434\u043E\u0448\u0442\u0430 \u0431\u043E\u0448\u0430\u0434" } }; function getSizing(origin) { return Sizable[origin] ?? null; } const FormatDictionary = { regex: "\u0432\u0443\u0440\u0443\u0434", email: "\u0441\u0443\u0440\u043E\u0493\u0430\u0438 email", url: "URL", emoji: "\u044D\u043C\u043E\u04B7\u0438", uuid: "UUID", uuidv4: "UUIDv4", uuidv6: "UUIDv6", nanoid: "nanoid", guid: "GUID", cuid: "cuid", cuid2: "cuid2", ulid: "ULID", xid: "XID", ksuid: "KSUID", datetime: "\u0441\u0430\u043D\u0430\u0432\u0443 \u0432\u0430\u049B\u0442\u0438 ISO", date: "\u0441\u0430\u043D\u0430\u0438 ISO", time: "\u0432\u0430\u049B\u0442\u0438 ISO", duration: "\u0434\u0430\u0432\u043E\u043C\u043D\u043E\u043A\u0438\u0438 ISO", ipv4: "\u0441\u0443\u0440\u043E\u0493\u0430\u0438 IPv4", ipv6: "\u0441\u0443\u0440\u043E\u0493\u0430\u0438 IPv6", mac: "\u0441\u0443\u0440\u043E\u0493\u0430\u0438 MAC", cidrv4: "\u043C\u0430\u04B3\u0434\u0443\u0434\u0430\u0438 IPv4", cidrv6: "\u043C\u0430\u04B3\u0434\u0443\u0434\u0430\u0438 IPv6", base64: "\u0441\u0430\u0442\u0440\u0438 \u0434\u0430\u0440 \u0444\u043E\u0440\u043C\u0430\u0442\u0438 base64", base64url: "\u0441\u0430\u0442\u0440\u0438 \u0434\u0430\u0440 \u0444\u043E\u0440\u043C\u0430\u0442\u0438 base64url", json_string: "\u0441\u0430\u0442\u0440\u0438 JSON", e164: "\u0440\u0430\u049B\u0430\u043C\u0438 E.164", credit_card: "\u0440\u0430\u049B\u0430\u043C\u0438 \u043A\u043E\u0440\u0442\u0438 \u043A\u0440\u0435\u0434\u0438\u0442\u04E3", currency_code: "\u0440\u0430\u043C\u0437\u0438 \u0430\u0441\u044A\u043E\u0440", iban: "IBAN", jwt: "JWT", template_literal: "\u0432\u0443\u0440\u0443\u0434" }; const TypeDictionary = { nan: "NaN", number: "\u0440\u0430\u049B\u0430\u043C", string: "\u0441\u0430\u0442\u0440", array: "\u043C\u0430\u0441\u0441\u0438\u0432", object: "\u043E\u0431\u044A\u0435\u043A\u0442", date: "\u0441\u0430\u043D\u0430" }; return (issue2) => { switch (issue2.code) { case "invalid_type": { const expected = TypeDictionary[issue2.expected] ?? issue2.expected; const receivedType = parsedType(issue2.input); const received = TypeDictionary[receivedType] ?? receivedType; return `\u0412\u0443\u0440\u0443\u0434\u0438 \u043D\u043E\u0434\u0443\u0440\u0443\u0441\u0442: ${expected} \u0438\u043D\u0442\u0438\u0437\u043E\u0440 \u043C\u0435\u0440\u0430\u0444\u0442, ${received} \u0433\u0438\u0440\u0438\u0444\u0442\u0430 \u0448\u0443\u0434`; } case "invalid_value": if (issue2.values.length === 1) return `\u0412\u0443\u0440\u0443\u0434\u0438 \u043D\u043E\u0434\u0443\u0440\u0443\u0441\u0442: ${stringifyPrimitive(issue2.values[0])} \u0438\u043D\u0442\u0438\u0437\u043E\u0440 \u043C\u0435\u0440\u0430\u0444\u0442`; return `\u0418\u043D\u0442\u0438\u0445\u043E\u0431\u0438 \u043D\u043E\u0434\u0443\u0440\u0443\u0441\u0442: \u044F\u043A\u0435 \u0430\u0437 ${joinValues(issue2.values, "|")} \u0438\u043D\u0442\u0438\u0437\u043E\u0440 \u043C\u0435\u0440\u0430\u0444\u0442`; case "too_big": { const adj = issue2.inclusive ? "<=" : "<"; const sizing = getSizing(issue2.origin); if (sizing) return `\u0425\u0435\u043B\u0435 \u043A\u0430\u043B\u043E\u043D: ${issue2.origin ?? "\u049B\u0438\u043C\u0430\u0442"} \u0431\u043E\u044F\u0434 ${adj}${issue2.maximum.toString()} ${sizing.unit} ${sizing.verb}`; return `\u0425\u0435\u043B\u0435 \u043A\u0430\u043B\u043E\u043D: ${issue2.origin ?? "\u049B\u0438\u043C\u0430\u0442"} \u0431\u043E\u044F\u0434 ${adj}${issue2.maximum.toString()} \u0431\u043E\u0448\u0430\u0434`; } case "too_small": { const adj = issue2.inclusive ? ">=" : ">"; const sizing = getSizing(issue2.origin); if (sizing) return `\u0425\u0435\u043B\u0435 \u0445\u0443\u0440\u0434: ${issue2.origin} \u0431\u043E\u044F\u0434 ${adj}${issue2.minimum.toString()} ${sizing.unit} ${sizing.verb}`; return `\u0425\u0435\u043B\u0435 \u0445\u0443\u0440\u0434: ${issue2.origin} \u0431\u043E\u044F\u0434 ${adj}${issue2.minimum.toString()} \u0431\u043E\u0448\u0430\u0434`; } case "invalid_format": { const _issue = issue2; if (_issue.format === "starts_with") return `\u0421\u0430\u0442\u0440\u0438 \u043D\u043E\u0434\u0443\u0440\u0443\u0441\u0442: \u0431\u043E\u044F\u0434 \u0431\u043E "${_issue.prefix}" \u043E\u0493\u043E\u0437 \u0448\u0430\u0432\u0430\u0434`; if (_issue.format === "ends_with") return `\u0421\u0430\u0442\u0440\u0438 \u043D\u043E\u0434\u0443\u0440\u0443\u0441\u0442: \u0431\u043E\u044F\u0434 \u0431\u043E "${_issue.suffix}" \u0430\u043D\u04B7\u043E\u043C \u0451\u0431\u0430\u0434`; if (_issue.format === "includes") return `\u0421\u0430\u0442\u0440\u0438 \u043D\u043E\u0434\u0443\u0440\u0443\u0441\u0442: \u0431\u043E\u044F\u0434 "${_issue.includes}"-\u0440\u043E \u0434\u0430\u0440 \u0431\u0430\u0440 \u0433\u0438\u0440\u0430\u0434`; if (_issue.format === "regex") return `\u0421\u0430\u0442\u0440\u0438 \u043D\u043E\u0434\u0443\u0440\u0443\u0441\u0442: \u0431\u043E\u044F\u0434 \u0431\u0430 \u043D\u0430\u043C\u0443\u043D\u0430\u0438 ${_issue.pattern} \u043C\u0443\u0432\u043E\u0444\u0438\u049B\u0430\u0442 \u043A\u0443\u043D\u0430\u0434`; return `${FormatDictionary[_issue.format] ?? issue2.format}-\u0438 \u043D\u043E\u0434\u0443\u0440\u0443\u0441\u0442`; } case "not_multiple_of": return `\u0420\u0430\u049B\u0430\u043C\u0438 \u043D\u043E\u0434\u0443\u0440\u0443\u0441\u0442: \u0431\u043E\u044F\u0434 \u0431\u0430 ${issue2.divisor} \u0431\u0435 \u0431\u0430\u049B\u0438\u044F \u0442\u0430\u049B\u0441\u0438\u043C \u0448\u0430\u0432\u0430\u0434`; case "unrecognized_keys": return `\u041A\u0430\u043B\u0438\u0434${issue2.keys.length > 1 ? "\u04B3\u043E\u0438" : "\u0438"} \u043D\u043E\u043C\u0430\u044A\u043B\u0443\u043C: ${joinValues(issue2.keys, ", ")}`; case "invalid_key": return `\u041A\u0430\u043B\u0438\u0434\u0438 \u043D\u043E\u0434\u0443\u0440\u0443\u0441\u0442 \u0434\u0430\u0440 ${issue2.origin}`; case "invalid_union": if (issue2.options && Array.isArray(issue2.options) && issue2.options.length > 0) { const opts = issue2.options.map((o) => `'${o}'`).join(" | "); return `\u049A\u0438\u043C\u0430\u0442\u0438 \u043D\u043E\u0434\u0443\u0440\u0443\u0441\u0442\u0438 \u0434\u0438\u0441\u043A\u0440\u0438\u043C\u0438\u043D\u0430\u0442\u043E\u0440: ${opts} \u0438\u043D\u0442\u0438\u0437\u043E\u0440 \u043C\u0435\u0440\u0430\u0444\u0442`; } return "\u0412\u0443\u0440\u0443\u0434\u0438 \u043D\u043E\u0434\u0443\u0440\u0443\u0441\u0442"; case "invalid_element": return `\u049A\u0438\u043C\u0430\u0442\u0438 \u043D\u043E\u0434\u0443\u0440\u0443\u0441\u0442 \u0434\u0430\u0440 ${issue2.origin}`; default: return `\u0412\u0443\u0440\u0443\u0434\u0438 \u043D\u043E\u0434\u0443\u0440\u0443\u0441\u0442`; } }; }; function tg_default() { return { localeError: error51() }; } // ../../../../node_modules/zod/v4/locales/th.js var error52 = () => { const Sizable = { string: { unit: "\u0E15\u0E31\u0E27\u0E2D\u0E31\u0E01\u0E29\u0E23", verb: "\u0E04\u0E27\u0E23\u0E21\u0E35" }, file: { unit: "\u0E44\u0E1A\u0E15\u0E4C", verb: "\u0E04\u0E27\u0E23\u0E21\u0E35" }, array: { unit: "\u0E23\u0E32\u0E22\u0E01\u0E32\u0E23", verb: "\u0E04\u0E27\u0E23\u0E21\u0E35" }, set: { unit: "\u0E23\u0E32\u0E22\u0E01\u0E32\u0E23", verb: "\u0E04\u0E27\u0E23\u0E21\u0E35" }, map: { unit: "\u0E23\u0E32\u0E22\u0E01\u0E32\u0E23", verb: "\u0E04\u0E27\u0E23\u0E21\u0E35" } }; function getSizing(origin) { return Sizable[origin] ?? null; } const FormatDictionary = { regex: "\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E17\u0E35\u0E48\u0E1B\u0E49\u0E2D\u0E19", email: "\u0E17\u0E35\u0E48\u0E2D\u0E22\u0E39\u0E48\u0E2D\u0E35\u0E40\u0E21\u0E25", url: "URL", emoji: "\u0E2D\u0E34\u0E42\u0E21\u0E08\u0E34", uuid: "UUID", uuidv4: "UUIDv4", uuidv6: "UUIDv6", nanoid: "nanoid", guid: "GUID", cuid: "cuid", cuid2: "cuid2", ulid: "ULID", xid: "XID", ksuid: "KSUID", datetime: "\u0E27\u0E31\u0E19\u0E17\u0E35\u0E48\u0E40\u0E27\u0E25\u0E32\u0E41\u0E1A\u0E1A ISO", date: "\u0E27\u0E31\u0E19\u0E17\u0E35\u0E48\u0E41\u0E1A\u0E1A ISO", time: "\u0E40\u0E27\u0E25\u0E32\u0E41\u0E1A\u0E1A ISO", duration: "\u0E0A\u0E48\u0E27\u0E07\u0E40\u0E27\u0E25\u0E32\u0E41\u0E1A\u0E1A ISO", ipv4: "\u0E17\u0E35\u0E48\u0E2D\u0E22\u0E39\u0E48 IPv4", ipv6: "\u0E17\u0E35\u0E48\u0E2D\u0E22\u0E39\u0E48 IPv6", mac: "\u0E17\u0E35\u0E48\u0E2D\u0E22\u0E39\u0E48 MAC", cidrv4: "\u0E0A\u0E48\u0E27\u0E07 IP \u0E41\u0E1A\u0E1A IPv4", cidrv6: "\u0E0A\u0E48\u0E27\u0E07 IP \u0E41\u0E1A\u0E1A IPv6", base64: "\u0E02\u0E49\u0E2D\u0E04\u0E27\u0E32\u0E21\u0E41\u0E1A\u0E1A Base64", base64url: "\u0E02\u0E49\u0E2D\u0E04\u0E27\u0E32\u0E21\u0E41\u0E1A\u0E1A Base64 \u0E2A\u0E33\u0E2B\u0E23\u0E31\u0E1A URL", json_string: "\u0E02\u0E49\u0E2D\u0E04\u0E27\u0E32\u0E21\u0E41\u0E1A\u0E1A JSON", e164: "\u0E40\u0E1A\u0E2D\u0E23\u0E4C\u0E42\u0E17\u0E23\u0E28\u0E31\u0E1E\u0E17\u0E4C\u0E23\u0E30\u0E2B\u0E27\u0E48\u0E32\u0E07\u0E1B\u0E23\u0E30\u0E40\u0E17\u0E28 (E.164)", credit_card: "\u0E2B\u0E21\u0E32\u0E22\u0E40\u0E25\u0E02\u0E1A\u0E31\u0E15\u0E23\u0E40\u0E04\u0E23\u0E14\u0E34\u0E15", currency_code: "\u0E23\u0E2B\u0E31\u0E2A\u0E2A\u0E01\u0E38\u0E25\u0E40\u0E07\u0E34\u0E19", iban: "IBAN", jwt: "\u0E42\u0E17\u0E40\u0E04\u0E19 JWT", template_literal: "\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E17\u0E35\u0E48\u0E1B\u0E49\u0E2D\u0E19" }; const TypeDictionary = { nan: "NaN", number: "\u0E15\u0E31\u0E27\u0E40\u0E25\u0E02", array: "\u0E2D\u0E32\u0E23\u0E4C\u0E40\u0E23\u0E22\u0E4C (Array)", null: "\u0E44\u0E21\u0E48\u0E21\u0E35\u0E04\u0E48\u0E32 (null)" }; return (issue2) => { switch (issue2.code) { case "invalid_type": { const expected = TypeDictionary[issue2.expected] ?? issue2.expected; const receivedType = parsedType(issue2.input); const received = TypeDictionary[receivedType] ?? receivedType; if (/^[A-Z]/.test(issue2.expected)) { return `\u0E1B\u0E23\u0E30\u0E40\u0E20\u0E17\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07: \u0E04\u0E27\u0E23\u0E40\u0E1B\u0E47\u0E19 instanceof ${issue2.expected} \u0E41\u0E15\u0E48\u0E44\u0E14\u0E49\u0E23\u0E31\u0E1A ${received}`; } return `\u0E1B\u0E23\u0E30\u0E40\u0E20\u0E17\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07: \u0E04\u0E27\u0E23\u0E40\u0E1B\u0E47\u0E19 ${expected} \u0E41\u0E15\u0E48\u0E44\u0E14\u0E49\u0E23\u0E31\u0E1A ${received}`; } case "invalid_value": if (issue2.values.length === 1) return `\u0E04\u0E48\u0E32\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07: \u0E04\u0E27\u0E23\u0E40\u0E1B\u0E47\u0E19 ${stringifyPrimitive(issue2.values[0])}`; return `\u0E15\u0E31\u0E27\u0E40\u0E25\u0E37\u0E2D\u0E01\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07: \u0E04\u0E27\u0E23\u0E40\u0E1B\u0E47\u0E19\u0E2B\u0E19\u0E36\u0E48\u0E07\u0E43\u0E19 ${joinValues(issue2.values, "|")}`; case "too_big": { const adj = issue2.inclusive ? "\u0E44\u0E21\u0E48\u0E40\u0E01\u0E34\u0E19" : "\u0E19\u0E49\u0E2D\u0E22\u0E01\u0E27\u0E48\u0E32"; const sizing = getSizing(issue2.origin); if (sizing) return `\u0E40\u0E01\u0E34\u0E19\u0E01\u0E33\u0E2B\u0E19\u0E14: ${issue2.origin ?? "\u0E04\u0E48\u0E32"} \u0E04\u0E27\u0E23\u0E21\u0E35${adj} ${issue2.maximum.toString()} ${sizing.unit ?? "\u0E23\u0E32\u0E22\u0E01\u0E32\u0E23"}`; return `\u0E40\u0E01\u0E34\u0E19\u0E01\u0E33\u0E2B\u0E19\u0E14: ${issue2.origin ?? "\u0E04\u0E48\u0E32"} \u0E04\u0E27\u0E23\u0E21\u0E35${adj} ${issue2.maximum.toString()}`; } case "too_small": { const adj = issue2.inclusive ? "\u0E2D\u0E22\u0E48\u0E32\u0E07\u0E19\u0E49\u0E2D\u0E22" : "\u0E21\u0E32\u0E01\u0E01\u0E27\u0E48\u0E32"; const sizing = getSizing(issue2.origin); if (sizing) { return `\u0E19\u0E49\u0E2D\u0E22\u0E01\u0E27\u0E48\u0E32\u0E01\u0E33\u0E2B\u0E19\u0E14: ${issue2.origin} \u0E04\u0E27\u0E23\u0E21\u0E35${adj} ${issue2.minimum.toString()} ${sizing.unit}`; } return `\u0E19\u0E49\u0E2D\u0E22\u0E01\u0E27\u0E48\u0E32\u0E01\u0E33\u0E2B\u0E19\u0E14: ${issue2.origin} \u0E04\u0E27\u0E23\u0E21\u0E35${adj} ${issue2.minimum.toString()}`; } case "invalid_format": { const _issue = issue2; if (_issue.format === "starts_with") { return `\u0E23\u0E39\u0E1B\u0E41\u0E1A\u0E1A\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07: \u0E02\u0E49\u0E2D\u0E04\u0E27\u0E32\u0E21\u0E15\u0E49\u0E2D\u0E07\u0E02\u0E36\u0E49\u0E19\u0E15\u0E49\u0E19\u0E14\u0E49\u0E27\u0E22 "${_issue.prefix}"`; } if (_issue.format === "ends_with") return `\u0E23\u0E39\u0E1B\u0E41\u0E1A\u0E1A\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07: \u0E02\u0E49\u0E2D\u0E04\u0E27\u0E32\u0E21\u0E15\u0E49\u0E2D\u0E07\u0E25\u0E07\u0E17\u0E49\u0E32\u0E22\u0E14\u0E49\u0E27\u0E22 "${_issue.suffix}"`; if (_issue.format === "includes") return `\u0E23\u0E39\u0E1B\u0E41\u0E1A\u0E1A\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07: \u0E02\u0E49\u0E2D\u0E04\u0E27\u0E32\u0E21\u0E15\u0E49\u0E2D\u0E07\u0E21\u0E35 "${_issue.includes}" \u0E2D\u0E22\u0E39\u0E48\u0E43\u0E19\u0E02\u0E49\u0E2D\u0E04\u0E27\u0E32\u0E21`; if (_issue.format === "regex") return `\u0E23\u0E39\u0E1B\u0E41\u0E1A\u0E1A\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07: \u0E15\u0E49\u0E2D\u0E07\u0E15\u0E23\u0E07\u0E01\u0E31\u0E1A\u0E23\u0E39\u0E1B\u0E41\u0E1A\u0E1A\u0E17\u0E35\u0E48\u0E01\u0E33\u0E2B\u0E19\u0E14 ${_issue.pattern}`; return `\u0E23\u0E39\u0E1B\u0E41\u0E1A\u0E1A\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07: ${FormatDictionary[_issue.format] ?? issue2.format}`; } case "not_multiple_of": return `\u0E15\u0E31\u0E27\u0E40\u0E25\u0E02\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07: \u0E15\u0E49\u0E2D\u0E07\u0E40\u0E1B\u0E47\u0E19\u0E08\u0E33\u0E19\u0E27\u0E19\u0E17\u0E35\u0E48\u0E2B\u0E32\u0E23\u0E14\u0E49\u0E27\u0E22 ${issue2.divisor} \u0E44\u0E14\u0E49\u0E25\u0E07\u0E15\u0E31\u0E27`; case "unrecognized_keys": return `\u0E1E\u0E1A\u0E04\u0E35\u0E22\u0E4C\u0E17\u0E35\u0E48\u0E44\u0E21\u0E48\u0E23\u0E39\u0E49\u0E08\u0E31\u0E01: ${joinValues(issue2.keys, ", ")}`; case "invalid_key": return `\u0E04\u0E35\u0E22\u0E4C\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07\u0E43\u0E19 ${issue2.origin}`; case "invalid_union": return "\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07: \u0E44\u0E21\u0E48\u0E15\u0E23\u0E07\u0E01\u0E31\u0E1A\u0E23\u0E39\u0E1B\u0E41\u0E1A\u0E1A\u0E22\u0E39\u0E40\u0E19\u0E35\u0E22\u0E19\u0E17\u0E35\u0E48\u0E01\u0E33\u0E2B\u0E19\u0E14\u0E44\u0E27\u0E49"; case "invalid_element": return `\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07\u0E43\u0E19 ${issue2.origin}`; default: return `\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07`; } }; }; function th_default() { return { localeError: error52() }; } // ../../../../node_modules/zod/v4/locales/tk.js var error53 = () => { const Sizable = { string: { unit: "simwol", verb: "bolmaly" }, file: { unit: "ba\xFDt", verb: "bolmaly" }, array: { unit: "elementler", verb: "bolmaly" }, set: { unit: "elementler", verb: "bolmaly" }, map: { unit: "elementler", verb: "bolmaly" } }; function getSizing(origin) { return Sizable[origin] ?? null; } const FormatDictionary = { regex: "giri\u015F", email: "e-po\xE7ta salgysy", url: "URL", emoji: "emoji", uuid: "UUID", uuidv4: "UUIDv4", uuidv6: "UUIDv6", nanoid: "nanoid", guid: "GUID", cuid: "cuid", cuid2: "cuid2", ulid: "ULID", xid: "XID", ksuid: "KSUID", datetime: "ISO sene we wagt", date: "ISO sene", time: "ISO wagt", duration: "ISO wagt aralygy", ipv4: "IPv4 salgysy", ipv6: "IPv6 salgysy", mac: "MAC salgysy", cidrv4: "IPv4 aralygy", cidrv6: "IPv6 aralygy", base64: "base64 bilen \u015Fifrlenen setir", base64url: "base64url bilen \u015Fifrlenen setir", json_string: "JSON setiri", e164: "E.164 nomeri", credit_card: "kredit kartyny\u0148 nomeri", currency_code: "wal\xFDuta kody", iban: "IBAN", jwt: "JWT", template_literal: "\u015Fablon" }; const TypeDictionary = { nan: "NaN" }; return (issue2) => { switch (issue2.code) { case "invalid_type": { const expected = TypeDictionary[issue2.expected] ?? issue2.expected; const receivedType = parsedType(issue2.input); const received = TypeDictionary[receivedType] ?? receivedType; return `N\xE4dogry baha: gara\u015Fylan ${expected} \xFDerine ${received} alyndy`; } case "invalid_value": if (issue2.values.length === 1) return `N\xE4dogry baha: ${stringifyPrimitive(issue2.values[0])} bolmaly`; return `N\xE4dogry sa\xFDlaw: a\u015Fakdakylardan biri bolmaly: ${joinValues(issue2.values, "|")}`; case "too_big": { const adj = issue2.inclusive ? "<=" : "<"; const sizing = getSizing(issue2.origin); if (sizing) return `Has uly: gara\u015Fyl\xFDan ${issue2.origin ?? "baha"} ${adj} ${issue2.maximum.toString()} ${sizing.unit ?? "element"}`; return `Has uly: gara\u015Fyl\xFDan ${issue2.origin ?? "baha"} ${adj} ${issue2.maximum.toString()}`; } case "too_small": { const adj = issue2.inclusive ? ">=" : ">"; const sizing = getSizing(issue2.origin); if (sizing) return `Has ki\xE7i: gara\u015Fyl\xFDan ${issue2.origin} ${adj} ${issue2.minimum.toString()} ${sizing.unit}`; return `Has ki\xE7i: gara\u015Fyl\xFDan ${issue2.origin} ${adj} ${issue2.minimum.toString()}`; } case "invalid_format": { const _issue = issue2; if (_issue.format === "starts_with") return `N\xE4dogry setir: "${_issue.prefix}" bilen ba\u015Flamaly`; if (_issue.format === "ends_with") return `N\xE4dogry setir: "${_issue.suffix}" bilen gutarmaly`; if (_issue.format === "includes") return `N\xE4dogry setir: "${_issue.includes}" saklamaly`; if (_issue.format === "regex") return `N\xE4dogry setir: ${_issue.pattern} nusga la\xFDyk bolmaly`; return `N\xE4dogry ${FormatDictionary[_issue.format] ?? issue2.format}`; } case "not_multiple_of": return `N\xE4dogry san: ${issue2.divisor} bilen galyndysyz b\xF6l\xFCnmeli`; case "unrecognized_keys": return `Tanalma\xFDan a\xE7ar${issue2.keys.length > 1 ? "lar" : ""}: ${joinValues(issue2.keys, ", ")}`; case "invalid_key": return `${issue2.origin} i\xE7inde n\xE4dogry a\xE7ar`; case "invalid_union": return "N\xE4dogry baha"; case "invalid_element": return `${issue2.origin} i\xE7inde n\xE4dogry baha`; default: return `N\xE4dogry baha`; } }; }; function tk_default() { return { localeError: error53() }; } // ../../../../node_modules/zod/v4/locales/tr.js var error54 = () => { const Sizable = { string: { unit: "karakter", verb: "olmal\u0131" }, file: { unit: "bayt", verb: "olmal\u0131" }, array: { unit: "\xF6\u011Fe", verb: "olmal\u0131" }, set: { unit: "\xF6\u011Fe", verb: "olmal\u0131" }, map: { unit: "\xF6\u011Fe", verb: "olmal\u0131" } }; function getSizing(origin) { return Sizable[origin] ?? null; } const FormatDictionary = { regex: "girdi", email: "e-posta adresi", url: "URL", emoji: "emoji", uuid: "UUID", uuidv4: "UUIDv4", uuidv6: "UUIDv6", nanoid: "nanoid", guid: "GUID", cuid: "cuid", cuid2: "cuid2", ulid: "ULID", xid: "XID", ksuid: "KSUID", datetime: "ISO tarih ve saat", date: "ISO tarih", time: "ISO saat", duration: "ISO s\xFCre", ipv4: "IPv4 adresi", ipv6: "IPv6 adresi", mac: "MAC adresi", cidrv4: "IPv4 aral\u0131\u011F\u0131", cidrv6: "IPv6 aral\u0131\u011F\u0131", base64: "base64 ile \u015Fifrelenmi\u015F metin", base64url: "base64url ile \u015Fifrelenmi\u015F metin", json_string: "JSON dizesi", e164: "E.164 say\u0131s\u0131", credit_card: "kredi kart\u0131 numaras\u0131", currency_code: "para birimi kodu", iban: "IBAN", jwt: "JWT", template_literal: "\u015Eablon dizesi" }; const TypeDictionary = { nan: "NaN" }; return (issue2) => { switch (issue2.code) { case "invalid_type": { const expected = TypeDictionary[issue2.expected] ?? issue2.expected; const receivedType = parsedType(issue2.input); const received = TypeDictionary[receivedType] ?? receivedType; if (/^[A-Z]/.test(issue2.expected)) { return `Ge\xE7ersiz de\u011Fer: beklenen instanceof ${issue2.expected}, al\u0131nan ${received}`; } return `Ge\xE7ersiz de\u011Fer: beklenen ${expected}, al\u0131nan ${received}`; } case "invalid_value": if (issue2.values.length === 1) return `Ge\xE7ersiz de\u011Fer: beklenen ${stringifyPrimitive(issue2.values[0])}`; return `Ge\xE7ersiz se\xE7enek: a\u015Fa\u011F\u0131dakilerden biri olmal\u0131: ${joinValues(issue2.values, "|")}`; case "too_big": { const adj = issue2.inclusive ? "<=" : "<"; const sizing = getSizing(issue2.origin); if (sizing) return `\xC7ok b\xFCy\xFCk: beklenen ${issue2.origin ?? "de\u011Fer"} ${adj}${issue2.maximum.toString()} ${sizing.unit ?? "\xF6\u011Fe"}`; return `\xC7ok b\xFCy\xFCk: beklenen ${issue2.origin ?? "de\u011Fer"} ${adj}${issue2.maximum.toString()}`; } case "too_small": { const adj = issue2.inclusive ? ">=" : ">"; const sizing = getSizing(issue2.origin); if (sizing) return `\xC7ok k\xFC\xE7\xFCk: beklenen ${issue2.origin} ${adj}${issue2.minimum.toString()} ${sizing.unit}`; return `\xC7ok k\xFC\xE7\xFCk: beklenen ${issue2.origin} ${adj}${issue2.minimum.toString()}`; } case "invalid_format": { const _issue = issue2; if (_issue.format === "starts_with") return `Ge\xE7ersiz metin: "${_issue.prefix}" ile ba\u015Flamal\u0131`; if (_issue.format === "ends_with") return `Ge\xE7ersiz metin: "${_issue.suffix}" ile bitmeli`; if (_issue.format === "includes") return `Ge\xE7ersiz metin: "${_issue.includes}" i\xE7ermeli`; if (_issue.format === "regex") return `Ge\xE7ersiz metin: ${_issue.pattern} desenine uymal\u0131`; return `Ge\xE7ersiz ${FormatDictionary[_issue.format] ?? issue2.format}`; } case "not_multiple_of": return `Ge\xE7ersiz say\u0131: ${issue2.divisor} ile tam b\xF6l\xFCnebilmeli`; case "unrecognized_keys": return `Tan\u0131nmayan anahtar${issue2.keys.length > 1 ? "lar" : ""}: ${joinValues(issue2.keys, ", ")}`; case "invalid_key": return `${issue2.origin} i\xE7inde ge\xE7ersiz anahtar`; case "invalid_union": return "Ge\xE7ersiz de\u011Fer"; case "invalid_element": return `${issue2.origin} i\xE7inde ge\xE7ersiz de\u011Fer`; default: return `Ge\xE7ersiz de\u011Fer`; } }; }; function tr_default() { return { localeError: error54() }; } // ../../../../node_modules/zod/v4/locales/uk.js var error55 = () => { const Sizable = { string: { unit: "\u0441\u0438\u043C\u0432\u043E\u043B\u0456\u0432", verb: "\u043C\u0430\u0442\u0438\u043C\u0435" }, file: { unit: "\u0431\u0430\u0439\u0442\u0456\u0432", verb: "\u043C\u0430\u0442\u0438\u043C\u0435" }, array: { unit: "\u0435\u043B\u0435\u043C\u0435\u043D\u0442\u0456\u0432", verb: "\u043C\u0430\u0442\u0438\u043C\u0435" }, set: { unit: "\u0435\u043B\u0435\u043C\u0435\u043D\u0442\u0456\u0432", verb: "\u043C\u0430\u0442\u0438\u043C\u0435" }, map: { unit: "\u0435\u043B\u0435\u043C\u0435\u043D\u0442\u0456\u0432", verb: "\u043C\u0430\u0442\u0438\u043C\u0435" } }; function getSizing(origin) { return Sizable[origin] ?? null; } const FormatDictionary = { regex: "\u0432\u0445\u0456\u0434\u043D\u0456 \u0434\u0430\u043D\u0456", email: "\u0430\u0434\u0440\u0435\u0441\u0430 \u0435\u043B\u0435\u043A\u0442\u0440\u043E\u043D\u043D\u043E\u0457 \u043F\u043E\u0448\u0442\u0438", url: "URL", emoji: "\u0435\u043C\u043E\u0434\u0437\u0456", uuid: "UUID", uuidv4: "UUIDv4", uuidv6: "UUIDv6", nanoid: "nanoid", guid: "GUID", cuid: "cuid", cuid2: "cuid2", ulid: "ULID", xid: "XID", ksuid: "KSUID", datetime: "\u0434\u0430\u0442\u0430 \u0442\u0430 \u0447\u0430\u0441 ISO", date: "\u0434\u0430\u0442\u0430 ISO", time: "\u0447\u0430\u0441 ISO", duration: "\u0442\u0440\u0438\u0432\u0430\u043B\u0456\u0441\u0442\u044C ISO", ipv4: "\u0430\u0434\u0440\u0435\u0441\u0430 IPv4", ipv6: "\u0430\u0434\u0440\u0435\u0441\u0430 IPv6", mac: "\u0430\u0434\u0440\u0435\u0441\u0430 MAC", cidrv4: "\u0434\u0456\u0430\u043F\u0430\u0437\u043E\u043D IPv4", cidrv6: "\u0434\u0456\u0430\u043F\u0430\u0437\u043E\u043D IPv6", base64: "\u0440\u044F\u0434\u043E\u043A \u0443 \u043A\u043E\u0434\u0443\u0432\u0430\u043D\u043D\u0456 base64", base64url: "\u0440\u044F\u0434\u043E\u043A \u0443 \u043A\u043E\u0434\u0443\u0432\u0430\u043D\u043D\u0456 base64url", json_string: "\u0440\u044F\u0434\u043E\u043A JSON", e164: "\u043D\u043E\u043C\u0435\u0440 E.164", credit_card: "\u043D\u043E\u043C\u0435\u0440 \u043A\u0440\u0435\u0434\u0438\u0442\u043D\u043E\u0457 \u043A\u0430\u0440\u0442\u043A\u0438", currency_code: "\u043A\u043E\u0434 \u0432\u0430\u043B\u044E\u0442\u0438", iban: "IBAN", jwt: "JWT", template_literal: "\u0432\u0445\u0456\u0434\u043D\u0456 \u0434\u0430\u043D\u0456" }; const TypeDictionary = { nan: "NaN", number: "\u0447\u0438\u0441\u043B\u043E", array: "\u043C\u0430\u0441\u0438\u0432" }; return (issue2) => { switch (issue2.code) { case "invalid_type": { const expected = TypeDictionary[issue2.expected] ?? issue2.expected; const receivedType = parsedType(issue2.input); const received = TypeDictionary[receivedType] ?? receivedType; if (/^[A-Z]/.test(issue2.expected)) { return `\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0456 \u0432\u0445\u0456\u0434\u043D\u0456 \u0434\u0430\u043D\u0456: \u043E\u0447\u0456\u043A\u0443\u0454\u0442\u044C\u0441\u044F instanceof ${issue2.expected}, \u043E\u0442\u0440\u0438\u043C\u0430\u043D\u043E ${received}`; } return `\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0456 \u0432\u0445\u0456\u0434\u043D\u0456 \u0434\u0430\u043D\u0456: \u043E\u0447\u0456\u043A\u0443\u0454\u0442\u044C\u0441\u044F ${expected}, \u043E\u0442\u0440\u0438\u043C\u0430\u043D\u043E ${received}`; } case "invalid_value": if (issue2.values.length === 1) return `\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0456 \u0432\u0445\u0456\u0434\u043D\u0456 \u0434\u0430\u043D\u0456: \u043E\u0447\u0456\u043A\u0443\u0454\u0442\u044C\u0441\u044F ${stringifyPrimitive(issue2.values[0])}`; return `\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0430 \u043E\u043F\u0446\u0456\u044F: \u043E\u0447\u0456\u043A\u0443\u0454\u0442\u044C\u0441\u044F \u043E\u0434\u043D\u0435 \u0437 ${joinValues(issue2.values, "|")}`; case "too_big": { const adj = issue2.inclusive ? "<=" : "<"; const sizing = getSizing(issue2.origin); if (sizing) return `\u0417\u0430\u043D\u0430\u0434\u0442\u043E \u0432\u0435\u043B\u0438\u043A\u0435: \u043E\u0447\u0456\u043A\u0443\u0454\u0442\u044C\u0441\u044F, \u0449\u043E ${issue2.origin ?? "\u0437\u043D\u0430\u0447\u0435\u043D\u043D\u044F"} ${sizing.verb} ${adj}${issue2.maximum.toString()} ${sizing.unit ?? "\u0435\u043B\u0435\u043C\u0435\u043D\u0442\u0456\u0432"}`; return `\u0417\u0430\u043D\u0430\u0434\u0442\u043E \u0432\u0435\u043B\u0438\u043A\u0435: \u043E\u0447\u0456\u043A\u0443\u0454\u0442\u044C\u0441\u044F, \u0449\u043E ${issue2.origin ?? "\u0437\u043D\u0430\u0447\u0435\u043D\u043D\u044F"} \u0431\u0443\u0434\u0435 ${adj}${issue2.maximum.toString()}`; } case "too_small": { const adj = issue2.inclusive ? ">=" : ">"; const sizing = getSizing(issue2.origin); if (sizing) { return `\u0417\u0430\u043D\u0430\u0434\u0442\u043E \u043C\u0430\u043B\u0435: \u043E\u0447\u0456\u043A\u0443\u0454\u0442\u044C\u0441\u044F, \u0449\u043E ${issue2.origin} ${sizing.verb} ${adj}${issue2.minimum.toString()} ${sizing.unit}`; } return `\u0417\u0430\u043D\u0430\u0434\u0442\u043E \u043C\u0430\u043B\u0435: \u043E\u0447\u0456\u043A\u0443\u0454\u0442\u044C\u0441\u044F, \u0449\u043E ${issue2.origin} \u0431\u0443\u0434\u0435 ${adj}${issue2.minimum.toString()}`; } case "invalid_format": { const _issue = issue2; if (_issue.format === "starts_with") return `\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0438\u0439 \u0440\u044F\u0434\u043E\u043A: \u043F\u043E\u0432\u0438\u043D\u0435\u043D \u043F\u043E\u0447\u0438\u043D\u0430\u0442\u0438\u0441\u044F \u0437 "${_issue.prefix}"`; if (_issue.format === "ends_with") return `\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0438\u0439 \u0440\u044F\u0434\u043E\u043A: \u043F\u043E\u0432\u0438\u043D\u0435\u043D \u0437\u0430\u043A\u0456\u043D\u0447\u0443\u0432\u0430\u0442\u0438\u0441\u044F \u043D\u0430 "${_issue.suffix}"`; if (_issue.format === "includes") return `\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0438\u0439 \u0440\u044F\u0434\u043E\u043A: \u043F\u043E\u0432\u0438\u043D\u0435\u043D \u043C\u0456\u0441\u0442\u0438\u0442\u0438 "${_issue.includes}"`; if (_issue.format === "regex") return `\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0438\u0439 \u0440\u044F\u0434\u043E\u043A: \u043F\u043E\u0432\u0438\u043D\u0435\u043D \u0432\u0456\u0434\u043F\u043E\u0432\u0456\u0434\u0430\u0442\u0438 \u0448\u0430\u0431\u043B\u043E\u043D\u0443 ${_issue.pattern}`; return `\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0438\u0439 ${FormatDictionary[_issue.format] ?? issue2.format}`; } case "not_multiple_of": return `\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0435 \u0447\u0438\u0441\u043B\u043E: \u043F\u043E\u0432\u0438\u043D\u043D\u043E \u0431\u0443\u0442\u0438 \u043A\u0440\u0430\u0442\u043D\u0438\u043C ${issue2.divisor}`; case "unrecognized_keys": return `\u041D\u0435\u0440\u043E\u0437\u043F\u0456\u0437\u043D\u0430\u043D\u0438\u0439 \u043A\u043B\u044E\u0447${issue2.keys.length > 1 ? "\u0456" : ""}: ${joinValues(issue2.keys, ", ")}`; case "invalid_key": return `\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0438\u0439 \u043A\u043B\u044E\u0447 \u0443 ${issue2.origin}`; case "invalid_union": return "\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0456 \u0432\u0445\u0456\u0434\u043D\u0456 \u0434\u0430\u043D\u0456"; case "invalid_element": return `\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u043D\u044F \u0443 ${issue2.origin}`; default: return `\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0456 \u0432\u0445\u0456\u0434\u043D\u0456 \u0434\u0430\u043D\u0456`; } }; }; function uk_default() { return { localeError: error55() }; } // ../../../../node_modules/zod/v4/locales/ua.js function ua_default() { return uk_default(); } // ../../../../node_modules/zod/v4/locales/ur.js var error56 = () => { const Sizable = { string: { unit: "\u062D\u0631\u0648\u0641", verb: "\u06C1\u0648\u0646\u0627" }, file: { unit: "\u0628\u0627\u0626\u0679\u0633", verb: "\u06C1\u0648\u0646\u0627" }, array: { unit: "\u0622\u0626\u0679\u0645\u0632", verb: "\u06C1\u0648\u0646\u0627" }, set: { unit: "\u0622\u0626\u0679\u0645\u0632", verb: "\u06C1\u0648\u0646\u0627" }, map: { unit: "\u0622\u0626\u0679\u0645\u0632", verb: "\u06C1\u0648\u0646\u0627" } }; function getSizing(origin) { return Sizable[origin] ?? null; } const FormatDictionary = { regex: "\u0627\u0646 \u067E\u0679", email: "\u0627\u06CC \u0645\u06CC\u0644 \u0627\u06CC\u0688\u0631\u06CC\u0633", url: "\u06CC\u0648 \u0622\u0631 \u0627\u06CC\u0644", emoji: "\u0627\u06CC\u0645\u0648\u062C\u06CC", uuid: "\u06CC\u0648 \u06CC\u0648 \u0622\u0626\u06CC \u0688\u06CC", uuidv4: "\u06CC\u0648 \u06CC\u0648 \u0622\u0626\u06CC \u0688\u06CC \u0648\u06CC 4", uuidv6: "\u06CC\u0648 \u06CC\u0648 \u0622\u0626\u06CC \u0688\u06CC \u0648\u06CC 6", nanoid: "\u0646\u06CC\u0646\u0648 \u0622\u0626\u06CC \u0688\u06CC", guid: "\u062C\u06CC \u06CC\u0648 \u0622\u0626\u06CC \u0688\u06CC", cuid: "\u0633\u06CC \u06CC\u0648 \u0622\u0626\u06CC \u0688\u06CC", cuid2: "\u0633\u06CC \u06CC\u0648 \u0622\u0626\u06CC \u0688\u06CC 2", ulid: "\u06CC\u0648 \u0627\u06CC\u0644 \u0622\u0626\u06CC \u0688\u06CC", xid: "\u0627\u06CC\u06A9\u0633 \u0622\u0626\u06CC \u0688\u06CC", ksuid: "\u06A9\u06D2 \u0627\u06CC\u0633 \u06CC\u0648 \u0622\u0626\u06CC \u0688\u06CC", datetime: "\u0622\u0626\u06CC \u0627\u06CC\u0633 \u0627\u0648 \u0688\u06CC\u0679 \u0679\u0627\u0626\u0645", date: "\u0622\u0626\u06CC \u0627\u06CC\u0633 \u0627\u0648 \u062A\u0627\u0631\u06CC\u062E", time: "\u0622\u0626\u06CC \u0627\u06CC\u0633 \u0627\u0648 \u0648\u0642\u062A", duration: "\u0622\u0626\u06CC \u0627\u06CC\u0633 \u0627\u0648 \u0645\u062F\u062A", ipv4: "\u0622\u0626\u06CC \u067E\u06CC \u0648\u06CC 4 \u0627\u06CC\u0688\u0631\u06CC\u0633", ipv6: "\u0622\u0626\u06CC \u067E\u06CC \u0648\u06CC 6 \u0627\u06CC\u0688\u0631\u06CC\u0633", mac: "\u0627\u06CC\u0645 \u0627\u06D2 \u0633\u06CC \u0627\u06CC\u0688\u0631\u06CC\u0633", cidrv4: "\u0622\u0626\u06CC \u067E\u06CC \u0648\u06CC 4 \u0631\u06CC\u0646\u062C", cidrv6: "\u0622\u0626\u06CC \u067E\u06CC \u0648\u06CC 6 \u0631\u06CC\u0646\u062C", base64: "\u0628\u06CC\u0633 64 \u0627\u0646 \u06A9\u0648\u0688\u0688 \u0633\u0679\u0631\u0646\u06AF", base64url: "\u0628\u06CC\u0633 64 \u06CC\u0648 \u0622\u0631 \u0627\u06CC\u0644 \u0627\u0646 \u06A9\u0648\u0688\u0688 \u0633\u0679\u0631\u0646\u06AF", json_string: "\u062C\u06D2 \u0627\u06CC\u0633 \u0627\u0648 \u0627\u06CC\u0646 \u0633\u0679\u0631\u0646\u06AF", e164: "\u0627\u06CC 164 \u0646\u0645\u0628\u0631", credit_card: "\u06A9\u0631\u06CC\u0688\u0679 \u06A9\u0627\u0631\u0688 \u0646\u0645\u0628\u0631", currency_code: "\u06A9\u0631\u0646\u0633\u06CC \u06A9\u0648\u0688", iban: "IBAN", jwt: "\u062C\u06D2 \u0688\u0628\u0644\u06CC\u0648 \u0679\u06CC", template_literal: "\u0627\u0646 \u067E\u0679" }; const TypeDictionary = { nan: "NaN", number: "\u0646\u0645\u0628\u0631", array: "\u0622\u0631\u06D2", null: "\u0646\u0644" }; return (issue2) => { switch (issue2.code) { case "invalid_type": { const expected = TypeDictionary[issue2.expected] ?? issue2.expected; const receivedType = parsedType(issue2.input); const received = TypeDictionary[receivedType] ?? receivedType; if (/^[A-Z]/.test(issue2.expected)) { return `\u063A\u0644\u0637 \u0627\u0646 \u067E\u0679: instanceof ${issue2.expected} \u0645\u062A\u0648\u0642\u0639 \u062A\u06BE\u0627\u060C ${received} \u0645\u0648\u0635\u0648\u0644 \u06C1\u0648\u0627`; } return `\u063A\u0644\u0637 \u0627\u0646 \u067E\u0679: ${expected} \u0645\u062A\u0648\u0642\u0639 \u062A\u06BE\u0627\u060C ${received} \u0645\u0648\u0635\u0648\u0644 \u06C1\u0648\u0627`; } case "invalid_value": if (issue2.values.length === 1) return `\u063A\u0644\u0637 \u0627\u0646 \u067E\u0679: ${stringifyPrimitive(issue2.values[0])} \u0645\u062A\u0648\u0642\u0639 \u062A\u06BE\u0627`; return `\u063A\u0644\u0637 \u0622\u067E\u0634\u0646: ${joinValues(issue2.values, "|")} \u0645\u06CC\u06BA \u0633\u06D2 \u0627\u06CC\u06A9 \u0645\u062A\u0648\u0642\u0639 \u062A\u06BE\u0627`; case "too_big": { const adj = issue2.inclusive ? "<=" : "<"; const sizing = getSizing(issue2.origin); if (sizing) return `\u0628\u06C1\u062A \u0628\u0691\u0627: ${issue2.origin ?? "\u0648\u06CC\u0644\u06CC\u0648"} \u06A9\u06D2 ${adj}${issue2.maximum.toString()} ${sizing.unit ?? "\u0639\u0646\u0627\u0635\u0631"} \u06C1\u0648\u0646\u06D2 \u0645\u062A\u0648\u0642\u0639 \u062A\u06BE\u06D2`; return `\u0628\u06C1\u062A \u0628\u0691\u0627: ${issue2.origin ?? "\u0648\u06CC\u0644\u06CC\u0648"} \u06A9\u0627 ${adj}${issue2.maximum.toString()} \u06C1\u0648\u0646\u0627 \u0645\u062A\u0648\u0642\u0639 \u062A\u06BE\u0627`; } case "too_small": { const adj = issue2.inclusive ? ">=" : ">"; const sizing = getSizing(issue2.origin); if (sizing) { return `\u0628\u06C1\u062A \u0686\u06BE\u0648\u0679\u0627: ${issue2.origin} \u06A9\u06D2 ${adj}${issue2.minimum.toString()} ${sizing.unit} \u06C1\u0648\u0646\u06D2 \u0645\u062A\u0648\u0642\u0639 \u062A\u06BE\u06D2`; } return `\u0628\u06C1\u062A \u0686\u06BE\u0648\u0679\u0627: ${issue2.origin} \u06A9\u0627 ${adj}${issue2.minimum.toString()} \u06C1\u0648\u0646\u0627 \u0645\u062A\u0648\u0642\u0639 \u062A\u06BE\u0627`; } case "invalid_format": { const _issue = issue2; if (_issue.format === "starts_with") { return `\u063A\u0644\u0637 \u0633\u0679\u0631\u0646\u06AF: "${_issue.prefix}" \u0633\u06D2 \u0634\u0631\u0648\u0639 \u06C1\u0648\u0646\u0627 \u0686\u0627\u06C1\u06CC\u06D2`; } if (_issue.format === "ends_with") return `\u063A\u0644\u0637 \u0633\u0679\u0631\u0646\u06AF: "${_issue.suffix}" \u067E\u0631 \u062E\u062A\u0645 \u06C1\u0648\u0646\u0627 \u0686\u0627\u06C1\u06CC\u06D2`; if (_issue.format === "includes") return `\u063A\u0644\u0637 \u0633\u0679\u0631\u0646\u06AF: "${_issue.includes}" \u0634\u0627\u0645\u0644 \u06C1\u0648\u0646\u0627 \u0686\u0627\u06C1\u06CC\u06D2`; if (_issue.format === "regex") return `\u063A\u0644\u0637 \u0633\u0679\u0631\u0646\u06AF: \u067E\u06CC\u0679\u0631\u0646 ${_issue.pattern} \u0633\u06D2 \u0645\u06CC\u0686 \u06C1\u0648\u0646\u0627 \u0686\u0627\u06C1\u06CC\u06D2`; return `\u063A\u0644\u0637 ${FormatDictionary[_issue.format] ?? issue2.format}`; } case "not_multiple_of": return `\u063A\u0644\u0637 \u0646\u0645\u0628\u0631: ${issue2.divisor} \u06A9\u0627 \u0645\u0636\u0627\u0639\u0641 \u06C1\u0648\u0646\u0627 \u0686\u0627\u06C1\u06CC\u06D2`; case "unrecognized_keys": return `\u063A\u06CC\u0631 \u062A\u0633\u0644\u06CC\u0645 \u0634\u062F\u06C1 \u06A9\u06CC${issue2.keys.length > 1 ? "\u0632" : ""}: ${joinValues(issue2.keys, "\u060C ")}`; case "invalid_key": return `${issue2.origin} \u0645\u06CC\u06BA \u063A\u0644\u0637 \u06A9\u06CC`; case "invalid_union": return "\u063A\u0644\u0637 \u0627\u0646 \u067E\u0679"; case "invalid_element": return `${issue2.origin} \u0645\u06CC\u06BA \u063A\u0644\u0637 \u0648\u06CC\u0644\u06CC\u0648`; default: return `\u063A\u0644\u0637 \u0627\u0646 \u067E\u0679`; } }; }; function ur_default() { return { localeError: error56() }; } // ../../../../node_modules/zod/v4/locales/uz.js var error57 = () => { const Sizable = { string: { unit: "belgi", verb: "bo\u2018lishi kerak" }, file: { unit: "bayt", verb: "bo\u2018lishi kerak" }, array: { unit: "element", verb: "bo\u2018lishi kerak" }, set: { unit: "element", verb: "bo\u2018lishi kerak" }, map: { unit: "yozuv", verb: "bo\u2018lishi kerak" } }; function getSizing(origin) { return Sizable[origin] ?? null; } const FormatDictionary = { regex: "kirish", email: "elektron pochta manzili", url: "URL", emoji: "emoji", uuid: "UUID", uuidv4: "UUIDv4", uuidv6: "UUIDv6", nanoid: "nanoid", guid: "GUID", cuid: "cuid", cuid2: "cuid2", ulid: "ULID", xid: "XID", ksuid: "KSUID", datetime: "ISO sana va vaqti", date: "ISO sana", time: "ISO vaqt", duration: "ISO davomiylik", ipv4: "IPv4 manzil", ipv6: "IPv6 manzil", mac: "MAC manzil", cidrv4: "IPv4 diapazon", cidrv6: "IPv6 diapazon", base64: "base64 kodlangan satr", base64url: "base64url kodlangan satr", json_string: "JSON satr", e164: "E.164 raqam", credit_card: "kredit karta raqami", currency_code: "valyuta kodi", iban: "IBAN", jwt: "JWT", template_literal: "kirish" }; const TypeDictionary = { nan: "NaN", number: "raqam", array: "massiv" }; return (issue2) => { switch (issue2.code) { case "invalid_type": { const expected = TypeDictionary[issue2.expected] ?? issue2.expected; const receivedType = parsedType(issue2.input); const received = TypeDictionary[receivedType] ?? receivedType; if (/^[A-Z]/.test(issue2.expected)) { return `Noto\u2018g\u2018ri kirish: kutilgan instanceof ${issue2.expected}, qabul qilingan ${received}`; } return `Noto\u2018g\u2018ri kirish: kutilgan ${expected}, qabul qilingan ${received}`; } case "invalid_value": if (issue2.values.length === 1) return `Noto\u2018g\u2018ri kirish: kutilgan ${stringifyPrimitive(issue2.values[0])}`; return `Noto\u2018g\u2018ri variant: quyidagilardan biri kutilgan ${joinValues(issue2.values, "|")}`; case "too_big": { const adj = issue2.inclusive ? "<=" : "<"; const sizing = getSizing(issue2.origin); if (sizing) return `Juda katta: kutilgan ${issue2.origin ?? "qiymat"} ${adj}${issue2.maximum.toString()} ${sizing.unit} ${sizing.verb}`; return `Juda katta: kutilgan ${issue2.origin ?? "qiymat"} ${adj}${issue2.maximum.toString()}`; } case "too_small": { const adj = issue2.inclusive ? ">=" : ">"; const sizing = getSizing(issue2.origin); if (sizing) { return `Juda kichik: kutilgan ${issue2.origin} ${adj}${issue2.minimum.toString()} ${sizing.unit} ${sizing.verb}`; } return `Juda kichik: kutilgan ${issue2.origin} ${adj}${issue2.minimum.toString()}`; } case "invalid_format": { const _issue = issue2; if (_issue.format === "starts_with") return `Noto\u2018g\u2018ri satr: "${_issue.prefix}" bilan boshlanishi kerak`; if (_issue.format === "ends_with") return `Noto\u2018g\u2018ri satr: "${_issue.suffix}" bilan tugashi kerak`; if (_issue.format === "includes") return `Noto\u2018g\u2018ri satr: "${_issue.includes}" ni o\u2018z ichiga olishi kerak`; if (_issue.format === "regex") return `Noto\u2018g\u2018ri satr: ${_issue.pattern} shabloniga mos kelishi kerak`; return `Noto\u2018g\u2018ri ${FormatDictionary[_issue.format] ?? issue2.format}`; } case "not_multiple_of": return `Noto\u2018g\u2018ri raqam: ${issue2.divisor} ning karralisi bo\u2018lishi kerak`; case "unrecognized_keys": return `Noma\u2019lum kalit${issue2.keys.length > 1 ? "lar" : ""}: ${joinValues(issue2.keys, ", ")}`; case "invalid_key": return `${issue2.origin} dagi kalit noto\u2018g\u2018ri`; case "invalid_union": return "Noto\u2018g\u2018ri kirish"; case "invalid_element": return `${issue2.origin} da noto\u2018g\u2018ri qiymat`; default: return `Noto\u2018g\u2018ri kirish`; } }; }; function uz_default() { return { localeError: error57() }; } // ../../../../node_modules/zod/v4/locales/vi.js var error58 = () => { const Sizable = { string: { unit: "k\xFD t\u1EF1", verb: "c\xF3" }, file: { unit: "byte", verb: "c\xF3" }, array: { unit: "ph\u1EA7n t\u1EED", verb: "c\xF3" }, set: { unit: "ph\u1EA7n t\u1EED", verb: "c\xF3" }, map: { unit: "ph\u1EA7n t\u1EED", verb: "c\xF3" } }; function getSizing(origin) { return Sizable[origin] ?? null; } const FormatDictionary = { regex: "\u0111\u1EA7u v\xE0o", email: "\u0111\u1ECBa ch\u1EC9 email", url: "URL", emoji: "emoji", uuid: "UUID", uuidv4: "UUIDv4", uuidv6: "UUIDv6", nanoid: "nanoid", guid: "GUID", cuid: "cuid", cuid2: "cuid2", ulid: "ULID", xid: "XID", ksuid: "KSUID", datetime: "ng\xE0y gi\u1EDD ISO", date: "ng\xE0y ISO", time: "gi\u1EDD ISO", duration: "kho\u1EA3ng th\u1EDDi gian ISO", ipv4: "\u0111\u1ECBa ch\u1EC9 IPv4", ipv6: "\u0111\u1ECBa ch\u1EC9 IPv6", mac: "\u0111\u1ECBa ch\u1EC9 MAC", cidrv4: "d\u1EA3i IPv4", cidrv6: "d\u1EA3i IPv6", base64: "chu\u1ED7i m\xE3 h\xF3a base64", base64url: "chu\u1ED7i m\xE3 h\xF3a base64url", json_string: "chu\u1ED7i JSON", e164: "s\u1ED1 E.164", credit_card: "s\u1ED1 th\u1EBB t\xEDn d\u1EE5ng", currency_code: "m\xE3 ti\u1EC1n t\u1EC7", iban: "IBAN", jwt: "JWT", template_literal: "\u0111\u1EA7u v\xE0o" }; const TypeDictionary = { nan: "NaN", number: "s\u1ED1", array: "m\u1EA3ng" }; return (issue2) => { switch (issue2.code) { case "invalid_type": { const expected = TypeDictionary[issue2.expected] ?? issue2.expected; const receivedType = parsedType(issue2.input); const received = TypeDictionary[receivedType] ?? receivedType; if (/^[A-Z]/.test(issue2.expected)) { return `\u0110\u1EA7u v\xE0o kh\xF4ng h\u1EE3p l\u1EC7: mong \u0111\u1EE3i instanceof ${issue2.expected}, nh\u1EADn \u0111\u01B0\u1EE3c ${received}`; } return `\u0110\u1EA7u v\xE0o kh\xF4ng h\u1EE3p l\u1EC7: mong \u0111\u1EE3i ${expected}, nh\u1EADn \u0111\u01B0\u1EE3c ${received}`; } case "invalid_value": if (issue2.values.length === 1) return `\u0110\u1EA7u v\xE0o kh\xF4ng h\u1EE3p l\u1EC7: mong \u0111\u1EE3i ${stringifyPrimitive(issue2.values[0])}`; return `T\xF9y ch\u1ECDn kh\xF4ng h\u1EE3p l\u1EC7: mong \u0111\u1EE3i m\u1ED9t trong c\xE1c gi\xE1 tr\u1ECB ${joinValues(issue2.values, "|")}`; case "too_big": { const adj = issue2.inclusive ? "<=" : "<"; const sizing = getSizing(issue2.origin); if (sizing) return `Qu\xE1 l\u1EDBn: mong \u0111\u1EE3i ${issue2.origin ?? "gi\xE1 tr\u1ECB"} ${sizing.verb} ${adj}${issue2.maximum.toString()} ${sizing.unit ?? "ph\u1EA7n t\u1EED"}`; return `Qu\xE1 l\u1EDBn: mong \u0111\u1EE3i ${issue2.origin ?? "gi\xE1 tr\u1ECB"} ${adj}${issue2.maximum.toString()}`; } case "too_small": { const adj = issue2.inclusive ? ">=" : ">"; const sizing = getSizing(issue2.origin); if (sizing) { return `Qu\xE1 nh\u1ECF: mong \u0111\u1EE3i ${issue2.origin} ${sizing.verb} ${adj}${issue2.minimum.toString()} ${sizing.unit}`; } return `Qu\xE1 nh\u1ECF: mong \u0111\u1EE3i ${issue2.origin} ${adj}${issue2.minimum.toString()}`; } case "invalid_format": { const _issue = issue2; if (_issue.format === "starts_with") return `Chu\u1ED7i kh\xF4ng h\u1EE3p l\u1EC7: ph\u1EA3i b\u1EAFt \u0111\u1EA7u b\u1EB1ng "${_issue.prefix}"`; if (_issue.format === "ends_with") return `Chu\u1ED7i kh\xF4ng h\u1EE3p l\u1EC7: ph\u1EA3i k\u1EBFt th\xFAc b\u1EB1ng "${_issue.suffix}"`; if (_issue.format === "includes") return `Chu\u1ED7i kh\xF4ng h\u1EE3p l\u1EC7: ph\u1EA3i bao g\u1ED3m "${_issue.includes}"`; if (_issue.format === "regex") return `Chu\u1ED7i kh\xF4ng h\u1EE3p l\u1EC7: ph\u1EA3i kh\u1EDBp v\u1EDBi m\u1EABu ${_issue.pattern}`; return `${FormatDictionary[_issue.format] ?? issue2.format} kh\xF4ng h\u1EE3p l\u1EC7`; } case "not_multiple_of": return `S\u1ED1 kh\xF4ng h\u1EE3p l\u1EC7: ph\u1EA3i l\xE0 b\u1ED9i s\u1ED1 c\u1EE7a ${issue2.divisor}`; case "unrecognized_keys": return `Kh\xF3a kh\xF4ng \u0111\u01B0\u1EE3c nh\u1EADn d\u1EA1ng: ${joinValues(issue2.keys, ", ")}`; case "invalid_key": return `Kh\xF3a kh\xF4ng h\u1EE3p l\u1EC7 trong ${issue2.origin}`; case "invalid_union": return "\u0110\u1EA7u v\xE0o kh\xF4ng h\u1EE3p l\u1EC7"; case "invalid_element": return `Gi\xE1 tr\u1ECB kh\xF4ng h\u1EE3p l\u1EC7 trong ${issue2.origin}`; default: return `\u0110\u1EA7u v\xE0o kh\xF4ng h\u1EE3p l\u1EC7`; } }; }; function vi_default() { return { localeError: error58() }; } // ../../../../node_modules/zod/v4/locales/zh-CN.js var error59 = () => { const Sizable = { string: { unit: "\u5B57\u7B26", verb: "\u5305\u542B" }, file: { unit: "\u5B57\u8282", verb: "\u5305\u542B" }, array: { unit: "\u9879", verb: "\u5305\u542B" }, set: { unit: "\u9879", verb: "\u5305\u542B" }, map: { unit: "\u9879", verb: "\u5305\u542B" } }; function getSizing(origin) { return Sizable[origin] ?? null; } const FormatDictionary = { regex: "\u8F93\u5165", email: "\u7535\u5B50\u90AE\u4EF6", url: "URL", emoji: "\u8868\u60C5\u7B26\u53F7", uuid: "UUID", uuidv4: "UUIDv4", uuidv6: "UUIDv6", nanoid: "nanoid", guid: "GUID", cuid: "cuid", cuid2: "cuid2", ulid: "ULID", xid: "XID", ksuid: "KSUID", datetime: "ISO\u65E5\u671F\u65F6\u95F4", date: "ISO\u65E5\u671F", time: "ISO\u65F6\u95F4", duration: "ISO\u65F6\u957F", ipv4: "IPv4\u5730\u5740", ipv6: "IPv6\u5730\u5740", mac: "MAC\u5730\u5740", cidrv4: "IPv4\u7F51\u6BB5", cidrv6: "IPv6\u7F51\u6BB5", base64: "base64\u7F16\u7801\u5B57\u7B26\u4E32", base64url: "base64url\u7F16\u7801\u5B57\u7B26\u4E32", json_string: "JSON\u5B57\u7B26\u4E32", e164: "E.164\u53F7\u7801", credit_card: "\u4FE1\u7528\u5361\u53F7", currency_code: "\u8D27\u5E01\u4EE3\u7801", iban: "IBAN", jwt: "JWT", template_literal: "\u8F93\u5165" }; const TypeDictionary = { nan: "NaN", number: "\u6570\u5B57", array: "\u6570\u7EC4", null: "\u7A7A\u503C(null)" }; return (issue2) => { switch (issue2.code) { case "invalid_type": { const expected = TypeDictionary[issue2.expected] ?? issue2.expected; const receivedType = parsedType(issue2.input); const received = TypeDictionary[receivedType] ?? receivedType; if (/^[A-Z]/.test(issue2.expected)) { return `\u65E0\u6548\u8F93\u5165\uFF1A\u671F\u671B instanceof ${issue2.expected}\uFF0C\u5B9E\u9645\u63A5\u6536 ${received}`; } return `\u65E0\u6548\u8F93\u5165\uFF1A\u671F\u671B ${expected}\uFF0C\u5B9E\u9645\u63A5\u6536 ${received}`; } case "invalid_value": if (issue2.values.length === 1) return `\u65E0\u6548\u8F93\u5165\uFF1A\u671F\u671B ${stringifyPrimitive(issue2.values[0])}`; return `\u65E0\u6548\u9009\u9879\uFF1A\u671F\u671B\u4EE5\u4E0B\u4E4B\u4E00 ${joinValues(issue2.values, "|")}`; case "too_big": { const adj = issue2.inclusive ? "<=" : "<"; const sizing = getSizing(issue2.origin); if (sizing) return `\u6570\u503C\u8FC7\u5927\uFF1A\u671F\u671B ${issue2.origin ?? "\u503C"} ${adj}${issue2.maximum.toString()} ${sizing.unit ?? "\u4E2A\u5143\u7D20"}`; return `\u6570\u503C\u8FC7\u5927\uFF1A\u671F\u671B ${issue2.origin ?? "\u503C"} ${adj}${issue2.maximum.toString()}`; } case "too_small": { const adj = issue2.inclusive ? ">=" : ">"; const sizing = getSizing(issue2.origin); if (sizing) { return `\u6570\u503C\u8FC7\u5C0F\uFF1A\u671F\u671B ${issue2.origin} ${adj}${issue2.minimum.toString()} ${sizing.unit}`; } return `\u6570\u503C\u8FC7\u5C0F\uFF1A\u671F\u671B ${issue2.origin} ${adj}${issue2.minimum.toString()}`; } case "invalid_format": { const _issue = issue2; if (_issue.format === "starts_with") return `\u65E0\u6548\u5B57\u7B26\u4E32\uFF1A\u5FC5\u987B\u4EE5 "${_issue.prefix}" \u5F00\u5934`; if (_issue.format === "ends_with") return `\u65E0\u6548\u5B57\u7B26\u4E32\uFF1A\u5FC5\u987B\u4EE5 "${_issue.suffix}" \u7ED3\u5C3E`; if (_issue.format === "includes") return `\u65E0\u6548\u5B57\u7B26\u4E32\uFF1A\u5FC5\u987B\u5305\u542B "${_issue.includes}"`; if (_issue.format === "regex") return `\u65E0\u6548\u5B57\u7B26\u4E32\uFF1A\u5FC5\u987B\u6EE1\u8DB3\u6B63\u5219\u8868\u8FBE\u5F0F ${_issue.pattern}`; return `\u65E0\u6548${FormatDictionary[_issue.format] ?? issue2.format}`; } case "not_multiple_of": return `\u65E0\u6548\u6570\u5B57\uFF1A\u5FC5\u987B\u662F ${issue2.divisor} \u7684\u500D\u6570`; case "unrecognized_keys": return `\u51FA\u73B0\u672A\u77E5\u7684\u952E(key): ${joinValues(issue2.keys, ", ")}`; case "invalid_key": return `${issue2.origin} \u4E2D\u7684\u952E(key)\u65E0\u6548`; case "invalid_union": return "\u65E0\u6548\u8F93\u5165"; case "invalid_element": return `${issue2.origin} \u4E2D\u5305\u542B\u65E0\u6548\u503C(value)`; default: return `\u65E0\u6548\u8F93\u5165`; } }; }; function zh_CN_default() { return { localeError: error59() }; } // ../../../../node_modules/zod/v4/locales/zh-TW.js var error60 = () => { const Sizable = { string: { unit: "\u5B57\u5143", verb: "\u64C1\u6709" }, file: { unit: "\u4F4D\u5143\u7D44", verb: "\u64C1\u6709" }, array: { unit: "\u9805\u76EE", verb: "\u64C1\u6709" }, set: { unit: "\u9805\u76EE", verb: "\u64C1\u6709" }, map: { unit: "\u9805\u76EE", verb: "\u64C1\u6709" } }; function getSizing(origin) { return Sizable[origin] ?? null; } const FormatDictionary = { regex: "\u8F38\u5165", email: "\u90F5\u4EF6\u5730\u5740", url: "URL", emoji: "emoji", uuid: "UUID", uuidv4: "UUIDv4", uuidv6: "UUIDv6", nanoid: "nanoid", guid: "GUID", cuid: "cuid", cuid2: "cuid2", ulid: "ULID", xid: "XID", ksuid: "KSUID", datetime: "ISO \u65E5\u671F\u6642\u9593", date: "ISO \u65E5\u671F", time: "ISO \u6642\u9593", duration: "ISO \u671F\u9593", ipv4: "IPv4 \u4F4D\u5740", ipv6: "IPv6 \u4F4D\u5740", mac: "MAC \u4F4D\u5740", cidrv4: "IPv4 \u7BC4\u570D", cidrv6: "IPv6 \u7BC4\u570D", base64: "base64 \u7DE8\u78BC\u5B57\u4E32", base64url: "base64url \u7DE8\u78BC\u5B57\u4E32", json_string: "JSON \u5B57\u4E32", e164: "E.164 \u6578\u503C", credit_card: "\u4FE1\u7528\u5361\u865F", currency_code: "\u8CA8\u5E63\u4EE3\u78BC", iban: "IBAN", jwt: "JWT", template_literal: "\u8F38\u5165" }; const TypeDictionary = { nan: "NaN" }; return (issue2) => { switch (issue2.code) { case "invalid_type": { const expected = TypeDictionary[issue2.expected] ?? issue2.expected; const receivedType = parsedType(issue2.input); const received = TypeDictionary[receivedType] ?? receivedType; if (/^[A-Z]/.test(issue2.expected)) { return `\u7121\u6548\u7684\u8F38\u5165\u503C\uFF1A\u9810\u671F\u70BA instanceof ${issue2.expected}\uFF0C\u4F46\u6536\u5230 ${received}`; } return `\u7121\u6548\u7684\u8F38\u5165\u503C\uFF1A\u9810\u671F\u70BA ${expected}\uFF0C\u4F46\u6536\u5230 ${received}`; } case "invalid_value": if (issue2.values.length === 1) return `\u7121\u6548\u7684\u8F38\u5165\u503C\uFF1A\u9810\u671F\u70BA ${stringifyPrimitive(issue2.values[0])}`; return `\u7121\u6548\u7684\u9078\u9805\uFF1A\u9810\u671F\u70BA\u4EE5\u4E0B\u5176\u4E2D\u4E4B\u4E00 ${joinValues(issue2.values, "|")}`; case "too_big": { const adj = issue2.inclusive ? "<=" : "<"; const sizing = getSizing(issue2.origin); if (sizing) return `\u6578\u503C\u904E\u5927\uFF1A\u9810\u671F ${issue2.origin ?? "\u503C"} \u61C9\u70BA ${adj}${issue2.maximum.toString()} ${sizing.unit ?? "\u500B\u5143\u7D20"}`; return `\u6578\u503C\u904E\u5927\uFF1A\u9810\u671F ${issue2.origin ?? "\u503C"} \u61C9\u70BA ${adj}${issue2.maximum.toString()}`; } case "too_small": { const adj = issue2.inclusive ? ">=" : ">"; const sizing = getSizing(issue2.origin); if (sizing) { return `\u6578\u503C\u904E\u5C0F\uFF1A\u9810\u671F ${issue2.origin} \u61C9\u70BA ${adj}${issue2.minimum.toString()} ${sizing.unit}`; } return `\u6578\u503C\u904E\u5C0F\uFF1A\u9810\u671F ${issue2.origin} \u61C9\u70BA ${adj}${issue2.minimum.toString()}`; } case "invalid_format": { const _issue = issue2; if (_issue.format === "starts_with") { return `\u7121\u6548\u7684\u5B57\u4E32\uFF1A\u5FC5\u9808\u4EE5 "${_issue.prefix}" \u958B\u982D`; } if (_issue.format === "ends_with") return `\u7121\u6548\u7684\u5B57\u4E32\uFF1A\u5FC5\u9808\u4EE5 "${_issue.suffix}" \u7D50\u5C3E`; if (_issue.format === "includes") return `\u7121\u6548\u7684\u5B57\u4E32\uFF1A\u5FC5\u9808\u5305\u542B "${_issue.includes}"`; if (_issue.format === "regex") return `\u7121\u6548\u7684\u5B57\u4E32\uFF1A\u5FC5\u9808\u7B26\u5408\u683C\u5F0F ${_issue.pattern}`; return `\u7121\u6548\u7684 ${FormatDictionary[_issue.format] ?? issue2.format}`; } case "not_multiple_of": return `\u7121\u6548\u7684\u6578\u5B57\uFF1A\u5FC5\u9808\u70BA ${issue2.divisor} \u7684\u500D\u6578`; case "unrecognized_keys": return `\u7121\u6CD5\u8B58\u5225\u7684\u9375\u503C${issue2.keys.length > 1 ? "\u5011" : ""}\uFF1A${joinValues(issue2.keys, "\u3001")}`; case "invalid_key": return `${issue2.origin} \u4E2D\u6709\u7121\u6548\u7684\u9375\u503C`; case "invalid_union": return "\u7121\u6548\u7684\u8F38\u5165\u503C"; case "invalid_element": return `${issue2.origin} \u4E2D\u6709\u7121\u6548\u7684\u503C`; default: return `\u7121\u6548\u7684\u8F38\u5165\u503C`; } }; }; function zh_TW_default() { return { localeError: error60() }; } // ../../../../node_modules/zod/v4/locales/yo.js var error61 = () => { const Sizable = { string: { unit: "\xE0mi", verb: "n\xED" }, file: { unit: "bytes", verb: "n\xED" }, array: { unit: "nkan", verb: "n\xED" }, set: { unit: "nkan", verb: "n\xED" }, map: { unit: "nkan", verb: "n\xED" } }; function getSizing(origin) { return Sizable[origin] ?? null; } const FormatDictionary = { regex: "\u1EB9\u0300r\u1ECD \xECb\xE1w\u1ECDl\xE9", email: "\xE0d\xEDr\u1EB9\u0301s\xEC \xECm\u1EB9\u0301l\xEC", url: "URL", emoji: "emoji", uuid: "UUID", uuidv4: "UUIDv4", uuidv6: "UUIDv6", nanoid: "nanoid", guid: "GUID", cuid: "cuid", cuid2: "cuid2", ulid: "ULID", xid: "XID", ksuid: "KSUID", datetime: "\xE0k\xF3k\xF2 ISO", date: "\u1ECDj\u1ECD\u0301 ISO", time: "\xE0k\xF3k\xF2 ISO", duration: "\xE0k\xF3k\xF2 t\xF3 p\xE9 ISO", ipv4: "\xE0d\xEDr\u1EB9\u0301s\xEC IPv4", ipv6: "\xE0d\xEDr\u1EB9\u0301s\xEC IPv6", mac: "\xE0d\xEDr\u1EB9\u0301s\xEC MAC", cidrv4: "\xE0gb\xE8gb\xE8 IPv4", cidrv6: "\xE0gb\xE8gb\xE8 IPv6", base64: "\u1ECD\u0300r\u1ECD\u0300 t\xED a k\u1ECD\u0301 n\xED base64", base64url: "\u1ECD\u0300r\u1ECD\u0300 base64url", json_string: "\u1ECD\u0300r\u1ECD\u0300 JSON", e164: "n\u1ECD\u0301mb\xE0 E.164", credit_card: "n\u1ECDmba kaadi gbese", currency_code: "koodu ow\xF3", iban: "IBAN", jwt: "JWT", template_literal: "\u1EB9\u0300r\u1ECD \xECb\xE1w\u1ECDl\xE9" }; const TypeDictionary = { nan: "NaN", number: "n\u1ECD\u0301mb\xE0", array: "akop\u1ECD" }; return (issue2) => { switch (issue2.code) { case "invalid_type": { const expected = TypeDictionary[issue2.expected] ?? issue2.expected; const receivedType = parsedType(issue2.input); const received = TypeDictionary[receivedType] ?? receivedType; if (/^[A-Z]/.test(issue2.expected)) { return `\xCCb\xE1w\u1ECDl\xE9 a\u1E63\xEC\u1E63e: a n\xED l\xE1ti fi instanceof ${issue2.expected}, \xE0m\u1ECD\u0300 a r\xED ${received}`; } return `\xCCb\xE1w\u1ECDl\xE9 a\u1E63\xEC\u1E63e: a n\xED l\xE1ti fi ${expected}, \xE0m\u1ECD\u0300 a r\xED ${received}`; } case "invalid_value": if (issue2.values.length === 1) return `\xCCb\xE1w\u1ECDl\xE9 a\u1E63\xEC\u1E63e: a n\xED l\xE1ti fi ${stringifyPrimitive(issue2.values[0])}`; return `\xC0\u1E63\xE0y\xE0n a\u1E63\xEC\u1E63e: yan \u1ECD\u0300kan l\xE1ra ${joinValues(issue2.values, "|")}`; case "too_big": { const adj = issue2.inclusive ? "<=" : "<"; const sizing = getSizing(issue2.origin); if (sizing) return `T\xF3 p\u1ECD\u0300 j\xF9: a n\xED l\xE1ti j\u1EB9\u0301 p\xE9 ${issue2.origin ?? "iye"} ${sizing.verb} ${adj}${issue2.maximum} ${sizing.unit}`; return `T\xF3 p\u1ECD\u0300 j\xF9: a n\xED l\xE1ti j\u1EB9\u0301 ${adj}${issue2.maximum}`; } case "too_small": { const adj = issue2.inclusive ? ">=" : ">"; const sizing = getSizing(issue2.origin); if (sizing) return `K\xE9r\xE9 ju: a n\xED l\xE1ti j\u1EB9\u0301 p\xE9 ${issue2.origin} ${sizing.verb} ${adj}${issue2.minimum} ${sizing.unit}`; return `K\xE9r\xE9 ju: a n\xED l\xE1ti j\u1EB9\u0301 ${adj}${issue2.minimum}`; } case "invalid_format": { const _issue = issue2; if (_issue.format === "starts_with") return `\u1ECC\u0300r\u1ECD\u0300 a\u1E63\xEC\u1E63e: gb\u1ECD\u0301d\u1ECD\u0300 b\u1EB9\u0300r\u1EB9\u0300 p\u1EB9\u0300l\xFA "${_issue.prefix}"`; if (_issue.format === "ends_with") return `\u1ECC\u0300r\u1ECD\u0300 a\u1E63\xEC\u1E63e: gb\u1ECD\u0301d\u1ECD\u0300 par\xED p\u1EB9\u0300l\xFA "${_issue.suffix}"`; if (_issue.format === "includes") return `\u1ECC\u0300r\u1ECD\u0300 a\u1E63\xEC\u1E63e: gb\u1ECD\u0301d\u1ECD\u0300 n\xED "${_issue.includes}"`; if (_issue.format === "regex") return `\u1ECC\u0300r\u1ECD\u0300 a\u1E63\xEC\u1E63e: gb\u1ECD\u0301d\u1ECD\u0300 b\xE1 \xE0p\u1EB9\u1EB9r\u1EB9 mu ${_issue.pattern}`; return `A\u1E63\xEC\u1E63e: ${FormatDictionary[_issue.format] ?? issue2.format}`; } case "not_multiple_of": return `N\u1ECD\u0301mb\xE0 a\u1E63\xEC\u1E63e: gb\u1ECD\u0301d\u1ECD\u0300 j\u1EB9\u0301 \xE8y\xE0 p\xEDp\xEDn ti ${issue2.divisor}`; case "unrecognized_keys": return `B\u1ECDt\xECn\xEC \xE0\xECm\u1ECD\u0300: ${joinValues(issue2.keys, ", ")}`; case "invalid_key": return `B\u1ECDt\xECn\xEC a\u1E63\xEC\u1E63e n\xEDn\xFA ${issue2.origin}`; case "invalid_union": return "\xCCb\xE1w\u1ECDl\xE9 a\u1E63\xEC\u1E63e"; case "invalid_element": return `Iye a\u1E63\xEC\u1E63e n\xEDn\xFA ${issue2.origin}`; default: return "\xCCb\xE1w\u1ECDl\xE9 a\u1E63\xEC\u1E63e"; } }; }; function yo_default() { return { localeError: error61() }; } // ../../../../node_modules/zod/v4/core/registries.js var _a2; var $output = /* @__PURE__ */ Symbol("ZodOutput"); var $input = /* @__PURE__ */ Symbol("ZodInput"); var $ZodRegistry = class { constructor() { this._map = /* @__PURE__ */ new WeakMap(); this._idmap = /* @__PURE__ */ new Map(); } add(schema, ..._meta) { const meta3 = _meta[0]; this._map.set(schema, meta3); if (meta3 && typeof meta3 === "object" && "id" in meta3) { this._idmap.set(meta3.id, schema); } return this; } clear() { this._map = /* @__PURE__ */ new WeakMap(); this._idmap = /* @__PURE__ */ new Map(); return this; } remove(schema) { const meta3 = this._map.get(schema); if (meta3 && typeof meta3 === "object" && "id" in meta3) { this._idmap.delete(meta3.id); } this._map.delete(schema); return this; } get(schema) { const p = schema._zod.parent; if (p) { const pm = { ...this.get(p) ?? {} }; delete pm.id; const f = { ...pm, ...this._map.get(schema) }; return Object.keys(f).length ? f : void 0; } return this._map.get(schema); } has(schema) { return this._map.has(schema); } }; function registry() { return new $ZodRegistry(); } (_a2 = globalThis).__zod_globalRegistry ?? (_a2.__zod_globalRegistry = registry()); var globalRegistry = globalThis.__zod_globalRegistry; // ../../../../node_modules/zod/v4/core/compile.js var INVALID = Symbol.for("zod.compile.invalid"); var FALLBACK_FLAG = Symbol.for("zod.compile.fallback"); var ZodCompileAsyncError = class extends Error { constructor(message = "z.compile does not support async refinements, transforms, or checks") { super(message); this.name = "ZodCompileAsyncError"; } }; var ZodCompileUnsupportedError = class extends Error { constructor(feature, islandable = true) { super(`z.compile does not support ${feature}; this schema must use the runtime parser`); this.name = "ZodCompileUnsupportedError"; this.islandable = islandable; } }; function compileValidator(schema, parser) { try { return compileFn(schema, { assertOnly: true }); } catch { return parser; } } function compile(schema, options) { try { const parser = compileFn(schema); const clone2 = withParser(schema, parser); clone2._zod.bag.validator = compileValidator(schema, parser); return clone2; } catch (err) { if (options?.strict) throw err; return schema; } } function withParser(schema, parser) { if (isRecursiveSchema(schema)) { throw new ZodCompileUnsupportedError("a schema whose subtree contains a reference cycle"); } const clone2 = clone(schema); const liveRun = schema._zod.run; const originalRun = liveRun.__originalRun ?? liveRun; const wrapped = (payload, ctx) => { if (ctx?.async || ctx?.direction === "backward" || ctx?.skipChecks || ctx?.[FALLBACK_FLAG]) { return originalRun(payload, ctx); } if (ctx && isBackEdge(ctx, payload.value)) { return originalRun(payload, ctx); } const out = parser(payload.value); if (out !== INVALID) { payload.value = out; return payload; } if (ctx) ctx[FALLBACK_FLAG] = true; return originalRun(payload, ctx); }; wrapped.__originalRun = originalRun; clone2._zod.bag.fallbackRun = originalRun; clone2._zod.bag.validator = parser; clone2._zod.run = wrapped; if (!liveRun.__originalRun) installCompiledUserMethods(clone2, schema, parser); return clone2; } function installCompiledUserMethods(target, source, parser) { const targetAny = target; const sourceAny = source; if (typeof sourceAny.safeParse === "function") { const originalSafeParse = sourceAny.safeParse; targetAny.safeParse = (data, params) => { const out = parser(data); if (out !== INVALID) { return { success: true, data: out }; } return originalSafeParse(data, params); }; } if (typeof sourceAny.parse === "function") { const originalParse = sourceAny.parse; targetAny.parse = (data, params) => { const out = parser(data); if (out !== INVALID) { return out; } return originalParse(data, params); }; } } function compileFn(schema, options) { let recursive2 = true; try { recursive2 = isRecursiveSchema(schema); } catch { } if (recursive2) { throw new ZodCompileUnsupportedError("a schema whose subtree contains a reference cycle"); } const ctx = { constants: /* @__PURE__ */ new Map(), constantCounter: 0, varCounter: 0, definite: true }; const doc = new Doc(["input"]); const outputAccessor = generateCheck(doc, ctx, schema, "input", !options?.assertOnly); doc.write(outputAccessor === null ? `return true;` : `return ${outputAccessor};`); const constantNames = ["INVALID", ...ctx.constants.keys()]; const constantValues = [INVALID, ...ctx.constants.values()]; const code = doc.content.join("\n"); const fullCode = options?.debug ? constantNames.length > 0 ? `// Constants: ${constantNames.join(", ")} ${code}` : code : ""; const F = Function; const factoryCode = `return (input) => { ${code} }`; let fn; try { const factory = new F(...constantNames, factoryCode); fn = factory(...constantValues); } catch (err) { throw new ZodCompileUnsupportedError(`this schema (generated code failed to evaluate: ${err.message})`); } if (options?.debug) { fn.code = fullCode; } fn.definite = ctx.definite; return fn; } function addConstant(ctx, value) { for (const [name2, v] of ctx.constants) { if (v === value) return name2; } const name = `c${ctx.constantCounter++}`; ctx.constants.set(name, value); return name; } function addUserConstant(ctx, fn) { ctx.definite = false; return addConstant(ctx, fn); } function newVar(ctx) { return `v${ctx.varCounter++}`; } function runtimeRun(schema, value) { const result = schema._zod.run({ value, issues: [] }, {}); if (result && typeof result.then === "function") return INVALID; const r = result; return r.issues.length === 0 ? r.value : INVALID; } function compileChild(doc, ctx, schema, accessor, needsValue = true) { const contentLen = doc.content.length; const constantCount = ctx.constants.size; const constantCounter = ctx.constantCounter; const varCounter = ctx.varCounter; try { return generateCheck(doc, ctx, schema, accessor, needsValue); } catch (err) { if (!(err instanceof ZodCompileUnsupportedError) || !err.islandable) throw err; doc.content.length = contentLen; if (ctx.constants.size > constantCount) { const trailing = Array.from(ctx.constants.keys()).slice(constantCount); for (const k of trailing) ctx.constants.delete(k); } ctx.constantCounter = constantCounter; ctx.varCounter = varCounter; return emitRuntimeIsland(doc, ctx, schema, accessor); } } function emitRuntimeIsland(doc, ctx, schema, accessor) { ctx.definite = false; const schemaConst = addConstant(ctx, schema); const runConst = addConstant(ctx, runtimeRun); const outVar = newVar(ctx); doc.write(`const ${outVar} = ${runConst}(${schemaConst}, ${accessor});`); doc.write(`if (${outVar} === INVALID) return INVALID;`); return outVar; } var WHEN_DEFAULTED_CHECKS = /* @__PURE__ */ new Set([ "max_size", "min_size", "size_equals", "max_length", "min_length", "length_equals" ]); function generateChecks(doc, ctx, schema, accessor) { const schemaChecks = schema._zod.def.checks; if (!schemaChecks || schemaChecks.length === 0) return accessor; let currentAccessor = accessor; for (const check2 of schemaChecks) { const def = check2._zod.def; if (def.when && !WHEN_DEFAULTED_CHECKS.has(def.check)) { throw new ZodCompileUnsupportedError(`check with a custom "when" condition`); } switch (def.check) { case "greater_than": generateGreaterThanCheck(doc, ctx, def, currentAccessor); break; case "less_than": generateLessThanCheck(doc, ctx, def, currentAccessor); break; case "multiple_of": generateMultipleOfCheck(doc, ctx, def, currentAccessor); break; case "number_format": generateNumberFormatCheck(doc, def, currentAccessor); break; case "min_length": { const min = numericOperand(def.minimum, "min_length"); const len = codePointLengthVar(doc, ctx, currentAccessor, `${currentAccessor}.length >= ${min} && ${currentAccessor}.length < ${def.minimum * 2}`); doc.write(`if (${len} < ${min}) return INVALID;`); break; } case "max_length": { const max = numericOperand(def.maximum, "max_length"); const len = codePointLengthVar(doc, ctx, currentAccessor, `${currentAccessor}.length > ${max}`); doc.write(`if (${len} > ${max}) return INVALID;`); break; } case "length_equals": { const exact = numericOperand(def.length, "length_equals"); const len = codePointLengthVar(doc, ctx, currentAccessor, `${currentAccessor}.length >= ${exact} && ${currentAccessor}.length <= ${def.length * 2}`); doc.write(`if (${len} !== ${exact}) return INVALID;`); break; } case "min_size": doc.write(`if (${currentAccessor}.size < ${numericOperand(def.minimum, "min_size")}) return INVALID;`); break; case "max_size": doc.write(`if (${currentAccessor}.size > ${numericOperand(def.maximum, "max_size")}) return INVALID;`); break; case "size_equals": doc.write(`if (${currentAccessor}.size !== ${numericOperand(def.size, "size_equals")}) return INVALID;`); break; case "string_format": currentAccessor = generateStringFormatCheck(doc, ctx, def, currentAccessor); break; case "custom": currentAccessor = generateCustomRefineCheck(doc, ctx, check2, currentAccessor); break; case "bigint_format": generateBigIntFormatCheck(doc, def, currentAccessor); break; case "mime_type": generateMimeTypeCheck(doc, ctx, def, currentAccessor); break; case "property": generatePropertyCheck(doc, ctx, def, currentAccessor); break; case "properties": generatePropertiesChecks(doc, ctx, def, currentAccessor); break; case "overwrite": { const newAccessor = newVar(ctx); generateOverwriteCheck(doc, ctx, check2, currentAccessor, newAccessor); currentAccessor = newAccessor; break; } default: { void def; throw new ZodCompileUnsupportedError(`check type ${def.check}`); } } } return currentAccessor; } function codePointLengthVar(doc, ctx, accessor, inDoubt) { const cpLen = addConstant(ctx, codePointLength); const v = newVar(ctx); doc.write(`const ${v} = typeof ${accessor} === "string" && ${inDoubt} ? ${cpLen}(${accessor}) : ${accessor}.length;`); return v; } function numericOperand(value, label) { if (typeof value !== "number" || !Number.isFinite(value)) { throw new ZodCompileUnsupportedError(`${label} bound of type ${typeof value}`); } return `${value}`; } function comparisonOperand(ctx, value) { if (typeof value === "bigint") return `${value}n`; if (typeof value === "number") { if (Number.isNaN(value)) throw new ZodCompileUnsupportedError("comparison check with NaN bound"); return `${value}`; } if (value instanceof Date) { if (Number.isNaN(value.getTime())) { throw new ZodCompileUnsupportedError("comparison check with Invalid Date bound"); } return addConstant(ctx, value); } throw new ZodCompileUnsupportedError(`comparison check bound of type ${typeof value}`); } function generateGreaterThanCheck(doc, ctx, def, accessor) { const op = def.inclusive ? "<" : "<="; doc.write(`if (${accessor} ${op} ${comparisonOperand(ctx, def.value)}) return INVALID;`); } function generateLessThanCheck(doc, ctx, def, accessor) { const op = def.inclusive ? ">" : ">="; doc.write(`if (${accessor} ${op} ${comparisonOperand(ctx, def.value)}) return INVALID;`); } function generateMultipleOfCheck(doc, ctx, def, accessor) { if (typeof def.value === "bigint") { if (def.value === BigInt(0)) throw new ZodCompileUnsupportedError("multiple_of check with a zero divisor"); doc.write(`if (${accessor} % ${def.value}n !== 0n) return INVALID;`); } else { const remainder = addConstant(ctx, floatSafeRemainder); doc.write(`if (${remainder}(${accessor}, ${numericOperand(def.value, "multiple_of")}) !== 0) return INVALID;`); } } function generateNumberFormatCheck(doc, def, accessor) { const format = def.format; switch (format) { case "safeint": doc.write(`if (!Number.isSafeInteger(${accessor})) return INVALID;`); break; case "int32": doc.write(`if (!Number.isInteger(${accessor}) || ${accessor} < -2147483648 || ${accessor} > 2147483647) return INVALID;`); break; case "uint32": doc.write(`if (!Number.isInteger(${accessor}) || ${accessor} < 0 || ${accessor} > 4294967295) return INVALID;`); break; case "float32": doc.write(`if (!Number.isFinite(${accessor}) || ${accessor} < -3.4028234663852886e38 || ${accessor} > 3.4028234663852886e38) return INVALID;`); break; case "float64": doc.write(`if (!Number.isFinite(${accessor})) return INVALID;`); break; default: { void format; throw new ZodCompileUnsupportedError(`number format ${format}`); } } } function generateBigIntFormatCheck(doc, def, accessor) { const format = def.format; if (!format) return; switch (format) { case "int64": doc.write(`if (${accessor} < -9223372036854775808n || ${accessor} > 9223372036854775807n) return INVALID;`); break; case "uint64": doc.write(`if (${accessor} < 0n || ${accessor} > 18446744073709551615n) return INVALID;`); break; default: { void format; throw new ZodCompileUnsupportedError(`bigint format ${format}`); } } } function generateMimeTypeCheck(doc, ctx, def, accessor) { const mimeTypes = def.mime; if (mimeTypes && mimeTypes.length > 0) { const mimeSet = addConstant(ctx, new Set(mimeTypes)); doc.write(`if (!${mimeSet}.has(${accessor}.type)) return INVALID;`); } } function generatePropertiesChecks(doc, ctx, def, accessor) { if (def.when) { throw new ZodCompileUnsupportedError(`check with a custom "when" condition`); } doc.write(`if (${accessor} == null) return INVALID;`); const shape = def.shape; for (const key of Reflect.ownKeys(shape)) { const keyExpr = typeof key === "symbol" ? addConstant(ctx, key) : esc(key); const inputVar = newVar(ctx); doc.write(`const ${inputVar} = ${accessor}[${keyExpr}];`); compileChild(doc, ctx, shape[key], inputVar, false); } } function generatePropertyCheck(doc, ctx, def, accessor) { const propAccessor = `${accessor}[${JSON.stringify(def.property)}]`; generateCheck(doc, ctx, def.schema, propAccessor); } function generateOverwriteCheck(doc, ctx, check2, currentAccessor, newAccessor) { const tx = check2._zod.def.tx; if (!tx) { throw new ZodCompileUnsupportedError("overwrite check without a transform function"); } if (isAsyncFunction(tx)) { throw new ZodCompileAsyncError("z.compile: async overwrite transforms are not supported"); } const txConst = addConstant(ctx, tx); doc.write(`const ${newAccessor} = ${txConst}(${currentAccessor});`); } function throwAsync() { throw new $ZodAsyncError(); } function pushIssue(issue2) { this.issues.push(issue2); } function generateCustomRefineCheck(doc, ctx, check2, accessor) { const def = check2._zod.def; if (def.fn) { if (isAsyncFunction(def.fn)) { throw new ZodCompileAsyncError("z.compile: async .refine() predicates are not supported"); } const fnConst = addUserConstant(ctx, def.fn); const throwAsyncConst = addConstant(ctx, throwAsync); const resVar = newVar(ctx); doc.write(`const ${resVar} = ${fnConst}(${accessor});`); doc.write(`if (${resVar} instanceof Promise) ${throwAsyncConst}();`); doc.write(`if (!${resVar}) return INVALID;`); return accessor; } if (check2._zod.check) { if (isAsyncFunction(check2._zod.check)) { throw new ZodCompileAsyncError("z.compile: async .superRefine() / check functions are not supported"); } const checkFn = check2._zod.check; const helperFn = (value) => { const fakePayload = { value, issues: [], addIssue: pushIssue }; const result = checkFn(fakePayload); if (result instanceof Promise) throwAsync(); return fakePayload.issues.length === 0 ? fakePayload.value : INVALID; }; const helperConst = addUserConstant(ctx, helperFn); const outVar = newVar(ctx); doc.write(`const ${outVar} = ${helperConst}(${accessor});`); doc.write(`if (${outVar} === INVALID) return INVALID;`); return outVar; } throw new ZodCompileUnsupportedError("custom check without a predicate or check function"); } var PATTERN_IS_COMPLETE = /* @__PURE__ */ new Set([ "cidrv4", "cuid", "cuid2", "date", "datetime", "duration", "e164", "email", "emoji", "ends_with", "guid", "includes", "ipv4", "ksuid", "lowercase", "mac", "nanoid", "regex", "starts_with", "time", "ulid", "uppercase", "uuid", "xid" ]); function generateStringFormatCheck(doc, ctx, def, accessor, needsValue = true) { const fmt = def.format; if (fmt === "base64") { const validator = addConstant(ctx, isValidBase64); doc.write(`if (!${validator}(${accessor})) return INVALID;`); return accessor; } if (fmt === "base64url") { const validator = addConstant(ctx, isValidBase64URL); doc.write(`if (!${validator}(${accessor})) return INVALID;`); return accessor; } if (fmt === "jwt") { const validator = addConstant(ctx, isValidJWT); const alg = addConstant(ctx, def.alg ?? null); doc.write(`if (!${validator}(${accessor}, ${alg})) return INVALID;`); return accessor; } if (fmt === "ipv6") { const validator = addConstant(ctx, isValidIPv6); doc.write(`if (!${validator}(${accessor})) return INVALID;`); return accessor; } if (fmt === "cidrv6") { const validator = addConstant(ctx, isValidCIDRv6); doc.write(`if (!${validator}(${accessor})) return INVALID;`); return accessor; } if (fmt === "credit_card") { const validator = addConstant(ctx, isValidCreditCard); doc.write(`if (!${validator}(${accessor})) return INVALID;`); return accessor; } if (fmt === "iban") { const validator = addConstant(ctx, isValidIBAN); doc.write(`if (!${validator}(${accessor})) return INVALID;`); return accessor; } const formatDef = def; if (fmt === "url" || fmt === "httpurl" || formatDef.normalize || formatDef.hostname !== void 0 || formatDef.protocol !== void 0) { const parseConst = addConstant(ctx, validateURL); const defConst = addConstant(ctx, def); const trimVar = newVar(ctx); const urlVar = newVar(ctx); doc.write(`const ${trimVar} = ${accessor}.trim();`); doc.write(`const ${urlVar} = ${parseConst}(${trimVar}, ${defConst});`); doc.write(`if (typeof ${urlVar} === "number") return INVALID;`); if (formatDef.hostname !== void 0) { const hostnameConst = addConstant(ctx, urlHostnameOk); doc.write(`if (!${hostnameConst}(${urlVar}, ${defConst}.hostname)) return INVALID;`); } if (formatDef.protocol !== void 0) { const protocolConst = addConstant(ctx, urlProtocolOk); doc.write(`if (!${protocolConst}(${urlVar}, ${defConst}.protocol)) return INVALID;`); } if (!needsValue) return null; const outputVar = newVar(ctx); const outputExpr = formatDef.normalize ? `${urlVar}.href` : `${addConstant(ctx, stripTabAndNewline)}(${trimVar})`; doc.write(`const ${outputVar} = ${outputExpr};`); return outputVar; } const customFn = def.fn; if (customFn) { if (isAsyncFunction(customFn)) throw new ZodCompileUnsupportedError(`async string format ${fmt}`); const fnConst = addConstant(ctx, customFn); doc.write(`if (!${fnConst}(${accessor})) return INVALID;`); return accessor; } if (PATTERN_IS_COMPLETE.has(fmt) && def.pattern) { const patternConst = addConstant(ctx, def.pattern); doc.write(`${patternConst}.lastIndex = 0;`); doc.write(`if (!${patternConst}.test(${accessor})) return INVALID;`); return accessor; } const format = def.format; switch (format) { case "regex": throw new ZodCompileUnsupportedError("regex format without a pattern"); case "lowercase": doc.write(`if (${accessor} !== ${accessor}.toLowerCase()) return INVALID;`); break; case "uppercase": doc.write(`if (${accessor} !== ${accessor}.toUpperCase()) return INVALID;`); break; case "includes": doc.write(`if (!${accessor}.includes(${esc(def.includes)})) return INVALID;`); break; case "starts_with": { const prefix = def.prefix; doc.write(`if (${accessor}.slice(0, ${prefix.length}) !== ${esc(prefix)}) return INVALID;`); break; } case "ends_with": { const suffix = def.suffix; doc.write(`if (${accessor}.slice(-${suffix.length}) !== ${esc(suffix)}) return INVALID;`); break; } default: { void format; throw new ZodCompileUnsupportedError(`string format ${format}`); } } return accessor; } function generateCheck(doc, ctx, schema, accessor, needsValue = true) { const def = schema._zod.def; const type = def.type; if (def.coerce) { throw new ZodCompileUnsupportedError(`coercion (z.coerce.${type}())`); } const buildsValue = needsValue || !!def.checks?.length; let typeAccessor; switch (type) { case "string": typeAccessor = generateStringCheck(doc, ctx, schema, accessor, buildsValue); break; case "number": typeAccessor = generateNumberCheck(doc, schema, accessor); break; case "boolean": typeAccessor = generateBooleanCheck(doc, accessor); break; case "bigint": typeAccessor = generateBigIntCheck(doc, schema, accessor); break; case "symbol": typeAccessor = generateSymbolCheck(doc, accessor); break; case "undefined": typeAccessor = generateUndefinedCheck(doc, accessor); break; case "null": typeAccessor = generateNullCheck(doc, accessor); break; case "any": case "unknown": typeAccessor = accessor; break; case "never": doc.write("return INVALID;"); typeAccessor = accessor; break; case "void": typeAccessor = generateVoidCheck(doc, accessor); break; case "nan": typeAccessor = generateNaNCheck(doc, accessor); break; case "date": typeAccessor = generateDateCheck(doc, accessor); break; case "object": typeAccessor = generateObjectCheck(doc, ctx, schema, accessor, buildsValue); break; case "optional": typeAccessor = generateOptionalCheck(doc, ctx, schema, accessor, buildsValue); break; case "nullable": typeAccessor = generateNullableCheck(doc, ctx, schema, accessor, buildsValue); break; case "array": typeAccessor = generateArrayCheck(doc, ctx, schema, accessor, buildsValue); break; case "literal": typeAccessor = generateLiteralCheck(doc, ctx, schema, accessor); break; case "enum": typeAccessor = generateEnumCheck(doc, ctx, schema, accessor); break; case "readonly": { const innerOut = generateWrapperCheck(doc, ctx, schema, accessor); const frozenVar = newVar(ctx); doc.write(`const ${frozenVar} = Object.freeze(${innerOut});`); typeAccessor = frozenVar; break; } case "success": generateWrapperCheck(doc, ctx, schema, accessor); typeAccessor = "true"; break; case "default": case "prefault": typeAccessor = generateDefaultCheck(doc, ctx, schema, accessor); break; case "nonoptional": typeAccessor = generateNonOptionalCheck(doc, ctx, schema, accessor); break; case "tuple": typeAccessor = generateTupleCheck(doc, ctx, schema, accessor); break; case "union": typeAccessor = generateUnionCheck(doc, ctx, schema, accessor); break; case "intersection": typeAccessor = generateIntersectionCheck(doc, ctx, schema, accessor); break; case "record": typeAccessor = generateRecordCheck(doc, ctx, schema, accessor); break; case "map": typeAccessor = generateMapCheck(doc, ctx, schema, accessor); break; case "set": typeAccessor = generateSetCheck(doc, ctx, schema, accessor); break; case "file": typeAccessor = generateFileCheck(doc, accessor); break; case "template_literal": typeAccessor = generateTemplateLiteralCheck(doc, ctx, schema, accessor); break; case "lazy": typeAccessor = generateLazyCheck(doc, ctx, schema, accessor); break; case "pipe": typeAccessor = generatePipeCheck(doc, ctx, schema, accessor); break; case "custom": typeAccessor = generateCustomCheck(doc, ctx, schema, accessor); break; case "transform": typeAccessor = generateTransformCheck(doc, ctx, schema, accessor); break; case "catch": typeAccessor = generateCatchCheck(doc, ctx, schema, accessor); break; default: { void type; throw new ZodCompileUnsupportedError(`schema type ${type}`); } } if (typeAccessor === null) return null; return generateChecks(doc, ctx, schema, typeAccessor); } function generateStringCheck(doc, ctx, schema, accessor, needsValue = true) { doc.write(`if (typeof ${accessor} !== "string") return INVALID;`); const def = schema._zod.def; if (def.format === void 0) return accessor; return generateStringFormatCheck(doc, ctx, def, accessor, needsValue); } function generateNumberCheck(doc, schema, accessor) { doc.write(`if (typeof ${accessor} !== "number" || !Number.isFinite(${accessor})) return INVALID;`); const def = schema._zod.def; if (def.check === "number_format" && def.format) { generateNumberFormatCheck(doc, { format: def.format }, accessor); } return accessor; } function generateBooleanCheck(doc, accessor) { doc.write(`if (typeof ${accessor} !== "boolean") return INVALID;`); return accessor; } function generateBigIntCheck(doc, schema, accessor) { doc.write(`if (typeof ${accessor} !== "bigint") return INVALID;`); const def = schema._zod.def; if (def.format) { switch (def.format) { case "int64": doc.write(`if (${accessor} < -9223372036854775808n || ${accessor} > 9223372036854775807n) return INVALID;`); break; case "uint64": doc.write(`if (${accessor} < 0n || ${accessor} > 18446744073709551615n) return INVALID;`); break; } } return accessor; } function generateSymbolCheck(doc, accessor) { doc.write(`if (typeof ${accessor} !== "symbol") return INVALID;`); return accessor; } function generateUndefinedCheck(doc, accessor) { doc.write(`if (${accessor} !== undefined) return INVALID;`); return accessor; } function generateNullCheck(doc, accessor) { doc.write(`if (${accessor} !== null) return INVALID;`); return accessor; } function generateVoidCheck(doc, accessor) { doc.write(`if (${accessor} !== undefined) return INVALID;`); return accessor; } function generateNaNCheck(doc, accessor) { doc.write(`if (typeof ${accessor} !== "number" || !Number.isNaN(${accessor})) return INVALID;`); return accessor; } function generateDateCheck(doc, accessor) { doc.write(`if (!(${accessor} instanceof Date) || Number.isNaN(${accessor}.getTime())) return INVALID;`); return accessor; } function generateObjectCheck(doc, ctx, schema, accessor, buildsValue = true) { const def = schema._zod.def; doc.write(`if (typeof ${accessor} !== "object" || ${accessor} === null || Array.isArray(${accessor})) return INVALID;`); const shape = def.shape; const keys = Object.keys(shape); const symbolKeys = Object.getOwnPropertySymbols(shape); const allKeys = symbolKeys.length ? [...keys, ...symbolKeys] : keys; const keyExpr = (k) => typeof k === "symbol" ? addConstant(ctx, k) : esc(k); const propKey = (k) => typeof k === "symbol" ? `[${keyExpr(k)}]` : esc(k); const propShape = shape; if (keys.includes("__proto__")) { throw new ZodCompileUnsupportedError('object shape key "__proto__"'); } const propOutputs = /* @__PURE__ */ new Map(); for (const key of allKeys) { const propSchema = propShape[key]; const kx = keyExpr(key); const inputVar = newVar(ctx); doc.write(`const ${inputVar} = ${accessor}[${kx}];`); if (propSchema._zod.optin !== void 0) { const outputVar2 = newVar(ctx); doc.write(`let ${outputVar2} = (() => {`); doc.indented((d) => { const outputAccessor = compileChild(d, ctx, propSchema, inputVar); d.write(`return ${outputAccessor};`); }); doc.write(`})();`); if (propSchema._zod.optout === "optional") { doc.write(`if (${outputVar2} === INVALID) {`); doc.indented((d) => { d.write(`if (${kx} in ${accessor}) return INVALID;`); d.write(`${outputVar2} = undefined;`); }); doc.write(`}`); } else { doc.write(`if (${outputVar2} === INVALID) return INVALID;`); } propOutputs.set(key, outputVar2); } else { if (requiresPresenceCheck(propSchema)) { doc.write(`if (!(${kx} in ${accessor})) return INVALID;`); } const outputAccessor = compileChild(doc, ctx, propSchema, inputVar, buildsValue); if (outputAccessor !== null) propOutputs.set(key, outputAccessor); } } const catchall = def.catchall; let unknownKeysMode = "none"; if (catchall) { const catchallType = catchall._zod.def.type; if (catchallType === "never") { const condition = keys.map((k) => `k !== ${esc(k)}`).join(" && ") || "true"; doc.write(`for (const k in ${accessor}) {`); doc.indented((d) => { d.write(`if (${condition}) return INVALID;`); }); doc.write(`}`); } else if ((catchallType === "unknown" || catchallType === "any") && !catchall._zod.def.checks?.length) { unknownKeysMode = "passthrough"; } else { unknownKeysMode = "schema"; } } const outputVar = newVar(ctx); const hasConditionalKeys = allKeys.some((k) => mayOmitUndefined(propShape[k]) || dropsWhenAbsent(propShape[k])); if (!buildsValue) { if (unknownKeysMode === "schema") { const knownSet = keys.length > 0 ? addConstant(ctx, new Set(keys)) : null; doc.write(`for (const k in ${accessor}) {`); doc.indented((d) => { d.write(`if (k === "__proto__") continue;`); if (knownSet) d.write(`if (${knownSet}.has(k)) continue;`); const valVar = newVar(ctx); d.write(`const ${valVar} = ${accessor}[k];`); compileChild(d, ctx, catchall, valVar, false); }); doc.write(`}`); } return null; } if (!hasConditionalKeys) { const propLiterals = allKeys.map((k) => `${propKey(k)}: ${propOutputs.get(k)}`).join(", "); doc.write(`const ${outputVar} = { ${propLiterals} };`); } else { doc.write(`const ${outputVar} = {};`); for (const k of allKeys) { const kx = keyExpr(k); const out = propOutputs.get(k); if (dropsWhenAbsent(propShape[k])) { doc.write(`if (${kx} in ${accessor}) ${outputVar}[${kx}] = ${out};`); } else if (mayOmitUndefined(propShape[k])) { doc.write(`if (${out} !== undefined || ${kx} in ${accessor}) ${outputVar}[${kx}] = ${out};`); } else { doc.write(`${outputVar}[${kx}] = ${out};`); } } } if (unknownKeysMode !== "none") { const knownSet = keys.length > 0 ? addConstant(ctx, new Set(keys)) : null; doc.write(`for (const k in ${accessor}) {`); doc.indented((d) => { d.write(`if (k === "__proto__") continue;`); if (knownSet) d.write(`if (${knownSet}.has(k)) continue;`); if (unknownKeysMode === "passthrough") { d.write(`${outputVar}[k] = ${accessor}[k];`); } else { const valVar = newVar(ctx); d.write(`const ${valVar} = ${accessor}[k];`); const catchallOut = compileChild(d, ctx, catchall, valVar); d.write(`${outputVar}[k] = ${catchallOut};`); } }); doc.write(`}`); } return outputVar; } function generateOptionalCheck(doc, ctx, schema, accessor, buildsValue = true) { const def = schema._zod.def; if (isExactOptional(schema)) { return generateCheck(doc, ctx, def.innerType, accessor, buildsValue); } if (def.innerType._zod.optin === "defaulted") { const outputVar2 = newVar(ctx); const branchVar = newVar(ctx); doc.write(`let ${outputVar2};`); doc.write(`if (${accessor} === undefined) {`); doc.indented((d) => { d.write(`const ${branchVar} = (() => {`); d.indented((d2) => { const innerOutput = generateCheck(d2, ctx, def.innerType, accessor); d2.write(`return ${innerOutput};`); }); d.write(`})();`); d.write(`if (${branchVar} !== INVALID) ${outputVar2} = ${branchVar};`); }); doc.write(`} else {`); doc.indented((d) => { const innerOutput = generateCheck(d, ctx, def.innerType, accessor); d.write(`${outputVar2} = ${innerOutput};`); }); doc.write(`}`); return outputVar2; } const outputVar = buildsValue ? newVar(ctx) : null; if (outputVar) doc.write(`let ${outputVar};`); doc.write(`if (${accessor} !== undefined) {`); doc.indented((d) => { const innerOutput = generateCheck(d, ctx, def.innerType, accessor, buildsValue); if (outputVar && innerOutput !== null) d.write(`${outputVar} = ${innerOutput};`); }); doc.write(`}`); return outputVar; } function isExactOptional(schema) { return schema._zod.traits?.has("$ZodExactOptional") === true; } function requiresPresenceCheck(schema) { return schema._zod.optin === void 0 && fastPathAcceptsAbsence(schema); } function fastPathAcceptsAbsence(schema) { if (schema._zod.def.coerce) return true; const def = schema._zod.def; switch (def.type) { case "any": case "unknown": case "undefined": case "void": case "default": case "prefault": case "transform": case "custom": case "lazy": return true; case "string": case "number": case "boolean": case "bigint": case "symbol": case "null": case "never": case "nan": case "date": case "object": case "array": case "tuple": case "record": case "map": case "set": case "file": case "template_literal": return false; case "nonoptional": return def.innerType ? fastPathAcceptsAbsence(def.innerType) : false; case "literal": return !!def.values?.includes(void 0); case "enum": return !!schema._zod.values?.has(void 0); case "optional": case "nullable": case "readonly": case "success": return def.innerType ? fastPathAcceptsAbsence(def.innerType) : true; case "catch": return true; case "union": return def.options ? def.options.some(fastPathAcceptsAbsence) : true; case "intersection": if (!def.left || !def.right) return true; return fastPathAcceptsAbsence(def.left) && fastPathAcceptsAbsence(def.right); case "pipe": return def.in ? fastPathAcceptsAbsence(def.in) : true; default: return true; } } function dropsWhenAbsent(schema) { return schema._zod.optin === "optional" && schema._zod.optout === "optional"; } function mayOmitUndefined(schema) { return (schema._zod.optin !== "defaulted" || schema._zod.optout === "optional") && mayOutputUndefined(schema); } function mayOutputUndefined(schema) { const def = schema._zod.def; switch (def.type) { case "string": case "number": case "boolean": case "bigint": case "symbol": case "null": case "nan": case "date": case "object": case "array": case "tuple": case "record": case "map": case "set": case "file": case "template_literal": case "never": case "success": return false; case "literal": return !!def.values?.includes(void 0); case "enum": return !!schema._zod.values?.has(void 0); case "optional": return true; case "nullable": case "readonly": case "nonoptional": return def.innerType ? mayOutputUndefined(def.innerType) : true; case "union": return def.options ? def.options.some(mayOutputUndefined) : true; case "intersection": return !def.left || !def.right || mayOutputUndefined(def.left) || mayOutputUndefined(def.right); case "pipe": return def.out ? mayOutputUndefined(def.out) : true; default: return true; } } function generateNullableCheck(doc, ctx, schema, accessor, buildsValue = true) { const def = schema._zod.def; const outputVar = buildsValue ? newVar(ctx) : null; if (outputVar) doc.write(`let ${outputVar} = null;`); doc.write(`if (${accessor} !== null) {`); doc.indented((d) => { const innerOutput = generateCheck(d, ctx, def.innerType, accessor, buildsValue); if (outputVar && innerOutput !== null) d.write(`${outputVar} = ${innerOutput};`); }); doc.write(`}`); return outputVar; } function generateArrayCheck(doc, ctx, schema, accessor, buildsValue = true) { const def = schema._zod.def; doc.write(`if (!Array.isArray(${accessor})) return INVALID;`); const outputVar = buildsValue ? newVar(ctx) : null; const iVar = newVar(ctx); const elemVar = newVar(ctx); if (outputVar) doc.write(`const ${outputVar} = new Array(${accessor}.length);`); doc.write(`for (let ${iVar} = 0; ${iVar} < ${accessor}.length; ${iVar}++) {`); doc.indented((d) => { d.write(`const ${elemVar} = ${accessor}[${iVar}];`); const elemOutput = compileChild(d, ctx, def.element, elemVar, buildsValue); if (outputVar && elemOutput !== null) d.write(`${outputVar}[${iVar}] = ${elemOutput};`); }); doc.write(`}`); return outputVar; } function generateLiteralCheck(doc, ctx, schema, accessor) { const def = schema._zod.def; const values = def.values; if (values.length !== 1) { const literalSet = addConstant(ctx, new Set(values)); doc.write(`if (!${literalSet}.has(${accessor})) return INVALID;`); return accessor; } const value = values[0]; if (typeof value === "number" && Number.isNaN(value)) { const literalSet = addConstant(ctx, new Set(values)); doc.write(`if (!${literalSet}.has(${accessor})) return INVALID;`); return accessor; } if (typeof value === "string") { doc.write(`if (${accessor} !== ${esc(value)}) return INVALID;`); } else if (typeof value === "number" || typeof value === "boolean") { doc.write(`if (${accessor} !== ${value}) return INVALID;`); } else if (value === null) { doc.write(`if (${accessor} !== null) return INVALID;`); } else if (value === void 0) { doc.write(`if (${accessor} !== undefined) return INVALID;`); } else if (typeof value === "bigint") { doc.write(`if (${accessor} !== ${value}n) return INVALID;`); } else { throw new ZodCompileUnsupportedError(`literal type ${typeof value}`); } return accessor; } function generateEnumCheck(doc, ctx, schema, accessor) { const values = schema._zod.values; if (!values) { throw new ZodCompileUnsupportedError("enum schema without enumerated values"); } const enumSet = addConstant(ctx, values); doc.write(`if (!${enumSet}.has(${accessor})) return INVALID;`); return accessor; } function generateWrapperCheck(doc, ctx, schema, accessor) { const def = schema._zod.def; return generateCheck(doc, ctx, def.innerType, accessor); } function generateDefaultCheck(doc, ctx, schema, accessor) { const def = schema._zod.def; const descriptor = Object.getOwnPropertyDescriptor(schema._zod.def, "defaultValue"); const defaultGetter = descriptor ? () => schema._zod.def.defaultValue : void 0; if (schema._zod.def.type === "prefault") { if (!defaultGetter) { return generateCheck(doc, ctx, def.innerType, accessor); } const defaultFn = addConstant(ctx, defaultGetter); const inputVar = newVar(ctx); doc.write(`let ${inputVar} = ${accessor};`); doc.write(`if (${accessor} === undefined) ${inputVar} = ${defaultFn}();`); return generateCheck(doc, ctx, def.innerType, inputVar); } const outputVar = newVar(ctx); if (defaultGetter) { const defaultFn = addConstant(ctx, defaultGetter); const cloneFn = addConstant(ctx, shallowClone); doc.write(`let ${outputVar};`); doc.write(`if (${accessor} === undefined) {`); doc.indented((d) => { d.write(`${outputVar} = ${cloneFn}(${defaultFn}());`); }); doc.write(`} else {`); doc.indented((d) => { const innerOutput = generateCheck(d, ctx, def.innerType, accessor); d.write(`${outputVar} = ${innerOutput} === undefined ? ${cloneFn}(${defaultFn}()) : ${innerOutput};`); }); doc.write(`}`); } else { doc.write(`let ${outputVar};`); doc.write(`if (${accessor} !== undefined) {`); doc.indented((d) => { const innerOutput = generateCheck(d, ctx, def.innerType, accessor); d.write(`${outputVar} = ${innerOutput};`); }); doc.write(`}`); } return outputVar; } function generateNonOptionalCheck(doc, ctx, schema, accessor) { const def = schema._zod.def; const innerOutput = generateCheck(doc, ctx, def.innerType, accessor); const outputVar = newVar(ctx); doc.write(`const ${outputVar} = ${innerOutput};`); doc.write(`if (${outputVar} === undefined) return INVALID;`); return outputVar; } function generateTupleCheck(doc, ctx, schema, accessor) { const def = schema._zod.def; const items = def.items; const rest = def.rest; doc.write(`if (!Array.isArray(${accessor})) return INVALID;`); const optinStart = getTupleOptStart2(items, "optin"); const optoutStart = getTupleOptStart2(items, "optout"); if (rest) { doc.write(`if (${accessor}.length < ${optinStart}) return INVALID;`); } else { doc.write(`if (${accessor}.length < ${optinStart} || ${accessor}.length > ${items.length}) return INVALID;`); } const outputVar = newVar(ctx); doc.write(`const ${outputVar} = [];`); for (let i = 0; i < items.length; i++) { const itemSchema = items[i]; if (i >= optoutStart) { doc.write(`if (${outputVar}.length === ${i}) {`); doc.indented((d) => { d.write(`if (${i} < ${accessor}.length) {`); d.indented((d2) => { const elemVar = newVar(ctx); d2.write(`const ${elemVar} = ${accessor}[${i}];`); const elemOutput = compileChild(d2, ctx, itemSchema, elemVar); d2.write(`${outputVar}[${i}] = ${elemOutput};`); }); d.write(`} else {`); d.indented((d2) => { if (dropsWhenAbsent(itemSchema)) { d2.write(`${outputVar}.length = ${i};`); return; } const elemVar = newVar(ctx); const branchVar = newVar(ctx); d2.write(`const ${elemVar} = undefined;`); d2.write(`const ${branchVar} = (() => {`); d2.indented((d3) => { const elemOutput = compileChild(d3, ctx, itemSchema, elemVar); d3.write(`return ${elemOutput};`); }); d2.write(`})();`); d2.write(`if (${branchVar} === INVALID || ${branchVar} === undefined) ${outputVar}.length = ${i};`); d2.write(`else ${outputVar}[${i}] = ${branchVar};`); }); d.write(`}`); }); doc.write(`}`); } else { const elemVar = newVar(ctx); doc.write(`const ${elemVar} = ${accessor}[${i}];`); const elemOutput = compileChild(doc, ctx, itemSchema, elemVar); doc.write(`${outputVar}[${i}] = ${elemOutput};`); } } if (rest) { const iVar = newVar(ctx); const elemVar = newVar(ctx); doc.write(`for (let ${iVar} = ${items.length}; ${iVar} < ${accessor}.length; ${iVar}++) {`); doc.indented((d) => { d.write(`const ${elemVar} = ${accessor}[${iVar}];`); const elemOutput = compileChild(d, ctx, rest, elemVar); d.write(`${outputVar}[${iVar}] = ${elemOutput};`); }); doc.write(`}`); } return outputVar; } function getTupleOptStart2(items, key) { for (let i = items.length - 1; i >= 0; i--) { const omittable = key === "optin" ? items[i]._zod.optin !== void 0 : items[i]._zod.optout === "optional"; if (!omittable) return i + 1; } return 0; } function generateUnionCheck(doc, ctx, schema, accessor) { const def = schema._zod.def; const options = def.options; if (def.discriminator) { return generateDiscriminatedUnionCheck(doc, ctx, def, accessor); } if (def.inclusive === false) { throw new ZodCompileUnsupportedError("exclusive unions (z.xor)"); } if (options.length === 0) { doc.write("return INVALID;"); return accessor; } if (options.length === 1) { return generateCheck(doc, ctx, options[0], accessor); } const allLiterals = options.every((opt) => opt._zod.def.type === "literal" && !opt._zod.def.checks?.length); if (allLiterals) { const values = new Set(options.flatMap((opt) => opt._zod.def.values)); const valuesConst = addConstant(ctx, values); doc.write(`if (!${valuesConst}.has(${accessor})) return INVALID;`); return accessor; } const outputVar = newVar(ctx); doc.write(`let ${outputVar};`); for (let i = 0; i < options.length; i++) { const opt = options[i]; if (i === 0) { doc.write(`${outputVar} = (() => {`); } else { doc.write(`if (${outputVar} === INVALID) ${outputVar} = (() => {`); } doc.indented((d) => { const branchOutput = generateCheck(d, ctx, opt, accessor); d.write(`return ${branchOutput};`); }); doc.write(`})();`); } doc.write(`if (${outputVar} === INVALID) return INVALID;`); return outputVar; } function generateDiscriminatedUnionCheck(doc, ctx, def, accessor) { if (def.unionFallback) { throw new ZodCompileUnsupportedError("discriminated union with unionFallback"); } if (def.options.length === 0) { doc.write("return INVALID;"); return accessor; } const discVar = newVar(ctx); const outputVar = newVar(ctx); doc.write(`const ${discVar} = ${accessor}?.[${esc(def.discriminator)}];`); doc.write(`let ${outputVar};`); let firstBranch = true; const claimed = /* @__PURE__ */ new Set(); for (const option of def.options) { const values = option._zod.propValues?.[def.discriminator]; if (!values || values.size === 0) { throw new ZodCompileUnsupportedError("discriminated union option without static discriminator values"); } for (const value of values) { if (claimed.has(value)) { throw new ZodCompileUnsupportedError(`duplicate discriminator value ${String(value)}`); } claimed.add(value); } const conditions = Array.from(values, (value) => literalEquality(ctx, discVar, value)); const prefix = firstBranch ? "if" : "else if"; doc.write(`${prefix} (${conditions.join(" || ")}) {`); doc.indented((d) => { const branchOutput = generateCheck(d, ctx, option, accessor); d.write(`${outputVar} = ${branchOutput};`); }); doc.write(`}`); firstBranch = false; } doc.write(`else { return INVALID; }`); return outputVar; } function literalEquality(ctx, accessor, value) { if (typeof value === "string") return `${accessor} === ${esc(value)}`; if (typeof value === "number") { if (Number.isNaN(value)) return `Number.isNaN(${accessor})`; return `${accessor} === ${value}`; } if (typeof value === "boolean") return `${accessor} === ${value}`; if (value === null) return `${accessor} === null`; if (value === void 0) return `${accessor} === undefined`; if (typeof value === "bigint") return `${accessor} === ${value}n`; if (typeof value === "symbol") { const symbolConst = addConstant(ctx, value); return `${accessor} === ${symbolConst}`; } throw new ZodCompileUnsupportedError(`literal discriminator value ${String(value)}`); } function generateIntersectionCheck(doc, ctx, schema, accessor) { const def = schema._zod.def; ctx.definite = false; const leftOutput = compileChild(doc, ctx, def.left, accessor); const rightOutput = compileChild(doc, ctx, def.right, accessor); const mergeConst = addConstant(ctx, mergeValues); const mergedVar = newVar(ctx); doc.write(`const ${mergedVar} = ${mergeConst}(${leftOutput}, ${rightOutput});`); doc.write(`if (!${mergedVar}.valid) return INVALID;`); return `${mergedVar}.data`; } function generateRecordCheck(doc, ctx, schema, accessor) { const def = schema._zod.def; const isPlainObjectConst = addConstant(ctx, isPlainObject); doc.write(`if (!${isPlainObjectConst}(${accessor})) return INVALID;`); const outputVar = newVar(ctx); const kVar = newVar(ctx); const valVar = newVar(ctx); doc.write(`const ${outputVar} = {};`); const recordDef = def; const keyValues = recordDef.partial ? void 0 : def.keyType._zod.values; if (keyValues) { const inputKeys = []; for (const key of keyValues) { if (!(typeof key === "string" || typeof key === "number" || typeof key === "symbol")) { throw new ZodCompileUnsupportedError(`record key value ${String(key)}`); } const inputKey = typeof key === "number" ? key.toString() : key; if (inputKey === "__proto__") { throw new ZodCompileUnsupportedError('record key "__proto__"'); } inputKeys.push(inputKey); const keyConst = addConstant(ctx, key); const outKey = generateCheck(doc, ctx, def.keyType, keyConst); const valueVar = newVar(ctx); doc.write(`const ${valueVar} = ${accessor}[${literalPropertyKey(ctx, inputKey)}];`); const valOutput = compileChild(doc, ctx, def.valueType, valueVar); doc.write(`${outputVar}[${outKey}] = ${valOutput};`); } const knownKeysConst = addConstant(ctx, new Set(inputKeys)); doc.write(`for (const ${kVar} in ${accessor}) {`); doc.indented((d) => { d.write(`if (${knownKeysConst}.has(${kVar})) continue;`); if (recordDef.mode === "loose") { d.write(`if (${kVar} !== "__proto__") ${outputVar}[${kVar}] = ${accessor}[${kVar}];`); } else { d.write(`return INVALID;`); } }); doc.write(`}`); return outputVar; } const keyDef = def.keyType._zod.def; const keyIsBareString = keyDef.type === "string" && keyDef.format === void 0 && !keyDef.coerce && (keyDef.checks?.length ?? 0) === 0; if (!keyIsBareString) { const isLoose = def.mode === "loose"; const keyFn = compileFn(def.keyType); if (keyFn.definite === false) ctx.definite = false; const keyFast = addConstant(ctx, keyFn); const numericConst = addConstant(ctx, number); const outKeyVar = newVar(ctx); emitOwnKeys(doc, ctx, accessor, kVar, (d) => { d.write(`let ${outKeyVar} = ${keyFast}(${kVar});`); d.write(`if (${outKeyVar} === INVALID && typeof ${kVar} === "string" && ${numericConst}.test(${kVar})) ${outKeyVar} = ${keyFast}(Number(${kVar}));`); if (isLoose) { d.write(`if (${outKeyVar} === INVALID) { ${outputVar}[${kVar}] = ${accessor}[${kVar}]; continue; }`); } else { d.write(`if (${outKeyVar} === INVALID) return INVALID;`); } d.write(`if (${outKeyVar} === "__proto__") continue;`); const valueVar = newVar(ctx); d.write(`const ${valueVar} = ${accessor}[${kVar}];`); const valOutput = compileChild(d, ctx, def.valueType, valueVar); d.write(`${outputVar}[${outKeyVar}] = ${valOutput};`); }); return outputVar; } emitOwnKeys(doc, ctx, accessor, kVar, (d) => { d.write(`const ${valVar} = ${accessor}[${kVar}];`); const valOutput = compileChild(d, ctx, def.valueType, valVar); d.write(`${outputVar}[${kVar}] = ${valOutput};`); }, `return INVALID;`); return outputVar; } function emitOwnKeys(doc, ctx, accessor, kVar, body, onSymbol) { const propIsEnumerableConst = addConstant(ctx, Object.prototype.propertyIsEnumerable); const symsVar = newVar(ctx); const keysVar = newVar(ctx); const iVar = newVar(ctx); doc.write(`const ${symsVar} = Object.getOwnPropertySymbols(${accessor});`); doc.write(`const ${keysVar} = Object.getOwnPropertyNames(${accessor});`); doc.write(`for (let ${iVar} = 0; ${iVar} < ${keysVar}.length; ${iVar}++) {`); doc.indented((d) => { d.write(`const ${kVar} = ${keysVar}[${iVar}];`); d.write(`if (${kVar} === "__proto__" || !${propIsEnumerableConst}.call(${accessor}, ${kVar})) continue;`); body(d); }); doc.write(`}`); doc.write(`for (let ${iVar} = 0; ${iVar} < ${symsVar}.length; ${iVar}++) {`); doc.indented((d) => { d.write(`const ${kVar} = ${symsVar}[${iVar}];`); d.write(`if (!${propIsEnumerableConst}.call(${accessor}, ${kVar})) continue;`); if (onSymbol) d.write(onSymbol); else body(d); }); doc.write(`}`); } function literalPropertyKey(ctx, key) { if (typeof key === "string") return esc(key); return addConstant(ctx, key); } function generateMapCheck(doc, ctx, schema, accessor) { const def = schema._zod.def; doc.write(`if (!(${accessor} instanceof Map)) return INVALID;`); const outputVar = newVar(ctx); const kVar = newVar(ctx); const valVar = newVar(ctx); doc.write(`const ${outputVar} = new Map();`); doc.write(`for (const [${kVar}, ${valVar}] of ${accessor}) {`); doc.indented((d) => { const keyOutput = generateCheck(d, ctx, def.keyType, kVar); const valOutput = generateCheck(d, ctx, def.valueType, valVar); d.write(`${outputVar}.set(${keyOutput}, ${valOutput});`); }); doc.write(`}`); return outputVar; } function generateSetCheck(doc, ctx, schema, accessor) { const def = schema._zod.def; doc.write(`if (!(${accessor} instanceof Set)) return INVALID;`); const outputVar = newVar(ctx); const valVar = newVar(ctx); doc.write(`const ${outputVar} = new Set();`); doc.write(`for (const ${valVar} of ${accessor}) {`); doc.indented((d) => { const valOutput = generateCheck(d, ctx, def.valueType, valVar); d.write(`${outputVar}.add(${valOutput});`); }); doc.write(`}`); return outputVar; } function generateFileCheck(doc, accessor) { doc.write(`if (!(${accessor} instanceof File)) return INVALID;`); return accessor; } function generateTemplateLiteralCheck(doc, ctx, schema, accessor) { doc.write(`if (typeof ${accessor} !== "string") return INVALID;`); const pattern = schema._zod.pattern; if (pattern) { const patternConst = addConstant(ctx, pattern); doc.write(`${patternConst}.lastIndex = 0;`); doc.write(`if (!${patternConst}.test(${accessor})) return INVALID;`); } return accessor; } function generateLazyCheck(doc, ctx, schema, accessor) { const def = schema._zod.def; const getterConst = addUserConstant(ctx, def.getter); const cacheConst = addConstant(ctx, { parser: null }); doc.write(`if (!${cacheConst}.parser) {`); doc.indented((d) => { d.write(`const inner = ${getterConst}();`); d.write(`${cacheConst}.parser = function(input) {`); d.indented((d2) => { d2.write(`const result = inner._zod.run({ value: input, issues: [] }, {});`); d2.write(`return result.issues.length === 0 ? result.value : INVALID;`); }); d.write(`};`); }); doc.write(`}`); const outputVar = newVar(ctx); doc.write(`const ${outputVar} = ${cacheConst}.parser(${accessor});`); doc.write(`if (${outputVar} === INVALID) return INVALID;`); return outputVar; } function generatePipeCheck(doc, ctx, schema, accessor) { const def = schema._zod.def; const inputOutput = generateCheck(doc, ctx, def.in, accessor); if (def.transform) { if (isAsyncFunction(def.transform)) { throw new ZodCompileAsyncError("z.compile: async transforms in pipes are not supported"); } const transformFn = def.transform; const helperFn = (value) => { const fakePayload = { value, issues: [], addIssue: pushIssue }; const result = transformFn(value, fakePayload); if (result instanceof Promise) return INVALID; return fakePayload.issues.length === 0 ? result : INVALID; }; const helperConst = addUserConstant(ctx, helperFn); const transformedVar = newVar(ctx); doc.write(`const ${transformedVar} = ${helperConst}(${inputOutput});`); doc.write(`if (${transformedVar} === INVALID) return INVALID;`); return generateCheck(doc, ctx, def.out, transformedVar); } else { return generateCheck(doc, ctx, def.out, inputOutput); } } function isAsyncFunction(fn) { return typeof fn === "function" && (fn.constructor.name === "AsyncFunction" || fn[Symbol.toStringTag] === "AsyncFunction"); } function generateCustomCheck(doc, ctx, schema, accessor) { const def = schema._zod.def; if (def.fn) { if (isAsyncFunction(def.fn)) { throw new ZodCompileAsyncError("z.compile: async custom predicates are not supported"); } const fnConst = addUserConstant(ctx, def.fn); const throwAsyncConst = addConstant(ctx, throwAsync); const resVar = newVar(ctx); doc.write(`const ${resVar} = ${fnConst}(${accessor});`); doc.write(`if (${resVar} instanceof Promise) ${throwAsyncConst}();`); doc.write(`if (!${resVar}) return INVALID;`); } else { throw new ZodCompileUnsupportedError("custom schema without a predicate function"); } return accessor; } function runtimeCatch(innerSchema, catchValue, value) { const result = innerSchema._zod.run({ value, issues: [] }, {}); if (result && typeof result.then === "function") return INVALID; const r = result; if (r.issues.length === 0) return r.value; return catchValue(); } function generateCatchCheck(doc, ctx, schema, accessor) { const def = schema._zod.def; if (!def.catchValue[CONSTANT_CATCH]) { throw new ZodCompileUnsupportedError("catch with a callback (only a constant catch value compiles)", false); } const outputVar = newVar(ctx); doc.write(`let ${outputVar} = (() => {`); doc.indented((d) => { const innerOut = compileChild(d, ctx, def.innerType, accessor); d.write(`return ${innerOut};`); }); doc.write(`})();`); const innerConst = addConstant(ctx, def.innerType); const catchConst = addUserConstant(ctx, def.catchValue); const catchHelperConst = addConstant(ctx, runtimeCatch); doc.write(`if (${outputVar} === INVALID) {`); doc.indented((d) => { d.write(`${outputVar} = ${catchHelperConst}(${innerConst}, ${catchConst}, ${accessor});`); d.write(`if (${outputVar} === INVALID) return INVALID;`); }); doc.write(`}`); return outputVar; } function generateTransformCheck(doc, ctx, schema, accessor) { const def = schema._zod.def; if (def.transform) { if (isAsyncFunction(def.transform)) { throw new ZodCompileAsyncError("z.compile: async transforms are not supported"); } const transformFn = def.transform; const helperFn = (value) => { const fakePayload = { value, issues: [], addIssue: pushIssue }; const result = transformFn(value, fakePayload); if (result instanceof Promise) return INVALID; return fakePayload.issues.length === 0 ? result : INVALID; }; const helperConst = addUserConstant(ctx, helperFn); const outputVar = newVar(ctx); doc.write(`const ${outputVar} = ${helperConst}(${accessor});`); doc.write(`if (${outputVar} === INVALID) return INVALID;`); return outputVar; } return accessor; } // ../../../../node_modules/zod/v4/core/api.js function snapshotChecks(def) { if (def.checks) def.checks = [...def.checks]; return def; } // @__NO_SIDE_EFFECTS__ function _string(Class2, params) { return new Class2(snapshotChecks({ type: "string", ...normalizeParams(params) })); } // @__NO_SIDE_EFFECTS__ function _coercedString(Class2, params) { return new Class2(snapshotChecks({ type: "string", coerce: true, ...normalizeParams(params) })); } // @__NO_SIDE_EFFECTS__ function _email(Class2, params) { return new Class2({ type: "string", format: "email", check: "string_format", abort: false, ...normalizeParams(params) }); } // @__NO_SIDE_EFFECTS__ function _guid(Class2, params) { return new Class2({ type: "string", format: "guid", check: "string_format", abort: false, ...normalizeParams(params) }); } // @__NO_SIDE_EFFECTS__ function _uuid(Class2, params) { return new Class2({ type: "string", format: "uuid", check: "string_format", abort: false, ...normalizeParams(params) }); } // @__NO_SIDE_EFFECTS__ function _uuidv4(Class2, params) { return new Class2({ type: "string", format: "uuid", check: "string_format", abort: false, version: "v4", ...normalizeParams(params) }); } // @__NO_SIDE_EFFECTS__ function _uuidv6(Class2, params) { return new Class2({ type: "string", format: "uuid", check: "string_format", abort: false, version: "v6", ...normalizeParams(params) }); } // @__NO_SIDE_EFFECTS__ function _uuidv7(Class2, params) { return new Class2({ type: "string", format: "uuid", check: "string_format", abort: false, version: "v7", ...normalizeParams(params) }); } // @__NO_SIDE_EFFECTS__ function _url(Class2, params) { return new Class2({ type: "string", format: "url", check: "string_format", abort: false, ...normalizeParams(params) }); } // @__NO_SIDE_EFFECTS__ function _emoji2(Class2, params) { return new Class2({ type: "string", format: "emoji", check: "string_format", abort: false, ...normalizeParams(params) }); } // @__NO_SIDE_EFFECTS__ function _nanoid(Class2, params) { return new Class2({ type: "string", format: "nanoid", check: "string_format", abort: false, ...normalizeParams(params) }); } // @__NO_SIDE_EFFECTS__ function _cuid(Class2, params) { return new Class2({ type: "string", format: "cuid", check: "string_format", abort: false, ...normalizeParams(params) }); } // @__NO_SIDE_EFFECTS__ function _cuid2(Class2, params) { return new Class2({ type: "string", format: "cuid2", check: "string_format", abort: false, ...normalizeParams(params) }); } // @__NO_SIDE_EFFECTS__ function _ulid(Class2, params) { return new Class2({ type: "string", format: "ulid", check: "string_format", abort: false, ...normalizeParams(params) }); } // @__NO_SIDE_EFFECTS__ function _xid(Class2, params) { return new Class2({ type: "string", format: "xid", check: "string_format", abort: false, ...normalizeParams(params) }); } // @__NO_SIDE_EFFECTS__ function _ksuid(Class2, params) { return new Class2({ type: "string", format: "ksuid", check: "string_format", abort: false, ...normalizeParams(params) }); } // @__NO_SIDE_EFFECTS__ function _ipv4(Class2, params) { return new Class2({ type: "string", format: "ipv4", check: "string_format", abort: false, ...normalizeParams(params) }); } // @__NO_SIDE_EFFECTS__ function _ipv6(Class2, params) { return new Class2({ type: "string", format: "ipv6", check: "string_format", abort: false, ...normalizeParams(params) }); } // @__NO_SIDE_EFFECTS__ function _mac(Class2, params) { return new Class2({ type: "string", format: "mac", check: "string_format", abort: false, ...normalizeParams(params) }); } // @__NO_SIDE_EFFECTS__ function _cidrv4(Class2, params) { return new Class2({ type: "string", format: "cidrv4", check: "string_format", abort: false, ...normalizeParams(params) }); } // @__NO_SIDE_EFFECTS__ function _cidrv6(Class2, params) { return new Class2({ type: "string", format: "cidrv6", check: "string_format", abort: false, ...normalizeParams(params) }); } // @__NO_SIDE_EFFECTS__ function _base64(Class2, params) { return new Class2({ type: "string", format: "base64", check: "string_format", abort: false, ...normalizeParams(params) }); } // @__NO_SIDE_EFFECTS__ function _base64url(Class2, params) { return new Class2({ type: "string", format: "base64url", check: "string_format", abort: false, ...normalizeParams(params) }); } // @__NO_SIDE_EFFECTS__ function _e164(Class2, params) { return new Class2({ type: "string", format: "e164", check: "string_format", abort: false, ...normalizeParams(params) }); } // @__NO_SIDE_EFFECTS__ function _creditCard(Class2, params) { return new Class2({ type: "string", format: "credit_card", check: "string_format", abort: false, ...normalizeParams(params) }); } // @__NO_SIDE_EFFECTS__ function _iban(Class2, params) { return new Class2({ type: "string", format: "iban", check: "string_format", abort: false, ...normalizeParams(params) }); } // @__NO_SIDE_EFFECTS__ function _jwt(Class2, params) { return new Class2({ type: "string", format: "jwt", check: "string_format", abort: false, ...normalizeParams(params) }); } var TimePrecision = { Any: null, Minute: -1, Second: 0, Millisecond: 3, Microsecond: 6 }; // @__NO_SIDE_EFFECTS__ function _isoDateTime(Class2, params) { return new Class2({ type: "string", format: "datetime", check: "string_format", offset: false, local: false, precision: null, ...normalizeParams(params) }); } // @__NO_SIDE_EFFECTS__ function _isoDate(Class2, params) { return new Class2({ type: "string", format: "date", check: "string_format", ...normalizeParams(params) }); } // @__NO_SIDE_EFFECTS__ function _isoTime(Class2, params) { return new Class2({ type: "string", format: "time", check: "string_format", precision: null, ...normalizeParams(params) }); } // @__NO_SIDE_EFFECTS__ function _isoDuration(Class2, params) { return new Class2({ type: "string", format: "duration", check: "string_format", ...normalizeParams(params) }); } // @__NO_SIDE_EFFECTS__ function _number(Class2, params) { return new Class2(snapshotChecks({ type: "number", checks: [], ...normalizeParams(params) })); } // @__NO_SIDE_EFFECTS__ function _coercedNumber(Class2, params) { return new Class2(snapshotChecks({ type: "number", coerce: true, checks: [], ...normalizeParams(params) })); } // @__NO_SIDE_EFFECTS__ function _int(Class2, params) { return new Class2({ type: "number", check: "number_format", abort: false, format: "safeint", ...normalizeParams(params) }); } // @__NO_SIDE_EFFECTS__ function _float32(Class2, params) { return new Class2({ type: "number", check: "number_format", abort: false, format: "float32", ...normalizeParams(params) }); } // @__NO_SIDE_EFFECTS__ function _float64(Class2, params) { return new Class2({ type: "number", check: "number_format", abort: false, format: "float64", ...normalizeParams(params) }); } // @__NO_SIDE_EFFECTS__ function _int32(Class2, params) { return new Class2({ type: "number", check: "number_format", abort: false, format: "int32", ...normalizeParams(params) }); } // @__NO_SIDE_EFFECTS__ function _uint32(Class2, params) { return new Class2({ type: "number", check: "number_format", abort: false, format: "uint32", ...normalizeParams(params) }); } // @__NO_SIDE_EFFECTS__ function _boolean(Class2, params) { return new Class2({ type: "boolean", ...normalizeParams(params) }); } // @__NO_SIDE_EFFECTS__ function _coercedBoolean(Class2, params) { return new Class2({ type: "boolean", coerce: true, ...normalizeParams(params) }); } // @__NO_SIDE_EFFECTS__ function _bigint(Class2, params) { return new Class2({ type: "bigint", ...normalizeParams(params) }); } // @__NO_SIDE_EFFECTS__ function _coercedBigint(Class2, params) { return new Class2({ type: "bigint", coerce: true, ...normalizeParams(params) }); } // @__NO_SIDE_EFFECTS__ function _int64(Class2, params) { return new Class2({ type: "bigint", check: "bigint_format", abort: false, format: "int64", ...normalizeParams(params) }); } // @__NO_SIDE_EFFECTS__ function _uint64(Class2, params) { return new Class2({ type: "bigint", check: "bigint_format", abort: false, format: "uint64", ...normalizeParams(params) }); } // @__NO_SIDE_EFFECTS__ function _symbol(Class2, params) { return new Class2({ type: "symbol", ...normalizeParams(params) }); } // @__NO_SIDE_EFFECTS__ function _undefined2(Class2, params) { return new Class2({ type: "undefined", ...normalizeParams(params) }); } // @__NO_SIDE_EFFECTS__ function _null2(Class2, params) { return new Class2({ type: "null", ...normalizeParams(params) }); } // @__NO_SIDE_EFFECTS__ function _any(Class2) { return new Class2({ type: "any" }); } // @__NO_SIDE_EFFECTS__ function _unknown(Class2) { return new Class2({ type: "unknown" }); } // @__NO_SIDE_EFFECTS__ function _never(Class2, params) { return new Class2({ type: "never", ...normalizeParams(params) }); } // @__NO_SIDE_EFFECTS__ function _void(Class2, params) { return new Class2({ type: "void", ...normalizeParams(params) }); } // @__NO_SIDE_EFFECTS__ function _date(Class2, params) { return new Class2({ type: "date", ...normalizeParams(params) }); } // @__NO_SIDE_EFFECTS__ function _coercedDate(Class2, params) { return new Class2({ type: "date", coerce: true, ...normalizeParams(params) }); } // @__NO_SIDE_EFFECTS__ function _nan(Class2, params) { return new Class2({ type: "nan", ...normalizeParams(params) }); } // @__NO_SIDE_EFFECTS__ function _lt(value, params) { return new $ZodCheckLessThan({ check: "less_than", ...normalizeParams(params), value, inclusive: false }); } // @__NO_SIDE_EFFECTS__ function _lte(value, params) { return new $ZodCheckLessThan({ check: "less_than", ...normalizeParams(params), value, inclusive: true }); } // @__NO_SIDE_EFFECTS__ function _gt(value, params) { return new $ZodCheckGreaterThan({ check: "greater_than", ...normalizeParams(params), value, inclusive: false }); } // @__NO_SIDE_EFFECTS__ function _gte(value, params) { return new $ZodCheckGreaterThan({ check: "greater_than", ...normalizeParams(params), value, inclusive: true }); } // @__NO_SIDE_EFFECTS__ function _positive(params) { return /* @__PURE__ */ _gt(0, params); } // @__NO_SIDE_EFFECTS__ function _negative(params) { return /* @__PURE__ */ _lt(0, params); } // @__NO_SIDE_EFFECTS__ function _nonpositive(params) { return /* @__PURE__ */ _lte(0, params); } // @__NO_SIDE_EFFECTS__ function _nonnegative(params) { return /* @__PURE__ */ _gte(0, params); } // @__NO_SIDE_EFFECTS__ function _multipleOf(value, params) { return new $ZodCheckMultipleOf({ check: "multiple_of", ...normalizeParams(params), value }); } // @__NO_SIDE_EFFECTS__ function _maxSize(maximum, params) { return new $ZodCheckMaxSize({ check: "max_size", ...normalizeParams(params), maximum }); } // @__NO_SIDE_EFFECTS__ function _minSize(minimum, params) { return new $ZodCheckMinSize({ check: "min_size", ...normalizeParams(params), minimum }); } // @__NO_SIDE_EFFECTS__ function _size(size, params) { return new $ZodCheckSizeEquals({ check: "size_equals", ...normalizeParams(params), size }); } // @__NO_SIDE_EFFECTS__ function _maxLength(maximum, params) { const ch = new $ZodCheckMaxLength({ check: "max_length", ...normalizeParams(params), maximum }); return ch; } // @__NO_SIDE_EFFECTS__ function _minLength(minimum, params) { return new $ZodCheckMinLength({ check: "min_length", ...normalizeParams(params), minimum }); } // @__NO_SIDE_EFFECTS__ function _length(length, params) { return new $ZodCheckLengthEquals({ check: "length_equals", ...normalizeParams(params), length }); } // @__NO_SIDE_EFFECTS__ function _regex(pattern, params) { return new $ZodCheckRegex({ check: "string_format", format: "regex", ...normalizeParams(params), pattern }); } // @__NO_SIDE_EFFECTS__ function _lowercase(params) { return new $ZodCheckLowerCase({ check: "string_format", format: "lowercase", ...normalizeParams(params) }); } // @__NO_SIDE_EFFECTS__ function _uppercase(params) { return new $ZodCheckUpperCase({ check: "string_format", format: "uppercase", ...normalizeParams(params) }); } // @__NO_SIDE_EFFECTS__ function _includes(includes, params) { return new $ZodCheckIncludes({ check: "string_format", format: "includes", ...normalizeParams(params), includes }); } // @__NO_SIDE_EFFECTS__ function _startsWith(prefix, params) { return new $ZodCheckStartsWith({ check: "string_format", format: "starts_with", ...normalizeParams(params), prefix }); } // @__NO_SIDE_EFFECTS__ function _endsWith(suffix, params) { return new $ZodCheckEndsWith({ check: "string_format", format: "ends_with", ...normalizeParams(params), suffix }); } // @__NO_SIDE_EFFECTS__ function _property(property, schema, params) { return new $ZodCheckProperty({ check: "property", property, schema, ...normalizeParams(params) }); } // @__NO_SIDE_EFFECTS__ function _properties(shape, params) { return new $ZodCheckProperties({ check: "properties", shape, ...normalizeParams(params) }); } // @__NO_SIDE_EFFECTS__ function _mime(types, params) { return new $ZodCheckMimeType({ check: "mime_type", mime: types, ...normalizeParams(params) }); } // @__NO_SIDE_EFFECTS__ function _overwrite(tx) { return new $ZodCheckOverwrite({ check: "overwrite", tx }); } // @__NO_SIDE_EFFECTS__ function _normalize(form) { return /* @__PURE__ */ _overwrite((input2) => input2.normalize(form)); } // @__NO_SIDE_EFFECTS__ function _trim() { return /* @__PURE__ */ _overwrite((input2) => input2.trim()); } // @__NO_SIDE_EFFECTS__ function _toLowerCase() { return /* @__PURE__ */ _overwrite((input2) => input2.toLowerCase()); } // @__NO_SIDE_EFFECTS__ function _toUpperCase() { return /* @__PURE__ */ _overwrite((input2) => input2.toUpperCase()); } // @__NO_SIDE_EFFECTS__ function _slugify() { return /* @__PURE__ */ _overwrite((input2) => slugify(input2)); } // @__NO_SIDE_EFFECTS__ function _array(Class2, element, params) { return new Class2({ type: "array", element, // get element() { // return element; // }, ...normalizeParams(params) }); } // @__NO_SIDE_EFFECTS__ function _union(Class2, options, params) { return new Class2({ type: "union", options, ...normalizeParams(params) }); } function _xor(Class2, options, params) { return new Class2({ type: "union", options, inclusive: false, ...normalizeParams(params) }); } // @__NO_SIDE_EFFECTS__ function _discriminatedUnion(Class2, discriminator, options, params) { return new Class2({ type: "union", options, discriminator, ...normalizeParams(params) }); } // @__NO_SIDE_EFFECTS__ function _intersection(Class2, left, right) { return new Class2({ type: "intersection", left, right }); } // @__NO_SIDE_EFFECTS__ function _tuple(Class2, items, _paramsOrRest, _params) { const hasRest = _paramsOrRest instanceof $ZodType; const params = hasRest ? _params : _paramsOrRest; const rest = hasRest ? _paramsOrRest : null; return new Class2({ type: "tuple", items, rest, ...normalizeParams(params) }); } // @__NO_SIDE_EFFECTS__ function _record(Class2, keyType, valueType, params) { return new Class2({ type: "record", keyType, valueType, ...normalizeParams(params) }); } // @__NO_SIDE_EFFECTS__ function _map(Class2, keyType, valueType, params) { return new Class2({ type: "map", keyType, valueType, ...normalizeParams(params) }); } // @__NO_SIDE_EFFECTS__ function _set(Class2, valueType, params) { return new Class2({ type: "set", valueType, ...normalizeParams(params) }); } // @__NO_SIDE_EFFECTS__ function _enum(Class2, values, params) { const entries = Array.isArray(values) ? Object.fromEntries(values.map((v) => [v, v])) : values; return new Class2({ type: "enum", entries, ...normalizeParams(params) }); } // @__NO_SIDE_EFFECTS__ function _nativeEnum(Class2, entries, params) { return new Class2({ type: "enum", entries, ...normalizeParams(params) }); } // @__NO_SIDE_EFFECTS__ function _literal(Class2, value, params) { return new Class2({ type: "literal", values: Array.isArray(value) ? value : [value], ...normalizeParams(params) }); } // @__NO_SIDE_EFFECTS__ function _file(Class2, params) { return new Class2({ type: "file", ...normalizeParams(params) }); } // @__NO_SIDE_EFFECTS__ function _transform(Class2, fn) { return new Class2({ type: "transform", transform: fn }); } // @__NO_SIDE_EFFECTS__ function _optional(Class2, innerType) { return new Class2({ type: "optional", innerType }); } // @__NO_SIDE_EFFECTS__ function _nullable(Class2, innerType) { return new Class2({ type: "nullable", innerType }); } // @__NO_SIDE_EFFECTS__ function _default(Class2, innerType, defaultValue) { return new Class2({ type: "default", innerType, get defaultValue() { return typeof defaultValue === "function" ? defaultValue() : shallowClone(defaultValue); } }); } // @__NO_SIDE_EFFECTS__ function _nonoptional(Class2, innerType, params) { return new Class2({ type: "nonoptional", innerType, ...normalizeParams(params) }); } // @__NO_SIDE_EFFECTS__ function _success(Class2, innerType) { return new Class2({ type: "success", innerType }); } // @__NO_SIDE_EFFECTS__ function _catch(Class2, innerType, catchValue) { return new Class2({ type: "catch", innerType, catchValue: typeof catchValue === "function" ? catchValue : constantCatch(catchValue) }); } // @__NO_SIDE_EFFECTS__ function _pipe(Class2, in_, out) { return new Class2({ type: "pipe", in: in_, out }); } // @__NO_SIDE_EFFECTS__ function _readonly(Class2, innerType) { return new Class2({ type: "readonly", innerType }); } // @__NO_SIDE_EFFECTS__ function _templateLiteral(Class2, parts, params) { return new Class2({ type: "template_literal", parts, ...normalizeParams(params) }); } // @__NO_SIDE_EFFECTS__ function _lazy(Class2, getter) { return new Class2({ type: "lazy", getter }); } // @__NO_SIDE_EFFECTS__ function _promise(Class2, innerType) { return new Class2({ type: "promise", innerType }); } // @__NO_SIDE_EFFECTS__ function _custom(Class2, fn, _params) { const norm = normalizeParams(_params); norm.abort ?? (norm.abort = true); const schema = new Class2({ type: "custom", check: "custom", fn, ...norm }); return schema; } // @__NO_SIDE_EFFECTS__ function _refine(Class2, fn, _params) { const schema = new Class2({ type: "custom", check: "custom", fn, ...normalizeParams(_params) }); return schema; } // @__NO_SIDE_EFFECTS__ function _superRefine(fn, params) { const ch = /* @__PURE__ */ _check((payload) => { payload.addIssue = (issue2) => { if (typeof issue2 === "string") { payload.issues.push(issue(issue2, payload.value, ch._zod.def)); } else { const _issue = issue2; if (_issue.fatal) _issue.continue = false; _issue.code ?? (_issue.code = "custom"); if (!("input" in _issue)) _issue.input = payload.value; _issue.inst ?? (_issue.inst = ch); _issue.continue ?? (_issue.continue = !ch._zod.def.abort); payload.issues.push(issue(_issue)); } }; return fn(payload.value, payload); }, params); return ch; } // @__NO_SIDE_EFFECTS__ function _check(fn, params) { const ch = new $ZodCheck({ check: "custom", ...normalizeParams(params) }); ch._zod.check = fn; return ch; } // @__NO_SIDE_EFFECTS__ function describe(description) { const ch = new $ZodCheck({ check: "describe" }); ch._zod.onattach = [ (inst) => { const existing = globalRegistry.get(inst) ?? {}; globalRegistry.add(inst, { ...existing, description }); } ]; ch._zod.check = () => { }; return ch; } // @__NO_SIDE_EFFECTS__ function meta(metadata) { const ch = new $ZodCheck({ check: "meta" }); ch._zod.onattach = [ (inst) => { const existing = globalRegistry.get(inst) ?? {}; globalRegistry.add(inst, { ...existing, ...metadata }); } ]; ch._zod.check = () => { }; return ch; } // @__NO_SIDE_EFFECTS__ function _stringbool(Classes, _params) { const params = normalizeParams(_params); let truthyArray = params.truthy ?? ["true", "1", "yes", "on", "y", "enabled"]; let falsyArray = params.falsy ?? ["false", "0", "no", "off", "n", "disabled"]; if (params.case !== "sensitive") { truthyArray = truthyArray.map((v) => typeof v === "string" ? v.toLowerCase() : v); falsyArray = falsyArray.map((v) => typeof v === "string" ? v.toLowerCase() : v); } const truthySet = new Set(truthyArray); const falsySet = new Set(falsyArray); const _Codec = Classes.Codec ?? $ZodCodec; const _Boolean = Classes.Boolean ?? $ZodBoolean; const _String = Classes.String ?? $ZodString; const stringSchema = new _String({ type: "string", error: params.error }); const booleanSchema = new _Boolean({ type: "boolean", error: params.error }); const codec2 = new _Codec({ type: "pipe", in: stringSchema, out: booleanSchema, transform: ((input2, payload) => { let data = input2; if (params.case !== "sensitive") data = data.toLowerCase(); if (truthySet.has(data)) { return true; } else if (falsySet.has(data)) { return false; } else { payload.issues.push({ code: "invalid_value", expected: "stringbool", values: [...truthySet, ...falsySet], input: payload.value, inst: codec2, continue: false }); return {}; } }), reverseTransform: ((input2, _payload) => { if (input2 === true) { return truthyArray[0] || "true"; } else { return falsyArray[0] || "false"; } }), error: params.error }); codec2._zod.bag.truthy = truthyArray; codec2._zod.bag.falsy = falsyArray; codec2._zod.bag.case = params.case ?? "insensitive"; return codec2; } // @__NO_SIDE_EFFECTS__ function _stringFormat(Class2, format, fnOrRegex, _params = {}) { const params = normalizeParams(_params); const def = { check: "string_format", type: "string", format, fn: typeof fnOrRegex === "function" ? fnOrRegex : (val) => fnOrRegex.test(val), ...params }; if (fnOrRegex instanceof RegExp) { def.pattern = fnOrRegex; } const inst = new Class2(def); return inst; } // ../../../../node_modules/zod/v4/core/to-json-schema.js function assignProps(target, ...sources) { for (const source of sources) { for (const key of Reflect.ownKeys(source)) { if (Object.prototype.propertyIsEnumerable.call(source, key)) { assignProp(target, key, source[key]); } } } return target; } function initializeContext(params) { let target = params?.target ?? "draft-2020-12"; if (target === "draft-4") target = "draft-04"; if (target === "draft-7") target = "draft-07"; return { processors: params.processors ?? {}, metadataRegistry: params?.metadata ?? globalRegistry, target, unrepresentable: params?.unrepresentable ?? "throw", override: params?.override ?? (() => { }), io: params?.io ?? "output", counter: 0, seen: /* @__PURE__ */ new Map(), sharedDefsExtractedFor: void 0, sharedEmitDoneFor: void 0, cycles: params?.cycles ?? "ref", reused: params?.reused ?? "inline", intersections: [], deferred: [], external: params?.external ?? void 0 }; } function handleUnrepresentable(schema, ctx, json2, params, message) { const result = typeof ctx.unrepresentable === "function" ? ctx.unrepresentable({ zodSchema: schema, path: params.path, message }) : ctx.unrepresentable; if (result === "any") return false; if (result === void 0 || result === "throw") throw new Error(message); Object.assign(json2, result); return true; } function processSchema(schema, ctx, _params = { path: [], schemaPath: [] }) { var _a3; const def = schema._zod.def; const seen = ctx.seen.get(schema); if (seen) { seen.count++; const isCycle = _params.schemaPath.includes(schema); if (isCycle) { seen.cycle = _params.path; } return seen.schema; } const result = { schema: {}, count: 1, cycle: void 0, path: _params.path }; ctx.seen.set(schema, result); ctx.sharedDefsExtractedFor = void 0; ctx.sharedEmitDoneFor = void 0; const overrideSchema = schema._zod.toJSONSchema?.(); if (overrideSchema) { result.schema = overrideSchema; } else { const params = { ..._params, schemaPath: [..._params.schemaPath, schema], path: _params.path }; if (schema._zod.processJSONSchema) { schema._zod.processJSONSchema(ctx, result.schema, params); } else { const _json = result.schema; const processor = ctx.processors[def.type]; if (!processor) { throw new Error(`[toJSONSchema]: Non-representable type encountered: ${def.type}`); } processor(schema, ctx, _json, params); } const parent = schema._zod.parent; if (parent) { if (!result.ref) result.ref = parent; processSchema(parent, ctx, params); ctx.seen.get(parent).isParent = true; } } const meta3 = ctx.metadataRegistry.get(schema); if (meta3) assignProps(result.schema, meta3); if (ctx.io === "input" && isTransforming(schema)) { delete result.schema.examples; delete result.schema.default; } if (ctx.io === "input" && "_prefault" in result.schema) (_a3 = result.schema).default ?? (_a3.default = result.schema._prefault); delete result.schema._prefault; const _result = ctx.seen.get(schema); return _result.schema; } function encodeJSONPointerSegment(segment) { return segment.replace(/~/g, "~0").replace(/\//g, "~1"); } function extractDefs(ctx, schema) { const root = ctx.seen.get(schema); if (!root) throw new Error("Unprocessed schema. This is a bug in Zod."); if (ctx.external && ctx.sharedDefsExtractedFor === ctx.external) return; const idToSchema = /* @__PURE__ */ new Map(); for (const entry of ctx.seen.entries()) { const id = ctx.metadataRegistry.get(entry[0])?.id; if (id) { const existing = idToSchema.get(id); if (existing && existing !== entry[0]) { throw new Error(`Duplicate schema id "${id}" detected during JSON Schema conversion. Two different schemas cannot share the same id when converted together.`); } idToSchema.set(id, entry[0]); } } const makeURI = (entry) => { const defsSegment = ctx.target === "draft-2020-12" ? "$defs" : "definitions"; if (ctx.external) { const externalId = ctx.external.registry.get(entry[0])?.id; const uriGenerator = ctx.external.uri ?? ((id2) => id2); if (externalId) { return { ref: uriGenerator(externalId) }; } const id = entry[1].defId ?? entry[1].schema.id ?? `schema${ctx.counter++}`; entry[1].defId = id; return { defId: id, ref: `${uriGenerator("__shared")}#/${defsSegment}/${encodeJSONPointerSegment(id)}` }; } const uriPrefix = `#`; const defUriPrefix = `${uriPrefix}/${defsSegment}/`; if (entry[1] === root && !entry[1].schema.id) { return { ref: uriPrefix }; } const defId = entry[1].schema.id ?? `__schema${ctx.counter++}`; return { defId, ref: defUriPrefix + encodeJSONPointerSegment(defId) }; }; const extractToDef = (entry) => { if (entry[1].schema.$ref) { return; } const seen = entry[1]; const { ref, defId } = makeURI(entry); seen.def = { ...seen.schema }; if (defId) seen.defId = defId; const schema2 = seen.schema; for (const key in schema2) { delete schema2[key]; } schema2.$ref = ref; }; if (ctx.cycles === "throw") { for (const entry of ctx.seen.entries()) { const seen = entry[1]; if (seen.cycle) { throw new Error(`Cycle detected: #/${seen.cycle?.join("/")}/ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.`); } } } for (const entry of ctx.seen.entries()) { const seen = entry[1]; if (schema === entry[0]) { extractToDef(entry); continue; } if (ctx.external) { const ext = ctx.external.registry.get(entry[0])?.id; if (schema !== entry[0] && ext) { extractToDef(entry); continue; } } const id = ctx.metadataRegistry.get(entry[0])?.id; if (id) { extractToDef(entry); continue; } if (seen.cycle) { extractToDef(entry); continue; } if (seen.count > 1) { if (ctx.reused === "ref") { extractToDef(entry); } } } if (ctx.external) ctx.sharedDefsExtractedFor = ctx.external; } function compactTypeUnion(schema) { const options = schema.anyOf; if (!Array.isArray(options) || options.length === 0 || schema.type !== void 0) return; const types = []; for (const option of options) { if (!option || typeof option !== "object") return; compactTypeUnion(option); const keys = Object.keys(option); if (keys.length !== 1 || keys[0] !== "type") return; const type = option.type; for (const member of Array.isArray(type) ? type : [type]) { if (typeof member !== "string") return; if (!types.includes(member)) types.push(member); } } delete schema.anyOf; schema.type = types.length === 1 ? types[0] : types; } var FOLDABLE_KEYS = /* @__PURE__ */ new Set(["type", "properties", "required", "additionalProperties"]); var UNION_KEYS = ["oneOf", "anyOf"]; function undeclaredConstraint(member) { const extra = member.additionalProperties; if (extra === void 0 || extra === false || typeof extra !== "object" || extra === null) return null; return Object.keys(extra).length ? extra : null; } function foldObjects(members2) { const objects = []; for (const member of members2) { if (typeof member !== "object" || member.type !== "object") return null; for (const key in member) { if (!FOLDABLE_KEYS.has(key)) return null; } objects.push(member); } const properties = {}; const required2 = /* @__PURE__ */ new Set(); for (const object2 of objects) { for (const key in object2.properties) { if (Object.prototype.hasOwnProperty.call(properties, key)) continue; const parts = []; for (const other of objects) { const part = other.properties?.[key] ?? undeclaredConstraint(other); if (part === null || part === void 0) continue; if (!parts.some((seen) => JSON.stringify(seen) === JSON.stringify(part))) parts.push(part); } const merged = parts.length === 1 ? parts[0] : foldObjects(parts) ?? { allOf: parts }; assignProp(properties, key, merged); } for (const key of object2.required ?? []) required2.add(key); } const folded = { type: "object", properties }; if (required2.size) folded.required = [...required2]; if (objects.every((object2) => object2.additionalProperties === false)) { folded.additionalProperties = false; } else { const constraints = []; for (const object2 of objects) { const constraint = undeclaredConstraint(object2); if (constraint && !constraints.some((seen) => JSON.stringify(seen) === JSON.stringify(constraint))) constraints.push(constraint); } if (constraints.length === 1) folded.additionalProperties = constraints[0]; else if (constraints.length > 1) folded.additionalProperties = { allOf: constraints }; } return folded; } function foldIntersection(json2) { const allOf = json2.allOf; if (!Array.isArray(allOf) || allOf.length < 2) return; for (const key of FOLDABLE_KEYS) if (key in json2) return; const unions = allOf.filter((m) => UNION_KEYS.some((k) => Array.isArray(m[k]))); let folded = null; if (!unions.length) { folded = foldObjects(allOf); } else { const union2 = unions[0]; const keyword = UNION_KEYS.find((k) => Array.isArray(union2[k])); if (Object.keys(union2).length !== 1) return; const rest = allOf.filter((m) => m !== union2); const branches = union2[keyword].map((branch) => foldObjects([...rest, branch])); if (branches.some((b) => !b)) return; folded = { [keyword]: branches }; } if (!folded) return; delete json2.allOf; assignProps(json2, folded); } function finalize(ctx, schema) { const root = ctx.seen.get(schema); if (!root) throw new Error("Unprocessed schema. This is a bug in Zod."); const flattenRef = (zodSchema) => { const seen = ctx.seen.get(zodSchema); if (seen.ref === null) return; const schema2 = seen.def ?? seen.schema; const _cached = { ...schema2 }; const ref = seen.ref; seen.ref = null; if (ref) { flattenRef(ref); const refSeen = ctx.seen.get(ref); const refSchema = refSeen.schema; if (refSchema.$ref && (ctx.target === "draft-07" || ctx.target === "draft-04" || ctx.target === "openapi-3.0")) { schema2.allOf = schema2.allOf ?? []; schema2.allOf.push(refSchema); } else { assignProps(schema2, refSchema); } assignProps(schema2, _cached); const isParentRef = zodSchema._zod.parent === ref; if (isParentRef) { for (const key in schema2) { if (key === "$ref" || key === "allOf") continue; if (!(key in _cached)) { delete schema2[key]; } } } if (refSchema.$ref && refSeen.def) { for (const key in schema2) { if (key === "$ref" || key === "allOf") continue; if (key in refSeen.def && JSON.stringify(schema2[key]) === JSON.stringify(refSeen.def[key])) { delete schema2[key]; } } } } const parent = zodSchema._zod.parent; if (parent && parent !== ref) { flattenRef(parent); const parentSeen = ctx.seen.get(parent); if (parentSeen?.schema.$ref) { schema2.$ref = parentSeen.schema.$ref; if (parentSeen.def) { for (const key in schema2) { if (key === "$ref" || key === "allOf") continue; if (key in parentSeen.def && JSON.stringify(schema2[key]) === JSON.stringify(parentSeen.def[key])) { delete schema2[key]; } } } } } ctx.override({ zodSchema, jsonSchema: schema2, path: seen.path ?? [] }); }; if (!ctx.external || ctx.sharedEmitDoneFor !== ctx.external) { for (const entry of [...ctx.seen.entries()].reverse()) { flattenRef(entry[0]); } if (ctx.target !== "openapi-3.0") { for (const entry of ctx.seen.entries()) { compactTypeUnion(entry[1].def ?? entry[1].schema); } } for (const rewrite of ctx.deferred) rewrite(); if (ctx.intersections.length) { const carriers = /* @__PURE__ */ new Map(); for (const seen of ctx.seen.values()) { for (const json2 of [seen.schema, seen.def]) { const allOf = json2?.allOf; if (!Array.isArray(allOf)) continue; const existing = carriers.get(allOf); if (existing) existing.push(json2); else carriers.set(allOf, [json2]); } } for (const allOf of ctx.intersections) { for (const json2 of carriers.get(allOf) ?? []) foldIntersection(json2); } } } const result = {}; if (ctx.target === "draft-2020-12") { result.$schema = "https://json-schema.org/draft/2020-12/schema"; } else if (ctx.target === "draft-07") { result.$schema = "http://json-schema.org/draft-07/schema#"; } else if (ctx.target === "draft-04") { result.$schema = "http://json-schema.org/draft-04/schema#"; } else if (ctx.target === "openapi-3.0") { } else { } if (ctx.external?.uri) { const id = ctx.external.registry.get(schema)?.id; if (!id) throw new Error("Schema is missing an `id` property"); result.$id = ctx.external.uri(id); } assignProps(result, root.defId ? root.schema : root.def ?? root.schema); const rootMetaId = ctx.metadataRegistry.get(schema)?.id; if (rootMetaId !== void 0 && result.id === rootMetaId) delete result.id; const defs = ctx.external?.defs ?? {}; if (!ctx.external || ctx.sharedEmitDoneFor !== ctx.external) { for (const entry of ctx.seen.entries()) { const seen = entry[1]; if (seen.def && seen.defId) { if (seen.def.id === seen.defId) delete seen.def.id; assignProp(defs, seen.defId, seen.def); } } } if (ctx.external) ctx.sharedEmitDoneFor = ctx.external; if (ctx.external) { } else { if (Object.keys(defs).length > 0) { if (ctx.target === "draft-2020-12") { result.$defs = defs; } else { result.definitions = defs; } } } try { const finalized = JSON.parse(JSON.stringify(result)); Object.defineProperty(finalized, "~standard", { value: { ...schema["~standard"], jsonSchema: { input: createStandardJSONSchemaMethod(schema, "input", ctx.processors), output: createStandardJSONSchemaMethod(schema, "output", ctx.processors) } }, enumerable: false, writable: false }); return finalized; } catch (_err) { throw new Error("Error converting schema to JSON."); } } function isTransforming(_schema, _ctx) { const ctx = _ctx ?? { seen: /* @__PURE__ */ new Set() }; if (ctx.seen.has(_schema)) return false; ctx.seen.add(_schema); const def = _schema._zod.def; if (def.type === "transform") return true; if (def.type === "array") return isTransforming(def.element, ctx); if (def.type === "set") return isTransforming(def.valueType, ctx); if (def.type === "lazy") return isTransforming(def.getter(), ctx); if (def.type === "promise" || def.type === "optional" || def.type === "nonoptional" || def.type === "nullable" || def.type === "readonly" || def.type === "default" || def.type === "prefault" || def.type === "catch") { return isTransforming(def.innerType, ctx); } if (def.type === "intersection") { return isTransforming(def.left, ctx) || isTransforming(def.right, ctx); } if (def.type === "record" || def.type === "map") { return isTransforming(def.keyType, ctx) || isTransforming(def.valueType, ctx); } if (def.type === "pipe") { if (_schema._zod.traits.has("$ZodCodec")) return true; return isTransforming(def.in, ctx) || isTransforming(def.out, ctx); } if (def.type === "object") { for (const key in def.shape) { if (isTransforming(def.shape[key], ctx)) return true; } return false; } if (def.type === "union") { for (const option of def.options) { if (isTransforming(option, ctx)) return true; } return false; } if (def.type === "tuple") { for (const item of def.items) { if (isTransforming(item, ctx)) return true; } if (def.rest && isTransforming(def.rest, ctx)) return true; return false; } return false; } var createToJSONSchemaMethod = (schema, processors = {}) => (params) => { const ctx = initializeContext({ ...params, processors }); processSchema(schema, ctx); extractDefs(ctx, schema); return finalize(ctx, schema); }; var createStandardJSONSchemaMethod = (schema, io, processors = {}) => (params) => { const { libraryOptions, target } = params ?? {}; const ctx = initializeContext({ ...libraryOptions ?? {}, target, io, processors }); processSchema(schema, ctx); extractDefs(ctx, schema); return finalize(ctx, schema); }; // ../../../../node_modules/zod/v4/core/json-schema-processors.js var narrowMin = (agg, key, value) => { if (agg[key] === void 0 || value > agg[key]) agg[key] = value; }; var narrowMax = (agg, key, value) => { if (agg[key] === void 0 || value < agg[key]) agg[key] = value; }; var narrowBoth = (agg, value) => { narrowMin(agg, "minimum", value); narrowMax(agg, "maximum", value); }; var addDivisor = (agg, value) => { agg.multipleOf ?? (agg.multipleOf = []); if (!agg.multipleOf.includes(value)) agg.multipleOf.push(value); }; var addPattern = (agg, pattern) => { agg.patterns ?? (agg.patterns = /* @__PURE__ */ new Set()); agg.patterns.add(pattern); }; var intersectMime = (agg, mime) => { agg.mime = agg.mime ? agg.mime.filter((m) => mime.includes(m)) : [...mime]; }; var setFormat = (agg, format) => { agg.format = format; if (format.includes("int")) agg.isInt = true; }; var minContributor = (agg, def) => narrowMin(agg, "minimum", def.minimum); var maxContributor = (agg, def) => narrowMax(agg, "maximum", def.maximum); var formatContributor = (ranges) => (agg, def) => { setFormat(agg, def.format); const [minimum, maximum] = ranges[def.format]; narrowMin(agg, "minimum", minimum); narrowMax(agg, "maximum", maximum); }; var contributors = { greater_than: (agg, def) => narrowMin(agg, def.inclusive ? "minimum" : "exclusiveMinimum", def.value), less_than: (agg, def) => narrowMax(agg, def.inclusive ? "maximum" : "exclusiveMaximum", def.value), multiple_of: (agg, def) => addDivisor(agg, def.value), number_format: formatContributor(NUMBER_FORMAT_RANGES), bigint_format: formatContributor(BIGINT_FORMAT_RANGES), min_length: minContributor, max_length: maxContributor, length_equals: (agg, def) => narrowBoth(agg, def.length), min_size: minContributor, max_size: maxContributor, size_equals: (agg, def) => narrowBoth(agg, def.size), string_format: (agg, def) => { setFormat(agg, def.format); if (def.pattern) addPattern(agg, def.pattern); if (def.format === "base64" || def.format === "base64url") agg.contentEncoding = def.format; if (def.local || def.precision === -1) agg.laxFormat = true; }, mime_type: (agg, def) => intersectMime(agg, def.mime) }; function aggregateChecks(schema) { const agg = {}; const def = schema._zod.def; const list = schema._zod.traits.has("$ZodCheck") ? [schema, ...def.checks ?? []] : def.checks ?? []; for (const ch of list) contributors[ch._zod.def.check]?.(agg, ch._zod.def); const bag = schema._zod.bag; if (bag.minimum !== void 0) narrowMin(agg, "minimum", bag.minimum); if (bag.exclusiveMinimum !== void 0) narrowMin(agg, "exclusiveMinimum", bag.exclusiveMinimum); if (bag.maximum !== void 0) narrowMax(agg, "maximum", bag.maximum); if (bag.exclusiveMaximum !== void 0) narrowMax(agg, "exclusiveMaximum", bag.exclusiveMaximum); if (bag.multipleOf !== void 0) addDivisor(agg, bag.multipleOf); if (bag.format !== void 0) { agg.format ?? (agg.format = bag.format); if (bag.format.includes("int")) agg.isInt = true; } if (bag.mime) intersectMime(agg, bag.mime); for (const pattern of bag.patterns ?? []) addPattern(agg, pattern); return agg; } var formatMap = { guid: "uuid", url: "uri", datetime: "date-time", json_string: "json-string", regex: "" // do not set }; var exactPatterns = /* @__PURE__ */ new Map([ [base64Charset, base64], [base64urlCharset, base64url] ]); var exactPattern = (p) => exactPatterns.get(p) ?? p; var stringProcessor = (schema, ctx, _json, _params) => { const json2 = _json; json2.type = "string"; const { minimum, maximum, format, patterns, contentEncoding, laxFormat } = aggregateChecks(schema); if (typeof minimum === "number") json2.minLength = minimum; if (typeof maximum === "number") json2.maxLength = maximum; if (format) { json2.format = formatMap[format] ?? format; if (json2.format === "") delete json2.format; if (format === "time" || laxFormat) { delete json2.format; } } if (contentEncoding) json2.contentEncoding = contentEncoding; if (patterns && patterns.size > 0) { const patternList = [...patterns].map(exactPattern); if (patternList.length === 1) json2.pattern = patternList[0].source; else if (patternList.length > 1) { json2.allOf = [ ...patternList.map((regex) => ({ ...ctx.target === "draft-07" || ctx.target === "draft-04" || ctx.target === "openapi-3.0" ? { type: "string" } : {}, pattern: regex.source })) ]; } } }; var numberProcessor = (schema, ctx, _json, params) => { const json2 = _json; const { minimum, maximum, multipleOf, exclusiveMaximum, exclusiveMinimum, isInt } = aggregateChecks(schema); json2.type = isInt ? "integer" : "number"; const exMin = typeof exclusiveMinimum === "number" && exclusiveMinimum >= (minimum ?? Number.NEGATIVE_INFINITY); const exMax = typeof exclusiveMaximum === "number" && exclusiveMaximum <= (maximum ?? Number.POSITIVE_INFINITY); const legacy = ctx.target === "draft-04" || ctx.target === "openapi-3.0"; if (exMin) { if (legacy) { json2.minimum = exclusiveMinimum; json2.exclusiveMinimum = true; } else { json2.exclusiveMinimum = exclusiveMinimum; } } else if (typeof minimum === "number") { json2.minimum = minimum; } if (exMax) { if (legacy) { json2.maximum = exclusiveMaximum; json2.exclusiveMaximum = true; } else { json2.exclusiveMaximum = exclusiveMaximum; } } else if (typeof maximum === "number") { json2.maximum = maximum; } if (multipleOf) { const divisors = /* @__PURE__ */ new Set(); for (const divisor of multipleOf) { if (Number.isFinite(divisor) && divisor !== 0) divisors.add(Math.abs(divisor)); else handleUnrepresentable(schema, ctx, json2, params, `A multipleOf divisor of ${divisor} cannot be represented in JSON Schema`); } const [first, ...rest] = divisors; if (first !== void 0) json2.multipleOf = first; if (rest.length) json2.allOf = [...json2.allOf ?? [], ...rest.map((m) => ({ multipleOf: m }))]; } }; var booleanProcessor = (_schema, _ctx, json2, _params) => { json2.type = "boolean"; }; var bigintProcessor = (schema, ctx, json2, params) => { handleUnrepresentable(schema, ctx, json2, params, "BigInt cannot be represented in JSON Schema"); }; var symbolProcessor = (schema, ctx, json2, params) => { handleUnrepresentable(schema, ctx, json2, params, "Symbols cannot be represented in JSON Schema"); }; var nullProcessor = (_schema, ctx, json2, _params) => { if (ctx.target === "openapi-3.0") { json2.type = "string"; json2.nullable = true; json2.enum = [null]; } else { json2.type = "null"; } }; var undefinedProcessor = (schema, ctx, json2, params) => { handleUnrepresentable(schema, ctx, json2, params, "Undefined cannot be represented in JSON Schema"); }; var voidProcessor = (schema, ctx, json2, params) => { handleUnrepresentable(schema, ctx, json2, params, "Void cannot be represented in JSON Schema"); }; var neverProcessor = (_schema, _ctx, json2, _params) => { json2.not = {}; }; var anyProcessor = (_schema, _ctx, _json, _params) => { }; var unknownProcessor = (_schema, _ctx, _json, _params) => { }; var dateProcessor = (schema, ctx, json2, params) => { handleUnrepresentable(schema, ctx, json2, params, "Date cannot be represented in JSON Schema"); }; var enumProcessor = (schema, _ctx, json2, _params) => { const def = schema._zod.def; const values = getEnumValues(def.entries); if (values.length === 0) { json2.not = {}; return; } if (values.every((v) => typeof v === "number")) json2.type = "number"; if (values.every((v) => typeof v === "string")) json2.type = "string"; json2.enum = values; }; var literalProcessor = (schema, ctx, json2, params) => { const def = schema._zod.def; if (def.values.length === 0) { json2.not = {}; return; } const vals = []; for (const val of def.values) { if (val === void 0) { if (handleUnrepresentable(schema, ctx, json2, params, "Literal `undefined` cannot be represented in JSON Schema")) return; } else if (typeof val === "bigint") { if (handleUnrepresentable(schema, ctx, json2, params, "BigInt literals cannot be represented in JSON Schema")) return; vals.push(Number(val)); } else { vals.push(val); } } if (vals.length === 0) { } else if (vals.length === 1) { const val = vals[0]; json2.type = val === null ? "null" : typeof val; if (ctx.target === "draft-04" || ctx.target === "openapi-3.0") { json2.enum = [val]; } else { json2.const = val; } } else { if (vals.every((v) => typeof v === "number")) json2.type = "number"; if (vals.every((v) => typeof v === "string")) json2.type = "string"; if (vals.every((v) => typeof v === "boolean")) json2.type = "boolean"; if (vals.every((v) => v === null)) json2.type = "null"; json2.enum = vals; } }; var nanProcessor = (schema, ctx, json2, params) => { handleUnrepresentable(schema, ctx, json2, params, "NaN cannot be represented in JSON Schema"); }; var templateLiteralProcessor = (schema, _ctx, json2, _params) => { const _json = json2; const pattern = schema._zod.pattern; if (!pattern) throw new Error("Pattern not found in template literal"); _json.type = "string"; _json.pattern = pattern.source; }; var fileProcessor = (schema, _ctx, json2, _params) => { const _json = json2; _json.type = "string"; _json.format = "binary"; _json.contentEncoding = "binary"; const { minimum, maximum, mime } = aggregateChecks(schema); if (minimum !== void 0) _json.minLength = minimum; if (maximum !== void 0) _json.maxLength = maximum; if (!mime) return; if (mime.length === 0) _json.not = {}; else if (mime.length === 1) _json.contentMediaType = mime[0]; else _json.anyOf = mime.map((m) => ({ contentMediaType: m })); }; var successProcessor = (_schema, _ctx, json2, _params) => { json2.type = "boolean"; }; var customProcessor = (schema, ctx, json2, params) => { handleUnrepresentable(schema, ctx, json2, params, "Custom types cannot be represented in JSON Schema"); }; var functionProcessor = (schema, ctx, json2, params) => { handleUnrepresentable(schema, ctx, json2, params, "Function types cannot be represented in JSON Schema"); }; var transformProcessor = (schema, ctx, json2, params) => { handleUnrepresentable(schema, ctx, json2, params, "Transforms cannot be represented in JSON Schema"); }; var mapProcessor = (schema, ctx, json2, params) => { handleUnrepresentable(schema, ctx, json2, params, "Map cannot be represented in JSON Schema"); }; var setProcessor = (schema, ctx, json2, params) => { handleUnrepresentable(schema, ctx, json2, params, "Set cannot be represented in JSON Schema"); }; var arrayProcessor = (schema, ctx, _json, params) => { const json2 = _json; const def = schema._zod.def; const { minimum, maximum } = aggregateChecks(schema); if (typeof minimum === "number") json2.minItems = minimum; if (typeof maximum === "number") json2.maxItems = maximum; json2.type = "array"; json2.items = processSchema(def.element, ctx, { ...params, path: [...params.path, "items"] }); }; function inputOptin(schema) { const def = schema._zod.def; if (def.type === "pipe" && def.in._zod.traits.has("$ZodTransform")) { return inputOptin(def.out); } if (def.type === "catch") { return inputOptin(def.innerType); } return schema._zod.optin; } var objectProcessor = (schema, ctx, _json, params) => { const json2 = _json; const def = schema._zod.def; const shape = def.shape; const symbolKeys = Object.getOwnPropertySymbols(shape); if (symbolKeys.length && handleUnrepresentable(schema, ctx, json2, params, "Symbol keys cannot be represented in JSON Schema")) { return; } json2.type = "object"; json2.properties = {}; for (const key in shape) { assignProp(json2.properties, key, processSchema(shape[key], ctx, { ...params, path: [...params.path, "properties", key] })); } const requiredKeys = []; for (const key of Object.keys(shape)) { const field = def.shape[key]; if (ctx.io === "input" ? inputOptin(field) === void 0 : field._zod.optout === void 0) { requiredKeys.push(key); } } if (requiredKeys.length > 0) { json2.required = requiredKeys; } if (def.catchall?._zod.def.type === "never") { json2.additionalProperties = false; } else if (!def.catchall) { if (ctx.io === "output") json2.additionalProperties = false; } else if (def.catchall) { json2.additionalProperties = processSchema(def.catchall, ctx, { ...params, path: [...params.path, "additionalProperties"] }); } }; var unionProcessor = (schema, ctx, json2, params) => { const def = schema._zod.def; const isExclusive = def.inclusive === false; const options = def.options.map((x, i) => processSchema(x, ctx, { ...params, path: [...params.path, isExclusive ? "oneOf" : "anyOf", i] })); if (isExclusive) { json2.oneOf = options; } else { json2.anyOf = options; } }; var intersectionProcessor = (schema, ctx, json2, params) => { const def = schema._zod.def; const a = processSchema(def.left, ctx, { ...params, path: [...params.path, "allOf", 0] }); const b = processSchema(def.right, ctx, { ...params, path: [...params.path, "allOf", 1] }); const isSimpleIntersection = (val) => "allOf" in val && Object.keys(val).length === 1; const allOf = [ ...isSimpleIntersection(a) ? a.allOf : [a], ...isSimpleIntersection(b) ? b.allOf : [b] ]; json2.allOf = allOf; ctx.intersections.push(allOf); }; var tupleProcessor = (schema, ctx, _json, params) => { const json2 = _json; const def = schema._zod.def; json2.type = "array"; const prefixPath = ctx.target === "draft-2020-12" ? "prefixItems" : "items"; const restPath = ctx.target === "draft-2020-12" ? "items" : ctx.target === "openapi-3.0" ? "items" : "additionalItems"; const prefixItems = def.items.map((x, i) => processSchema(x, ctx, { ...params, path: [...params.path, prefixPath, i] })); const rest = def.rest ? processSchema(def.rest, ctx, { ...params, path: [...params.path, restPath, ...ctx.target === "openapi-3.0" ? [def.items.length] : []] }) : null; let minItems = def.items.length; while (minItems > 0) { const item = def.items[minItems - 1]; const optional2 = ctx.io === "input" ? inputOptin(item) !== void 0 : item._zod.optout === "optional"; if (!optional2) break; minItems--; } const maxItems = def.items.length; const isClosed = !def.rest; if (ctx.target === "draft-2020-12") { json2.prefixItems = prefixItems; if (isClosed) { json2.items = false; } else if (rest) { json2.items = rest; } if (minItems > 0) json2.minItems = minItems; if (isClosed) json2.maxItems = maxItems; } else if (ctx.target === "openapi-3.0") { json2.items = { anyOf: prefixItems }; if (rest) { json2.items.anyOf.push(rest); } if (minItems > 0) json2.minItems = minItems; if (isClosed) json2.maxItems = maxItems; } else { json2.items = prefixItems; if (isClosed) { json2.additionalItems = false; } else if (rest) { json2.additionalItems = rest; } if (minItems > 0) json2.minItems = minItems; if (isClosed) json2.maxItems = maxItems; } const { minimum, maximum } = aggregateChecks(schema); if (typeof minimum === "number") json2.minItems = minimum; if (typeof maximum === "number") json2.maxItems = maximum; }; function stringifyKeyNames(bySchema, json2, visited) { if (json2.$ref) { if (visited.has(json2)) return json2; visited.add(json2); const def = bySchema.get(json2)?.def; if (!def) return json2; const inlined = stringifyKeyNames(bySchema, def, visited); return inlined === def ? json2 : inlined; } for (const keyword of ["anyOf", "oneOf"]) { const branches = json2[keyword]; if (!Array.isArray(branches)) continue; const mapped = branches.map((branch) => stringifyKeyNames(bySchema, branch, visited)); if (mapped.some((branch, i) => branch !== branches[i])) json2 = { ...json2, [keyword]: mapped }; } const types = Array.isArray(json2.type) ? json2.type : [json2.type]; const numericType = !types.includes("string") && types.some((t) => t === "number" || t === "integer"); const values = json2.enum ?? (json2.const !== void 0 ? [json2.const] : void 0); if (!numericType && !values?.some((v) => typeof v === "number")) return json2; const { minimum, maximum, exclusiveMinimum, exclusiveMaximum, multipleOf, format, id, ...rest } = json2; if (rest.enum) rest.enum = rest.enum.map((v) => typeof v === "number" ? String(v) : v); else if (typeof rest.const === "number") rest.const = String(rest.const); if (!numericType) return rest; rest.type = "string"; if (!values) rest.pattern = (types.includes("number") ? number : integer).source; return rest; } var pendingRecords = /* @__PURE__ */ new WeakMap(); function rewriteKeyNames(ctx) { const bySchema = /* @__PURE__ */ new Map(); for (const entry of ctx.seen.values()) { if (entry.def && !bySchema.has(entry.schema)) bySchema.set(entry.schema, entry); } const rewrites = /* @__PURE__ */ new Map(); for (const record2 of pendingRecords.get(ctx) ?? []) { const seen = ctx.seen.get(record2); const names = (seen?.def ?? seen?.schema)?.propertyNames; if (!names || names === true || rewrites.has(names)) continue; const rewritten = stringifyKeyNames(bySchema, names, /* @__PURE__ */ new Set()); if (rewritten !== names) rewrites.set(names, rewritten); } if (!rewrites.size) return; for (const entry of ctx.seen.values()) { for (const carrier of [entry.schema, entry.def]) { const rewritten = carrier && rewrites.get(carrier.propertyNames); if (rewritten) carrier.propertyNames = rewritten; } } } var recordProcessor = (schema, ctx, _json, params) => { const json2 = _json; const def = schema._zod.def; json2.type = "object"; const keyType = def.keyType; const patterns = aggregateChecks(keyType).patterns; if (def.mode === "loose" && patterns && patterns.size > 0) { const valueSchema = processSchema(def.valueType, ctx, { ...params, path: [...params.path, "patternProperties", "*"] }); json2.patternProperties = {}; for (const pattern of patterns) { assignProp(json2.patternProperties, exactPattern(pattern).source, valueSchema); } } else { if (ctx.target === "draft-07" || ctx.target === "draft-2020-12") { json2.propertyNames = processSchema(def.keyType, ctx, { ...params, path: [...params.path, "propertyNames"] }); let pending = pendingRecords.get(ctx); if (!pending) { pending = []; pendingRecords.set(ctx, pending); ctx.deferred.push(() => rewriteKeyNames(ctx)); } pending.push(schema); } json2.additionalProperties = processSchema(def.valueType, ctx, { ...params, path: [...params.path, "additionalProperties"] }); } const keyValues = keyType._zod.values; const omittableOnInput = ctx.io === "input" && inputOptin(def.valueType) !== void 0; if (keyValues && !def.partial && !omittableOnInput) { const validKeyValues = [...keyValues].filter((v) => typeof v === "string" || typeof v === "number"); if (validKeyValues.length > 0) { json2.required = validKeyValues.map(String); } } }; var nullableProcessor = (schema, ctx, json2, params) => { const def = schema._zod.def; const inner = processSchema(def.innerType, ctx, params); const seen = ctx.seen.get(schema); if (ctx.target === "openapi-3.0") { seen.ref = def.innerType; json2.nullable = true; } else { json2.anyOf = [inner, { type: "null" }]; } }; var nonoptionalProcessor = (schema, ctx, _json, params) => { const def = schema._zod.def; processSchema(def.innerType, ctx, params); const seen = ctx.seen.get(schema); seen.ref = def.innerType; }; var UNREPRESENTABLE_DEFAULT = Symbol(); function serializeDefaultValue(value, schema, ctx, json2, params) { let unrepresentable = false; const serialized = JSON.stringify(value, (_, val) => { if (typeof val !== "bigint") return val; unrepresentable = true; return null; }); if (!unrepresentable) return JSON.parse(serialized); handleUnrepresentable(schema, ctx, json2, params, "BigInt defaults cannot be represented in JSON Schema"); return UNREPRESENTABLE_DEFAULT; } var defaultProcessor = (schema, ctx, json2, params) => { const def = schema._zod.def; processSchema(def.innerType, ctx, params); const seen = ctx.seen.get(schema); seen.ref = def.innerType; const value = serializeDefaultValue(def.defaultValue, schema, ctx, json2, params); if (value !== UNREPRESENTABLE_DEFAULT) json2.default = value; }; var prefaultProcessor = (schema, ctx, json2, params) => { const def = schema._zod.def; processSchema(def.innerType, ctx, params); const seen = ctx.seen.get(schema); seen.ref = def.innerType; if (ctx.io !== "input") return; const value = serializeDefaultValue(def.defaultValue, schema, ctx, json2, params); if (value !== UNREPRESENTABLE_DEFAULT) json2._prefault = value; }; var catchProcessor = (schema, ctx, json2, params) => { const def = schema._zod.def; processSchema(def.innerType, ctx, params); const seen = ctx.seen.get(schema); seen.ref = def.innerType; let catchValue; try { catchValue = def.catchValue(void 0); } catch { handleUnrepresentable(schema, ctx, json2, params, "Dynamic catch values are not supported in JSON Schema"); return; } json2.default = catchValue; }; var pipeProcessor = (schema, ctx, _json, params) => { const def = schema._zod.def; const inIsTransform = def.in._zod.traits.has("$ZodTransform"); const innerType = ctx.io === "input" ? inIsTransform ? def.out : def.in : def.out; processSchema(innerType, ctx, params); const seen = ctx.seen.get(schema); seen.ref = innerType; }; var readonlyProcessor = (schema, ctx, json2, params) => { const def = schema._zod.def; processSchema(def.innerType, ctx, params); const seen = ctx.seen.get(schema); seen.ref = def.innerType; json2.readOnly = true; }; var promiseProcessor = (schema, ctx, _json, params) => { const def = schema._zod.def; processSchema(def.innerType, ctx, params); const seen = ctx.seen.get(schema); seen.ref = def.innerType; }; var optionalProcessor = (schema, ctx, _json, params) => { const def = schema._zod.def; processSchema(def.innerType, ctx, params); const seen = ctx.seen.get(schema); seen.ref = def.innerType; }; var lazyProcessor = (schema, ctx, _json, params) => { const innerType = schema._zod.innerType; processSchema(innerType, ctx, params); const seen = ctx.seen.get(schema); seen.ref = innerType; }; var allProcessors = { string: stringProcessor, number: numberProcessor, boolean: booleanProcessor, bigint: bigintProcessor, symbol: symbolProcessor, null: nullProcessor, undefined: undefinedProcessor, void: voidProcessor, never: neverProcessor, any: anyProcessor, unknown: unknownProcessor, date: dateProcessor, enum: enumProcessor, literal: literalProcessor, nan: nanProcessor, template_literal: templateLiteralProcessor, file: fileProcessor, success: successProcessor, custom: customProcessor, function: functionProcessor, transform: transformProcessor, map: mapProcessor, set: setProcessor, array: arrayProcessor, object: objectProcessor, union: unionProcessor, intersection: intersectionProcessor, tuple: tupleProcessor, record: recordProcessor, nullable: nullableProcessor, nonoptional: nonoptionalProcessor, default: defaultProcessor, prefault: prefaultProcessor, catch: catchProcessor, pipe: pipeProcessor, readonly: readonlyProcessor, promise: promiseProcessor, optional: optionalProcessor, lazy: lazyProcessor }; function toJSONSchema(input2, params) { if ("_idmap" in input2) { const registry2 = input2; const ctx2 = initializeContext({ ...params, processors: allProcessors }); const defs = {}; for (const entry of registry2._idmap.entries()) { const [_, schema] = entry; processSchema(schema, ctx2); } const schemas = {}; const external = { registry: registry2, uri: params?.uri, defs }; ctx2.external = external; for (const entry of registry2._idmap.entries()) { const [key, schema] = entry; extractDefs(ctx2, schema); assignProp(schemas, key, finalize(ctx2, schema)); } if (Object.keys(defs).length > 0) { const defsSegment = ctx2.target === "draft-2020-12" ? "$defs" : "definitions"; schemas.__shared = { [defsSegment]: defs }; } return { schemas }; } const ctx = initializeContext({ ...params, processors: allProcessors }); processSchema(input2, ctx); extractDefs(ctx, input2); return finalize(ctx, input2); } // ../../../../node_modules/zod/v4/core/json-schema-generator.js var JSONSchemaGenerator = class { /** @deprecated Access via ctx instead */ get metadataRegistry() { return this.ctx.metadataRegistry; } /** @deprecated Access via ctx instead */ get target() { return this.ctx.target; } // annotated so the .d.cts emits an indexed access rather than an inline `import()` of an ESM path /** @deprecated Access via ctx instead */ get unrepresentable() { return this.ctx.unrepresentable; } /** @deprecated Access via ctx instead */ get override() { return this.ctx.override; } /** @deprecated Access via ctx instead */ get io() { return this.ctx.io; } /** @deprecated Access via ctx instead */ get counter() { return this.ctx.counter; } set counter(value) { this.ctx.counter = value; } /** @deprecated Access via ctx instead */ get seen() { return this.ctx.seen; } constructor(params) { let normalizedTarget = params?.target ?? "draft-2020-12"; if (normalizedTarget === "draft-4") normalizedTarget = "draft-04"; if (normalizedTarget === "draft-7") normalizedTarget = "draft-07"; this.ctx = initializeContext({ processors: allProcessors, target: normalizedTarget, ...params?.metadata && { metadata: params.metadata }, ...params?.unrepresentable && { unrepresentable: params.unrepresentable }, ...params?.override && { override: params.override }, ...params?.io && { io: params.io } }); } /** * Process a schema to prepare it for JSON Schema generation. * This must be called before emit(). */ process(schema, _params = { path: [], schemaPath: [] }) { return processSchema(schema, this.ctx, _params); } /** * Emit the final JSON Schema after processing. * Must call process() first. */ emit(schema, _params) { if (_params) { if (_params.cycles) this.ctx.cycles = _params.cycles; if (_params.reused) this.ctx.reused = _params.reused; if (_params.external) this.ctx.external = _params.external; } this.ctx.sharedDefsExtractedFor = void 0; this.ctx.sharedEmitDoneFor = void 0; extractDefs(this.ctx, schema); const result = finalize(this.ctx, schema); const { "~standard": _, ...plainResult } = result; return plainResult; } }; // ../../../../node_modules/zod/v4/core/json-schema.js var json_schema_exports = {}; // ../../../../node_modules/zod/v4/classic/schemas.js var schemas_exports2 = {}; __export(schemas_exports2, { ZodAny: () => ZodAny, ZodArray: () => ZodArray, ZodBase64: () => ZodBase64, ZodBase64URL: () => ZodBase64URL, ZodBigInt: () => ZodBigInt, ZodBigIntFormat: () => ZodBigIntFormat, ZodBoolean: () => ZodBoolean, ZodCIDRv4: () => ZodCIDRv4, ZodCIDRv6: () => ZodCIDRv6, ZodCUID: () => ZodCUID, ZodCUID2: () => ZodCUID2, ZodCatch: () => ZodCatch, ZodCodec: () => ZodCodec, ZodCreditCard: () => ZodCreditCard, ZodCustom: () => ZodCustom, ZodCustomStringFormat: () => ZodCustomStringFormat, ZodDate: () => ZodDate, ZodDefault: () => ZodDefault, ZodDiscriminatedUnion: () => ZodDiscriminatedUnion, ZodE164: () => ZodE164, ZodEmail: () => ZodEmail, ZodEmoji: () => ZodEmoji, ZodEnum: () => ZodEnum, ZodExactOptional: () => ZodExactOptional, ZodFile: () => ZodFile, ZodFunction: () => ZodFunction, ZodGUID: () => ZodGUID, ZodIBAN: () => ZodIBAN, ZodIPv4: () => ZodIPv4, ZodIPv6: () => ZodIPv6, ZodISODate: () => ZodISODate, ZodISODateTime: () => ZodISODateTime, ZodISODuration: () => ZodISODuration, ZodISOTime: () => ZodISOTime, ZodInstanceOf: () => ZodInstanceOf, ZodIntersection: () => ZodIntersection, ZodJWT: () => ZodJWT, ZodKSUID: () => ZodKSUID, ZodLazy: () => ZodLazy, ZodLiteral: () => ZodLiteral, ZodMAC: () => ZodMAC, ZodMap: () => ZodMap, ZodNaN: () => ZodNaN, ZodNanoID: () => ZodNanoID, ZodNever: () => ZodNever, ZodNonOptional: () => ZodNonOptional, ZodNull: () => ZodNull, ZodNullable: () => ZodNullable, ZodNumber: () => ZodNumber, ZodNumberFormat: () => ZodNumberFormat, ZodObject: () => ZodObject, ZodOptional: () => ZodOptional, ZodPipe: () => ZodPipe, ZodPrefault: () => ZodPrefault, ZodPreprocess: () => ZodPreprocess, ZodPromise: () => ZodPromise, ZodReadonly: () => ZodReadonly, ZodRecord: () => ZodRecord, ZodSet: () => ZodSet, ZodString: () => ZodString, ZodStringFormat: () => ZodStringFormat, ZodSuccess: () => ZodSuccess, ZodSymbol: () => ZodSymbol, ZodTemplateLiteral: () => ZodTemplateLiteral, ZodTransform: () => ZodTransform, ZodTuple: () => ZodTuple, ZodType: () => ZodType, ZodULID: () => ZodULID, ZodURL: () => ZodURL, ZodUUID: () => ZodUUID, ZodUndefined: () => ZodUndefined, ZodUnion: () => ZodUnion, ZodUnknown: () => ZodUnknown, ZodVoid: () => ZodVoid, ZodXID: () => ZodXID, ZodXor: () => ZodXor, _ZodString: () => _ZodString, _default: () => _default2, _function: () => _function, any: () => any, array: () => array, base64: () => base642, base64url: () => base64url2, bigint: () => bigint2, boolean: () => boolean2, catch: () => _catch2, check: () => check, cidrv4: () => cidrv42, cidrv6: () => cidrv62, codec: () => codec, creditCard: () => creditCard2, cuid: () => cuid3, cuid2: () => cuid22, currencyCode: () => currencyCode2, custom: () => custom, date: () => date2, describe: () => describe2, discriminatedUnion: () => discriminatedUnion, e164: () => e1642, email: () => email2, emoji: () => emoji2, enum: () => _enum2, exactOptional: () => exactOptional, file: () => file, float32: () => float32, float64: () => float64, function: () => _function, guid: () => guid2, hash: () => hash, hex: () => hex2, hostname: () => hostname2, httpUrl: () => httpUrl, iban: () => iban2, instanceof: () => _instanceof, int: () => int, int32: () => int32, int64: () => int64, intersection: () => intersection, invertCodec: () => invertCodec, ipv4: () => ipv42, ipv6: () => ipv62, json: () => json, jwt: () => jwt, keyof: () => keyof, ksuid: () => ksuid2, lazy: () => lazy, literal: () => literal, looseObject: () => looseObject, looseRecord: () => looseRecord, mac: () => mac2, map: () => map, meta: () => meta2, nan: () => nan, nanoid: () => nanoid2, nativeEnum: () => nativeEnum, never: () => never, nonoptional: () => nonoptional, null: () => _null3, nullable: () => nullable, nullish: () => nullish2, number: () => number2, object: () => object, optional: () => optional, partialRecord: () => partialRecord, pipe: () => pipe, prefault: () => prefault, preprocess: () => preprocess, promise: () => promise, readonly: () => readonly, record: () => record, refine: () => refine, set: () => set, strictObject: () => strictObject, string: () => string2, stringFormat: () => stringFormat, stringbool: () => stringbool, success: () => success, superRefine: () => superRefine, symbol: () => symbol, templateLiteral: () => templateLiteral, transform: () => transform, tuple: () => tuple, uint32: () => uint32, uint64: () => uint64, ulid: () => ulid2, undefined: () => _undefined3, union: () => union, unknown: () => unknown, url: () => url, uuid: () => uuid2, uuidv4: () => uuidv4, uuidv6: () => uuidv6, uuidv7: () => uuidv7, void: () => _void2, xid: () => xid2, xor: () => xor }); // ../../../../node_modules/zod/v4/classic/checks.js var checks_exports2 = {}; __export(checks_exports2, { endsWith: () => _endsWith, gt: () => _gt, gte: () => _gte, includes: () => _includes, length: () => _length, lowercase: () => _lowercase, lt: () => _lt, lte: () => _lte, maxLength: () => _maxLength, maxSize: () => _maxSize, mime: () => _mime, minLength: () => _minLength, minSize: () => _minSize, multipleOf: () => _multipleOf, negative: () => _negative, nonnegative: () => _nonnegative, nonpositive: () => _nonpositive, normalize: () => _normalize, overwrite: () => _overwrite, positive: () => _positive, properties: () => _properties, property: () => _property, regex: () => _regex, size: () => _size, slugify: () => _slugify, startsWith: () => _startsWith, toLowerCase: () => _toLowerCase, toUpperCase: () => _toUpperCase, trim: () => _trim, uppercase: () => _uppercase }); // ../../../../node_modules/zod/v4/classic/errors.js var _installedErrorProtos = /* @__PURE__ */ new WeakSet([Object.prototype, Error.prototype]); function _lazyMethod(proto, key, make) { Object.defineProperty(proto, key, { configurable: true, enumerable: false, get() { const value = make(this); Object.defineProperty(this, key, { value, configurable: true, writable: true }); return value; }, set(value) { Object.defineProperty(this, key, { value, configurable: true, writable: true }); } }); } var initializer2 = (inst, issues) => { $ZodError.init(inst, issues); inst.name = "ZodError"; const proto = Object.getPrototypeOf(inst); if (_installedErrorProtos.has(proto)) return; _installedErrorProtos.add(proto); _lazyMethod(proto, "format", (self) => (mapper) => formatError(self, mapper)); _lazyMethod(proto, "flatten", (self) => (mapper) => flattenError(self, mapper)); _lazyMethod(proto, "addIssue", (self) => (issue2) => { self.issues.push(issue2); self.message = JSON.stringify(self.issues, jsonStringifyReplacer, 2); }); _lazyMethod(proto, "addIssues", (self) => (issues2) => { self.issues.push(...issues2); self.message = JSON.stringify(self.issues, jsonStringifyReplacer, 2); }); Object.defineProperty(proto, "isEmpty", { configurable: true, enumerable: false, get() { return this.issues.length === 0; } }); }; var ZodError = /* @__PURE__ */ $constructor("ZodError", initializer2); var ZodRealError = /* @__PURE__ */ $constructor("ZodError", initializer2, void 0, { Parent: Error }); // ../../../../node_modules/zod/v4/classic/parse.js var parse2 = /* @__PURE__ */ _parse(ZodRealError); var parseAsync2 = /* @__PURE__ */ _parseAsync(ZodRealError); var safeParse2 = /* @__PURE__ */ _safeParse(ZodRealError); var safeParseAsync2 = /* @__PURE__ */ _safeParseAsync(ZodRealError); var encode2 = /* @__PURE__ */ _encode(ZodRealError); var decode2 = /* @__PURE__ */ _decode(ZodRealError); var encodeAsync2 = /* @__PURE__ */ _encodeAsync(ZodRealError); var decodeAsync2 = /* @__PURE__ */ _decodeAsync(ZodRealError); var safeEncode2 = /* @__PURE__ */ _safeEncode(ZodRealError); var safeDecode2 = /* @__PURE__ */ _safeDecode(ZodRealError); var safeEncodeAsync2 = /* @__PURE__ */ _safeEncodeAsync(ZodRealError); var safeDecodeAsync2 = /* @__PURE__ */ _safeDecodeAsync(ZodRealError); // ../../../../node_modules/zod/v4/classic/schemas.js function _ensureDefaultLocale() { if (!globalConfig.localeError) config(en_default()); } function _ensureDefaultMemoizer() { if (!globalConfig.memoizer) config({ memoizer: memoizer() }); } var ZodType = /* @__PURE__ */ $constructor("ZodType", (inst, def) => { _ensureDefaultLocale(); $ZodType.init(inst, def); inst.def = def; inst.type = def.type; return inst; }, { check(...chks) { const def = this.def; return this.clone(util_exports.mergeDefs(def, { checks: [ ...def.checks ?? [], ...chks.map((ch) => typeof ch === "function" ? { _zod: { check: ch, def: { check: "custom" }, onattach: [] } } : ch) ] }), { parent: true }); }, with(...chks) { return this.check(...chks); }, clone(def, params) { return clone(this, def, params); }, brand() { return this; }, register(reg, meta3) { reg.add(this, meta3); return this; }, refine(check2, params) { return this.check(refine(check2, params)); }, superRefine(refinement, params) { return this.check(superRefine(refinement, params)); }, overwrite(fn) { return this.check(_overwrite(fn)); }, optional() { return optional(this); }, exactOptional() { return exactOptional(this); }, nullable() { return nullable(this); }, nullish() { return optional(nullable(this)); }, nonoptional(params) { return nonoptional(this, params); }, array() { return array(this); }, or(arg) { return union([this, arg]); }, and(arg) { return intersection(this, arg); }, transform(tx) { return pipe(this, transform(tx)); }, default(d) { return _default2(this, d); }, prefault(d) { return prefault(this, d); }, catch(params) { return _catch2(this, params); }, pipe(target) { return pipe(this, target); }, readonly() { return readonly(this); }, describe(description) { const cl = this.clone(); globalRegistry.add(cl, { description }); return cl; }, meta(...args) { if (args.length === 0) return globalRegistry.get(this); const cl = this.clone(); globalRegistry.add(cl, args[0]); return cl; }, isOptional() { return this.safeParse(void 0).success; }, isNullable() { return this.safeParse(null).success; }, apply(fn, ...args) { return args.length === 0 ? fn(this) : fn(this, ...args); }, // Overrides core's `~standard` to add `jsonSchema`. Must stay a prototype entry: redefining it per instance demotes instances to dictionary mode. get "~standard"() { return util_exports.hide(this, "~standard", { ...standardProps(this), jsonSchema: { input: createStandardJSONSchemaMethod(this, "input"), output: createStandardJSONSchemaMethod(this, "output") } }); }, set "~standard"(value) { util_exports.own(this, "~standard", value); }, parse: function _parse2(data, params) { return parse2(this, data, params, { callee: _parse2 }); }, parseAsync: async function _parseAsync2(data, params) { return await parseAsync2(this, data, params, { callee: _parseAsync2 }); }, safeParse(data, params) { return safeParse2(this, data, params); }, async safeParseAsync(data, params) { return safeParseAsync2(this, data, params); }, // `spa` is an alias: same function object as `safeParseAsync`, as before. get spa() { return this?.safeParseAsync; }, set spa(value) { util_exports.own(this, "spa", value); }, validate(data, params) { return validate(this, data, params); }, validateAsync(data, params) { return validateAsync(this, data, params); }, encode: function _encode2(data, params) { return encode2(this, data, params, { callee: _encode2 }); }, decode: function _decode2(data, params) { return decode2(this, data, params, { callee: _decode2 }); }, encodeAsync: async function _encodeAsync2(data, params) { return await encodeAsync2(this, data, params, { callee: _encodeAsync2 }); }, decodeAsync: async function _decodeAsync2(data, params) { return await decodeAsync2(this, data, params, { callee: _decodeAsync2 }); }, safeEncode(data, params) { return safeEncode2(this, data, params); }, safeDecode(data, params) { return safeDecode2(this, data, params); }, async safeEncodeAsync(data, params) { return safeEncodeAsync2(this, data, params); }, async safeDecodeAsync(data, params) { return safeDecodeAsync2(this, data, params); }, toJSONSchema(params) { return createToJSONSchemaMethod(this, {})(params); }, // Reads through to the registry on every access, so it must not cache. get description() { return globalRegistry.get(this)?.description; }, // No setter: `schema._def = x` throws, as it did when `_def` was a non-writable own property. get _def() { return this._zod.def; } }); var _ZodString = /* @__PURE__ */ $constructor( "_ZodString", (inst, def) => { $ZodString.init(inst, def); ZodType.init(inst, def); inst._zod.processJSONSchema = (ctx, json2, params) => stringProcessor(inst, ctx, json2, params); }, /* @__PURE__ */ util_exports.derived({ format: (inst) => aggregateChecks(inst).format ?? null, minLength: (inst) => aggregateChecks(inst).minimum ?? null, maxLength: (inst) => aggregateChecks(inst).maximum ?? null }, { regex(...args) { return this.check(_regex(...args)); }, includes(...args) { return this.check(_includes(...args)); }, startsWith(...args) { return this.check(_startsWith(...args)); }, endsWith(...args) { return this.check(_endsWith(...args)); }, min(...args) { return this.check(_minLength(...args)); }, max(...args) { return this.check(_maxLength(...args)); }, length(...args) { return this.check(_length(...args)); }, nonempty(...args) { return this.check(_minLength(1, ...args)); }, lowercase(params) { return this.check(_lowercase(params)); }, uppercase(params) { return this.check(_uppercase(params)); }, trim() { return this.check(_trim()); }, normalize(...args) { return this.check(_normalize(...args)); }, toLowerCase() { return this.check(_toLowerCase()); }, toUpperCase() { return this.check(_toUpperCase()); }, slugify() { return this.check(_slugify()); } }) ); var ZodString = /* @__PURE__ */ $constructor("ZodString", (inst, def) => { $ZodString.init(inst, def); _ZodString.init(inst, def); }, { email(params) { return this.check(_email(ZodEmail, params)); }, url(params) { return this.check(_url(ZodURL, params)); }, jwt(params) { return this.check(_jwt(ZodJWT, params)); }, emoji(params) { return this.check(_emoji2(ZodEmoji, params)); }, guid(params) { return this.check(_guid(ZodGUID, params)); }, uuid(params) { return this.check(_uuid(ZodUUID, params)); }, uuidv4(params) { return this.check(_uuidv4(ZodUUID, params)); }, uuidv6(params) { return this.check(_uuidv6(ZodUUID, params)); }, uuidv7(params) { return this.check(_uuidv7(ZodUUID, params)); }, nanoid(params) { return this.check(_nanoid(ZodNanoID, params)); }, cuid(params) { return this.check(_cuid(ZodCUID, params)); }, cuid2(params) { return this.check(_cuid2(ZodCUID2, params)); }, ulid(params) { return this.check(_ulid(ZodULID, params)); }, base64(params) { return this.check(_base64(ZodBase64, params)); }, base64url(params) { return this.check(_base64url(ZodBase64URL, params)); }, xid(params) { return this.check(_xid(ZodXID, params)); }, ksuid(params) { return this.check(_ksuid(ZodKSUID, params)); }, ipv4(params) { return this.check(_ipv4(ZodIPv4, params)); }, ipv6(params) { return this.check(_ipv6(ZodIPv6, params)); }, cidrv4(params) { return this.check(_cidrv4(ZodCIDRv4, params)); }, cidrv6(params) { return this.check(_cidrv6(ZodCIDRv6, params)); }, e164(params) { return this.check(_e164(ZodE164, params)); }, datetime(params) { return this.check(_isoDateTime(ZodISODateTime, params)); }, date(params) { return this.check(_isoDate(ZodISODate, params)); }, time(params) { return this.check(_isoTime(ZodISOTime, params)); }, duration(params) { return this.check(_isoDuration(ZodISODuration, params)); } }); function string2(params) { return _string(ZodString, params); } var ZodStringFormat = /* @__PURE__ */ $constructor("ZodStringFormat", (inst, def) => { $ZodStringFormat.init(inst, def); _ZodString.init(inst, def); }); var ZodISODateTime = /* @__PURE__ */ $constructor("ZodISODateTime", (inst, def) => { $ZodISODateTime.init(inst, def); ZodStringFormat.init(inst, def); }); var ZodISODate = /* @__PURE__ */ $constructor("ZodISODate", (inst, def) => { $ZodISODate.init(inst, def); ZodStringFormat.init(inst, def); }); var ZodISOTime = /* @__PURE__ */ $constructor("ZodISOTime", (inst, def) => { $ZodISOTime.init(inst, def); ZodStringFormat.init(inst, def); }); var ZodISODuration = /* @__PURE__ */ $constructor("ZodISODuration", (inst, def) => { $ZodISODuration.init(inst, def); ZodStringFormat.init(inst, def); }); var ZodEmail = /* @__PURE__ */ $constructor("ZodEmail", (inst, def) => { $ZodEmail.init(inst, def); ZodStringFormat.init(inst, def); }); function email2(params) { return _email(ZodEmail, params); } var ZodGUID = /* @__PURE__ */ $constructor("ZodGUID", (inst, def) => { $ZodGUID.init(inst, def); ZodStringFormat.init(inst, def); }); function guid2(params) { return _guid(ZodGUID, params); } var ZodUUID = /* @__PURE__ */ $constructor("ZodUUID", (inst, def) => { $ZodUUID.init(inst, def); ZodStringFormat.init(inst, def); }); function uuid2(params) { return _uuid(ZodUUID, params); } function uuidv4(params) { return _uuidv4(ZodUUID, params); } function uuidv6(params) { return _uuidv6(ZodUUID, params); } function uuidv7(params) { return _uuidv7(ZodUUID, params); } var ZodURL = /* @__PURE__ */ $constructor("ZodURL", (inst, def) => { $ZodURL.init(inst, def); ZodStringFormat.init(inst, def); }); function url(params) { return _url(ZodURL, params); } function httpUrl(params) { return _url(ZodURL, { protocol: httpProtocol, hostname: domain, ...util_exports.normalizeParams(params) }); } var ZodEmoji = /* @__PURE__ */ $constructor("ZodEmoji", (inst, def) => { $ZodEmoji.init(inst, def); ZodStringFormat.init(inst, def); }); function emoji2(params) { return _emoji2(ZodEmoji, params); } var ZodNanoID = /* @__PURE__ */ $constructor("ZodNanoID", (inst, def) => { $ZodNanoID.init(inst, def); ZodStringFormat.init(inst, def); }); function nanoid2(params) { return _nanoid(ZodNanoID, params); } var ZodCUID = /* @__PURE__ */ $constructor("ZodCUID", (inst, def) => { $ZodCUID.init(inst, def); ZodStringFormat.init(inst, def); }); function cuid3(params) { return _cuid(ZodCUID, params); } var ZodCUID2 = /* @__PURE__ */ $constructor("ZodCUID2", (inst, def) => { $ZodCUID2.init(inst, def); ZodStringFormat.init(inst, def); }); function cuid22(params) { return _cuid2(ZodCUID2, params); } var ZodULID = /* @__PURE__ */ $constructor("ZodULID", (inst, def) => { $ZodULID.init(inst, def); ZodStringFormat.init(inst, def); }); function ulid2(params) { return _ulid(ZodULID, params); } var ZodXID = /* @__PURE__ */ $constructor("ZodXID", (inst, def) => { $ZodXID.init(inst, def); ZodStringFormat.init(inst, def); }); function xid2(params) { return _xid(ZodXID, params); } var ZodKSUID = /* @__PURE__ */ $constructor("ZodKSUID", (inst, def) => { $ZodKSUID.init(inst, def); ZodStringFormat.init(inst, def); }); function ksuid2(params) { return _ksuid(ZodKSUID, params); } var ZodIPv4 = /* @__PURE__ */ $constructor("ZodIPv4", (inst, def) => { $ZodIPv4.init(inst, def); ZodStringFormat.init(inst, def); }); function ipv42(params) { return _ipv4(ZodIPv4, params); } var ZodMAC = /* @__PURE__ */ $constructor("ZodMAC", (inst, def) => { $ZodMAC.init(inst, def); ZodStringFormat.init(inst, def); }); function mac2(params) { return _mac(ZodMAC, params); } var ZodIPv6 = /* @__PURE__ */ $constructor("ZodIPv6", (inst, def) => { $ZodIPv6.init(inst, def); ZodStringFormat.init(inst, def); }); function ipv62(params) { return _ipv6(ZodIPv6, params); } var ZodCIDRv4 = /* @__PURE__ */ $constructor("ZodCIDRv4", (inst, def) => { $ZodCIDRv4.init(inst, def); ZodStringFormat.init(inst, def); }); function cidrv42(params) { return _cidrv4(ZodCIDRv4, params); } var ZodCIDRv6 = /* @__PURE__ */ $constructor("ZodCIDRv6", (inst, def) => { $ZodCIDRv6.init(inst, def); ZodStringFormat.init(inst, def); }); function cidrv62(params) { return _cidrv6(ZodCIDRv6, params); } var ZodBase64 = /* @__PURE__ */ $constructor("ZodBase64", (inst, def) => { $ZodBase64.init(inst, def); ZodStringFormat.init(inst, def); }); function base642(params) { return _base64(ZodBase64, params); } var ZodBase64URL = /* @__PURE__ */ $constructor("ZodBase64URL", (inst, def) => { $ZodBase64URL.init(inst, def); ZodStringFormat.init(inst, def); }); function base64url2(params) { return _base64url(ZodBase64URL, params); } var ZodE164 = /* @__PURE__ */ $constructor("ZodE164", (inst, def) => { $ZodE164.init(inst, def); ZodStringFormat.init(inst, def); }); function e1642(params) { return _e164(ZodE164, params); } var ZodCreditCard = /* @__PURE__ */ $constructor("ZodCreditCard", (inst, def) => { $ZodCreditCard.init(inst, def); ZodStringFormat.init(inst, def); }); function creditCard2(params) { return _creditCard(ZodCreditCard, params); } var ZodIBAN = /* @__PURE__ */ $constructor("ZodIBAN", (inst, def) => { $ZodIBAN.init(inst, def); ZodStringFormat.init(inst, def); }); function iban2(params) { return _iban(ZodIBAN, params); } var ZodJWT = /* @__PURE__ */ $constructor("ZodJWT", (inst, def) => { $ZodJWT.init(inst, def); ZodStringFormat.init(inst, def); }); function jwt(params) { return _jwt(ZodJWT, params); } var ZodCustomStringFormat = /* @__PURE__ */ $constructor("ZodCustomStringFormat", (inst, def) => { $ZodCustomStringFormat.init(inst, def); ZodStringFormat.init(inst, def); }); function stringFormat(format, fnOrRegex, _params = {}) { return _stringFormat(ZodCustomStringFormat, format, fnOrRegex, _params); } function hostname2(_params) { return _stringFormat(ZodCustomStringFormat, "hostname", hostname, _params); } function hex2(_params) { return _stringFormat(ZodCustomStringFormat, "hex", hex, _params); } function currencyCode2(_params) { return _stringFormat(ZodCustomStringFormat, "currency_code", currencyCode, _params); } function hash(alg, params) { const enc = params?.enc ?? "hex"; const format = `${alg}_${enc}`; const regex = regexes_exports[format]; if (!regex) throw new Error(`Unrecognized hash format: ${format}`); return _stringFormat(ZodCustomStringFormat, format, regex, params); } var ZodNumber = /* @__PURE__ */ $constructor( "ZodNumber", (inst, def) => { $ZodNumber.init(inst, def); ZodType.init(inst, def); inst._zod.processJSONSchema = (ctx, json2, params) => numberProcessor(inst, ctx, json2, params); inst.isFinite = true; }, /* @__PURE__ */ util_exports.derived({ minValue: (inst) => { const { minimum, exclusiveMinimum } = aggregateChecks(inst); return Math.max(minimum ?? Number.NEGATIVE_INFINITY, exclusiveMinimum ?? Number.NEGATIVE_INFINITY); }, maxValue: (inst) => { const { maximum, exclusiveMaximum } = aggregateChecks(inst); return Math.min(maximum ?? Number.POSITIVE_INFINITY, exclusiveMaximum ?? Number.POSITIVE_INFINITY); }, isInt: (inst) => { const { isInt, multipleOf } = aggregateChecks(inst); return !!isInt || !!multipleOf?.some(Number.isSafeInteger); }, format: (inst) => aggregateChecks(inst).format ?? null }, { gt(value, params) { return this.check(_gt(value, params)); }, gte(value, params) { return this.check(_gte(value, params)); }, min(value, params) { return this.check(_gte(value, params)); }, lt(value, params) { return this.check(_lt(value, params)); }, lte(value, params) { return this.check(_lte(value, params)); }, max(value, params) { return this.check(_lte(value, params)); }, int(params) { return this.check(int(params)); }, safe(params) { return this.check(int(params)); }, positive(params) { return this.check(_gt(0, params)); }, nonnegative(params) { return this.check(_gte(0, params)); }, negative(params) { return this.check(_lt(0, params)); }, nonpositive(params) { return this.check(_lte(0, params)); }, multipleOf(value, params) { return this.check(_multipleOf(value, params)); }, step(value, params) { return this.check(_multipleOf(value, params)); }, finite() { return this; } }) ); function number2(params) { return _number(ZodNumber, params); } var ZodNumberFormat = /* @__PURE__ */ $constructor("ZodNumberFormat", (inst, def) => { $ZodNumberFormat.init(inst, def); ZodNumber.init(inst, def); }); function int(params) { return _int(ZodNumberFormat, params); } function float32(params) { return _float32(ZodNumberFormat, params); } function float64(params) { return _float64(ZodNumberFormat, params); } function int32(params) { return _int32(ZodNumberFormat, params); } function uint32(params) { return _uint32(ZodNumberFormat, params); } var ZodBoolean = /* @__PURE__ */ $constructor("ZodBoolean", (inst, def) => { $ZodBoolean.init(inst, def); ZodType.init(inst, def); inst._zod.processJSONSchema = (ctx, json2, params) => booleanProcessor(inst, ctx, json2, params); }); function boolean2(params) { return _boolean(ZodBoolean, params); } var ZodBigInt = /* @__PURE__ */ $constructor( "ZodBigInt", (inst, def) => { $ZodBigInt.init(inst, def); ZodType.init(inst, def); inst._zod.processJSONSchema = (ctx, json2, params) => bigintProcessor(inst, ctx, json2, params); }, /* @__PURE__ */ util_exports.derived({ minValue: (inst) => aggregateChecks(inst).minimum ?? null, maxValue: (inst) => aggregateChecks(inst).maximum ?? null, format: (inst) => aggregateChecks(inst).format ?? null }, { gte(value, params) { return this.check(_gte(value, params)); }, min(value, params) { return this.check(_gte(value, params)); }, gt(value, params) { return this.check(_gt(value, params)); }, lt(value, params) { return this.check(_lt(value, params)); }, lte(value, params) { return this.check(_lte(value, params)); }, max(value, params) { return this.check(_lte(value, params)); }, positive(params) { return this.check(_gt(BigInt(0), params)); }, negative(params) { return this.check(_lt(BigInt(0), params)); }, nonpositive(params) { return this.check(_lte(BigInt(0), params)); }, nonnegative(params) { return this.check(_gte(BigInt(0), params)); }, multipleOf(value, params) { return this.check(_multipleOf(value, params)); } }) ); function bigint2(params) { return _bigint(ZodBigInt, params); } var ZodBigIntFormat = /* @__PURE__ */ $constructor("ZodBigIntFormat", (inst, def) => { $ZodBigIntFormat.init(inst, def); ZodBigInt.init(inst, def); }); function int64(params) { return _int64(ZodBigIntFormat, params); } function uint64(params) { return _uint64(ZodBigIntFormat, params); } var ZodSymbol = /* @__PURE__ */ $constructor("ZodSymbol", (inst, def) => { $ZodSymbol.init(inst, def); ZodType.init(inst, def); inst._zod.processJSONSchema = (ctx, json2, params) => symbolProcessor(inst, ctx, json2, params); }); function symbol(params) { return _symbol(ZodSymbol, params); } var ZodUndefined = /* @__PURE__ */ $constructor("ZodUndefined", (inst, def) => { $ZodUndefined.init(inst, def); ZodType.init(inst, def); inst._zod.processJSONSchema = (ctx, json2, params) => undefinedProcessor(inst, ctx, json2, params); }); function _undefined3(params) { return _undefined2(ZodUndefined, params); } var ZodNull = /* @__PURE__ */ $constructor("ZodNull", (inst, def) => { $ZodNull.init(inst, def); ZodType.init(inst, def); inst._zod.processJSONSchema = (ctx, json2, params) => nullProcessor(inst, ctx, json2, params); }); function _null3(params) { return _null2(ZodNull, params); } var ZodAny = /* @__PURE__ */ $constructor("ZodAny", (inst, def) => { $ZodAny.init(inst, def); ZodType.init(inst, def); inst._zod.processJSONSchema = (ctx, json2, params) => anyProcessor(inst, ctx, json2, params); }); function any() { return _any(ZodAny); } var ZodUnknown = /* @__PURE__ */ $constructor("ZodUnknown", (inst, def) => { $ZodUnknown.init(inst, def); ZodType.init(inst, def); inst._zod.processJSONSchema = (ctx, json2, params) => unknownProcessor(inst, ctx, json2, params); }); function unknown() { return _unknown(ZodUnknown); } var ZodNever = /* @__PURE__ */ $constructor("ZodNever", (inst, def) => { $ZodNever.init(inst, def); ZodType.init(inst, def); inst._zod.processJSONSchema = (ctx, json2, params) => neverProcessor(inst, ctx, json2, params); }); function never(params) { return _never(ZodNever, params); } var ZodVoid = /* @__PURE__ */ $constructor("ZodVoid", (inst, def) => { $ZodVoid.init(inst, def); ZodType.init(inst, def); inst._zod.processJSONSchema = (ctx, json2, params) => voidProcessor(inst, ctx, json2, params); }); function _void2(params) { return _void(ZodVoid, params); } var ZodDate = /* @__PURE__ */ $constructor( "ZodDate", (inst, def) => { $ZodDate.init(inst, def); ZodType.init(inst, def); inst._zod.processJSONSchema = (ctx, json2, params) => dateProcessor(inst, ctx, json2, params); inst.min = (value, params) => inst.check(_gte(value, params)); inst.max = (value, params) => inst.check(_lte(value, params)); }, /* @__PURE__ */ util_exports.derived({ minDate: (inst) => { const { minimum } = aggregateChecks(inst); return minimum ? new Date(minimum) : null; }, maxDate: (inst) => { const { maximum } = aggregateChecks(inst); return maximum ? new Date(maximum) : null; } }, {}) ); function date2(params) { return _date(ZodDate, params); } var ZodArray = /* @__PURE__ */ $constructor("ZodArray", (inst, def) => { _ensureDefaultMemoizer(); $ZodArray.init(inst, def); ZodType.init(inst, def); inst._zod.processJSONSchema = (ctx, json2, params) => arrayProcessor(inst, ctx, json2, params); inst.element = def.element; }, { min(n, params) { return this.check(_minLength(n, params)); }, nonempty(params) { return this.check(_minLength(1, params)); }, max(n, params) { return this.check(_maxLength(n, params)); }, length(n, params) { return this.check(_length(n, params)); }, unwrap() { return this.element; } }); function array(element, params) { return _array(ZodArray, element, params); } function keyof(schema) { const shape = schema._zod.def.shape; return _enum2(Object.keys(shape)); } var ZodObject = /* @__PURE__ */ $constructor("ZodObject", (inst, def) => { _ensureDefaultMemoizer(); $ZodObjectJIT.init(inst, def); ZodType.init(inst, def); inst._zod.processJSONSchema = (ctx, json2, params) => objectProcessor(inst, ctx, json2, params); util_exports.installLazyProp(inst, "shape", (self) => self._zod.def.shape, false); }, { keyof() { return _enum2(Object.keys(this._zod.def.shape)); }, catchall(catchall) { return this.clone(util_exports.mergeDefs(this._zod.def, { catchall })); }, passthrough() { return this.clone(util_exports.mergeDefs(this._zod.def, { catchall: unknown() })); }, loose() { return this.clone(util_exports.mergeDefs(this._zod.def, { catchall: unknown() })); }, strict() { return this.clone(util_exports.mergeDefs(this._zod.def, { catchall: never() })); }, strip() { return this.clone(util_exports.mergeDefs(this._zod.def, { catchall: void 0 })); }, extend(incoming) { return util_exports.extend(this, incoming); }, safeExtend(incoming) { return util_exports.safeExtend(this, incoming); }, merge(other) { return util_exports.merge(this, other); }, pick(mask) { return util_exports.pick(this, mask); }, omit(mask) { return util_exports.omit(this, mask); }, partial(...args) { return util_exports.partial(ZodOptional, this, args[0]); }, exactPartial(...args) { return util_exports.partial(ZodExactOptional, this, args[0], "exactPartial"); }, required(...args) { return util_exports.required(ZodNonOptional, this, args[0]); } }); function object(shape, params) { const def = { type: "object", shape: shape ?? {}, ...util_exports.normalizeParams(params) }; return new ZodObject(def); } function strictObject(shape, params) { return new ZodObject({ type: "object", shape, catchall: never(), ...util_exports.normalizeParams(params) }); } function looseObject(shape, params) { return new ZodObject({ type: "object", shape, catchall: unknown(), ...util_exports.normalizeParams(params) }); } var ZodUnion = /* @__PURE__ */ $constructor("ZodUnion", (inst, def) => { $ZodUnion.init(inst, def); ZodType.init(inst, def); inst._zod.processJSONSchema = (ctx, json2, params) => unionProcessor(inst, ctx, json2, params); inst.options = def.options; }); function union(options, params) { return new ZodUnion({ type: "union", options, ...util_exports.normalizeParams(params) }); } var ZodXor = /* @__PURE__ */ $constructor("ZodXor", (inst, def) => { ZodUnion.init(inst, def); $ZodXor.init(inst, def); inst._zod.processJSONSchema = (ctx, json2, params) => unionProcessor(inst, ctx, json2, params); inst.options = def.options; }); function xor(options, params) { return new ZodXor({ type: "union", options, inclusive: false, ...util_exports.normalizeParams(params) }); } var ZodDiscriminatedUnion = /* @__PURE__ */ $constructor("ZodDiscriminatedUnion", (inst, def) => { ZodUnion.init(inst, def); $ZodDiscriminatedUnion.init(inst, def); }); function discriminatedUnion(discriminator, options, params) { return new ZodDiscriminatedUnion({ type: "union", options, discriminator, ...util_exports.normalizeParams(params) }); } var ZodIntersection = /* @__PURE__ */ $constructor("ZodIntersection", (inst, def) => { $ZodIntersection.init(inst, def); ZodType.init(inst, def); inst._zod.processJSONSchema = (ctx, json2, params) => intersectionProcessor(inst, ctx, json2, params); }); function intersection(left, right) { return new ZodIntersection({ type: "intersection", left, right }); } var ZodTuple = /* @__PURE__ */ $constructor("ZodTuple", (inst, def) => { _ensureDefaultMemoizer(); $ZodTuple.init(inst, def); ZodType.init(inst, def); inst._zod.processJSONSchema = (ctx, json2, params) => tupleProcessor(inst, ctx, json2, params); }, { rest(rest) { return this.clone({ ...this._zod.def, rest }); }, partial() { const def = this._zod.def; if (def.checks?.length) throw new Error(".partial() cannot be used on tuple schemas containing refinements"); return this.clone({ ...def, items: def.items.map((item) => new ZodOptional({ type: "optional", innerType: item })) }); } }); function tuple(items, _paramsOrRest, _params) { const hasRest = _paramsOrRest instanceof $ZodType; const params = hasRest ? _params : _paramsOrRest; const rest = hasRest ? _paramsOrRest : null; return new ZodTuple({ type: "tuple", items, rest, ...util_exports.normalizeParams(params) }); } var ZodRecord = /* @__PURE__ */ $constructor("ZodRecord", (inst, def) => { _ensureDefaultMemoizer(); $ZodRecord.init(inst, def); ZodType.init(inst, def); inst._zod.processJSONSchema = (ctx, json2, params) => recordProcessor(inst, ctx, json2, params); inst.keyType = def.keyType; inst.valueType = def.valueType; }); function record(keyType, valueType, params) { if (!valueType || !valueType._zod) { return new ZodRecord({ type: "record", keyType: string2(), valueType: keyType, ...util_exports.normalizeParams(valueType) }); } return new ZodRecord({ type: "record", keyType, valueType, ...util_exports.normalizeParams(params) }); } function partialRecord(keyType, valueType, params) { return new ZodRecord({ type: "record", keyType, valueType, ...util_exports.normalizeParams(params), partial: true }); } function looseRecord(keyType, valueType, params) { return new ZodRecord({ type: "record", keyType, valueType, mode: "loose", ...util_exports.normalizeParams(params) }); } var ZodMap = /* @__PURE__ */ $constructor("ZodMap", (inst, def) => { _ensureDefaultMemoizer(); $ZodMap.init(inst, def); ZodType.init(inst, def); inst._zod.processJSONSchema = (ctx, json2, params) => mapProcessor(inst, ctx, json2, params); inst.keyType = def.keyType; inst.valueType = def.valueType; inst.min = (...args) => inst.check(_minSize(...args)); inst.nonempty = (params) => inst.check(_minSize(1, params)); inst.max = (...args) => inst.check(_maxSize(...args)); inst.size = (...args) => inst.check(_size(...args)); }); function map(keyType, valueType, params) { return new ZodMap({ type: "map", keyType, valueType, ...util_exports.normalizeParams(params) }); } var ZodSet = /* @__PURE__ */ $constructor("ZodSet", (inst, def) => { _ensureDefaultMemoizer(); $ZodSet.init(inst, def); ZodType.init(inst, def); inst._zod.processJSONSchema = (ctx, json2, params) => setProcessor(inst, ctx, json2, params); inst.min = (...args) => inst.check(_minSize(...args)); inst.nonempty = (params) => inst.check(_minSize(1, params)); inst.max = (...args) => inst.check(_maxSize(...args)); inst.size = (...args) => inst.check(_size(...args)); }); function set(valueType, params) { return new ZodSet({ type: "set", valueType, ...util_exports.normalizeParams(params) }); } var ZodEnum = /* @__PURE__ */ $constructor("ZodEnum", (inst, def) => { $ZodEnum.init(inst, def); ZodType.init(inst, def); inst._zod.processJSONSchema = (ctx, json2, params) => enumProcessor(inst, ctx, json2, params); inst.enum = def.entries; inst.options = [...inst._zod.values]; const keys = new Set(Object.keys(def.entries)); inst.extract = (values, params) => { const newEntries = {}; for (const value of values) { if (keys.has(value)) { newEntries[value] = def.entries[value]; } else throw new Error(`Key ${value} not found in enum`); } return new ZodEnum({ ...def, checks: [], ...util_exports.normalizeParams(params), entries: newEntries }); }; inst.exclude = (values, params) => { const newEntries = { ...def.entries }; for (const value of values) { if (keys.has(value)) { delete newEntries[value]; } else throw new Error(`Key ${value} not found in enum`); } return new ZodEnum({ ...def, checks: [], ...util_exports.normalizeParams(params), entries: newEntries }); }; }); function _enum2(values, params) { const entries = Array.isArray(values) ? Object.fromEntries(values.map((v) => [v, v])) : values; return new ZodEnum({ type: "enum", entries, ...util_exports.normalizeParams(params) }); } function nativeEnum(entries, params) { return new ZodEnum({ type: "enum", entries, ...util_exports.normalizeParams(params) }); } var ZodLiteral = /* @__PURE__ */ $constructor("ZodLiteral", (inst, def) => { $ZodLiteral.init(inst, def); ZodType.init(inst, def); inst._zod.processJSONSchema = (ctx, json2, params) => literalProcessor(inst, ctx, json2, params); inst.values = new Set(def.values); Object.defineProperty(inst, "value", { get() { if (def.values.length > 1) { throw new Error("This schema contains multiple valid literal values. Use `.values` instead."); } return def.values[0]; } }); }); function literal(value, params) { return new ZodLiteral({ type: "literal", values: Array.isArray(value) ? value : [value], ...util_exports.normalizeParams(params) }); } var ZodFile = /* @__PURE__ */ $constructor("ZodFile", (inst, def) => { $ZodFile.init(inst, def); ZodType.init(inst, def); inst._zod.processJSONSchema = (ctx, json2, params) => fileProcessor(inst, ctx, json2, params); inst.min = (size, params) => inst.check(_minSize(size, params)); inst.max = (size, params) => inst.check(_maxSize(size, params)); inst.mime = (types, params) => inst.check(_mime(Array.isArray(types) ? types : [types], params)); }); function file(params) { return _file(ZodFile, params); } var ZodTransform = /* @__PURE__ */ $constructor("ZodTransform", (inst, def) => { _ensureDefaultMemoizer(); $ZodTransform.init(inst, def); ZodType.init(inst, def); inst._zod.processJSONSchema = (ctx, json2, params) => transformProcessor(inst, ctx, json2, params); inst._zod.parse = (payload, _ctx) => { if (_ctx.direction === "backward") { throw new $ZodEncodeError(inst.constructor.name); } payload.addIssue = (issue2) => { if (typeof issue2 === "string") { payload.issues.push(util_exports.issue(issue2, payload.value, def)); } else { const _issue = issue2; if (_issue.fatal) _issue.continue = false; _issue.code ?? (_issue.code = "custom"); if (!("input" in _issue)) _issue.input = payload.value; _issue.inst ?? (_issue.inst = inst); payload.issues.push(util_exports.issue(_issue)); } }; const output2 = def.transform(payload.value, payload); if (output2 instanceof Promise) { return output2.then((output3) => { payload.value = output3; return payload; }); } payload.value = output2; return payload; }; }); function transform(fn) { return new ZodTransform({ type: "transform", transform: fn }); } var ZodOptional = /* @__PURE__ */ $constructor("ZodOptional", (inst, def) => { $ZodOptional.init(inst, def); ZodType.init(inst, def); inst._zod.processJSONSchema = (ctx, json2, params) => optionalProcessor(inst, ctx, json2, params); inst.unwrap = () => inst._zod.def.innerType; }); function optional(innerType) { return new ZodOptional({ type: "optional", innerType }); } var ZodExactOptional = /* @__PURE__ */ $constructor("ZodExactOptional", (inst, def) => { $ZodExactOptional.init(inst, def); ZodType.init(inst, def); inst._zod.processJSONSchema = (ctx, json2, params) => optionalProcessor(inst, ctx, json2, params); inst.unwrap = () => inst._zod.def.innerType; }); function exactOptional(innerType) { return new ZodExactOptional({ type: "optional", innerType }); } var ZodNullable = /* @__PURE__ */ $constructor("ZodNullable", (inst, def) => { $ZodNullable.init(inst, def); ZodType.init(inst, def); inst._zod.processJSONSchema = (ctx, json2, params) => nullableProcessor(inst, ctx, json2, params); inst.unwrap = () => inst._zod.def.innerType; }); function nullable(innerType) { return new ZodNullable({ type: "nullable", innerType }); } function nullish2(innerType) { return optional(nullable(innerType)); } var ZodDefault = /* @__PURE__ */ $constructor("ZodDefault", (inst, def) => { $ZodDefault.init(inst, def); ZodType.init(inst, def); inst._zod.processJSONSchema = (ctx, json2, params) => defaultProcessor(inst, ctx, json2, params); inst.unwrap = () => inst._zod.def.innerType; inst.removeDefault = inst.unwrap; }); function _default2(innerType, defaultValue) { return new ZodDefault({ type: "default", innerType, get defaultValue() { return typeof defaultValue === "function" ? defaultValue() : util_exports.shallowClone(defaultValue); } }); } var ZodPrefault = /* @__PURE__ */ $constructor("ZodPrefault", (inst, def) => { $ZodPrefault.init(inst, def); ZodType.init(inst, def); inst._zod.processJSONSchema = (ctx, json2, params) => prefaultProcessor(inst, ctx, json2, params); inst.unwrap = () => inst._zod.def.innerType; }); function prefault(innerType, defaultValue) { return new ZodPrefault({ type: "prefault", innerType, get defaultValue() { return typeof defaultValue === "function" ? defaultValue() : util_exports.shallowClone(defaultValue); } }); } var ZodNonOptional = /* @__PURE__ */ $constructor("ZodNonOptional", (inst, def) => { $ZodNonOptional.init(inst, def); ZodType.init(inst, def); inst._zod.processJSONSchema = (ctx, json2, params) => nonoptionalProcessor(inst, ctx, json2, params); inst.unwrap = () => inst._zod.def.innerType; }); function nonoptional(innerType, params) { return new ZodNonOptional({ type: "nonoptional", innerType, ...util_exports.normalizeParams(params) }); } var ZodSuccess = /* @__PURE__ */ $constructor("ZodSuccess", (inst, def) => { $ZodSuccess.init(inst, def); ZodType.init(inst, def); inst._zod.processJSONSchema = (ctx, json2, params) => successProcessor(inst, ctx, json2, params); inst.unwrap = () => inst._zod.def.innerType; }); function success(innerType) { return new ZodSuccess({ type: "success", innerType }); } var ZodCatch = /* @__PURE__ */ $constructor("ZodCatch", (inst, def) => { $ZodCatch.init(inst, def); ZodType.init(inst, def); inst._zod.processJSONSchema = (ctx, json2, params) => catchProcessor(inst, ctx, json2, params); inst.unwrap = () => inst._zod.def.innerType; inst.removeCatch = inst.unwrap; }); function _catch2(innerType, catchValue) { return new ZodCatch({ type: "catch", innerType, catchValue: typeof catchValue === "function" ? catchValue : util_exports.constantCatch(catchValue) }); } var ZodNaN = /* @__PURE__ */ $constructor("ZodNaN", (inst, def) => { $ZodNaN.init(inst, def); ZodType.init(inst, def); inst._zod.processJSONSchema = (ctx, json2, params) => nanProcessor(inst, ctx, json2, params); }); function nan(params) { return _nan(ZodNaN, params); } var ZodPipe = /* @__PURE__ */ $constructor("ZodPipe", (inst, def) => { $ZodPipe.init(inst, def); ZodType.init(inst, def); inst._zod.processJSONSchema = (ctx, json2, params) => pipeProcessor(inst, ctx, json2, params); inst.in = def.in; inst.out = def.out; }); function pipe(in_, out) { return new ZodPipe({ type: "pipe", in: in_, out // ...util.normalizeParams(params), }); } var ZodCodec = /* @__PURE__ */ $constructor("ZodCodec", (inst, def) => { ZodPipe.init(inst, def); $ZodCodec.init(inst, def); }); function codec(in_, out, params) { return new ZodCodec({ type: "pipe", in: in_, out, transform: params.decode, reverseTransform: params.encode }); } function invertCodec(codec2) { const def = codec2._zod.def; return new ZodCodec({ type: "pipe", in: def.out, out: def.in, transform: def.reverseTransform, reverseTransform: def.transform }); } var ZodPreprocess = /* @__PURE__ */ $constructor("ZodPreprocess", (inst, def) => { ZodPipe.init(inst, def); $ZodPreprocess.init(inst, def); }); var ZodReadonly = /* @__PURE__ */ $constructor("ZodReadonly", (inst, def) => { $ZodReadonly.init(inst, def); ZodType.init(inst, def); inst._zod.processJSONSchema = (ctx, json2, params) => readonlyProcessor(inst, ctx, json2, params); inst.unwrap = () => inst._zod.def.innerType; }); function readonly(innerType) { return new ZodReadonly({ type: "readonly", innerType }); } var ZodTemplateLiteral = /* @__PURE__ */ $constructor("ZodTemplateLiteral", (inst, def) => { $ZodTemplateLiteral.init(inst, def); ZodType.init(inst, def); inst._zod.processJSONSchema = (ctx, json2, params) => templateLiteralProcessor(inst, ctx, json2, params); }); function templateLiteral(parts, params) { return new ZodTemplateLiteral({ type: "template_literal", parts, ...util_exports.normalizeParams(params) }); } var ZodLazy = /* @__PURE__ */ $constructor("ZodLazy", (inst, def) => { $ZodLazy.init(inst, def); ZodType.init(inst, def); inst._zod.processJSONSchema = (ctx, json2, params) => lazyProcessor(inst, ctx, json2, params); inst.unwrap = () => inst._zod.def.getter(); }); function lazy(getter) { return new ZodLazy({ type: "lazy", getter }); } var ZodPromise = /* @__PURE__ */ $constructor("ZodPromise", (inst, def) => { $ZodPromise.init(inst, def); ZodType.init(inst, def); inst._zod.processJSONSchema = (ctx, json2, params) => promiseProcessor(inst, ctx, json2, params); inst.unwrap = () => inst._zod.def.innerType; }); function promise(innerType) { return new ZodPromise({ type: "promise", innerType }); } var ZodFunction = /* @__PURE__ */ $constructor("ZodFunction", (inst, def) => { $ZodFunction.init(inst, def); ZodType.init(inst, def); inst._zod.processJSONSchema = (ctx, json2, params) => functionProcessor(inst, ctx, json2, params); }); function _function(params) { return new ZodFunction({ type: "function", input: Array.isArray(params?.input) ? tuple(params?.input) : params?.input ?? array(unknown()), output: params?.output ?? unknown() }); } var ZodCustom = /* @__PURE__ */ $constructor("ZodCustom", (inst, def) => { $ZodCustom.init(inst, def); ZodType.init(inst, def); inst._zod.processJSONSchema = (ctx, json2, params) => customProcessor(inst, ctx, json2, params); }); function check(fn) { const ch = new $ZodCheck({ check: "custom" // ...util.normalizeParams(params), }); ch._zod.check = fn; return ch; } function custom(fn, _params) { return _custom(ZodCustom, fn ?? (() => true), _params); } function refine(fn, _params = {}) { return _refine(ZodCustom, fn, _params); } function superRefine(fn, params) { return _superRefine(fn, params); } var describe2 = describe; var meta2 = meta; var ZodInstanceOf = /* @__PURE__ */ $constructor("ZodInstanceOf", (inst, def) => { ZodCustom.init(inst, def); }, { properties(shape, params) { return this.check(_properties(shape, params)); } }); function _instanceof(cls, params = {}) { const inst = new ZodInstanceOf({ type: "custom", check: "custom", fn: (data) => data instanceof cls, abort: true, ...util_exports.normalizeParams(params) }); inst._zod.bag.Class = cls; inst._zod.check = (payload) => { if (!(payload.value instanceof cls)) { payload.issues.push({ code: "invalid_type", expected: cls.name, input: payload.value, inst, path: [...inst._zod.def.path ?? []] }); } }; return inst; } var stringbool = (...args) => _stringbool({ Codec: ZodCodec, Boolean: ZodBoolean, String: ZodString }, ...args); function json(params) { const jsonSchema = lazy(() => { return union([string2(params), number2(), boolean2(), _null3(), array(jsonSchema), record(string2(), jsonSchema)]); }); return jsonSchema; } function preprocess(fn, schema) { return new ZodPreprocess({ type: "pipe", in: transform(fn), out: schema }); } // ../../../../node_modules/zod/v4/classic/compat.js var ZodIssueCode = { invalid_type: "invalid_type", too_big: "too_big", too_small: "too_small", invalid_format: "invalid_format", not_multiple_of: "not_multiple_of", unrecognized_keys: "unrecognized_keys", invalid_union: "invalid_union", invalid_key: "invalid_key", invalid_element: "invalid_element", invalid_value: "invalid_value", custom: "custom" }; function setErrorMap(map2) { config({ customError: map2 }); } function getErrorMap() { return config().customError; } var ZodFirstPartyTypeKind; /* @__PURE__ */ (function(ZodFirstPartyTypeKind4) { })(ZodFirstPartyTypeKind || (ZodFirstPartyTypeKind = {})); // ../../../../node_modules/zod/v4/classic/iso.js var iso_exports = {}; __export(iso_exports, { ZodISODate: () => ZodISODate, ZodISODateTime: () => ZodISODateTime, ZodISODuration: () => ZodISODuration, ZodISOTime: () => ZodISOTime, date: () => date3, datetime: () => datetime2, duration: () => duration2, time: () => time2 }); function datetime2(params) { return _isoDateTime(ZodISODateTime, params); } function date3(params) { return _isoDate(ZodISODate, params); } function time2(params) { return _isoTime(ZodISOTime, params); } function duration2(params) { return _isoDuration(ZodISODuration, params); } // ../../../../node_modules/zod/v4/classic/from-json-schema.js var z = { ...schemas_exports2, ...checks_exports2, iso: iso_exports }; var RECOGNIZED_KEYS = /* @__PURE__ */ new Set([ // Schema identification "$schema", "$ref", "$defs", "definitions", // Core schema keywords "$id", "id", "$comment", "$anchor", "$vocabulary", "$dynamicRef", "$dynamicAnchor", // Type "type", "enum", "const", // Composition "anyOf", "oneOf", "allOf", "not", // Object "properties", "required", "additionalProperties", "patternProperties", "propertyNames", "minProperties", "maxProperties", // Array "items", "prefixItems", "additionalItems", "minItems", "maxItems", "uniqueItems", "contains", "minContains", "maxContains", // String "minLength", "maxLength", "pattern", "format", // Number "minimum", "maximum", "exclusiveMinimum", "exclusiveMaximum", "multipleOf", // Already handled metadata "description", "default", // Content "contentEncoding", "contentMediaType", "contentSchema", // Unsupported (error-throwing) "unevaluatedItems", "unevaluatedProperties", "if", "then", "else", "dependentSchemas", "dependentRequired", // OpenAPI "nullable", "readOnly" ]); function detectVersion(schema, defaultTarget) { const $schema = schema.$schema; if ($schema === "https://json-schema.org/draft/2020-12/schema") { return "draft-2020-12"; } if ($schema === "http://json-schema.org/draft-07/schema#") { return "draft-7"; } if ($schema === "http://json-schema.org/draft-04/schema#") { return "draft-4"; } return defaultTarget ?? "draft-2020-12"; } function applyMinItems(items, minItems) { return items.map((item, index) => index < minItems ? item : item.optional()); } function decodeJSONPointerSegment(segment) { return segment.replace(/~1/g, "/").replace(/~0/g, "~"); } function resolveRef(ref, ctx) { if (!ref.startsWith("#")) { throw new Error("External $ref is not supported, only local refs (#/...) are allowed"); } const path = ref.slice(1).split("/").filter(Boolean); if (path.length === 0) { return ctx.rootSchema; } const defsKey = ctx.version === "draft-2020-12" ? "$defs" : "definitions"; if (path[0] === defsKey) { const key = path[1] === void 0 ? void 0 : decodeJSONPointerSegment(path[1]); if (!key || !ctx.defs[key]) { throw new Error(`Reference not found: ${ref}`); } return ctx.defs[key]; } throw new Error(`Reference not found: ${ref}`); } function checkObjectGuards(objectSchema, guards) { const guard = z.transform((value) => value).check((payload) => { const value = payload.value; if (typeof value !== "object" || value === null || Array.isArray(value)) return; const keys = Object.getOwnPropertyNames(value); if (guards.minProperties !== void 0 && keys.length < guards.minProperties) { payload.issues.push({ origin: "object", code: "too_small", minimum: guards.minProperties, inclusive: true, message: `Too small: expected object to have >=${guards.minProperties} properties`, input: value, inst: objectSchema, continue: true }); } if (guards.maxProperties !== void 0 && keys.length > guards.maxProperties) { payload.issues.push({ origin: "object", code: "too_big", maximum: guards.maxProperties, inclusive: true, message: `Too big: expected object to have <=${guards.maxProperties} properties`, input: value, inst: objectSchema, continue: true }); } if (guards.keySchema) { for (const key of keys) { const result = guards.keySchema.safeParse(key); if (result.success) continue; payload.issues.push({ code: "invalid_key", origin: "record", issues: result.error.issues, input: key, path: [key], continue: true }); } } }); return guard.pipe(objectSchema); } function canonicalKey(value, seen) { if (value === null) return "z"; const type = typeof value; if (type !== "object") { if (type === "number" && Number.isNaN(value)) return null; const raw = String(value); return `${type[0]}${raw.length}:${raw}`; } if (seen.has(value)) return null; seen.add(value); try { if (Array.isArray(value)) { const parts2 = []; for (const item of value) { const key = canonicalKey(item, seen); if (key === null) return null; parts2.push(key); } return `a${parts2.length}:[${parts2.join(",")}]`; } const keys = Object.keys(value).sort(); const parts = []; for (const k of keys) { const key = canonicalKey(value[k], seen); if (key === null) return null; parts.push(`${k.length}:${k}=${key}`); } return `o${parts.length}:{${parts.join(",")}}`; } finally { seen.delete(value); } } var SCHEMA_KEYWORDS = /* @__PURE__ */ new Set([ "items", "prefixItems", "additionalItems", "additionalProperties", "contains", "propertyNames", "not", "if", "then", "else", "allOf", "anyOf", "oneOf", "unevaluatedItems", "unevaluatedProperties", "contentSchema" ]); var SCHEMA_MAP_KEYWORDS = /* @__PURE__ */ new Set([ "properties", "patternProperties", "dependentSchemas", "dependencies", "$defs", "definitions" ]); function containsRef(value) { if (typeof value !== "object" || value === null) return false; if (Array.isArray(value)) return value.some(containsRef); if (typeof value.$ref === "string") return true; return Object.entries(value).some(([key, sub]) => { if (SCHEMA_KEYWORDS.has(key)) return containsRef(sub); if (!SCHEMA_MAP_KEYWORDS.has(key) || typeof sub !== "object" || sub === null) return false; return Object.values(sub).some(containsRef); }); } function plural(n) { return n === 1 ? "element" : "elements"; } function checkArrayGuards(arraySchema, guards) { const guard = z.transform((value) => value).check((payload) => { const items = payload.value; if (!Array.isArray(items)) return; if (guards.uniqueItems === true) { const firstSeen = /* @__PURE__ */ new Map(); for (let i = 0; i < items.length; i++) { const key = canonicalKey(items[i], /* @__PURE__ */ new Set()); if (key === null) continue; const first = firstSeen.get(key); if (first === void 0) { firstSeen.set(key, i); continue; } payload.issues.push({ code: "custom", message: `Array items must be unique: element at index ${i} duplicates the one at index ${first}`, input: items, path: [i], continue: true }); } } if (guards.containsSchema) { const minContains = guards.minContains ?? 1; const ceiling = guards.maxContains !== void 0 ? guards.maxContains + 1 : Number.POSITIVE_INFINITY; let matches = 0; for (const item of items) { if (guards.containsSchema.safeParse(item).success && ++matches >= ceiling) break; } if (matches < minContains) { payload.issues.push({ code: "custom", message: `Array must contain at least ${minContains} matching ${plural(minContains)}; found ${matches}`, input: items, continue: true }); } if (guards.maxContains !== void 0 && matches > guards.maxContains) { payload.issues.push({ code: "custom", message: `Array must contain at most ${guards.maxContains} matching ${plural(guards.maxContains)}`, input: items, continue: true }); } } }); return guard.pipe(arraySchema); } function getTupleRest(restSchema, ctx) { if (restSchema === false) { return void 0; } if (restSchema === void 0 || restSchema === true) { return z.any(); } return convertSchema(restSchema, ctx); } var fullTime = /^(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|[+-](?:[01]\d|2[0-3]):[0-5]\d)$/; function convertBaseSchema(schema, ctx) { if (schema.not !== void 0) { if (typeof schema.not === "object" && Object.keys(schema.not).length === 0) { return z.never(); } throw new Error("not is not supported in Zod (except { not: {} } for never)"); } if (schema.unevaluatedItems !== void 0) { throw new Error("unevaluatedItems is not supported"); } if (schema.unevaluatedProperties !== void 0) { throw new Error("unevaluatedProperties is not supported"); } if (schema.if !== void 0 || schema.then !== void 0 || schema.else !== void 0) { throw new Error("Conditional schemas (if/then/else) are not supported"); } if (schema.dependentSchemas !== void 0 || schema.dependentRequired !== void 0) { throw new Error("dependentSchemas and dependentRequired are not supported"); } if (schema.$ref) { const refPath = schema.$ref; if (ctx.refs.has(refPath)) { return ctx.refs.get(refPath); } if (ctx.processing.has(refPath)) { return z.lazy(() => { if (!ctx.refs.has(refPath)) { throw new Error(`Circular reference not resolved: ${refPath}`); } return ctx.refs.get(refPath); }); } ctx.processing.add(refPath); const resolved = resolveRef(refPath, ctx); const zodSchema2 = convertSchema(resolved, ctx); ctx.refs.set(refPath, zodSchema2); ctx.processing.delete(refPath); return zodSchema2; } if (schema.enum !== void 0) { const enumValues = schema.enum; if (ctx.version === "openapi-3.0" && schema.nullable === true && enumValues.length === 1 && enumValues[0] === null) { return z.null(); } if (enumValues.length === 0) { return z.never(); } if (enumValues.length === 1) { return z.literal(enumValues[0]); } if (enumValues.every((v) => typeof v === "string")) { return z.enum(enumValues); } const literalSchemas = enumValues.map((v) => z.literal(v)); if (literalSchemas.length < 2) { return literalSchemas[0]; } return z.union([literalSchemas[0], literalSchemas[1], ...literalSchemas.slice(2)]); } if (schema.const !== void 0) { return z.literal(schema.const); } const type = schema.type; if (Array.isArray(type)) { const typeSchemas = type.map((t) => { const typeSchema = { ...schema, type: t }; return convertBaseSchema(typeSchema, ctx); }); if (typeSchemas.length === 0) { return z.never(); } if (typeSchemas.length === 1) { return typeSchemas[0]; } return z.union(typeSchemas); } if (!type) { return z.any(); } let zodSchema; switch (type) { case "string": { let stringSchema = z.string(); if (schema.format) { const format = schema.format; if (format === "email") { stringSchema = stringSchema.check(z.email()); } else if (format === "uri" || format === "uri-reference") { stringSchema = stringSchema.check(z.url()); } else if (format === "uuid" || format === "guid") { stringSchema = stringSchema.check(z.uuid()); } else if (format === "date-time") { stringSchema = stringSchema.check(z.iso.datetime({ offset: true })); } else if (format === "date") { stringSchema = stringSchema.check(z.iso.date()); } else if (format === "time") { stringSchema = stringSchema.check(z.regex(fullTime)); } else if (format === "duration") { stringSchema = stringSchema.check(z.iso.duration()); } else if (format === "hostname") { stringSchema = stringSchema.check(z.hostname()); } else if (format === "ipv4") { stringSchema = stringSchema.check(z.ipv4()); } else if (format === "ipv6") { stringSchema = stringSchema.check(z.ipv6()); } else if (format === "mac") { stringSchema = stringSchema.check(z.mac()); } else if (format === "cidr") { stringSchema = stringSchema.check(z.cidrv4()); } else if (format === "cidr-v6") { stringSchema = stringSchema.check(z.cidrv6()); } else if (format === "base64") { stringSchema = stringSchema.check(z.base64()); } else if (format === "base64url") { stringSchema = stringSchema.check(z.base64url()); } else if (format === "e164") { stringSchema = stringSchema.check(z.e164()); } else if (format === "credit_card") { stringSchema = stringSchema.check(z.creditCard()); } else if (format === "iban") { stringSchema = stringSchema.check(z.iban()); } else if (format === "jwt") { stringSchema = stringSchema.check(z.jwt()); } else if (format === "emoji") { stringSchema = stringSchema.check(z.emoji()); } else if (format === "nanoid") { stringSchema = stringSchema.check(z.nanoid()); } else if (format === "cuid") { stringSchema = stringSchema.check(z.cuid()); } else if (format === "cuid2") { stringSchema = stringSchema.check(z.cuid2()); } else if (format === "ulid") { stringSchema = stringSchema.check(z.ulid()); } else if (format === "xid") { stringSchema = stringSchema.check(z.xid()); } else if (format === "ksuid") { stringSchema = stringSchema.check(z.ksuid()); } } if (typeof schema.minLength === "number") { stringSchema = stringSchema.min(schema.minLength); } if (typeof schema.maxLength === "number") { stringSchema = stringSchema.max(schema.maxLength); } if (schema.pattern) { stringSchema = stringSchema.regex(new RegExp(schema.pattern)); } zodSchema = stringSchema; break; } case "number": case "integer": { let numberSchema = type === "integer" ? z.number().int() : z.number(); if (typeof schema.minimum === "number" && schema.exclusiveMinimum !== true) { numberSchema = numberSchema.min(schema.minimum); } if (typeof schema.maximum === "number" && schema.exclusiveMaximum !== true) { numberSchema = numberSchema.max(schema.maximum); } if (typeof schema.exclusiveMinimum === "number") { numberSchema = numberSchema.gt(schema.exclusiveMinimum); } else if (schema.exclusiveMinimum === true && typeof schema.minimum === "number") { numberSchema = numberSchema.gt(schema.minimum); } if (typeof schema.exclusiveMaximum === "number") { numberSchema = numberSchema.lt(schema.exclusiveMaximum); } else if (schema.exclusiveMaximum === true && typeof schema.maximum === "number") { numberSchema = numberSchema.lt(schema.maximum); } if (typeof schema.multipleOf === "number") { numberSchema = numberSchema.multipleOf(schema.multipleOf); } zodSchema = numberSchema; break; } case "boolean": { zodSchema = z.boolean(); break; } case "null": { zodSchema = z.null(); break; } case "object": { const shape = {}; const properties = schema.properties || {}; const requiredSet = new Set(schema.required || []); const additionalSchema = typeof schema.additionalProperties === "object" ? convertSchema(schema.additionalProperties, ctx) : void 0; for (const [key, propSchema] of Object.entries(properties)) { const propZodSchema = convertSchema(propSchema, ctx); assignProp(shape, key, requiredSet.has(key) ? propZodSchema : propZodSchema.optional()); } if (schema.patternProperties) { const patternProps = schema.patternProperties; const patternKeys = Object.keys(patternProps); const looseRecords = []; for (const pattern of patternKeys) { const patternValue = convertSchema(patternProps[pattern], ctx); const keySchema = z.string().regex(new RegExp(pattern)); looseRecords.push(z.looseRecord(keySchema, patternValue)); } const schemasToIntersect = []; if (Object.keys(shape).length > 0) { schemasToIntersect.push(z.object(shape).passthrough()); } schemasToIntersect.push(...looseRecords); if (schemasToIntersect.length === 0) { zodSchema = z.object({}).passthrough(); } else if (schemasToIntersect.length === 1) { zodSchema = schemasToIntersect[0]; } else { let result = z.intersection(schemasToIntersect[0], schemasToIntersect[1]); for (let i = 2; i < schemasToIntersect.length; i++) { result = z.intersection(result, schemasToIntersect[i]); } zodSchema = result; } if (schema.additionalProperties === false) { const propertyKeys = Object.keys(shape); const patterns = patternKeys.map((p) => new RegExp(p)); const basePatternSchema = zodSchema; zodSchema = zodSchema.check((payload) => { if (!isPlainObject(payload.value)) return; const unrecognized = []; for (const key of Object.keys(payload.value)) { if (propertyKeys.includes(key)) continue; if (patterns.some((regex) => regex.test(key))) continue; unrecognized.push(key); } if (unrecognized.length) { payload.issues.push({ code: "unrecognized_keys", keys: unrecognized, input: payload.value, inst: basePatternSchema }); } }); } } else { const objectSchema = z.object(shape); if (schema.additionalProperties === false) { zodSchema = objectSchema.strict(); } else if (additionalSchema) { zodSchema = objectSchema.catchall(additionalSchema); } else { zodSchema = objectSchema.passthrough(); } } const hasKeyGuard = schema.propertyNames !== void 0 && schema.propertyNames !== true; const minProperties = typeof schema.minProperties === "number" ? schema.minProperties : void 0; const maxProperties = typeof schema.maxProperties === "number" ? schema.maxProperties : void 0; if (hasKeyGuard || minProperties !== void 0 || maxProperties !== void 0) { let keySchema; if (hasKeyGuard) { const keyJSONSchema = typeof schema.propertyNames === "object" && schema.propertyNames.type === void 0 ? { type: "string", ...schema.propertyNames } : schema.propertyNames; keySchema = convertSchema(keyJSONSchema, ctx); } zodSchema = checkObjectGuards(zodSchema, { keySchema, minProperties, maxProperties }); } break; } case "array": { const prefixItems = schema.prefixItems; const items = schema.items; if (prefixItems && Array.isArray(prefixItems)) { const minItems = typeof schema.minItems === "number" ? schema.minItems : 0; const tupleItems = prefixItems.map((item) => convertSchema(item, ctx)); const positionalItems = applyMinItems(tupleItems, minItems); const rest = !Array.isArray(items) ? getTupleRest(items, ctx) : void 0; const tupleSchema = z.tuple(positionalItems); zodSchema = rest ? tupleSchema.rest(rest) : tupleSchema; if (typeof schema.minItems === "number") { zodSchema = zodSchema.check(z.minLength(schema.minItems)); } if (typeof schema.maxItems === "number") { zodSchema = zodSchema.check(z.maxLength(schema.maxItems)); } } else if (Array.isArray(items)) { const minItems = typeof schema.minItems === "number" ? schema.minItems : 0; const tupleItems = items.map((item) => convertSchema(item, ctx)); const positionalItems = applyMinItems(tupleItems, minItems); const rest = getTupleRest(schema.additionalItems, ctx); const tupleSchema = z.tuple(positionalItems); zodSchema = rest ? tupleSchema.rest(rest) : tupleSchema; if (typeof schema.minItems === "number") { zodSchema = zodSchema.check(z.minLength(schema.minItems)); } if (typeof schema.maxItems === "number") { zodSchema = zodSchema.check(z.maxLength(schema.maxItems)); } } else if (items !== void 0) { const element = convertSchema(items, ctx); let arraySchema = z.array(element); if (typeof schema.minItems === "number") { arraySchema = arraySchema.min(schema.minItems); } if (typeof schema.maxItems === "number") { arraySchema = arraySchema.max(schema.maxItems); } zodSchema = arraySchema; } else { zodSchema = z.array(z.any()); } if (schema.uniqueItems === true || schema.contains !== void 0) { zodSchema = checkArrayGuards(zodSchema, { uniqueItems: schema.uniqueItems === true, containsSchema: schema.contains !== void 0 ? convertSchema(schema.contains, ctx) : void 0, minContains: typeof schema.minContains === "number" ? schema.minContains : void 0, maxContains: typeof schema.maxContains === "number" ? schema.maxContains : void 0 }); } break; } default: throw new Error(`Unsupported type: ${type}`); } return zodSchema; } function convertSchema(schema, ctx) { if (typeof schema === "boolean") { return schema ? z.any() : z.never(); } let baseSchema = convertBaseSchema(schema, ctx); const hasExplicitType = schema.type || schema.enum !== void 0 || schema.const !== void 0; if (schema.anyOf && Array.isArray(schema.anyOf)) { const options = schema.anyOf.map((s) => convertSchema(s, ctx)); const anyOfUnion = z.union(options); baseSchema = hasExplicitType ? z.intersection(baseSchema, anyOfUnion) : anyOfUnion; } if (schema.oneOf && Array.isArray(schema.oneOf)) { const options = schema.oneOf.map((s) => convertSchema(s, ctx)); const oneOfUnion = z.xor(options); baseSchema = hasExplicitType ? z.intersection(baseSchema, oneOfUnion) : oneOfUnion; } if (schema.allOf && Array.isArray(schema.allOf)) { if (schema.allOf.length === 0) { baseSchema = hasExplicitType ? baseSchema : z.any(); } else { let result = hasExplicitType ? baseSchema : convertSchema(schema.allOf[0], ctx); const startIdx = hasExplicitType ? 0 : 1; for (let i = startIdx; i < schema.allOf.length; i++) { result = z.intersection(result, convertSchema(schema.allOf[i], ctx)); } baseSchema = result; } } if (schema.nullable === true && ctx.version === "openapi-3.0") { baseSchema = z.nullable(baseSchema); } if (schema.readOnly === true) { baseSchema = z.readonly(baseSchema); } if (schema.default !== void 0) { baseSchema = baseSchema.default(schema.default); } const extraMeta = {}; const coreMetadataKeys = ["$id", "id", "$comment", "$anchor", "$vocabulary", "$dynamicRef", "$dynamicAnchor"]; for (const key of coreMetadataKeys) { if (key in schema) { extraMeta[key] = schema[key]; } } const contentMetadataKeys = ["contentEncoding", "contentMediaType", "contentSchema"]; for (const key of contentMetadataKeys) { if (key in schema) { extraMeta[key] = schema[key]; } } if (schema.type === "object" && schema.$ref === void 0) { if (schema.propertyNames !== void 0 && !containsRef(schema.propertyNames)) { extraMeta.propertyNames = schema.propertyNames; } for (const key of ["minProperties", "maxProperties"]) { if (schema[key] !== void 0) extraMeta[key] = schema[key]; } } if (schema.type === "array" && schema.$ref === void 0) { if (schema.contains !== void 0 && !containsRef(schema.contains)) { extraMeta.contains = schema.contains; } for (const key of ["uniqueItems", "minContains", "maxContains"]) { if (schema[key] !== void 0) extraMeta[key] = schema[key]; } } for (const key of Object.keys(schema)) { if (!RECOGNIZED_KEYS.has(key)) { assignProp(extraMeta, key, schema[key]); } } if (Object.keys(extraMeta).length > 0) { ctx.registry.add(baseSchema, extraMeta); } if (schema.description) { baseSchema = baseSchema.describe(schema.description); } return baseSchema; } function fromJSONSchema(schema, params) { if (typeof schema === "boolean") { return schema ? z.any() : z.never(); } let normalized; try { normalized = JSON.parse(JSON.stringify(schema)); } catch { throw new Error("fromJSONSchema input is not valid JSON (possibly cyclic); use $defs/$ref for recursive schemas"); } const version3 = detectVersion(normalized, params?.defaultTarget); const defs = normalized.$defs || normalized.definitions || {}; const ctx = { version: version3, defs, refs: /* @__PURE__ */ new Map(), processing: /* @__PURE__ */ new Set(), rootSchema: normalized, registry: params?.registry ?? globalRegistry }; return convertSchema(normalized, ctx); } // ../../../../node_modules/zod/v4/core/visit.js var RESOLVING = Symbol("z.visit/resolving"); function visit(schema, fnOrHandlers) { const fn = typeof fnOrHandlers === "function" ? fnOrHandlers : (node2, rewritten) => { const h = fnOrHandlers[node2._zod.def.type]; return h ? h(node2, rewritten) : node2; }; const cache = /* @__PURE__ */ new Map(); function run(s) { const cached2 = cache.get(s); if (cached2 === RESOLVING) { return new $ZodLazy({ type: "lazy", getter: () => cache.get(s) }); } if (cached2 !== void 0) return cached2; cache.set(s, RESOLVING); const inner = mapInner(s); const mapped = fn(inner, inner !== s); cache.set(s, mapped); return mapped; } function mapInner(s) { const def = s._zod.def; const kind = def.type; switch (kind) { case "object": { const oldShape = def.shape; const keys = Object.keys(oldShape); let changed = false; const newShape = {}; for (const k of keys) { const mapped = run(oldShape[k]); if (mapped !== oldShape[k]) changed = true; newShape[k] = mapped; } let newCatchall = def.catchall; if (def.catchall) { newCatchall = run(def.catchall); if (newCatchall !== def.catchall) changed = true; } return changed ? clone(s, { ...def, shape: newShape, catchall: newCatchall }) : s; } case "array": { const mapped = run(def.element); return mapped === def.element ? s : clone(s, { ...def, element: mapped }); } case "tuple": { const oldItems = def.items; let changed = false; const newItems = []; for (const item of oldItems) { const mapped = run(item); if (mapped !== item) changed = true; newItems.push(mapped); } let newRest = def.rest; if (def.rest) { newRest = run(def.rest); if (newRest !== def.rest) changed = true; } return changed ? clone(s, { ...def, items: newItems, rest: newRest }) : s; } case "record": case "map": { const newKey = run(def.keyType); const newVal = run(def.valueType); return newKey === def.keyType && newVal === def.valueType ? s : clone(s, { ...def, keyType: newKey, valueType: newVal }); } case "set": { const newVal = run(def.valueType); return newVal === def.valueType ? s : clone(s, { ...def, valueType: newVal }); } case "union": { const oldOptions = def.options; let changed = false; const newOptions = []; for (const opt of oldOptions) { const mapped = run(opt); if (mapped !== opt) changed = true; newOptions.push(mapped); } return changed ? clone(s, { ...def, options: newOptions }) : s; } case "intersection": { const newLeft = run(def.left); const newRight = run(def.right); return newLeft === def.left && newRight === def.right ? s : clone(s, { ...def, left: newLeft, right: newRight }); } case "optional": case "nullable": case "default": case "prefault": case "catch": case "readonly": case "nonoptional": case "promise": case "success": { const newInner = run(def.innerType); return newInner === def.innerType ? s : clone(s, { ...def, innerType: newInner }); } case "pipe": { const newIn = run(def.in); const newOut = run(def.out); return newIn === def.in && newOut === def.out ? s : clone(s, { ...def, in: newIn, out: newOut }); } case "function": { const newInput = run(def.input); const newOutput = run(def.output); return newInput === def.input && newOutput === def.output ? s : clone(s, { ...def, input: newInput, output: newOutput }); } case "lazy": { const original = def.getter; const { _cachedInner, ...rest } = def; return clone(s, { ...rest, getter: () => run(original()) }); } // A leaf by choice: `parts` are regex fragments, not data positions. case "template_literal": // Leaves. case "string": case "number": case "int": case "boolean": case "bigint": case "symbol": case "undefined": case "null": case "void": case "never": case "any": case "unknown": case "date": case "nan": case "enum": case "literal": case "file": case "transform": case "custom": return s; default: { kind; return s; } } } return run(schema); } // ../../../../node_modules/zod/v4/classic/deep-partial.js function deepPartial(schema) { return visit(schema, { object: (s) => s.partial(), // Every partialed option now admits `undefined`, which the constructor rejects as a duplicate. union: (s) => { const def = s._zod.def; return def.discriminator === void 0 ? s : union(def.options); } }); } // ../../../../node_modules/zod/v4/classic/in-out.js function withChecks(side, checks) { if (!checks?.length) return side; const def = side._zod.def; return clone(side, mergeDefs(def, { checks: [...def.checks ?? [], ...checks] }), { parent: true }); } function outSide(def) { return withChecks(def.out, def.checks); } function inSide(def) { return def.in._zod.traits.has("$ZodTransform") ? outSide(def) : def.in; } function input(schema) { return visit(schema, { pipe: (s) => inSide(s._zod.def), // A default value belongs to the output side, so a rewritten inner type leaves it stranded. `.default()` widens the declared input type with `undefined`, and `optional` is what carries that across. default: (s, rewritten) => rewritten ? optional(s._zod.def.innerType) : s, // A catch value is output-side too, but `.catch()` leaves the declared input type alone, so the inner schema stands on its own. catch: (s, rewritten) => rewritten ? s._zod.def.innerType : s }); } function output(schema) { return visit(schema, { pipe: (s) => outSide(s._zod.def), // A prefault value is fed through the schema, which makes it input-side, so a rewritten inner type leaves it stranded. prefault: (s, rewritten) => rewritten ? s._zod.def.innerType : s }); } // ../../../../node_modules/zod/v4/classic/coerce.js var coerce_exports = {}; __export(coerce_exports, { bigint: () => bigint3, boolean: () => boolean3, date: () => date4, number: () => number3, string: () => string3 }); function string3(params) { return _coercedString(ZodString, params); } function number3(params) { return _coercedNumber(ZodNumber, params); } function boolean3(params) { return _coercedBoolean(ZodBoolean, params); } function bigint3(params) { return _coercedBigint(ZodBigInt, params); } function date4(params) { return _coercedDate(ZodDate, params); } // ../../../../node_modules/@modelcontextprotocol/core/dist/auth-CUe6YdwF.mjs var LATEST_PROTOCOL_VERSION = "2025-11-25"; var SUPPORTED_PROTOCOL_VERSIONS = [ LATEST_PROTOCOL_VERSION, "2025-06-18", "2025-03-26", "2024-11-05", "2024-10-07" ]; var RELATED_TASK_META_KEY = "io.modelcontextprotocol/related-task"; var PROTOCOL_VERSION_META_KEY = "io.modelcontextprotocol/protocolVersion"; var CLIENT_INFO_META_KEY = "io.modelcontextprotocol/clientInfo"; var SERVER_INFO_META_KEY = "io.modelcontextprotocol/serverInfo"; var CLIENT_CAPABILITIES_META_KEY = "io.modelcontextprotocol/clientCapabilities"; var SUBSCRIPTION_ID_META_KEY = "io.modelcontextprotocol/subscriptionId"; var LOG_LEVEL_META_KEY = "io.modelcontextprotocol/logLevel"; var JSONRPC_VERSION = "2.0"; var INVALID_PARAMS = -32602; var JSONValueSchema = lazy(() => union([ string2(), number2(), boolean2(), _null3(), record(string2(), JSONValueSchema), array(JSONValueSchema) ])); var JSONObjectSchema = record(string2(), JSONValueSchema); var JSONArraySchema = array(JSONValueSchema); var ProgressTokenSchema = union([string2(), number2().int()]); var CursorSchema = string2(); var TaskMetadataSchema = object({ ttl: number2().optional() }); var RelatedTaskMetadataSchema = object({ taskId: string2() }); var RequestMetaSchema = looseObject({ progressToken: ProgressTokenSchema.optional(), [RELATED_TASK_META_KEY]: RelatedTaskMetadataSchema.optional() }); var BaseRequestParamsSchema = object({ _meta: RequestMetaSchema.optional() }); var TaskAugmentedRequestParamsSchema = BaseRequestParamsSchema.extend({ task: TaskMetadataSchema.optional() }); var RequestSchema = object({ method: string2(), params: BaseRequestParamsSchema.loose().optional() }); var NotificationsParamsSchema = object({ _meta: RequestMetaSchema.optional() }); var NotificationSchema = object({ method: string2(), params: NotificationsParamsSchema.loose().optional() }); var ResultMetaObjectSchema = looseObject({ get [SERVER_INFO_META_KEY]() { return ImplementationSchema.optional().catch(void 0); } }); var ResultSchema = looseObject({ _meta: ResultMetaObjectSchema.optional() }); var RequestIdSchema = union([string2(), number2().int()]); var JSONRPCRequestSchema = object({ jsonrpc: literal(JSONRPC_VERSION), id: RequestIdSchema, ...RequestSchema.shape }).strict(); var JSONRPCNotificationSchema = object({ jsonrpc: literal(JSONRPC_VERSION), ...NotificationSchema.shape }).strict(); var JSONRPCResultResponseSchema = object({ jsonrpc: literal(JSONRPC_VERSION), id: RequestIdSchema, result: ResultSchema }).strict(); var JSONRPCErrorResponseSchema = object({ jsonrpc: literal(JSONRPC_VERSION), id: RequestIdSchema.optional(), error: object({ code: number2().int(), message: string2(), data: unknown().optional() }) }).strict(); var JSONRPCMessageSchema = union([ JSONRPCRequestSchema, JSONRPCNotificationSchema, JSONRPCResultResponseSchema, JSONRPCErrorResponseSchema ]); var JSONRPCResponseSchema = union([JSONRPCResultResponseSchema, JSONRPCErrorResponseSchema]); var EmptyResultSchema = ResultSchema.strict(); var CancelledNotificationParamsSchema = NotificationsParamsSchema.extend({ requestId: RequestIdSchema.optional(), reason: string2().optional() }); var CancelledNotificationSchema = NotificationSchema.extend({ method: literal("notifications/cancelled"), params: CancelledNotificationParamsSchema }); var IconSchema = object({ src: string2(), mimeType: string2().optional(), sizes: array(string2()).optional(), theme: _enum2(["light", "dark"]).optional() }); var IconsSchema = object({ icons: array(IconSchema).optional() }); var BaseMetadataSchema = object({ name: string2(), title: string2().optional() }); var ImplementationSchema = BaseMetadataSchema.extend({ ...BaseMetadataSchema.shape, ...IconsSchema.shape, version: string2(), websiteUrl: string2().optional(), description: string2().optional() }); var FormElicitationCapabilitySchema = intersection(object({ applyDefaults: boolean2().optional() }), JSONObjectSchema); var ElicitationCapabilitySchema = preprocess((value) => { if (value && typeof value === "object" && !Array.isArray(value) && Object.keys(value).length === 0) return { form: {} }; return value; }, intersection(object({ form: FormElicitationCapabilitySchema.optional(), url: JSONObjectSchema.optional() }), JSONObjectSchema.optional())); var ClientTasksCapabilitySchema = looseObject({ list: JSONObjectSchema.optional(), cancel: JSONObjectSchema.optional(), requests: looseObject({ sampling: looseObject({ createMessage: JSONObjectSchema.optional() }).optional(), elicitation: looseObject({ create: JSONObjectSchema.optional() }).optional() }).optional() }); var ServerTasksCapabilitySchema = looseObject({ list: JSONObjectSchema.optional(), cancel: JSONObjectSchema.optional(), requests: looseObject({ tools: looseObject({ call: JSONObjectSchema.optional() }).optional() }).optional() }); var ClientCapabilitiesSchema = object({ experimental: record(string2(), JSONObjectSchema).optional(), sampling: object({ context: JSONObjectSchema.optional(), tools: JSONObjectSchema.optional() }).optional(), elicitation: ElicitationCapabilitySchema.optional(), roots: object({ listChanged: boolean2().optional() }).optional(), tasks: ClientTasksCapabilitySchema.optional(), extensions: record(string2(), JSONObjectSchema).optional() }); var InitializeRequestParamsSchema = BaseRequestParamsSchema.extend({ protocolVersion: string2(), capabilities: ClientCapabilitiesSchema, clientInfo: ImplementationSchema }); var InitializeRequestSchema = RequestSchema.extend({ method: literal("initialize"), params: InitializeRequestParamsSchema }); var ServerCapabilitiesSchema = object({ experimental: record(string2(), JSONObjectSchema).optional(), logging: JSONObjectSchema.optional(), completions: JSONObjectSchema.optional(), prompts: object({ listChanged: boolean2().optional() }).optional(), resources: object({ subscribe: boolean2().optional(), listChanged: boolean2().optional() }).optional(), tools: object({ listChanged: boolean2().optional() }).optional(), tasks: ServerTasksCapabilitySchema.optional(), extensions: record(string2(), JSONObjectSchema).optional() }); var InitializeResultSchema = ResultSchema.extend({ protocolVersion: string2(), capabilities: ServerCapabilitiesSchema, serverInfo: ImplementationSchema, instructions: string2().optional() }); var InitializedNotificationSchema = NotificationSchema.extend({ method: literal("notifications/initialized"), params: NotificationsParamsSchema.optional() }); var DiscoverRequestSchema = RequestSchema.extend({ method: literal("server/discover"), params: BaseRequestParamsSchema.optional() }); var DiscoverResultSchema = ResultSchema.extend({ supportedVersions: array(string2()), capabilities: ServerCapabilitiesSchema, instructions: string2().optional() }); var PingRequestSchema = RequestSchema.extend({ method: literal("ping"), params: BaseRequestParamsSchema.optional() }); var ProgressSchema = object({ progress: number2(), total: optional(number2()), message: optional(string2()) }); var ProgressNotificationParamsSchema = object({ ...NotificationsParamsSchema.shape, ...ProgressSchema.shape, progressToken: ProgressTokenSchema }); var ProgressNotificationSchema = NotificationSchema.extend({ method: literal("notifications/progress"), params: ProgressNotificationParamsSchema }); var PaginatedRequestParamsSchema = BaseRequestParamsSchema.extend({ cursor: CursorSchema.optional() }); var PaginatedRequestSchema = RequestSchema.extend({ params: PaginatedRequestParamsSchema.optional() }); var PaginatedResultSchema = ResultSchema.extend({ nextCursor: CursorSchema.optional() }); var ResourceContentsSchema = object({ uri: string2(), mimeType: optional(string2()), _meta: record(string2(), unknown()).optional() }); var TextResourceContentsSchema = ResourceContentsSchema.extend({ text: string2() }); var Base64Schema = string2().refine((val) => { try { atob(val); return true; } catch { return false; } }, { message: "Invalid Base64 string" }); var BlobResourceContentsSchema = ResourceContentsSchema.extend({ blob: Base64Schema }); var RoleSchema = _enum2(["user", "assistant"]); var AnnotationsSchema = object({ audience: array(RoleSchema).optional(), priority: number2().min(0).max(1).optional(), lastModified: iso_exports.datetime({ offset: true }).optional() }); var ResourceSchema = object({ ...BaseMetadataSchema.shape, ...IconsSchema.shape, uri: string2(), description: optional(string2()), mimeType: optional(string2()), size: optional(number2()), annotations: AnnotationsSchema.optional(), _meta: optional(looseObject({})) }); var ResourceTemplateSchema = object({ ...BaseMetadataSchema.shape, ...IconsSchema.shape, uriTemplate: string2(), description: optional(string2()), mimeType: optional(string2()), annotations: AnnotationsSchema.optional(), _meta: optional(looseObject({})) }); var ListResourcesRequestSchema = PaginatedRequestSchema.extend({ method: literal("resources/list") }); var ListResourcesResultSchema = PaginatedResultSchema.extend({ resources: array(ResourceSchema) }); var ListResourceTemplatesRequestSchema = PaginatedRequestSchema.extend({ method: literal("resources/templates/list") }); var ListResourceTemplatesResultSchema = PaginatedResultSchema.extend({ resourceTemplates: array(ResourceTemplateSchema) }); var ResourceRequestParamsSchema = BaseRequestParamsSchema.extend({ uri: string2() }); var ReadResourceRequestParamsSchema = ResourceRequestParamsSchema; var ReadResourceRequestSchema = RequestSchema.extend({ method: literal("resources/read"), params: ReadResourceRequestParamsSchema }); var ReadResourceResultSchema = ResultSchema.extend({ contents: array(union([TextResourceContentsSchema, BlobResourceContentsSchema])) }); var ResourceListChangedNotificationSchema = NotificationSchema.extend({ method: literal("notifications/resources/list_changed"), params: NotificationsParamsSchema.optional() }); var SubscribeRequestParamsSchema = ResourceRequestParamsSchema; var SubscribeRequestSchema = RequestSchema.extend({ method: literal("resources/subscribe"), params: SubscribeRequestParamsSchema }); var UnsubscribeRequestParamsSchema = ResourceRequestParamsSchema; var UnsubscribeRequestSchema = RequestSchema.extend({ method: literal("resources/unsubscribe"), params: UnsubscribeRequestParamsSchema }); var SubscriptionFilterSchema = object({ toolsListChanged: boolean2().optional(), promptsListChanged: boolean2().optional(), resourcesListChanged: boolean2().optional(), resourceSubscriptions: array(string2()).optional() }); var SubscriptionsListenRequestParamsSchema = BaseRequestParamsSchema.extend({ notifications: SubscriptionFilterSchema }); var SubscriptionsListenRequestSchema = RequestSchema.extend({ method: literal("subscriptions/listen"), params: SubscriptionsListenRequestParamsSchema }); var SubscriptionsAcknowledgedNotificationParamsSchema = NotificationsParamsSchema.extend({ notifications: SubscriptionFilterSchema }); var SubscriptionsAcknowledgedNotificationSchema = NotificationSchema.extend({ method: literal("notifications/subscriptions/acknowledged"), params: SubscriptionsAcknowledgedNotificationParamsSchema }); var SubscriptionsListenResultMetaSchema = ResultMetaObjectSchema.extend({ [SUBSCRIPTION_ID_META_KEY]: RequestIdSchema }); var SubscriptionsListenResultSchema = ResultSchema.extend({ _meta: SubscriptionsListenResultMetaSchema }); var ResourceUpdatedNotificationParamsSchema = NotificationsParamsSchema.extend({ uri: string2() }); var ResourceUpdatedNotificationSchema = NotificationSchema.extend({ method: literal("notifications/resources/updated"), params: ResourceUpdatedNotificationParamsSchema }); var PromptArgumentSchema = object({ name: string2(), description: optional(string2()), required: optional(boolean2()) }); var PromptSchema = object({ ...BaseMetadataSchema.shape, ...IconsSchema.shape, description: optional(string2()), arguments: optional(array(PromptArgumentSchema)), _meta: optional(looseObject({})) }); var ListPromptsRequestSchema = PaginatedRequestSchema.extend({ method: literal("prompts/list") }); var ListPromptsResultSchema = PaginatedResultSchema.extend({ prompts: array(PromptSchema) }); var GetPromptRequestParamsSchema = BaseRequestParamsSchema.extend({ name: string2(), arguments: record(string2(), string2()).optional() }); var GetPromptRequestSchema = RequestSchema.extend({ method: literal("prompts/get"), params: GetPromptRequestParamsSchema }); var TextContentSchema = object({ type: literal("text"), text: string2(), annotations: AnnotationsSchema.optional(), _meta: record(string2(), unknown()).optional() }); var ImageContentSchema = object({ type: literal("image"), data: Base64Schema, mimeType: string2(), annotations: AnnotationsSchema.optional(), _meta: record(string2(), unknown()).optional() }); var AudioContentSchema = object({ type: literal("audio"), data: Base64Schema, mimeType: string2(), annotations: AnnotationsSchema.optional(), _meta: record(string2(), unknown()).optional() }); var ToolUseContentSchema = object({ type: literal("tool_use"), name: string2(), id: string2(), input: record(string2(), unknown()), _meta: record(string2(), unknown()).optional() }); var EmbeddedResourceSchema = object({ type: literal("resource"), resource: union([TextResourceContentsSchema, BlobResourceContentsSchema]), annotations: AnnotationsSchema.optional(), _meta: record(string2(), unknown()).optional() }); var ResourceLinkSchema = ResourceSchema.extend({ type: literal("resource_link") }); var ContentBlockSchema = union([ TextContentSchema, ImageContentSchema, AudioContentSchema, ResourceLinkSchema, EmbeddedResourceSchema ]); var PromptMessageSchema = object({ role: RoleSchema, content: ContentBlockSchema }); var GetPromptResultSchema = ResultSchema.extend({ description: string2().optional(), messages: array(PromptMessageSchema) }); var PromptListChangedNotificationSchema = NotificationSchema.extend({ method: literal("notifications/prompts/list_changed"), params: NotificationsParamsSchema.optional() }); var ToolAnnotationsSchema = object({ title: string2().optional(), readOnlyHint: boolean2().optional(), destructiveHint: boolean2().optional(), idempotentHint: boolean2().optional(), openWorldHint: boolean2().optional() }); var ToolExecutionSchema = object({ taskSupport: _enum2([ "required", "optional", "forbidden" ]).optional() }); var ToolSchema = object({ ...BaseMetadataSchema.shape, ...IconsSchema.shape, description: string2().optional(), inputSchema: object({ type: literal("object"), properties: record(string2(), JSONValueSchema).optional(), required: array(string2()).optional() }).catchall(unknown()), outputSchema: looseObject({ $schema: string2().optional() }).optional(), annotations: ToolAnnotationsSchema.optional(), execution: ToolExecutionSchema.optional(), _meta: record(string2(), unknown()).optional() }); var ListToolsRequestSchema = PaginatedRequestSchema.extend({ method: literal("tools/list") }); var ListToolsResultSchema = PaginatedResultSchema.extend({ tools: array(ToolSchema) }); var CallToolResultSchema = ResultSchema.extend({ content: array(ContentBlockSchema).default([]), structuredContent: unknown().optional(), isError: boolean2().optional() }); var CompatibilityCallToolResultSchema = CallToolResultSchema.or(ResultSchema.extend({ toolResult: unknown() })); var CallToolRequestParamsSchema = TaskAugmentedRequestParamsSchema.extend({ name: string2(), arguments: record(string2(), unknown()).optional() }); var CallToolRequestSchema = RequestSchema.extend({ method: literal("tools/call"), params: CallToolRequestParamsSchema }); var ToolListChangedNotificationSchema = NotificationSchema.extend({ method: literal("notifications/tools/list_changed"), params: NotificationsParamsSchema.optional() }); var ListChangedOptionsBaseSchema = object({ autoRefresh: boolean2().default(true), debounceMs: number2().int().nonnegative().default(300) }); var LoggingLevelSchema = _enum2([ "debug", "info", "notice", "warning", "error", "critical", "alert", "emergency" ]); var SetLevelRequestParamsSchema = BaseRequestParamsSchema.extend({ level: LoggingLevelSchema }); var SetLevelRequestSchema = RequestSchema.extend({ method: literal("logging/setLevel"), params: SetLevelRequestParamsSchema }); var LoggingMessageNotificationParamsSchema = NotificationsParamsSchema.extend({ level: LoggingLevelSchema, logger: string2().optional(), data: unknown() }); var LoggingMessageNotificationSchema = NotificationSchema.extend({ method: literal("notifications/message"), params: LoggingMessageNotificationParamsSchema }); var ModelHintSchema = object({ name: string2().optional() }); var ModelPreferencesSchema = object({ hints: array(ModelHintSchema).optional(), costPriority: number2().min(0).max(1).optional(), speedPriority: number2().min(0).max(1).optional(), intelligencePriority: number2().min(0).max(1).optional() }); var ToolChoiceSchema = object({ mode: _enum2([ "auto", "required", "none" ]).optional() }); var ToolResultContentSchema = object({ type: literal("tool_result"), toolUseId: string2().describe("The unique identifier for the corresponding tool call."), content: array(ContentBlockSchema), structuredContent: unknown().optional(), isError: boolean2().optional(), _meta: record(string2(), unknown()).optional() }); var SamplingContentSchema = discriminatedUnion("type", [ TextContentSchema, ImageContentSchema, AudioContentSchema ]); var SamplingMessageContentBlockSchema = discriminatedUnion("type", [ TextContentSchema, ImageContentSchema, AudioContentSchema, ToolUseContentSchema, ToolResultContentSchema ]); var SamplingMessageSchema = object({ role: RoleSchema, content: union([SamplingMessageContentBlockSchema, array(SamplingMessageContentBlockSchema)]), _meta: record(string2(), unknown()).optional() }); var CreateMessageRequestParamsSchema = TaskAugmentedRequestParamsSchema.extend({ messages: array(SamplingMessageSchema), modelPreferences: ModelPreferencesSchema.optional(), systemPrompt: string2().optional(), includeContext: _enum2([ "none", "thisServer", "allServers" ]).optional(), temperature: number2().optional(), maxTokens: number2().int(), stopSequences: array(string2()).optional(), metadata: JSONObjectSchema.optional(), tools: array(ToolSchema).optional(), toolChoice: ToolChoiceSchema.optional() }); var CreateMessageRequestSchema = RequestSchema.extend({ method: literal("sampling/createMessage"), params: CreateMessageRequestParamsSchema }); var CreateMessageResultSchema = ResultSchema.extend({ model: string2(), stopReason: optional(_enum2([ "endTurn", "stopSequence", "maxTokens" ]).or(string2())), role: RoleSchema, content: SamplingContentSchema }); var CreateMessageResultWithToolsSchema = ResultSchema.extend({ model: string2(), stopReason: optional(_enum2([ "endTurn", "stopSequence", "maxTokens", "toolUse" ]).or(string2())), role: RoleSchema, content: union([SamplingMessageContentBlockSchema, array(SamplingMessageContentBlockSchema)]) }); var BooleanSchemaSchema = object({ type: literal("boolean"), title: string2().optional(), description: string2().optional(), default: boolean2().optional() }); var StringSchemaSchema = object({ type: literal("string"), title: string2().optional(), description: string2().optional(), minLength: number2().optional(), maxLength: number2().optional(), format: _enum2([ "email", "uri", "date", "date-time" ]).optional(), default: string2().optional() }); var NumberSchemaSchema = object({ type: _enum2(["number", "integer"]), title: string2().optional(), description: string2().optional(), minimum: number2().optional(), maximum: number2().optional(), default: number2().optional() }); var UntitledSingleSelectEnumSchemaSchema = object({ type: literal("string"), title: string2().optional(), description: string2().optional(), enum: array(string2()), default: string2().optional() }); var TitledSingleSelectEnumSchemaSchema = object({ type: literal("string"), title: string2().optional(), description: string2().optional(), oneOf: array(object({ const: string2(), title: string2() })), default: string2().optional() }); var LegacyTitledEnumSchemaSchema = object({ type: literal("string"), title: string2().optional(), description: string2().optional(), enum: array(string2()), enumNames: array(string2()).optional(), default: string2().optional() }); var SingleSelectEnumSchemaSchema = union([UntitledSingleSelectEnumSchemaSchema, TitledSingleSelectEnumSchemaSchema]); var UntitledMultiSelectEnumSchemaSchema = object({ type: literal("array"), title: string2().optional(), description: string2().optional(), minItems: number2().optional(), maxItems: number2().optional(), items: object({ type: literal("string"), enum: array(string2()) }), default: array(string2()).optional() }); var TitledMultiSelectEnumSchemaSchema = object({ type: literal("array"), title: string2().optional(), description: string2().optional(), minItems: number2().optional(), maxItems: number2().optional(), items: object({ anyOf: array(object({ const: string2(), title: string2() })) }), default: array(string2()).optional() }); var MultiSelectEnumSchemaSchema = union([UntitledMultiSelectEnumSchemaSchema, TitledMultiSelectEnumSchemaSchema]); var EnumSchemaSchema = union([ LegacyTitledEnumSchemaSchema, SingleSelectEnumSchemaSchema, MultiSelectEnumSchemaSchema ]); var PrimitiveSchemaDefinitionSchema = union([ EnumSchemaSchema, BooleanSchemaSchema, StringSchemaSchema, NumberSchemaSchema ]); var ElicitRequestFormParamsSchema = TaskAugmentedRequestParamsSchema.extend({ mode: literal("form").optional(), message: string2(), requestedSchema: object({ type: literal("object"), properties: record(string2(), PrimitiveSchemaDefinitionSchema), required: array(string2()).optional() }).catchall(unknown()) }); var ElicitRequestURLParamsSchema = TaskAugmentedRequestParamsSchema.extend({ mode: literal("url"), message: string2(), elicitationId: string2(), url: string2().url() }); var ElicitRequestParamsSchema = union([ElicitRequestFormParamsSchema, ElicitRequestURLParamsSchema]); var ElicitRequestSchema = RequestSchema.extend({ method: literal("elicitation/create"), params: ElicitRequestParamsSchema }); var ElicitationCompleteNotificationParamsSchema = NotificationsParamsSchema.extend({ elicitationId: string2() }); var ElicitationCompleteNotificationSchema = NotificationSchema.extend({ method: literal("notifications/elicitation/complete"), params: ElicitationCompleteNotificationParamsSchema }); var ElicitResultSchema = ResultSchema.extend({ action: _enum2([ "accept", "decline", "cancel" ]), content: preprocess((val) => val === null ? void 0 : val, record(string2(), union([ string2(), number2(), boolean2(), array(string2()) ])).optional()) }); var ResourceTemplateReferenceSchema = object({ type: literal("ref/resource"), uri: string2() }); var PromptReferenceSchema = object({ type: literal("ref/prompt"), name: string2() }); var CompleteRequestParamsSchema = BaseRequestParamsSchema.extend({ ref: union([PromptReferenceSchema, ResourceTemplateReferenceSchema]), argument: object({ name: string2(), value: string2() }), context: object({ arguments: record(string2(), string2()).optional() }).optional() }); var CompleteRequestSchema = RequestSchema.extend({ method: literal("completion/complete"), params: CompleteRequestParamsSchema }); var CompleteResultSchema = ResultSchema.extend({ completion: looseObject({ values: array(string2()).max(100), total: optional(number2().int()), hasMore: optional(boolean2()) }) }); var RootSchema = object({ uri: string2().startsWith("file://"), name: string2().optional(), _meta: record(string2(), unknown()).optional() }); var ListRootsRequestSchema = RequestSchema.extend({ method: literal("roots/list"), params: BaseRequestParamsSchema.optional() }); var ListRootsResultSchema = ResultSchema.extend({ roots: array(RootSchema) }); var RootsListChangedNotificationSchema = NotificationSchema.extend({ method: literal("notifications/roots/list_changed"), params: NotificationsParamsSchema.optional() }); var TaskCreationParamsSchema = looseObject({ ttl: number2().optional(), pollInterval: number2().optional() }); var TaskStatusSchema = _enum2([ "working", "input_required", "completed", "failed", "cancelled" ]); var TaskSchema = object({ taskId: string2(), status: TaskStatusSchema, ttl: union([number2(), _null3()]), createdAt: string2(), lastUpdatedAt: string2(), pollInterval: optional(number2()), statusMessage: optional(string2()) }); var CreateTaskResultSchema = ResultSchema.extend({ task: TaskSchema }); var TaskStatusNotificationParamsSchema = NotificationsParamsSchema.merge(TaskSchema); var TaskStatusNotificationSchema = NotificationSchema.extend({ method: literal("notifications/tasks/status"), params: TaskStatusNotificationParamsSchema }); var GetTaskRequestSchema = RequestSchema.extend({ method: literal("tasks/get"), params: BaseRequestParamsSchema.extend({ taskId: string2() }) }); var GetTaskResultSchema = ResultSchema.merge(TaskSchema); var GetTaskPayloadRequestSchema = RequestSchema.extend({ method: literal("tasks/result"), params: BaseRequestParamsSchema.extend({ taskId: string2() }) }); var GetTaskPayloadResultSchema = ResultSchema.loose(); var ListTasksRequestSchema = PaginatedRequestSchema.extend({ method: literal("tasks/list") }); var ListTasksResultSchema = PaginatedResultSchema.extend({ tasks: array(TaskSchema) }); var CancelTaskRequestSchema = RequestSchema.extend({ method: literal("tasks/cancel"), params: BaseRequestParamsSchema.extend({ taskId: string2() }) }); var CancelTaskResultSchema = ResultSchema.merge(TaskSchema); var ClientRequestSchema = union([ PingRequestSchema, InitializeRequestSchema, DiscoverRequestSchema, CompleteRequestSchema, SetLevelRequestSchema, GetPromptRequestSchema, ListPromptsRequestSchema, ListResourcesRequestSchema, ListResourceTemplatesRequestSchema, ReadResourceRequestSchema, SubscribeRequestSchema, UnsubscribeRequestSchema, SubscriptionsListenRequestSchema, CallToolRequestSchema, ListToolsRequestSchema ]); var ClientNotificationSchema = union([ CancelledNotificationSchema, ProgressNotificationSchema, InitializedNotificationSchema, RootsListChangedNotificationSchema ]); var ClientResultSchema = union([ EmptyResultSchema, CreateMessageResultSchema, CreateMessageResultWithToolsSchema, ElicitResultSchema, ListRootsResultSchema ]); var ServerRequestSchema = union([ PingRequestSchema, CreateMessageRequestSchema, ElicitRequestSchema, ListRootsRequestSchema ]); var ServerNotificationSchema = union([ CancelledNotificationSchema, ProgressNotificationSchema, LoggingMessageNotificationSchema, ResourceUpdatedNotificationSchema, ResourceListChangedNotificationSchema, ToolListChangedNotificationSchema, PromptListChangedNotificationSchema, SubscriptionsAcknowledgedNotificationSchema, ElicitationCompleteNotificationSchema ]); var ServerResultSchema = union([ EmptyResultSchema, InitializeResultSchema, DiscoverResultSchema, CompleteResultSchema, GetPromptResultSchema, ListPromptsResultSchema, ListResourcesResultSchema, ListResourceTemplatesResultSchema, ReadResourceResultSchema, CallToolResultSchema, ListToolsResultSchema, SubscriptionsListenResultSchema ]); var SafeUrlSchema = url().superRefine((val, ctx) => { if (!URL.canParse(val)) { ctx.addIssue({ code: ZodIssueCode.custom, message: "URL must be parseable", fatal: true }); return NEVER; } }).refine((url2) => { const u = new URL(url2); return u.protocol !== "javascript:" && u.protocol !== "data:" && u.protocol !== "vbscript:"; }, { message: "URL cannot use javascript:, data:, or vbscript: scheme" }); var OAuthProtectedResourceMetadataSchema = looseObject({ resource: string2().url(), authorization_servers: array(SafeUrlSchema).optional(), jwks_uri: string2().url().optional(), scopes_supported: array(string2()).optional(), bearer_methods_supported: array(string2()).optional(), resource_signing_alg_values_supported: array(string2()).optional(), resource_name: string2().optional(), resource_documentation: string2().optional(), resource_policy_uri: string2().url().optional(), resource_tos_uri: string2().url().optional(), tls_client_certificate_bound_access_tokens: boolean2().optional(), authorization_details_types_supported: array(string2()).optional(), dpop_signing_alg_values_supported: array(string2()).optional(), dpop_bound_access_tokens_required: boolean2().optional() }); var OAuthMetadataSchema = looseObject({ issuer: string2(), authorization_endpoint: SafeUrlSchema, token_endpoint: SafeUrlSchema, registration_endpoint: SafeUrlSchema.optional(), scopes_supported: array(string2()).optional(), response_types_supported: array(string2()), response_modes_supported: array(string2()).optional(), grant_types_supported: array(string2()).optional(), token_endpoint_auth_methods_supported: array(string2()).optional(), token_endpoint_auth_signing_alg_values_supported: array(string2()).optional(), service_documentation: SafeUrlSchema.optional(), revocation_endpoint: SafeUrlSchema.optional(), revocation_endpoint_auth_methods_supported: array(string2()).optional(), revocation_endpoint_auth_signing_alg_values_supported: array(string2()).optional(), introspection_endpoint: string2().optional(), introspection_endpoint_auth_methods_supported: array(string2()).optional(), introspection_endpoint_auth_signing_alg_values_supported: array(string2()).optional(), code_challenge_methods_supported: array(string2()).optional(), client_id_metadata_document_supported: boolean2().optional(), authorization_response_iss_parameter_supported: boolean2().optional().catch(void 0) }); var OpenIdProviderMetadataSchema = looseObject({ issuer: string2(), authorization_endpoint: SafeUrlSchema, token_endpoint: SafeUrlSchema, userinfo_endpoint: SafeUrlSchema.optional(), jwks_uri: SafeUrlSchema, registration_endpoint: SafeUrlSchema.optional(), scopes_supported: array(string2()).optional(), response_types_supported: array(string2()), response_modes_supported: array(string2()).optional(), grant_types_supported: array(string2()).optional(), acr_values_supported: array(string2()).optional(), subject_types_supported: array(string2()), id_token_signing_alg_values_supported: array(string2()), id_token_encryption_alg_values_supported: array(string2()).optional(), id_token_encryption_enc_values_supported: array(string2()).optional(), userinfo_signing_alg_values_supported: array(string2()).optional(), userinfo_encryption_alg_values_supported: array(string2()).optional(), userinfo_encryption_enc_values_supported: array(string2()).optional(), request_object_signing_alg_values_supported: array(string2()).optional(), request_object_encryption_alg_values_supported: array(string2()).optional(), request_object_encryption_enc_values_supported: array(string2()).optional(), token_endpoint_auth_methods_supported: array(string2()).optional(), token_endpoint_auth_signing_alg_values_supported: array(string2()).optional(), display_values_supported: array(string2()).optional(), claim_types_supported: array(string2()).optional(), claims_supported: array(string2()).optional(), service_documentation: string2().optional(), claims_locales_supported: array(string2()).optional(), ui_locales_supported: array(string2()).optional(), claims_parameter_supported: boolean2().optional(), request_parameter_supported: boolean2().optional(), request_uri_parameter_supported: boolean2().optional(), require_request_uri_registration: boolean2().optional(), op_policy_uri: SafeUrlSchema.optional(), op_tos_uri: SafeUrlSchema.optional(), client_id_metadata_document_supported: boolean2().optional(), authorization_response_iss_parameter_supported: boolean2().optional().catch(void 0) }); var OpenIdProviderDiscoveryMetadataSchema = object({ ...OpenIdProviderMetadataSchema.shape, ...OAuthMetadataSchema.pick({ code_challenge_methods_supported: true }).shape }); var OAuthTokensSchema = object({ access_token: string2(), id_token: string2().optional(), token_type: string2(), expires_in: coerce_exports.number().optional(), scope: string2().optional(), refresh_token: string2().optional() }).strip(); var IdJagTokenExchangeResponseSchema = object({ issued_token_type: literal("urn:ietf:params:oauth:token-type:id-jag"), access_token: string2(), token_type: string2().optional(), expires_in: number2().optional(), scope: string2().optional() }).strip(); var OAuthErrorResponseSchema = object({ error: string2(), error_description: string2().optional(), error_uri: string2().optional() }); var OptionalSafeUrlSchema = SafeUrlSchema.optional().or(literal("").transform(() => void 0)); var OAuthClientMetadataSchema = object({ redirect_uris: array(SafeUrlSchema), token_endpoint_auth_method: string2().optional(), grant_types: array(string2()).optional(), response_types: array(string2()).optional(), application_type: string2().optional(), client_name: string2().optional(), client_uri: SafeUrlSchema.optional(), logo_uri: OptionalSafeUrlSchema, scope: string2().optional(), contacts: array(string2()).optional(), tos_uri: OptionalSafeUrlSchema, policy_uri: string2().optional(), jwks_uri: SafeUrlSchema.optional(), jwks: any().optional(), software_id: string2().optional(), software_version: string2().optional(), software_statement: string2().optional() }).strip(); var OAuthClientInformationSchema = object({ client_id: string2(), client_secret: string2().optional(), client_id_issued_at: number2().optional(), client_secret_expires_at: number2().optional() }).strip(); var OAuthClientInformationFullSchema = OAuthClientMetadataSchema.merge(OAuthClientInformationSchema); var OAuthClientRegistrationErrorSchema = object({ error: string2(), error_description: string2().optional() }).strip(); var OAuthTokenRevocationRequestSchema = object({ token: string2(), token_type_hint: string2().optional() }).strip(); // ../../../../node_modules/@modelcontextprotocol/server/dist/src-CX2iR2pK.mjs var BRANDS = Symbol.for("mcp.sdk.errorBrands"); function stampErrorBrands(instance, ctor) { const brands = /* @__PURE__ */ new Set(); let current = ctor; while (typeof current === "function") { const brand = current.mcpBrand; if (Object.prototype.hasOwnProperty.call(current, "mcpBrand") && typeof brand === "string") brands.add(brand); current = Object.getPrototypeOf(current); } if (brands.size === 0) return; Object.defineProperty(instance, BRANDS, { value: brands, enumerable: false, configurable: true }); } function brandedHasInstance(cls, value) { try { if (typeof value === "object" && value !== null && Object.prototype.hasOwnProperty.call(cls, "mcpBrand") && typeof cls.mcpBrand === "string" && Object.prototype.hasOwnProperty.call(value, BRANDS)) { const carried = value[BRANDS]; if (carried && typeof carried.has === "function" && carried.has(cls.mcpBrand)) return true; } } catch { } return Function.prototype[Symbol.hasInstance].call(cls, value); } var OAuthError = class OAuthError2 extends Error { static { Object.defineProperty(this, "mcpBrand", { value: "mcp.OAuthError" }); } static [Symbol.hasInstance](value) { return brandedHasInstance(this, value); } /** * Brand-based type guard: equivalent to `value instanceof this`, as an * explicit static predicate (the axios/AWS-SDK `isInstance` style). Reads * the caller's own brand via `this`, so every branded subclass gets a * correctly-scoped guard by inheritance. Must be invoked on the class — * in callback position write `v => SdkError.isInstance(v)`, not * `.filter(SdkError.isInstance)` (detached calls throw rather than * silently matching nothing). */ static isInstance(value) { if (typeof this !== "function") throw new TypeError("isInstance must be called on the class (e.g. `SdkError.isInstance(value)`); for callbacks use `v => SdkError.isInstance(v)`"); return brandedHasInstance(this, value); } constructor(code, message, errorUri) { super(message); this.code = code; this.errorUri = errorUri; this.name = "OAuthError"; stampErrorBrands(this, new.target); } /** * Converts the error to a standard OAuth error response object. */ toResponseObject() { const response = { error: this.code, error_description: this.message }; if (this.errorUri) response.error_uri = this.errorUri; return response; } /** * Creates an {@linkcode OAuthError} from an OAuth error response. */ static fromResponse(response) { return new OAuthError2(response.error, response.error_description ?? response.error, response.error_uri); } }; var SdkErrorCode = /* @__PURE__ */ (function(SdkErrorCode$1) { SdkErrorCode$1["NotConnected"] = "NOT_CONNECTED"; SdkErrorCode$1["AlreadyConnected"] = "ALREADY_CONNECTED"; SdkErrorCode$1["NotInitialized"] = "NOT_INITIALIZED"; SdkErrorCode$1["CapabilityNotSupported"] = "CAPABILITY_NOT_SUPPORTED"; SdkErrorCode$1["RequestTimeout"] = "REQUEST_TIMEOUT"; SdkErrorCode$1["ConnectionClosed"] = "CONNECTION_CLOSED"; SdkErrorCode$1["SendFailed"] = "SEND_FAILED"; SdkErrorCode$1["InvalidResult"] = "INVALID_RESULT"; SdkErrorCode$1["UnsupportedResultType"] = "UNSUPPORTED_RESULT_TYPE"; SdkErrorCode$1["InputRequiredRoundsExceeded"] = "INPUT_REQUIRED_ROUNDS_EXCEEDED"; SdkErrorCode$1["ListPaginationExceeded"] = "LIST_PAGINATION_EXCEEDED"; SdkErrorCode$1["MethodNotSupportedByProtocolVersion"] = "METHOD_NOT_SUPPORTED_BY_PROTOCOL_VERSION"; SdkErrorCode$1["EraNegotiationFailed"] = "ERA_NEGOTIATION_FAILED"; SdkErrorCode$1["ClientHttpNotImplemented"] = "CLIENT_HTTP_NOT_IMPLEMENTED"; SdkErrorCode$1["ClientHttpAuthentication"] = "CLIENT_HTTP_AUTHENTICATION"; SdkErrorCode$1["ClientHttpForbidden"] = "CLIENT_HTTP_FORBIDDEN"; SdkErrorCode$1["ClientHttpUnexpectedContent"] = "CLIENT_HTTP_UNEXPECTED_CONTENT"; SdkErrorCode$1["ClientHttpFailedToOpenStream"] = "CLIENT_HTTP_FAILED_TO_OPEN_STREAM"; SdkErrorCode$1["ClientHttpFailedToTerminateSession"] = "CLIENT_HTTP_FAILED_TO_TERMINATE_SESSION"; return SdkErrorCode$1; })({}); var SdkError = class extends Error { static { Object.defineProperty(this, "mcpBrand", { value: "mcp.SdkError" }); } static [Symbol.hasInstance](value) { return brandedHasInstance(this, value); } /** * Brand-based type guard: equivalent to `value instanceof this`, as an * explicit static predicate (the axios/AWS-SDK `isInstance` style). Reads * the caller's own brand via `this`, so every branded subclass gets a * correctly-scoped guard by inheritance. Must be invoked on the class — * in callback position write `v => SdkError.isInstance(v)`, not * `.filter(SdkError.isInstance)` (detached calls throw rather than * silently matching nothing). */ static isInstance(value) { if (typeof this !== "function") throw new TypeError("isInstance must be called on the class (e.g. `SdkError.isInstance(value)`); for callbacks use `v => SdkError.isInstance(v)`"); return brandedHasInstance(this, value); } constructor(code, message, data) { super(message); this.code = code; this.data = data; this.name = "SdkError"; stampErrorBrands(this, new.target); } }; var SdkHttpError = class extends SdkError { static { Object.defineProperty(this, "mcpBrand", { value: "mcp.SdkHttpError" }); } constructor(code, message, data) { super(code, message, data); this.name = "SdkHttpError"; } get status() { return this.data.status; } get statusText() { return this.data.statusText; } }; function isPlainObject$7(value) { return value !== null && typeof value === "object" && !Array.isArray(value); } function isImpliedCapabilityMember(capability, member, declaredValue) { return capability === "elicitation" && member === "form" && declaredValue["form"] === void 0 && declaredValue["url"] === void 0; } function requiredClientCapabilitiesForInputRequest(entry) { switch (entry.method) { case "elicitation/create": if (entry.params?.["mode"] === "url") return { elicitation: { url: {} } }; return { elicitation: { form: {} } }; case "sampling/createMessage": { const params = entry.params; if (params !== void 0 && (params["tools"] !== void 0 || params["toolChoice"] !== void 0)) return { sampling: { tools: {} } }; return { sampling: {} }; } case "roots/list": return { roots: {} }; default: return; } } function missingClientCapabilities(required2, declared) { const missing = {}; for (const [capability, requirement] of Object.entries(required2)) { if (requirement === void 0) continue; const declaredValue = declared === void 0 ? void 0 : declared[capability]; if (declaredValue === void 0) { missing[capability] = requirement; continue; } if (isPlainObject$7(requirement) && isPlainObject$7(declaredValue)) { const missingMembers = {}; for (const [member, memberRequirement] of Object.entries(requirement)) if (memberRequirement !== void 0 && declaredValue[member] === void 0 && !isImpliedCapabilityMember(capability, member, declaredValue)) missingMembers[member] = memberRequirement; if (Object.keys(missingMembers).length > 0) missing[capability] = missingMembers; } } return Object.keys(missing).length > 0 ? missing : void 0; } var FIRST_MODERN_PROTOCOL_VERSION = "2026-07-28"; var SUPPORTED_MODERN_PROTOCOL_VERSIONS = [FIRST_MODERN_PROTOCOL_VERSION]; function isModernProtocolVersion(version3) { return version3 >= FIRST_MODERN_PROTOCOL_VERSION; } function legacyProtocolVersions(versions) { return versions.filter((version3) => !isModernProtocolVersion(version3)); } function modernProtocolVersions(versions) { return versions.filter((version3) => isModernProtocolVersion(version3)); } function appendTextFallbackForNonObject(result) { const sc = result.structuredContent; if (sc === void 0) return result; if (!(typeof sc !== "object" || sc === null || Array.isArray(sc))) return result; if (result.content?.some((c) => c.type === "text") ?? false) return result; return { ...result, content: [...result.content ?? [], { type: "text", text: JSON.stringify(sc) }] }; } var TOOL_RESULT_FOREIGN_FAMILY_KEYS = [ "task", "inputRequests", "requestState" ]; function normalizeContentlessToolResult(value) { if (value === null || typeof value !== "object" || Array.isArray(value) || value.content !== void 0 || TOOL_RESULT_FOREIGN_FAMILY_KEYS.some((key) => key in value)) return value; return { ...value, content: [] }; } function build$1() { const JSONValueSchema$1 = lazy(() => union([ string2(), number2(), boolean2(), _null3(), record(string2(), JSONValueSchema$1), array(JSONValueSchema$1) ])); const JSONObjectSchema$1 = record(string2(), JSONValueSchema$1); const ProgressTokenSchema$1 = union([string2(), number2().int()]); const CursorSchema$1 = string2(); const TaskMetadataSchema$1 = object({ ttl: number2().optional() }); const RelatedTaskMetadataSchema$1 = object({ taskId: string2() }); const RequestMetaSchema$1 = looseObject({ progressToken: ProgressTokenSchema$1.optional(), "io.modelcontextprotocol/related-task": RelatedTaskMetadataSchema$1.optional() }); const BaseRequestParamsSchema$1 = object({ _meta: RequestMetaSchema$1.optional() }); const TaskAugmentedRequestParamsSchema$1 = BaseRequestParamsSchema$1.extend({ task: TaskMetadataSchema$1.optional() }); const RequestSchema$1 = object({ method: string2(), params: BaseRequestParamsSchema$1.loose().optional() }); const NotificationsParamsSchema$1 = object({ _meta: RequestMetaSchema$1.optional() }); const NotificationSchema$1 = object({ method: string2(), params: NotificationsParamsSchema$1.loose().optional() }); const ResultSchema$1 = looseObject({ _meta: RequestMetaSchema$1.optional() }); const RequestIdSchema$1 = union([string2(), number2().int()]); const EmptyResultSchema$1 = ResultSchema$1.strict(); const CancelledNotificationParamsSchema$1 = NotificationsParamsSchema$1.extend({ requestId: RequestIdSchema$1.optional(), reason: string2().optional() }); const CancelledNotificationSchema$1 = NotificationSchema$1.extend({ method: literal("notifications/cancelled"), params: CancelledNotificationParamsSchema$1 }); const IconSchema$1 = object({ src: string2(), mimeType: string2().optional(), sizes: array(string2()).optional(), theme: _enum2(["light", "dark"]).optional() }); const IconsSchema$1 = object({ icons: array(IconSchema$1).optional() }); const BaseMetadataSchema$1 = object({ name: string2(), title: string2().optional() }); const ImplementationSchema$1 = BaseMetadataSchema$1.extend({ ...BaseMetadataSchema$1.shape, ...IconsSchema$1.shape, version: string2(), websiteUrl: string2().optional(), description: string2().optional() }); const FormElicitationCapabilitySchema2 = intersection(object({ applyDefaults: boolean2().optional() }), JSONObjectSchema$1); const ElicitationCapabilitySchema2 = preprocess((value) => { if (value && typeof value === "object" && !Array.isArray(value) && Object.keys(value).length === 0) return { form: {} }; return value; }, intersection(object({ form: FormElicitationCapabilitySchema2.optional(), url: JSONObjectSchema$1.optional() }), JSONObjectSchema$1.optional())); const ClientTasksCapabilitySchema$1 = looseObject({ list: JSONObjectSchema$1.optional(), cancel: JSONObjectSchema$1.optional(), requests: looseObject({ sampling: looseObject({ createMessage: JSONObjectSchema$1.optional() }).optional(), elicitation: looseObject({ create: JSONObjectSchema$1.optional() }).optional() }).optional() }); const ServerTasksCapabilitySchema$1 = looseObject({ list: JSONObjectSchema$1.optional(), cancel: JSONObjectSchema$1.optional(), requests: looseObject({ tools: looseObject({ call: JSONObjectSchema$1.optional() }).optional() }).optional() }); const ClientCapabilitiesSchema$1 = object({ experimental: record(string2(), JSONObjectSchema$1).optional(), sampling: object({ context: JSONObjectSchema$1.optional(), tools: JSONObjectSchema$1.optional() }).optional(), elicitation: ElicitationCapabilitySchema2.optional(), roots: object({ listChanged: boolean2().optional() }).optional(), tasks: ClientTasksCapabilitySchema$1.optional(), extensions: record(string2(), JSONObjectSchema$1).optional() }); const InitializeRequestParamsSchema$1 = BaseRequestParamsSchema$1.extend({ protocolVersion: string2(), capabilities: ClientCapabilitiesSchema$1, clientInfo: ImplementationSchema$1 }); const InitializeRequestSchema$1 = RequestSchema$1.extend({ method: literal("initialize"), params: InitializeRequestParamsSchema$1 }); const ServerCapabilitiesSchema$1 = object({ experimental: record(string2(), JSONObjectSchema$1).optional(), logging: JSONObjectSchema$1.optional(), completions: JSONObjectSchema$1.optional(), prompts: object({ listChanged: boolean2().optional() }).optional(), resources: object({ subscribe: boolean2().optional(), listChanged: boolean2().optional() }).optional(), tools: object({ listChanged: boolean2().optional() }).optional(), tasks: ServerTasksCapabilitySchema$1.optional(), extensions: record(string2(), JSONObjectSchema$1).optional() }); const InitializeResultSchema$1 = ResultSchema$1.extend({ protocolVersion: string2(), capabilities: ServerCapabilitiesSchema$1, serverInfo: ImplementationSchema$1, instructions: string2().optional() }); const InitializedNotificationSchema$1 = NotificationSchema$1.extend({ method: literal("notifications/initialized"), params: NotificationsParamsSchema$1.optional() }); const PingRequestSchema$1 = RequestSchema$1.extend({ method: literal("ping"), params: BaseRequestParamsSchema$1.optional() }); const ProgressSchema$1 = object({ progress: number2(), total: optional(number2()), message: optional(string2()) }); const ProgressNotificationParamsSchema$1 = object({ ...NotificationsParamsSchema$1.shape, ...ProgressSchema$1.shape, progressToken: ProgressTokenSchema$1 }); const ProgressNotificationSchema$1 = NotificationSchema$1.extend({ method: literal("notifications/progress"), params: ProgressNotificationParamsSchema$1 }); const PaginatedRequestParamsSchema$1 = BaseRequestParamsSchema$1.extend({ cursor: CursorSchema$1.optional() }); const PaginatedRequestSchema$1 = RequestSchema$1.extend({ params: PaginatedRequestParamsSchema$1.optional() }); const PaginatedResultSchema$1 = ResultSchema$1.extend({ nextCursor: CursorSchema$1.optional() }); const ResourceContentsSchema$1 = object({ uri: string2(), mimeType: optional(string2()), _meta: record(string2(), unknown()).optional() }); const TextResourceContentsSchema$1 = ResourceContentsSchema$1.extend({ text: string2() }); const Base64Schema2 = string2().refine((val) => { try { atob(val); return true; } catch { return false; } }, { message: "Invalid Base64 string" }); const BlobResourceContentsSchema$1 = ResourceContentsSchema$1.extend({ blob: Base64Schema2 }); const RoleSchema$1 = _enum2(["user", "assistant"]); const AnnotationsSchema$1 = object({ audience: array(RoleSchema$1).optional(), priority: number2().min(0).max(1).optional(), lastModified: iso_exports.datetime({ offset: true }).optional() }); const ResourceSchema$1 = object({ ...BaseMetadataSchema$1.shape, ...IconsSchema$1.shape, uri: string2(), description: optional(string2()), mimeType: optional(string2()), size: optional(number2()), annotations: AnnotationsSchema$1.optional(), _meta: optional(looseObject({})) }); const ResourceTemplateSchema$1 = object({ ...BaseMetadataSchema$1.shape, ...IconsSchema$1.shape, uriTemplate: string2(), description: optional(string2()), mimeType: optional(string2()), annotations: AnnotationsSchema$1.optional(), _meta: optional(looseObject({})) }); const ListResourcesRequestSchema$1 = PaginatedRequestSchema$1.extend({ method: literal("resources/list") }); const ListResourcesResultSchema$1 = PaginatedResultSchema$1.extend({ resources: array(ResourceSchema$1) }); const ListResourceTemplatesRequestSchema$1 = PaginatedRequestSchema$1.extend({ method: literal("resources/templates/list") }); const ListResourceTemplatesResultSchema$1 = PaginatedResultSchema$1.extend({ resourceTemplates: array(ResourceTemplateSchema$1) }); const ResourceRequestParamsSchema$1 = BaseRequestParamsSchema$1.extend({ uri: string2() }); const ReadResourceRequestParamsSchema$1 = ResourceRequestParamsSchema$1; const ReadResourceRequestSchema$1 = RequestSchema$1.extend({ method: literal("resources/read"), params: ReadResourceRequestParamsSchema$1 }); const ReadResourceResultSchema$1 = ResultSchema$1.extend({ contents: array(union([TextResourceContentsSchema$1, BlobResourceContentsSchema$1])) }); const ResourceListChangedNotificationSchema$1 = NotificationSchema$1.extend({ method: literal("notifications/resources/list_changed"), params: NotificationsParamsSchema$1.optional() }); const SubscribeRequestParamsSchema$1 = ResourceRequestParamsSchema$1; const SubscribeRequestSchema$1 = RequestSchema$1.extend({ method: literal("resources/subscribe"), params: SubscribeRequestParamsSchema$1 }); const UnsubscribeRequestParamsSchema$1 = ResourceRequestParamsSchema$1; const UnsubscribeRequestSchema$1 = RequestSchema$1.extend({ method: literal("resources/unsubscribe"), params: UnsubscribeRequestParamsSchema$1 }); const ResourceUpdatedNotificationParamsSchema$1 = NotificationsParamsSchema$1.extend({ uri: string2() }); const ResourceUpdatedNotificationSchema$1 = NotificationSchema$1.extend({ method: literal("notifications/resources/updated"), params: ResourceUpdatedNotificationParamsSchema$1 }); const PromptArgumentSchema$1 = object({ name: string2(), description: optional(string2()), required: optional(boolean2()) }); const PromptSchema$1 = object({ ...BaseMetadataSchema$1.shape, ...IconsSchema$1.shape, description: optional(string2()), arguments: optional(array(PromptArgumentSchema$1)), _meta: optional(looseObject({})) }); const ListPromptsRequestSchema$1 = PaginatedRequestSchema$1.extend({ method: literal("prompts/list") }); const ListPromptsResultSchema$1 = PaginatedResultSchema$1.extend({ prompts: array(PromptSchema$1) }); const GetPromptRequestParamsSchema$1 = BaseRequestParamsSchema$1.extend({ name: string2(), arguments: record(string2(), string2()).optional() }); const GetPromptRequestSchema$1 = RequestSchema$1.extend({ method: literal("prompts/get"), params: GetPromptRequestParamsSchema$1 }); const TextContentSchema$1 = object({ type: literal("text"), text: string2(), annotations: AnnotationsSchema$1.optional(), _meta: record(string2(), unknown()).optional() }); const ImageContentSchema$1 = object({ type: literal("image"), data: Base64Schema2, mimeType: string2(), annotations: AnnotationsSchema$1.optional(), _meta: record(string2(), unknown()).optional() }); const AudioContentSchema$1 = object({ type: literal("audio"), data: Base64Schema2, mimeType: string2(), annotations: AnnotationsSchema$1.optional(), _meta: record(string2(), unknown()).optional() }); const ToolUseContentSchema$1 = object({ type: literal("tool_use"), name: string2(), id: string2(), input: record(string2(), unknown()), _meta: record(string2(), unknown()).optional() }); const EmbeddedResourceSchema$1 = object({ type: literal("resource"), resource: union([TextResourceContentsSchema$1, BlobResourceContentsSchema$1]), annotations: AnnotationsSchema$1.optional(), _meta: record(string2(), unknown()).optional() }); const ResourceLinkSchema$1 = ResourceSchema$1.extend({ type: literal("resource_link") }); const ContentBlockSchema$1 = union([ TextContentSchema$1, ImageContentSchema$1, AudioContentSchema$1, ResourceLinkSchema$1, EmbeddedResourceSchema$1 ]); const PromptMessageSchema$1 = object({ role: RoleSchema$1, content: ContentBlockSchema$1 }); const GetPromptResultSchema$1 = ResultSchema$1.extend({ description: string2().optional(), messages: array(PromptMessageSchema$1) }); const PromptListChangedNotificationSchema$1 = NotificationSchema$1.extend({ method: literal("notifications/prompts/list_changed"), params: NotificationsParamsSchema$1.optional() }); const ToolAnnotationsSchema$1 = object({ title: string2().optional(), readOnlyHint: boolean2().optional(), destructiveHint: boolean2().optional(), idempotentHint: boolean2().optional(), openWorldHint: boolean2().optional() }); const ToolExecutionSchema$1 = object({ taskSupport: _enum2([ "required", "optional", "forbidden" ]).optional() }); const ToolSchema$1 = object({ ...BaseMetadataSchema$1.shape, ...IconsSchema$1.shape, description: string2().optional(), inputSchema: object({ type: literal("object"), properties: record(string2(), JSONValueSchema$1).optional(), required: array(string2()).optional() }).catchall(unknown()), outputSchema: object({ type: literal("object"), properties: record(string2(), JSONValueSchema$1).optional(), required: array(string2()).optional() }).catchall(unknown()).optional(), annotations: ToolAnnotationsSchema$1.optional(), execution: ToolExecutionSchema$1.optional(), _meta: record(string2(), unknown()).optional() }); const ListToolsRequestSchema$1 = PaginatedRequestSchema$1.extend({ method: literal("tools/list") }); const ListToolsResultSchema$1 = PaginatedResultSchema$1.extend({ tools: array(ToolSchema$1) }); const CallToolResultSchema$1 = ResultSchema$1.extend({ content: array(ContentBlockSchema$1), structuredContent: record(string2(), unknown()).optional(), isError: boolean2().optional() }); const CallToolRequestParamsSchema$1 = TaskAugmentedRequestParamsSchema$1.extend({ name: string2(), arguments: record(string2(), unknown()).optional() }); const CallToolRequestSchema$1 = RequestSchema$1.extend({ method: literal("tools/call"), params: CallToolRequestParamsSchema$1 }); const ToolListChangedNotificationSchema$1 = NotificationSchema$1.extend({ method: literal("notifications/tools/list_changed"), params: NotificationsParamsSchema$1.optional() }); const LoggingLevelSchema$1 = _enum2([ "debug", "info", "notice", "warning", "error", "critical", "alert", "emergency" ]); const SetLevelRequestParamsSchema$1 = BaseRequestParamsSchema$1.extend({ level: LoggingLevelSchema$1 }); const SetLevelRequestSchema$1 = RequestSchema$1.extend({ method: literal("logging/setLevel"), params: SetLevelRequestParamsSchema$1 }); const LoggingMessageNotificationParamsSchema$1 = NotificationsParamsSchema$1.extend({ level: LoggingLevelSchema$1, logger: string2().optional(), data: unknown() }); const LoggingMessageNotificationSchema$1 = NotificationSchema$1.extend({ method: literal("notifications/message"), params: LoggingMessageNotificationParamsSchema$1 }); const ModelHintSchema$1 = object({ name: string2().optional() }); const ModelPreferencesSchema$1 = object({ hints: array(ModelHintSchema$1).optional(), costPriority: number2().min(0).max(1).optional(), speedPriority: number2().min(0).max(1).optional(), intelligencePriority: number2().min(0).max(1).optional() }); const ToolChoiceSchema$1 = object({ mode: _enum2([ "auto", "required", "none" ]).optional() }); const ToolResultContentSchema$1 = object({ type: literal("tool_result"), toolUseId: string2().describe("The unique identifier for the corresponding tool call."), content: array(ContentBlockSchema$1), structuredContent: object({}).loose().optional(), isError: boolean2().optional(), _meta: record(string2(), unknown()).optional() }); const SamplingContentSchema$1 = discriminatedUnion("type", [ TextContentSchema$1, ImageContentSchema$1, AudioContentSchema$1 ]); const SamplingMessageContentBlockSchema$1 = discriminatedUnion("type", [ TextContentSchema$1, ImageContentSchema$1, AudioContentSchema$1, ToolUseContentSchema$1, ToolResultContentSchema$1 ]); const SamplingMessageSchema$1 = object({ role: RoleSchema$1, content: union([SamplingMessageContentBlockSchema$1, array(SamplingMessageContentBlockSchema$1)]), _meta: record(string2(), unknown()).optional() }); const CreateMessageRequestParamsSchema$1 = TaskAugmentedRequestParamsSchema$1.extend({ messages: array(SamplingMessageSchema$1), modelPreferences: ModelPreferencesSchema$1.optional(), systemPrompt: string2().optional(), includeContext: _enum2([ "none", "thisServer", "allServers" ]).optional(), temperature: number2().optional(), maxTokens: number2().int(), stopSequences: array(string2()).optional(), metadata: JSONObjectSchema$1.optional(), tools: array(ToolSchema$1).optional(), toolChoice: ToolChoiceSchema$1.optional() }); const CreateMessageRequestSchema$1 = RequestSchema$1.extend({ method: literal("sampling/createMessage"), params: CreateMessageRequestParamsSchema$1 }); const CreateMessageResultSchema$1 = ResultSchema$1.extend({ model: string2(), stopReason: optional(_enum2([ "endTurn", "stopSequence", "maxTokens" ]).or(string2())), role: RoleSchema$1, content: SamplingContentSchema$1 }); const CreateMessageResultWithToolsSchema$1 = ResultSchema$1.extend({ model: string2(), stopReason: optional(_enum2([ "endTurn", "stopSequence", "maxTokens", "toolUse" ]).or(string2())), role: RoleSchema$1, content: union([SamplingMessageContentBlockSchema$1, array(SamplingMessageContentBlockSchema$1)]) }); const BooleanSchemaSchema$1 = object({ type: literal("boolean"), title: string2().optional(), description: string2().optional(), default: boolean2().optional() }); const StringSchemaSchema$1 = object({ type: literal("string"), title: string2().optional(), description: string2().optional(), minLength: number2().optional(), maxLength: number2().optional(), format: _enum2([ "email", "uri", "date", "date-time" ]).optional(), default: string2().optional() }); const NumberSchemaSchema$1 = object({ type: _enum2(["number", "integer"]), title: string2().optional(), description: string2().optional(), minimum: number2().optional(), maximum: number2().optional(), default: number2().optional() }); const UntitledSingleSelectEnumSchemaSchema$1 = object({ type: literal("string"), title: string2().optional(), description: string2().optional(), enum: array(string2()), default: string2().optional() }); const TitledSingleSelectEnumSchemaSchema$1 = object({ type: literal("string"), title: string2().optional(), description: string2().optional(), oneOf: array(object({ const: string2(), title: string2() })), default: string2().optional() }); const LegacyTitledEnumSchemaSchema$1 = object({ type: literal("string"), title: string2().optional(), description: string2().optional(), enum: array(string2()), enumNames: array(string2()).optional(), default: string2().optional() }); const SingleSelectEnumSchemaSchema$1 = union([UntitledSingleSelectEnumSchemaSchema$1, TitledSingleSelectEnumSchemaSchema$1]); const UntitledMultiSelectEnumSchemaSchema$1 = object({ type: literal("array"), title: string2().optional(), description: string2().optional(), minItems: number2().optional(), maxItems: number2().optional(), items: object({ type: literal("string"), enum: array(string2()) }), default: array(string2()).optional() }); const TitledMultiSelectEnumSchemaSchema$1 = object({ type: literal("array"), title: string2().optional(), description: string2().optional(), minItems: number2().optional(), maxItems: number2().optional(), items: object({ anyOf: array(object({ const: string2(), title: string2() })) }), default: array(string2()).optional() }); const MultiSelectEnumSchemaSchema$1 = union([UntitledMultiSelectEnumSchemaSchema$1, TitledMultiSelectEnumSchemaSchema$1]); const EnumSchemaSchema$1 = union([ LegacyTitledEnumSchemaSchema$1, SingleSelectEnumSchemaSchema$1, MultiSelectEnumSchemaSchema$1 ]); const PrimitiveSchemaDefinitionSchema$1 = union([ EnumSchemaSchema$1, BooleanSchemaSchema$1, StringSchemaSchema$1, NumberSchemaSchema$1 ]); const ElicitRequestFormParamsSchema$1 = TaskAugmentedRequestParamsSchema$1.extend({ mode: literal("form").optional(), message: string2(), requestedSchema: object({ type: literal("object"), properties: record(string2(), PrimitiveSchemaDefinitionSchema$1), required: array(string2()).optional() }).catchall(unknown()) }); const ElicitRequestURLParamsSchema$1 = TaskAugmentedRequestParamsSchema$1.extend({ mode: literal("url"), message: string2(), elicitationId: string2(), url: string2().url() }); const ElicitRequestParamsSchema$1 = union([ElicitRequestFormParamsSchema$1, ElicitRequestURLParamsSchema$1]); const ElicitRequestSchema$1 = RequestSchema$1.extend({ method: literal("elicitation/create"), params: ElicitRequestParamsSchema$1 }); const ElicitationCompleteNotificationParamsSchema$1 = NotificationsParamsSchema$1.extend({ elicitationId: string2() }); const ElicitationCompleteNotificationSchema$1 = NotificationSchema$1.extend({ method: literal("notifications/elicitation/complete"), params: ElicitationCompleteNotificationParamsSchema$1 }); const ElicitResultSchema$1 = ResultSchema$1.extend({ action: _enum2([ "accept", "decline", "cancel" ]), content: preprocess((val) => val === null ? void 0 : val, record(string2(), union([ string2(), number2(), boolean2(), array(string2()) ])).optional()) }); const ResourceTemplateReferenceSchema$1 = object({ type: literal("ref/resource"), uri: string2() }); const PromptReferenceSchema$1 = object({ type: literal("ref/prompt"), name: string2() }); const CompleteRequestParamsSchema$1 = BaseRequestParamsSchema$1.extend({ ref: union([PromptReferenceSchema$1, ResourceTemplateReferenceSchema$1]), argument: object({ name: string2(), value: string2() }), context: object({ arguments: record(string2(), string2()).optional() }).optional() }); const CompleteRequestSchema$1 = RequestSchema$1.extend({ method: literal("completion/complete"), params: CompleteRequestParamsSchema$1 }); const CompleteResultSchema$1 = ResultSchema$1.extend({ completion: looseObject({ values: array(string2()).max(100), total: optional(number2().int()), hasMore: optional(boolean2()) }) }); const RootSchema$1 = object({ uri: string2().startsWith("file://"), name: string2().optional(), _meta: record(string2(), unknown()).optional() }); const ListRootsRequestSchema$1 = RequestSchema$1.extend({ method: literal("roots/list"), params: BaseRequestParamsSchema$1.optional() }); const ListRootsResultSchema$1 = ResultSchema$1.extend({ roots: array(RootSchema$1) }); const RootsListChangedNotificationSchema$1 = NotificationSchema$1.extend({ method: literal("notifications/roots/list_changed"), params: NotificationsParamsSchema$1.optional() }); const TaskCreationParamsSchema$1 = looseObject({ ttl: number2().optional(), pollInterval: number2().optional() }); const TaskStatusSchema$1 = _enum2([ "working", "input_required", "completed", "failed", "cancelled" ]); const TaskSchema$1 = object({ taskId: string2(), status: TaskStatusSchema$1, ttl: union([number2(), _null3()]), createdAt: string2(), lastUpdatedAt: string2(), pollInterval: optional(number2()), statusMessage: optional(string2()) }); const CreateTaskResultSchema$1 = ResultSchema$1.extend({ task: TaskSchema$1 }); const TaskStatusNotificationParamsSchema$1 = NotificationsParamsSchema$1.merge(TaskSchema$1); const TaskStatusNotificationSchema$1 = NotificationSchema$1.extend({ method: literal("notifications/tasks/status"), params: TaskStatusNotificationParamsSchema$1 }); const GetTaskRequestSchema$1 = RequestSchema$1.extend({ method: literal("tasks/get"), params: BaseRequestParamsSchema$1.extend({ taskId: string2() }) }); const GetTaskResultSchema$1 = ResultSchema$1.merge(TaskSchema$1); const GetTaskPayloadRequestSchema$1 = RequestSchema$1.extend({ method: literal("tasks/result"), params: BaseRequestParamsSchema$1.extend({ taskId: string2() }) }); const GetTaskPayloadResultSchema$1 = ResultSchema$1.loose(); const ListTasksRequestSchema$1 = PaginatedRequestSchema$1.extend({ method: literal("tasks/list") }); const ListTasksResultSchema$1 = PaginatedResultSchema$1.extend({ tasks: array(TaskSchema$1) }); const CancelTaskRequestSchema$1 = RequestSchema$1.extend({ method: literal("tasks/cancel"), params: BaseRequestParamsSchema$1.extend({ taskId: string2() }) }); return { JSONValueSchema: JSONValueSchema$1, JSONObjectSchema: JSONObjectSchema$1, ProgressTokenSchema: ProgressTokenSchema$1, CursorSchema: CursorSchema$1, TaskMetadataSchema: TaskMetadataSchema$1, RelatedTaskMetadataSchema: RelatedTaskMetadataSchema$1, RequestMetaSchema: RequestMetaSchema$1, BaseRequestParamsSchema: BaseRequestParamsSchema$1, TaskAugmentedRequestParamsSchema: TaskAugmentedRequestParamsSchema$1, RequestSchema: RequestSchema$1, NotificationsParamsSchema: NotificationsParamsSchema$1, NotificationSchema: NotificationSchema$1, ResultSchema: ResultSchema$1, RequestIdSchema: RequestIdSchema$1, EmptyResultSchema: EmptyResultSchema$1, CancelledNotificationParamsSchema: CancelledNotificationParamsSchema$1, CancelledNotificationSchema: CancelledNotificationSchema$1, IconSchema: IconSchema$1, IconsSchema: IconsSchema$1, BaseMetadataSchema: BaseMetadataSchema$1, ImplementationSchema: ImplementationSchema$1, ClientTasksCapabilitySchema: ClientTasksCapabilitySchema$1, ServerTasksCapabilitySchema: ServerTasksCapabilitySchema$1, ClientCapabilitiesSchema: ClientCapabilitiesSchema$1, InitializeRequestParamsSchema: InitializeRequestParamsSchema$1, InitializeRequestSchema: InitializeRequestSchema$1, ServerCapabilitiesSchema: ServerCapabilitiesSchema$1, InitializeResultSchema: InitializeResultSchema$1, InitializedNotificationSchema: InitializedNotificationSchema$1, PingRequestSchema: PingRequestSchema$1, ProgressSchema: ProgressSchema$1, ProgressNotificationParamsSchema: ProgressNotificationParamsSchema$1, ProgressNotificationSchema: ProgressNotificationSchema$1, PaginatedRequestParamsSchema: PaginatedRequestParamsSchema$1, PaginatedRequestSchema: PaginatedRequestSchema$1, PaginatedResultSchema: PaginatedResultSchema$1, ResourceContentsSchema: ResourceContentsSchema$1, TextResourceContentsSchema: TextResourceContentsSchema$1, BlobResourceContentsSchema: BlobResourceContentsSchema$1, RoleSchema: RoleSchema$1, AnnotationsSchema: AnnotationsSchema$1, ResourceSchema: ResourceSchema$1, ResourceTemplateSchema: ResourceTemplateSchema$1, ListResourcesRequestSchema: ListResourcesRequestSchema$1, ListResourcesResultSchema: ListResourcesResultSchema$1, ListResourceTemplatesRequestSchema: ListResourceTemplatesRequestSchema$1, ListResourceTemplatesResultSchema: ListResourceTemplatesResultSchema$1, ResourceRequestParamsSchema: ResourceRequestParamsSchema$1, ReadResourceRequestParamsSchema: ReadResourceRequestParamsSchema$1, ReadResourceRequestSchema: ReadResourceRequestSchema$1, ReadResourceResultSchema: ReadResourceResultSchema$1, ResourceListChangedNotificationSchema: ResourceListChangedNotificationSchema$1, SubscribeRequestParamsSchema: SubscribeRequestParamsSchema$1, SubscribeRequestSchema: SubscribeRequestSchema$1, UnsubscribeRequestParamsSchema: UnsubscribeRequestParamsSchema$1, UnsubscribeRequestSchema: UnsubscribeRequestSchema$1, ResourceUpdatedNotificationParamsSchema: ResourceUpdatedNotificationParamsSchema$1, ResourceUpdatedNotificationSchema: ResourceUpdatedNotificationSchema$1, PromptArgumentSchema: PromptArgumentSchema$1, PromptSchema: PromptSchema$1, ListPromptsRequestSchema: ListPromptsRequestSchema$1, ListPromptsResultSchema: ListPromptsResultSchema$1, GetPromptRequestParamsSchema: GetPromptRequestParamsSchema$1, GetPromptRequestSchema: GetPromptRequestSchema$1, TextContentSchema: TextContentSchema$1, ImageContentSchema: ImageContentSchema$1, AudioContentSchema: AudioContentSchema$1, ToolUseContentSchema: ToolUseContentSchema$1, EmbeddedResourceSchema: EmbeddedResourceSchema$1, ResourceLinkSchema: ResourceLinkSchema$1, ContentBlockSchema: ContentBlockSchema$1, PromptMessageSchema: PromptMessageSchema$1, GetPromptResultSchema: GetPromptResultSchema$1, PromptListChangedNotificationSchema: PromptListChangedNotificationSchema$1, ToolAnnotationsSchema: ToolAnnotationsSchema$1, ToolExecutionSchema: ToolExecutionSchema$1, ToolSchema: ToolSchema$1, ListToolsRequestSchema: ListToolsRequestSchema$1, ListToolsResultSchema: ListToolsResultSchema$1, CallToolResultSchema: CallToolResultSchema$1, CallToolRequestParamsSchema: CallToolRequestParamsSchema$1, CallToolRequestSchema: CallToolRequestSchema$1, ToolListChangedNotificationSchema: ToolListChangedNotificationSchema$1, LoggingLevelSchema: LoggingLevelSchema$1, SetLevelRequestParamsSchema: SetLevelRequestParamsSchema$1, SetLevelRequestSchema: SetLevelRequestSchema$1, LoggingMessageNotificationParamsSchema: LoggingMessageNotificationParamsSchema$1, LoggingMessageNotificationSchema: LoggingMessageNotificationSchema$1, ModelHintSchema: ModelHintSchema$1, ModelPreferencesSchema: ModelPreferencesSchema$1, ToolChoiceSchema: ToolChoiceSchema$1, ToolResultContentSchema: ToolResultContentSchema$1, SamplingContentSchema: SamplingContentSchema$1, SamplingMessageContentBlockSchema: SamplingMessageContentBlockSchema$1, SamplingMessageSchema: SamplingMessageSchema$1, CreateMessageRequestParamsSchema: CreateMessageRequestParamsSchema$1, CreateMessageRequestSchema: CreateMessageRequestSchema$1, CreateMessageResultSchema: CreateMessageResultSchema$1, CreateMessageResultWithToolsSchema: CreateMessageResultWithToolsSchema$1, BooleanSchemaSchema: BooleanSchemaSchema$1, StringSchemaSchema: StringSchemaSchema$1, NumberSchemaSchema: NumberSchemaSchema$1, UntitledSingleSelectEnumSchemaSchema: UntitledSingleSelectEnumSchemaSchema$1, TitledSingleSelectEnumSchemaSchema: TitledSingleSelectEnumSchemaSchema$1, LegacyTitledEnumSchemaSchema: LegacyTitledEnumSchemaSchema$1, SingleSelectEnumSchemaSchema: SingleSelectEnumSchemaSchema$1, UntitledMultiSelectEnumSchemaSchema: UntitledMultiSelectEnumSchemaSchema$1, TitledMultiSelectEnumSchemaSchema: TitledMultiSelectEnumSchemaSchema$1, MultiSelectEnumSchemaSchema: MultiSelectEnumSchemaSchema$1, EnumSchemaSchema: EnumSchemaSchema$1, PrimitiveSchemaDefinitionSchema: PrimitiveSchemaDefinitionSchema$1, ElicitRequestFormParamsSchema: ElicitRequestFormParamsSchema$1, ElicitRequestURLParamsSchema: ElicitRequestURLParamsSchema$1, ElicitRequestParamsSchema: ElicitRequestParamsSchema$1, ElicitRequestSchema: ElicitRequestSchema$1, ElicitationCompleteNotificationParamsSchema: ElicitationCompleteNotificationParamsSchema$1, ElicitationCompleteNotificationSchema: ElicitationCompleteNotificationSchema$1, ElicitResultSchema: ElicitResultSchema$1, ResourceTemplateReferenceSchema: ResourceTemplateReferenceSchema$1, PromptReferenceSchema: PromptReferenceSchema$1, CompleteRequestParamsSchema: CompleteRequestParamsSchema$1, CompleteRequestSchema: CompleteRequestSchema$1, CompleteResultSchema: CompleteResultSchema$1, RootSchema: RootSchema$1, ListRootsRequestSchema: ListRootsRequestSchema$1, ListRootsResultSchema: ListRootsResultSchema$1, RootsListChangedNotificationSchema: RootsListChangedNotificationSchema$1, TaskCreationParamsSchema: TaskCreationParamsSchema$1, TaskStatusSchema: TaskStatusSchema$1, TaskSchema: TaskSchema$1, CreateTaskResultSchema: CreateTaskResultSchema$1, TaskStatusNotificationParamsSchema: TaskStatusNotificationParamsSchema$1, TaskStatusNotificationSchema: TaskStatusNotificationSchema$1, GetTaskRequestSchema: GetTaskRequestSchema$1, GetTaskResultSchema: GetTaskResultSchema$1, GetTaskPayloadRequestSchema: GetTaskPayloadRequestSchema$1, GetTaskPayloadResultSchema: GetTaskPayloadResultSchema$1, ListTasksRequestSchema: ListTasksRequestSchema$1, ListTasksResultSchema: ListTasksResultSchema$1, CancelTaskRequestSchema: CancelTaskRequestSchema$1, CancelTaskResultSchema: ResultSchema$1.merge(TaskSchema$1), ClientRequestSchema: union([ PingRequestSchema$1, InitializeRequestSchema$1, CompleteRequestSchema$1, SetLevelRequestSchema$1, GetPromptRequestSchema$1, ListPromptsRequestSchema$1, ListResourcesRequestSchema$1, ListResourceTemplatesRequestSchema$1, ReadResourceRequestSchema$1, SubscribeRequestSchema$1, UnsubscribeRequestSchema$1, CallToolRequestSchema$1, ListToolsRequestSchema$1, GetTaskRequestSchema$1, GetTaskPayloadRequestSchema$1, ListTasksRequestSchema$1, CancelTaskRequestSchema$1 ]), ClientNotificationSchema: union([ CancelledNotificationSchema$1, ProgressNotificationSchema$1, InitializedNotificationSchema$1, RootsListChangedNotificationSchema$1, TaskStatusNotificationSchema$1 ]), ClientResultSchema: union([ EmptyResultSchema$1, CreateMessageResultSchema$1, CreateMessageResultWithToolsSchema$1, ElicitResultSchema$1, ListRootsResultSchema$1, GetTaskResultSchema$1, ListTasksResultSchema$1, CreateTaskResultSchema$1 ]), ServerRequestSchema: union([ PingRequestSchema$1, CreateMessageRequestSchema$1, ElicitRequestSchema$1, ListRootsRequestSchema$1, GetTaskRequestSchema$1, GetTaskPayloadRequestSchema$1, ListTasksRequestSchema$1, CancelTaskRequestSchema$1 ]), ServerNotificationSchema: union([ CancelledNotificationSchema$1, ProgressNotificationSchema$1, LoggingMessageNotificationSchema$1, ResourceUpdatedNotificationSchema$1, ResourceListChangedNotificationSchema$1, ToolListChangedNotificationSchema$1, PromptListChangedNotificationSchema$1, TaskStatusNotificationSchema$1, ElicitationCompleteNotificationSchema$1 ]), ServerResultSchema: union([ EmptyResultSchema$1, InitializeResultSchema$1, CompleteResultSchema$1, GetPromptResultSchema$1, ListPromptsResultSchema$1, ListResourcesResultSchema$1, ListResourceTemplatesResultSchema$1, ReadResourceResultSchema$1, CallToolResultSchema$1, ListToolsResultSchema$1, GetTaskResultSchema$1, ListTasksResultSchema$1, CreateTaskResultSchema$1 ]), CallToolResultWireSchema: unknown().superRefine((value, ctx) => { if (typeof value !== "object" || value === null || Array.isArray(value) || value.content !== void 0) return; for (const key of TOOL_RESULT_FOREIGN_FAMILY_KEYS) if (key in value) { ctx.addIssue({ code: "custom", message: `content is required when the body carries '${key}' \u2014 another result family cannot default into an empty tools/call success` }); return; } }).transform(normalizeContentlessToolResult).pipe(CallToolResultSchema$1) }; } var memo$1; function buildSchemas2025() { return memo$1 ??= build$1(); } function isNonObjectJsonSchemaRoot(json2) { return json2["type"] !== "object"; } var REF_REWRITE_DATA_POSITION_KEYS = /* @__PURE__ */ new Set([ "const", "enum", "default", "examples" ]); var REF_REWRITE_NAME_MAP_KEYS = /* @__PURE__ */ new Set([ "properties", "patternProperties", "$defs", "definitions", "dependentSchemas", "dependencies" ]); function establishesNewBase(id) { return id !== void 0 && !(typeof id === "string" && id.startsWith("#")); } function wrapOutputSchemaForLegacy(natural) { const $schema = typeof natural["$schema"] === "string" ? natural["$schema"] : void 0; if (establishesNewBase(natural["$id"])) return { ...$schema !== void 0 && { $schema }, type: "object", properties: { result: natural }, required: ["result"] }; const convertRecursiveRefs = declares2019Dialect(natural["$schema"]) && natural["$recursiveAnchor"] !== true; const rewriteRefs = (node2, parentIsNameMap) => { if (Array.isArray(node2)) return node2.map((item) => rewriteRefs(item, false)); if (node2 === null || typeof node2 !== "object") return node2; if (!parentIsNameMap && establishesNewBase(node2["$id"])) return node2; const out = {}; let convertedRecursion = false; for (const [k, v] of Object.entries(node2)) if (parentIsNameMap) out[k] = rewriteRefs(v, false); else if ((k === "$ref" || k === "$dynamicRef") && typeof v === "string") out[k] = v === "#" ? "#/properties/result" : v.startsWith("#/") ? `#/properties/result${v.slice(1)}` : v; else if (k === "$recursiveRef" && v === "#" && convertRecursiveRefs) convertedRecursion = true; else if (REF_REWRITE_DATA_POSITION_KEYS.has(k)) out[k] = v; else if (REF_REWRITE_NAME_MAP_KEYS.has(k)) out[k] = rewriteRefs(v, true); else out[k] = rewriteRefs(v, false); if (convertedRecursion) if ("$ref" in out) out["allOf"] = [...Array.isArray(out["allOf"]) ? out["allOf"] : [], { $ref: "#/properties/result" }]; else out["$ref"] = "#/properties/result"; return out; }; return { ...$schema !== void 0 && { $schema }, type: "object", properties: { result: rewriteRefs(natural, false) }, required: ["result"] }; } var requestMethodKeys$1 = { ping: null, initialize: null, "completion/complete": null, "logging/setLevel": null, "prompts/get": null, "prompts/list": null, "resources/list": null, "resources/templates/list": null, "resources/read": null, "resources/subscribe": null, "resources/unsubscribe": null, "tools/call": null, "tools/list": null, "tasks/get": null, "tasks/result": null, "tasks/list": null, "tasks/cancel": null, "sampling/createMessage": null, "elicitation/create": null, "roots/list": null }; var notificationMethodKeys$1 = { "notifications/cancelled": null, "notifications/progress": null, "notifications/initialized": null, "notifications/roots/list_changed": null, "notifications/tasks/status": null, "notifications/message": null, "notifications/resources/updated": null, "notifications/resources/list_changed": null, "notifications/tools/list_changed": null, "notifications/prompts/list_changed": null, "notifications/elicitation/complete": null }; var resultMethodKeys = { ping: null, initialize: null, "completion/complete": null, "logging/setLevel": null, "prompts/get": null, "prompts/list": null, "resources/list": null, "resources/templates/list": null, "resources/read": null, "resources/subscribe": null, "resources/unsubscribe": null, "tools/call": null, "tools/list": null, "sampling/createMessage": null, "elicitation/create": null, "roots/list": null }; var maps$1; function registryMaps() { if (maps$1) return maps$1; const s = buildSchemas2025(); maps$1 = { requestSchemas: { ping: s.PingRequestSchema, initialize: s.InitializeRequestSchema, "completion/complete": s.CompleteRequestSchema, "logging/setLevel": s.SetLevelRequestSchema, "prompts/get": s.GetPromptRequestSchema, "prompts/list": s.ListPromptsRequestSchema, "resources/list": s.ListResourcesRequestSchema, "resources/templates/list": s.ListResourceTemplatesRequestSchema, "resources/read": s.ReadResourceRequestSchema, "resources/subscribe": s.SubscribeRequestSchema, "resources/unsubscribe": s.UnsubscribeRequestSchema, "tools/call": s.CallToolRequestSchema, "tools/list": s.ListToolsRequestSchema, "tasks/get": s.GetTaskRequestSchema, "tasks/result": s.GetTaskPayloadRequestSchema, "tasks/list": s.ListTasksRequestSchema, "tasks/cancel": s.CancelTaskRequestSchema, "sampling/createMessage": s.CreateMessageRequestSchema, "elicitation/create": s.ElicitRequestSchema, "roots/list": s.ListRootsRequestSchema }, notificationSchemas: { "notifications/cancelled": s.CancelledNotificationSchema, "notifications/progress": s.ProgressNotificationSchema, "notifications/initialized": s.InitializedNotificationSchema, "notifications/roots/list_changed": s.RootsListChangedNotificationSchema, "notifications/tasks/status": s.TaskStatusNotificationSchema, "notifications/message": s.LoggingMessageNotificationSchema, "notifications/resources/updated": s.ResourceUpdatedNotificationSchema, "notifications/resources/list_changed": s.ResourceListChangedNotificationSchema, "notifications/tools/list_changed": s.ToolListChangedNotificationSchema, "notifications/prompts/list_changed": s.PromptListChangedNotificationSchema, "notifications/elicitation/complete": s.ElicitationCompleteNotificationSchema }, resultSchemas: { ping: s.EmptyResultSchema, initialize: s.InitializeResultSchema, "completion/complete": s.CompleteResultSchema, "logging/setLevel": s.EmptyResultSchema, "prompts/get": s.GetPromptResultSchema, "prompts/list": s.ListPromptsResultSchema, "resources/list": s.ListResourcesResultSchema, "resources/templates/list": s.ListResourceTemplatesResultSchema, "resources/read": s.ReadResourceResultSchema, "resources/subscribe": s.EmptyResultSchema, "resources/unsubscribe": s.EmptyResultSchema, "tools/call": s.CallToolResultWireSchema, "tools/list": s.ListToolsResultSchema, "sampling/createMessage": s.CreateMessageResultWithToolsSchema, "elicitation/create": s.ElicitResultSchema, "roots/list": s.ListRootsResultSchema } }; return maps$1; } function hasRequestMethod2025(method) { return Object.prototype.hasOwnProperty.call(requestMethodKeys$1, method); } function hasNotificationMethod2025(method) { return Object.prototype.hasOwnProperty.call(notificationMethodKeys$1, method); } function hasResultMethod(method) { return Object.prototype.hasOwnProperty.call(resultMethodKeys, method); } function getResultSchema(method) { return hasResultMethod(method) ? registryMaps().resultSchemas[method] : void 0; } function getRequestSchema(method) { return hasRequestMethod2025(method) ? registryMaps().requestSchemas[method] : void 0; } function getNotificationSchema(method) { return hasNotificationMethod2025(method) ? registryMaps().notificationSchemas[method] : void 0; } var rev2025RequestMethods = Object.keys(requestMethodKeys$1); var rev2025NotificationMethods = Object.keys(notificationMethodKeys$1); function isPlainObject$6(value) { return value !== null && typeof value === "object" && !Array.isArray(value); } function triState$1(schema, raw) { if (schema === void 0) return { ok: false, reason: "not-in-era" }; const parsed = schema.safeParse(raw); return parsed.success ? { ok: true, value: parsed.data } : { ok: false, reason: "invalid", message: String(parsed.error) }; } var NOT_IN_ERA$1 = { ok: false, reason: "not-in-era" }; function toolNeedsLegacyWrap(t) { return isPlainObject$6(t) && isPlainObject$6(t["outputSchema"]) && isNonObjectJsonSchemaRoot(t["outputSchema"]); } function toNeutralResult(value) { return value; } var rev2025Codec = { era: "2025-11-25", hasRequestMethod: hasRequestMethod2025, hasNotificationMethod: hasNotificationMethod2025, validateRequest: (method, raw) => triState$1(getRequestSchema(method), raw), validateResult: (method, raw) => triState$1(getResultSchema(method), raw), validateNotification: (method, raw) => triState$1(getNotificationSchema(method), raw), hasInputRequestMethod: () => false, validateInputRequest: () => NOT_IN_ERA$1, validateInputResponse: () => NOT_IN_ERA$1, samplingResultVariant: ((hasTools, raw) => { const s = buildSchemas2025(); return triState$1(hasTools ? s.CreateMessageResultWithToolsSchema : s.CreateMessageResultSchema, raw); }), outboundEnvelope: (_material) => void 0, validateEnvelopeMeta: (_meta) => [], projectCallToolResult(result, advertisedOutputSchema) { const withText = appendTextFallbackForNonObject(result); const sc = withText.structuredContent; if (sc === void 0) return withText; const valueIsNonObject = typeof sc !== "object" || sc === null || Array.isArray(sc); const schemaWrapped = advertisedOutputSchema !== void 0 && isNonObjectJsonSchemaRoot(advertisedOutputSchema); if (!valueIsNonObject && !schemaWrapped) return withText; return { ...withText, structuredContent: { result: sc } }; }, decodeResult(_method, raw) { if (isPlainObject$6(raw) && "resultType" in raw) { const stripped = { ...raw }; delete stripped["resultType"]; return { kind: "complete", result: toNeutralResult(stripped) }; } return { kind: "complete", result: toNeutralResult(raw) }; }, encodeResult(method, result) { if (method !== "tools/list") return result; const tools2 = result.tools; if (!Array.isArray(tools2) || !tools2.some((t) => toolNeedsLegacyWrap(t))) return result; return { ...result, tools: tools2.map((t) => toolNeedsLegacyWrap(t) ? { ...t, outputSchema: wrapOutputSchemaForLegacy(t.outputSchema) } : t) }; }, encodeErrorCode: (code) => code === -32002 ? -32602 : code, checkInboundEnvelope: (_material) => void 0 }; function build() { const JSONValueSchema$1 = lazy(() => union([ string2(), number2(), boolean2(), _null3(), record(string2(), JSONValueSchema$1), array(JSONValueSchema$1) ])); const JSONObjectSchema$1 = record(string2(), JSONValueSchema$1); const ProgressTokenSchema$1 = union([string2(), number2().int()]); const CursorSchema$1 = string2(); const RequestIdSchema$1 = union([string2(), number2().int()]); const RoleSchema$1 = _enum2(["user", "assistant"]); const LoggingLevelSchema$1 = _enum2([ "debug", "info", "notice", "warning", "error", "critical", "alert", "emergency" ]); const Base64Schema2 = string2().refine((val) => { try { atob(val); return true; } catch { return false; } }, { message: "Invalid Base64 string" }); const TaskMetadataSchema$1 = object({ ttl: number2().optional() }); const RelatedTaskMetadataSchema$1 = object({ taskId: string2() }); const RequestMetaSchema$1 = looseObject({ progressToken: ProgressTokenSchema$1.optional(), "io.modelcontextprotocol/related-task": RelatedTaskMetadataSchema$1.optional() }); const BaseRequestParamsSchema$1 = object({ _meta: RequestMetaSchema$1.optional() }); const TaskAugmentedRequestParamsSchema$1 = BaseRequestParamsSchema$1.extend({ task: TaskMetadataSchema$1.optional() }); const NotificationsParamsSchema$1 = object({ _meta: RequestMetaSchema$1.optional() }); const NotificationSchema$1 = object({ method: string2(), params: NotificationsParamsSchema$1.loose().optional() }); const IconSchema$1 = object({ src: string2(), mimeType: string2().optional(), sizes: array(string2()).optional(), theme: _enum2(["light", "dark"]).optional() }); const IconsSchema$1 = object({ icons: array(IconSchema$1).optional() }); const BaseMetadataSchema$1 = object({ name: string2(), title: string2().optional() }); const ImplementationSchema$1 = BaseMetadataSchema$1.extend({ ...BaseMetadataSchema$1.shape, ...IconsSchema$1.shape, version: string2(), websiteUrl: string2().optional(), description: string2().optional() }); const FormElicitationCapabilitySchema2 = intersection(object({ applyDefaults: boolean2().optional() }), JSONObjectSchema$1); const ElicitationCapabilitySchema2 = preprocess((value) => { if (value && typeof value === "object" && !Array.isArray(value) && Object.keys(value).length === 0) return { form: {} }; return value; }, intersection(object({ form: FormElicitationCapabilitySchema2.optional(), url: JSONObjectSchema$1.optional() }), JSONObjectSchema$1.optional())); const ClientTasksCapabilitySchema$1 = looseObject({ list: JSONObjectSchema$1.optional(), cancel: JSONObjectSchema$1.optional(), requests: looseObject({ sampling: looseObject({ createMessage: JSONObjectSchema$1.optional() }).optional(), elicitation: looseObject({ create: JSONObjectSchema$1.optional() }).optional() }).optional() }); const ServerTasksCapabilitySchema$1 = looseObject({ list: JSONObjectSchema$1.optional(), cancel: JSONObjectSchema$1.optional(), requests: looseObject({ tools: looseObject({ call: JSONObjectSchema$1.optional() }).optional() }).optional() }); const ClientCapabilitiesSchema$1 = object({ experimental: record(string2(), JSONObjectSchema$1).optional(), sampling: object({ context: JSONObjectSchema$1.optional(), tools: JSONObjectSchema$1.optional() }).optional(), elicitation: ElicitationCapabilitySchema2.optional(), roots: object({ listChanged: boolean2().optional() }).optional(), tasks: ClientTasksCapabilitySchema$1.optional(), extensions: record(string2(), JSONObjectSchema$1).optional() }); const ServerCapabilitiesSchema$1 = object({ experimental: record(string2(), JSONObjectSchema$1).optional(), logging: JSONObjectSchema$1.optional(), completions: JSONObjectSchema$1.optional(), prompts: object({ listChanged: boolean2().optional() }).optional(), resources: object({ subscribe: boolean2().optional(), listChanged: boolean2().optional() }).optional(), tools: object({ listChanged: boolean2().optional() }).optional(), tasks: ServerTasksCapabilitySchema$1.optional(), extensions: record(string2(), JSONObjectSchema$1).optional() }); const ProgressSchema$1 = object({ progress: number2(), total: optional(number2()), message: optional(string2()) }); const ProgressNotificationParamsSchema$1 = object({ ...NotificationsParamsSchema$1.shape, ...ProgressSchema$1.shape, progressToken: ProgressTokenSchema$1 }); const ProgressNotificationSchema$1 = NotificationSchema$1.extend({ method: literal("notifications/progress"), params: ProgressNotificationParamsSchema$1 }); const LoggingMessageNotificationParamsSchema$1 = NotificationsParamsSchema$1.extend({ level: LoggingLevelSchema$1, logger: string2().optional(), data: unknown() }); const LoggingMessageNotificationSchema$1 = NotificationSchema$1.extend({ method: literal("notifications/message"), params: LoggingMessageNotificationParamsSchema$1 }); const ResourceContentsSchema$1 = object({ uri: string2(), mimeType: optional(string2()), _meta: record(string2(), unknown()).optional() }); const TextResourceContentsSchema$1 = ResourceContentsSchema$1.extend({ text: string2() }); const BlobResourceContentsSchema$1 = ResourceContentsSchema$1.extend({ blob: Base64Schema2 }); const AnnotationsSchema$1 = object({ audience: array(RoleSchema$1).optional(), priority: number2().min(0).max(1).optional(), lastModified: iso_exports.datetime({ offset: true }).optional() }); const ResourceSchema$1 = object({ ...BaseMetadataSchema$1.shape, ...IconsSchema$1.shape, uri: string2(), description: optional(string2()), mimeType: optional(string2()), size: optional(number2()), annotations: AnnotationsSchema$1.optional(), _meta: optional(looseObject({})) }); const ResourceTemplateSchema$1 = object({ ...BaseMetadataSchema$1.shape, ...IconsSchema$1.shape, uriTemplate: string2(), description: optional(string2()), mimeType: optional(string2()), annotations: AnnotationsSchema$1.optional(), _meta: optional(looseObject({})) }); const ResourceListChangedNotificationSchema$1 = NotificationSchema$1.extend({ method: literal("notifications/resources/list_changed"), params: NotificationsParamsSchema$1.optional() }); const ResourceUpdatedNotificationParamsSchema$1 = NotificationsParamsSchema$1.extend({ uri: string2() }); const ResourceUpdatedNotificationSchema$1 = NotificationSchema$1.extend({ method: literal("notifications/resources/updated"), params: ResourceUpdatedNotificationParamsSchema$1 }); const PromptArgumentSchema$1 = object({ name: string2(), description: optional(string2()), required: optional(boolean2()) }); const PromptSchema$1 = object({ ...BaseMetadataSchema$1.shape, ...IconsSchema$1.shape, description: optional(string2()), arguments: optional(array(PromptArgumentSchema$1)), _meta: optional(looseObject({})) }); const PromptListChangedNotificationSchema$1 = NotificationSchema$1.extend({ method: literal("notifications/prompts/list_changed"), params: NotificationsParamsSchema$1.optional() }); const TextContentSchema$1 = object({ type: literal("text"), text: string2(), annotations: AnnotationsSchema$1.optional(), _meta: record(string2(), unknown()).optional() }); const ImageContentSchema$1 = object({ type: literal("image"), data: Base64Schema2, mimeType: string2(), annotations: AnnotationsSchema$1.optional(), _meta: record(string2(), unknown()).optional() }); const AudioContentSchema$1 = object({ type: literal("audio"), data: Base64Schema2, mimeType: string2(), annotations: AnnotationsSchema$1.optional(), _meta: record(string2(), unknown()).optional() }); const ToolUseContentSchema$1 = object({ type: literal("tool_use"), name: string2(), id: string2(), input: record(string2(), unknown()), _meta: record(string2(), unknown()).optional() }); const EmbeddedResourceSchema$1 = object({ type: literal("resource"), resource: union([TextResourceContentsSchema$1, BlobResourceContentsSchema$1]), annotations: AnnotationsSchema$1.optional(), _meta: record(string2(), unknown()).optional() }); const ResourceLinkSchema$1 = ResourceSchema$1.extend({ type: literal("resource_link") }); const ContentBlockSchema$1 = union([ TextContentSchema$1, ImageContentSchema$1, AudioContentSchema$1, ResourceLinkSchema$1, EmbeddedResourceSchema$1 ]); const PromptMessageSchema$1 = object({ role: RoleSchema$1, content: ContentBlockSchema$1 }); const ToolAnnotationsSchema$1 = object({ title: string2().optional(), readOnlyHint: boolean2().optional(), destructiveHint: boolean2().optional(), idempotentHint: boolean2().optional(), openWorldHint: boolean2().optional() }); const ToolListChangedNotificationSchema$1 = NotificationSchema$1.extend({ method: literal("notifications/tools/list_changed"), params: NotificationsParamsSchema$1.optional() }); const ModelHintSchema$1 = object({ name: string2().optional() }); const ModelPreferencesSchema$1 = object({ hints: array(ModelHintSchema$1).optional(), costPriority: number2().min(0).max(1).optional(), speedPriority: number2().min(0).max(1).optional(), intelligencePriority: number2().min(0).max(1).optional() }); const ToolChoiceSchema$1 = object({ mode: _enum2([ "auto", "required", "none" ]).optional() }); const BooleanSchemaSchema$1 = object({ type: literal("boolean"), title: string2().optional(), description: string2().optional(), default: boolean2().optional() }); const StringSchemaSchema$1 = object({ type: literal("string"), title: string2().optional(), description: string2().optional(), minLength: number2().optional(), maxLength: number2().optional(), format: _enum2([ "email", "uri", "date", "date-time" ]).optional(), default: string2().optional() }); const NumberSchemaSchema$1 = object({ type: _enum2(["number", "integer"]), title: string2().optional(), description: string2().optional(), minimum: number2().optional(), maximum: number2().optional(), default: number2().optional() }); const UntitledSingleSelectEnumSchemaSchema$1 = object({ type: literal("string"), title: string2().optional(), description: string2().optional(), enum: array(string2()), default: string2().optional() }); const TitledSingleSelectEnumSchemaSchema$1 = object({ type: literal("string"), title: string2().optional(), description: string2().optional(), oneOf: array(object({ const: string2(), title: string2() })), default: string2().optional() }); const LegacyTitledEnumSchemaSchema$1 = object({ type: literal("string"), title: string2().optional(), description: string2().optional(), enum: array(string2()), enumNames: array(string2()).optional(), default: string2().optional() }); const SingleSelectEnumSchemaSchema$1 = union([UntitledSingleSelectEnumSchemaSchema$1, TitledSingleSelectEnumSchemaSchema$1]); const UntitledMultiSelectEnumSchemaSchema$1 = object({ type: literal("array"), title: string2().optional(), description: string2().optional(), minItems: number2().optional(), maxItems: number2().optional(), items: object({ type: literal("string"), enum: array(string2()) }), default: array(string2()).optional() }); const TitledMultiSelectEnumSchemaSchema$1 = object({ type: literal("array"), title: string2().optional(), description: string2().optional(), minItems: number2().optional(), maxItems: number2().optional(), items: object({ anyOf: array(object({ const: string2(), title: string2() })) }), default: array(string2()).optional() }); const MultiSelectEnumSchemaSchema$1 = union([UntitledMultiSelectEnumSchemaSchema$1, TitledMultiSelectEnumSchemaSchema$1]); const EnumSchemaSchema$1 = union([ LegacyTitledEnumSchemaSchema$1, SingleSelectEnumSchemaSchema$1, MultiSelectEnumSchemaSchema$1 ]); const PrimitiveSchemaDefinitionSchema$1 = union([ EnumSchemaSchema$1, BooleanSchemaSchema$1, StringSchemaSchema$1, NumberSchemaSchema$1 ]); const ElicitRequestFormParamsSchema$1 = TaskAugmentedRequestParamsSchema$1.extend({ mode: literal("form").optional(), message: string2(), requestedSchema: object({ type: literal("object"), properties: record(string2(), PrimitiveSchemaDefinitionSchema$1), required: array(string2()).optional() }).catchall(unknown()) }); const ResourceTemplateReferenceSchema$1 = object({ type: literal("ref/resource"), uri: string2() }); const PromptReferenceSchema$1 = object({ type: literal("ref/prompt"), name: string2() }); const RootSchema$1 = object({ uri: string2().startsWith("file://"), name: string2().optional(), _meta: record(string2(), unknown()).optional() }); const sharedClientCapabilityShape = ClientCapabilitiesSchema$1.shape; const ClientCapabilities2026Schema = object({ experimental: sharedClientCapabilityShape.experimental, sampling: sharedClientCapabilityShape.sampling, elicitation: sharedClientCapabilityShape.elicitation, roots: sharedClientCapabilityShape.roots, extensions: sharedClientCapabilityShape.extensions }); const sharedServerCapabilityShape = ServerCapabilitiesSchema$1.shape; const ServerCapabilities2026Schema = object({ experimental: sharedServerCapabilityShape.experimental, logging: sharedServerCapabilityShape.logging, completions: sharedServerCapabilityShape.completions, prompts: sharedServerCapabilityShape.prompts, resources: sharedServerCapabilityShape.resources, tools: sharedServerCapabilityShape.tools, extensions: sharedServerCapabilityShape.extensions }); const RequestMetaEnvelopeSchema = looseObject({ progressToken: ProgressTokenSchema$1.optional(), [PROTOCOL_VERSION_META_KEY]: string2(), [CLIENT_INFO_META_KEY]: ImplementationSchema$1.optional(), [CLIENT_CAPABILITIES_META_KEY]: ClientCapabilities2026Schema, [LOG_LEVEL_META_KEY]: LoggingLevelSchema$1.optional() }); const ToolSchema$1 = object({ ...BaseMetadataSchema$1.shape, ...IconsSchema$1.shape, description: string2().optional(), inputSchema: looseObject({ $schema: string2().optional(), type: literal("object") }), outputSchema: looseObject({ $schema: string2().optional() }).optional(), annotations: ToolAnnotationsSchema$1.optional(), _meta: record(string2(), unknown()).optional() }); const ToolResultContentSchema$1 = object({ type: literal("tool_result"), toolUseId: string2(), content: array(ContentBlockSchema$1), structuredContent: unknown().optional(), isError: boolean2().optional(), _meta: record(string2(), unknown()).optional() }); const SamplingMessageContentBlockSchema$1 = union([ TextContentSchema$1, ImageContentSchema$1, AudioContentSchema$1, ToolUseContentSchema$1, ToolResultContentSchema$1 ]); const SamplingMessageSchema$1 = object({ role: RoleSchema$1, content: union([SamplingMessageContentBlockSchema$1, array(SamplingMessageContentBlockSchema$1)]), _meta: record(string2(), unknown()).optional() }); const ResultTypeSchema = string2(); const ResultMetaSchema = looseObject({ [SERVER_INFO_META_KEY]: ImplementationSchema$1.optional().catch(void 0) }); const wireMeta = ResultMetaSchema.optional(); function wireResult(shape) { return looseObject({ _meta: wireMeta, resultType: ResultTypeSchema.default("complete"), ...shape }); } const ResultSchema$1 = wireResult({}); const PaginatedResultSchema$1 = wireResult({ nextCursor: CursorSchema$1.optional() }); const CallToolResultSchema$1 = wireResult({ content: array(ContentBlockSchema$1), structuredContent: unknown().optional(), isError: boolean2().optional() }); const ListToolsResultSchema$1 = wireResult({ ttlMs: number2().int().min(0), cacheScope: _enum2(["public", "private"]), tools: array(ToolSchema$1), nextCursor: CursorSchema$1.optional() }); const ListPromptsResultSchema$1 = wireResult({ ttlMs: number2().int().min(0), cacheScope: _enum2(["public", "private"]), prompts: array(PromptSchema$1), nextCursor: CursorSchema$1.optional() }); const GetPromptResultSchema$1 = wireResult({ description: string2().optional(), messages: array(PromptMessageSchema$1) }); const ListResourcesResultSchema$1 = wireResult({ ttlMs: number2().int().min(0), cacheScope: _enum2(["public", "private"]), resources: array(ResourceSchema$1), nextCursor: CursorSchema$1.optional() }); const ListResourceTemplatesResultSchema$1 = wireResult({ ttlMs: number2().int().min(0), cacheScope: _enum2(["public", "private"]), resourceTemplates: array(ResourceTemplateSchema$1), nextCursor: CursorSchema$1.optional() }); const ReadResourceResultSchema$1 = wireResult({ ttlMs: number2().int().min(0), cacheScope: _enum2(["public", "private"]), contents: array(union([TextResourceContentsSchema$1, BlobResourceContentsSchema$1])) }); const CompleteResultSchema$1 = wireResult({ completion: object({ values: array(string2()).max(100), total: number2().int().optional(), hasMore: boolean2().optional() }).loose() }); const CacheableResultSchema = wireResult({ ttlMs: number2().int().min(0), cacheScope: _enum2(["public", "private"]) }); const DiscoverResultSchema$1 = wireResult({ ttlMs: number2().int().min(0).catch(0), cacheScope: _enum2(["public", "private"]).catch("private"), supportedVersions: array(string2()), capabilities: ServerCapabilities2026Schema, instructions: string2().optional() }); const CreateMessageRequestParamsSchema$1 = object({ messages: array(SamplingMessageSchema$1), modelPreferences: ModelPreferencesSchema$1.optional(), systemPrompt: string2().optional(), includeContext: _enum2([ "none", "thisServer", "allServers" ]).optional(), temperature: number2().optional(), maxTokens: number2().int(), stopSequences: array(string2()).optional(), metadata: JSONObjectSchema$1.optional(), tools: array(ToolSchema$1).optional(), toolChoice: ToolChoiceSchema$1.optional() }); const CreateMessageRequestSchema$1 = object({ method: literal("sampling/createMessage"), params: CreateMessageRequestParamsSchema$1 }); const ListRootsRequestSchema$1 = object({ method: literal("roots/list"), params: object({ _meta: record(string2(), unknown()).optional() }).optional() }); const CreateMessageResultSchema$1 = object({ ...SamplingMessageSchema$1.shape, model: string2(), stopReason: string2().optional() }); const ListRootsResultSchema$1 = object({ roots: array(RootSchema$1) }); const ElicitResultSchema$1 = object({ action: _enum2([ "accept", "decline", "cancel" ]), content: record(string2(), union([ string2(), number2(), boolean2(), array(string2()) ])).optional() }); const ElicitRequestURLParamsSchema$1 = object({ mode: literal("url"), message: string2(), url: string2().url() }); const ElicitRequestParamsSchema$1 = union([ElicitRequestFormParamsSchema$1, ElicitRequestURLParamsSchema$1]); const ElicitRequestSchema$1 = object({ method: literal("elicitation/create"), params: ElicitRequestParamsSchema$1 }); const InputRequestSchema = union([ CreateMessageRequestSchema$1, ListRootsRequestSchema$1, ElicitRequestSchema$1 ]); const InputResponseSchema = union([ CreateMessageResultSchema$1, ListRootsResultSchema$1, ElicitResultSchema$1 ]); const InputRequestsSchema = record(string2(), InputRequestSchema); const InputResponsesSchema = record(string2(), InputResponseSchema); const InputRequiredResultSchema = wireResult({ inputRequests: InputRequestsSchema.optional(), requestState: string2().optional() }); const retryParamsShape = { inputResponses: InputResponsesSchema.optional(), requestState: string2().optional() }; const InputResponseRequestParamsSchema = object({ _meta: RequestMetaEnvelopeSchema, ...retryParamsShape }); const DispatchRequestMetaSchema = looseObject({ progressToken: ProgressTokenSchema$1.optional() }); function wireRequest(method, paramsShape) { return object({ method: literal(method), params: object({ _meta: RequestMetaEnvelopeSchema, ...paramsShape }) }); } function dispatchRequest(method, paramsShape) { return object({ method: literal(method), params: object({ _meta: DispatchRequestMetaSchema.optional(), ...paramsShape }).optional() }); } const callToolParamsShape = { name: string2(), arguments: record(string2(), unknown()).optional(), ...retryParamsShape }; const paginatedParamsShape = { cursor: CursorSchema$1.optional() }; const CallToolRequestSchema$1 = wireRequest("tools/call", callToolParamsShape); const ListToolsRequestSchema$1 = wireRequest("tools/list", paginatedParamsShape); const ListPromptsRequestSchema$1 = wireRequest("prompts/list", paginatedParamsShape); const GetPromptRequestSchema$1 = wireRequest("prompts/get", { name: string2(), arguments: record(string2(), string2()).optional(), ...retryParamsShape }); const ListResourcesRequestSchema$1 = wireRequest("resources/list", paginatedParamsShape); const ListResourceTemplatesRequestSchema$1 = wireRequest("resources/templates/list", paginatedParamsShape); const ReadResourceRequestSchema$1 = wireRequest("resources/read", { uri: string2(), ...retryParamsShape }); const completeParamsShape = { ref: union([PromptReferenceSchema$1, ResourceTemplateReferenceSchema$1]), argument: object({ name: string2(), value: string2() }), context: object({ arguments: record(string2(), string2()).optional() }).optional() }; const CompleteRequestSchema$1 = wireRequest("completion/complete", completeParamsShape); const DiscoverRequestSchema$1 = wireRequest("server/discover", {}); const SubscriptionFilterSchema$1 = object({ toolsListChanged: boolean2().optional(), promptsListChanged: boolean2().optional(), resourcesListChanged: boolean2().optional(), resourceSubscriptions: array(string2()).optional() }); const subscriptionsListenParamsShape = { notifications: SubscriptionFilterSchema$1 }; const SubscriptionsListenRequestSchema$1 = wireRequest("subscriptions/listen", subscriptionsListenParamsShape); const SubscriptionsListenResultMetaSchema$1 = ResultMetaSchema.extend({ "io.modelcontextprotocol/subscriptionId": RequestIdSchema$1 }); const SubscriptionsListenResultSchema$1 = looseObject({ _meta: SubscriptionsListenResultMetaSchema$1, resultType: ResultTypeSchema.default("complete") }); const dispatchRequestSchemas = { "tools/call": dispatchRequest("tools/call", callToolParamsShape), "tools/list": dispatchRequest("tools/list", paginatedParamsShape), "prompts/get": dispatchRequest("prompts/get", { name: string2(), arguments: record(string2(), string2()).optional() }), "prompts/list": dispatchRequest("prompts/list", paginatedParamsShape), "resources/list": dispatchRequest("resources/list", paginatedParamsShape), "resources/templates/list": dispatchRequest("resources/templates/list", paginatedParamsShape), "resources/read": dispatchRequest("resources/read", { uri: string2() }), "completion/complete": dispatchRequest("completion/complete", completeParamsShape), "server/discover": dispatchRequest("server/discover", {}), "subscriptions/listen": dispatchRequest("subscriptions/listen", subscriptionsListenParamsShape) }; function liftedResult(shape) { return looseObject({ _meta: wireMeta, ...shape }); } const dispatchResultSchemas = { "tools/call": liftedResult({ content: array(ContentBlockSchema$1), structuredContent: unknown().optional(), isError: boolean2().optional() }), "tools/list": liftedResult({ ttlMs: number2().int().min(0), cacheScope: _enum2(["public", "private"]), tools: array(ToolSchema$1), nextCursor: CursorSchema$1.optional() }), "prompts/get": liftedResult({ description: string2().optional(), messages: array(PromptMessageSchema$1) }), "prompts/list": liftedResult({ ttlMs: number2().int().min(0), cacheScope: _enum2(["public", "private"]), prompts: array(PromptSchema$1), nextCursor: CursorSchema$1.optional() }), "resources/list": liftedResult({ ttlMs: number2().int().min(0), cacheScope: _enum2(["public", "private"]), resources: array(ResourceSchema$1), nextCursor: CursorSchema$1.optional() }), "resources/templates/list": liftedResult({ ttlMs: number2().int().min(0), cacheScope: _enum2(["public", "private"]), resourceTemplates: array(ResourceTemplateSchema$1), nextCursor: CursorSchema$1.optional() }), "resources/read": liftedResult({ ttlMs: number2().int().min(0), cacheScope: _enum2(["public", "private"]), contents: array(union([TextResourceContentsSchema$1, BlobResourceContentsSchema$1])) }), "completion/complete": liftedResult({ completion: object({ values: array(string2()).max(100), total: number2().int().optional(), hasMore: boolean2().optional() }).loose() }), "server/discover": liftedResult({ ttlMs: number2().int().min(0).catch(0), cacheScope: _enum2(["public", "private"]).catch("private"), supportedVersions: array(string2()), capabilities: ServerCapabilities2026Schema, instructions: string2().optional() }), "subscriptions/listen": liftedResult({}) }; const NotificationMetaSchema = looseObject({ "io.modelcontextprotocol/subscriptionId": RequestIdSchema$1.optional() }); const SubscriptionsAcknowledgedNotificationSchema$1 = object({ method: literal("notifications/subscriptions/acknowledged"), params: object({ _meta: NotificationMetaSchema.optional(), notifications: SubscriptionFilterSchema$1 }) }); const CancelledNotificationParamsSchema$1 = object({ _meta: NotificationMetaSchema.optional(), requestId: RequestIdSchema$1, reason: string2().optional() }); const CancelledNotificationSchema$1 = object({ method: literal("notifications/cancelled"), params: CancelledNotificationParamsSchema$1 }); const notificationSchemas2026 = { "notifications/cancelled": CancelledNotificationSchema$1, "notifications/progress": ProgressNotificationSchema$1, "notifications/message": LoggingMessageNotificationSchema$1, "notifications/resources/updated": ResourceUpdatedNotificationSchema$1, "notifications/resources/list_changed": ResourceListChangedNotificationSchema$1, "notifications/tools/list_changed": ToolListChangedNotificationSchema$1, "notifications/prompts/list_changed": PromptListChangedNotificationSchema$1, "notifications/subscriptions/acknowledged": SubscriptionsAcknowledgedNotificationSchema$1 }; const wireResultResponse = (result) => object({ jsonrpc: literal("2.0"), id: union([string2(), number2().int()]), result }).strict(); return { JSONValueSchema: JSONValueSchema$1, JSONObjectSchema: JSONObjectSchema$1, ProgressTokenSchema: ProgressTokenSchema$1, CursorSchema: CursorSchema$1, RequestIdSchema: RequestIdSchema$1, RoleSchema: RoleSchema$1, LoggingLevelSchema: LoggingLevelSchema$1, TaskMetadataSchema: TaskMetadataSchema$1, RelatedTaskMetadataSchema: RelatedTaskMetadataSchema$1, RequestMetaSchema: RequestMetaSchema$1, BaseRequestParamsSchema: BaseRequestParamsSchema$1, TaskAugmentedRequestParamsSchema: TaskAugmentedRequestParamsSchema$1, NotificationsParamsSchema: NotificationsParamsSchema$1, NotificationSchema: NotificationSchema$1, IconSchema: IconSchema$1, IconsSchema: IconsSchema$1, BaseMetadataSchema: BaseMetadataSchema$1, ImplementationSchema: ImplementationSchema$1, ClientTasksCapabilitySchema: ClientTasksCapabilitySchema$1, ServerTasksCapabilitySchema: ServerTasksCapabilitySchema$1, ClientCapabilitiesSchema: ClientCapabilitiesSchema$1, ServerCapabilitiesSchema: ServerCapabilitiesSchema$1, ProgressSchema: ProgressSchema$1, ProgressNotificationParamsSchema: ProgressNotificationParamsSchema$1, ProgressNotificationSchema: ProgressNotificationSchema$1, LoggingMessageNotificationParamsSchema: LoggingMessageNotificationParamsSchema$1, LoggingMessageNotificationSchema: LoggingMessageNotificationSchema$1, ResourceContentsSchema: ResourceContentsSchema$1, TextResourceContentsSchema: TextResourceContentsSchema$1, BlobResourceContentsSchema: BlobResourceContentsSchema$1, AnnotationsSchema: AnnotationsSchema$1, ResourceSchema: ResourceSchema$1, ResourceTemplateSchema: ResourceTemplateSchema$1, ResourceListChangedNotificationSchema: ResourceListChangedNotificationSchema$1, ResourceUpdatedNotificationParamsSchema: ResourceUpdatedNotificationParamsSchema$1, ResourceUpdatedNotificationSchema: ResourceUpdatedNotificationSchema$1, PromptArgumentSchema: PromptArgumentSchema$1, PromptSchema: PromptSchema$1, PromptListChangedNotificationSchema: PromptListChangedNotificationSchema$1, TextContentSchema: TextContentSchema$1, ImageContentSchema: ImageContentSchema$1, AudioContentSchema: AudioContentSchema$1, ToolUseContentSchema: ToolUseContentSchema$1, EmbeddedResourceSchema: EmbeddedResourceSchema$1, ResourceLinkSchema: ResourceLinkSchema$1, ContentBlockSchema: ContentBlockSchema$1, PromptMessageSchema: PromptMessageSchema$1, ToolAnnotationsSchema: ToolAnnotationsSchema$1, ToolListChangedNotificationSchema: ToolListChangedNotificationSchema$1, ModelHintSchema: ModelHintSchema$1, ModelPreferencesSchema: ModelPreferencesSchema$1, ToolChoiceSchema: ToolChoiceSchema$1, BooleanSchemaSchema: BooleanSchemaSchema$1, StringSchemaSchema: StringSchemaSchema$1, NumberSchemaSchema: NumberSchemaSchema$1, UntitledSingleSelectEnumSchemaSchema: UntitledSingleSelectEnumSchemaSchema$1, TitledSingleSelectEnumSchemaSchema: TitledSingleSelectEnumSchemaSchema$1, LegacyTitledEnumSchemaSchema: LegacyTitledEnumSchemaSchema$1, SingleSelectEnumSchemaSchema: SingleSelectEnumSchemaSchema$1, UntitledMultiSelectEnumSchemaSchema: UntitledMultiSelectEnumSchemaSchema$1, TitledMultiSelectEnumSchemaSchema: TitledMultiSelectEnumSchemaSchema$1, MultiSelectEnumSchemaSchema: MultiSelectEnumSchemaSchema$1, EnumSchemaSchema: EnumSchemaSchema$1, PrimitiveSchemaDefinitionSchema: PrimitiveSchemaDefinitionSchema$1, ElicitRequestFormParamsSchema: ElicitRequestFormParamsSchema$1, ResourceTemplateReferenceSchema: ResourceTemplateReferenceSchema$1, PromptReferenceSchema: PromptReferenceSchema$1, RootSchema: RootSchema$1, ClientCapabilities2026Schema, ServerCapabilities2026Schema, RequestMetaEnvelopeSchema, ToolSchema: ToolSchema$1, ToolResultContentSchema: ToolResultContentSchema$1, SamplingMessageContentBlockSchema: SamplingMessageContentBlockSchema$1, SamplingMessageSchema: SamplingMessageSchema$1, ResultTypeSchema, ResultMetaSchema, ResultSchema: ResultSchema$1, PaginatedResultSchema: PaginatedResultSchema$1, CallToolResultSchema: CallToolResultSchema$1, ListToolsResultSchema: ListToolsResultSchema$1, ListPromptsResultSchema: ListPromptsResultSchema$1, GetPromptResultSchema: GetPromptResultSchema$1, ListResourcesResultSchema: ListResourcesResultSchema$1, ListResourceTemplatesResultSchema: ListResourceTemplatesResultSchema$1, ReadResourceResultSchema: ReadResourceResultSchema$1, CompleteResultSchema: CompleteResultSchema$1, CacheableResultSchema, DiscoverResultSchema: DiscoverResultSchema$1, CreateMessageRequestParamsSchema: CreateMessageRequestParamsSchema$1, CreateMessageRequestSchema: CreateMessageRequestSchema$1, ListRootsRequestSchema: ListRootsRequestSchema$1, CreateMessageResultSchema: CreateMessageResultSchema$1, ListRootsResultSchema: ListRootsResultSchema$1, ElicitResultSchema: ElicitResultSchema$1, ElicitRequestURLParamsSchema: ElicitRequestURLParamsSchema$1, ElicitRequestParamsSchema: ElicitRequestParamsSchema$1, ElicitRequestSchema: ElicitRequestSchema$1, InputRequestSchema, InputResponseSchema, InputRequestsSchema, InputResponsesSchema, InputRequiredResultSchema, InputResponseRequestParamsSchema, CallToolRequestSchema: CallToolRequestSchema$1, ListToolsRequestSchema: ListToolsRequestSchema$1, ListPromptsRequestSchema: ListPromptsRequestSchema$1, GetPromptRequestSchema: GetPromptRequestSchema$1, ListResourcesRequestSchema: ListResourcesRequestSchema$1, ListResourceTemplatesRequestSchema: ListResourceTemplatesRequestSchema$1, ReadResourceRequestSchema: ReadResourceRequestSchema$1, CompleteRequestSchema: CompleteRequestSchema$1, DiscoverRequestSchema: DiscoverRequestSchema$1, SubscriptionFilterSchema: SubscriptionFilterSchema$1, SubscriptionsListenRequestSchema: SubscriptionsListenRequestSchema$1, SubscriptionsListenResultMetaSchema: SubscriptionsListenResultMetaSchema$1, SubscriptionsListenResultSchema: SubscriptionsListenResultSchema$1, dispatchRequestSchemas, dispatchResultSchemas, NotificationMetaSchema, SubscriptionsAcknowledgedNotificationSchema: SubscriptionsAcknowledgedNotificationSchema$1, CancelledNotificationParamsSchema: CancelledNotificationParamsSchema$1, CancelledNotificationSchema: CancelledNotificationSchema$1, notificationSchemas2026, JSONRPCResultResponseSchema: wireResultResponse(ResultSchema$1), CallToolResultResponseSchema: wireResultResponse(union([CallToolResultSchema$1, InputRequiredResultSchema])), ListToolsResultResponseSchema: wireResultResponse(ListToolsResultSchema$1), ListPromptsResultResponseSchema: wireResultResponse(ListPromptsResultSchema$1), GetPromptResultResponseSchema: wireResultResponse(union([GetPromptResultSchema$1, InputRequiredResultSchema])), ListResourcesResultResponseSchema: wireResultResponse(ListResourcesResultSchema$1), ListResourceTemplatesResultResponseSchema: wireResultResponse(ListResourceTemplatesResultSchema$1), ReadResourceResultResponseSchema: wireResultResponse(union([ReadResourceResultSchema$1, InputRequiredResultSchema])), CompleteResultResponseSchema: wireResultResponse(CompleteResultSchema$1), DiscoverResultResponseSchema: wireResultResponse(DiscoverResultSchema$1) }; } var memo2; function buildSchemas2026() { return memo2 ??= build(); } var CACHEABLE_RESULT_METHODS = [ "tools/list", "prompts/list", "resources/list", "resources/templates/list", "resources/read", "server/discover" ]; function isCacheableResultMethod(method) { return CACHEABLE_RESULT_METHODS.includes(method); } var RESULT_CACHE_HINT_FALLBACK = Symbol("modelcontextprotocol.resultCacheHintFallback"); function attachCacheHintFallback(result, hint) { if (hint === void 0) return result; const attached = result[RESULT_CACHE_HINT_FALLBACK]; if (attached === void 0) return { ...result, [RESULT_CACHE_HINT_FALLBACK]: hint }; const merged = {}; const ttlMs = attached.ttlMs ?? hint.ttlMs; if (ttlMs !== void 0) merged.ttlMs = ttlMs; const cacheScope = attached.cacheScope ?? hint.cacheScope; if (cacheScope !== void 0) merged.cacheScope = cacheScope; return { ...result, [RESULT_CACHE_HINT_FALLBACK]: merged }; } function cacheHintFallbackOf(result) { return result[RESULT_CACHE_HINT_FALLBACK]; } function isValidCacheTtlMs(value) { return typeof value === "number" && Number.isSafeInteger(value) && value >= 0; } function isValidCacheScope(value) { return value === "public" || value === "private"; } function assertValidCacheHint(hint, context) { if (hint.ttlMs !== void 0 && !isValidCacheTtlMs(hint.ttlMs)) throw new RangeError(`Invalid cache hint for ${context}: ttlMs must be a non-negative safe integer (got ${String(hint.ttlMs)})`); if (hint.cacheScope !== void 0 && !isValidCacheScope(hint.cacheScope)) throw new RangeError(`Invalid cache hint for ${context}: cacheScope must be 'public' or 'private' (got ${String(hint.cacheScope)})`); } var ProtocolErrorCode = /* @__PURE__ */ (function(ProtocolErrorCode$1) { ProtocolErrorCode$1[ProtocolErrorCode$1["ParseError"] = -32700] = "ParseError"; ProtocolErrorCode$1[ProtocolErrorCode$1["InvalidRequest"] = -32600] = "InvalidRequest"; ProtocolErrorCode$1[ProtocolErrorCode$1["MethodNotFound"] = -32601] = "MethodNotFound"; ProtocolErrorCode$1[ProtocolErrorCode$1["InvalidParams"] = -32602] = "InvalidParams"; ProtocolErrorCode$1[ProtocolErrorCode$1["InternalError"] = -32603] = "InternalError"; ProtocolErrorCode$1[ProtocolErrorCode$1["ResourceNotFound"] = -32002] = "ResourceNotFound"; ProtocolErrorCode$1[ProtocolErrorCode$1["MissingRequiredClientCapability"] = -32021] = "MissingRequiredClientCapability"; ProtocolErrorCode$1[ProtocolErrorCode$1["UnsupportedProtocolVersion"] = -32022] = "UnsupportedProtocolVersion"; ProtocolErrorCode$1[ProtocolErrorCode$1["UrlElicitationRequired"] = -32042] = "UrlElicitationRequired"; return ProtocolErrorCode$1; })({}); var ProtocolError = class ProtocolError2 extends Error { static { Object.defineProperty(this, "mcpBrand", { value: "mcp.ProtocolError" }); } static [Symbol.hasInstance](value) { return brandedHasInstance(this, value); } /** * Brand-based type guard: equivalent to `value instanceof this`, as an * explicit static predicate (the axios/AWS-SDK `isInstance` style). Reads * the caller's own brand via `this`, so every branded subclass gets a * correctly-scoped guard by inheritance. Must be invoked on the class — * in callback position write `v => SdkError.isInstance(v)`, not * `.filter(SdkError.isInstance)` (detached calls throw rather than * silently matching nothing). */ static isInstance(value) { if (typeof this !== "function") throw new TypeError("isInstance must be called on the class (e.g. `SdkError.isInstance(value)`); for callbacks use `v => SdkError.isInstance(v)`"); return brandedHasInstance(this, value); } constructor(code, message, data) { super(message); this.code = code; this.data = data; this.name = "ProtocolError"; stampErrorBrands(this, new.target); } /** * Factory method to create the appropriate error type based on the error code and data */ static fromError(code, message, data) { if (code === ProtocolErrorCode.UrlElicitationRequired && data) { const errorData = data; if (errorData.elicitations) return new UrlElicitationRequiredError(errorData.elicitations, message); } if (code === ProtocolErrorCode.UnsupportedProtocolVersion && data) { const errorData = data; if (Array.isArray(errorData.supported) && typeof errorData.requested === "string") return new UnsupportedProtocolVersionError({ supported: errorData.supported, requested: errorData.requested }, message); } if (code === ProtocolErrorCode.InvalidParams || code === ProtocolErrorCode.ResourceNotFound) { const errorData = data; if (typeof errorData?.uri === "string" && (code === ProtocolErrorCode.ResourceNotFound || Object.keys(errorData).length === 1)) return new ResourceNotFoundError(errorData.uri, message); } if (code === ProtocolErrorCode.MissingRequiredClientCapability && data) { const errorData = data; if (errorData.requiredCapabilities !== null && typeof errorData.requiredCapabilities === "object" && !Array.isArray(errorData.requiredCapabilities)) return new MissingRequiredClientCapabilityError({ requiredCapabilities: errorData.requiredCapabilities }, message); } return new ProtocolError2(code, message, data); } }; var ResourceNotFoundError = class extends ProtocolError { static { Object.defineProperty(this, "mcpBrand", { value: "mcp.ResourceNotFoundError" }); } constructor(uri, message = `Resource not found: ${uri}`) { super(ProtocolErrorCode.InvalidParams, message, { uri }); } /** The URI that was requested and not found. */ get uri() { return this.data.uri; } }; var UrlElicitationRequiredError = class extends ProtocolError { static { Object.defineProperty(this, "mcpBrand", { value: "mcp.UrlElicitationRequiredError" }); } constructor(elicitations, message = `URL elicitation${elicitations.length > 1 ? "s" : ""} required`) { super(ProtocolErrorCode.UrlElicitationRequired, message, { elicitations }); } get elicitations() { return this.data?.elicitations ?? []; } }; var UnsupportedProtocolVersionError = class extends ProtocolError { static { Object.defineProperty(this, "mcpBrand", { value: "mcp.UnsupportedProtocolVersionError" }); } constructor(data, message = `Unsupported protocol version: ${data.requested}`) { super(ProtocolErrorCode.UnsupportedProtocolVersion, message, data); } /** * Protocol versions the receiver supports. */ get supported() { return this.data.supported; } /** * The protocol version that was requested. */ get requested() { return this.data.requested; } }; var MissingRequiredClientCapabilityError = class extends ProtocolError { static { Object.defineProperty(this, "mcpBrand", { value: "mcp.MissingRequiredClientCapabilityError" }); } constructor(data, message = `Missing required client capabilities: ${Object.keys(data.requiredCapabilities).join(", ")}`) { super(ProtocolErrorCode.MissingRequiredClientCapability, message, data); } /** * The capabilities the server requires from the client to process the * request (only the missing capabilities are listed). */ get requiredCapabilities() { return this.data.requiredCapabilities; } }; var DEFAULT_CACHE_TTL_MS = 0; var DEFAULT_CACHE_SCOPE = "private"; var EXTENDED_RESULT_TYPE_METHODS = [ "tools/call", "prompts/get", "resources/read" ]; function stampResultType(method, result) { const provided = result["resultType"]; if (provided === void 0) return { ...result, resultType: "complete" }; if (provided === "complete") return result; if (EXTENDED_RESULT_TYPE_METHODS.includes(method)) return result; throw new ProtocolError(ProtocolErrorCode.InternalError, `Handler for ${method} returned resultType '${String(provided)}', but results of ${method} only support 'complete' on protocol revision 2026-07-28`); } function fillCacheFields(method, result) { const fallback = cacheHintFallbackOf(result); if (result["resultType"] !== "complete" || !isCacheableResultMethod(method)) return fallback === void 0 ? result : stripCacheHintFallback(result); const provided = result; const ttlMs = isValidCacheTtlMs(provided["ttlMs"]) ? provided["ttlMs"] : resolveTtlMs(fallback); const cacheScope = isValidCacheScope(provided["cacheScope"]) ? provided["cacheScope"] : resolveCacheScope(fallback); const filled = { ...provided, ttlMs, cacheScope }; delete filled[RESULT_CACHE_HINT_FALLBACK]; return filled; } function isPlainObject$5(value) { return value !== null && typeof value === "object" && !Array.isArray(value); } function stampServerInfoMeta(result, serverInfo) { if (serverInfo === void 0) return result; const meta3 = result["_meta"]; if (meta3 === void 0) return { ...result, _meta: { [SERVER_INFO_META_KEY]: serverInfo } }; if (!isPlainObject$5(meta3)) return result; if (meta3[SERVER_INFO_META_KEY] !== void 0) return result; return { ...result, _meta: { ...meta3, [SERVER_INFO_META_KEY]: serverInfo } }; } function resolveTtlMs(fallback) { return fallback !== void 0 && isValidCacheTtlMs(fallback.ttlMs) ? fallback.ttlMs : DEFAULT_CACHE_TTL_MS; } function resolveCacheScope(fallback) { return fallback !== void 0 && isValidCacheScope(fallback.cacheScope) ? fallback.cacheScope : DEFAULT_CACHE_SCOPE; } function stripCacheHintFallback(result) { const copy = { ...result }; delete copy[RESULT_CACHE_HINT_FALLBACK]; return copy; } var INPUT_REQUEST_METHODS_2026 = [ "elicitation/create", "sampling/createMessage", "roots/list" ]; var maps; function inputSchemaMaps() { if (maps) return maps; const s = buildSchemas2026(); maps = { request: { "elicitation/create": object({ method: literal("elicitation/create"), params: s.ElicitRequestParamsSchema }), "sampling/createMessage": object({ method: literal("sampling/createMessage"), params: s.CreateMessageRequestParamsSchema }), "roots/list": object({ method: literal("roots/list"), params: looseObject({}).optional() }) }, response: { "elicitation/create": s.ElicitResultSchema, "sampling/createMessage": s.CreateMessageResultSchema, "roots/list": s.ListRootsResultSchema } }; return maps; } function isInputRequestMethod2026(method) { return INPUT_REQUEST_METHODS_2026.includes(method); } function getInputRequestSchema2026(method) { return isInputRequestMethod2026(method) ? inputSchemaMaps().request[method] : void 0; } function getInputResponseSchema2026(method) { return isInputRequestMethod2026(method) ? inputSchemaMaps().response[method] : void 0; } var requestMethodKeys = { "tools/call": null, "tools/list": null, "prompts/get": null, "prompts/list": null, "resources/list": null, "resources/templates/list": null, "resources/read": null, "completion/complete": null, "server/discover": null, "subscriptions/listen": null }; var notificationMethodKeys = { "notifications/cancelled": null, "notifications/progress": null, "notifications/message": null, "notifications/resources/updated": null, "notifications/resources/list_changed": null, "notifications/tools/list_changed": null, "notifications/prompts/list_changed": null, "notifications/subscriptions/acknowledged": null }; function hasRequestMethod2026(method) { return Object.prototype.hasOwnProperty.call(requestMethodKeys, method); } function hasNotificationMethod2026(method) { return Object.prototype.hasOwnProperty.call(notificationMethodKeys, method); } function hasResultMethod2026(method) { return Object.prototype.hasOwnProperty.call(requestMethodKeys, method); } function getRequestSchema2026(method) { return hasRequestMethod2026(method) ? buildSchemas2026().dispatchRequestSchemas[method] : void 0; } function getResultSchema2026(method) { return hasResultMethod2026(method) ? buildSchemas2026().dispatchResultSchemas[method] : void 0; } function getNotificationSchema2026(method) { return hasNotificationMethod2026(method) ? buildSchemas2026().notificationSchemas2026[method] : void 0; } var rev2026RequestMethods = Object.keys(requestMethodKeys); var rev2026NotificationMethods = Object.keys(notificationMethodKeys); function isPlainObject$4(value) { return value !== null && typeof value === "object" && !Array.isArray(value); } function triState(schema, raw) { if (schema === void 0) return { ok: false, reason: "not-in-era" }; const parsed = schema.safeParse(raw); return parsed.success ? { ok: true, value: parsed.data } : { ok: false, reason: "invalid", message: String(parsed.error) }; } var NOT_IN_ERA = { ok: false, reason: "not-in-era" }; var REQUIRED_ENVELOPE_KEYS = [PROTOCOL_VERSION_META_KEY, CLIENT_CAPABILITIES_META_KEY]; function enforceDeletedFields(method, result) { let next = result; let copied = false; const copy = () => { if (!copied) { next = { ...next }; copied = true; } return next; }; const tools2 = result.tools; if (method === "tools/list" && Array.isArray(tools2) && tools2.some((tool) => isPlainObject$4(tool) && "execution" in tool)) copy().tools = tools2.map((tool) => { if (!isPlainObject$4(tool) || !("execution" in tool)) return tool; const rest = { ...tool }; delete rest["execution"]; return rest; }); const capabilities = result.capabilities; if (isPlainObject$4(capabilities) && "tasks" in capabilities) { const rest = { ...capabilities }; delete rest["tasks"]; copy().capabilities = rest; } return next; } var rev2026Codec = { era: "2026-07-28", hasRequestMethod: hasRequestMethod2026, hasNotificationMethod: hasNotificationMethod2026, hasInputRequestMethod: (method) => getInputRequestSchema2026(method) !== void 0, validateRequest: (method, raw) => triState(getRequestSchema2026(method), raw), validateResult: (method, raw) => triState(getResultSchema2026(method), raw), validateNotification: (method, raw) => triState(getNotificationSchema2026(method), raw), validateInputRequest: (method, raw) => triState(getInputRequestSchema2026(method), raw), validateInputResponse: (method, raw) => triState(getInputResponseSchema2026(method), raw), samplingResultVariant: () => NOT_IN_ERA, outboundEnvelope(material) { return { [PROTOCOL_VERSION_META_KEY]: material.protocolVersion, [CLIENT_INFO_META_KEY]: material.clientInfo, [CLIENT_CAPABILITIES_META_KEY]: material.clientCapabilities, ...material.logLevel !== void 0 && { [LOG_LEVEL_META_KEY]: material.logLevel } }; }, validateEnvelopeMeta(meta3) { const issues = []; for (const key of REQUIRED_ENVELOPE_KEYS) if (!(key in meta3)) issues.push({ key, problem: "missing" }); const parsed = buildSchemas2026().RequestMetaEnvelopeSchema.safeParse(meta3); if (!parsed.success) for (const issue2 of parsed.error.issues) { const path = issue2.path.map(String); const key = path.length > 0 ? path.join(".") : "_meta"; if (path.length === 1 && issues.some((existing) => existing.key === key && existing.problem === "missing")) continue; issues.push({ key, problem: issue2.message }); } return issues; }, projectCallToolResult: (result) => appendTextFallbackForNonObject(result), inputRequestSchema: getInputRequestSchema2026, decodeResult(method, raw) { if (!isPlainObject$4(raw)) return { kind: "invalid", error: new SdkError(SdkErrorCode.InvalidResult, `Invalid result for ${method}: not an object`, { method }) }; const rawResultType = raw["resultType"]; if (rawResultType === void 0) return { kind: "invalid", error: new SdkError(SdkErrorCode.InvalidResult, `Invalid result for ${method}: missing required resultType \u2014 servers implementing protocol revision 2026-07-28 MUST include it (the absent-means-complete bridge applies only to earlier-revision servers)`, { method, violation: "missing-resultType" }) }; if (typeof rawResultType !== "string") return { kind: "invalid", error: new SdkError(SdkErrorCode.InvalidResult, `Invalid result for ${method}: non-string resultType`, { method, resultType: rawResultType }) }; if (rawResultType === "input_required") { const rawInputRequests = raw["inputRequests"]; const inputRequests = isPlainObject$4(rawInputRequests) ? rawInputRequests : {}; const requestState = raw["requestState"]; if (Object.keys(inputRequests).length === 0 && typeof requestState !== "string") return { kind: "invalid", error: new SdkError(SdkErrorCode.InvalidResult, `Invalid result for ${method}: input_required carries neither inputRequests nor requestState (every input_required result must include at least one of the two)`, { method, violation: "input-required-missing-both" }) }; return { kind: "input_required", inputRequests, ...typeof requestState === "string" && { requestState } }; } if (rawResultType !== "complete") return { kind: "invalid", error: new SdkError(SdkErrorCode.UnsupportedResultType, `Unsupported result type '${rawResultType}' for ${method}`, { resultType: rawResultType, method }) }; const wireResultSchemas = getWireResultSchemas(); const wireSchema = Object.hasOwn(wireResultSchemas, method) ? wireResultSchemas[method] : void 0; if (wireSchema !== void 0) { const parsed = wireSchema.safeParse(raw); if (!parsed.success) return { kind: "invalid", error: new SdkError(SdkErrorCode.InvalidResult, `Invalid result for ${method}: ${parsed.error}`, { method }) }; } const lifted = { ...raw }; delete lifted["resultType"]; return { kind: "complete", result: lifted }; }, encodeResult(method, result, serverInfo) { return stampServerInfoMeta(fillCacheFields(method, stampResultType(method, enforceDeletedFields(method, result))), serverInfo); }, encodeErrorCode: (code) => code === -32002 ? -32602 : code, checkInboundEnvelope(material) { if (material.envelope === void 0) return "Request is missing the required _meta envelope for protocol revision 2026-07-28 (io.modelcontextprotocol/protocolVersion, io.modelcontextprotocol/clientCapabilities)"; const parsed = buildSchemas2026().RequestMetaEnvelopeSchema.safeParse(material.envelope); if (!parsed.success) return `Invalid _meta envelope for protocol revision 2026-07-28: ${parsed.error.issues.map((issue2) => issue2.message).join("; ")}`; } }; var wireResultSchemasMemo; function getWireResultSchemas() { if (wireResultSchemasMemo) return wireResultSchemasMemo; const s = buildSchemas2026(); wireResultSchemasMemo = { "tools/call": s.CallToolResultSchema, "tools/list": s.ListToolsResultSchema, "prompts/get": s.GetPromptResultSchema, "prompts/list": s.ListPromptsResultSchema, "resources/list": s.ListResourcesResultSchema, "resources/templates/list": s.ListResourceTemplatesResultSchema, "resources/read": s.ReadResourceResultSchema, "completion/complete": s.CompleteResultSchema, "server/discover": s.DiscoverResultSchema }; return wireResultSchemasMemo; } var MODERN_WIRE_REVISION = "2026-07-28"; function codecForVersion(version3) { return version3 !== void 0 && isModernProtocolVersion(version3) ? rev2026Codec : rev2025Codec; } function classifiedWireEra(classification) { if (classification.revision !== void 0) return codecForVersion(classification.revision).era; return classification.era === "modern" ? rev2026Codec.era : rev2025Codec.era; } function isSpecRequestMethod(method) { return ALL_CODECS.some((codec2) => codec2.hasRequestMethod(method)); } function isSpecNotificationMethod(method) { return ALL_CODECS.some((codec2) => codec2.hasNotificationMethod(method)); } var ALL_CODECS = [rev2025Codec, rev2026Codec]; function isPlainObject$3(value) { return value !== null && typeof value === "object" && !Array.isArray(value); } function requestMetaOf(params) { if (!isPlainObject$3(params)) return void 0; const meta3 = params["_meta"]; return isPlainObject$3(meta3) ? meta3 : void 0; } function hasEnvelopeClaim(params) { const meta3 = requestMetaOf(params); return meta3 !== void 0 && PROTOCOL_VERSION_META_KEY in meta3; } function envelopeClaimVersion(params) { const value = requestMetaOf(params)?.[PROTOCOL_VERSION_META_KEY]; return typeof value === "string" ? value : void 0; } function validateEnvelopeMeta(meta3) { return codecForVersion(MODERN_WIRE_REVISION).validateEnvelopeMeta(meta3); } var schemas_exports3 = /* @__PURE__ */ __exportAll({ AnnotationsSchema: () => AnnotationsSchema, AudioContentSchema: () => AudioContentSchema, BaseMetadataSchema: () => BaseMetadataSchema, BaseRequestParamsSchema: () => BaseRequestParamsSchema, BlobResourceContentsSchema: () => BlobResourceContentsSchema, BooleanSchemaSchema: () => BooleanSchemaSchema, CallToolRequestParamsSchema: () => CallToolRequestParamsSchema, CallToolRequestSchema: () => CallToolRequestSchema, CallToolResultSchema: () => CallToolResultSchema, CancelTaskRequestSchema: () => CancelTaskRequestSchema, CancelTaskResultSchema: () => CancelTaskResultSchema, CancelledNotificationParamsSchema: () => CancelledNotificationParamsSchema, CancelledNotificationSchema: () => CancelledNotificationSchema, ClientCapabilitiesSchema: () => ClientCapabilitiesSchema, ClientNotificationSchema: () => ClientNotificationSchema, ClientRequestSchema: () => ClientRequestSchema, ClientResultSchema: () => ClientResultSchema, ClientTasksCapabilitySchema: () => ClientTasksCapabilitySchema, CompatibilityCallToolResultSchema: () => CompatibilityCallToolResultSchema, CompleteRequestParamsSchema: () => CompleteRequestParamsSchema, CompleteRequestSchema: () => CompleteRequestSchema, CompleteResultSchema: () => CompleteResultSchema, ContentBlockSchema: () => ContentBlockSchema, CreateMessageRequestParamsSchema: () => CreateMessageRequestParamsSchema, CreateMessageRequestSchema: () => CreateMessageRequestSchema, CreateMessageResultSchema: () => CreateMessageResultSchema, CreateMessageResultWithToolsSchema: () => CreateMessageResultWithToolsSchema, CreateTaskResultSchema: () => CreateTaskResultSchema, CursorSchema: () => CursorSchema, DiscoverRequestSchema: () => DiscoverRequestSchema, DiscoverResultSchema: () => DiscoverResultSchema, ElicitRequestFormParamsSchema: () => ElicitRequestFormParamsSchema, ElicitRequestParamsSchema: () => ElicitRequestParamsSchema, ElicitRequestSchema: () => ElicitRequestSchema, ElicitRequestURLParamsSchema: () => ElicitRequestURLParamsSchema, ElicitResultSchema: () => ElicitResultSchema, ElicitationCompleteNotificationParamsSchema: () => ElicitationCompleteNotificationParamsSchema, ElicitationCompleteNotificationSchema: () => ElicitationCompleteNotificationSchema, EmbeddedResourceSchema: () => EmbeddedResourceSchema, EmptyResultSchema: () => EmptyResultSchema, EnumSchemaSchema: () => EnumSchemaSchema, GetPromptRequestParamsSchema: () => GetPromptRequestParamsSchema, GetPromptRequestSchema: () => GetPromptRequestSchema, GetPromptResultSchema: () => GetPromptResultSchema, GetTaskPayloadRequestSchema: () => GetTaskPayloadRequestSchema, GetTaskPayloadResultSchema: () => GetTaskPayloadResultSchema, GetTaskRequestSchema: () => GetTaskRequestSchema, GetTaskResultSchema: () => GetTaskResultSchema, IconSchema: () => IconSchema, IconsSchema: () => IconsSchema, ImageContentSchema: () => ImageContentSchema, ImplementationSchema: () => ImplementationSchema, InitializeRequestParamsSchema: () => InitializeRequestParamsSchema, InitializeRequestSchema: () => InitializeRequestSchema, InitializeResultSchema: () => InitializeResultSchema, InitializedNotificationSchema: () => InitializedNotificationSchema, JSONArraySchema: () => JSONArraySchema, JSONObjectSchema: () => JSONObjectSchema, JSONRPCErrorResponseSchema: () => JSONRPCErrorResponseSchema, JSONRPCMessageSchema: () => JSONRPCMessageSchema, JSONRPCNotificationSchema: () => JSONRPCNotificationSchema, JSONRPCRequestSchema: () => JSONRPCRequestSchema, JSONRPCResponseSchema: () => JSONRPCResponseSchema, JSONRPCResultResponseSchema: () => JSONRPCResultResponseSchema, JSONValueSchema: () => JSONValueSchema, LegacyTitledEnumSchemaSchema: () => LegacyTitledEnumSchemaSchema, ListChangedOptionsBaseSchema: () => ListChangedOptionsBaseSchema, ListPromptsRequestSchema: () => ListPromptsRequestSchema, ListPromptsResultSchema: () => ListPromptsResultSchema, ListResourceTemplatesRequestSchema: () => ListResourceTemplatesRequestSchema, ListResourceTemplatesResultSchema: () => ListResourceTemplatesResultSchema, ListResourcesRequestSchema: () => ListResourcesRequestSchema, ListResourcesResultSchema: () => ListResourcesResultSchema, ListRootsRequestSchema: () => ListRootsRequestSchema, ListRootsResultSchema: () => ListRootsResultSchema, ListTasksRequestSchema: () => ListTasksRequestSchema, ListTasksResultSchema: () => ListTasksResultSchema, ListToolsRequestSchema: () => ListToolsRequestSchema, ListToolsResultSchema: () => ListToolsResultSchema, LoggingLevelSchema: () => LoggingLevelSchema, LoggingMessageNotificationParamsSchema: () => LoggingMessageNotificationParamsSchema, LoggingMessageNotificationSchema: () => LoggingMessageNotificationSchema, ModelHintSchema: () => ModelHintSchema, ModelPreferencesSchema: () => ModelPreferencesSchema, MultiSelectEnumSchemaSchema: () => MultiSelectEnumSchemaSchema, NotificationSchema: () => NotificationSchema, NotificationsParamsSchema: () => NotificationsParamsSchema, NumberSchemaSchema: () => NumberSchemaSchema, PaginatedRequestParamsSchema: () => PaginatedRequestParamsSchema, PaginatedRequestSchema: () => PaginatedRequestSchema, PaginatedResultSchema: () => PaginatedResultSchema, PingRequestSchema: () => PingRequestSchema, PrimitiveSchemaDefinitionSchema: () => PrimitiveSchemaDefinitionSchema, ProgressNotificationParamsSchema: () => ProgressNotificationParamsSchema, ProgressNotificationSchema: () => ProgressNotificationSchema, ProgressSchema: () => ProgressSchema, ProgressTokenSchema: () => ProgressTokenSchema, PromptArgumentSchema: () => PromptArgumentSchema, PromptListChangedNotificationSchema: () => PromptListChangedNotificationSchema, PromptMessageSchema: () => PromptMessageSchema, PromptReferenceSchema: () => PromptReferenceSchema, PromptSchema: () => PromptSchema, ReadResourceRequestParamsSchema: () => ReadResourceRequestParamsSchema, ReadResourceRequestSchema: () => ReadResourceRequestSchema, ReadResourceResultSchema: () => ReadResourceResultSchema, RelatedTaskMetadataSchema: () => RelatedTaskMetadataSchema, RequestIdSchema: () => RequestIdSchema, RequestMetaSchema: () => RequestMetaSchema, RequestSchema: () => RequestSchema, ResourceContentsSchema: () => ResourceContentsSchema, ResourceLinkSchema: () => ResourceLinkSchema, ResourceListChangedNotificationSchema: () => ResourceListChangedNotificationSchema, ResourceRequestParamsSchema: () => ResourceRequestParamsSchema, ResourceSchema: () => ResourceSchema, ResourceTemplateReferenceSchema: () => ResourceTemplateReferenceSchema, ResourceTemplateSchema: () => ResourceTemplateSchema, ResourceUpdatedNotificationParamsSchema: () => ResourceUpdatedNotificationParamsSchema, ResourceUpdatedNotificationSchema: () => ResourceUpdatedNotificationSchema, ResultMetaObjectSchema: () => ResultMetaObjectSchema, ResultSchema: () => ResultSchema, RoleSchema: () => RoleSchema, RootSchema: () => RootSchema, RootsListChangedNotificationSchema: () => RootsListChangedNotificationSchema, SamplingContentSchema: () => SamplingContentSchema, SamplingMessageContentBlockSchema: () => SamplingMessageContentBlockSchema, SamplingMessageSchema: () => SamplingMessageSchema, ServerCapabilitiesSchema: () => ServerCapabilitiesSchema, ServerNotificationSchema: () => ServerNotificationSchema, ServerRequestSchema: () => ServerRequestSchema, ServerResultSchema: () => ServerResultSchema, ServerTasksCapabilitySchema: () => ServerTasksCapabilitySchema, SetLevelRequestParamsSchema: () => SetLevelRequestParamsSchema, SetLevelRequestSchema: () => SetLevelRequestSchema, SingleSelectEnumSchemaSchema: () => SingleSelectEnumSchemaSchema, StringSchemaSchema: () => StringSchemaSchema, SubscribeRequestParamsSchema: () => SubscribeRequestParamsSchema, SubscribeRequestSchema: () => SubscribeRequestSchema, SubscriptionFilterSchema: () => SubscriptionFilterSchema, SubscriptionsAcknowledgedNotificationParamsSchema: () => SubscriptionsAcknowledgedNotificationParamsSchema, SubscriptionsAcknowledgedNotificationSchema: () => SubscriptionsAcknowledgedNotificationSchema, SubscriptionsListenRequestParamsSchema: () => SubscriptionsListenRequestParamsSchema, SubscriptionsListenRequestSchema: () => SubscriptionsListenRequestSchema, SubscriptionsListenResultMetaSchema: () => SubscriptionsListenResultMetaSchema, SubscriptionsListenResultSchema: () => SubscriptionsListenResultSchema, TaskAugmentedRequestParamsSchema: () => TaskAugmentedRequestParamsSchema, TaskCreationParamsSchema: () => TaskCreationParamsSchema, TaskMetadataSchema: () => TaskMetadataSchema, TaskSchema: () => TaskSchema, TaskStatusNotificationParamsSchema: () => TaskStatusNotificationParamsSchema, TaskStatusNotificationSchema: () => TaskStatusNotificationSchema, TaskStatusSchema: () => TaskStatusSchema, TextContentSchema: () => TextContentSchema, TextResourceContentsSchema: () => TextResourceContentsSchema, TitledMultiSelectEnumSchemaSchema: () => TitledMultiSelectEnumSchemaSchema, TitledSingleSelectEnumSchemaSchema: () => TitledSingleSelectEnumSchemaSchema, ToolAnnotationsSchema: () => ToolAnnotationsSchema, ToolChoiceSchema: () => ToolChoiceSchema, ToolExecutionSchema: () => ToolExecutionSchema, ToolListChangedNotificationSchema: () => ToolListChangedNotificationSchema, ToolResultContentSchema: () => ToolResultContentSchema, ToolSchema: () => ToolSchema, ToolUseContentSchema: () => ToolUseContentSchema, UnsubscribeRequestParamsSchema: () => UnsubscribeRequestParamsSchema, UnsubscribeRequestSchema: () => UnsubscribeRequestSchema, UntitledMultiSelectEnumSchemaSchema: () => UntitledMultiSelectEnumSchemaSchema, UntitledSingleSelectEnumSchemaSchema: () => UntitledSingleSelectEnumSchemaSchema }); var isJSONRPCRequest = (value) => JSONRPCRequestSchema.safeParse(value).success; var isJSONRPCNotification = (value) => JSONRPCNotificationSchema.safeParse(value).success; var isJSONRPCResultResponse = (value) => JSONRPCResultResponseSchema.safeParse(value).success; var isJSONRPCErrorResponse = (value) => JSONRPCErrorResponseSchema.safeParse(value).success; var isInputRequiredResult = (value) => typeof value === "object" && value !== null && !Array.isArray(value) && value.resultType === "input_required"; function assertCompleteRequestPrompt(request) { if (request.params.ref.type !== "ref/prompt") throw new TypeError(`Expected CompleteRequestPrompt, but got ${request.params.ref.type}`); } function assertCompleteRequestResourceTemplate(request) { if (request.params.ref.type !== "ref/resource") throw new TypeError(`Expected CompleteRequestResourceTemplate, but got ${request.params.ref.type}`); } var X_MCP_HEADER_KEY = "x-mcp-header"; var RFC9110_TOKEN = /^[!#$%&'*+\-.^_`|~0-9A-Za-z]+$/; var PERMITTED_X_MCP_HEADER_TYPES = /* @__PURE__ */ new Set([ "string", "integer", "boolean", "number" ]); function scanXMcpHeaderDeclarations(inputSchema) { const declarations = []; const seenLower = /* @__PURE__ */ new Map(); const visit2 = (node2, path, reachable) => { if (node2 === null || typeof node2 !== "object") return void 0; const schema = node2; if (X_MCP_HEADER_KEY in schema) { if (!reachable || path.length === 0) return `${pathName(path)}: x-mcp-header is only permitted on properties statically reachable via a chain of 'properties' keys (not under items, additionalProperties, oneOf/anyOf/allOf/not, if/then/else, or $ref)`; const raw = schema[X_MCP_HEADER_KEY]; if (typeof raw !== "string" || raw.length === 0) return `${pathName(path)}: x-mcp-header MUST be a non-empty string`; if (!RFC9110_TOKEN.test(raw)) return `${pathName(path)}: x-mcp-header '${raw}' is not a valid RFC 9110 token (no spaces, control characters or HTTP delimiters)`; const type = typeof schema.type === "string" ? schema.type : void 0; if (type === void 0 || !PERMITTED_X_MCP_HEADER_TYPES.has(type)) return `${pathName(path)}: x-mcp-header is only permitted on primitive-typed properties (string, integer, boolean); got ${type ?? ""}`; const lower = raw.toLowerCase(); const prior = seenLower.get(lower); if (prior !== void 0) return `x-mcp-header '${raw}' is not case-insensitively unique (also declared as '${prior}')`; seenLower.set(lower, raw); declarations.push({ path, headerName: raw, type }); } const properties = schema.properties; if (properties !== null && typeof properties === "object") for (const [key, child] of Object.entries(properties)) { const fault$1 = visit2(child, [...path, key], reachable); if (fault$1 !== void 0) return fault$1; } for (const k of NON_REACHABLE_SUBSCHEMA_KEYWORDS) { const sub = schema[k]; if (sub === void 0) continue; const branches = Array.isArray(sub) ? sub : sub !== null && typeof sub === "object" && OBJECT_VALUED_SUBSCHEMA_KEYWORDS.has(k) ? Object.values(sub) : [sub]; for (const branch of branches) { const fault$1 = visit2(branch, [...path, `<${k}>`], false); if (fault$1 !== void 0) return fault$1; } } }; const fault = visit2(inputSchema, [], true); return fault === void 0 ? { valid: true, declarations } : { valid: false, reason: fault }; } var NON_REACHABLE_SUBSCHEMA_KEYWORDS = [ "items", "prefixItems", "contains", "additionalProperties", "unevaluatedProperties", "unevaluatedItems", "propertyNames", "patternProperties", "dependentSchemas", "oneOf", "anyOf", "allOf", "not", "if", "then", "else", "$defs", "definitions" ]; var OBJECT_VALUED_SUBSCHEMA_KEYWORDS = /* @__PURE__ */ new Set([ "patternProperties", "dependentSchemas", "$defs", "definitions" ]); function pathName(path) { return path.length === 0 ? "" : path.join("."); } var HEADER_MISMATCH_ERROR_CODE = -32020; var INBOUND_VALIDATION_LADDER = [ { rung: "http-method", order: 1, evaluatedAt: "edge", codes: [-32e3], conformance: [], rationale: "The modern era is POST-only; GET/DELETE are body-less 2025-era session operations and are method-routed to legacy serving (405 when legacy serving is not configured), before any body is read." }, { rung: "jsonrpc-shape", order: 2, evaluatedAt: "edge", codes: [ProtocolErrorCode.InvalidRequest], conformance: ["server-stateless"], rationale: "The body must be a JSON-RPC request or notification: posted responses and batch arrays containing a modern or invalid element are rejected before classification (element-wise batch rule); all-legacy arrays stay legacy traffic." }, { rung: "era-classification", order: 3, evaluatedAt: "edge", codes: [HEADER_MISMATCH_ERROR_CODE, ProtocolErrorCode.UnsupportedProtocolVersion], conformance: [ "server-stateless", "http-header-validation", "http-custom-header-server-validation" ], rationale: "Body-primary era classification with the protocol-version header as a cross-check; a header/body disagreement is rejected with -32020 (HeaderMismatch), and an envelope-less request on a modern-only endpoint is answered with the unsupported-protocol-version error naming the supported revisions." }, { rung: "envelope", order: 4, evaluatedAt: "edge", codes: [ProtocolErrorCode.InvalidParams], conformance: ["server-stateless"], rationale: "A present envelope claim with a malformed envelope \u2014 and a missing envelope on a request whose protocol-version header names a modern revision \u2014 is an invalid-params rejection naming the offending or missing key(s); never a silent fall back to legacy handling. This is the only place an invalid-params rejection maps to HTTP 400." }, { rung: "method-registry", order: 5, evaluatedAt: "dispatch", codes: [ProtocolErrorCode.MethodNotFound], conformance: ["server-stateless"], rationale: "Method existence outranks parameter validity: a method absent from the negotiated revision\u2019s registry (or with no handler installed) answers method-not-found before params or capabilities are looked at." }, { rung: "request-params", order: 6, evaluatedAt: "dispatch", codes: [ProtocolErrorCode.InvalidParams], conformance: [], rationale: "Per-method params validation; emitted in-band by the dispatch layer (HTTP 200), never via the ladder status table." }, { rung: "standard-header-validation", order: 7, evaluatedAt: "pre-dispatch", codes: [HEADER_MISMATCH_ERROR_CODE], conformance: ["http-header-validation"], rationale: "SEP-2243 standard `Mcp-Method` / `Mcp-Name` headers \u2014 presence, sentinel decoding, and `Mcp-Name` \u2194 body cross-check \u2014 are validated by the HTTP entry on a modern-classified request after the supported-revision gate and before dispatch. The classifier\u2019s own header-mismatch cells (protocol-version, `Mcp-Method` mismatch) stay on the edge `era-classification` rung; this rung carries the entry-layer presence/`Mcp-Name` half. Evaluated before the capability gate, the factory call, and the `Mcp-Param-*` rung so a request that fails several rungs is answered by the standard-header rung first. The documented order (after method-registry 5 and request-params 6) is NOT the observed precedence: serveModern evaluates this rung immediately after the supported-revision gate, so a request that also fails a dispatch rung is answered here before the dispatch rungs (5\u20136) are consulted." }, { rung: "client-capabilities", order: 8, evaluatedAt: "pre-dispatch", codes: [ProtocolErrorCode.MissingRequiredClientCapability], conformance: ["server-stateless"], rationale: "The capability requirement is checked by the HTTP entry, pre-dispatch, against the validated envelope the classifier produced \u2014 pinning the spec-mandated HTTP 400 independently of how dispatch- and handler-produced errors are mapped. The documented order (after method resolution and params validation) is preserved observably only while the requirement table is empty: once a served method gains a requirement entry, a request that is missing the capability and would also fail a dispatch rung is answered by this gate first, so the entry must consult the method registry before the gate if the documented precedence is to stay observable." }, { rung: "param-header-validation", order: 9, evaluatedAt: "pre-dispatch", codes: [HEADER_MISMATCH_ERROR_CODE], conformance: ["http-custom-header-server-validation"], rationale: "SEP-2243 `Mcp-Param-*` headers are validated against the named tool\u2019s `x-mcp-header` declarations and the body `arguments` after the tool registry is known and before dispatch reaches the handler; a missing/disagreeing/malformed header is rejected 400 / -32020 with the same shape as the standard-header cross-checks. The documented order (after method resolution and params validation) is preserved observably only when the body `arguments` would otherwise validate: the check runs pre-dispatch, so a `tools/call` that fails BOTH this rung and a dispatch-time rung (e.g. order-6 `request-params`, -32602) is answered by this gate first with 400 / -32020, not by the earlier-ordered rung." } ]; var LADDER_ERROR_HTTP_STATUS = { [ProtocolErrorCode.ParseError]: 400, [ProtocolErrorCode.InvalidRequest]: 400, [ProtocolErrorCode.MethodNotFound]: 404, [ProtocolErrorCode.UnsupportedProtocolVersion]: 400, [ProtocolErrorCode.MissingRequiredClientCapability]: 400, [HEADER_MISMATCH_ERROR_CODE]: 400 }; function rejection(rung, cell, httpStatus, error62, settled) { return { kind: "reject", rung, cell, httpStatus, code: error62.code, message: error62.message, ...error62.data !== void 0 && { data: error62.data }, settled }; } function carriesValidModernEnvelopeClaim(params) { if (!hasEnvelopeClaim(params)) return false; const claimedVersion = envelopeClaimVersion(params); if (claimedVersion === void 0 || !isModernProtocolVersion(claimedVersion)) return false; const meta3 = requestMetaOf(params); return meta3 !== void 0 && validateEnvelopeMeta(meta3).length === 0; } function modernOnlyStrictRejection(route, supportedVersions) { switch (route.reason) { case "http-method": return rejection("http-method", "modern-only-method-not-allowed", 405, new ProtocolError(-32e3, "Method not allowed."), true); case "batch": return rejection("jsonrpc-shape", "modern-only-batch-not-supported", 400, new ProtocolError(ProtocolErrorCode.InvalidRequest, "Bad Request: JSON-RPC batches are not supported by this endpoint"), true); case "response": return rejection("jsonrpc-shape", "modern-only-response-post", 400, new ProtocolError(ProtocolErrorCode.InvalidRequest, "Bad Request: JSON-RPC responses cannot be posted to this endpoint"), true); case "notification": return; case "initialize": case "no-claim": { const requested = route.requestedVersion; return rejection("era-classification", "modern-only-missing-envelope", 400, requested === void 0 ? new ProtocolError(ProtocolErrorCode.UnsupportedProtocolVersion, "Unsupported protocol version: the request did not name a protocol version", { supported: [...supportedVersions] }) : new UnsupportedProtocolVersionError({ supported: [...supportedVersions], requested }), true); } } } function parseSchema(schema, data) { return safeParse2(schema, data); } function shapeKeys(schemas) { return new Set(schemas.flatMap((schema) => Object.keys(schema.shape))); } function isStandardSchema(schema) { if (schema == null) return false; const schemaType = typeof schema; if (schemaType !== "object" && schemaType !== "function") return false; if (!("~standard" in schema)) return false; return typeof schema["~standard"]?.validate === "function"; } var warnedZodFallback = false; var JSON_SCHEMA_CONVERSION_TARGET = "draft-2020-12"; function standardSchemaToJsonSchema(schema, io = "input") { const std = schema["~standard"]; let result; if (std.jsonSchema) result = std.jsonSchema[io]({ target: JSON_SCHEMA_CONVERSION_TARGET }); else if (std.vendor === "zod") { if (!("_zod" in schema)) throw new Error("Schema appears to be from zod 3, which the SDK cannot convert to JSON Schema. Upgrade to zod >=4.2.0, or wrap your JSON Schema with fromJsonSchema()."); if (!warnedZodFallback) { warnedZodFallback = true; console.warn("[mcp-sdk] Your zod version does not implement `~standard.jsonSchema` (added in zod 4.2.0). Falling back to z.toJSONSchema(). Upgrade to zod >=4.2.0 to silence this warning."); } result = toJSONSchema(schema, { target: JSON_SCHEMA_CONVERSION_TARGET, io }); } else throw new Error(`Schema library "${std.vendor}" does not implement StandardJSONSchemaV1 (\`~standard.jsonSchema\`). Upgrade to a version that does, or wrap your JSON Schema with fromJsonSchema().`); if (io === "output") { if (result.type !== void 0) return result; return isProvablyObjectShapedRoot(result) ? { type: "object", ...result } : result; } if (result.type !== void 0 && result.type !== "object") throw new Error(`MCP tool and prompt schemas must describe objects (got type: ${JSON.stringify(result.type)}). Wrap your schema in z.object({...}) or equivalent.`); return { type: "object", ...result }; } function isProvablyObjectShapedRoot(schema) { if ("properties" in schema || "patternProperties" in schema || "additionalProperties" in schema || "required" in schema) return true; for (const key of [ "oneOf", "anyOf", "allOf" ]) { const members2 = schema[key]; if (Array.isArray(members2) && members2.length > 0) return members2.every((m) => m !== null && typeof m === "object" && (m.type === "object" || isProvablyObjectShapedRoot(m))); } return false; } function formatIssue(issue2) { if (!issue2.path?.length) return issue2.message; return `${issue2.path.map((p) => String(typeof p === "object" ? p.key : p)).join(".")}: ${issue2.message}`; } async function validateStandardSchema(schema, data) { const result = await schema["~standard"].validate(data); if (result.issues && result.issues.length > 0) return { success: false, error: result.issues.map((i) => formatIssue(i)).join(", ") }; return { success: true, data: result.value }; } function zodEmittedPattern(schema) { const jsonSchema = toJSONSchema(schema, { target: JSON_SCHEMA_CONVERSION_TARGET, io: "input" }); return typeof jsonSchema.pattern === "string" ? jsonSchema.pattern : void 0; } var DATETIME_FRACTION_DIGITS = /\\\.\\d\{(\d+)\}/; function datetimeReferenceSchemas(pattern) { const fractionDigits = DATETIME_FRACTION_DIGITS.exec(pattern); const precisions = [ void 0, -1, 0 ]; if (fractionDigits) precisions.push(Number(fractionDigits[1])); return [false, true].flatMap((local) => [false, true].flatMap((offset) => precisions.map((precision) => iso_exports.datetime({ local, offset, precision })))); } function referencePatternsForFormat(format, pattern) { let referenceSchemas; switch (format) { case "email": referenceSchemas = [email2()]; break; case "uri": referenceSchemas = [url()]; break; case "date": referenceSchemas = [iso_exports.date()]; break; case "date-time": referenceSchemas = datetimeReferenceSchemas(pattern); break; } return new Set(referenceSchemas.map((schema) => zodEmittedPattern(schema)).filter((emitted) => emitted !== void 0)); } function isLibraryFormatPattern(format, pattern, vendor) { if (vendor !== "zod") return true; return referencePatternsForFormat(format, pattern).has(pattern); } function promptArgumentsFromStandardSchema(schema) { const jsonSchema = standardSchemaToJsonSchema(schema, "input"); const properties = jsonSchema.properties || {}; const required2 = jsonSchema.required || []; return Object.entries(properties).map(([name, prop]) => ({ name, description: prop?.description, required: required2.includes(name) })); } function isJsonObject(value) { return typeof value === "object" && value !== null && !Array.isArray(value); } function convertStandardElicitationSchema(schema) { try { return standardSchemaToJsonSchema(schema, "input"); } catch (error62) { const detail = error62 instanceof Error ? error62.message : String(error62); throw new ProtocolError(ProtocolErrorCode.InvalidParams, `Elicitation requestedSchema must describe an object with flat primitive properties: ${detail}`); } } var ANNOTATION_ONLY_JSON_SCHEMA_KEYWORDS = /* @__PURE__ */ new Set([ "$comment", "deprecated", "description", "examples", "readOnly", "title", "writeOnly" ]); function isAnnotationOnlyJsonSchemaKeyword(key) { return ANNOTATION_ONLY_JSON_SCHEMA_KEYWORDS.has(key) || key.startsWith("x-"); } var ROOT_KEYS = /* @__PURE__ */ new Set(["$schema", ...Object.keys(ElicitRequestFormParamsSchema.shape.requestedSchema.shape)]); var PROPERTY_KEYS_BY_TYPE = { string: shapeKeys([ StringSchemaSchema, UntitledSingleSelectEnumSchemaSchema, TitledSingleSelectEnumSchemaSchema, LegacyTitledEnumSchemaSchema ]), number: shapeKeys([NumberSchemaSchema]), integer: shapeKeys([NumberSchemaSchema]), boolean: shapeKeys([BooleanSchemaSchema]), array: shapeKeys([UntitledMultiSelectEnumSchemaSchema, TitledMultiSelectEnumSchemaSchema]) }; var SUPPORTED_STRING_FORMATS = new Set(StringSchemaSchema.shape.format.unwrap().options); function walkProperty(node2, path, vendor, unsupported) { if (!isJsonObject(node2)) return node2; const allowedKeys = typeof node2.type === "string" && Object.hasOwn(PROPERTY_KEYS_BY_TYPE, node2.type) ? PROPERTY_KEYS_BY_TYPE[node2.type] : void 0; if (allowedKeys === void 0) return node2; const pruned = {}; for (const [key, value] of Object.entries(node2)) if (allowedKeys.has(key) || isAnnotationOnlyJsonSchemaKeyword(key)) pruned[key] = value; else if (key === "pattern" && node2.type === "string" && typeof node2.format === "string") { if (!SUPPORTED_STRING_FORMATS.has(node2.format)) pruned[key] = value; else if (typeof value !== "string" || !isLibraryFormatPattern(node2.format, value, vendor)) unsupported.push(`${path}.${key}`); } else unsupported.push(`${path}.${key}`); return pruned; } function walkRequestedSchema(converted, vendor) { const pruned = {}; const unsupported = []; for (const [key, value] of Object.entries(converted)) if (key === "properties" && isJsonObject(value)) pruned[key] = Object.fromEntries(Object.entries(value).map(([name, node2]) => [name, walkProperty(node2, `properties.${name}`, vendor, unsupported)])); else if (ROOT_KEYS.has(key)) pruned[key] = value; else if (!isAnnotationOnlyJsonSchemaKeyword(key)) unsupported.push(key); if (unsupported.length > 0) throw new ProtocolError(ProtocolErrorCode.InvalidParams, `Elicitation requestedSchema contains unsupported JSON Schema constraint(s) after Standard Schema conversion: ${unsupported.join(", ")}`); return pruned; } function describeUnsupportedProperties(pruned, fallback) { if (!isJsonObject(pruned.properties)) return fallback; const offenders = Object.entries(pruned.properties).filter(([, node2]) => !parseSchema(PrimitiveSchemaDefinitionSchema, node2).success).map(([name]) => `properties.${name}`); return offenders.length > 0 ? offenders.join(", ") : fallback; } function findDroppedConstraintPaths(original, parsed, path = "") { if (Array.isArray(original) && Array.isArray(parsed)) return original.flatMap((item, index) => findDroppedConstraintPaths(item, parsed[index], `${path}[${index}]`)); if (!isJsonObject(original) || !isJsonObject(parsed)) return []; return Object.entries(original).flatMap(([key, value]) => { const childPath = path ? `${path}.${key}` : key; if (!Object.prototype.hasOwnProperty.call(parsed, key)) return isAnnotationOnlyJsonSchemaKeyword(key) ? [] : [childPath]; return findDroppedConstraintPaths(value, parsed[key], childPath); }); } function normalizeElicitInputParams(input2) { if (!isStandardSchema(input2.requestedSchema)) return { ...input2, mode: "form", requestedSchema: input2.requestedSchema }; const vendor = input2.requestedSchema["~standard"].vendor; const pruned = walkRequestedSchema(convertStandardElicitationSchema(input2.requestedSchema), vendor); const parsed = parseSchema(ElicitRequestFormParamsSchema.shape.requestedSchema, pruned); if (!parsed.success) throw new ProtocolError(ProtocolErrorCode.InvalidParams, `Elicitation requestedSchema only supports flat primitive properties (string, number, integer, boolean, and string enums): ${describeUnsupportedProperties(pruned, parsed.error.message)}`); const droppedConstraints = findDroppedConstraintPaths(pruned, parsed.data); if (droppedConstraints.length > 0) throw new ProtocolError(ProtocolErrorCode.InvalidParams, `Elicitation requestedSchema contains unsupported JSON Schema constraint(s) after Standard Schema conversion: ${droppedConstraints.join(", ")}`); const danglingRequired = (parsed.data.required ?? []).filter((key) => !Object.prototype.hasOwnProperty.call(parsed.data.properties, key)); if (danglingRequired.length > 0) throw new ProtocolError(ProtocolErrorCode.InvalidParams, `Elicitation requestedSchema lists required properties that are not defined in properties: ${danglingRequired.join(", ")}`); return { ...input2, mode: "form", requestedSchema: parsed.data }; } function buildInputRequired(spec) { const hasInputRequests = spec.inputRequests !== void 0 && Object.keys(spec.inputRequests).length > 0; const hasRequestState = typeof spec.requestState === "string"; if (!hasInputRequests && !hasRequestState) throw new TypeError("inputRequired() requires at least one of inputRequests (with at least one entry) or requestState (spec: every InputRequiredResult MUST include at least one of the two)"); return { resultType: "input_required", ...spec.inputRequests !== void 0 && { inputRequests: spec.inputRequests }, ...spec.requestState !== void 0 && { requestState: spec.requestState } }; } var inputRequired = Object.assign(buildInputRequired, { elicit(params) { try { return { method: "elicitation/create", params: normalizeElicitInputParams(params) }; } catch (error62) { throw error62 instanceof ProtocolError ? new TypeError(error62.message, { cause: error62 }) : error62; } }, elicitUrl(params) { return { method: "elicitation/create", params: { ...params, mode: "url" } }; }, createMessage(params) { return { method: "sampling/createMessage", params }; }, listRoots() { return { method: "roots/list" }; } }); var REQUEST_STATE_ONLY_LEG_PACING_MS = 250; function inputRequiredRoundsExceededMessage(method, maxRounds) { return `Multi-round-trip request '${method}' still required input after ${maxRounds} rounds (inputRequired.maxRounds)`; } function sleep(ms, signal) { return new Promise((resolve2, reject) => { if (signal?.aborted) { reject(signal.reason instanceof SdkError ? signal.reason : new SdkError(SdkErrorCode.RequestTimeout, String(signal.reason))); return; } const timer = setTimeout(() => { signal?.removeEventListener("abort", onAbort); resolve2(); }, ms); const onAbort = () => { clearTimeout(timer); reject(signal?.reason instanceof SdkError ? signal.reason : new SdkError(SdkErrorCode.RequestTimeout, String(signal?.reason))); }; signal?.addEventListener("abort", onAbort, { once: true }); }); } function linkedRoundAbort(outer) { const controller = new AbortController(); const onOuterAbort = () => controller.abort(outer?.reason); outer?.addEventListener("abort", onOuterAbort, { once: true }); if (outer?.aborted) controller.abort(outer.reason); return { signal: controller.signal, abort: (reason) => controller.abort(reason), dispose: () => outer?.removeEventListener("abort", onOuterAbort) }; } var SPEC_SCHEMA_KEYS = [ "AnnotationsSchema", "AudioContentSchema", "BaseMetadataSchema", "BlobResourceContentsSchema", "BooleanSchemaSchema", "CallToolRequestSchema", "CallToolRequestParamsSchema", "CallToolResultSchema", "CancelledNotificationSchema", "CancelledNotificationParamsSchema", "CancelTaskRequestSchema", "CancelTaskResultSchema", "ClientCapabilitiesSchema", "ClientNotificationSchema", "ClientRequestSchema", "ClientResultSchema", "CompatibilityCallToolResultSchema", "CompleteRequestSchema", "CompleteRequestParamsSchema", "CompleteResultSchema", "ContentBlockSchema", "CreateMessageRequestSchema", "CreateMessageRequestParamsSchema", "CreateMessageResultSchema", "CreateMessageResultWithToolsSchema", "CreateTaskResultSchema", "CursorSchema", "DiscoverRequestSchema", "DiscoverResultSchema", "ElicitationCompleteNotificationSchema", "ElicitationCompleteNotificationParamsSchema", "ElicitRequestSchema", "ElicitRequestFormParamsSchema", "ElicitRequestParamsSchema", "ElicitRequestURLParamsSchema", "ElicitResultSchema", "EmbeddedResourceSchema", "EmptyResultSchema", "EnumSchemaSchema", "GetPromptRequestSchema", "GetPromptRequestParamsSchema", "GetPromptResultSchema", "GetTaskPayloadRequestSchema", "GetTaskPayloadResultSchema", "GetTaskRequestSchema", "GetTaskResultSchema", "IconSchema", "IconsSchema", "ImageContentSchema", "ImplementationSchema", "InitializedNotificationSchema", "InitializeRequestSchema", "InitializeRequestParamsSchema", "InitializeResultSchema", "JSONArraySchema", "JSONObjectSchema", "JSONRPCErrorResponseSchema", "JSONRPCMessageSchema", "JSONRPCNotificationSchema", "JSONRPCRequestSchema", "JSONRPCResponseSchema", "JSONRPCResultResponseSchema", "JSONValueSchema", "LegacyTitledEnumSchemaSchema", "ListPromptsRequestSchema", "ListPromptsResultSchema", "ListResourcesRequestSchema", "ListResourcesResultSchema", "ListResourceTemplatesRequestSchema", "ListResourceTemplatesResultSchema", "ListRootsRequestSchema", "ListRootsResultSchema", "ListTasksRequestSchema", "ListTasksResultSchema", "ListToolsRequestSchema", "ListToolsResultSchema", "LoggingLevelSchema", "LoggingMessageNotificationSchema", "LoggingMessageNotificationParamsSchema", "ModelHintSchema", "ModelPreferencesSchema", "MultiSelectEnumSchemaSchema", "NotificationSchema", "NumberSchemaSchema", "PaginatedRequestSchema", "PaginatedRequestParamsSchema", "PaginatedResultSchema", "PingRequestSchema", "PrimitiveSchemaDefinitionSchema", "ProgressSchema", "ProgressNotificationSchema", "ProgressNotificationParamsSchema", "ProgressTokenSchema", "PromptSchema", "PromptArgumentSchema", "PromptListChangedNotificationSchema", "PromptMessageSchema", "PromptReferenceSchema", "ReadResourceRequestSchema", "ReadResourceRequestParamsSchema", "ReadResourceResultSchema", "RelatedTaskMetadataSchema", "RequestSchema", "RequestIdSchema", "RequestMetaSchema", "ResourceSchema", "ResourceContentsSchema", "ResourceLinkSchema", "ResourceListChangedNotificationSchema", "ResourceRequestParamsSchema", "ResourceTemplateSchema", "ResourceTemplateReferenceSchema", "ResourceUpdatedNotificationSchema", "ResourceUpdatedNotificationParamsSchema", "ResultMetaObjectSchema", "ResultSchema", "RoleSchema", "RootSchema", "RootsListChangedNotificationSchema", "SamplingContentSchema", "SamplingMessageSchema", "SamplingMessageContentBlockSchema", "ServerCapabilitiesSchema", "ServerNotificationSchema", "ServerRequestSchema", "ServerResultSchema", "SetLevelRequestSchema", "SetLevelRequestParamsSchema", "SingleSelectEnumSchemaSchema", "StringSchemaSchema", "SubscribeRequestSchema", "SubscribeRequestParamsSchema", "SubscriptionFilterSchema", "SubscriptionsAcknowledgedNotificationSchema", "SubscriptionsAcknowledgedNotificationParamsSchema", "SubscriptionsListenRequestSchema", "SubscriptionsListenRequestParamsSchema", "SubscriptionsListenResultSchema", "SubscriptionsListenResultMetaSchema", "TaskAugmentedRequestParamsSchema", "TaskCreationParamsSchema", "TaskMetadataSchema", "TaskSchema", "TaskStatusSchema", "TaskStatusNotificationSchema", "TaskStatusNotificationParamsSchema", "TextContentSchema", "TextResourceContentsSchema", "TitledMultiSelectEnumSchemaSchema", "TitledSingleSelectEnumSchemaSchema", "ToolSchema", "ToolAnnotationsSchema", "ToolChoiceSchema", "ToolExecutionSchema", "ToolListChangedNotificationSchema", "ToolResultContentSchema", "ToolUseContentSchema", "UnsubscribeRequestSchema", "UnsubscribeRequestParamsSchema", "UntitledMultiSelectEnumSchemaSchema", "UntitledSingleSelectEnumSchemaSchema" ]; var authSchemas = { IdJagTokenExchangeResponseSchema, OAuthClientInformationFullSchema, OAuthClientInformationSchema, OAuthClientMetadataSchema, OAuthClientRegistrationErrorSchema, OAuthErrorResponseSchema, OAuthMetadataSchema, OAuthProtectedResourceMetadataSchema, OAuthTokenRevocationRequestSchema, OAuthTokensSchema, OpenIdProviderDiscoveryMetadataSchema, OpenIdProviderMetadataSchema }; var _specTypeSchemas = {}; var _isSpecType = {}; function register(key, schema) { const name = key.slice(0, -6); _specTypeSchemas[name] = schema; _isSpecType[name] = (v) => schema.safeParse(v).success; } for (const key of SPEC_SCHEMA_KEYS) register(key, schemas_exports3[key]); for (const [key, schema] of Object.entries(authSchemas)) register(key, schema); var specTypeSchemas = Object.freeze(_specTypeSchemas); var isSpecType = Object.freeze(_isSpecType); function bootstrapOutboundCodec(method) { switch (method) { case "initialize": case "notifications/initialized": return codecForVersion(void 0); case "server/discover": return codecForVersion(MODERN_WIRE_REVISION); default: return; } } var DEFAULT_REQUEST_TIMEOUT_MSEC = 6e4; var RESERVED_ENVELOPE_META_KEYS = [ PROTOCOL_VERSION_META_KEY, CLIENT_INFO_META_KEY, CLIENT_CAPABILITIES_META_KEY, LOG_LEVEL_META_KEY ]; var RETRY_PARAMS_KEYS = ["inputResponses", "requestState"]; function liftWireOnlyMaterial(message, kind) { const params = message.params; if (!isPlainObject$1(params)) return { message, lifted: {} }; const meta3 = params._meta; const envelopeKeys = isPlainObject$1(meta3) ? RESERVED_ENVELOPE_META_KEYS.filter((key) => key in meta3) : []; const retryKeys = kind === "request" ? RETRY_PARAMS_KEYS.filter((key) => key in params) : []; if (envelopeKeys.length === 0 && retryKeys.length === 0) return { message, lifted: {} }; const lifted = {}; const nextParams = { ...params }; if (envelopeKeys.length > 0 && isPlainObject$1(meta3)) { const envelope = {}; const nextMeta = { ...meta3 }; for (const key of envelopeKeys) { envelope[key] = meta3[key]; delete nextMeta[key]; } lifted.envelope = envelope; if (Object.keys(nextMeta).length > 0) nextParams._meta = nextMeta; else delete nextParams._meta; } for (const key of retryKeys) { if (key === "inputResponses") lifted.inputResponses = nextParams[key]; if (key === "requestState") lifted.requestState = nextParams[key]; delete nextParams[key]; } return { message: { ...message, params: nextParams }, lifted }; } function codecResultValidator(codec2, method) { const probe = codec2.validateResult(method, void 0); if (!probe.ok && probe.reason === "not-in-era") return void 0; return { "~standard": { version: 1, vendor: "mcp-wire-codec", validate(value) { const outcome = codec2.validateResult(method, value); if (outcome.ok) return { value: outcome.value }; return { issues: [{ message: outcome.reason === "invalid" ? outcome.message : `not-in-era: ${method}` }] }; } } }; } function requestStateAccessor(value) { return () => value; } var NO_REQUEST_STATE = requestStateAccessor(void 0); function withRequestStateValue(ctx, value) { return { ...ctx, mcpReq: { ...ctx.mcpReq, requestState: requestStateAccessor(value) } }; } var writeNegotiatedProtocolVersion; function setNegotiatedProtocolVersion(instance, version3) { writeNegotiatedProtocolVersion(instance, version3); } var Protocol = class { _transport; _requestMessageId = 0; _requestHandlers = /* @__PURE__ */ new Map(); _requestHandlerAbortControllers = /* @__PURE__ */ new Map(); _notificationHandlers = /* @__PURE__ */ new Map(); _responseHandlers = /* @__PURE__ */ new Map(); _progressHandlers = /* @__PURE__ */ new Map(); _timeoutInfo = /* @__PURE__ */ new Map(); _pendingDebouncedNotifications = /* @__PURE__ */ new Set(); /** * The protocol version negotiated for the current connection (`undefined` * before negotiation completes), which determines the wire era this * instance speaks. Set by the SDK's negotiation and initialize paths * (`Client.connect`, `Server._oninitialize`). */ _negotiatedProtocolVersion; static { writeNegotiatedProtocolVersion = (instance, version3) => { instance._negotiatedProtocolVersion = version3; }; } _supportedProtocolVersions; /** * Callback for when the connection is closed for any reason. * * This is invoked when {@linkcode Protocol.close | close()} is called as well. */ onclose; /** * Callback for when an error occurs. * * Note that errors are not necessarily fatal; they are used for reporting any kind of exceptional condition out of band. */ onerror; /** * A handler to invoke for any request types that do not have their own handler installed. */ fallbackRequestHandler; /** * A handler to invoke for any notification types that do not have their own handler installed. */ fallbackNotificationHandler; constructor(_options) { this._options = _options; this._supportedProtocolVersions = _options?.supportedProtocolVersions ?? SUPPORTED_PROTOCOL_VERSIONS; this.setNotificationHandler("notifications/cancelled", (notification) => { this._oncancel(notification); }); this.setNotificationHandler("notifications/progress", (notification) => { this._onprogress(notification); }); this.setRequestHandler("ping", (_request) => ({})); } /** * Drop consult for inbound messages whose transport did not classify them * at the edge — long-lived channels such as stdio, where a role class may * need to decline traffic the negotiated era has no answer for (the * client-side inbound-request drop on modern-era connections: the * 2026-07-28 era has no server→client request channel, and on stdio the * client must never write JSON-RPC responses). * * Consulted ONLY when the transport supplied no * {@linkcode MessageExtraInfo.classification}: edge-classified traffic * never reaches the hook. Returning `'drop'` discards the message without * writing any response (requests are surfaced via `onerror`). The base * implementation returns `undefined`: unclassified traffic keeps today's * dispatch path unchanged. Era selection never happens here — era is * instance state, owned by the serving entry that constructed and * connected the instance. */ _shouldDropInbound(_message) { } /** * The per-request `_meta` envelope this instance attaches to every outgoing * request and notification, when one applies. The base implementation * returns `undefined` (no envelope — the 2025-era posture, so legacy-era * outbound traffic is byte-identical to a build without this seam). * `Client` overrides it on a connection that negotiated a modern (2026-07-28+) * era to return the reserved protocol-version / client-info / * client-capabilities keys. User-supplied `_meta` keys take precedence over * the auto-attached ones. */ _outboundMetaEnvelope() { } /** * Attach this instance's outbound `_meta` envelope (when one is configured) * to a request or notification. A no-op when the seam returns `undefined` * — the message returns by reference, so the legacy-era wire stays * byte-identical. User-supplied `_meta` keys are spread last so they win * over the auto-attached envelope keys. */ _envelopeOutbound(message) { const envelope = this._outboundMetaEnvelope(); if (envelope === void 0) return message; const params = message.params ?? {}; return { ...message, params: { ...params, _meta: { ...envelope, ...params._meta } } }; } /** * Extension point for non-`complete` decoded results in the response * funnel: a result the wire codec discriminated into a kind other than * `'complete'` or `'invalid'` is handed here for the role class to * resolve. The base default surfaces it as a typed * {@linkcode SdkErrorCode.UnsupportedResultType} error (no retry). * * Intended consumers (named so the seam stays accountable): * - the `Client`'s multi-round-trip auto-fulfilment engine, which fulfils * `'input_required'` results through the registered * elicitation/sampling/roots handlers and retries via `flow.retry`; * - a future client-side terminal-result handler for * `subscriptions/listen`, when the spec defines one. * * `Server` instances never receive `input_required` responses on their * outbound legs and leave the base behavior in place. */ _resolveNonCompleteResult(decoded, flow) { return Promise.reject(new SdkError(SdkErrorCode.UnsupportedResultType, `Unsupported result type '${decoded.kind}' for ${flow.request.method}`, { resultType: decoded.kind, method: flow.request.method })); } /** * Protected accessor for a registered request handler. Used by role * classes that dispatch synthesized requests through the same stored * handler chain (e.g. the `Client` fulfilling an embedded multi-round-trip * input request). */ _getRequestHandler(method) { return this._requestHandlers.get(method); } async _oncancel(notification) { if (!notification.params.requestId) return; this._requestHandlerAbortControllers.get(notification.params.requestId)?.abort(notification.params.reason); } _setupTimeout(messageId, timeout, maxTotalTimeout, onTimeout, resetTimeoutOnProgress = false) { this._timeoutInfo.set(messageId, { timeoutId: setTimeout(onTimeout, timeout), startTime: Date.now(), timeout, maxTotalTimeout, resetTimeoutOnProgress, onTimeout }); } _resetTimeout(messageId) { const info = this._timeoutInfo.get(messageId); if (!info) return false; const totalElapsed = Date.now() - info.startTime; if (info.maxTotalTimeout && totalElapsed >= info.maxTotalTimeout) { this._timeoutInfo.delete(messageId); throw new SdkError(SdkErrorCode.RequestTimeout, "Maximum total timeout exceeded", { maxTotalTimeout: info.maxTotalTimeout, totalElapsed }); } clearTimeout(info.timeoutId); info.timeoutId = setTimeout(info.onTimeout, info.timeout); return true; } _cleanupTimeout(messageId) { const info = this._timeoutInfo.get(messageId); if (info) { clearTimeout(info.timeoutId); this._timeoutInfo.delete(messageId); } } /** * Attaches to the given transport, starts it, and starts listening for messages. * * The caller assumes ownership of the {@linkcode Transport}, replacing any callbacks that have already been set, and expects that it is the only user of the {@linkcode Transport} instance going forward. */ async connect(transport) { this._transport = transport; const _onclose = this.transport?.onclose; this._transport.onclose = () => { try { _onclose?.(); } finally { this._onclose(); } }; const _onerror = this.transport?.onerror; this._transport.onerror = (error62) => { _onerror?.(error62); this._onerror(error62); }; const _onmessage = this._transport?.onmessage; this._transport.onmessage = (message, extra) => { _onmessage?.(message, extra); if (isJSONRPCResultResponse(message) || isJSONRPCErrorResponse(message)) this._onresponse(message); else if (isJSONRPCRequest(message)) this._onrequest(message, extra); else if (isJSONRPCNotification(message)) this._onnotification(message, extra); else this._onerror(/* @__PURE__ */ new Error(`Unknown message type: ${JSON.stringify(message)}`)); }; transport.setSupportedProtocolVersions?.(this._supportedProtocolVersions); await this._transport.start(); } /** * Transport-close hook. Subclass overrides MUST call `super._onclose()` * after their own cleanup — base teardown (response-handler settlement, * timeout clearing, in-flight request abort) does not run otherwise. */ _onclose() { const responseHandlers = this._responseHandlers; this._responseHandlers = /* @__PURE__ */ new Map(); this._progressHandlers.clear(); this._pendingDebouncedNotifications.clear(); for (const info of this._timeoutInfo.values()) clearTimeout(info.timeoutId); this._timeoutInfo.clear(); const requestHandlerAbortControllers = this._requestHandlerAbortControllers; this._requestHandlerAbortControllers = /* @__PURE__ */ new Map(); const error62 = new SdkError(SdkErrorCode.ConnectionClosed, "Connection closed"); this._transport = void 0; try { this.onclose?.(); } finally { for (const handler of responseHandlers.values()) handler(error62); for (const controller of requestHandlerAbortControllers.values()) controller.abort(error62); } } _onerror(error62) { this.onerror?.(error62); } /** * Inbound-notification dispatch. Subclass overrides MUST delegate * unmatched traffic to `super._onnotification(rawNotification, extra)` — * an override that consumes only what it owns and falls through to base * dispatch for everything else. */ _onnotification(rawNotification, extra) { const { message: notification } = liftWireOnlyMaterial(rawNotification, "notification"); const codec2 = this._negotiatedWireCodec(); if (extra?.classification === void 0 && this._shouldDropInbound(rawNotification) === "drop") return; if (extra?.classification !== void 0) { const classified = classifiedWireEra(extra.classification); if (classified !== codec2.era) { this._onerror(/* @__PURE__ */ new Error(`Era mismatch on inbound notification '${notification.method}': classified as ${classified} but this instance serves ${codec2.era}`)); return; } } if (isSpecNotificationMethod(notification.method) && !codec2.hasNotificationMethod(notification.method)) return; const handler = this._notificationHandlers.get(notification.method); const fallback = this.fallbackNotificationHandler; if (handler === void 0 && fallback === void 0) return; Promise.resolve().then(() => handler === void 0 ? fallback(notification) : handler(notification, codec2)).catch((error62) => this._onerror(/* @__PURE__ */ new Error(`Uncaught error in notification handler: ${error62}`))); } _onrequest(rawRequest, extra) { const { message: request, lifted } = liftWireOnlyMaterial(rawRequest, "request"); const codec2 = this._negotiatedWireCodec(); if (extra?.classification === void 0 && this._shouldDropInbound(rawRequest) === "drop") { this._onerror(/* @__PURE__ */ new Error(`Dropped inbound request '${rawRequest.method}': not servable on this connection's protocol era`)); return; } const capturedTransport = this._transport; const sendErrorResponse = (code, message, data) => { const errorResponse = { jsonrpc: "2.0", id: request.id, error: { code, message, ...data !== void 0 && { data } } }; capturedTransport?.send(errorResponse).catch((error62) => this._onerror(/* @__PURE__ */ new Error(`Failed to send an error response: ${error62}`))); }; if (extra?.classification !== void 0) { const classified = classifiedWireEra(extra.classification); if (classified !== codec2.era) { this._onerror(/* @__PURE__ */ new Error(`Era mismatch on inbound request '${request.method}': classified as ${classified} but this instance serves ${codec2.era}`)); const requested = extra.classification.revision ?? classified; sendErrorResponse(ProtocolErrorCode.UnsupportedProtocolVersion, `Unsupported protocol version: ${requested}`, { supported: this._supportedProtocolVersions, requested }); return; } } if (isSpecRequestMethod(request.method) && !codec2.hasRequestMethod(request.method)) { sendErrorResponse(ProtocolErrorCode.MethodNotFound, "Method not found"); return; } const handler = this._requestHandlers.get(request.method) ?? this.fallbackRequestHandler; if (handler === void 0) { sendErrorResponse(ProtocolErrorCode.MethodNotFound, "Method not found"); return; } const envelopeError = codec2.checkInboundEnvelope(lifted); if (envelopeError !== void 0) { sendErrorResponse(ProtocolErrorCode.InvalidParams, envelopeError); return; } const sendNotification = (notification, options) => this._notificationViaCodec(this._resolveOutboundCodec(notification.method), notification, { ...options, relatedRequestId: request.id }); const sendRequest = (r, resultSchema, options) => this._requestWithSchemaViaCodec(this._resolveOutboundCodec(r.method), r, resultSchema, { ...options, relatedRequestId: request.id }); const abortController = new AbortController(); this._requestHandlerAbortControllers.set(request.id, abortController); const partitionedInputResponses = lifted.inputResponses === void 0 ? void 0 : partitionInputResponses(lifted.inputResponses); const baseCtx = { sessionId: capturedTransport?.sessionId, mcpReq: { id: request.id, method: request.method, _meta: request.params?._meta, ...lifted.envelope !== void 0 && { envelope: lifted.envelope }, ...partitionedInputResponses !== void 0 && { inputResponses: partitionedInputResponses.accepted }, ...partitionedInputResponses !== void 0 && partitionedInputResponses.droppedKeys.length > 0 && { droppedInputResponseKeys: partitionedInputResponses.droppedKeys }, requestState: lifted.requestState === void 0 ? NO_REQUEST_STATE : requestStateAccessor(lifted.requestState), signal: abortController.signal, send: ((r, schemaOrOptions, maybeOptions) => { const sendCodec = this._resolveOutboundCodec(r.method); this._assertOutboundRequestInEra(sendCodec, r.method); if (isStandardSchema(schemaOrOptions)) return sendRequest(r, schemaOrOptions, maybeOptions); const validate3 = codecResultValidator(sendCodec, r.method); if (validate3 === void 0) throw new TypeError(`'${r.method}' is not a spec method; pass a result schema as the second argument to ctx.mcpReq.send().`); return sendRequest(r, validate3, schemaOrOptions); }), notify: sendNotification }, http: extra?.authInfo ? { authInfo: extra.authInfo } : void 0 }; const ctx = this.buildContext(baseCtx, extra); Promise.resolve().then(() => handler(request, ctx)).then(async (result) => { if (abortController.signal.aborted) return; let encoded; try { encoded = codec2.encodeResult(request.method, result, this._outboundServerInfo()); } catch (error62) { this._onerror(/* @__PURE__ */ new Error(`Failed to encode result for ${request.method}: ${error62}`)); sendErrorResponse(ProtocolErrorCode.InternalError, "Internal error"); return; } const response = { result: encoded, jsonrpc: "2.0", id: request.id }; await capturedTransport?.send(response); }, async (error62) => { if (abortController.signal.aborted) return; const thrownCode = Number.isSafeInteger(error62["code"]) ? error62["code"] : ProtocolErrorCode.InternalError; const errorResponse = { jsonrpc: "2.0", id: request.id, error: { code: codec2.encodeErrorCode(thrownCode), message: error62.message ?? "Internal error", ...error62["data"] !== void 0 && { data: error62["data"] } } }; await capturedTransport?.send(errorResponse); }).catch((error62) => this._onerror(/* @__PURE__ */ new Error(`Failed to send response: ${error62}`))).finally(() => { if (this._requestHandlerAbortControllers.get(request.id) === abortController) this._requestHandlerAbortControllers.delete(request.id); }); } _onprogress(notification) { const { progressToken, ...params } = notification.params; const messageId = Number(progressToken); const handler = this._progressHandlers.get(messageId); if (!handler) { this._onerror(/* @__PURE__ */ new Error(`Received a progress notification for an unknown token: ${JSON.stringify(notification)}`)); return; } const responseHandler = this._responseHandlers.get(messageId); const timeoutInfo = this._timeoutInfo.get(messageId); if (timeoutInfo && responseHandler && timeoutInfo.resetTimeoutOnProgress) try { this._resetTimeout(messageId); } catch (error62) { this._responseHandlers.delete(messageId); this._progressHandlers.delete(messageId); this._cleanupTimeout(messageId); responseHandler(error62); return; } handler(params); } /** * Inbound-response dispatch. Subclass overrides MUST delegate unmatched * traffic to `super._onresponse(response)` — an override that consumes * only what it owns and falls through to base dispatch for everything * else. */ _onresponse(response) { const messageId = Number(response.id); const handler = this._responseHandlers.get(messageId); if (handler === void 0) { this._onerror(/* @__PURE__ */ new Error(`Received a response for an unknown message ID: ${JSON.stringify(response)}`)); return; } this._responseHandlers.delete(messageId); this._cleanupTimeout(messageId); this._progressHandlers.delete(messageId); if (isJSONRPCResultResponse(response)) handler(response); else handler(ProtocolError.fromError(response.error.code, response.error.message, response.error.data)); } get transport() { return this._transport; } /** * Closes the connection. */ async close() { await this._transport?.close(); } request(request, schemaOrOptions, maybeOptions) { const codec2 = this._resolveOutboundCodec(request.method); this._assertOutboundRequestInEra(codec2, request.method); if (isStandardSchema(schemaOrOptions)) return this._requestWithSchemaViaCodec(codec2, request, schemaOrOptions, maybeOptions); const validate3 = codecResultValidator(codec2, request.method); if (validate3 === void 0) throw new TypeError(`'${request.method}' is not a spec method; pass a result schema as the second argument to request().`); return this._requestWithSchemaViaCodec(codec2, request, validate3, schemaOrOptions); } /** * The wire codec for this instance's negotiated era — the phase-2 truth: * everything an established connection sends and receives resolves * through it. Legacy until a version has been negotiated. */ _negotiatedWireCodec() { return codecForVersion(this._negotiatedProtocolVersion); } /** * Protected accessor for the instance's negotiated wire codec, for role * classes (Client/Server/McpServer) routing era-dependent behavior * through the codec's function-only surface — `samplingResultVariant`, * `outboundEnvelope`, `projectCallToolResult` — instead of branching on * the protocol version themselves. */ _wireCodec() { return this._negotiatedWireCodec(); } /** * Outbound codec resolution: while the negotiated version is still unset * (the negotiation window), lifecycle messages are bootstrap-pinned BY * METHOD — they self-identify their era (`initialize` IS the legacy * handshake, `server/discover` IS the modern probe). Once a version has * been negotiated, the instance era is authoritative for everything — a * negotiated session never re-routes a method onto the other era. */ _resolveOutboundCodec(method) { if (this._negotiatedProtocolVersion === void 0) { const pinned = bootstrapOutboundCodec(method); if (pinned) return pinned; } return this._negotiatedWireCodec(); } /** * Era gate for outbound requests — deletions are physical in BOTH * directions: sending a spec method that the resolved era does not define * dies locally with a typed error before anything reaches the transport. * Methods outside the spec universe are consumer-owned extension methods * and stay era-blind. */ _assertOutboundRequestInEra(codec2, method) { if (isSpecRequestMethod(method) && !codec2.hasRequestMethod(method)) throw new SdkError(SdkErrorCode.MethodNotSupportedByProtocolVersion, `Method '${method}' is not supported by the negotiated protocol version (wire era ${codec2.era})`, { method, era: codec2.era }); } /** * Sends a request and waits for a response, using the provided schema for * validation instead of the era registry's method-keyed entry. * * This is the internal implementation used by SDK methods whose result * schema cannot be expressed as a method-keyed registry entry — the one * surviving case is `server.createMessage`, whose result schema depends * on the REQUEST params (tools vs no tools) — and by callers passing * explicit compatibility schemas. Spec methods are still era-gated here: * an explicit schema never smuggles a deleted method onto the wire. */ _requestWithSchema(request, resultSchema, options) { const codec2 = this._resolveOutboundCodec(request.method); this._assertOutboundRequestInEra(codec2, request.method); return this._requestWithSchemaViaCodec(codec2, request, resultSchema, options); } /** * The request funnel proper, keyed by the resolved era codec: the codec * owns result decoding (raw-first `resultType` discrimination — V-1 — * and the era's lift posture) before the schema validation step. */ _requestWithSchemaViaCodec(codec2, request, resultSchema, options) { const { relatedRequestId, resumptionToken, onresumptiontoken, headers } = options ?? {}; const flowStartedAt = Date.now(); let onAbort; let cleanupMessageId; return new Promise((resolve2, reject) => { const earlyReject = (error62) => { reject(error62); }; if (!this._transport) { earlyReject(/* @__PURE__ */ new Error("Not connected")); return; } if (this._options?.enforceStrictCapabilities === true) try { this.assertCapabilityForMethod(request.method); } catch (error62) { earlyReject(error62); return; } if (options?.signal?.aborted) { const reason = options.signal.reason; throw reason instanceof SdkError ? reason : new SdkError(SdkErrorCode.RequestTimeout, String(reason)); } const requestAbort = codec2.era === MODERN_WIRE_REVISION && this._transport.hasPerRequestStream === true ? new AbortController() : void 0; const messageId = this._requestMessageId++; cleanupMessageId = messageId; const jsonrpcRequest = { ...request, jsonrpc: "2.0", id: messageId }; if (options?.onprogress) { this._progressHandlers.set(messageId, options.onprogress); jsonrpcRequest.params = { ...request.params, _meta: { ...request.params?._meta, progressToken: messageId } }; } const outbound = this._envelopeOutbound(jsonrpcRequest); let responseReceived = false; const cancel = (reason) => { if (responseReceived) return; this._progressHandlers.delete(messageId); if (requestAbort === void 0) this._transport?.send(this._envelopeOutbound({ jsonrpc: "2.0", method: "notifications/cancelled", params: { requestId: messageId, reason: String(reason) } }), { relatedRequestId, resumptionToken, onresumptiontoken }).catch((error62) => this._onerror(/* @__PURE__ */ new Error(`Failed to send cancellation: ${error62}`))); else requestAbort.abort(); reject(reason instanceof SdkError ? reason : new SdkError(SdkErrorCode.RequestTimeout, String(reason))); }; this._responseHandlers.set(messageId, (response) => { if (options?.signal?.aborted) return; responseReceived = true; if (response instanceof Error) return reject(response); let decoded; try { decoded = codec2.decodeResult(request.method, response.result); } catch (error62) { return reject(error62 instanceof Error ? error62 : new Error(String(error62))); } if (decoded.kind === "invalid") return reject(decoded.error); if (decoded.kind === "input_required") { if (options?.allowInputRequired === true) return resolve2(manualInputRequiredValue(decoded)); const flow = { codec: codec2, request, resultSchema, options, flowStartedAt, retry: (params, legOptions) => this._requestWithSchemaViaCodec(codec2, params === void 0 ? { method: request.method } : { method: request.method, params }, resultSchema, legOptions) }; return resolve2(this._resolveNonCompleteResult(decoded, flow)); } const result = decoded.result; validateStandardSchema(resultSchema, result).then((parseResult) => { if (parseResult.success) resolve2(parseResult.data); else reject(new SdkError(SdkErrorCode.InvalidResult, `Invalid result for ${request.method}: ${parseResult.error}`)); }, reject); }); onAbort = () => cancel(options?.signal?.reason); options?.signal?.addEventListener("abort", onAbort, { once: true }); const timeout = options?.timeout ?? DEFAULT_REQUEST_TIMEOUT_MSEC; const timeoutHandler = () => cancel(new SdkError(SdkErrorCode.RequestTimeout, "Request timed out", { timeout })); this._setupTimeout(messageId, timeout, options?.maxTotalTimeout, timeoutHandler, options?.resetTimeoutOnProgress ?? false); this._transport.send(outbound, { relatedRequestId, resumptionToken, onresumptiontoken, headers, requestSignal: requestAbort?.signal }).catch((error62) => { this._progressHandlers.delete(messageId); reject(error62); }); }).finally(() => { if (onAbort) options?.signal?.removeEventListener("abort", onAbort); if (cleanupMessageId !== void 0) { this._responseHandlers.delete(cleanupMessageId); this._cleanupTimeout(cleanupMessageId); } }); } /** * Emits a notification, which is a one-way message that does not expect a response. */ async notification(notification, options) { return this._notificationViaCodec(this._resolveOutboundCodec(notification.method), notification, options); } /** * The notification funnel proper, keyed by the resolved era codec — * direct sends and related notifications (`ctx.mcpReq.notify`) alike * resolve through the instance's negotiated era at send time. */ async _notificationViaCodec(codec2, notification, options) { if (!this._transport) throw new SdkError(SdkErrorCode.NotConnected, "Not connected"); if (isSpecNotificationMethod(notification.method) && !codec2.hasNotificationMethod(notification.method)) throw new SdkError(SdkErrorCode.MethodNotSupportedByProtocolVersion, `Notification '${notification.method}' is not supported by the negotiated protocol version (wire era ${codec2.era})`, { method: notification.method, era: codec2.era }); this.assertNotificationCapability(notification.method); const jsonrpcNotification = this._envelopeOutbound({ jsonrpc: "2.0", ...notification }); if ((this._options?.debouncedNotificationMethods ?? []).includes(notification.method) && !notification.params && !options?.relatedRequestId) { if (this._pendingDebouncedNotifications.has(notification.method)) return; this._pendingDebouncedNotifications.add(notification.method); Promise.resolve().then(() => { this._pendingDebouncedNotifications.delete(notification.method); if (!this._transport) return; this._transport?.send(jsonrpcNotification, options).catch((error62) => this._onerror(error62)); }); return; } await this._transport.send(jsonrpcNotification, options); } setRequestHandler(method, schemasOrHandler, maybeHandler) { this.assertRequestHandlerCapability(method); let stored; if (typeof schemasOrHandler === "function") { if (!isSpecRequestMethod(method)) throw new TypeError(`'${method}' is not a spec request method; pass schemas as the second argument to setRequestHandler().`); stored = (request, ctx) => { const dispatchCodec = this._negotiatedWireCodec(); let outcome = dispatchCodec.validateRequest(method, request); if (!outcome.ok && outcome.reason === "not-in-era") outcome = dispatchCodec.validateInputRequest(method, request); if (!outcome.ok) { if (outcome.reason === "not-in-era") throw new ProtocolError(ProtocolErrorCode.InternalError, `No wire schema for ${method} in the resolved era`); throw new Error(outcome.message); } return Promise.resolve(schemasOrHandler(outcome.value, ctx)); }; } else if (maybeHandler) stored = async (request, ctx) => { const parsed = await validateStandardSchema(schemasOrHandler.params, { ...request.params }); if (!parsed.success) throw new ProtocolError(ProtocolErrorCode.InvalidParams, `Invalid params for ${method}: ${parsed.error}`); return maybeHandler(parsed.data, ctx); }; else throw new TypeError("setRequestHandler: handler is required"); this._requestHandlers.set(method, this._wrapHandler(method, stored)); } /** * Hook for subclasses to wrap a registered request handler with role-specific * validation or behavior (e.g. `Server` validates `tools/call` results, `Client` * validates `elicitation/create` mode and result). Runs for both the 2-arg and * 3-arg registration paths. The default implementation is identity. * * Subclasses overriding this hook avoid redeclaring `setRequestHandler`'s overload set. */ _wrapHandler(_method, handler) { return handler; } /** * Hook for subclasses to supply the implementation identity the 2026-era * encode seam stamps into outbound result `_meta` under * `io.modelcontextprotocol/serverInfo` (spec PR #3002: servers SHOULD * identify themselves on every response). The default is `undefined` — no * stamp. Only `Server` overrides this: the key identifies the software * producing a response, and the 2025-era codec never stamps anything * regardless (the never-stamp guarantee). */ _outboundServerInfo() { } /** * Removes the request handler for the given method. */ removeRequestHandler(method) { this._requestHandlers.delete(method); } /** * Asserts that a request handler has not already been set for the given method, in preparation for a new one being automatically installed. */ assertCanSetRequestHandler(method) { if (this._requestHandlers.has(method)) throw new Error(`A request handler for ${method} already exists, which would be overridden`); } setNotificationHandler(method, schemasOrHandler, maybeHandler) { if (typeof schemasOrHandler === "function") { if (!isSpecNotificationMethod(method)) throw new TypeError(`'${method}' is not a spec notification method; pass schemas as the second argument to setNotificationHandler().`); this._notificationHandlers.set(method, (notification, codec2) => { const outcome = codec2.validateNotification(method, notification); if (!outcome.ok) { if (outcome.reason === "not-in-era") throw new ProtocolError(ProtocolErrorCode.InternalError, `No wire schema for ${method} in the resolved era`); throw new Error(outcome.message); } return Promise.resolve(schemasOrHandler(outcome.value)); }); return; } if (!maybeHandler) throw new TypeError("setNotificationHandler: handler is required"); this._notificationHandlers.set(method, async (notification) => { const parsed = await validateStandardSchema(schemasOrHandler.params, { ...notification.params }); if (!parsed.success) throw new ProtocolError(ProtocolErrorCode.InvalidParams, `Invalid params for notification ${method}: ${parsed.error}`); await maybeHandler(parsed.data, notification); }); } /** * Removes the notification handler for the given method. */ removeNotificationHandler(method) { this._notificationHandlers.delete(method); } }; function isPlainObject$1(value) { return value !== null && typeof value === "object" && !Array.isArray(value); } function mergeCapabilities(base, additional) { const result = { ...base }; for (const key in additional) { const k = key; const addValue = additional[k]; if (addValue === void 0) continue; const baseValue = result[k]; result[k] = isPlainObject$1(baseValue) && isPlainObject$1(addValue) ? { ...baseValue, ...addValue } : addValue; } return result; } function isPlainObject2(value) { return typeof value === "object" && value !== null && !Array.isArray(value); } function partitionInputResponses(inputResponses) { const accepted = {}; const droppedKeys = []; if (!isPlainObject2(inputResponses)) return { accepted, droppedKeys }; for (const [key, entry] of Object.entries(inputResponses)) { if (!isPlainObject2(entry) || "method" in entry || "result" in entry) { droppedKeys.push(key); continue; } accepted[key] = entry; } return { accepted, droppedKeys }; } function manualInputRequiredValue(decoded) { return { resultType: "input_required", inputRequests: decoded.inputRequests, ...decoded.requestState !== void 0 && { requestState: decoded.requestState } }; } var require_content_type = /* @__PURE__ */ __commonJSMin(((exports) => { var PARAM_REGEXP = /; *([!#$%&'*+.^_`|~0-9A-Za-z-]+) *= *("(?:[\u000b\u0020\u0021\u0023-\u005b\u005d-\u007e\u0080-\u00ff]|\\[\u000b\u0020-\u00ff])*"|[!#$%&'*+.^_`|~0-9A-Za-z-]+) */g; var QESC_REGEXP = /\\([\u000b\u0020-\u00ff])/g; var TYPE_REGEXP = /^[!#$%&'*+.^_`|~0-9A-Za-z-]+\/[!#$%&'*+.^_`|~0-9A-Za-z-]+$/; exports.parse = parse3; function parse3(string4) { if (!string4) throw new TypeError("argument string is required"); var header = typeof string4 === "object" ? getcontenttype(string4) : string4; if (typeof header !== "string") throw new TypeError("argument string is required to be a string"); var index = header.indexOf(";"); var type = index !== -1 ? header.slice(0, index).trim() : header.trim(); if (!TYPE_REGEXP.test(type)) throw new TypeError("invalid media type"); var obj = new ContentType(type.toLowerCase()); if (index !== -1) { var key; var match; var value; PARAM_REGEXP.lastIndex = index; while (match = PARAM_REGEXP.exec(header)) { if (match.index !== index) throw new TypeError("invalid parameter format"); index += match[0].length; key = match[1].toLowerCase(); value = match[2]; if (value.charCodeAt(0) === 34) { value = value.slice(1, -1); if (value.indexOf("\\") !== -1) value = value.replace(QESC_REGEXP, "$1"); } obj.parameters[key] = value; } if (index !== header.length) throw new TypeError("invalid parameter format"); } return obj; } function getcontenttype(obj) { var header; if (typeof obj.getHeader === "function") header = obj.getHeader("content-type"); else if (typeof obj.headers === "object") header = obj.headers && obj.headers["content-type"]; if (typeof header !== "string") throw new TypeError("content-type header is missing from object"); return header; } function ContentType(type) { this.parameters = /* @__PURE__ */ Object.create(null); this.type = type; } })); var import_content_type = /* @__PURE__ */ __toESM(require_content_type(), 1); var STDIO_DEFAULT_MAX_BUFFER_SIZE = 10 * 1024 * 1024; var ReadBuffer = class { _buffer; _maxBufferSize; constructor(options) { this._maxBufferSize = options?.maxBufferSize ?? STDIO_DEFAULT_MAX_BUFFER_SIZE; } append(chunk) { if ((this._buffer?.length ?? 0) + chunk.length > this._maxBufferSize) { this.clear(); throw new Error(`ReadBuffer exceeded maximum size of ${this._maxBufferSize} bytes`); } this._buffer = this._buffer ? Buffer.concat([this._buffer, chunk]) : chunk; } readMessage() { while (this._buffer) { const index = this._buffer.indexOf("\n"); if (index === -1) return null; const line = this._buffer.toString("utf8", 0, index).replace(/\r$/, ""); this._buffer = this._buffer.subarray(index + 1); try { return deserializeMessage(line); } catch (error62) { if (error62 instanceof SyntaxError) continue; throw error62; } } return null; } clear() { this._buffer = void 0; } }; function deserializeMessage(line) { return JSONRPCMessageSchema.parse(JSON.parse(line)); } function serializeMessage(message) { return JSON.stringify(message) + "\n"; } var TOOL_NAME_REGEX = /^[A-Za-z0-9._-]{1,128}$/; function validateToolName(name) { const warnings = []; if (name.length === 0) return { isValid: false, warnings: ["Tool name cannot be empty"] }; if (name.length > 128) return { isValid: false, warnings: [`Tool name exceeds maximum length of 128 characters (current: ${name.length})`] }; if (name.includes(" ")) warnings.push("Tool name contains spaces, which may cause parsing issues"); if (name.includes(",")) warnings.push("Tool name contains commas, which may cause parsing issues"); if (name.startsWith("-") || name.endsWith("-")) warnings.push("Tool name starts or ends with a dash, which may cause parsing issues in some contexts"); if (name.startsWith(".") || name.endsWith(".")) warnings.push("Tool name starts or ends with a dot, which may cause parsing issues in some contexts"); if (!TOOL_NAME_REGEX.test(name)) { const invalidChars = [...name].filter((char) => !/[A-Za-z0-9._-]/.test(char)).filter((char, index, arr) => arr.indexOf(char) === index); warnings.push(`Tool name contains invalid characters: ${invalidChars.map((c) => `"${c}"`).join(", ")}`, "Allowed characters are: A-Z, a-z, 0-9, underscore (_), dash (-), and dot (.)"); return { isValid: false, warnings }; } return { isValid: true, warnings }; } function issueToolNameWarning(name, warnings) { if (warnings.length > 0) { console.warn(`Tool name validation warning for "${name}":`); for (const warning of warnings) console.warn(` - ${warning}`); console.warn("Tool registration will proceed, but this may cause compatibility issues."); console.warn("Consider updating the tool name to conform to the MCP tool naming standard."); console.warn("See SEP: Specify Format for Tool Names (https://github.com/modelcontextprotocol/modelcontextprotocol/issues/986) for more details."); } } function validateAndWarnToolName(name) { const result = validateToolName(name); issueToolNameWarning(name, result.warnings); return result.isValid; } function isZodV4Schema(v) { return typeof v === "object" && v !== null && "_zod" in v; } function looksLikeZodV3(v) { return typeof v === "object" && v !== null && !("_zod" in v) && "_def" in v && typeof v._def?.typeName === "string"; } function isZodRawShape(obj) { if (typeof obj !== "object" || obj === null) return false; if (isStandardSchema(obj)) return false; const proto = Object.getPrototypeOf(obj); if (proto !== Object.prototype && proto !== null) return false; return Object.values(obj).every((v) => isZodV4Schema(v)); } function normalizeRawShapeSchema(schema) { if (schema === void 0) return void 0; if (isZodRawShape(schema)) return object(schema); if (typeof schema === "object" && schema !== null && !isStandardSchema(schema) && Object.values(schema).some((v) => looksLikeZodV3(v))) throw new TypeError("Raw-shape inputSchema/outputSchema/argsSchema fields must be Zod v4 schemas. Got a Zod v3 field schema. Import from `zod/v4` (or upgrade your zod import), or wrap with `z.object({...})` yourself."); if (!isStandardSchema(schema)) throw new TypeError("inputSchema/outputSchema/argsSchema must be a Standard Schema (e.g. z.object({...})) or a raw Zod shape ({ field: z.string() })."); return schema; } // ../../../../node_modules/@modelcontextprotocol/server/dist/ajvProvider-CEoC__sr.mjs var require_code$1 = /* @__PURE__ */ __commonJSMin(((exports) => { Object.defineProperty(exports, "__esModule", { value: true }); exports.regexpCode = exports.getEsmExportName = exports.getProperty = exports.safeStringify = exports.stringify = exports.strConcat = exports.addCodeArg = exports.str = exports._ = exports.nil = exports._Code = exports.Name = exports.IDENTIFIER = exports._CodeOrName = void 0; var _CodeOrName = class { }; exports._CodeOrName = _CodeOrName; exports.IDENTIFIER = /^[a-z$_][a-z$_0-9]*$/i; var Name = class extends _CodeOrName { constructor(s) { super(); if (!exports.IDENTIFIER.test(s)) throw new Error("CodeGen: name must be a valid identifier"); this.str = s; } toString() { return this.str; } emptyStr() { return false; } get names() { return { [this.str]: 1 }; } }; exports.Name = Name; var _Code = class extends _CodeOrName { constructor(code) { super(); this._items = typeof code === "string" ? [code] : code; } toString() { return this.str; } emptyStr() { if (this._items.length > 1) return false; const item = this._items[0]; return item === "" || item === '""'; } get str() { var _a3; return (_a3 = this._str) !== null && _a3 !== void 0 ? _a3 : this._str = this._items.reduce((s, c) => `${s}${c}`, ""); } get names() { var _a3; return (_a3 = this._names) !== null && _a3 !== void 0 ? _a3 : this._names = this._items.reduce((names, c) => { if (c instanceof Name) names[c.str] = (names[c.str] || 0) + 1; return names; }, {}); } }; exports._Code = _Code; exports.nil = new _Code(""); function _(strs, ...args) { const code = [strs[0]]; let i = 0; while (i < args.length) { addCodeArg(code, args[i]); code.push(strs[++i]); } return new _Code(code); } exports._ = _; const plus = new _Code("+"); function str(strs, ...args) { const expr = [safeStringify(strs[0])]; let i = 0; while (i < args.length) { expr.push(plus); addCodeArg(expr, args[i]); expr.push(plus, safeStringify(strs[++i])); } optimize(expr); return new _Code(expr); } exports.str = str; function addCodeArg(code, arg) { if (arg instanceof _Code) code.push(...arg._items); else if (arg instanceof Name) code.push(arg); else code.push(interpolate(arg)); } exports.addCodeArg = addCodeArg; function optimize(expr) { let i = 1; while (i < expr.length - 1) { if (expr[i] === plus) { const res = mergeExprItems(expr[i - 1], expr[i + 1]); if (res !== void 0) { expr.splice(i - 1, 3, res); continue; } expr[i++] = "+"; } i++; } } function mergeExprItems(a, b) { if (b === '""') return a; if (a === '""') return b; if (typeof a == "string") { if (b instanceof Name || a[a.length - 1] !== '"') return; if (typeof b != "string") return `${a.slice(0, -1)}${b}"`; if (b[0] === '"') return a.slice(0, -1) + b.slice(1); return; } if (typeof b == "string" && b[0] === '"' && !(a instanceof Name)) return `"${a}${b.slice(1)}`; } function strConcat(c1, c2) { return c2.emptyStr() ? c1 : c1.emptyStr() ? c2 : str`${c1}${c2}`; } exports.strConcat = strConcat; function interpolate(x) { return typeof x == "number" || typeof x == "boolean" || x === null ? x : safeStringify(Array.isArray(x) ? x.join(",") : x); } function stringify(x) { return new _Code(safeStringify(x)); } exports.stringify = stringify; function safeStringify(x) { return JSON.stringify(x).replace(/\u2028/g, "\\u2028").replace(/\u2029/g, "\\u2029"); } exports.safeStringify = safeStringify; function getProperty(key) { return typeof key == "string" && exports.IDENTIFIER.test(key) ? new _Code(`.${key}`) : _`[${key}]`; } exports.getProperty = getProperty; function getEsmExportName(key) { if (typeof key == "string" && exports.IDENTIFIER.test(key)) return new _Code(`${key}`); throw new Error(`CodeGen: invalid export name: ${key}, use explicit $id name mapping`); } exports.getEsmExportName = getEsmExportName; function regexpCode(rx) { return new _Code(rx.toString()); } exports.regexpCode = regexpCode; })); var require_scope = /* @__PURE__ */ __commonJSMin(((exports) => { Object.defineProperty(exports, "__esModule", { value: true }); exports.ValueScope = exports.ValueScopeName = exports.Scope = exports.varKinds = exports.UsedValueState = void 0; const code_1 = require_code$1(); var ValueError = class extends Error { constructor(name) { super(`CodeGen: "code" for ${name} not defined`); this.value = name.value; } }; var UsedValueState; (function(UsedValueState2) { UsedValueState2[UsedValueState2["Started"] = 0] = "Started"; UsedValueState2[UsedValueState2["Completed"] = 1] = "Completed"; })(UsedValueState || (exports.UsedValueState = UsedValueState = {})); exports.varKinds = { const: new code_1.Name("const"), let: new code_1.Name("let"), var: new code_1.Name("var") }; var Scope2 = class { constructor({ prefixes, parent } = {}) { this._names = {}; this._prefixes = prefixes; this._parent = parent; } toName(nameOrPrefix) { return nameOrPrefix instanceof code_1.Name ? nameOrPrefix : this.name(nameOrPrefix); } name(prefix) { return new code_1.Name(this._newName(prefix)); } _newName(prefix) { const ng = this._names[prefix] || this._nameGroup(prefix); return `${prefix}${ng.index++}`; } _nameGroup(prefix) { var _a3, _b; if (((_b = (_a3 = this._parent) === null || _a3 === void 0 ? void 0 : _a3._prefixes) === null || _b === void 0 ? void 0 : _b.has(prefix)) || this._prefixes && !this._prefixes.has(prefix)) throw new Error(`CodeGen: prefix "${prefix}" is not allowed in this scope`); return this._names[prefix] = { prefix, index: 0 }; } }; exports.Scope = Scope2; var ValueScopeName = class extends code_1.Name { constructor(prefix, nameStr) { super(nameStr); this.prefix = prefix; } setValue(value, { property, itemIndex }) { this.value = value; this.scopePath = (0, code_1._)`.${new code_1.Name(property)}[${itemIndex}]`; } }; exports.ValueScopeName = ValueScopeName; const line = (0, code_1._)`\n`; var ValueScope = class extends Scope2 { constructor(opts) { super(opts); this._values = {}; this._scope = opts.scope; this.opts = { ...opts, _n: opts.lines ? line : code_1.nil }; } get() { return this._scope; } name(prefix) { return new ValueScopeName(prefix, this._newName(prefix)); } value(nameOrPrefix, value) { var _a3; if (value.ref === void 0) throw new Error("CodeGen: ref must be passed in value"); const name = this.toName(nameOrPrefix); const { prefix } = name; const valueKey = (_a3 = value.key) !== null && _a3 !== void 0 ? _a3 : value.ref; let vs = this._values[prefix]; if (vs) { const _name = vs.get(valueKey); if (_name) return _name; } else vs = this._values[prefix] = /* @__PURE__ */ new Map(); vs.set(valueKey, name); const s = this._scope[prefix] || (this._scope[prefix] = []); const itemIndex = s.length; s[itemIndex] = value.ref; name.setValue(value, { property: prefix, itemIndex }); return name; } getValue(prefix, keyOrRef) { const vs = this._values[prefix]; if (!vs) return; return vs.get(keyOrRef); } scopeRefs(scopeName, values = this._values) { return this._reduceValues(values, (name) => { if (name.scopePath === void 0) throw new Error(`CodeGen: name "${name}" has no value`); return (0, code_1._)`${scopeName}${name.scopePath}`; }); } scopeCode(values = this._values, usedValues, getCode) { return this._reduceValues(values, (name) => { if (name.value === void 0) throw new Error(`CodeGen: name "${name}" has no value`); return name.value.code; }, usedValues, getCode); } _reduceValues(values, valueCode, usedValues = {}, getCode) { let code = code_1.nil; for (const prefix in values) { const vs = values[prefix]; if (!vs) continue; const nameSet = usedValues[prefix] = usedValues[prefix] || /* @__PURE__ */ new Map(); vs.forEach((name) => { if (nameSet.has(name)) return; nameSet.set(name, UsedValueState.Started); let c = valueCode(name); if (c) { const def = this.opts.es5 ? exports.varKinds.var : exports.varKinds.const; code = (0, code_1._)`${code}${def} ${name} = ${c};${this.opts._n}`; } else if (c = getCode === null || getCode === void 0 ? void 0 : getCode(name)) code = (0, code_1._)`${code}${c}${this.opts._n}`; else throw new ValueError(name); nameSet.set(name, UsedValueState.Completed); }); } return code; } }; exports.ValueScope = ValueScope; })); var require_codegen = /* @__PURE__ */ __commonJSMin(((exports) => { Object.defineProperty(exports, "__esModule", { value: true }); exports.or = exports.and = exports.not = exports.CodeGen = exports.operators = exports.varKinds = exports.ValueScopeName = exports.ValueScope = exports.Scope = exports.Name = exports.regexpCode = exports.stringify = exports.getProperty = exports.nil = exports.strConcat = exports.str = exports._ = void 0; const code_1 = require_code$1(); const scope_1 = require_scope(); var code_2 = require_code$1(); Object.defineProperty(exports, "_", { enumerable: true, get: function() { return code_2._; } }); Object.defineProperty(exports, "str", { enumerable: true, get: function() { return code_2.str; } }); Object.defineProperty(exports, "strConcat", { enumerable: true, get: function() { return code_2.strConcat; } }); Object.defineProperty(exports, "nil", { enumerable: true, get: function() { return code_2.nil; } }); Object.defineProperty(exports, "getProperty", { enumerable: true, get: function() { return code_2.getProperty; } }); Object.defineProperty(exports, "stringify", { enumerable: true, get: function() { return code_2.stringify; } }); Object.defineProperty(exports, "regexpCode", { enumerable: true, get: function() { return code_2.regexpCode; } }); Object.defineProperty(exports, "Name", { enumerable: true, get: function() { return code_2.Name; } }); var scope_2 = require_scope(); Object.defineProperty(exports, "Scope", { enumerable: true, get: function() { return scope_2.Scope; } }); Object.defineProperty(exports, "ValueScope", { enumerable: true, get: function() { return scope_2.ValueScope; } }); Object.defineProperty(exports, "ValueScopeName", { enumerable: true, get: function() { return scope_2.ValueScopeName; } }); Object.defineProperty(exports, "varKinds", { enumerable: true, get: function() { return scope_2.varKinds; } }); exports.operators = { GT: new code_1._Code(">"), GTE: new code_1._Code(">="), LT: new code_1._Code("<"), LTE: new code_1._Code("<="), EQ: new code_1._Code("==="), NEQ: new code_1._Code("!=="), NOT: new code_1._Code("!"), OR: new code_1._Code("||"), AND: new code_1._Code("&&"), ADD: new code_1._Code("+") }; var Node = class { optimizeNodes() { return this; } optimizeNames(_names, _constants) { return this; } }; var Def = class extends Node { constructor(varKind, name, rhs) { super(); this.varKind = varKind; this.name = name; this.rhs = rhs; } render({ es5, _n }) { const varKind = es5 ? scope_1.varKinds.var : this.varKind; const rhs = this.rhs === void 0 ? "" : ` = ${this.rhs}`; return `${varKind} ${this.name}${rhs};` + _n; } optimizeNames(names, constants) { if (!names[this.name.str]) return; if (this.rhs) this.rhs = optimizeExpr(this.rhs, names, constants); return this; } get names() { return this.rhs instanceof code_1._CodeOrName ? this.rhs.names : {}; } }; var Assign = class extends Node { constructor(lhs, rhs, sideEffects) { super(); this.lhs = lhs; this.rhs = rhs; this.sideEffects = sideEffects; } render({ _n }) { return `${this.lhs} = ${this.rhs};` + _n; } optimizeNames(names, constants) { if (this.lhs instanceof code_1.Name && !names[this.lhs.str] && !this.sideEffects) return; this.rhs = optimizeExpr(this.rhs, names, constants); return this; } get names() { return addExprNames(this.lhs instanceof code_1.Name ? {} : { ...this.lhs.names }, this.rhs); } }; var AssignOp = class extends Assign { constructor(lhs, op, rhs, sideEffects) { super(lhs, rhs, sideEffects); this.op = op; } render({ _n }) { return `${this.lhs} ${this.op}= ${this.rhs};` + _n; } }; var Label = class extends Node { constructor(label) { super(); this.label = label; this.names = {}; } render({ _n }) { return `${this.label}:` + _n; } }; var Break = class extends Node { constructor(label) { super(); this.label = label; this.names = {}; } render({ _n }) { return `break${this.label ? ` ${this.label}` : ""};` + _n; } }; var Throw = class extends Node { constructor(error62) { super(); this.error = error62; } render({ _n }) { return `throw ${this.error};` + _n; } get names() { return this.error.names; } }; var AnyCode = class extends Node { constructor(code) { super(); this.code = code; } render({ _n }) { return `${this.code};` + _n; } optimizeNodes() { return `${this.code}` ? this : void 0; } optimizeNames(names, constants) { this.code = optimizeExpr(this.code, names, constants); return this; } get names() { return this.code instanceof code_1._CodeOrName ? this.code.names : {}; } }; var ParentNode = class extends Node { constructor(nodes = []) { super(); this.nodes = nodes; } render(opts) { return this.nodes.reduce((code, n) => code + n.render(opts), ""); } optimizeNodes() { const { nodes } = this; let i = nodes.length; while (i--) { const n = nodes[i].optimizeNodes(); if (Array.isArray(n)) nodes.splice(i, 1, ...n); else if (n) nodes[i] = n; else nodes.splice(i, 1); } return nodes.length > 0 ? this : void 0; } optimizeNames(names, constants) { const { nodes } = this; let i = nodes.length; while (i--) { const n = nodes[i]; if (n.optimizeNames(names, constants)) continue; subtractNames(names, n.names); nodes.splice(i, 1); } return nodes.length > 0 ? this : void 0; } get names() { return this.nodes.reduce((names, n) => addNames(names, n.names), {}); } }; var BlockNode = class extends ParentNode { render(opts) { return "{" + opts._n + super.render(opts) + "}" + opts._n; } }; var Root = class extends ParentNode { }; var Else = class extends BlockNode { }; Else.kind = "else"; var If = class If2 extends BlockNode { constructor(condition, nodes) { super(nodes); this.condition = condition; } render(opts) { let code = `if(${this.condition})` + super.render(opts); if (this.else) code += "else " + this.else.render(opts); return code; } optimizeNodes() { super.optimizeNodes(); const cond = this.condition; if (cond === true) return this.nodes; let e = this.else; if (e) { const ns = e.optimizeNodes(); e = this.else = Array.isArray(ns) ? new Else(ns) : ns; } if (e) { if (cond === false) return e instanceof If2 ? e : e.nodes; if (this.nodes.length) return this; return new If2(not(cond), e instanceof If2 ? [e] : e.nodes); } if (cond === false || !this.nodes.length) return void 0; return this; } optimizeNames(names, constants) { var _a3; this.else = (_a3 = this.else) === null || _a3 === void 0 ? void 0 : _a3.optimizeNames(names, constants); if (!(super.optimizeNames(names, constants) || this.else)) return; this.condition = optimizeExpr(this.condition, names, constants); return this; } get names() { const names = super.names; addExprNames(names, this.condition); if (this.else) addNames(names, this.else.names); return names; } }; If.kind = "if"; var For = class extends BlockNode { }; For.kind = "for"; var ForLoop = class extends For { constructor(iteration) { super(); this.iteration = iteration; } render(opts) { return `for(${this.iteration})` + super.render(opts); } optimizeNames(names, constants) { if (!super.optimizeNames(names, constants)) return; this.iteration = optimizeExpr(this.iteration, names, constants); return this; } get names() { return addNames(super.names, this.iteration.names); } }; var ForRange = class extends For { constructor(varKind, name, from, to) { super(); this.varKind = varKind; this.name = name; this.from = from; this.to = to; } render(opts) { const varKind = opts.es5 ? scope_1.varKinds.var : this.varKind; const { name, from, to } = this; return `for(${varKind} ${name}=${from}; ${name}<${to}; ${name}++)` + super.render(opts); } get names() { return addExprNames(addExprNames(super.names, this.from), this.to); } }; var ForIter = class extends For { constructor(loop, varKind, name, iterable) { super(); this.loop = loop; this.varKind = varKind; this.name = name; this.iterable = iterable; } render(opts) { return `for(${this.varKind} ${this.name} ${this.loop} ${this.iterable})` + super.render(opts); } optimizeNames(names, constants) { if (!super.optimizeNames(names, constants)) return; this.iterable = optimizeExpr(this.iterable, names, constants); return this; } get names() { return addNames(super.names, this.iterable.names); } }; var Func = class extends BlockNode { constructor(name, args, async) { super(); this.name = name; this.args = args; this.async = async; } render(opts) { return `${this.async ? "async " : ""}function ${this.name}(${this.args})` + super.render(opts); } }; Func.kind = "func"; var Return = class extends ParentNode { render(opts) { return "return " + super.render(opts); } }; Return.kind = "return"; var Try = class extends BlockNode { render(opts) { let code = "try" + super.render(opts); if (this.catch) code += this.catch.render(opts); if (this.finally) code += this.finally.render(opts); return code; } optimizeNodes() { var _a3, _b; super.optimizeNodes(); (_a3 = this.catch) === null || _a3 === void 0 || _a3.optimizeNodes(); (_b = this.finally) === null || _b === void 0 || _b.optimizeNodes(); return this; } optimizeNames(names, constants) { var _a3, _b; super.optimizeNames(names, constants); (_a3 = this.catch) === null || _a3 === void 0 || _a3.optimizeNames(names, constants); (_b = this.finally) === null || _b === void 0 || _b.optimizeNames(names, constants); return this; } get names() { const names = super.names; if (this.catch) addNames(names, this.catch.names); if (this.finally) addNames(names, this.finally.names); return names; } }; var Catch = class extends BlockNode { constructor(error62) { super(); this.error = error62; } render(opts) { return `catch(${this.error})` + super.render(opts); } }; Catch.kind = "catch"; var Finally = class extends BlockNode { render(opts) { return "finally" + super.render(opts); } }; Finally.kind = "finally"; var CodeGen = class { constructor(extScope, opts = {}) { this._values = {}; this._blockStarts = []; this._constants = {}; this.opts = { ...opts, _n: opts.lines ? "\n" : "" }; this._extScope = extScope; this._scope = new scope_1.Scope({ parent: extScope }); this._nodes = [new Root()]; } toString() { return this._root.render(this.opts); } name(prefix) { return this._scope.name(prefix); } scopeName(prefix) { return this._extScope.name(prefix); } scopeValue(prefixOrName, value) { const name = this._extScope.value(prefixOrName, value); (this._values[name.prefix] || (this._values[name.prefix] = /* @__PURE__ */ new Set())).add(name); return name; } getScopeValue(prefix, keyOrRef) { return this._extScope.getValue(prefix, keyOrRef); } scopeRefs(scopeName) { return this._extScope.scopeRefs(scopeName, this._values); } scopeCode() { return this._extScope.scopeCode(this._values); } _def(varKind, nameOrPrefix, rhs, constant) { const name = this._scope.toName(nameOrPrefix); if (rhs !== void 0 && constant) this._constants[name.str] = rhs; this._leafNode(new Def(varKind, name, rhs)); return name; } const(nameOrPrefix, rhs, _constant) { return this._def(scope_1.varKinds.const, nameOrPrefix, rhs, _constant); } let(nameOrPrefix, rhs, _constant) { return this._def(scope_1.varKinds.let, nameOrPrefix, rhs, _constant); } var(nameOrPrefix, rhs, _constant) { return this._def(scope_1.varKinds.var, nameOrPrefix, rhs, _constant); } assign(lhs, rhs, sideEffects) { return this._leafNode(new Assign(lhs, rhs, sideEffects)); } add(lhs, rhs) { return this._leafNode(new AssignOp(lhs, exports.operators.ADD, rhs)); } code(c) { if (typeof c == "function") c(); else if (c !== code_1.nil) this._leafNode(new AnyCode(c)); return this; } object(...keyValues) { const code = ["{"]; for (const [key, value] of keyValues) { if (code.length > 1) code.push(","); code.push(key); if (key !== value || this.opts.es5) { code.push(":"); (0, code_1.addCodeArg)(code, value); } } code.push("}"); return new code_1._Code(code); } if(condition, thenBody, elseBody) { this._blockNode(new If(condition)); if (thenBody && elseBody) this.code(thenBody).else().code(elseBody).endIf(); else if (thenBody) this.code(thenBody).endIf(); else if (elseBody) throw new Error('CodeGen: "else" body without "then" body'); return this; } elseIf(condition) { return this._elseNode(new If(condition)); } else() { return this._elseNode(new Else()); } endIf() { return this._endBlockNode(If, Else); } _for(node2, forBody) { this._blockNode(node2); if (forBody) this.code(forBody).endFor(); return this; } for(iteration, forBody) { return this._for(new ForLoop(iteration), forBody); } forRange(nameOrPrefix, from, to, forBody, varKind = this.opts.es5 ? scope_1.varKinds.var : scope_1.varKinds.let) { const name = this._scope.toName(nameOrPrefix); return this._for(new ForRange(varKind, name, from, to), () => forBody(name)); } forOf(nameOrPrefix, iterable, forBody, varKind = scope_1.varKinds.const) { const name = this._scope.toName(nameOrPrefix); if (this.opts.es5) { const arr = iterable instanceof code_1.Name ? iterable : this.var("_arr", iterable); return this.forRange("_i", 0, (0, code_1._)`${arr}.length`, (i) => { this.var(name, (0, code_1._)`${arr}[${i}]`); forBody(name); }); } return this._for(new ForIter("of", varKind, name, iterable), () => forBody(name)); } forIn(nameOrPrefix, obj, forBody, varKind = this.opts.es5 ? scope_1.varKinds.var : scope_1.varKinds.const) { if (this.opts.ownProperties) return this.forOf(nameOrPrefix, (0, code_1._)`Object.keys(${obj})`, forBody); const name = this._scope.toName(nameOrPrefix); return this._for(new ForIter("in", varKind, name, obj), () => forBody(name)); } endFor() { return this._endBlockNode(For); } label(label) { return this._leafNode(new Label(label)); } break(label) { return this._leafNode(new Break(label)); } return(value) { const node2 = new Return(); this._blockNode(node2); this.code(value); if (node2.nodes.length !== 1) throw new Error('CodeGen: "return" should have one node'); return this._endBlockNode(Return); } try(tryBody, catchCode, finallyCode) { if (!catchCode && !finallyCode) throw new Error('CodeGen: "try" without "catch" and "finally"'); const node2 = new Try(); this._blockNode(node2); this.code(tryBody); if (catchCode) { const error62 = this.name("e"); this._currNode = node2.catch = new Catch(error62); catchCode(error62); } if (finallyCode) { this._currNode = node2.finally = new Finally(); this.code(finallyCode); } return this._endBlockNode(Catch, Finally); } throw(error62) { return this._leafNode(new Throw(error62)); } block(body, nodeCount) { this._blockStarts.push(this._nodes.length); if (body) this.code(body).endBlock(nodeCount); return this; } endBlock(nodeCount) { const len = this._blockStarts.pop(); if (len === void 0) throw new Error("CodeGen: not in self-balancing block"); const toClose = this._nodes.length - len; if (toClose < 0 || nodeCount !== void 0 && toClose !== nodeCount) throw new Error(`CodeGen: wrong number of nodes: ${toClose} vs ${nodeCount} expected`); this._nodes.length = len; return this; } func(name, args = code_1.nil, async, funcBody) { this._blockNode(new Func(name, args, async)); if (funcBody) this.code(funcBody).endFunc(); return this; } endFunc() { return this._endBlockNode(Func); } optimize(n = 1) { while (n-- > 0) { this._root.optimizeNodes(); this._root.optimizeNames(this._root.names, this._constants); } } _leafNode(node2) { this._currNode.nodes.push(node2); return this; } _blockNode(node2) { this._currNode.nodes.push(node2); this._nodes.push(node2); } _endBlockNode(N1, N2) { const n = this._currNode; if (n instanceof N1 || N2 && n instanceof N2) { this._nodes.pop(); return this; } throw new Error(`CodeGen: not in block "${N2 ? `${N1.kind}/${N2.kind}` : N1.kind}"`); } _elseNode(node2) { const n = this._currNode; if (!(n instanceof If)) throw new Error('CodeGen: "else" without "if"'); this._currNode = n.else = node2; return this; } get _root() { return this._nodes[0]; } get _currNode() { const ns = this._nodes; return ns[ns.length - 1]; } set _currNode(node2) { const ns = this._nodes; ns[ns.length - 1] = node2; } }; exports.CodeGen = CodeGen; function addNames(names, from) { for (const n in from) names[n] = (names[n] || 0) + (from[n] || 0); return names; } function addExprNames(names, from) { return from instanceof code_1._CodeOrName ? addNames(names, from.names) : names; } function optimizeExpr(expr, names, constants) { if (expr instanceof code_1.Name) return replaceName(expr); if (!canOptimize(expr)) return expr; return new code_1._Code(expr._items.reduce((items, c) => { if (c instanceof code_1.Name) c = replaceName(c); if (c instanceof code_1._Code) items.push(...c._items); else items.push(c); return items; }, [])); function replaceName(n) { const c = constants[n.str]; if (c === void 0 || names[n.str] !== 1) return n; delete names[n.str]; return c; } function canOptimize(e) { return e instanceof code_1._Code && e._items.some((c) => c instanceof code_1.Name && names[c.str] === 1 && constants[c.str] !== void 0); } } function subtractNames(names, from) { for (const n in from) names[n] = (names[n] || 0) - (from[n] || 0); } function not(x) { return typeof x == "boolean" || typeof x == "number" || x === null ? !x : (0, code_1._)`!${par(x)}`; } exports.not = not; const andCode = mappend(exports.operators.AND); function and(...args) { return args.reduce(andCode); } exports.and = and; const orCode = mappend(exports.operators.OR); function or(...args) { return args.reduce(orCode); } exports.or = or; function mappend(op) { return (x, y) => x === code_1.nil ? y : y === code_1.nil ? x : (0, code_1._)`${par(x)} ${op} ${par(y)}`; } function par(x) { return x instanceof code_1.Name ? x : (0, code_1._)`(${x})`; } })); var require_util = /* @__PURE__ */ __commonJSMin(((exports) => { Object.defineProperty(exports, "__esModule", { value: true }); exports.checkStrictMode = exports.getErrorPath = exports.Type = exports.useFunc = exports.setEvaluated = exports.evaluatedPropsToName = exports.mergeEvaluated = exports.eachItem = exports.unescapeJsonPointer = exports.escapeJsonPointer = exports.escapeFragment = exports.unescapeFragment = exports.schemaRefOrVal = exports.schemaHasRulesButRef = exports.schemaHasRules = exports.checkUnknownRules = exports.alwaysValidSchema = exports.toHash = void 0; const codegen_1 = require_codegen(); const code_1 = require_code$1(); function toHash(arr) { const hash2 = {}; for (const item of arr) hash2[item] = true; return hash2; } exports.toHash = toHash; function alwaysValidSchema(it, schema) { if (typeof schema == "boolean") return schema; if (Object.keys(schema).length === 0) return true; checkUnknownRules(it, schema); return !schemaHasRules(schema, it.self.RULES.all); } exports.alwaysValidSchema = alwaysValidSchema; function checkUnknownRules(it, schema = it.schema) { const { opts, self } = it; if (!opts.strictSchema) return; if (typeof schema === "boolean") return; const rules = self.RULES.keywords; for (const key in schema) if (!rules[key]) checkStrictMode(it, `unknown keyword: "${key}"`); } exports.checkUnknownRules = checkUnknownRules; function schemaHasRules(schema, rules) { if (typeof schema == "boolean") return !schema; for (const key in schema) if (rules[key]) return true; return false; } exports.schemaHasRules = schemaHasRules; function schemaHasRulesButRef(schema, RULES) { if (typeof schema == "boolean") return !schema; for (const key in schema) if (key !== "$ref" && RULES.all[key]) return true; return false; } exports.schemaHasRulesButRef = schemaHasRulesButRef; function schemaRefOrVal({ topSchemaRef, schemaPath }, schema, keyword, $data) { if (!$data) { if (typeof schema == "number" || typeof schema == "boolean") return schema; if (typeof schema == "string") return (0, codegen_1._)`${schema}`; } return (0, codegen_1._)`${topSchemaRef}${schemaPath}${(0, codegen_1.getProperty)(keyword)}`; } exports.schemaRefOrVal = schemaRefOrVal; function unescapeFragment(str) { return unescapeJsonPointer(decodeURIComponent(str)); } exports.unescapeFragment = unescapeFragment; function escapeFragment(str) { return encodeURIComponent(escapeJsonPointer(str)); } exports.escapeFragment = escapeFragment; function escapeJsonPointer(str) { if (typeof str == "number") return `${str}`; return str.replace(/~/g, "~0").replace(/\//g, "~1"); } exports.escapeJsonPointer = escapeJsonPointer; function unescapeJsonPointer(str) { return str.replace(/~1/g, "/").replace(/~0/g, "~"); } exports.unescapeJsonPointer = unescapeJsonPointer; function eachItem(xs, f) { if (Array.isArray(xs)) for (const x of xs) f(x); else f(xs); } exports.eachItem = eachItem; function makeMergeEvaluated({ mergeNames, mergeToName, mergeValues: mergeValues4, resultToName }) { return (gen, from, to, toName) => { const res = to === void 0 ? from : to instanceof codegen_1.Name ? (from instanceof codegen_1.Name ? mergeNames(gen, from, to) : mergeToName(gen, from, to), to) : from instanceof codegen_1.Name ? (mergeToName(gen, to, from), from) : mergeValues4(from, to); return toName === codegen_1.Name && !(res instanceof codegen_1.Name) ? resultToName(gen, res) : res; }; } exports.mergeEvaluated = { props: makeMergeEvaluated({ mergeNames: (gen, from, to) => gen.if((0, codegen_1._)`${to} !== true && ${from} !== undefined`, () => { gen.if((0, codegen_1._)`${from} === true`, () => gen.assign(to, true), () => gen.assign(to, (0, codegen_1._)`${to} || {}`).code((0, codegen_1._)`Object.assign(${to}, ${from})`)); }), mergeToName: (gen, from, to) => gen.if((0, codegen_1._)`${to} !== true`, () => { if (from === true) gen.assign(to, true); else { gen.assign(to, (0, codegen_1._)`${to} || {}`); setEvaluated(gen, to, from); } }), mergeValues: (from, to) => from === true ? true : { ...from, ...to }, resultToName: evaluatedPropsToName }), items: makeMergeEvaluated({ mergeNames: (gen, from, to) => gen.if((0, codegen_1._)`${to} !== true && ${from} !== undefined`, () => gen.assign(to, (0, codegen_1._)`${from} === true ? true : ${to} > ${from} ? ${to} : ${from}`)), mergeToName: (gen, from, to) => gen.if((0, codegen_1._)`${to} !== true`, () => gen.assign(to, from === true ? true : (0, codegen_1._)`${to} > ${from} ? ${to} : ${from}`)), mergeValues: (from, to) => from === true ? true : Math.max(from, to), resultToName: (gen, items) => gen.var("items", items) }) }; function evaluatedPropsToName(gen, ps) { if (ps === true) return gen.var("props", true); const props = gen.var("props", (0, codegen_1._)`{}`); if (ps !== void 0) setEvaluated(gen, props, ps); return props; } exports.evaluatedPropsToName = evaluatedPropsToName; function setEvaluated(gen, props, ps) { Object.keys(ps).forEach((p) => gen.assign((0, codegen_1._)`${props}${(0, codegen_1.getProperty)(p)}`, true)); } exports.setEvaluated = setEvaluated; const snippets = {}; function useFunc(gen, f) { return gen.scopeValue("func", { ref: f, code: snippets[f.code] || (snippets[f.code] = new code_1._Code(f.code)) }); } exports.useFunc = useFunc; var Type; (function(Type2) { Type2[Type2["Num"] = 0] = "Num"; Type2[Type2["Str"] = 1] = "Str"; })(Type || (exports.Type = Type = {})); function getErrorPath(dataProp, dataPropType, jsPropertySyntax) { if (dataProp instanceof codegen_1.Name) { const isNumber = dataPropType === Type.Num; return jsPropertySyntax ? isNumber ? (0, codegen_1._)`"[" + ${dataProp} + "]"` : (0, codegen_1._)`"['" + ${dataProp} + "']"` : isNumber ? (0, codegen_1._)`"/" + ${dataProp}` : (0, codegen_1._)`"/" + ${dataProp}.replace(/~/g, "~0").replace(/\\//g, "~1")`; } return jsPropertySyntax ? (0, codegen_1.getProperty)(dataProp).toString() : "/" + escapeJsonPointer(dataProp); } exports.getErrorPath = getErrorPath; function checkStrictMode(it, msg, mode = it.opts.strictSchema) { if (!mode) return; msg = `strict mode: ${msg}`; if (mode === true) throw new Error(msg); it.self.logger.warn(msg); } exports.checkStrictMode = checkStrictMode; })); var require_names = /* @__PURE__ */ __commonJSMin(((exports) => { Object.defineProperty(exports, "__esModule", { value: true }); const codegen_1 = require_codegen(); const names = { data: new codegen_1.Name("data"), valCxt: new codegen_1.Name("valCxt"), instancePath: new codegen_1.Name("instancePath"), parentData: new codegen_1.Name("parentData"), parentDataProperty: new codegen_1.Name("parentDataProperty"), rootData: new codegen_1.Name("rootData"), dynamicAnchors: new codegen_1.Name("dynamicAnchors"), vErrors: new codegen_1.Name("vErrors"), errors: new codegen_1.Name("errors"), this: new codegen_1.Name("this"), self: new codegen_1.Name("self"), scope: new codegen_1.Name("scope"), json: new codegen_1.Name("json"), jsonPos: new codegen_1.Name("jsonPos"), jsonLen: new codegen_1.Name("jsonLen"), jsonPart: new codegen_1.Name("jsonPart") }; exports.default = names; })); var require_errors = /* @__PURE__ */ __commonJSMin(((exports) => { Object.defineProperty(exports, "__esModule", { value: true }); exports.extendErrors = exports.resetErrorsCount = exports.reportExtraError = exports.reportError = exports.keyword$DataError = exports.keywordError = void 0; const codegen_1 = require_codegen(); const util_1 = require_util(); const names_1 = require_names(); exports.keywordError = { message: ({ keyword }) => (0, codegen_1.str)`must pass "${keyword}" keyword validation` }; exports.keyword$DataError = { message: ({ keyword, schemaType }) => schemaType ? (0, codegen_1.str)`"${keyword}" keyword must be ${schemaType} ($data)` : (0, codegen_1.str)`"${keyword}" keyword is invalid ($data)` }; function reportError(cxt, error62 = exports.keywordError, errorPaths, overrideAllErrors) { const { it } = cxt; const { gen, compositeRule, allErrors } = it; const errObj = errorObjectCode(cxt, error62, errorPaths); if (overrideAllErrors !== null && overrideAllErrors !== void 0 ? overrideAllErrors : compositeRule || allErrors) addError(gen, errObj); else returnErrors(it, (0, codegen_1._)`[${errObj}]`); } exports.reportError = reportError; function reportExtraError(cxt, error62 = exports.keywordError, errorPaths) { const { it } = cxt; const { gen, compositeRule, allErrors } = it; addError(gen, errorObjectCode(cxt, error62, errorPaths)); if (!(compositeRule || allErrors)) returnErrors(it, names_1.default.vErrors); } exports.reportExtraError = reportExtraError; function resetErrorsCount(gen, errsCount) { gen.assign(names_1.default.errors, errsCount); gen.if((0, codegen_1._)`${names_1.default.vErrors} !== null`, () => gen.if(errsCount, () => gen.assign((0, codegen_1._)`${names_1.default.vErrors}.length`, errsCount), () => gen.assign(names_1.default.vErrors, null))); } exports.resetErrorsCount = resetErrorsCount; function extendErrors({ gen, keyword, schemaValue, data, errsCount, it }) { if (errsCount === void 0) throw new Error("ajv implementation error"); const err = gen.name("err"); gen.forRange("i", errsCount, names_1.default.errors, (i) => { gen.const(err, (0, codegen_1._)`${names_1.default.vErrors}[${i}]`); gen.if((0, codegen_1._)`${err}.instancePath === undefined`, () => gen.assign((0, codegen_1._)`${err}.instancePath`, (0, codegen_1.strConcat)(names_1.default.instancePath, it.errorPath))); gen.assign((0, codegen_1._)`${err}.schemaPath`, (0, codegen_1.str)`${it.errSchemaPath}/${keyword}`); if (it.opts.verbose) { gen.assign((0, codegen_1._)`${err}.schema`, schemaValue); gen.assign((0, codegen_1._)`${err}.data`, data); } }); } exports.extendErrors = extendErrors; function addError(gen, errObj) { const err = gen.const("err", errObj); gen.if((0, codegen_1._)`${names_1.default.vErrors} === null`, () => gen.assign(names_1.default.vErrors, (0, codegen_1._)`[${err}]`), (0, codegen_1._)`${names_1.default.vErrors}.push(${err})`); gen.code((0, codegen_1._)`${names_1.default.errors}++`); } function returnErrors(it, errs) { const { gen, validateName, schemaEnv } = it; if (schemaEnv.$async) gen.throw((0, codegen_1._)`new ${it.ValidationError}(${errs})`); else { gen.assign((0, codegen_1._)`${validateName}.errors`, errs); gen.return(false); } } const E = { keyword: new codegen_1.Name("keyword"), schemaPath: new codegen_1.Name("schemaPath"), params: new codegen_1.Name("params"), propertyName: new codegen_1.Name("propertyName"), message: new codegen_1.Name("message"), schema: new codegen_1.Name("schema"), parentSchema: new codegen_1.Name("parentSchema") }; function errorObjectCode(cxt, error62, errorPaths) { const { createErrors } = cxt.it; if (createErrors === false) return (0, codegen_1._)`{}`; return errorObject(cxt, error62, errorPaths); } function errorObject(cxt, error62, errorPaths = {}) { const { gen, it } = cxt; const keyValues = [errorInstancePath(it, errorPaths), errorSchemaPath(cxt, errorPaths)]; extraErrorProps(cxt, error62, keyValues); return gen.object(...keyValues); } function errorInstancePath({ errorPath }, { instancePath }) { const instPath = instancePath ? (0, codegen_1.str)`${errorPath}${(0, util_1.getErrorPath)(instancePath, util_1.Type.Str)}` : errorPath; return [names_1.default.instancePath, (0, codegen_1.strConcat)(names_1.default.instancePath, instPath)]; } function errorSchemaPath({ keyword, it: { errSchemaPath } }, { schemaPath, parentSchema }) { let schPath = parentSchema ? errSchemaPath : (0, codegen_1.str)`${errSchemaPath}/${keyword}`; if (schemaPath) schPath = (0, codegen_1.str)`${schPath}${(0, util_1.getErrorPath)(schemaPath, util_1.Type.Str)}`; return [E.schemaPath, schPath]; } function extraErrorProps(cxt, { params, message }, keyValues) { const { keyword, data, schemaValue, it } = cxt; const { opts, propertyName, topSchemaRef, schemaPath } = it; keyValues.push([E.keyword, keyword], [E.params, typeof params == "function" ? params(cxt) : params || (0, codegen_1._)`{}`]); if (opts.messages) keyValues.push([E.message, typeof message == "function" ? message(cxt) : message]); if (opts.verbose) keyValues.push([E.schema, schemaValue], [E.parentSchema, (0, codegen_1._)`${topSchemaRef}${schemaPath}`], [names_1.default.data, data]); if (propertyName) keyValues.push([E.propertyName, propertyName]); } })); var require_boolSchema = /* @__PURE__ */ __commonJSMin(((exports) => { Object.defineProperty(exports, "__esModule", { value: true }); exports.boolOrEmptySchema = exports.topBoolOrEmptySchema = void 0; const errors_1 = require_errors(); const codegen_1 = require_codegen(); const names_1 = require_names(); const boolError = { message: "boolean schema is false" }; function topBoolOrEmptySchema(it) { const { gen, schema, validateName } = it; if (schema === false) falseSchemaError(it, false); else if (typeof schema == "object" && schema.$async === true) gen.return(names_1.default.data); else { gen.assign((0, codegen_1._)`${validateName}.errors`, null); gen.return(true); } } exports.topBoolOrEmptySchema = topBoolOrEmptySchema; function boolOrEmptySchema(it, valid) { const { gen, schema } = it; if (schema === false) { gen.var(valid, false); falseSchemaError(it); } else gen.var(valid, true); } exports.boolOrEmptySchema = boolOrEmptySchema; function falseSchemaError(it, overrideAllErrors) { const { gen, data } = it; const cxt = { gen, keyword: "false schema", data, schema: false, schemaCode: false, schemaValue: false, params: {}, it }; (0, errors_1.reportError)(cxt, boolError, void 0, overrideAllErrors); } })); var require_rules = /* @__PURE__ */ __commonJSMin(((exports) => { Object.defineProperty(exports, "__esModule", { value: true }); exports.getRules = exports.isJSONType = void 0; const jsonTypes = /* @__PURE__ */ new Set([ "string", "number", "integer", "boolean", "null", "object", "array" ]); function isJSONType(x) { return typeof x == "string" && jsonTypes.has(x); } exports.isJSONType = isJSONType; function getRules() { const groups = { number: { type: "number", rules: [] }, string: { type: "string", rules: [] }, array: { type: "array", rules: [] }, object: { type: "object", rules: [] } }; return { types: { ...groups, integer: true, boolean: true, null: true }, rules: [ { rules: [] }, groups.number, groups.string, groups.array, groups.object ], post: { rules: [] }, all: {}, keywords: {} }; } exports.getRules = getRules; })); var require_applicability = /* @__PURE__ */ __commonJSMin(((exports) => { Object.defineProperty(exports, "__esModule", { value: true }); exports.shouldUseRule = exports.shouldUseGroup = exports.schemaHasRulesForType = void 0; function schemaHasRulesForType({ schema, self }, type) { const group = self.RULES.types[type]; return group && group !== true && shouldUseGroup(schema, group); } exports.schemaHasRulesForType = schemaHasRulesForType; function shouldUseGroup(schema, group) { return group.rules.some((rule) => shouldUseRule(schema, rule)); } exports.shouldUseGroup = shouldUseGroup; function shouldUseRule(schema, rule) { var _a3; return schema[rule.keyword] !== void 0 || ((_a3 = rule.definition.implements) === null || _a3 === void 0 ? void 0 : _a3.some((kwd) => schema[kwd] !== void 0)); } exports.shouldUseRule = shouldUseRule; })); var require_dataType = /* @__PURE__ */ __commonJSMin(((exports) => { Object.defineProperty(exports, "__esModule", { value: true }); exports.reportTypeError = exports.checkDataTypes = exports.checkDataType = exports.coerceAndCheckDataType = exports.getJSONTypes = exports.getSchemaTypes = exports.DataType = void 0; const rules_1 = require_rules(); const applicability_1 = require_applicability(); const errors_1 = require_errors(); const codegen_1 = require_codegen(); const util_1 = require_util(); var DataType; (function(DataType2) { DataType2[DataType2["Correct"] = 0] = "Correct"; DataType2[DataType2["Wrong"] = 1] = "Wrong"; })(DataType || (exports.DataType = DataType = {})); function getSchemaTypes(schema) { const types = getJSONTypes(schema.type); if (types.includes("null")) { if (schema.nullable === false) throw new Error("type: null contradicts nullable: false"); } else { if (!types.length && schema.nullable !== void 0) throw new Error('"nullable" cannot be used without "type"'); if (schema.nullable === true) types.push("null"); } return types; } exports.getSchemaTypes = getSchemaTypes; function getJSONTypes(ts) { const types = Array.isArray(ts) ? ts : ts ? [ts] : []; if (types.every(rules_1.isJSONType)) return types; throw new Error("type must be JSONType or JSONType[]: " + types.join(",")); } exports.getJSONTypes = getJSONTypes; function coerceAndCheckDataType(it, types) { const { gen, data, opts } = it; const coerceTo = coerceToTypes(types, opts.coerceTypes); const checkTypes = types.length > 0 && !(coerceTo.length === 0 && types.length === 1 && (0, applicability_1.schemaHasRulesForType)(it, types[0])); if (checkTypes) { const wrongType = checkDataTypes(types, data, opts.strictNumbers, DataType.Wrong); gen.if(wrongType, () => { if (coerceTo.length) coerceData(it, types, coerceTo); else reportTypeError(it); }); } return checkTypes; } exports.coerceAndCheckDataType = coerceAndCheckDataType; const COERCIBLE = /* @__PURE__ */ new Set([ "string", "number", "integer", "boolean", "null" ]); function coerceToTypes(types, coerceTypes) { return coerceTypes ? types.filter((t) => COERCIBLE.has(t) || coerceTypes === "array" && t === "array") : []; } function coerceData(it, types, coerceTo) { const { gen, data, opts } = it; const dataType = gen.let("dataType", (0, codegen_1._)`typeof ${data}`); const coerced = gen.let("coerced", (0, codegen_1._)`undefined`); if (opts.coerceTypes === "array") gen.if((0, codegen_1._)`${dataType} == 'object' && Array.isArray(${data}) && ${data}.length == 1`, () => gen.assign(data, (0, codegen_1._)`${data}[0]`).assign(dataType, (0, codegen_1._)`typeof ${data}`).if(checkDataTypes(types, data, opts.strictNumbers), () => gen.assign(coerced, data))); gen.if((0, codegen_1._)`${coerced} !== undefined`); for (const t of coerceTo) if (COERCIBLE.has(t) || t === "array" && opts.coerceTypes === "array") coerceSpecificType(t); gen.else(); reportTypeError(it); gen.endIf(); gen.if((0, codegen_1._)`${coerced} !== undefined`, () => { gen.assign(data, coerced); assignParentData(it, coerced); }); function coerceSpecificType(t) { switch (t) { case "string": gen.elseIf((0, codegen_1._)`${dataType} == "number" || ${dataType} == "boolean"`).assign(coerced, (0, codegen_1._)`"" + ${data}`).elseIf((0, codegen_1._)`${data} === null`).assign(coerced, (0, codegen_1._)`""`); return; case "number": gen.elseIf((0, codegen_1._)`${dataType} == "boolean" || ${data} === null || (${dataType} == "string" && ${data} && ${data} == +${data})`).assign(coerced, (0, codegen_1._)`+${data}`); return; case "integer": gen.elseIf((0, codegen_1._)`${dataType} === "boolean" || ${data} === null || (${dataType} === "string" && ${data} && ${data} == +${data} && !(${data} % 1))`).assign(coerced, (0, codegen_1._)`+${data}`); return; case "boolean": gen.elseIf((0, codegen_1._)`${data} === "false" || ${data} === 0 || ${data} === null`).assign(coerced, false).elseIf((0, codegen_1._)`${data} === "true" || ${data} === 1`).assign(coerced, true); return; case "null": gen.elseIf((0, codegen_1._)`${data} === "" || ${data} === 0 || ${data} === false`); gen.assign(coerced, null); return; case "array": gen.elseIf((0, codegen_1._)`${dataType} === "string" || ${dataType} === "number" || ${dataType} === "boolean" || ${data} === null`).assign(coerced, (0, codegen_1._)`[${data}]`); } } } function assignParentData({ gen, parentData, parentDataProperty }, expr) { gen.if((0, codegen_1._)`${parentData} !== undefined`, () => gen.assign((0, codegen_1._)`${parentData}[${parentDataProperty}]`, expr)); } function checkDataType(dataType, data, strictNums, correct = DataType.Correct) { const EQ = correct === DataType.Correct ? codegen_1.operators.EQ : codegen_1.operators.NEQ; let cond; switch (dataType) { case "null": return (0, codegen_1._)`${data} ${EQ} null`; case "array": cond = (0, codegen_1._)`Array.isArray(${data})`; break; case "object": cond = (0, codegen_1._)`${data} && typeof ${data} == "object" && !Array.isArray(${data})`; break; case "integer": cond = numCond((0, codegen_1._)`!(${data} % 1) && !isNaN(${data})`); break; case "number": cond = numCond(); break; default: return (0, codegen_1._)`typeof ${data} ${EQ} ${dataType}`; } return correct === DataType.Correct ? cond : (0, codegen_1.not)(cond); function numCond(_cond = codegen_1.nil) { return (0, codegen_1.and)((0, codegen_1._)`typeof ${data} == "number"`, _cond, strictNums ? (0, codegen_1._)`isFinite(${data})` : codegen_1.nil); } } exports.checkDataType = checkDataType; function checkDataTypes(dataTypes, data, strictNums, correct) { if (dataTypes.length === 1) return checkDataType(dataTypes[0], data, strictNums, correct); let cond; const types = (0, util_1.toHash)(dataTypes); if (types.array && types.object) { const notObj = (0, codegen_1._)`typeof ${data} != "object"`; cond = types.null ? notObj : (0, codegen_1._)`!${data} || ${notObj}`; delete types.null; delete types.array; delete types.object; } else cond = codegen_1.nil; if (types.number) delete types.integer; for (const t in types) cond = (0, codegen_1.and)(cond, checkDataType(t, data, strictNums, correct)); return cond; } exports.checkDataTypes = checkDataTypes; const typeError = { message: ({ schema }) => `must be ${schema}`, params: ({ schema, schemaValue }) => typeof schema == "string" ? (0, codegen_1._)`{type: ${schema}}` : (0, codegen_1._)`{type: ${schemaValue}}` }; function reportTypeError(it) { const cxt = getTypeErrorContext(it); (0, errors_1.reportError)(cxt, typeError); } exports.reportTypeError = reportTypeError; function getTypeErrorContext(it) { const { gen, data, schema } = it; const schemaCode = (0, util_1.schemaRefOrVal)(it, schema, "type"); return { gen, keyword: "type", data, schema: schema.type, schemaCode, schemaValue: schemaCode, parentSchema: schema, params: {}, it }; } })); var require_defaults = /* @__PURE__ */ __commonJSMin(((exports) => { Object.defineProperty(exports, "__esModule", { value: true }); exports.assignDefaults = void 0; const codegen_1 = require_codegen(); const util_1 = require_util(); function assignDefaults(it, ty) { const { properties, items } = it.schema; if (ty === "object" && properties) for (const key in properties) assignDefault(it, key, properties[key].default); else if (ty === "array" && Array.isArray(items)) items.forEach((sch, i) => assignDefault(it, i, sch.default)); } exports.assignDefaults = assignDefaults; function assignDefault(it, prop, defaultValue) { const { gen, compositeRule, data, opts } = it; if (defaultValue === void 0) return; const childData = (0, codegen_1._)`${data}${(0, codegen_1.getProperty)(prop)}`; if (compositeRule) { (0, util_1.checkStrictMode)(it, `default is ignored for: ${childData}`); return; } let condition = (0, codegen_1._)`${childData} === undefined`; if (opts.useDefaults === "empty") condition = (0, codegen_1._)`${condition} || ${childData} === null || ${childData} === ""`; gen.if(condition, (0, codegen_1._)`${childData} = ${(0, codegen_1.stringify)(defaultValue)}`); } })); var require_code = /* @__PURE__ */ __commonJSMin(((exports) => { Object.defineProperty(exports, "__esModule", { value: true }); exports.validateUnion = exports.validateArray = exports.usePattern = exports.callValidateCode = exports.schemaProperties = exports.allSchemaProperties = exports.noPropertyInData = exports.propertyInData = exports.isOwnProperty = exports.hasPropFunc = exports.reportMissingProp = exports.checkMissingProp = exports.checkReportMissingProp = void 0; const codegen_1 = require_codegen(); const util_1 = require_util(); const names_1 = require_names(); const util_2 = require_util(); function checkReportMissingProp(cxt, prop) { const { gen, data, it } = cxt; gen.if(noPropertyInData(gen, data, prop, it.opts.ownProperties), () => { cxt.setParams({ missingProperty: (0, codegen_1._)`${prop}` }, true); cxt.error(); }); } exports.checkReportMissingProp = checkReportMissingProp; function checkMissingProp({ gen, data, it: { opts } }, properties, missing) { return (0, codegen_1.or)(...properties.map((prop) => (0, codegen_1.and)(noPropertyInData(gen, data, prop, opts.ownProperties), (0, codegen_1._)`${missing} = ${prop}`))); } exports.checkMissingProp = checkMissingProp; function reportMissingProp(cxt, missing) { cxt.setParams({ missingProperty: missing }, true); cxt.error(); } exports.reportMissingProp = reportMissingProp; function hasPropFunc(gen) { return gen.scopeValue("func", { ref: Object.prototype.hasOwnProperty, code: (0, codegen_1._)`Object.prototype.hasOwnProperty` }); } exports.hasPropFunc = hasPropFunc; function isOwnProperty(gen, data, property) { return (0, codegen_1._)`${hasPropFunc(gen)}.call(${data}, ${property})`; } exports.isOwnProperty = isOwnProperty; function propertyInData(gen, data, property, ownProperties) { const cond = (0, codegen_1._)`${data}${(0, codegen_1.getProperty)(property)} !== undefined`; return ownProperties ? (0, codegen_1._)`${cond} && ${isOwnProperty(gen, data, property)}` : cond; } exports.propertyInData = propertyInData; function noPropertyInData(gen, data, property, ownProperties) { const cond = (0, codegen_1._)`${data}${(0, codegen_1.getProperty)(property)} === undefined`; return ownProperties ? (0, codegen_1.or)(cond, (0, codegen_1.not)(isOwnProperty(gen, data, property))) : cond; } exports.noPropertyInData = noPropertyInData; function allSchemaProperties(schemaMap) { return schemaMap ? Object.keys(schemaMap).filter((p) => p !== "__proto__") : []; } exports.allSchemaProperties = allSchemaProperties; function schemaProperties(it, schemaMap) { return allSchemaProperties(schemaMap).filter((p) => !(0, util_1.alwaysValidSchema)(it, schemaMap[p])); } exports.schemaProperties = schemaProperties; function callValidateCode({ schemaCode, data, it: { gen, topSchemaRef, schemaPath, errorPath }, it }, func, context, passSchema) { const dataAndSchema = passSchema ? (0, codegen_1._)`${schemaCode}, ${data}, ${topSchemaRef}${schemaPath}` : data; const valCxt = [ [names_1.default.instancePath, (0, codegen_1.strConcat)(names_1.default.instancePath, errorPath)], [names_1.default.parentData, it.parentData], [names_1.default.parentDataProperty, it.parentDataProperty], [names_1.default.rootData, names_1.default.rootData] ]; if (it.opts.dynamicRef) valCxt.push([names_1.default.dynamicAnchors, names_1.default.dynamicAnchors]); const args = (0, codegen_1._)`${dataAndSchema}, ${gen.object(...valCxt)}`; return context !== codegen_1.nil ? (0, codegen_1._)`${func}.call(${context}, ${args})` : (0, codegen_1._)`${func}(${args})`; } exports.callValidateCode = callValidateCode; const newRegExp = (0, codegen_1._)`new RegExp`; function usePattern({ gen, it: { opts } }, pattern) { const u = opts.unicodeRegExp ? "u" : ""; const { regExp } = opts.code; const rx = regExp(pattern, u); return gen.scopeValue("pattern", { key: rx.toString(), ref: rx, code: (0, codegen_1._)`${regExp.code === "new RegExp" ? newRegExp : (0, util_2.useFunc)(gen, regExp)}(${pattern}, ${u})` }); } exports.usePattern = usePattern; function validateArray(cxt) { const { gen, data, keyword, it } = cxt; const valid = gen.name("valid"); if (it.allErrors) { const validArr = gen.let("valid", true); validateItems(() => gen.assign(validArr, false)); return validArr; } gen.var(valid, true); validateItems(() => gen.break()); return valid; function validateItems(notValid) { const len = gen.const("len", (0, codegen_1._)`${data}.length`); gen.forRange("i", 0, len, (i) => { cxt.subschema({ keyword, dataProp: i, dataPropType: util_1.Type.Num }, valid); gen.if((0, codegen_1.not)(valid), notValid); }); } } exports.validateArray = validateArray; function validateUnion(cxt) { const { gen, schema, keyword, it } = cxt; if (!Array.isArray(schema)) throw new Error("ajv implementation error"); if (schema.some((sch) => (0, util_1.alwaysValidSchema)(it, sch)) && !it.opts.unevaluated) return; const valid = gen.let("valid", false); const schValid = gen.name("_valid"); gen.block(() => schema.forEach((_sch, i) => { const schCxt = cxt.subschema({ keyword, schemaProp: i, compositeRule: true }, schValid); gen.assign(valid, (0, codegen_1._)`${valid} || ${schValid}`); if (!cxt.mergeValidEvaluated(schCxt, schValid)) gen.if((0, codegen_1.not)(valid)); })); cxt.result(valid, () => cxt.reset(), () => cxt.error(true)); } exports.validateUnion = validateUnion; })); var require_keyword = /* @__PURE__ */ __commonJSMin(((exports) => { Object.defineProperty(exports, "__esModule", { value: true }); exports.validateKeywordUsage = exports.validSchemaType = exports.funcKeywordCode = exports.macroKeywordCode = void 0; const codegen_1 = require_codegen(); const names_1 = require_names(); const code_1 = require_code(); const errors_1 = require_errors(); function macroKeywordCode(cxt, def) { const { gen, keyword, schema, parentSchema, it } = cxt; const macroSchema = def.macro.call(it.self, schema, parentSchema, it); const schemaRef = useKeyword(gen, keyword, macroSchema); if (it.opts.validateSchema !== false) it.self.validateSchema(macroSchema, true); const valid = gen.name("valid"); cxt.subschema({ schema: macroSchema, schemaPath: codegen_1.nil, errSchemaPath: `${it.errSchemaPath}/${keyword}`, topSchemaRef: schemaRef, compositeRule: true }, valid); cxt.pass(valid, () => cxt.error(true)); } exports.macroKeywordCode = macroKeywordCode; function funcKeywordCode(cxt, def) { var _a3; const { gen, keyword, schema, parentSchema, $data, it } = cxt; checkAsyncKeyword(it, def); const validateRef = useKeyword(gen, keyword, !$data && def.compile ? def.compile.call(it.self, schema, parentSchema, it) : def.validate); const valid = gen.let("valid"); cxt.block$data(valid, validateKeyword); cxt.ok((_a3 = def.valid) !== null && _a3 !== void 0 ? _a3 : valid); function validateKeyword() { if (def.errors === false) { assignValid(); if (def.modifying) modifyData(cxt); reportErrs(() => cxt.error()); } else { const ruleErrs = def.async ? validateAsync3() : validateSync(); if (def.modifying) modifyData(cxt); reportErrs(() => addErrs(cxt, ruleErrs)); } } function validateAsync3() { const ruleErrs = gen.let("ruleErrs", null); gen.try(() => assignValid((0, codegen_1._)`await `), (e) => gen.assign(valid, false).if((0, codegen_1._)`${e} instanceof ${it.ValidationError}`, () => gen.assign(ruleErrs, (0, codegen_1._)`${e}.errors`), () => gen.throw(e))); return ruleErrs; } function validateSync() { const validateErrs = (0, codegen_1._)`${validateRef}.errors`; gen.assign(validateErrs, null); assignValid(codegen_1.nil); return validateErrs; } function assignValid(_await = def.async ? (0, codegen_1._)`await ` : codegen_1.nil) { const passCxt = it.opts.passContext ? names_1.default.this : names_1.default.self; const passSchema = !("compile" in def && !$data || def.schema === false); gen.assign(valid, (0, codegen_1._)`${_await}${(0, code_1.callValidateCode)(cxt, validateRef, passCxt, passSchema)}`, def.modifying); } function reportErrs(errors) { var _a$1; gen.if((0, codegen_1.not)((_a$1 = def.valid) !== null && _a$1 !== void 0 ? _a$1 : valid), errors); } } exports.funcKeywordCode = funcKeywordCode; function modifyData(cxt) { const { gen, data, it } = cxt; gen.if(it.parentData, () => gen.assign(data, (0, codegen_1._)`${it.parentData}[${it.parentDataProperty}]`)); } function addErrs(cxt, errs) { const { gen } = cxt; gen.if((0, codegen_1._)`Array.isArray(${errs})`, () => { gen.assign(names_1.default.vErrors, (0, codegen_1._)`${names_1.default.vErrors} === null ? ${errs} : ${names_1.default.vErrors}.concat(${errs})`).assign(names_1.default.errors, (0, codegen_1._)`${names_1.default.vErrors}.length`); (0, errors_1.extendErrors)(cxt); }, () => cxt.error()); } function checkAsyncKeyword({ schemaEnv }, def) { if (def.async && !schemaEnv.$async) throw new Error("async keyword in sync schema"); } function useKeyword(gen, keyword, result) { if (result === void 0) throw new Error(`keyword "${keyword}" failed to compile`); return gen.scopeValue("keyword", typeof result == "function" ? { ref: result } : { ref: result, code: (0, codegen_1.stringify)(result) }); } function validSchemaType(schema, schemaType, allowUndefined = false) { return !schemaType.length || schemaType.some((st) => st === "array" ? Array.isArray(schema) : st === "object" ? schema && typeof schema == "object" && !Array.isArray(schema) : typeof schema == st || allowUndefined && typeof schema == "undefined"); } exports.validSchemaType = validSchemaType; function validateKeywordUsage({ schema, opts, self, errSchemaPath }, def, keyword) { if (Array.isArray(def.keyword) ? !def.keyword.includes(keyword) : def.keyword !== keyword) throw new Error("ajv implementation error"); const deps = def.dependencies; if (deps === null || deps === void 0 ? void 0 : deps.some((kwd) => !Object.prototype.hasOwnProperty.call(schema, kwd))) throw new Error(`parent schema must have dependencies of ${keyword}: ${deps.join(",")}`); if (def.validateSchema) { if (!def.validateSchema(schema[keyword])) { const msg = `keyword "${keyword}" value is invalid at path "${errSchemaPath}": ` + self.errorsText(def.validateSchema.errors); if (opts.validateSchema === "log") self.logger.error(msg); else throw new Error(msg); } } } exports.validateKeywordUsage = validateKeywordUsage; })); var require_subschema = /* @__PURE__ */ __commonJSMin(((exports) => { Object.defineProperty(exports, "__esModule", { value: true }); exports.extendSubschemaMode = exports.extendSubschemaData = exports.getSubschema = void 0; const codegen_1 = require_codegen(); const util_1 = require_util(); function getSubschema(it, { keyword, schemaProp, schema, schemaPath, errSchemaPath, topSchemaRef }) { if (keyword !== void 0 && schema !== void 0) throw new Error('both "keyword" and "schema" passed, only one allowed'); if (keyword !== void 0) { const sch = it.schema[keyword]; return schemaProp === void 0 ? { schema: sch, schemaPath: (0, codegen_1._)`${it.schemaPath}${(0, codegen_1.getProperty)(keyword)}`, errSchemaPath: `${it.errSchemaPath}/${keyword}` } : { schema: sch[schemaProp], schemaPath: (0, codegen_1._)`${it.schemaPath}${(0, codegen_1.getProperty)(keyword)}${(0, codegen_1.getProperty)(schemaProp)}`, errSchemaPath: `${it.errSchemaPath}/${keyword}/${(0, util_1.escapeFragment)(schemaProp)}` }; } if (schema !== void 0) { if (schemaPath === void 0 || errSchemaPath === void 0 || topSchemaRef === void 0) throw new Error('"schemaPath", "errSchemaPath" and "topSchemaRef" are required with "schema"'); return { schema, schemaPath, topSchemaRef, errSchemaPath }; } throw new Error('either "keyword" or "schema" must be passed'); } exports.getSubschema = getSubschema; function extendSubschemaData(subschema, it, { dataProp, dataPropType: dpType, data, dataTypes, propertyName }) { if (data !== void 0 && dataProp !== void 0) throw new Error('both "data" and "dataProp" passed, only one allowed'); const { gen } = it; if (dataProp !== void 0) { const { errorPath, dataPathArr, opts } = it; dataContextProps(gen.let("data", (0, codegen_1._)`${it.data}${(0, codegen_1.getProperty)(dataProp)}`, true)); subschema.errorPath = (0, codegen_1.str)`${errorPath}${(0, util_1.getErrorPath)(dataProp, dpType, opts.jsPropertySyntax)}`; subschema.parentDataProperty = (0, codegen_1._)`${dataProp}`; subschema.dataPathArr = [...dataPathArr, subschema.parentDataProperty]; } if (data !== void 0) { dataContextProps(data instanceof codegen_1.Name ? data : gen.let("data", data, true)); if (propertyName !== void 0) subschema.propertyName = propertyName; } if (dataTypes) subschema.dataTypes = dataTypes; function dataContextProps(_nextData) { subschema.data = _nextData; subschema.dataLevel = it.dataLevel + 1; subschema.dataTypes = []; it.definedProperties = /* @__PURE__ */ new Set(); subschema.parentData = it.data; subschema.dataNames = [...it.dataNames, _nextData]; } } exports.extendSubschemaData = extendSubschemaData; function extendSubschemaMode(subschema, { jtdDiscriminator, jtdMetadata, compositeRule, createErrors, allErrors }) { if (compositeRule !== void 0) subschema.compositeRule = compositeRule; if (createErrors !== void 0) subschema.createErrors = createErrors; if (allErrors !== void 0) subschema.allErrors = allErrors; subschema.jtdDiscriminator = jtdDiscriminator; subschema.jtdMetadata = jtdMetadata; } exports.extendSubschemaMode = extendSubschemaMode; })); var require_fast_deep_equal = /* @__PURE__ */ __commonJSMin(((exports, module) => { module.exports = function equal(a, b) { if (a === b) return true; if (a && b && typeof a == "object" && typeof b == "object") { if (a.constructor !== b.constructor) return false; var length, i, keys; if (Array.isArray(a)) { length = a.length; if (length != b.length) return false; for (i = length; i-- !== 0; ) if (!equal(a[i], b[i])) return false; return true; } if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags; if (a.valueOf !== Object.prototype.valueOf) return a.valueOf() === b.valueOf(); if (a.toString !== Object.prototype.toString) return a.toString() === b.toString(); keys = Object.keys(a); length = keys.length; if (length !== Object.keys(b).length) return false; for (i = length; i-- !== 0; ) if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false; for (i = length; i-- !== 0; ) { var key = keys[i]; if (!equal(a[key], b[key])) return false; } return true; } return a !== a && b !== b; }; })); var require_json_schema_traverse = /* @__PURE__ */ __commonJSMin(((exports, module) => { var traverse = module.exports = function(schema, opts, cb) { if (typeof opts == "function") { cb = opts; opts = {}; } cb = opts.cb || cb; var pre = typeof cb == "function" ? cb : cb.pre || function() { }; var post = cb.post || function() { }; _traverse(opts, pre, post, schema, "", schema); }; traverse.keywords = { additionalItems: true, items: true, contains: true, additionalProperties: true, propertyNames: true, not: true, if: true, then: true, else: true }; traverse.arrayKeywords = { items: true, allOf: true, anyOf: true, oneOf: true }; traverse.propsKeywords = { $defs: true, definitions: true, properties: true, patternProperties: true, dependencies: true }; traverse.skipKeywords = { default: true, enum: true, const: true, required: true, maximum: true, minimum: true, exclusiveMaximum: true, exclusiveMinimum: true, multipleOf: true, maxLength: true, minLength: true, pattern: true, format: true, maxItems: true, minItems: true, uniqueItems: true, maxProperties: true, minProperties: true }; function _traverse(opts, pre, post, schema, jsonPtr, rootSchema, parentJsonPtr, parentKeyword, parentSchema, keyIndex) { if (schema && typeof schema == "object" && !Array.isArray(schema)) { pre(schema, jsonPtr, rootSchema, parentJsonPtr, parentKeyword, parentSchema, keyIndex); for (var key in schema) { var sch = schema[key]; if (Array.isArray(sch)) { if (key in traverse.arrayKeywords) for (var i = 0; i < sch.length; i++) _traverse(opts, pre, post, sch[i], jsonPtr + "/" + key + "/" + i, rootSchema, jsonPtr, key, schema, i); } else if (key in traverse.propsKeywords) { if (sch && typeof sch == "object") for (var prop in sch) _traverse(opts, pre, post, sch[prop], jsonPtr + "/" + key + "/" + escapeJsonPtr(prop), rootSchema, jsonPtr, key, schema, prop); } else if (key in traverse.keywords || opts.allKeys && !(key in traverse.skipKeywords)) _traverse(opts, pre, post, sch, jsonPtr + "/" + key, rootSchema, jsonPtr, key, schema); } post(schema, jsonPtr, rootSchema, parentJsonPtr, parentKeyword, parentSchema, keyIndex); } } function escapeJsonPtr(str) { return str.replace(/~/g, "~0").replace(/\//g, "~1"); } })); var require_resolve = /* @__PURE__ */ __commonJSMin(((exports) => { Object.defineProperty(exports, "__esModule", { value: true }); exports.getSchemaRefs = exports.resolveUrl = exports.normalizeId = exports._getFullPath = exports.getFullPath = exports.inlineRef = void 0; const util_1 = require_util(); const equal = require_fast_deep_equal(); const traverse = require_json_schema_traverse(); const SIMPLE_INLINED = /* @__PURE__ */ new Set([ "type", "format", "pattern", "maxLength", "minLength", "maxProperties", "minProperties", "maxItems", "minItems", "maximum", "minimum", "uniqueItems", "multipleOf", "required", "enum", "const" ]); function inlineRef(schema, limit = true) { if (typeof schema == "boolean") return true; if (limit === true) return !hasRef(schema); if (!limit) return false; return countKeys(schema) <= limit; } exports.inlineRef = inlineRef; const REF_KEYWORDS = /* @__PURE__ */ new Set([ "$ref", "$recursiveRef", "$recursiveAnchor", "$dynamicRef", "$dynamicAnchor" ]); function hasRef(schema) { for (const key in schema) { if (REF_KEYWORDS.has(key)) return true; const sch = schema[key]; if (Array.isArray(sch) && sch.some(hasRef)) return true; if (typeof sch == "object" && hasRef(sch)) return true; } return false; } function countKeys(schema) { let count = 0; for (const key in schema) { if (key === "$ref") return Infinity; count++; if (SIMPLE_INLINED.has(key)) continue; if (typeof schema[key] == "object") (0, util_1.eachItem)(schema[key], (sch) => count += countKeys(sch)); if (count === Infinity) return Infinity; } return count; } function getFullPath(resolver, id = "", normalize) { if (normalize !== false) id = normalizeId(id); return _getFullPath(resolver, resolver.parse(id)); } exports.getFullPath = getFullPath; function _getFullPath(resolver, p) { return resolver.serialize(p).split("#")[0] + "#"; } exports._getFullPath = _getFullPath; const TRAILING_SLASH_HASH = /#\/?$/; function normalizeId(id) { return id ? id.replace(TRAILING_SLASH_HASH, "") : ""; } exports.normalizeId = normalizeId; function resolveUrl(resolver, baseId, id) { id = normalizeId(id); return resolver.resolve(baseId, id); } exports.resolveUrl = resolveUrl; const ANCHOR = /^[a-z_][-a-z0-9._]*$/i; function getSchemaRefs(schema, baseId) { if (typeof schema == "boolean") return {}; const { schemaId, uriResolver } = this.opts; const schId = normalizeId(schema[schemaId] || baseId); const baseIds = { "": schId }; const pathPrefix = getFullPath(uriResolver, schId, false); const localRefs = {}; const schemaRefs = /* @__PURE__ */ new Set(); traverse(schema, { allKeys: true }, (sch, jsonPtr, _, parentJsonPtr) => { if (parentJsonPtr === void 0) return; const fullPath = pathPrefix + jsonPtr; let innerBaseId = baseIds[parentJsonPtr]; if (typeof sch[schemaId] == "string") innerBaseId = addRef.call(this, sch[schemaId]); addAnchor.call(this, sch.$anchor); addAnchor.call(this, sch.$dynamicAnchor); baseIds[jsonPtr] = innerBaseId; function addRef(ref) { const _resolve = this.opts.uriResolver.resolve; ref = normalizeId(innerBaseId ? _resolve(innerBaseId, ref) : ref); if (schemaRefs.has(ref)) throw ambiguos(ref); schemaRefs.add(ref); let schOrRef = this.refs[ref]; if (typeof schOrRef == "string") schOrRef = this.refs[schOrRef]; if (typeof schOrRef == "object") checkAmbiguosRef(sch, schOrRef.schema, ref); else if (ref !== normalizeId(fullPath)) if (ref[0] === "#") { checkAmbiguosRef(sch, localRefs[ref], ref); localRefs[ref] = sch; } else this.refs[ref] = fullPath; return ref; } function addAnchor(anchor2) { if (typeof anchor2 == "string") { if (!ANCHOR.test(anchor2)) throw new Error(`invalid anchor "${anchor2}"`); addRef.call(this, `#${anchor2}`); } } }); return localRefs; function checkAmbiguosRef(sch1, sch2, ref) { if (sch2 !== void 0 && !equal(sch1, sch2)) throw ambiguos(ref); } function ambiguos(ref) { return /* @__PURE__ */ new Error(`reference "${ref}" resolves to more than one schema`); } } exports.getSchemaRefs = getSchemaRefs; })); var require_validate = /* @__PURE__ */ __commonJSMin(((exports) => { Object.defineProperty(exports, "__esModule", { value: true }); exports.getData = exports.KeywordCxt = exports.validateFunctionCode = void 0; const boolSchema_1 = require_boolSchema(); const dataType_1 = require_dataType(); const applicability_1 = require_applicability(); const dataType_2 = require_dataType(); const defaults_1 = require_defaults(); const keyword_1 = require_keyword(); const subschema_1 = require_subschema(); const codegen_1 = require_codegen(); const names_1 = require_names(); const resolve_1 = require_resolve(); const util_1 = require_util(); const errors_1 = require_errors(); function validateFunctionCode(it) { if (isSchemaObj(it)) { checkKeywords(it); if (schemaCxtHasRules(it)) { topSchemaObjCode(it); return; } } validateFunction(it, () => (0, boolSchema_1.topBoolOrEmptySchema)(it)); } exports.validateFunctionCode = validateFunctionCode; function validateFunction({ gen, validateName, schema, schemaEnv, opts }, body) { if (opts.code.es5) gen.func(validateName, (0, codegen_1._)`${names_1.default.data}, ${names_1.default.valCxt}`, schemaEnv.$async, () => { gen.code((0, codegen_1._)`"use strict"; ${funcSourceUrl(schema, opts)}`); destructureValCxtES5(gen, opts); gen.code(body); }); else gen.func(validateName, (0, codegen_1._)`${names_1.default.data}, ${destructureValCxt(opts)}`, schemaEnv.$async, () => gen.code(funcSourceUrl(schema, opts)).code(body)); } function destructureValCxt(opts) { return (0, codegen_1._)`{${names_1.default.instancePath}="", ${names_1.default.parentData}, ${names_1.default.parentDataProperty}, ${names_1.default.rootData}=${names_1.default.data}${opts.dynamicRef ? (0, codegen_1._)`, ${names_1.default.dynamicAnchors}={}` : codegen_1.nil}}={}`; } function destructureValCxtES5(gen, opts) { gen.if(names_1.default.valCxt, () => { gen.var(names_1.default.instancePath, (0, codegen_1._)`${names_1.default.valCxt}.${names_1.default.instancePath}`); gen.var(names_1.default.parentData, (0, codegen_1._)`${names_1.default.valCxt}.${names_1.default.parentData}`); gen.var(names_1.default.parentDataProperty, (0, codegen_1._)`${names_1.default.valCxt}.${names_1.default.parentDataProperty}`); gen.var(names_1.default.rootData, (0, codegen_1._)`${names_1.default.valCxt}.${names_1.default.rootData}`); if (opts.dynamicRef) gen.var(names_1.default.dynamicAnchors, (0, codegen_1._)`${names_1.default.valCxt}.${names_1.default.dynamicAnchors}`); }, () => { gen.var(names_1.default.instancePath, (0, codegen_1._)`""`); gen.var(names_1.default.parentData, (0, codegen_1._)`undefined`); gen.var(names_1.default.parentDataProperty, (0, codegen_1._)`undefined`); gen.var(names_1.default.rootData, names_1.default.data); if (opts.dynamicRef) gen.var(names_1.default.dynamicAnchors, (0, codegen_1._)`{}`); }); } function topSchemaObjCode(it) { const { schema, opts, gen } = it; validateFunction(it, () => { if (opts.$comment && schema.$comment) commentKeyword(it); checkNoDefault(it); gen.let(names_1.default.vErrors, null); gen.let(names_1.default.errors, 0); if (opts.unevaluated) resetEvaluated(it); typeAndKeywords(it); returnResults(it); }); } function resetEvaluated(it) { const { gen, validateName } = it; it.evaluated = gen.const("evaluated", (0, codegen_1._)`${validateName}.evaluated`); gen.if((0, codegen_1._)`${it.evaluated}.dynamicProps`, () => gen.assign((0, codegen_1._)`${it.evaluated}.props`, (0, codegen_1._)`undefined`)); gen.if((0, codegen_1._)`${it.evaluated}.dynamicItems`, () => gen.assign((0, codegen_1._)`${it.evaluated}.items`, (0, codegen_1._)`undefined`)); } function funcSourceUrl(schema, opts) { const schId = typeof schema == "object" && schema[opts.schemaId]; return schId && (opts.code.source || opts.code.process) ? (0, codegen_1._)`/*# sourceURL=${schId} */` : codegen_1.nil; } function subschemaCode(it, valid) { if (isSchemaObj(it)) { checkKeywords(it); if (schemaCxtHasRules(it)) { subSchemaObjCode(it, valid); return; } } (0, boolSchema_1.boolOrEmptySchema)(it, valid); } function schemaCxtHasRules({ schema, self }) { if (typeof schema == "boolean") return !schema; for (const key in schema) if (self.RULES.all[key]) return true; return false; } function isSchemaObj(it) { return typeof it.schema != "boolean"; } function subSchemaObjCode(it, valid) { const { schema, gen, opts } = it; if (opts.$comment && schema.$comment) commentKeyword(it); updateContext(it); checkAsyncSchema(it); const errsCount = gen.const("_errs", names_1.default.errors); typeAndKeywords(it, errsCount); gen.var(valid, (0, codegen_1._)`${errsCount} === ${names_1.default.errors}`); } function checkKeywords(it) { (0, util_1.checkUnknownRules)(it); checkRefsAndKeywords(it); } function typeAndKeywords(it, errsCount) { if (it.opts.jtd) return schemaKeywords(it, [], false, errsCount); const types = (0, dataType_1.getSchemaTypes)(it.schema); schemaKeywords(it, types, !(0, dataType_1.coerceAndCheckDataType)(it, types), errsCount); } function checkRefsAndKeywords(it) { const { schema, errSchemaPath, opts, self } = it; if (schema.$ref && opts.ignoreKeywordsWithRef && (0, util_1.schemaHasRulesButRef)(schema, self.RULES)) self.logger.warn(`$ref: keywords ignored in schema at path "${errSchemaPath}"`); } function checkNoDefault(it) { const { schema, opts } = it; if (schema.default !== void 0 && opts.useDefaults && opts.strictSchema) (0, util_1.checkStrictMode)(it, "default is ignored in the schema root"); } function updateContext(it) { const schId = it.schema[it.opts.schemaId]; if (schId) it.baseId = (0, resolve_1.resolveUrl)(it.opts.uriResolver, it.baseId, schId); } function checkAsyncSchema(it) { if (it.schema.$async && !it.schemaEnv.$async) throw new Error("async schema in sync schema"); } function commentKeyword({ gen, schemaEnv, schema, errSchemaPath, opts }) { const msg = schema.$comment; if (opts.$comment === true) gen.code((0, codegen_1._)`${names_1.default.self}.logger.log(${msg})`); else if (typeof opts.$comment == "function") { const schemaPath = (0, codegen_1.str)`${errSchemaPath}/$comment`; const rootName = gen.scopeValue("root", { ref: schemaEnv.root }); gen.code((0, codegen_1._)`${names_1.default.self}.opts.$comment(${msg}, ${schemaPath}, ${rootName}.schema)`); } } function returnResults(it) { const { gen, schemaEnv, validateName, ValidationError, opts } = it; if (schemaEnv.$async) gen.if((0, codegen_1._)`${names_1.default.errors} === 0`, () => gen.return(names_1.default.data), () => gen.throw((0, codegen_1._)`new ${ValidationError}(${names_1.default.vErrors})`)); else { gen.assign((0, codegen_1._)`${validateName}.errors`, names_1.default.vErrors); if (opts.unevaluated) assignEvaluated(it); gen.return((0, codegen_1._)`${names_1.default.errors} === 0`); } } function assignEvaluated({ gen, evaluated, props, items }) { if (props instanceof codegen_1.Name) gen.assign((0, codegen_1._)`${evaluated}.props`, props); if (items instanceof codegen_1.Name) gen.assign((0, codegen_1._)`${evaluated}.items`, items); } function schemaKeywords(it, types, typeErrors, errsCount) { const { gen, schema, data, allErrors, opts, self } = it; const { RULES } = self; if (schema.$ref && (opts.ignoreKeywordsWithRef || !(0, util_1.schemaHasRulesButRef)(schema, RULES))) { gen.block(() => keywordCode(it, "$ref", RULES.all.$ref.definition)); return; } if (!opts.jtd) checkStrictTypes(it, types); gen.block(() => { for (const group of RULES.rules) groupKeywords(group); groupKeywords(RULES.post); }); function groupKeywords(group) { if (!(0, applicability_1.shouldUseGroup)(schema, group)) return; if (group.type) { gen.if((0, dataType_2.checkDataType)(group.type, data, opts.strictNumbers)); iterateKeywords(it, group); if (types.length === 1 && types[0] === group.type && typeErrors) { gen.else(); (0, dataType_2.reportTypeError)(it); } gen.endIf(); } else iterateKeywords(it, group); if (!allErrors) gen.if((0, codegen_1._)`${names_1.default.errors} === ${errsCount || 0}`); } } function iterateKeywords(it, group) { const { gen, schema, opts: { useDefaults } } = it; if (useDefaults) (0, defaults_1.assignDefaults)(it, group.type); gen.block(() => { for (const rule of group.rules) if ((0, applicability_1.shouldUseRule)(schema, rule)) keywordCode(it, rule.keyword, rule.definition, group.type); }); } function checkStrictTypes(it, types) { if (it.schemaEnv.meta || !it.opts.strictTypes) return; checkContextTypes(it, types); if (!it.opts.allowUnionTypes) checkMultipleTypes(it, types); checkKeywordTypes(it, it.dataTypes); } function checkContextTypes(it, types) { if (!types.length) return; if (!it.dataTypes.length) { it.dataTypes = types; return; } types.forEach((t) => { if (!includesType(it.dataTypes, t)) strictTypesError(it, `type "${t}" not allowed by context "${it.dataTypes.join(",")}"`); }); narrowSchemaTypes(it, types); } function checkMultipleTypes(it, ts) { if (ts.length > 1 && !(ts.length === 2 && ts.includes("null"))) strictTypesError(it, "use allowUnionTypes to allow union type keyword"); } function checkKeywordTypes(it, ts) { const rules = it.self.RULES.all; for (const keyword in rules) { const rule = rules[keyword]; if (typeof rule == "object" && (0, applicability_1.shouldUseRule)(it.schema, rule)) { const { type } = rule.definition; if (type.length && !type.some((t) => hasApplicableType(ts, t))) strictTypesError(it, `missing type "${type.join(",")}" for keyword "${keyword}"`); } } } function hasApplicableType(schTs, kwdT) { return schTs.includes(kwdT) || kwdT === "number" && schTs.includes("integer"); } function includesType(ts, t) { return ts.includes(t) || t === "integer" && ts.includes("number"); } function narrowSchemaTypes(it, withTypes) { const ts = []; for (const t of it.dataTypes) if (includesType(withTypes, t)) ts.push(t); else if (withTypes.includes("integer") && t === "number") ts.push("integer"); it.dataTypes = ts; } function strictTypesError(it, msg) { const schemaPath = it.schemaEnv.baseId + it.errSchemaPath; msg += ` at "${schemaPath}" (strictTypes)`; (0, util_1.checkStrictMode)(it, msg, it.opts.strictTypes); } var KeywordCxt = class { constructor(it, def, keyword) { (0, keyword_1.validateKeywordUsage)(it, def, keyword); this.gen = it.gen; this.allErrors = it.allErrors; this.keyword = keyword; this.data = it.data; this.schema = it.schema[keyword]; this.$data = def.$data && it.opts.$data && this.schema && this.schema.$data; this.schemaValue = (0, util_1.schemaRefOrVal)(it, this.schema, keyword, this.$data); this.schemaType = def.schemaType; this.parentSchema = it.schema; this.params = {}; this.it = it; this.def = def; if (this.$data) this.schemaCode = it.gen.const("vSchema", getData(this.$data, it)); else { this.schemaCode = this.schemaValue; if (!(0, keyword_1.validSchemaType)(this.schema, def.schemaType, def.allowUndefined)) throw new Error(`${keyword} value must be ${JSON.stringify(def.schemaType)}`); } if ("code" in def ? def.trackErrors : def.errors !== false) this.errsCount = it.gen.const("_errs", names_1.default.errors); } result(condition, successAction, failAction) { this.failResult((0, codegen_1.not)(condition), successAction, failAction); } failResult(condition, successAction, failAction) { this.gen.if(condition); if (failAction) failAction(); else this.error(); if (successAction) { this.gen.else(); successAction(); if (this.allErrors) this.gen.endIf(); } else if (this.allErrors) this.gen.endIf(); else this.gen.else(); } pass(condition, failAction) { this.failResult((0, codegen_1.not)(condition), void 0, failAction); } fail(condition) { if (condition === void 0) { this.error(); if (!this.allErrors) this.gen.if(false); return; } this.gen.if(condition); this.error(); if (this.allErrors) this.gen.endIf(); else this.gen.else(); } fail$data(condition) { if (!this.$data) return this.fail(condition); const { schemaCode } = this; this.fail((0, codegen_1._)`${schemaCode} !== undefined && (${(0, codegen_1.or)(this.invalid$data(), condition)})`); } error(append, errorParams, errorPaths) { if (errorParams) { this.setParams(errorParams); this._error(append, errorPaths); this.setParams({}); return; } this._error(append, errorPaths); } _error(append, errorPaths) { (append ? errors_1.reportExtraError : errors_1.reportError)(this, this.def.error, errorPaths); } $dataError() { (0, errors_1.reportError)(this, this.def.$dataError || errors_1.keyword$DataError); } reset() { if (this.errsCount === void 0) throw new Error('add "trackErrors" to keyword definition'); (0, errors_1.resetErrorsCount)(this.gen, this.errsCount); } ok(cond) { if (!this.allErrors) this.gen.if(cond); } setParams(obj, assign) { if (assign) Object.assign(this.params, obj); else this.params = obj; } block$data(valid, codeBlock, $dataValid = codegen_1.nil) { this.gen.block(() => { this.check$data(valid, $dataValid); codeBlock(); }); } check$data(valid = codegen_1.nil, $dataValid = codegen_1.nil) { if (!this.$data) return; const { gen, schemaCode, schemaType, def } = this; gen.if((0, codegen_1.or)((0, codegen_1._)`${schemaCode} === undefined`, $dataValid)); if (valid !== codegen_1.nil) gen.assign(valid, true); if (schemaType.length || def.validateSchema) { gen.elseIf(this.invalid$data()); this.$dataError(); if (valid !== codegen_1.nil) gen.assign(valid, false); } gen.else(); } invalid$data() { const { gen, schemaCode, schemaType, def, it } = this; return (0, codegen_1.or)(wrong$DataType(), invalid$DataSchema()); function wrong$DataType() { if (schemaType.length) { if (!(schemaCode instanceof codegen_1.Name)) throw new Error("ajv implementation error"); const st = Array.isArray(schemaType) ? schemaType : [schemaType]; return (0, codegen_1._)`${(0, dataType_2.checkDataTypes)(st, schemaCode, it.opts.strictNumbers, dataType_2.DataType.Wrong)}`; } return codegen_1.nil; } function invalid$DataSchema() { if (def.validateSchema) { const validateSchemaRef = gen.scopeValue("validate$data", { ref: def.validateSchema }); return (0, codegen_1._)`!${validateSchemaRef}(${schemaCode})`; } return codegen_1.nil; } } subschema(appl, valid) { const subschema = (0, subschema_1.getSubschema)(this.it, appl); (0, subschema_1.extendSubschemaData)(subschema, this.it, appl); (0, subschema_1.extendSubschemaMode)(subschema, appl); const nextContext = { ...this.it, ...subschema, items: void 0, props: void 0 }; subschemaCode(nextContext, valid); return nextContext; } mergeEvaluated(schemaCxt, toName) { const { it, gen } = this; if (!it.opts.unevaluated) return; if (it.props !== true && schemaCxt.props !== void 0) it.props = util_1.mergeEvaluated.props(gen, schemaCxt.props, it.props, toName); if (it.items !== true && schemaCxt.items !== void 0) it.items = util_1.mergeEvaluated.items(gen, schemaCxt.items, it.items, toName); } mergeValidEvaluated(schemaCxt, valid) { const { it, gen } = this; if (it.opts.unevaluated && (it.props !== true || it.items !== true)) { gen.if(valid, () => this.mergeEvaluated(schemaCxt, codegen_1.Name)); return true; } } }; exports.KeywordCxt = KeywordCxt; function keywordCode(it, keyword, def, ruleType) { const cxt = new KeywordCxt(it, def, keyword); if ("code" in def) def.code(cxt, ruleType); else if (cxt.$data && def.validate) (0, keyword_1.funcKeywordCode)(cxt, def); else if ("macro" in def) (0, keyword_1.macroKeywordCode)(cxt, def); else if (def.compile || def.validate) (0, keyword_1.funcKeywordCode)(cxt, def); } const JSON_POINTER = /^\/(?:[^~]|~0|~1)*$/; const RELATIVE_JSON_POINTER = /^([0-9]+)(#|\/(?:[^~]|~0|~1)*)?$/; function getData($data, { dataLevel, dataNames, dataPathArr }) { let jsonPointer; let data; if ($data === "") return names_1.default.rootData; if ($data[0] === "/") { if (!JSON_POINTER.test($data)) throw new Error(`Invalid JSON-pointer: ${$data}`); jsonPointer = $data; data = names_1.default.rootData; } else { const matches = RELATIVE_JSON_POINTER.exec($data); if (!matches) throw new Error(`Invalid JSON-pointer: ${$data}`); const up = +matches[1]; jsonPointer = matches[2]; if (jsonPointer === "#") { if (up >= dataLevel) throw new Error(errorMsg("property/index", up)); return dataPathArr[dataLevel - up]; } if (up > dataLevel) throw new Error(errorMsg("data", up)); data = dataNames[dataLevel - up]; if (!jsonPointer) return data; } let expr = data; const segments = jsonPointer.split("/"); for (const segment of segments) if (segment) { data = (0, codegen_1._)`${data}${(0, codegen_1.getProperty)((0, util_1.unescapeJsonPointer)(segment))}`; expr = (0, codegen_1._)`${expr} && ${data}`; } return expr; function errorMsg(pointerType, up) { return `Cannot access ${pointerType} ${up} levels up, current level is ${dataLevel}`; } } exports.getData = getData; })); var require_validation_error = /* @__PURE__ */ __commonJSMin(((exports) => { Object.defineProperty(exports, "__esModule", { value: true }); var ValidationError = class extends Error { constructor(errors) { super("validation failed"); this.errors = errors; this.ajv = this.validation = true; } }; exports.default = ValidationError; })); var require_ref_error = /* @__PURE__ */ __commonJSMin(((exports) => { Object.defineProperty(exports, "__esModule", { value: true }); const resolve_1 = require_resolve(); var MissingRefError = class extends Error { constructor(resolver, baseId, ref, msg) { super(msg || `can't resolve reference ${ref} from id ${baseId}`); this.missingRef = (0, resolve_1.resolveUrl)(resolver, baseId, ref); this.missingSchema = (0, resolve_1.normalizeId)((0, resolve_1.getFullPath)(resolver, this.missingRef)); } }; exports.default = MissingRefError; })); var require_compile = /* @__PURE__ */ __commonJSMin(((exports) => { Object.defineProperty(exports, "__esModule", { value: true }); exports.resolveSchema = exports.getCompilingSchema = exports.resolveRef = exports.compileSchema = exports.SchemaEnv = void 0; const codegen_1 = require_codegen(); const validation_error_1 = require_validation_error(); const names_1 = require_names(); const resolve_1 = require_resolve(); const util_1 = require_util(); const validate_1 = require_validate(); var SchemaEnv = class { constructor(env) { var _a3; this.refs = {}; this.dynamicAnchors = {}; let schema; if (typeof env.schema == "object") schema = env.schema; this.schema = env.schema; this.schemaId = env.schemaId; this.root = env.root || this; this.baseId = (_a3 = env.baseId) !== null && _a3 !== void 0 ? _a3 : (0, resolve_1.normalizeId)(schema === null || schema === void 0 ? void 0 : schema[env.schemaId || "$id"]); this.schemaPath = env.schemaPath; this.localRefs = env.localRefs; this.meta = env.meta; this.$async = schema === null || schema === void 0 ? void 0 : schema.$async; this.refs = {}; } }; exports.SchemaEnv = SchemaEnv; function compileSchema(sch) { const _sch = getCompilingSchema.call(this, sch); if (_sch) return _sch; const rootId = (0, resolve_1.getFullPath)(this.opts.uriResolver, sch.root.baseId); const { es5, lines } = this.opts.code; const { ownProperties } = this.opts; const gen = new codegen_1.CodeGen(this.scope, { es5, lines, ownProperties }); let _ValidationError; if (sch.$async) _ValidationError = gen.scopeValue("Error", { ref: validation_error_1.default, code: (0, codegen_1._)`require("ajv/dist/runtime/validation_error").default` }); const validateName = gen.scopeName("validate"); sch.validateName = validateName; const schemaCxt = { gen, allErrors: this.opts.allErrors, data: names_1.default.data, parentData: names_1.default.parentData, parentDataProperty: names_1.default.parentDataProperty, dataNames: [names_1.default.data], dataPathArr: [codegen_1.nil], dataLevel: 0, dataTypes: [], definedProperties: /* @__PURE__ */ new Set(), topSchemaRef: gen.scopeValue("schema", this.opts.code.source === true ? { ref: sch.schema, code: (0, codegen_1.stringify)(sch.schema) } : { ref: sch.schema }), validateName, ValidationError: _ValidationError, schema: sch.schema, schemaEnv: sch, rootId, baseId: sch.baseId || rootId, schemaPath: codegen_1.nil, errSchemaPath: sch.schemaPath || (this.opts.jtd ? "" : "#"), errorPath: (0, codegen_1._)`""`, opts: this.opts, self: this }; let sourceCode; try { this._compilations.add(sch); (0, validate_1.validateFunctionCode)(schemaCxt); gen.optimize(this.opts.code.optimize); const validateCode = gen.toString(); sourceCode = `${gen.scopeRefs(names_1.default.scope)}return ${validateCode}`; if (this.opts.code.process) sourceCode = this.opts.code.process(sourceCode, sch); const validate3 = new Function(`${names_1.default.self}`, `${names_1.default.scope}`, sourceCode)(this, this.scope.get()); this.scope.value(validateName, { ref: validate3 }); validate3.errors = null; validate3.schema = sch.schema; validate3.schemaEnv = sch; if (sch.$async) validate3.$async = true; if (this.opts.code.source === true) validate3.source = { validateName, validateCode, scopeValues: gen._values }; if (this.opts.unevaluated) { const { props, items } = schemaCxt; validate3.evaluated = { props: props instanceof codegen_1.Name ? void 0 : props, items: items instanceof codegen_1.Name ? void 0 : items, dynamicProps: props instanceof codegen_1.Name, dynamicItems: items instanceof codegen_1.Name }; if (validate3.source) validate3.source.evaluated = (0, codegen_1.stringify)(validate3.evaluated); } sch.validate = validate3; return sch; } catch (e) { delete sch.validate; delete sch.validateName; if (sourceCode) this.logger.error("Error compiling schema, function code:", sourceCode); throw e; } finally { this._compilations.delete(sch); } } exports.compileSchema = compileSchema; function resolveRef2(root, baseId, ref) { var _a3; ref = (0, resolve_1.resolveUrl)(this.opts.uriResolver, baseId, ref); const schOrFunc = root.refs[ref]; if (schOrFunc) return schOrFunc; let _sch = resolve2.call(this, root, ref); if (_sch === void 0) { const schema = (_a3 = root.localRefs) === null || _a3 === void 0 ? void 0 : _a3[ref]; const { schemaId } = this.opts; if (schema) _sch = new SchemaEnv({ schema, schemaId, root, baseId }); } if (_sch === void 0) return; return root.refs[ref] = inlineOrCompile.call(this, _sch); } exports.resolveRef = resolveRef2; function inlineOrCompile(sch) { if ((0, resolve_1.inlineRef)(sch.schema, this.opts.inlineRefs)) return sch.schema; return sch.validate ? sch : compileSchema.call(this, sch); } function getCompilingSchema(schEnv) { for (const sch of this._compilations) if (sameSchemaEnv(sch, schEnv)) return sch; } exports.getCompilingSchema = getCompilingSchema; function sameSchemaEnv(s1, s2) { return s1.schema === s2.schema && s1.root === s2.root && s1.baseId === s2.baseId; } function resolve2(root, ref) { let sch; while (typeof (sch = this.refs[ref]) == "string") ref = sch; return sch || this.schemas[ref] || resolveSchema.call(this, root, ref); } function resolveSchema(root, ref) { const p = this.opts.uriResolver.parse(ref); const refPath = (0, resolve_1._getFullPath)(this.opts.uriResolver, p); let baseId = (0, resolve_1.getFullPath)(this.opts.uriResolver, root.baseId, void 0); if (Object.keys(root.schema).length > 0 && refPath === baseId) return getJsonPointer.call(this, p, root); const id = (0, resolve_1.normalizeId)(refPath); const schOrRef = this.refs[id] || this.schemas[id]; if (typeof schOrRef == "string") { const sch = resolveSchema.call(this, root, schOrRef); if (typeof (sch === null || sch === void 0 ? void 0 : sch.schema) !== "object") return; return getJsonPointer.call(this, p, sch); } if (typeof (schOrRef === null || schOrRef === void 0 ? void 0 : schOrRef.schema) !== "object") return; if (!schOrRef.validate) compileSchema.call(this, schOrRef); if (id === (0, resolve_1.normalizeId)(ref)) { const { schema } = schOrRef; const { schemaId } = this.opts; const schId = schema[schemaId]; if (schId) baseId = (0, resolve_1.resolveUrl)(this.opts.uriResolver, baseId, schId); return new SchemaEnv({ schema, schemaId, root, baseId }); } return getJsonPointer.call(this, p, schOrRef); } exports.resolveSchema = resolveSchema; const PREVENT_SCOPE_CHANGE = /* @__PURE__ */ new Set([ "properties", "patternProperties", "enum", "dependencies", "definitions" ]); function getJsonPointer(parsedRef, { baseId, schema, root }) { var _a3; if (((_a3 = parsedRef.fragment) === null || _a3 === void 0 ? void 0 : _a3[0]) !== "/") return; for (const part of parsedRef.fragment.slice(1).split("/")) { if (typeof schema === "boolean") return; const partSchema = schema[(0, util_1.unescapeFragment)(part)]; if (partSchema === void 0) return; schema = partSchema; const schId = typeof schema === "object" && schema[this.opts.schemaId]; if (!PREVENT_SCOPE_CHANGE.has(part) && schId) baseId = (0, resolve_1.resolveUrl)(this.opts.uriResolver, baseId, schId); } let env; if (typeof schema != "boolean" && schema.$ref && !(0, util_1.schemaHasRulesButRef)(schema, this.RULES)) { const $ref = (0, resolve_1.resolveUrl)(this.opts.uriResolver, baseId, schema.$ref); env = resolveSchema.call(this, root, $ref); } const { schemaId } = this.opts; env = env || new SchemaEnv({ schema, schemaId, root, baseId }); if (env.schema !== env.root.schema) return env; } })); var require_data = /* @__PURE__ */ __commonJSMin(((exports, module) => { module.exports = { "$id": "https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#", "description": "Meta-schema for $data reference (JSON AnySchema extension proposal)", "type": "object", "required": ["$data"], "properties": { "$data": { "type": "string", "anyOf": [{ "format": "relative-json-pointer" }, { "format": "json-pointer" }] } }, "additionalProperties": false }; })); var require_utils = /* @__PURE__ */ __commonJSMin(((exports, module) => { const isUUID = RegExp.prototype.test.bind(/^[\da-f]{8}-[\da-f]{4}-[\da-f]{4}-[\da-f]{4}-[\da-f]{12}$/iu); const isIPv4 = RegExp.prototype.test.bind(/^(?:(?:25[0-5]|2[0-4]\d|1\d{2}|[1-9]\d|\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d{2}|[1-9]\d|\d)$/u); function stringArrayToHexStripped(input2) { let acc = ""; let code = 0; let i = 0; for (i = 0; i < input2.length; i++) { code = input2[i].charCodeAt(0); if (code === 48) continue; if (!(code >= 48 && code <= 57 || code >= 65 && code <= 70 || code >= 97 && code <= 102)) return ""; acc += input2[i]; break; } for (i += 1; i < input2.length; i++) { code = input2[i].charCodeAt(0); if (!(code >= 48 && code <= 57 || code >= 65 && code <= 70 || code >= 97 && code <= 102)) return ""; acc += input2[i]; } return acc; } const nonSimpleDomain = RegExp.prototype.test.bind(/[^!"$&'()*+,\-.;=_`a-z{}~]/u); function consumeIsZone(buffer) { buffer.length = 0; return true; } function consumeHextets(buffer, address, output2) { if (buffer.length) { const hex3 = stringArrayToHexStripped(buffer); if (hex3 !== "") address.push(hex3); else { output2.error = true; return false; } buffer.length = 0; } return true; } function getIPV6(input2) { let tokenCount = 0; const output2 = { error: false, address: "", zone: "" }; const address = []; const buffer = []; let endipv6Encountered = false; let endIpv6 = false; let consume2 = consumeHextets; for (let i = 0; i < input2.length; i++) { const cursor = input2[i]; if (cursor === "[" || cursor === "]") continue; if (cursor === ":") { if (endipv6Encountered === true) endIpv6 = true; if (!consume2(buffer, address, output2)) break; if (++tokenCount > 7) { output2.error = true; break; } if (i > 0 && input2[i - 1] === ":") endipv6Encountered = true; address.push(":"); continue; } else if (cursor === "%") { if (!consume2(buffer, address, output2)) break; consume2 = consumeIsZone; } else { buffer.push(cursor); continue; } } if (buffer.length) if (consume2 === consumeIsZone) output2.zone = buffer.join(""); else if (endIpv6) address.push(buffer.join("")); else address.push(stringArrayToHexStripped(buffer)); output2.address = address.join(""); return output2; } function normalizeIPv6(host) { if (findToken(host, ":") < 2) return { host, isIPV6: false }; const ipv63 = getIPV6(host); if (!ipv63.error) { let newHost = ipv63.address; let escapedHost = ipv63.address; if (ipv63.zone) { newHost += "%" + ipv63.zone; escapedHost += "%25" + ipv63.zone; } return { host: newHost, isIPV6: true, escapedHost }; } else return { host, isIPV6: false }; } function findToken(str, token) { let ind = 0; for (let i = 0; i < str.length; i++) if (str[i] === token) ind++; return ind; } function removeDotSegments(path) { let input2 = path; const output2 = []; let nextSlash = -1; let len = 0; while (len = input2.length) { if (len === 1) if (input2 === ".") break; else if (input2 === "/") { output2.push("/"); break; } else { output2.push(input2); break; } else if (len === 2) { if (input2[0] === ".") { if (input2[1] === ".") break; else if (input2[1] === "/") { input2 = input2.slice(2); continue; } } else if (input2[0] === "/") { if (input2[1] === "." || input2[1] === "/") { output2.push("/"); break; } } } else if (len === 3) { if (input2 === "/..") { if (output2.length !== 0) output2.pop(); output2.push("/"); break; } } if (input2[0] === ".") { if (input2[1] === ".") { if (input2[2] === "/") { input2 = input2.slice(3); continue; } } else if (input2[1] === "/") { input2 = input2.slice(2); continue; } } else if (input2[0] === "/") { if (input2[1] === ".") { if (input2[2] === "/") { input2 = input2.slice(2); continue; } else if (input2[2] === ".") { if (input2[3] === "/") { input2 = input2.slice(3); if (output2.length !== 0) output2.pop(); continue; } } } } if ((nextSlash = input2.indexOf("/", 1)) === -1) { output2.push(input2); break; } else { output2.push(input2.slice(0, nextSlash)); input2 = input2.slice(nextSlash); } } return output2.join(""); } function normalizeComponentEncoding(component, esc2) { const func = esc2 !== true ? escape : unescape; if (component.scheme !== void 0) component.scheme = func(component.scheme); if (component.userinfo !== void 0) component.userinfo = func(component.userinfo); if (component.host !== void 0) component.host = func(component.host); if (component.path !== void 0) component.path = func(component.path); if (component.query !== void 0) component.query = func(component.query); if (component.fragment !== void 0) component.fragment = func(component.fragment); return component; } function recomposeAuthority(component) { const uriTokens = []; if (component.userinfo !== void 0) { uriTokens.push(component.userinfo); uriTokens.push("@"); } if (component.host !== void 0) { let host = unescape(component.host); if (!isIPv4(host)) { const ipV6res = normalizeIPv6(host); if (ipV6res.isIPV6 === true) host = `[${ipV6res.escapedHost}]`; else host = component.host; } uriTokens.push(host); } if (typeof component.port === "number" || typeof component.port === "string") { uriTokens.push(":"); uriTokens.push(String(component.port)); } return uriTokens.length ? uriTokens.join("") : void 0; } module.exports = { nonSimpleDomain, recomposeAuthority, normalizeComponentEncoding, removeDotSegments, isIPv4, isUUID, normalizeIPv6, stringArrayToHexStripped }; })); var require_schemes = /* @__PURE__ */ __commonJSMin(((exports, module) => { const { isUUID } = require_utils(); const URN_REG = /([\da-z][\d\-a-z]{0,31}):((?:[\w!$'()*+,\-.:;=@]|%[\da-f]{2})+)/iu; const supportedSchemeNames = [ "http", "https", "ws", "wss", "urn", "urn:uuid" ]; function isValidSchemeName(name) { return supportedSchemeNames.indexOf(name) !== -1; } function wsIsSecure(wsComponent) { if (wsComponent.secure === true) return true; else if (wsComponent.secure === false) return false; else if (wsComponent.scheme) return wsComponent.scheme.length === 3 && (wsComponent.scheme[0] === "w" || wsComponent.scheme[0] === "W") && (wsComponent.scheme[1] === "s" || wsComponent.scheme[1] === "S") && (wsComponent.scheme[2] === "s" || wsComponent.scheme[2] === "S"); else return false; } function httpParse(component) { if (!component.host) component.error = component.error || "HTTP URIs must have a host."; return component; } function httpSerialize(component) { const secure = String(component.scheme).toLowerCase() === "https"; if (component.port === (secure ? 443 : 80) || component.port === "") component.port = void 0; if (!component.path) component.path = "/"; return component; } function wsParse(wsComponent) { wsComponent.secure = wsIsSecure(wsComponent); wsComponent.resourceName = (wsComponent.path || "/") + (wsComponent.query ? "?" + wsComponent.query : ""); wsComponent.path = void 0; wsComponent.query = void 0; return wsComponent; } function wsSerialize(wsComponent) { if (wsComponent.port === (wsIsSecure(wsComponent) ? 443 : 80) || wsComponent.port === "") wsComponent.port = void 0; if (typeof wsComponent.secure === "boolean") { wsComponent.scheme = wsComponent.secure ? "wss" : "ws"; wsComponent.secure = void 0; } if (wsComponent.resourceName) { const [path, query] = wsComponent.resourceName.split("?"); wsComponent.path = path && path !== "/" ? path : void 0; wsComponent.query = query; wsComponent.resourceName = void 0; } wsComponent.fragment = void 0; return wsComponent; } function urnParse(urnComponent, options) { if (!urnComponent.path) { urnComponent.error = "URN can not be parsed"; return urnComponent; } const matches = urnComponent.path.match(URN_REG); if (matches) { const scheme = options.scheme || urnComponent.scheme || "urn"; urnComponent.nid = matches[1].toLowerCase(); urnComponent.nss = matches[2]; const schemeHandler = getSchemeHandler(`${scheme}:${options.nid || urnComponent.nid}`); urnComponent.path = void 0; if (schemeHandler) urnComponent = schemeHandler.parse(urnComponent, options); } else urnComponent.error = urnComponent.error || "URN can not be parsed."; return urnComponent; } function urnSerialize(urnComponent, options) { if (urnComponent.nid === void 0) throw new Error("URN without nid cannot be serialized"); const scheme = options.scheme || urnComponent.scheme || "urn"; const nid = urnComponent.nid.toLowerCase(); const schemeHandler = getSchemeHandler(`${scheme}:${options.nid || nid}`); if (schemeHandler) urnComponent = schemeHandler.serialize(urnComponent, options); const uriComponent = urnComponent; const nss = urnComponent.nss; uriComponent.path = `${nid || options.nid}:${nss}`; options.skipEscape = true; return uriComponent; } function urnuuidParse(urnComponent, options) { const uuidComponent = urnComponent; uuidComponent.uuid = uuidComponent.nss; uuidComponent.nss = void 0; if (!options.tolerant && (!uuidComponent.uuid || !isUUID(uuidComponent.uuid))) uuidComponent.error = uuidComponent.error || "UUID is not valid."; return uuidComponent; } function urnuuidSerialize(uuidComponent) { const urnComponent = uuidComponent; urnComponent.nss = (uuidComponent.uuid || "").toLowerCase(); return urnComponent; } const http = { scheme: "http", domainHost: true, parse: httpParse, serialize: httpSerialize }; const https = { scheme: "https", domainHost: http.domainHost, parse: httpParse, serialize: httpSerialize }; const ws = { scheme: "ws", domainHost: true, parse: wsParse, serialize: wsSerialize }; const wss = { scheme: "wss", domainHost: ws.domainHost, parse: ws.parse, serialize: ws.serialize }; const urn = { scheme: "urn", parse: urnParse, serialize: urnSerialize, skipNormalize: true }; const urnuuid = { scheme: "urn:uuid", parse: urnuuidParse, serialize: urnuuidSerialize, skipNormalize: true }; const SCHEMES = { http, https, ws, wss, urn, "urn:uuid": urnuuid }; Object.setPrototypeOf(SCHEMES, null); function getSchemeHandler(scheme) { return scheme && (SCHEMES[scheme] || SCHEMES[scheme.toLowerCase()]) || void 0; } module.exports = { wsIsSecure, SCHEMES, isValidSchemeName, getSchemeHandler }; })); var require_fast_uri = /* @__PURE__ */ __commonJSMin(((exports, module) => { const { normalizeIPv6, removeDotSegments, recomposeAuthority, normalizeComponentEncoding, isIPv4, nonSimpleDomain } = require_utils(); const { SCHEMES, getSchemeHandler } = require_schemes(); function normalize(uri, options) { if (typeof uri === "string") uri = serialize(parse3(uri, options), options); else if (typeof uri === "object") uri = parse3(serialize(uri, options), options); return uri; } function resolve2(baseURI, relativeURI, options) { const schemelessOptions = options ? Object.assign({ scheme: "null" }, options) : { scheme: "null" }; const resolved = resolveComponent(parse3(baseURI, schemelessOptions), parse3(relativeURI, schemelessOptions), schemelessOptions, true); schemelessOptions.skipEscape = true; return serialize(resolved, schemelessOptions); } function resolveComponent(base, relative, options, skipNormalization) { const target = {}; if (!skipNormalization) { base = parse3(serialize(base, options), options); relative = parse3(serialize(relative, options), options); } options = options || {}; if (!options.tolerant && relative.scheme) { target.scheme = relative.scheme; target.userinfo = relative.userinfo; target.host = relative.host; target.port = relative.port; target.path = removeDotSegments(relative.path || ""); target.query = relative.query; } else { if (relative.userinfo !== void 0 || relative.host !== void 0 || relative.port !== void 0) { target.userinfo = relative.userinfo; target.host = relative.host; target.port = relative.port; target.path = removeDotSegments(relative.path || ""); target.query = relative.query; } else { if (!relative.path) { target.path = base.path; if (relative.query !== void 0) target.query = relative.query; else target.query = base.query; } else { if (relative.path[0] === "/") target.path = removeDotSegments(relative.path); else { if ((base.userinfo !== void 0 || base.host !== void 0 || base.port !== void 0) && !base.path) target.path = "/" + relative.path; else if (!base.path) target.path = relative.path; else target.path = base.path.slice(0, base.path.lastIndexOf("/") + 1) + relative.path; target.path = removeDotSegments(target.path); } target.query = relative.query; } target.userinfo = base.userinfo; target.host = base.host; target.port = base.port; } target.scheme = base.scheme; } target.fragment = relative.fragment; return target; } function equal(uriA, uriB, options) { if (typeof uriA === "string") { uriA = unescape(uriA); uriA = serialize(normalizeComponentEncoding(parse3(uriA, options), true), { ...options, skipEscape: true }); } else if (typeof uriA === "object") uriA = serialize(normalizeComponentEncoding(uriA, true), { ...options, skipEscape: true }); if (typeof uriB === "string") { uriB = unescape(uriB); uriB = serialize(normalizeComponentEncoding(parse3(uriB, options), true), { ...options, skipEscape: true }); } else if (typeof uriB === "object") uriB = serialize(normalizeComponentEncoding(uriB, true), { ...options, skipEscape: true }); return uriA.toLowerCase() === uriB.toLowerCase(); } function serialize(cmpts, opts) { const component = { host: cmpts.host, scheme: cmpts.scheme, userinfo: cmpts.userinfo, port: cmpts.port, path: cmpts.path, query: cmpts.query, nid: cmpts.nid, nss: cmpts.nss, uuid: cmpts.uuid, fragment: cmpts.fragment, reference: cmpts.reference, resourceName: cmpts.resourceName, secure: cmpts.secure, error: "" }; const options = Object.assign({}, opts); const uriTokens = []; const schemeHandler = getSchemeHandler(options.scheme || component.scheme); if (schemeHandler && schemeHandler.serialize) schemeHandler.serialize(component, options); if (component.path !== void 0) if (!options.skipEscape) { component.path = escape(component.path); if (component.scheme !== void 0) component.path = component.path.split("%3A").join(":"); } else component.path = unescape(component.path); if (options.reference !== "suffix" && component.scheme) uriTokens.push(component.scheme, ":"); const authority = recomposeAuthority(component); if (authority !== void 0) { if (options.reference !== "suffix") uriTokens.push("//"); uriTokens.push(authority); if (component.path && component.path[0] !== "/") uriTokens.push("/"); } if (component.path !== void 0) { let s = component.path; if (!options.absolutePath && (!schemeHandler || !schemeHandler.absolutePath)) s = removeDotSegments(s); if (authority === void 0 && s[0] === "/" && s[1] === "/") s = "/%2F" + s.slice(2); uriTokens.push(s); } if (component.query !== void 0) uriTokens.push("?", component.query); if (component.fragment !== void 0) uriTokens.push("#", component.fragment); return uriTokens.join(""); } const URI_PARSE = /^(?:([^#/:?]+):)?(?:\/\/((?:([^#/?@]*)@)?(\[[^#/?\]]+\]|[^#/:?]*)(?::(\d*))?))?([^#?]*)(?:\?([^#]*))?(?:#((?:.|[\n\r])*))?/u; function parse3(uri, opts) { const options = Object.assign({}, opts); const parsed = { scheme: void 0, userinfo: void 0, host: "", port: void 0, path: "", query: void 0, fragment: void 0 }; let isIP = false; if (options.reference === "suffix") if (options.scheme) uri = options.scheme + ":" + uri; else uri = "//" + uri; const matches = uri.match(URI_PARSE); if (matches) { parsed.scheme = matches[1]; parsed.userinfo = matches[3]; parsed.host = matches[4]; parsed.port = parseInt(matches[5], 10); parsed.path = matches[6] || ""; parsed.query = matches[7]; parsed.fragment = matches[8]; if (isNaN(parsed.port)) parsed.port = matches[5]; if (parsed.host) if (isIPv4(parsed.host) === false) { const ipv6result = normalizeIPv6(parsed.host); parsed.host = ipv6result.host.toLowerCase(); isIP = ipv6result.isIPV6; } else isIP = true; if (parsed.scheme === void 0 && parsed.userinfo === void 0 && parsed.host === void 0 && parsed.port === void 0 && parsed.query === void 0 && !parsed.path) parsed.reference = "same-document"; else if (parsed.scheme === void 0) parsed.reference = "relative"; else if (parsed.fragment === void 0) parsed.reference = "absolute"; else parsed.reference = "uri"; if (options.reference && options.reference !== "suffix" && options.reference !== parsed.reference) parsed.error = parsed.error || "URI is not a " + options.reference + " reference."; const schemeHandler = getSchemeHandler(options.scheme || parsed.scheme); if (!options.unicodeSupport && (!schemeHandler || !schemeHandler.unicodeSupport)) { if (parsed.host && (options.domainHost || schemeHandler && schemeHandler.domainHost) && isIP === false && nonSimpleDomain(parsed.host)) try { parsed.host = URL.domainToASCII(parsed.host.toLowerCase()); } catch (e) { parsed.error = parsed.error || "Host's domain name can not be converted to ASCII: " + e; } } if (!schemeHandler || schemeHandler && !schemeHandler.skipNormalize) { if (uri.indexOf("%") !== -1) { if (parsed.scheme !== void 0) parsed.scheme = unescape(parsed.scheme); if (parsed.host !== void 0) parsed.host = unescape(parsed.host); } if (parsed.path) parsed.path = escape(unescape(parsed.path)); if (parsed.fragment) parsed.fragment = encodeURI(decodeURIComponent(parsed.fragment)); } if (schemeHandler && schemeHandler.parse) schemeHandler.parse(parsed, options); } else parsed.error = parsed.error || "URI can not be parsed."; return parsed; } const fastUri = { SCHEMES, normalize, resolve: resolve2, resolveComponent, equal, serialize, parse: parse3 }; module.exports = fastUri; module.exports.default = fastUri; module.exports.fastUri = fastUri; })); var require_uri = /* @__PURE__ */ __commonJSMin(((exports) => { Object.defineProperty(exports, "__esModule", { value: true }); const uri = require_fast_uri(); uri.code = 'require("ajv/dist/runtime/uri").default'; exports.default = uri; })); var require_core$3 = /* @__PURE__ */ __commonJSMin(((exports) => { Object.defineProperty(exports, "__esModule", { value: true }); exports.CodeGen = exports.Name = exports.nil = exports.stringify = exports.str = exports._ = exports.KeywordCxt = void 0; var validate_1 = require_validate(); Object.defineProperty(exports, "KeywordCxt", { enumerable: true, get: function() { return validate_1.KeywordCxt; } }); var codegen_1 = require_codegen(); Object.defineProperty(exports, "_", { enumerable: true, get: function() { return codegen_1._; } }); Object.defineProperty(exports, "str", { enumerable: true, get: function() { return codegen_1.str; } }); Object.defineProperty(exports, "stringify", { enumerable: true, get: function() { return codegen_1.stringify; } }); Object.defineProperty(exports, "nil", { enumerable: true, get: function() { return codegen_1.nil; } }); Object.defineProperty(exports, "Name", { enumerable: true, get: function() { return codegen_1.Name; } }); Object.defineProperty(exports, "CodeGen", { enumerable: true, get: function() { return codegen_1.CodeGen; } }); const validation_error_1 = require_validation_error(); const ref_error_1 = require_ref_error(); const rules_1 = require_rules(); const compile_1 = require_compile(); const codegen_2 = require_codegen(); const resolve_1 = require_resolve(); const dataType_1 = require_dataType(); const util_1 = require_util(); const $dataRefSchema = require_data(); const uri_1 = require_uri(); const defaultRegExp = (str, flags) => new RegExp(str, flags); defaultRegExp.code = "new RegExp"; const META_IGNORE_OPTIONS = [ "removeAdditional", "useDefaults", "coerceTypes" ]; const EXT_SCOPE_NAMES = /* @__PURE__ */ new Set([ "validate", "serialize", "parse", "wrapper", "root", "schema", "keyword", "pattern", "formats", "validate$data", "func", "obj", "Error" ]); const removedOptions = { errorDataPath: "", format: "`validateFormats: false` can be used instead.", nullable: '"nullable" keyword is supported by default.', jsonPointers: "Deprecated jsPropertySyntax can be used instead.", extendRefs: "Deprecated ignoreKeywordsWithRef can be used instead.", missingRefs: "Pass empty schema with $id that should be ignored to ajv.addSchema.", processCode: "Use option `code: {process: (code, schemaEnv: object) => string}`", sourceCode: "Use option `code: {source: true}`", strictDefaults: "It is default now, see option `strict`.", strictKeywords: "It is default now, see option `strict`.", uniqueItems: '"uniqueItems" keyword is always validated.', unknownFormats: "Disable strict mode or pass `true` to `ajv.addFormat` (or `formats` option).", cache: "Map is used as cache, schema object as key.", serialize: "Map is used as cache, schema object as key.", ajvErrors: "It is default now." }; const deprecatedOptions = { ignoreKeywordsWithRef: "", jsPropertySyntax: "", unicode: '"minLength"/"maxLength" account for unicode characters by default.' }; const MAX_EXPRESSION = 200; function requiredOptions(o) { var _a3, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _0; const s = o.strict; const _optz = (_a3 = o.code) === null || _a3 === void 0 ? void 0 : _a3.optimize; const optimize = _optz === true || _optz === void 0 ? 1 : _optz || 0; const regExp = (_c = (_b = o.code) === null || _b === void 0 ? void 0 : _b.regExp) !== null && _c !== void 0 ? _c : defaultRegExp; const uriResolver = (_d = o.uriResolver) !== null && _d !== void 0 ? _d : uri_1.default; return { strictSchema: (_f = (_e = o.strictSchema) !== null && _e !== void 0 ? _e : s) !== null && _f !== void 0 ? _f : true, strictNumbers: (_h = (_g = o.strictNumbers) !== null && _g !== void 0 ? _g : s) !== null && _h !== void 0 ? _h : true, strictTypes: (_k = (_j = o.strictTypes) !== null && _j !== void 0 ? _j : s) !== null && _k !== void 0 ? _k : "log", strictTuples: (_m = (_l = o.strictTuples) !== null && _l !== void 0 ? _l : s) !== null && _m !== void 0 ? _m : "log", strictRequired: (_p = (_o = o.strictRequired) !== null && _o !== void 0 ? _o : s) !== null && _p !== void 0 ? _p : false, code: o.code ? { ...o.code, optimize, regExp } : { optimize, regExp }, loopRequired: (_q = o.loopRequired) !== null && _q !== void 0 ? _q : MAX_EXPRESSION, loopEnum: (_r = o.loopEnum) !== null && _r !== void 0 ? _r : MAX_EXPRESSION, meta: (_s = o.meta) !== null && _s !== void 0 ? _s : true, messages: (_t = o.messages) !== null && _t !== void 0 ? _t : true, inlineRefs: (_u = o.inlineRefs) !== null && _u !== void 0 ? _u : true, schemaId: (_v = o.schemaId) !== null && _v !== void 0 ? _v : "$id", addUsedSchema: (_w = o.addUsedSchema) !== null && _w !== void 0 ? _w : true, validateSchema: (_x = o.validateSchema) !== null && _x !== void 0 ? _x : true, validateFormats: (_y = o.validateFormats) !== null && _y !== void 0 ? _y : true, unicodeRegExp: (_z = o.unicodeRegExp) !== null && _z !== void 0 ? _z : true, int32range: (_0 = o.int32range) !== null && _0 !== void 0 ? _0 : true, uriResolver }; } var Ajv2 = class { constructor(opts = {}) { this.schemas = {}; this.refs = {}; this.formats = {}; this._compilations = /* @__PURE__ */ new Set(); this._loading = {}; this._cache = /* @__PURE__ */ new Map(); opts = this.opts = { ...opts, ...requiredOptions(opts) }; const { es5, lines } = this.opts.code; this.scope = new codegen_2.ValueScope({ scope: {}, prefixes: EXT_SCOPE_NAMES, es5, lines }); this.logger = getLogger(opts.logger); const formatOpt = opts.validateFormats; opts.validateFormats = false; this.RULES = (0, rules_1.getRules)(); checkOptions.call(this, removedOptions, opts, "NOT SUPPORTED"); checkOptions.call(this, deprecatedOptions, opts, "DEPRECATED", "warn"); this._metaOpts = getMetaSchemaOptions.call(this); if (opts.formats) addInitialFormats.call(this); this._addVocabularies(); this._addDefaultMetaSchema(); if (opts.keywords) addInitialKeywords.call(this, opts.keywords); if (typeof opts.meta == "object") this.addMetaSchema(opts.meta); addInitialSchemas.call(this); opts.validateFormats = formatOpt; } _addVocabularies() { this.addKeyword("$async"); } _addDefaultMetaSchema() { const { $data, meta: meta3, schemaId } = this.opts; let _dataRefSchema = $dataRefSchema; if (schemaId === "id") { _dataRefSchema = { ...$dataRefSchema }; _dataRefSchema.id = _dataRefSchema.$id; delete _dataRefSchema.$id; } if (meta3 && $data) this.addMetaSchema(_dataRefSchema, _dataRefSchema[schemaId], false); } defaultMeta() { const { meta: meta3, schemaId } = this.opts; return this.opts.defaultMeta = typeof meta3 == "object" ? meta3[schemaId] || meta3 : void 0; } validate(schemaKeyRef, data) { let v; if (typeof schemaKeyRef == "string") { v = this.getSchema(schemaKeyRef); if (!v) throw new Error(`no schema with key or ref "${schemaKeyRef}"`); } else v = this.compile(schemaKeyRef); const valid = v(data); if (!("$async" in v)) this.errors = v.errors; return valid; } compile(schema, _meta) { const sch = this._addSchema(schema, _meta); return sch.validate || this._compileSchemaEnv(sch); } compileAsync(schema, meta3) { if (typeof this.opts.loadSchema != "function") throw new Error("options.loadSchema should be a function"); const { loadSchema } = this.opts; return runCompileAsync.call(this, schema, meta3); async function runCompileAsync(_schema, _meta) { await loadMetaSchema.call(this, _schema.$schema); const sch = this._addSchema(_schema, _meta); return sch.validate || _compileAsync.call(this, sch); } async function loadMetaSchema($ref) { if ($ref && !this.getSchema($ref)) await runCompileAsync.call(this, { $ref }, true); } async function _compileAsync(sch) { try { return this._compileSchemaEnv(sch); } catch (e) { if (!(e instanceof ref_error_1.default)) throw e; checkLoaded.call(this, e); await loadMissingSchema.call(this, e.missingSchema); return _compileAsync.call(this, sch); } } function checkLoaded({ missingSchema: ref, missingRef }) { if (this.refs[ref]) throw new Error(`AnySchema ${ref} is loaded but ${missingRef} cannot be resolved`); } async function loadMissingSchema(ref) { const _schema = await _loadSchema.call(this, ref); if (!this.refs[ref]) await loadMetaSchema.call(this, _schema.$schema); if (!this.refs[ref]) this.addSchema(_schema, ref, meta3); } async function _loadSchema(ref) { const p = this._loading[ref]; if (p) return p; try { return await (this._loading[ref] = loadSchema(ref)); } finally { delete this._loading[ref]; } } } addSchema(schema, key, _meta, _validateSchema = this.opts.validateSchema) { if (Array.isArray(schema)) { for (const sch of schema) this.addSchema(sch, void 0, _meta, _validateSchema); return this; } let id; if (typeof schema === "object") { const { schemaId } = this.opts; id = schema[schemaId]; if (id !== void 0 && typeof id != "string") throw new Error(`schema ${schemaId} must be string`); } key = (0, resolve_1.normalizeId)(key || id); this._checkUnique(key); this.schemas[key] = this._addSchema(schema, _meta, key, _validateSchema, true); return this; } addMetaSchema(schema, key, _validateSchema = this.opts.validateSchema) { this.addSchema(schema, key, true, _validateSchema); return this; } validateSchema(schema, throwOrLogError) { if (typeof schema == "boolean") return true; let $schema; $schema = schema.$schema; if ($schema !== void 0 && typeof $schema != "string") throw new Error("$schema must be a string"); $schema = $schema || this.opts.defaultMeta || this.defaultMeta(); if (!$schema) { this.logger.warn("meta-schema not available"); this.errors = null; return true; } const valid = this.validate($schema, schema); if (!valid && throwOrLogError) { const message = "schema is invalid: " + this.errorsText(); if (this.opts.validateSchema === "log") this.logger.error(message); else throw new Error(message); } return valid; } getSchema(keyRef) { let sch; while (typeof (sch = getSchEnv.call(this, keyRef)) == "string") keyRef = sch; if (sch === void 0) { const { schemaId } = this.opts; const root = new compile_1.SchemaEnv({ schema: {}, schemaId }); sch = compile_1.resolveSchema.call(this, root, keyRef); if (!sch) return; this.refs[keyRef] = sch; } return sch.validate || this._compileSchemaEnv(sch); } removeSchema(schemaKeyRef) { if (schemaKeyRef instanceof RegExp) { this._removeAllSchemas(this.schemas, schemaKeyRef); this._removeAllSchemas(this.refs, schemaKeyRef); return this; } switch (typeof schemaKeyRef) { case "undefined": this._removeAllSchemas(this.schemas); this._removeAllSchemas(this.refs); this._cache.clear(); return this; case "string": { const sch = getSchEnv.call(this, schemaKeyRef); if (typeof sch == "object") this._cache.delete(sch.schema); delete this.schemas[schemaKeyRef]; delete this.refs[schemaKeyRef]; return this; } case "object": { const cacheKey = schemaKeyRef; this._cache.delete(cacheKey); let id = schemaKeyRef[this.opts.schemaId]; if (id) { id = (0, resolve_1.normalizeId)(id); delete this.schemas[id]; delete this.refs[id]; } return this; } default: throw new Error("ajv.removeSchema: invalid parameter"); } } addVocabulary(definitions) { for (const def of definitions) this.addKeyword(def); return this; } addKeyword(kwdOrDef, def) { let keyword; if (typeof kwdOrDef == "string") { keyword = kwdOrDef; if (typeof def == "object") { this.logger.warn("these parameters are deprecated, see docs for addKeyword"); def.keyword = keyword; } } else if (typeof kwdOrDef == "object" && def === void 0) { def = kwdOrDef; keyword = def.keyword; if (Array.isArray(keyword) && !keyword.length) throw new Error("addKeywords: keyword must be string or non-empty array"); } else throw new Error("invalid addKeywords parameters"); checkKeyword.call(this, keyword, def); if (!def) { (0, util_1.eachItem)(keyword, (kwd) => addRule.call(this, kwd)); return this; } keywordMetaschema.call(this, def); const definition = { ...def, type: (0, dataType_1.getJSONTypes)(def.type), schemaType: (0, dataType_1.getJSONTypes)(def.schemaType) }; (0, util_1.eachItem)(keyword, definition.type.length === 0 ? (k) => addRule.call(this, k, definition) : (k) => definition.type.forEach((t) => addRule.call(this, k, definition, t))); return this; } getKeyword(keyword) { const rule = this.RULES.all[keyword]; return typeof rule == "object" ? rule.definition : !!rule; } removeKeyword(keyword) { const { RULES } = this; delete RULES.keywords[keyword]; delete RULES.all[keyword]; for (const group of RULES.rules) { const i = group.rules.findIndex((rule) => rule.keyword === keyword); if (i >= 0) group.rules.splice(i, 1); } return this; } addFormat(name, format) { if (typeof format == "string") format = new RegExp(format); this.formats[name] = format; return this; } errorsText(errors = this.errors, { separator = ", ", dataVar = "data" } = {}) { if (!errors || errors.length === 0) return "No errors"; return errors.map((e) => `${dataVar}${e.instancePath} ${e.message}`).reduce((text, msg) => text + separator + msg); } $dataMetaSchema(metaSchema, keywordsJsonPointers) { const rules = this.RULES.all; metaSchema = JSON.parse(JSON.stringify(metaSchema)); for (const jsonPointer of keywordsJsonPointers) { const segments = jsonPointer.split("/").slice(1); let keywords = metaSchema; for (const seg of segments) keywords = keywords[seg]; for (const key in rules) { const rule = rules[key]; if (typeof rule != "object") continue; const { $data } = rule.definition; const schema = keywords[key]; if ($data && schema) keywords[key] = schemaOrData(schema); } } return metaSchema; } _removeAllSchemas(schemas, regex) { for (const keyRef in schemas) { const sch = schemas[keyRef]; if (!regex || regex.test(keyRef)) { if (typeof sch == "string") delete schemas[keyRef]; else if (sch && !sch.meta) { this._cache.delete(sch.schema); delete schemas[keyRef]; } } } } _addSchema(schema, meta3, baseId, validateSchema = this.opts.validateSchema, addSchema = this.opts.addUsedSchema) { let id; const { schemaId } = this.opts; if (typeof schema == "object") id = schema[schemaId]; else if (this.opts.jtd) throw new Error("schema must be object"); else if (typeof schema != "boolean") throw new Error("schema must be object or boolean"); let sch = this._cache.get(schema); if (sch !== void 0) return sch; baseId = (0, resolve_1.normalizeId)(id || baseId); const localRefs = resolve_1.getSchemaRefs.call(this, schema, baseId); sch = new compile_1.SchemaEnv({ schema, schemaId, meta: meta3, baseId, localRefs }); this._cache.set(sch.schema, sch); if (addSchema && !baseId.startsWith("#")) { if (baseId) this._checkUnique(baseId); this.refs[baseId] = sch; } if (validateSchema) this.validateSchema(schema, true); return sch; } _checkUnique(id) { if (this.schemas[id] || this.refs[id]) throw new Error(`schema with key or id "${id}" already exists`); } _compileSchemaEnv(sch) { if (sch.meta) this._compileMetaSchema(sch); else compile_1.compileSchema.call(this, sch); if (!sch.validate) throw new Error("ajv implementation error"); return sch.validate; } _compileMetaSchema(sch) { const currentOpts = this.opts; this.opts = this._metaOpts; try { compile_1.compileSchema.call(this, sch); } finally { this.opts = currentOpts; } } }; Ajv2.ValidationError = validation_error_1.default; Ajv2.MissingRefError = ref_error_1.default; exports.default = Ajv2; function checkOptions(checkOpts, options, msg, log = "error") { for (const key in checkOpts) { const opt = key; if (opt in options) this.logger[log](`${msg}: option ${key}. ${checkOpts[opt]}`); } } function getSchEnv(keyRef) { keyRef = (0, resolve_1.normalizeId)(keyRef); return this.schemas[keyRef] || this.refs[keyRef]; } function addInitialSchemas() { const optsSchemas = this.opts.schemas; if (!optsSchemas) return; if (Array.isArray(optsSchemas)) this.addSchema(optsSchemas); else for (const key in optsSchemas) this.addSchema(optsSchemas[key], key); } function addInitialFormats() { for (const name in this.opts.formats) { const format = this.opts.formats[name]; if (format) this.addFormat(name, format); } } function addInitialKeywords(defs) { if (Array.isArray(defs)) { this.addVocabulary(defs); return; } this.logger.warn("keywords option as map is deprecated, pass array"); for (const keyword in defs) { const def = defs[keyword]; if (!def.keyword) def.keyword = keyword; this.addKeyword(def); } } function getMetaSchemaOptions() { const metaOpts = { ...this.opts }; for (const opt of META_IGNORE_OPTIONS) delete metaOpts[opt]; return metaOpts; } const noLogs = { log() { }, warn() { }, error() { } }; function getLogger(logger) { if (logger === false) return noLogs; if (logger === void 0) return console; if (logger.log && logger.warn && logger.error) return logger; throw new Error("logger must implement log, warn and error methods"); } const KEYWORD_NAME = /^[a-z_$][a-z0-9_$:-]*$/i; function checkKeyword(keyword, def) { const { RULES } = this; (0, util_1.eachItem)(keyword, (kwd) => { if (RULES.keywords[kwd]) throw new Error(`Keyword ${kwd} is already defined`); if (!KEYWORD_NAME.test(kwd)) throw new Error(`Keyword ${kwd} has invalid name`); }); if (!def) return; if (def.$data && !("code" in def || "validate" in def)) throw new Error('$data keyword must have "code" or "validate" function'); } function addRule(keyword, definition, dataType) { var _a3; const post = definition === null || definition === void 0 ? void 0 : definition.post; if (dataType && post) throw new Error('keyword with "post" flag cannot have "type"'); const { RULES } = this; let ruleGroup = post ? RULES.post : RULES.rules.find(({ type: t }) => t === dataType); if (!ruleGroup) { ruleGroup = { type: dataType, rules: [] }; RULES.rules.push(ruleGroup); } RULES.keywords[keyword] = true; if (!definition) return; const rule = { keyword, definition: { ...definition, type: (0, dataType_1.getJSONTypes)(definition.type), schemaType: (0, dataType_1.getJSONTypes)(definition.schemaType) } }; if (definition.before) addBeforeRule.call(this, ruleGroup, rule, definition.before); else ruleGroup.rules.push(rule); RULES.all[keyword] = rule; (_a3 = definition.implements) === null || _a3 === void 0 || _a3.forEach((kwd) => this.addKeyword(kwd)); } function addBeforeRule(ruleGroup, rule, before) { const i = ruleGroup.rules.findIndex((_rule) => _rule.keyword === before); if (i >= 0) ruleGroup.rules.splice(i, 0, rule); else { ruleGroup.rules.push(rule); this.logger.warn(`rule ${before} is not defined`); } } function keywordMetaschema(def) { let { metaSchema } = def; if (metaSchema === void 0) return; if (def.$data && this.opts.$data) metaSchema = schemaOrData(metaSchema); def.validateSchema = this.compile(metaSchema, true); } const $dataRef = { $ref: "https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#" }; function schemaOrData(schema) { return { anyOf: [schema, $dataRef] }; } })); var require_id = /* @__PURE__ */ __commonJSMin(((exports) => { Object.defineProperty(exports, "__esModule", { value: true }); const def = { keyword: "id", code() { throw new Error('NOT SUPPORTED: keyword "id", use "$id" for schema ID'); } }; exports.default = def; })); var require_ref = /* @__PURE__ */ __commonJSMin(((exports) => { Object.defineProperty(exports, "__esModule", { value: true }); exports.callRef = exports.getValidate = void 0; const ref_error_1 = require_ref_error(); const code_1 = require_code(); const codegen_1 = require_codegen(); const names_1 = require_names(); const compile_1 = require_compile(); const util_1 = require_util(); const def = { keyword: "$ref", schemaType: "string", code(cxt) { const { gen, schema: $ref, it } = cxt; const { baseId, schemaEnv: env, validateName, opts, self } = it; const { root } = env; if (($ref === "#" || $ref === "#/") && baseId === root.baseId) return callRootRef(); const schOrEnv = compile_1.resolveRef.call(self, root, baseId, $ref); if (schOrEnv === void 0) throw new ref_error_1.default(it.opts.uriResolver, baseId, $ref); if (schOrEnv instanceof compile_1.SchemaEnv) return callValidate(schOrEnv); return inlineRefSchema(schOrEnv); function callRootRef() { if (env === root) return callRef(cxt, validateName, env, env.$async); const rootName = gen.scopeValue("root", { ref: root }); return callRef(cxt, (0, codegen_1._)`${rootName}.validate`, root, root.$async); } function callValidate(sch) { callRef(cxt, getValidate(cxt, sch), sch, sch.$async); } function inlineRefSchema(sch) { const schName = gen.scopeValue("schema", opts.code.source === true ? { ref: sch, code: (0, codegen_1.stringify)(sch) } : { ref: sch }); const valid = gen.name("valid"); const schCxt = cxt.subschema({ schema: sch, dataTypes: [], schemaPath: codegen_1.nil, topSchemaRef: schName, errSchemaPath: $ref }, valid); cxt.mergeEvaluated(schCxt); cxt.ok(valid); } } }; function getValidate(cxt, sch) { const { gen } = cxt; return sch.validate ? gen.scopeValue("validate", { ref: sch.validate }) : (0, codegen_1._)`${gen.scopeValue("wrapper", { ref: sch })}.validate`; } exports.getValidate = getValidate; function callRef(cxt, v, sch, $async) { const { gen, it } = cxt; const { allErrors, schemaEnv: env, opts } = it; const passCxt = opts.passContext ? names_1.default.this : codegen_1.nil; if ($async) callAsyncRef(); else callSyncRef(); function callAsyncRef() { if (!env.$async) throw new Error("async schema referenced by sync schema"); const valid = gen.let("valid"); gen.try(() => { gen.code((0, codegen_1._)`await ${(0, code_1.callValidateCode)(cxt, v, passCxt)}`); addEvaluatedFrom(v); if (!allErrors) gen.assign(valid, true); }, (e) => { gen.if((0, codegen_1._)`!(${e} instanceof ${it.ValidationError})`, () => gen.throw(e)); addErrorsFrom(e); if (!allErrors) gen.assign(valid, false); }); cxt.ok(valid); } function callSyncRef() { cxt.result((0, code_1.callValidateCode)(cxt, v, passCxt), () => addEvaluatedFrom(v), () => addErrorsFrom(v)); } function addErrorsFrom(source) { const errs = (0, codegen_1._)`${source}.errors`; gen.assign(names_1.default.vErrors, (0, codegen_1._)`${names_1.default.vErrors} === null ? ${errs} : ${names_1.default.vErrors}.concat(${errs})`); gen.assign(names_1.default.errors, (0, codegen_1._)`${names_1.default.vErrors}.length`); } function addEvaluatedFrom(source) { var _a3; if (!it.opts.unevaluated) return; const schEvaluated = (_a3 = sch === null || sch === void 0 ? void 0 : sch.validate) === null || _a3 === void 0 ? void 0 : _a3.evaluated; if (it.props !== true) if (schEvaluated && !schEvaluated.dynamicProps) { if (schEvaluated.props !== void 0) it.props = util_1.mergeEvaluated.props(gen, schEvaluated.props, it.props); } else { const props = gen.var("props", (0, codegen_1._)`${source}.evaluated.props`); it.props = util_1.mergeEvaluated.props(gen, props, it.props, codegen_1.Name); } if (it.items !== true) if (schEvaluated && !schEvaluated.dynamicItems) { if (schEvaluated.items !== void 0) it.items = util_1.mergeEvaluated.items(gen, schEvaluated.items, it.items); } else { const items = gen.var("items", (0, codegen_1._)`${source}.evaluated.items`); it.items = util_1.mergeEvaluated.items(gen, items, it.items, codegen_1.Name); } } } exports.callRef = callRef; exports.default = def; })); var require_core$2 = /* @__PURE__ */ __commonJSMin(((exports) => { Object.defineProperty(exports, "__esModule", { value: true }); const id_1 = require_id(); const ref_1 = require_ref(); const core = [ "$schema", "$id", "$defs", "$vocabulary", { keyword: "$comment" }, "definitions", id_1.default, ref_1.default ]; exports.default = core; })); var require_limitNumber = /* @__PURE__ */ __commonJSMin(((exports) => { Object.defineProperty(exports, "__esModule", { value: true }); const codegen_1 = require_codegen(); const ops = codegen_1.operators; const KWDs = { maximum: { okStr: "<=", ok: ops.LTE, fail: ops.GT }, minimum: { okStr: ">=", ok: ops.GTE, fail: ops.LT }, exclusiveMaximum: { okStr: "<", ok: ops.LT, fail: ops.GTE }, exclusiveMinimum: { okStr: ">", ok: ops.GT, fail: ops.LTE } }; const def = { keyword: Object.keys(KWDs), type: "number", schemaType: "number", $data: true, error: { message: ({ keyword, schemaCode }) => (0, codegen_1.str)`must be ${KWDs[keyword].okStr} ${schemaCode}`, params: ({ keyword, schemaCode }) => (0, codegen_1._)`{comparison: ${KWDs[keyword].okStr}, limit: ${schemaCode}}` }, code(cxt) { const { keyword, data, schemaCode } = cxt; cxt.fail$data((0, codegen_1._)`${data} ${KWDs[keyword].fail} ${schemaCode} || isNaN(${data})`); } }; exports.default = def; })); var require_multipleOf = /* @__PURE__ */ __commonJSMin(((exports) => { Object.defineProperty(exports, "__esModule", { value: true }); const codegen_1 = require_codegen(); const def = { keyword: "multipleOf", type: "number", schemaType: "number", $data: true, error: { message: ({ schemaCode }) => (0, codegen_1.str)`must be multiple of ${schemaCode}`, params: ({ schemaCode }) => (0, codegen_1._)`{multipleOf: ${schemaCode}}` }, code(cxt) { const { gen, data, schemaCode, it } = cxt; const prec = it.opts.multipleOfPrecision; const res = gen.let("res"); const invalid = prec ? (0, codegen_1._)`Math.abs(Math.round(${res}) - ${res}) > 1e-${prec}` : (0, codegen_1._)`${res} !== parseInt(${res})`; cxt.fail$data((0, codegen_1._)`(${schemaCode} === 0 || (${res} = ${data}/${schemaCode}, ${invalid}))`); } }; exports.default = def; })); var require_ucs2length = /* @__PURE__ */ __commonJSMin(((exports) => { Object.defineProperty(exports, "__esModule", { value: true }); function ucs2length(str) { const len = str.length; let length = 0; let pos = 0; let value; while (pos < len) { length++; value = str.charCodeAt(pos++); if (value >= 55296 && value <= 56319 && pos < len) { value = str.charCodeAt(pos); if ((value & 64512) === 56320) pos++; } } return length; } exports.default = ucs2length; ucs2length.code = 'require("ajv/dist/runtime/ucs2length").default'; })); var require_limitLength = /* @__PURE__ */ __commonJSMin(((exports) => { Object.defineProperty(exports, "__esModule", { value: true }); const codegen_1 = require_codegen(); const util_1 = require_util(); const ucs2length_1 = require_ucs2length(); const def = { keyword: ["maxLength", "minLength"], type: "string", schemaType: "number", $data: true, error: { message({ keyword, schemaCode }) { const comp = keyword === "maxLength" ? "more" : "fewer"; return (0, codegen_1.str)`must NOT have ${comp} than ${schemaCode} characters`; }, params: ({ schemaCode }) => (0, codegen_1._)`{limit: ${schemaCode}}` }, code(cxt) { const { keyword, data, schemaCode, it } = cxt; const op = keyword === "maxLength" ? codegen_1.operators.GT : codegen_1.operators.LT; const len = it.opts.unicode === false ? (0, codegen_1._)`${data}.length` : (0, codegen_1._)`${(0, util_1.useFunc)(cxt.gen, ucs2length_1.default)}(${data})`; cxt.fail$data((0, codegen_1._)`${len} ${op} ${schemaCode}`); } }; exports.default = def; })); var require_pattern = /* @__PURE__ */ __commonJSMin(((exports) => { Object.defineProperty(exports, "__esModule", { value: true }); const code_1 = require_code(); const util_1 = require_util(); const codegen_1 = require_codegen(); const def = { keyword: "pattern", type: "string", schemaType: "string", $data: true, error: { message: ({ schemaCode }) => (0, codegen_1.str)`must match pattern "${schemaCode}"`, params: ({ schemaCode }) => (0, codegen_1._)`{pattern: ${schemaCode}}` }, code(cxt) { const { gen, data, $data, schema, schemaCode, it } = cxt; const u = it.opts.unicodeRegExp ? "u" : ""; if ($data) { const { regExp } = it.opts.code; const regExpCode = regExp.code === "new RegExp" ? (0, codegen_1._)`new RegExp` : (0, util_1.useFunc)(gen, regExp); const valid = gen.let("valid"); gen.try(() => gen.assign(valid, (0, codegen_1._)`${regExpCode}(${schemaCode}, ${u}).test(${data})`), () => gen.assign(valid, false)); cxt.fail$data((0, codegen_1._)`!${valid}`); } else { const regExp = (0, code_1.usePattern)(cxt, schema); cxt.fail$data((0, codegen_1._)`!${regExp}.test(${data})`); } } }; exports.default = def; })); var require_limitProperties = /* @__PURE__ */ __commonJSMin(((exports) => { Object.defineProperty(exports, "__esModule", { value: true }); const codegen_1 = require_codegen(); const def = { keyword: ["maxProperties", "minProperties"], type: "object", schemaType: "number", $data: true, error: { message({ keyword, schemaCode }) { const comp = keyword === "maxProperties" ? "more" : "fewer"; return (0, codegen_1.str)`must NOT have ${comp} than ${schemaCode} properties`; }, params: ({ schemaCode }) => (0, codegen_1._)`{limit: ${schemaCode}}` }, code(cxt) { const { keyword, data, schemaCode } = cxt; const op = keyword === "maxProperties" ? codegen_1.operators.GT : codegen_1.operators.LT; cxt.fail$data((0, codegen_1._)`Object.keys(${data}).length ${op} ${schemaCode}`); } }; exports.default = def; })); var require_required = /* @__PURE__ */ __commonJSMin(((exports) => { Object.defineProperty(exports, "__esModule", { value: true }); const code_1 = require_code(); const codegen_1 = require_codegen(); const util_1 = require_util(); const def = { keyword: "required", type: "object", schemaType: "array", $data: true, error: { message: ({ params: { missingProperty } }) => (0, codegen_1.str)`must have required property '${missingProperty}'`, params: ({ params: { missingProperty } }) => (0, codegen_1._)`{missingProperty: ${missingProperty}}` }, code(cxt) { const { gen, schema, schemaCode, data, $data, it } = cxt; const { opts } = it; if (!$data && schema.length === 0) return; const useLoop = schema.length >= opts.loopRequired; if (it.allErrors) allErrorsMode(); else exitOnErrorMode(); if (opts.strictRequired) { const props = cxt.parentSchema.properties; const { definedProperties } = cxt.it; for (const requiredKey of schema) if ((props === null || props === void 0 ? void 0 : props[requiredKey]) === void 0 && !definedProperties.has(requiredKey)) { const msg = `required property "${requiredKey}" is not defined at "${it.schemaEnv.baseId + it.errSchemaPath}" (strictRequired)`; (0, util_1.checkStrictMode)(it, msg, it.opts.strictRequired); } } function allErrorsMode() { if (useLoop || $data) cxt.block$data(codegen_1.nil, loopAllRequired); else for (const prop of schema) (0, code_1.checkReportMissingProp)(cxt, prop); } function exitOnErrorMode() { const missing = gen.let("missing"); if (useLoop || $data) { const valid = gen.let("valid", true); cxt.block$data(valid, () => loopUntilMissing(missing, valid)); cxt.ok(valid); } else { gen.if((0, code_1.checkMissingProp)(cxt, schema, missing)); (0, code_1.reportMissingProp)(cxt, missing); gen.else(); } } function loopAllRequired() { gen.forOf("prop", schemaCode, (prop) => { cxt.setParams({ missingProperty: prop }); gen.if((0, code_1.noPropertyInData)(gen, data, prop, opts.ownProperties), () => cxt.error()); }); } function loopUntilMissing(missing, valid) { cxt.setParams({ missingProperty: missing }); gen.forOf(missing, schemaCode, () => { gen.assign(valid, (0, code_1.propertyInData)(gen, data, missing, opts.ownProperties)); gen.if((0, codegen_1.not)(valid), () => { cxt.error(); gen.break(); }); }, codegen_1.nil); } } }; exports.default = def; })); var require_limitItems = /* @__PURE__ */ __commonJSMin(((exports) => { Object.defineProperty(exports, "__esModule", { value: true }); const codegen_1 = require_codegen(); const def = { keyword: ["maxItems", "minItems"], type: "array", schemaType: "number", $data: true, error: { message({ keyword, schemaCode }) { const comp = keyword === "maxItems" ? "more" : "fewer"; return (0, codegen_1.str)`must NOT have ${comp} than ${schemaCode} items`; }, params: ({ schemaCode }) => (0, codegen_1._)`{limit: ${schemaCode}}` }, code(cxt) { const { keyword, data, schemaCode } = cxt; const op = keyword === "maxItems" ? codegen_1.operators.GT : codegen_1.operators.LT; cxt.fail$data((0, codegen_1._)`${data}.length ${op} ${schemaCode}`); } }; exports.default = def; })); var require_equal = /* @__PURE__ */ __commonJSMin(((exports) => { Object.defineProperty(exports, "__esModule", { value: true }); const equal = require_fast_deep_equal(); equal.code = 'require("ajv/dist/runtime/equal").default'; exports.default = equal; })); var require_uniqueItems = /* @__PURE__ */ __commonJSMin(((exports) => { Object.defineProperty(exports, "__esModule", { value: true }); const dataType_1 = require_dataType(); const codegen_1 = require_codegen(); const util_1 = require_util(); const equal_1 = require_equal(); const def = { keyword: "uniqueItems", type: "array", schemaType: "boolean", $data: true, error: { message: ({ params: { i, j } }) => (0, codegen_1.str)`must NOT have duplicate items (items ## ${j} and ${i} are identical)`, params: ({ params: { i, j } }) => (0, codegen_1._)`{i: ${i}, j: ${j}}` }, code(cxt) { const { gen, data, $data, schema, parentSchema, schemaCode, it } = cxt; if (!$data && !schema) return; const valid = gen.let("valid"); const itemTypes = parentSchema.items ? (0, dataType_1.getSchemaTypes)(parentSchema.items) : []; cxt.block$data(valid, validateUniqueItems, (0, codegen_1._)`${schemaCode} === false`); cxt.ok(valid); function validateUniqueItems() { const i = gen.let("i", (0, codegen_1._)`${data}.length`); const j = gen.let("j"); cxt.setParams({ i, j }); gen.assign(valid, true); gen.if((0, codegen_1._)`${i} > 1`, () => (canOptimize() ? loopN : loopN2)(i, j)); } function canOptimize() { return itemTypes.length > 0 && !itemTypes.some((t) => t === "object" || t === "array"); } function loopN(i, j) { const item = gen.name("item"); const wrongType = (0, dataType_1.checkDataTypes)(itemTypes, item, it.opts.strictNumbers, dataType_1.DataType.Wrong); const indices = gen.const("indices", (0, codegen_1._)`{}`); gen.for((0, codegen_1._)`;${i}--;`, () => { gen.let(item, (0, codegen_1._)`${data}[${i}]`); gen.if(wrongType, (0, codegen_1._)`continue`); if (itemTypes.length > 1) gen.if((0, codegen_1._)`typeof ${item} == "string"`, (0, codegen_1._)`${item} += "_"`); gen.if((0, codegen_1._)`typeof ${indices}[${item}] == "number"`, () => { gen.assign(j, (0, codegen_1._)`${indices}[${item}]`); cxt.error(); gen.assign(valid, false).break(); }).code((0, codegen_1._)`${indices}[${item}] = ${i}`); }); } function loopN2(i, j) { const eql = (0, util_1.useFunc)(gen, equal_1.default); const outer = gen.name("outer"); gen.label(outer).for((0, codegen_1._)`;${i}--;`, () => gen.for((0, codegen_1._)`${j} = ${i}; ${j}--;`, () => gen.if((0, codegen_1._)`${eql}(${data}[${i}], ${data}[${j}])`, () => { cxt.error(); gen.assign(valid, false).break(outer); }))); } } }; exports.default = def; })); var require_const = /* @__PURE__ */ __commonJSMin(((exports) => { Object.defineProperty(exports, "__esModule", { value: true }); const codegen_1 = require_codegen(); const util_1 = require_util(); const equal_1 = require_equal(); const def = { keyword: "const", $data: true, error: { message: "must be equal to constant", params: ({ schemaCode }) => (0, codegen_1._)`{allowedValue: ${schemaCode}}` }, code(cxt) { const { gen, data, $data, schemaCode, schema } = cxt; if ($data || schema && typeof schema == "object") cxt.fail$data((0, codegen_1._)`!${(0, util_1.useFunc)(gen, equal_1.default)}(${data}, ${schemaCode})`); else cxt.fail((0, codegen_1._)`${schema} !== ${data}`); } }; exports.default = def; })); var require_enum = /* @__PURE__ */ __commonJSMin(((exports) => { Object.defineProperty(exports, "__esModule", { value: true }); const codegen_1 = require_codegen(); const util_1 = require_util(); const equal_1 = require_equal(); const def = { keyword: "enum", schemaType: "array", $data: true, error: { message: "must be equal to one of the allowed values", params: ({ schemaCode }) => (0, codegen_1._)`{allowedValues: ${schemaCode}}` }, code(cxt) { const { gen, data, $data, schema, schemaCode, it } = cxt; if (!$data && schema.length === 0) throw new Error("enum must have non-empty array"); const useLoop = schema.length >= it.opts.loopEnum; let eql; const getEql = () => eql !== null && eql !== void 0 ? eql : eql = (0, util_1.useFunc)(gen, equal_1.default); let valid; if (useLoop || $data) { valid = gen.let("valid"); cxt.block$data(valid, loopEnum); } else { if (!Array.isArray(schema)) throw new Error("ajv implementation error"); const vSchema = gen.const("vSchema", schemaCode); valid = (0, codegen_1.or)(...schema.map((_x, i) => equalCode(vSchema, i))); } cxt.pass(valid); function loopEnum() { gen.assign(valid, false); gen.forOf("v", schemaCode, (v) => gen.if((0, codegen_1._)`${getEql()}(${data}, ${v})`, () => gen.assign(valid, true).break())); } function equalCode(vSchema, i) { const sch = schema[i]; return typeof sch === "object" && sch !== null ? (0, codegen_1._)`${getEql()}(${data}, ${vSchema}[${i}])` : (0, codegen_1._)`${data} === ${sch}`; } } }; exports.default = def; })); var require_validation$2 = /* @__PURE__ */ __commonJSMin(((exports) => { Object.defineProperty(exports, "__esModule", { value: true }); const limitNumber_1 = require_limitNumber(); const multipleOf_1 = require_multipleOf(); const limitLength_1 = require_limitLength(); const pattern_1 = require_pattern(); const limitProperties_1 = require_limitProperties(); const required_1 = require_required(); const limitItems_1 = require_limitItems(); const uniqueItems_1 = require_uniqueItems(); const const_1 = require_const(); const enum_1 = require_enum(); const validation = [ limitNumber_1.default, multipleOf_1.default, limitLength_1.default, pattern_1.default, limitProperties_1.default, required_1.default, limitItems_1.default, uniqueItems_1.default, { keyword: "type", schemaType: ["string", "array"] }, { keyword: "nullable", schemaType: "boolean" }, const_1.default, enum_1.default ]; exports.default = validation; })); var require_additionalItems = /* @__PURE__ */ __commonJSMin(((exports) => { Object.defineProperty(exports, "__esModule", { value: true }); exports.validateAdditionalItems = void 0; const codegen_1 = require_codegen(); const util_1 = require_util(); const def = { keyword: "additionalItems", type: "array", schemaType: ["boolean", "object"], before: "uniqueItems", error: { message: ({ params: { len } }) => (0, codegen_1.str)`must NOT have more than ${len} items`, params: ({ params: { len } }) => (0, codegen_1._)`{limit: ${len}}` }, code(cxt) { const { parentSchema, it } = cxt; const { items } = parentSchema; if (!Array.isArray(items)) { (0, util_1.checkStrictMode)(it, '"additionalItems" is ignored when "items" is not an array of schemas'); return; } validateAdditionalItems(cxt, items); } }; function validateAdditionalItems(cxt, items) { const { gen, schema, data, keyword, it } = cxt; it.items = true; const len = gen.const("len", (0, codegen_1._)`${data}.length`); if (schema === false) { cxt.setParams({ len: items.length }); cxt.pass((0, codegen_1._)`${len} <= ${items.length}`); } else if (typeof schema == "object" && !(0, util_1.alwaysValidSchema)(it, schema)) { const valid = gen.var("valid", (0, codegen_1._)`${len} <= ${items.length}`); gen.if((0, codegen_1.not)(valid), () => validateItems(valid)); cxt.ok(valid); } function validateItems(valid) { gen.forRange("i", items.length, len, (i) => { cxt.subschema({ keyword, dataProp: i, dataPropType: util_1.Type.Num }, valid); if (!it.allErrors) gen.if((0, codegen_1.not)(valid), () => gen.break()); }); } } exports.validateAdditionalItems = validateAdditionalItems; exports.default = def; })); var require_items = /* @__PURE__ */ __commonJSMin(((exports) => { Object.defineProperty(exports, "__esModule", { value: true }); exports.validateTuple = void 0; const codegen_1 = require_codegen(); const util_1 = require_util(); const code_1 = require_code(); const def = { keyword: "items", type: "array", schemaType: [ "object", "array", "boolean" ], before: "uniqueItems", code(cxt) { const { schema, it } = cxt; if (Array.isArray(schema)) return validateTuple(cxt, "additionalItems", schema); it.items = true; if ((0, util_1.alwaysValidSchema)(it, schema)) return; cxt.ok((0, code_1.validateArray)(cxt)); } }; function validateTuple(cxt, extraItems, schArr = cxt.schema) { const { gen, parentSchema, data, keyword, it } = cxt; checkStrictTuple(parentSchema); if (it.opts.unevaluated && schArr.length && it.items !== true) it.items = util_1.mergeEvaluated.items(gen, schArr.length, it.items); const valid = gen.name("valid"); const len = gen.const("len", (0, codegen_1._)`${data}.length`); schArr.forEach((sch, i) => { if ((0, util_1.alwaysValidSchema)(it, sch)) return; gen.if((0, codegen_1._)`${len} > ${i}`, () => cxt.subschema({ keyword, schemaProp: i, dataProp: i }, valid)); cxt.ok(valid); }); function checkStrictTuple(sch) { const { opts, errSchemaPath } = it; const l = schArr.length; const fullTuple = l === sch.minItems && (l === sch.maxItems || sch[extraItems] === false); if (opts.strictTuples && !fullTuple) { const msg = `"${keyword}" is ${l}-tuple, but minItems or maxItems/${extraItems} are not specified or different at path "${errSchemaPath}"`; (0, util_1.checkStrictMode)(it, msg, opts.strictTuples); } } } exports.validateTuple = validateTuple; exports.default = def; })); var require_prefixItems = /* @__PURE__ */ __commonJSMin(((exports) => { Object.defineProperty(exports, "__esModule", { value: true }); const items_1 = require_items(); const def = { keyword: "prefixItems", type: "array", schemaType: ["array"], before: "uniqueItems", code: (cxt) => (0, items_1.validateTuple)(cxt, "items") }; exports.default = def; })); var require_items2020 = /* @__PURE__ */ __commonJSMin(((exports) => { Object.defineProperty(exports, "__esModule", { value: true }); const codegen_1 = require_codegen(); const util_1 = require_util(); const code_1 = require_code(); const additionalItems_1 = require_additionalItems(); const def = { keyword: "items", type: "array", schemaType: ["object", "boolean"], before: "uniqueItems", error: { message: ({ params: { len } }) => (0, codegen_1.str)`must NOT have more than ${len} items`, params: ({ params: { len } }) => (0, codegen_1._)`{limit: ${len}}` }, code(cxt) { const { schema, parentSchema, it } = cxt; const { prefixItems } = parentSchema; it.items = true; if ((0, util_1.alwaysValidSchema)(it, schema)) return; if (prefixItems) (0, additionalItems_1.validateAdditionalItems)(cxt, prefixItems); else cxt.ok((0, code_1.validateArray)(cxt)); } }; exports.default = def; })); var require_contains = /* @__PURE__ */ __commonJSMin(((exports) => { Object.defineProperty(exports, "__esModule", { value: true }); const codegen_1 = require_codegen(); const util_1 = require_util(); const def = { keyword: "contains", type: "array", schemaType: ["object", "boolean"], before: "uniqueItems", trackErrors: true, error: { message: ({ params: { min, max } }) => max === void 0 ? (0, codegen_1.str)`must contain at least ${min} valid item(s)` : (0, codegen_1.str)`must contain at least ${min} and no more than ${max} valid item(s)`, params: ({ params: { min, max } }) => max === void 0 ? (0, codegen_1._)`{minContains: ${min}}` : (0, codegen_1._)`{minContains: ${min}, maxContains: ${max}}` }, code(cxt) { const { gen, schema, parentSchema, data, it } = cxt; let min; let max; const { minContains, maxContains } = parentSchema; if (it.opts.next) { min = minContains === void 0 ? 1 : minContains; max = maxContains; } else min = 1; const len = gen.const("len", (0, codegen_1._)`${data}.length`); cxt.setParams({ min, max }); if (max === void 0 && min === 0) { (0, util_1.checkStrictMode)(it, `"minContains" == 0 without "maxContains": "contains" keyword ignored`); return; } if (max !== void 0 && min > max) { (0, util_1.checkStrictMode)(it, `"minContains" > "maxContains" is always invalid`); cxt.fail(); return; } if ((0, util_1.alwaysValidSchema)(it, schema)) { let cond = (0, codegen_1._)`${len} >= ${min}`; if (max !== void 0) cond = (0, codegen_1._)`${cond} && ${len} <= ${max}`; cxt.pass(cond); return; } it.items = true; const valid = gen.name("valid"); if (max === void 0 && min === 1) validateItems(valid, () => gen.if(valid, () => gen.break())); else if (min === 0) { gen.let(valid, true); if (max !== void 0) gen.if((0, codegen_1._)`${data}.length > 0`, validateItemsWithCount); } else { gen.let(valid, false); validateItemsWithCount(); } cxt.result(valid, () => cxt.reset()); function validateItemsWithCount() { const schValid = gen.name("_valid"); const count = gen.let("count", 0); validateItems(schValid, () => gen.if(schValid, () => checkLimits(count))); } function validateItems(_valid, block) { gen.forRange("i", 0, len, (i) => { cxt.subschema({ keyword: "contains", dataProp: i, dataPropType: util_1.Type.Num, compositeRule: true }, _valid); block(); }); } function checkLimits(count) { gen.code((0, codegen_1._)`${count}++`); if (max === void 0) gen.if((0, codegen_1._)`${count} >= ${min}`, () => gen.assign(valid, true).break()); else { gen.if((0, codegen_1._)`${count} > ${max}`, () => gen.assign(valid, false).break()); if (min === 1) gen.assign(valid, true); else gen.if((0, codegen_1._)`${count} >= ${min}`, () => gen.assign(valid, true)); } } } }; exports.default = def; })); var require_dependencies = /* @__PURE__ */ __commonJSMin(((exports) => { Object.defineProperty(exports, "__esModule", { value: true }); exports.validateSchemaDeps = exports.validatePropertyDeps = exports.error = void 0; const codegen_1 = require_codegen(); const util_1 = require_util(); const code_1 = require_code(); exports.error = { message: ({ params: { property, depsCount, deps } }) => { const property_ies = depsCount === 1 ? "property" : "properties"; return (0, codegen_1.str)`must have ${property_ies} ${deps} when property ${property} is present`; }, params: ({ params: { property, depsCount, deps, missingProperty } }) => (0, codegen_1._)`{property: ${property}, missingProperty: ${missingProperty}, depsCount: ${depsCount}, deps: ${deps}}` }; const def = { keyword: "dependencies", type: "object", schemaType: "object", error: exports.error, code(cxt) { const [propDeps, schDeps] = splitDependencies(cxt); validatePropertyDeps(cxt, propDeps); validateSchemaDeps(cxt, schDeps); } }; function splitDependencies({ schema }) { const propertyDeps = {}; const schemaDeps = {}; for (const key in schema) { if (key === "__proto__") continue; const deps = Array.isArray(schema[key]) ? propertyDeps : schemaDeps; deps[key] = schema[key]; } return [propertyDeps, schemaDeps]; } function validatePropertyDeps(cxt, propertyDeps = cxt.schema) { const { gen, data, it } = cxt; if (Object.keys(propertyDeps).length === 0) return; const missing = gen.let("missing"); for (const prop in propertyDeps) { const deps = propertyDeps[prop]; if (deps.length === 0) continue; const hasProperty = (0, code_1.propertyInData)(gen, data, prop, it.opts.ownProperties); cxt.setParams({ property: prop, depsCount: deps.length, deps: deps.join(", ") }); if (it.allErrors) gen.if(hasProperty, () => { for (const depProp of deps) (0, code_1.checkReportMissingProp)(cxt, depProp); }); else { gen.if((0, codegen_1._)`${hasProperty} && (${(0, code_1.checkMissingProp)(cxt, deps, missing)})`); (0, code_1.reportMissingProp)(cxt, missing); gen.else(); } } } exports.validatePropertyDeps = validatePropertyDeps; function validateSchemaDeps(cxt, schemaDeps = cxt.schema) { const { gen, data, keyword, it } = cxt; const valid = gen.name("valid"); for (const prop in schemaDeps) { if ((0, util_1.alwaysValidSchema)(it, schemaDeps[prop])) continue; gen.if((0, code_1.propertyInData)(gen, data, prop, it.opts.ownProperties), () => { const schCxt = cxt.subschema({ keyword, schemaProp: prop }, valid); cxt.mergeValidEvaluated(schCxt, valid); }, () => gen.var(valid, true)); cxt.ok(valid); } } exports.validateSchemaDeps = validateSchemaDeps; exports.default = def; })); var require_propertyNames = /* @__PURE__ */ __commonJSMin(((exports) => { Object.defineProperty(exports, "__esModule", { value: true }); const codegen_1 = require_codegen(); const util_1 = require_util(); const def = { keyword: "propertyNames", type: "object", schemaType: ["object", "boolean"], error: { message: "property name must be valid", params: ({ params }) => (0, codegen_1._)`{propertyName: ${params.propertyName}}` }, code(cxt) { const { gen, schema, data, it } = cxt; if ((0, util_1.alwaysValidSchema)(it, schema)) return; const valid = gen.name("valid"); gen.forIn("key", data, (key) => { cxt.setParams({ propertyName: key }); cxt.subschema({ keyword: "propertyNames", data: key, dataTypes: ["string"], propertyName: key, compositeRule: true }, valid); gen.if((0, codegen_1.not)(valid), () => { cxt.error(true); if (!it.allErrors) gen.break(); }); }); cxt.ok(valid); } }; exports.default = def; })); var require_additionalProperties = /* @__PURE__ */ __commonJSMin(((exports) => { Object.defineProperty(exports, "__esModule", { value: true }); const code_1 = require_code(); const codegen_1 = require_codegen(); const names_1 = require_names(); const util_1 = require_util(); const def = { keyword: "additionalProperties", type: ["object"], schemaType: ["boolean", "object"], allowUndefined: true, trackErrors: true, error: { message: "must NOT have additional properties", params: ({ params }) => (0, codegen_1._)`{additionalProperty: ${params.additionalProperty}}` }, code(cxt) { const { gen, schema, parentSchema, data, errsCount, it } = cxt; if (!errsCount) throw new Error("ajv implementation error"); const { allErrors, opts } = it; it.props = true; if (opts.removeAdditional !== "all" && (0, util_1.alwaysValidSchema)(it, schema)) return; const props = (0, code_1.allSchemaProperties)(parentSchema.properties); const patProps = (0, code_1.allSchemaProperties)(parentSchema.patternProperties); checkAdditionalProperties(); cxt.ok((0, codegen_1._)`${errsCount} === ${names_1.default.errors}`); function checkAdditionalProperties() { gen.forIn("key", data, (key) => { if (!props.length && !patProps.length) additionalPropertyCode(key); else gen.if(isAdditional(key), () => additionalPropertyCode(key)); }); } function isAdditional(key) { let definedProp; if (props.length > 8) { const propsSchema = (0, util_1.schemaRefOrVal)(it, parentSchema.properties, "properties"); definedProp = (0, code_1.isOwnProperty)(gen, propsSchema, key); } else if (props.length) definedProp = (0, codegen_1.or)(...props.map((p) => (0, codegen_1._)`${key} === ${p}`)); else definedProp = codegen_1.nil; if (patProps.length) definedProp = (0, codegen_1.or)(definedProp, ...patProps.map((p) => (0, codegen_1._)`${(0, code_1.usePattern)(cxt, p)}.test(${key})`)); return (0, codegen_1.not)(definedProp); } function deleteAdditional(key) { gen.code((0, codegen_1._)`delete ${data}[${key}]`); } function additionalPropertyCode(key) { if (opts.removeAdditional === "all" || opts.removeAdditional && schema === false) { deleteAdditional(key); return; } if (schema === false) { cxt.setParams({ additionalProperty: key }); cxt.error(); if (!allErrors) gen.break(); return; } if (typeof schema == "object" && !(0, util_1.alwaysValidSchema)(it, schema)) { const valid = gen.name("valid"); if (opts.removeAdditional === "failing") { applyAdditionalSchema(key, valid, false); gen.if((0, codegen_1.not)(valid), () => { cxt.reset(); deleteAdditional(key); }); } else { applyAdditionalSchema(key, valid); if (!allErrors) gen.if((0, codegen_1.not)(valid), () => gen.break()); } } } function applyAdditionalSchema(key, valid, errors) { const subschema = { keyword: "additionalProperties", dataProp: key, dataPropType: util_1.Type.Str }; if (errors === false) Object.assign(subschema, { compositeRule: true, createErrors: false, allErrors: false }); cxt.subschema(subschema, valid); } } }; exports.default = def; })); var require_properties = /* @__PURE__ */ __commonJSMin(((exports) => { Object.defineProperty(exports, "__esModule", { value: true }); const validate_1 = require_validate(); const code_1 = require_code(); const util_1 = require_util(); const additionalProperties_1 = require_additionalProperties(); const def = { keyword: "properties", type: "object", schemaType: "object", code(cxt) { const { gen, schema, parentSchema, data, it } = cxt; if (it.opts.removeAdditional === "all" && parentSchema.additionalProperties === void 0) additionalProperties_1.default.code(new validate_1.KeywordCxt(it, additionalProperties_1.default, "additionalProperties")); const allProps = (0, code_1.allSchemaProperties)(schema); for (const prop of allProps) it.definedProperties.add(prop); if (it.opts.unevaluated && allProps.length && it.props !== true) it.props = util_1.mergeEvaluated.props(gen, (0, util_1.toHash)(allProps), it.props); const properties = allProps.filter((p) => !(0, util_1.alwaysValidSchema)(it, schema[p])); if (properties.length === 0) return; const valid = gen.name("valid"); for (const prop of properties) { if (hasDefault(prop)) applyPropertySchema(prop); else { gen.if((0, code_1.propertyInData)(gen, data, prop, it.opts.ownProperties)); applyPropertySchema(prop); if (!it.allErrors) gen.else().var(valid, true); gen.endIf(); } cxt.it.definedProperties.add(prop); cxt.ok(valid); } function hasDefault(prop) { return it.opts.useDefaults && !it.compositeRule && schema[prop].default !== void 0; } function applyPropertySchema(prop) { cxt.subschema({ keyword: "properties", schemaProp: prop, dataProp: prop }, valid); } } }; exports.default = def; })); var require_patternProperties = /* @__PURE__ */ __commonJSMin(((exports) => { Object.defineProperty(exports, "__esModule", { value: true }); const code_1 = require_code(); const codegen_1 = require_codegen(); const util_1 = require_util(); const util_2 = require_util(); const def = { keyword: "patternProperties", type: "object", schemaType: "object", code(cxt) { const { gen, schema, data, parentSchema, it } = cxt; const { opts } = it; const patterns = (0, code_1.allSchemaProperties)(schema); const alwaysValidPatterns = patterns.filter((p) => (0, util_1.alwaysValidSchema)(it, schema[p])); if (patterns.length === 0 || alwaysValidPatterns.length === patterns.length && (!it.opts.unevaluated || it.props === true)) return; const checkProperties = opts.strictSchema && !opts.allowMatchingProperties && parentSchema.properties; const valid = gen.name("valid"); if (it.props !== true && !(it.props instanceof codegen_1.Name)) it.props = (0, util_2.evaluatedPropsToName)(gen, it.props); const { props } = it; validatePatternProperties(); function validatePatternProperties() { for (const pat of patterns) { if (checkProperties) checkMatchingProperties(pat); if (it.allErrors) validateProperties(pat); else { gen.var(valid, true); validateProperties(pat); gen.if(valid); } } } function checkMatchingProperties(pat) { for (const prop in checkProperties) if (new RegExp(pat).test(prop)) (0, util_1.checkStrictMode)(it, `property ${prop} matches pattern ${pat} (use allowMatchingProperties)`); } function validateProperties(pat) { gen.forIn("key", data, (key) => { gen.if((0, codegen_1._)`${(0, code_1.usePattern)(cxt, pat)}.test(${key})`, () => { const alwaysValid = alwaysValidPatterns.includes(pat); if (!alwaysValid) cxt.subschema({ keyword: "patternProperties", schemaProp: pat, dataProp: key, dataPropType: util_2.Type.Str }, valid); if (it.opts.unevaluated && props !== true) gen.assign((0, codegen_1._)`${props}[${key}]`, true); else if (!alwaysValid && !it.allErrors) gen.if((0, codegen_1.not)(valid), () => gen.break()); }); }); } } }; exports.default = def; })); var require_not = /* @__PURE__ */ __commonJSMin(((exports) => { Object.defineProperty(exports, "__esModule", { value: true }); const util_1 = require_util(); const def = { keyword: "not", schemaType: ["object", "boolean"], trackErrors: true, code(cxt) { const { gen, schema, it } = cxt; if ((0, util_1.alwaysValidSchema)(it, schema)) { cxt.fail(); return; } const valid = gen.name("valid"); cxt.subschema({ keyword: "not", compositeRule: true, createErrors: false, allErrors: false }, valid); cxt.failResult(valid, () => cxt.reset(), () => cxt.error()); }, error: { message: "must NOT be valid" } }; exports.default = def; })); var require_anyOf = /* @__PURE__ */ __commonJSMin(((exports) => { Object.defineProperty(exports, "__esModule", { value: true }); const def = { keyword: "anyOf", schemaType: "array", trackErrors: true, code: require_code().validateUnion, error: { message: "must match a schema in anyOf" } }; exports.default = def; })); var require_oneOf = /* @__PURE__ */ __commonJSMin(((exports) => { Object.defineProperty(exports, "__esModule", { value: true }); const codegen_1 = require_codegen(); const util_1 = require_util(); const def = { keyword: "oneOf", schemaType: "array", trackErrors: true, error: { message: "must match exactly one schema in oneOf", params: ({ params }) => (0, codegen_1._)`{passingSchemas: ${params.passing}}` }, code(cxt) { const { gen, schema, parentSchema, it } = cxt; if (!Array.isArray(schema)) throw new Error("ajv implementation error"); if (it.opts.discriminator && parentSchema.discriminator) return; const schArr = schema; const valid = gen.let("valid", false); const passing = gen.let("passing", null); const schValid = gen.name("_valid"); cxt.setParams({ passing }); gen.block(validateOneOf); cxt.result(valid, () => cxt.reset(), () => cxt.error(true)); function validateOneOf() { schArr.forEach((sch, i) => { let schCxt; if ((0, util_1.alwaysValidSchema)(it, sch)) gen.var(schValid, true); else schCxt = cxt.subschema({ keyword: "oneOf", schemaProp: i, compositeRule: true }, schValid); if (i > 0) gen.if((0, codegen_1._)`${schValid} && ${valid}`).assign(valid, false).assign(passing, (0, codegen_1._)`[${passing}, ${i}]`).else(); gen.if(schValid, () => { gen.assign(valid, true); gen.assign(passing, i); if (schCxt) cxt.mergeEvaluated(schCxt, codegen_1.Name); }); }); } } }; exports.default = def; })); var require_allOf = /* @__PURE__ */ __commonJSMin(((exports) => { Object.defineProperty(exports, "__esModule", { value: true }); const util_1 = require_util(); const def = { keyword: "allOf", schemaType: "array", code(cxt) { const { gen, schema, it } = cxt; if (!Array.isArray(schema)) throw new Error("ajv implementation error"); const valid = gen.name("valid"); schema.forEach((sch, i) => { if ((0, util_1.alwaysValidSchema)(it, sch)) return; const schCxt = cxt.subschema({ keyword: "allOf", schemaProp: i }, valid); cxt.ok(valid); cxt.mergeEvaluated(schCxt); }); } }; exports.default = def; })); var require_if = /* @__PURE__ */ __commonJSMin(((exports) => { Object.defineProperty(exports, "__esModule", { value: true }); const codegen_1 = require_codegen(); const util_1 = require_util(); const def = { keyword: "if", schemaType: ["object", "boolean"], trackErrors: true, error: { message: ({ params }) => (0, codegen_1.str)`must match "${params.ifClause}" schema`, params: ({ params }) => (0, codegen_1._)`{failingKeyword: ${params.ifClause}}` }, code(cxt) { const { gen, parentSchema, it } = cxt; if (parentSchema.then === void 0 && parentSchema.else === void 0) (0, util_1.checkStrictMode)(it, '"if" without "then" and "else" is ignored'); const hasThen = hasSchema(it, "then"); const hasElse = hasSchema(it, "else"); if (!hasThen && !hasElse) return; const valid = gen.let("valid", true); const schValid = gen.name("_valid"); validateIf(); cxt.reset(); if (hasThen && hasElse) { const ifClause = gen.let("ifClause"); cxt.setParams({ ifClause }); gen.if(schValid, validateClause("then", ifClause), validateClause("else", ifClause)); } else if (hasThen) gen.if(schValid, validateClause("then")); else gen.if((0, codegen_1.not)(schValid), validateClause("else")); cxt.pass(valid, () => cxt.error(true)); function validateIf() { const schCxt = cxt.subschema({ keyword: "if", compositeRule: true, createErrors: false, allErrors: false }, schValid); cxt.mergeEvaluated(schCxt); } function validateClause(keyword, ifClause) { return () => { const schCxt = cxt.subschema({ keyword }, schValid); gen.assign(valid, schValid); cxt.mergeValidEvaluated(schCxt, valid); if (ifClause) gen.assign(ifClause, (0, codegen_1._)`${keyword}`); else cxt.setParams({ ifClause: keyword }); }; } } }; function hasSchema(it, keyword) { const schema = it.schema[keyword]; return schema !== void 0 && !(0, util_1.alwaysValidSchema)(it, schema); } exports.default = def; })); var require_thenElse = /* @__PURE__ */ __commonJSMin(((exports) => { Object.defineProperty(exports, "__esModule", { value: true }); const util_1 = require_util(); const def = { keyword: ["then", "else"], schemaType: ["object", "boolean"], code({ keyword, parentSchema, it }) { if (parentSchema.if === void 0) (0, util_1.checkStrictMode)(it, `"${keyword}" without "if" is ignored`); } }; exports.default = def; })); var require_applicator$2 = /* @__PURE__ */ __commonJSMin(((exports) => { Object.defineProperty(exports, "__esModule", { value: true }); const additionalItems_1 = require_additionalItems(); const prefixItems_1 = require_prefixItems(); const items_1 = require_items(); const items2020_1 = require_items2020(); const contains_1 = require_contains(); const dependencies_1 = require_dependencies(); const propertyNames_1 = require_propertyNames(); const additionalProperties_1 = require_additionalProperties(); const properties_1 = require_properties(); const patternProperties_1 = require_patternProperties(); const not_1 = require_not(); const anyOf_1 = require_anyOf(); const oneOf_1 = require_oneOf(); const allOf_1 = require_allOf(); const if_1 = require_if(); const thenElse_1 = require_thenElse(); function getApplicator(draft2020 = false) { const applicator = [ not_1.default, anyOf_1.default, oneOf_1.default, allOf_1.default, if_1.default, thenElse_1.default, propertyNames_1.default, additionalProperties_1.default, dependencies_1.default, properties_1.default, patternProperties_1.default ]; if (draft2020) applicator.push(prefixItems_1.default, items2020_1.default); else applicator.push(additionalItems_1.default, items_1.default); applicator.push(contains_1.default); return applicator; } exports.default = getApplicator; })); var require_format$2 = /* @__PURE__ */ __commonJSMin(((exports) => { Object.defineProperty(exports, "__esModule", { value: true }); const codegen_1 = require_codegen(); const def = { keyword: "format", type: ["number", "string"], schemaType: "string", $data: true, error: { message: ({ schemaCode }) => (0, codegen_1.str)`must match format "${schemaCode}"`, params: ({ schemaCode }) => (0, codegen_1._)`{format: ${schemaCode}}` }, code(cxt, ruleType) { const { gen, data, $data, schema, schemaCode, it } = cxt; const { opts, errSchemaPath, schemaEnv, self } = it; if (!opts.validateFormats) return; if ($data) validate$DataFormat(); else validateFormat(); function validate$DataFormat() { const fmts = gen.scopeValue("formats", { ref: self.formats, code: opts.code.formats }); const fDef = gen.const("fDef", (0, codegen_1._)`${fmts}[${schemaCode}]`); const fType = gen.let("fType"); const format = gen.let("format"); gen.if((0, codegen_1._)`typeof ${fDef} == "object" && !(${fDef} instanceof RegExp)`, () => gen.assign(fType, (0, codegen_1._)`${fDef}.type || "string"`).assign(format, (0, codegen_1._)`${fDef}.validate`), () => gen.assign(fType, (0, codegen_1._)`"string"`).assign(format, fDef)); cxt.fail$data((0, codegen_1.or)(unknownFmt(), invalidFmt())); function unknownFmt() { if (opts.strictSchema === false) return codegen_1.nil; return (0, codegen_1._)`${schemaCode} && !${format}`; } function invalidFmt() { const callFormat = schemaEnv.$async ? (0, codegen_1._)`(${fDef}.async ? await ${format}(${data}) : ${format}(${data}))` : (0, codegen_1._)`${format}(${data})`; const validData = (0, codegen_1._)`(typeof ${format} == "function" ? ${callFormat} : ${format}.test(${data}))`; return (0, codegen_1._)`${format} && ${format} !== true && ${fType} === ${ruleType} && !${validData}`; } } function validateFormat() { const formatDef = self.formats[schema]; if (!formatDef) { unknownFormat(); return; } if (formatDef === true) return; const [fmtType, format, fmtRef] = getFormat(formatDef); if (fmtType === ruleType) cxt.pass(validCondition()); function unknownFormat() { if (opts.strictSchema === false) { self.logger.warn(unknownMsg()); return; } throw new Error(unknownMsg()); function unknownMsg() { return `unknown format "${schema}" ignored in schema at path "${errSchemaPath}"`; } } function getFormat(fmtDef) { const code = fmtDef instanceof RegExp ? (0, codegen_1.regexpCode)(fmtDef) : opts.code.formats ? (0, codegen_1._)`${opts.code.formats}${(0, codegen_1.getProperty)(schema)}` : void 0; const fmt = gen.scopeValue("formats", { key: schema, ref: fmtDef, code }); if (typeof fmtDef == "object" && !(fmtDef instanceof RegExp)) return [ fmtDef.type || "string", fmtDef.validate, (0, codegen_1._)`${fmt}.validate` ]; return [ "string", fmtDef, fmt ]; } function validCondition() { if (typeof formatDef == "object" && !(formatDef instanceof RegExp) && formatDef.async) { if (!schemaEnv.$async) throw new Error("async format in sync schema"); return (0, codegen_1._)`await ${fmtRef}(${data})`; } return typeof format == "function" ? (0, codegen_1._)`${fmtRef}(${data})` : (0, codegen_1._)`${fmtRef}.test(${data})`; } } } }; exports.default = def; })); var require_format$1 = /* @__PURE__ */ __commonJSMin(((exports) => { Object.defineProperty(exports, "__esModule", { value: true }); const format = [require_format$2().default]; exports.default = format; })); var require_metadata = /* @__PURE__ */ __commonJSMin(((exports) => { Object.defineProperty(exports, "__esModule", { value: true }); exports.contentVocabulary = exports.metadataVocabulary = void 0; exports.metadataVocabulary = [ "title", "description", "default", "deprecated", "readOnly", "writeOnly", "examples" ]; exports.contentVocabulary = [ "contentMediaType", "contentEncoding", "contentSchema" ]; })); var require_draft7 = /* @__PURE__ */ __commonJSMin(((exports) => { Object.defineProperty(exports, "__esModule", { value: true }); const core_1 = require_core$2(); const validation_1 = require_validation$2(); const applicator_1 = require_applicator$2(); const format_1 = require_format$1(); const metadata_1 = require_metadata(); const draft7Vocabularies = [ core_1.default, validation_1.default, (0, applicator_1.default)(), format_1.default, metadata_1.metadataVocabulary, metadata_1.contentVocabulary ]; exports.default = draft7Vocabularies; })); var require_types = /* @__PURE__ */ __commonJSMin(((exports) => { Object.defineProperty(exports, "__esModule", { value: true }); exports.DiscrError = void 0; var DiscrError; (function(DiscrError2) { DiscrError2["Tag"] = "tag"; DiscrError2["Mapping"] = "mapping"; })(DiscrError || (exports.DiscrError = DiscrError = {})); })); var require_discriminator = /* @__PURE__ */ __commonJSMin(((exports) => { Object.defineProperty(exports, "__esModule", { value: true }); const codegen_1 = require_codegen(); const types_1 = require_types(); const compile_1 = require_compile(); const ref_error_1 = require_ref_error(); const util_1 = require_util(); const def = { keyword: "discriminator", type: "object", schemaType: "object", error: { message: ({ params: { discrError, tagName } }) => discrError === types_1.DiscrError.Tag ? `tag "${tagName}" must be string` : `value of tag "${tagName}" must be in oneOf`, params: ({ params: { discrError, tag, tagName } }) => (0, codegen_1._)`{error: ${discrError}, tag: ${tagName}, tagValue: ${tag}}` }, code(cxt) { const { gen, data, schema, parentSchema, it } = cxt; const { oneOf } = parentSchema; if (!it.opts.discriminator) throw new Error("discriminator: requires discriminator option"); const tagName = schema.propertyName; if (typeof tagName != "string") throw new Error("discriminator: requires propertyName"); if (schema.mapping) throw new Error("discriminator: mapping is not supported"); if (!oneOf) throw new Error("discriminator: requires oneOf keyword"); const valid = gen.let("valid", false); const tag = gen.const("tag", (0, codegen_1._)`${data}${(0, codegen_1.getProperty)(tagName)}`); gen.if((0, codegen_1._)`typeof ${tag} == "string"`, () => validateMapping(), () => cxt.error(false, { discrError: types_1.DiscrError.Tag, tag, tagName })); cxt.ok(valid); function validateMapping() { const mapping = getMapping(); gen.if(false); for (const tagValue in mapping) { gen.elseIf((0, codegen_1._)`${tag} === ${tagValue}`); gen.assign(valid, applyTagSchema(mapping[tagValue])); } gen.else(); cxt.error(false, { discrError: types_1.DiscrError.Mapping, tag, tagName }); gen.endIf(); } function applyTagSchema(schemaProp) { const _valid = gen.name("valid"); const schCxt = cxt.subschema({ keyword: "oneOf", schemaProp }, _valid); cxt.mergeEvaluated(schCxt, codegen_1.Name); return _valid; } function getMapping() { var _a3; const oneOfMapping = {}; const topRequired = hasRequired(parentSchema); let tagRequired = true; for (let i = 0; i < oneOf.length; i++) { let sch = oneOf[i]; if ((sch === null || sch === void 0 ? void 0 : sch.$ref) && !(0, util_1.schemaHasRulesButRef)(sch, it.self.RULES)) { const ref = sch.$ref; sch = compile_1.resolveRef.call(it.self, it.schemaEnv.root, it.baseId, ref); if (sch instanceof compile_1.SchemaEnv) sch = sch.schema; if (sch === void 0) throw new ref_error_1.default(it.opts.uriResolver, it.baseId, ref); } const propSch = (_a3 = sch === null || sch === void 0 ? void 0 : sch.properties) === null || _a3 === void 0 ? void 0 : _a3[tagName]; if (typeof propSch != "object") throw new Error(`discriminator: oneOf subschemas (or referenced schemas) must have "properties/${tagName}"`); tagRequired = tagRequired && (topRequired || hasRequired(sch)); addMappings(propSch, i); } if (!tagRequired) throw new Error(`discriminator: "${tagName}" must be required`); return oneOfMapping; function hasRequired({ required: required2 }) { return Array.isArray(required2) && required2.includes(tagName); } function addMappings(sch, i) { if (sch.const) addMapping(sch.const, i); else if (sch.enum) for (const tagValue of sch.enum) addMapping(tagValue, i); else throw new Error(`discriminator: "properties/${tagName}" must have "const" or "enum"`); } function addMapping(tagValue, i) { if (typeof tagValue != "string" || tagValue in oneOfMapping) throw new Error(`discriminator: "${tagName}" values must be unique strings`); oneOfMapping[tagValue] = i; } } } }; exports.default = def; })); var require_json_schema_draft_07 = /* @__PURE__ */ __commonJSMin(((exports, module) => { module.exports = { "$schema": "http://json-schema.org/draft-07/schema#", "$id": "http://json-schema.org/draft-07/schema#", "title": "Core schema meta-schema", "definitions": { "schemaArray": { "type": "array", "minItems": 1, "items": { "$ref": "#" } }, "nonNegativeInteger": { "type": "integer", "minimum": 0 }, "nonNegativeIntegerDefault0": { "allOf": [{ "$ref": "#/definitions/nonNegativeInteger" }, { "default": 0 }] }, "simpleTypes": { "enum": [ "array", "boolean", "integer", "null", "number", "object", "string" ] }, "stringArray": { "type": "array", "items": { "type": "string" }, "uniqueItems": true, "default": [] } }, "type": ["object", "boolean"], "properties": { "$id": { "type": "string", "format": "uri-reference" }, "$schema": { "type": "string", "format": "uri" }, "$ref": { "type": "string", "format": "uri-reference" }, "$comment": { "type": "string" }, "title": { "type": "string" }, "description": { "type": "string" }, "default": true, "readOnly": { "type": "boolean", "default": false }, "examples": { "type": "array", "items": true }, "multipleOf": { "type": "number", "exclusiveMinimum": 0 }, "maximum": { "type": "number" }, "exclusiveMaximum": { "type": "number" }, "minimum": { "type": "number" }, "exclusiveMinimum": { "type": "number" }, "maxLength": { "$ref": "#/definitions/nonNegativeInteger" }, "minLength": { "$ref": "#/definitions/nonNegativeIntegerDefault0" }, "pattern": { "type": "string", "format": "regex" }, "additionalItems": { "$ref": "#" }, "items": { "anyOf": [{ "$ref": "#" }, { "$ref": "#/definitions/schemaArray" }], "default": true }, "maxItems": { "$ref": "#/definitions/nonNegativeInteger" }, "minItems": { "$ref": "#/definitions/nonNegativeIntegerDefault0" }, "uniqueItems": { "type": "boolean", "default": false }, "contains": { "$ref": "#" }, "maxProperties": { "$ref": "#/definitions/nonNegativeInteger" }, "minProperties": { "$ref": "#/definitions/nonNegativeIntegerDefault0" }, "required": { "$ref": "#/definitions/stringArray" }, "additionalProperties": { "$ref": "#" }, "definitions": { "type": "object", "additionalProperties": { "$ref": "#" }, "default": {} }, "properties": { "type": "object", "additionalProperties": { "$ref": "#" }, "default": {} }, "patternProperties": { "type": "object", "additionalProperties": { "$ref": "#" }, "propertyNames": { "format": "regex" }, "default": {} }, "dependencies": { "type": "object", "additionalProperties": { "anyOf": [{ "$ref": "#" }, { "$ref": "#/definitions/stringArray" }] } }, "propertyNames": { "$ref": "#" }, "const": true, "enum": { "type": "array", "items": true, "minItems": 1, "uniqueItems": true }, "type": { "anyOf": [{ "$ref": "#/definitions/simpleTypes" }, { "type": "array", "items": { "$ref": "#/definitions/simpleTypes" }, "minItems": 1, "uniqueItems": true }] }, "format": { "type": "string" }, "contentMediaType": { "type": "string" }, "contentEncoding": { "type": "string" }, "if": { "$ref": "#" }, "then": { "$ref": "#" }, "else": { "$ref": "#" }, "allOf": { "$ref": "#/definitions/schemaArray" }, "anyOf": { "$ref": "#/definitions/schemaArray" }, "oneOf": { "$ref": "#/definitions/schemaArray" }, "not": { "$ref": "#" } }, "default": true }; })); var require_ajv = /* @__PURE__ */ __commonJSMin(((exports, module) => { Object.defineProperty(exports, "__esModule", { value: true }); exports.MissingRefError = exports.ValidationError = exports.CodeGen = exports.Name = exports.nil = exports.stringify = exports.str = exports._ = exports.KeywordCxt = exports.Ajv = void 0; const core_1 = require_core$3(); const draft7_1 = require_draft7(); const discriminator_1 = require_discriminator(); const draft7MetaSchema = require_json_schema_draft_07(); const META_SUPPORT_DATA = ["/properties"]; const META_SCHEMA_ID = "http://json-schema.org/draft-07/schema"; var Ajv2 = class extends core_1.default { _addVocabularies() { super._addVocabularies(); draft7_1.default.forEach((v) => this.addVocabulary(v)); if (this.opts.discriminator) this.addKeyword(discriminator_1.default); } _addDefaultMetaSchema() { super._addDefaultMetaSchema(); if (!this.opts.meta) return; const metaSchema = this.opts.$data ? this.$dataMetaSchema(draft7MetaSchema, META_SUPPORT_DATA) : draft7MetaSchema; this.addMetaSchema(metaSchema, META_SCHEMA_ID, false); this.refs["http://json-schema.org/schema"] = META_SCHEMA_ID; } defaultMeta() { return this.opts.defaultMeta = super.defaultMeta() || (this.getSchema(META_SCHEMA_ID) ? META_SCHEMA_ID : void 0); } }; exports.Ajv = Ajv2; module.exports = exports = Ajv2; module.exports.Ajv = Ajv2; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = Ajv2; var validate_1 = require_validate(); Object.defineProperty(exports, "KeywordCxt", { enumerable: true, get: function() { return validate_1.KeywordCxt; } }); var codegen_1 = require_codegen(); Object.defineProperty(exports, "_", { enumerable: true, get: function() { return codegen_1._; } }); Object.defineProperty(exports, "str", { enumerable: true, get: function() { return codegen_1.str; } }); Object.defineProperty(exports, "stringify", { enumerable: true, get: function() { return codegen_1.stringify; } }); Object.defineProperty(exports, "nil", { enumerable: true, get: function() { return codegen_1.nil; } }); Object.defineProperty(exports, "Name", { enumerable: true, get: function() { return codegen_1.Name; } }); Object.defineProperty(exports, "CodeGen", { enumerable: true, get: function() { return codegen_1.CodeGen; } }); var validation_error_1 = require_validation_error(); Object.defineProperty(exports, "ValidationError", { enumerable: true, get: function() { return validation_error_1.default; } }); var ref_error_1 = require_ref_error(); Object.defineProperty(exports, "MissingRefError", { enumerable: true, get: function() { return ref_error_1.default; } }); })); var require_dynamicAnchor = /* @__PURE__ */ __commonJSMin(((exports) => { Object.defineProperty(exports, "__esModule", { value: true }); exports.dynamicAnchor = void 0; const codegen_1 = require_codegen(); const names_1 = require_names(); const compile_1 = require_compile(); const ref_1 = require_ref(); const def = { keyword: "$dynamicAnchor", schemaType: "string", code: (cxt) => dynamicAnchor(cxt, cxt.schema) }; function dynamicAnchor(cxt, anchor2) { const { gen, it } = cxt; it.schemaEnv.root.dynamicAnchors[anchor2] = true; const v = (0, codegen_1._)`${names_1.default.dynamicAnchors}${(0, codegen_1.getProperty)(anchor2)}`; const validate3 = it.errSchemaPath === "#" ? it.validateName : _getValidate(cxt); gen.if((0, codegen_1._)`!${v}`, () => gen.assign(v, validate3)); } exports.dynamicAnchor = dynamicAnchor; function _getValidate(cxt) { const { schemaEnv, schema, self } = cxt.it; const { root, baseId, localRefs, meta: meta3 } = schemaEnv.root; const { schemaId } = self.opts; const sch = new compile_1.SchemaEnv({ schema, schemaId, root, baseId, localRefs, meta: meta3 }); compile_1.compileSchema.call(self, sch); return (0, ref_1.getValidate)(cxt, sch); } exports.default = def; })); var require_dynamicRef = /* @__PURE__ */ __commonJSMin(((exports) => { Object.defineProperty(exports, "__esModule", { value: true }); exports.dynamicRef = void 0; const codegen_1 = require_codegen(); const names_1 = require_names(); const ref_1 = require_ref(); const def = { keyword: "$dynamicRef", schemaType: "string", code: (cxt) => dynamicRef(cxt, cxt.schema) }; function dynamicRef(cxt, ref) { const { gen, keyword, it } = cxt; if (ref[0] !== "#") throw new Error(`"${keyword}" only supports hash fragment reference`); const anchor2 = ref.slice(1); if (it.allErrors) _dynamicRef(); else { const valid = gen.let("valid", false); _dynamicRef(valid); cxt.ok(valid); } function _dynamicRef(valid) { if (it.schemaEnv.root.dynamicAnchors[anchor2]) { const v = gen.let("_v", (0, codegen_1._)`${names_1.default.dynamicAnchors}${(0, codegen_1.getProperty)(anchor2)}`); gen.if(v, _callRef(v, valid), _callRef(it.validateName, valid)); } else _callRef(it.validateName, valid)(); } function _callRef(validate3, valid) { return valid ? () => gen.block(() => { (0, ref_1.callRef)(cxt, validate3); gen.let(valid, true); }) : () => (0, ref_1.callRef)(cxt, validate3); } } exports.dynamicRef = dynamicRef; exports.default = def; })); var require_recursiveAnchor = /* @__PURE__ */ __commonJSMin(((exports) => { Object.defineProperty(exports, "__esModule", { value: true }); const dynamicAnchor_1 = require_dynamicAnchor(); const util_1 = require_util(); const def = { keyword: "$recursiveAnchor", schemaType: "boolean", code(cxt) { if (cxt.schema) (0, dynamicAnchor_1.dynamicAnchor)(cxt, ""); else (0, util_1.checkStrictMode)(cxt.it, "$recursiveAnchor: false is ignored"); } }; exports.default = def; })); var require_recursiveRef = /* @__PURE__ */ __commonJSMin(((exports) => { Object.defineProperty(exports, "__esModule", { value: true }); const dynamicRef_1 = require_dynamicRef(); const def = { keyword: "$recursiveRef", schemaType: "string", code: (cxt) => (0, dynamicRef_1.dynamicRef)(cxt, cxt.schema) }; exports.default = def; })); var require_dynamic = /* @__PURE__ */ __commonJSMin(((exports) => { Object.defineProperty(exports, "__esModule", { value: true }); const dynamicAnchor_1 = require_dynamicAnchor(); const dynamicRef_1 = require_dynamicRef(); const recursiveAnchor_1 = require_recursiveAnchor(); const recursiveRef_1 = require_recursiveRef(); const dynamic = [ dynamicAnchor_1.default, dynamicRef_1.default, recursiveAnchor_1.default, recursiveRef_1.default ]; exports.default = dynamic; })); var require_dependentRequired = /* @__PURE__ */ __commonJSMin(((exports) => { Object.defineProperty(exports, "__esModule", { value: true }); const dependencies_1 = require_dependencies(); const def = { keyword: "dependentRequired", type: "object", schemaType: "object", error: dependencies_1.error, code: (cxt) => (0, dependencies_1.validatePropertyDeps)(cxt) }; exports.default = def; })); var require_dependentSchemas = /* @__PURE__ */ __commonJSMin(((exports) => { Object.defineProperty(exports, "__esModule", { value: true }); const dependencies_1 = require_dependencies(); const def = { keyword: "dependentSchemas", type: "object", schemaType: "object", code: (cxt) => (0, dependencies_1.validateSchemaDeps)(cxt) }; exports.default = def; })); var require_limitContains = /* @__PURE__ */ __commonJSMin(((exports) => { Object.defineProperty(exports, "__esModule", { value: true }); const util_1 = require_util(); const def = { keyword: ["maxContains", "minContains"], type: "array", schemaType: "number", code({ keyword, parentSchema, it }) { if (parentSchema.contains === void 0) (0, util_1.checkStrictMode)(it, `"${keyword}" without "contains" is ignored`); } }; exports.default = def; })); var require_next = /* @__PURE__ */ __commonJSMin(((exports) => { Object.defineProperty(exports, "__esModule", { value: true }); const dependentRequired_1 = require_dependentRequired(); const dependentSchemas_1 = require_dependentSchemas(); const limitContains_1 = require_limitContains(); const next = [ dependentRequired_1.default, dependentSchemas_1.default, limitContains_1.default ]; exports.default = next; })); var require_unevaluatedProperties = /* @__PURE__ */ __commonJSMin(((exports) => { Object.defineProperty(exports, "__esModule", { value: true }); const codegen_1 = require_codegen(); const util_1 = require_util(); const names_1 = require_names(); const def = { keyword: "unevaluatedProperties", type: "object", schemaType: ["boolean", "object"], trackErrors: true, error: { message: "must NOT have unevaluated properties", params: ({ params }) => (0, codegen_1._)`{unevaluatedProperty: ${params.unevaluatedProperty}}` }, code(cxt) { const { gen, schema, data, errsCount, it } = cxt; if (!errsCount) throw new Error("ajv implementation error"); const { allErrors, props } = it; if (props instanceof codegen_1.Name) gen.if((0, codegen_1._)`${props} !== true`, () => gen.forIn("key", data, (key) => gen.if(unevaluatedDynamic(props, key), () => unevaluatedPropCode(key)))); else if (props !== true) gen.forIn("key", data, (key) => props === void 0 ? unevaluatedPropCode(key) : gen.if(unevaluatedStatic(props, key), () => unevaluatedPropCode(key))); it.props = true; cxt.ok((0, codegen_1._)`${errsCount} === ${names_1.default.errors}`); function unevaluatedPropCode(key) { if (schema === false) { cxt.setParams({ unevaluatedProperty: key }); cxt.error(); if (!allErrors) gen.break(); return; } if (!(0, util_1.alwaysValidSchema)(it, schema)) { const valid = gen.name("valid"); cxt.subschema({ keyword: "unevaluatedProperties", dataProp: key, dataPropType: util_1.Type.Str }, valid); if (!allErrors) gen.if((0, codegen_1.not)(valid), () => gen.break()); } } function unevaluatedDynamic(evaluatedProps, key) { return (0, codegen_1._)`!${evaluatedProps} || !${evaluatedProps}[${key}]`; } function unevaluatedStatic(evaluatedProps, key) { const ps = []; for (const p in evaluatedProps) if (evaluatedProps[p] === true) ps.push((0, codegen_1._)`${key} !== ${p}`); return (0, codegen_1.and)(...ps); } } }; exports.default = def; })); var require_unevaluatedItems = /* @__PURE__ */ __commonJSMin(((exports) => { Object.defineProperty(exports, "__esModule", { value: true }); const codegen_1 = require_codegen(); const util_1 = require_util(); const def = { keyword: "unevaluatedItems", type: "array", schemaType: ["boolean", "object"], error: { message: ({ params: { len } }) => (0, codegen_1.str)`must NOT have more than ${len} items`, params: ({ params: { len } }) => (0, codegen_1._)`{limit: ${len}}` }, code(cxt) { const { gen, schema, data, it } = cxt; const items = it.items || 0; if (items === true) return; const len = gen.const("len", (0, codegen_1._)`${data}.length`); if (schema === false) { cxt.setParams({ len: items }); cxt.fail((0, codegen_1._)`${len} > ${items}`); } else if (typeof schema == "object" && !(0, util_1.alwaysValidSchema)(it, schema)) { const valid = gen.var("valid", (0, codegen_1._)`${len} <= ${items}`); gen.if((0, codegen_1.not)(valid), () => validateItems(valid, items)); cxt.ok(valid); } it.items = true; function validateItems(valid, from) { gen.forRange("i", from, len, (i) => { cxt.subschema({ keyword: "unevaluatedItems", dataProp: i, dataPropType: util_1.Type.Num }, valid); if (!it.allErrors) gen.if((0, codegen_1.not)(valid), () => gen.break()); }); } } }; exports.default = def; })); var require_unevaluated$1 = /* @__PURE__ */ __commonJSMin(((exports) => { Object.defineProperty(exports, "__esModule", { value: true }); const unevaluatedProperties_1 = require_unevaluatedProperties(); const unevaluatedItems_1 = require_unevaluatedItems(); const unevaluated = [unevaluatedProperties_1.default, unevaluatedItems_1.default]; exports.default = unevaluated; })); var require_schema$1 = /* @__PURE__ */ __commonJSMin(((exports, module) => { module.exports = { "$schema": "https://json-schema.org/draft/2019-09/schema", "$id": "https://json-schema.org/draft/2019-09/schema", "$vocabulary": { "https://json-schema.org/draft/2019-09/vocab/core": true, "https://json-schema.org/draft/2019-09/vocab/applicator": true, "https://json-schema.org/draft/2019-09/vocab/validation": true, "https://json-schema.org/draft/2019-09/vocab/meta-data": true, "https://json-schema.org/draft/2019-09/vocab/format": false, "https://json-schema.org/draft/2019-09/vocab/content": true }, "$recursiveAnchor": true, "title": "Core and Validation specifications meta-schema", "allOf": [ { "$ref": "meta/core" }, { "$ref": "meta/applicator" }, { "$ref": "meta/validation" }, { "$ref": "meta/meta-data" }, { "$ref": "meta/format" }, { "$ref": "meta/content" } ], "type": ["object", "boolean"], "properties": { "definitions": { "$comment": "While no longer an official keyword as it is replaced by $defs, this keyword is retained in the meta-schema to prevent incompatible extensions as it remains in common use.", "type": "object", "additionalProperties": { "$recursiveRef": "#" }, "default": {} }, "dependencies": { "$comment": '"dependencies" is no longer a keyword, but schema authors should avoid redefining it to facilitate a smooth transition to "dependentSchemas" and "dependentRequired"', "type": "object", "additionalProperties": { "anyOf": [{ "$recursiveRef": "#" }, { "$ref": "meta/validation#/$defs/stringArray" }] } } } }; })); var require_applicator$1 = /* @__PURE__ */ __commonJSMin(((exports, module) => { module.exports = { "$schema": "https://json-schema.org/draft/2019-09/schema", "$id": "https://json-schema.org/draft/2019-09/meta/applicator", "$vocabulary": { "https://json-schema.org/draft/2019-09/vocab/applicator": true }, "$recursiveAnchor": true, "title": "Applicator vocabulary meta-schema", "type": ["object", "boolean"], "properties": { "additionalItems": { "$recursiveRef": "#" }, "unevaluatedItems": { "$recursiveRef": "#" }, "items": { "anyOf": [{ "$recursiveRef": "#" }, { "$ref": "#/$defs/schemaArray" }] }, "contains": { "$recursiveRef": "#" }, "additionalProperties": { "$recursiveRef": "#" }, "unevaluatedProperties": { "$recursiveRef": "#" }, "properties": { "type": "object", "additionalProperties": { "$recursiveRef": "#" }, "default": {} }, "patternProperties": { "type": "object", "additionalProperties": { "$recursiveRef": "#" }, "propertyNames": { "format": "regex" }, "default": {} }, "dependentSchemas": { "type": "object", "additionalProperties": { "$recursiveRef": "#" } }, "propertyNames": { "$recursiveRef": "#" }, "if": { "$recursiveRef": "#" }, "then": { "$recursiveRef": "#" }, "else": { "$recursiveRef": "#" }, "allOf": { "$ref": "#/$defs/schemaArray" }, "anyOf": { "$ref": "#/$defs/schemaArray" }, "oneOf": { "$ref": "#/$defs/schemaArray" }, "not": { "$recursiveRef": "#" } }, "$defs": { "schemaArray": { "type": "array", "minItems": 1, "items": { "$recursiveRef": "#" } } } }; })); var require_content$1 = /* @__PURE__ */ __commonJSMin(((exports, module) => { module.exports = { "$schema": "https://json-schema.org/draft/2019-09/schema", "$id": "https://json-schema.org/draft/2019-09/meta/content", "$vocabulary": { "https://json-schema.org/draft/2019-09/vocab/content": true }, "$recursiveAnchor": true, "title": "Content vocabulary meta-schema", "type": ["object", "boolean"], "properties": { "contentMediaType": { "type": "string" }, "contentEncoding": { "type": "string" }, "contentSchema": { "$recursiveRef": "#" } } }; })); var require_core$1 = /* @__PURE__ */ __commonJSMin(((exports, module) => { module.exports = { "$schema": "https://json-schema.org/draft/2019-09/schema", "$id": "https://json-schema.org/draft/2019-09/meta/core", "$vocabulary": { "https://json-schema.org/draft/2019-09/vocab/core": true }, "$recursiveAnchor": true, "title": "Core vocabulary meta-schema", "type": ["object", "boolean"], "properties": { "$id": { "type": "string", "format": "uri-reference", "$comment": "Non-empty fragments not allowed.", "pattern": "^[^#]*#?$" }, "$schema": { "type": "string", "format": "uri" }, "$anchor": { "type": "string", "pattern": "^[A-Za-z][-A-Za-z0-9.:_]*$" }, "$ref": { "type": "string", "format": "uri-reference" }, "$recursiveRef": { "type": "string", "format": "uri-reference" }, "$recursiveAnchor": { "type": "boolean", "default": false }, "$vocabulary": { "type": "object", "propertyNames": { "type": "string", "format": "uri" }, "additionalProperties": { "type": "boolean" } }, "$comment": { "type": "string" }, "$defs": { "type": "object", "additionalProperties": { "$recursiveRef": "#" }, "default": {} } } }; })); var require_format = /* @__PURE__ */ __commonJSMin(((exports, module) => { module.exports = { "$schema": "https://json-schema.org/draft/2019-09/schema", "$id": "https://json-schema.org/draft/2019-09/meta/format", "$vocabulary": { "https://json-schema.org/draft/2019-09/vocab/format": true }, "$recursiveAnchor": true, "title": "Format vocabulary meta-schema", "type": ["object", "boolean"], "properties": { "format": { "type": "string" } } }; })); var require_meta_data$1 = /* @__PURE__ */ __commonJSMin(((exports, module) => { module.exports = { "$schema": "https://json-schema.org/draft/2019-09/schema", "$id": "https://json-schema.org/draft/2019-09/meta/meta-data", "$vocabulary": { "https://json-schema.org/draft/2019-09/vocab/meta-data": true }, "$recursiveAnchor": true, "title": "Meta-data vocabulary meta-schema", "type": ["object", "boolean"], "properties": { "title": { "type": "string" }, "description": { "type": "string" }, "default": true, "deprecated": { "type": "boolean", "default": false }, "readOnly": { "type": "boolean", "default": false }, "writeOnly": { "type": "boolean", "default": false }, "examples": { "type": "array", "items": true } } }; })); var require_validation$1 = /* @__PURE__ */ __commonJSMin(((exports, module) => { module.exports = { "$schema": "https://json-schema.org/draft/2019-09/schema", "$id": "https://json-schema.org/draft/2019-09/meta/validation", "$vocabulary": { "https://json-schema.org/draft/2019-09/vocab/validation": true }, "$recursiveAnchor": true, "title": "Validation vocabulary meta-schema", "type": ["object", "boolean"], "properties": { "multipleOf": { "type": "number", "exclusiveMinimum": 0 }, "maximum": { "type": "number" }, "exclusiveMaximum": { "type": "number" }, "minimum": { "type": "number" }, "exclusiveMinimum": { "type": "number" }, "maxLength": { "$ref": "#/$defs/nonNegativeInteger" }, "minLength": { "$ref": "#/$defs/nonNegativeIntegerDefault0" }, "pattern": { "type": "string", "format": "regex" }, "maxItems": { "$ref": "#/$defs/nonNegativeInteger" }, "minItems": { "$ref": "#/$defs/nonNegativeIntegerDefault0" }, "uniqueItems": { "type": "boolean", "default": false }, "maxContains": { "$ref": "#/$defs/nonNegativeInteger" }, "minContains": { "$ref": "#/$defs/nonNegativeInteger", "default": 1 }, "maxProperties": { "$ref": "#/$defs/nonNegativeInteger" }, "minProperties": { "$ref": "#/$defs/nonNegativeIntegerDefault0" }, "required": { "$ref": "#/$defs/stringArray" }, "dependentRequired": { "type": "object", "additionalProperties": { "$ref": "#/$defs/stringArray" } }, "const": true, "enum": { "type": "array", "items": true }, "type": { "anyOf": [{ "$ref": "#/$defs/simpleTypes" }, { "type": "array", "items": { "$ref": "#/$defs/simpleTypes" }, "minItems": 1, "uniqueItems": true }] } }, "$defs": { "nonNegativeInteger": { "type": "integer", "minimum": 0 }, "nonNegativeIntegerDefault0": { "$ref": "#/$defs/nonNegativeInteger", "default": 0 }, "simpleTypes": { "enum": [ "array", "boolean", "integer", "null", "number", "object", "string" ] }, "stringArray": { "type": "array", "items": { "type": "string" }, "uniqueItems": true, "default": [] } } }; })); var require_json_schema_2019_09 = /* @__PURE__ */ __commonJSMin(((exports) => { Object.defineProperty(exports, "__esModule", { value: true }); const metaSchema = require_schema$1(); const applicator = require_applicator$1(); const content = require_content$1(); const core = require_core$1(); const format = require_format(); const metadata = require_meta_data$1(); const validation = require_validation$1(); const META_SUPPORT_DATA = ["/properties"]; function addMetaSchema2019($data) { [ metaSchema, applicator, content, core, with$data(this, format), metadata, with$data(this, validation) ].forEach((sch) => this.addMetaSchema(sch, void 0, false)); return this; function with$data(ajv, sch) { return $data ? ajv.$dataMetaSchema(sch, META_SUPPORT_DATA) : sch; } } exports.default = addMetaSchema2019; })); var require__2019 = /* @__PURE__ */ __commonJSMin(((exports, module) => { Object.defineProperty(exports, "__esModule", { value: true }); exports.MissingRefError = exports.ValidationError = exports.CodeGen = exports.Name = exports.nil = exports.stringify = exports.str = exports._ = exports.KeywordCxt = exports.Ajv2019 = void 0; const core_1 = require_core$3(); const draft7_1 = require_draft7(); const dynamic_1 = require_dynamic(); const next_1 = require_next(); const unevaluated_1 = require_unevaluated$1(); const discriminator_1 = require_discriminator(); const json_schema_2019_09_1 = require_json_schema_2019_09(); const META_SCHEMA_ID = "https://json-schema.org/draft/2019-09/schema"; var Ajv2019 = class extends core_1.default { constructor(opts = {}) { super({ ...opts, dynamicRef: true, next: true, unevaluated: true }); } _addVocabularies() { super._addVocabularies(); this.addVocabulary(dynamic_1.default); draft7_1.default.forEach((v) => this.addVocabulary(v)); this.addVocabulary(next_1.default); this.addVocabulary(unevaluated_1.default); if (this.opts.discriminator) this.addKeyword(discriminator_1.default); } _addDefaultMetaSchema() { super._addDefaultMetaSchema(); const { $data, meta: meta3 } = this.opts; if (!meta3) return; json_schema_2019_09_1.default.call(this, $data); this.refs["http://json-schema.org/schema"] = META_SCHEMA_ID; } defaultMeta() { return this.opts.defaultMeta = super.defaultMeta() || (this.getSchema(META_SCHEMA_ID) ? META_SCHEMA_ID : void 0); } }; exports.Ajv2019 = Ajv2019; module.exports = exports = Ajv2019; module.exports.Ajv2019 = Ajv2019; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = Ajv2019; var validate_1 = require_validate(); Object.defineProperty(exports, "KeywordCxt", { enumerable: true, get: function() { return validate_1.KeywordCxt; } }); var codegen_1 = require_codegen(); Object.defineProperty(exports, "_", { enumerable: true, get: function() { return codegen_1._; } }); Object.defineProperty(exports, "str", { enumerable: true, get: function() { return codegen_1.str; } }); Object.defineProperty(exports, "stringify", { enumerable: true, get: function() { return codegen_1.stringify; } }); Object.defineProperty(exports, "nil", { enumerable: true, get: function() { return codegen_1.nil; } }); Object.defineProperty(exports, "Name", { enumerable: true, get: function() { return codegen_1.Name; } }); Object.defineProperty(exports, "CodeGen", { enumerable: true, get: function() { return codegen_1.CodeGen; } }); var validation_error_1 = require_validation_error(); Object.defineProperty(exports, "ValidationError", { enumerable: true, get: function() { return validation_error_1.default; } }); var ref_error_1 = require_ref_error(); Object.defineProperty(exports, "MissingRefError", { enumerable: true, get: function() { return ref_error_1.default; } }); })); var require_draft2020 = /* @__PURE__ */ __commonJSMin(((exports) => { Object.defineProperty(exports, "__esModule", { value: true }); const core_1 = require_core$2(); const validation_1 = require_validation$2(); const applicator_1 = require_applicator$2(); const dynamic_1 = require_dynamic(); const next_1 = require_next(); const unevaluated_1 = require_unevaluated$1(); const format_1 = require_format$1(); const metadata_1 = require_metadata(); const draft2020Vocabularies = [ dynamic_1.default, core_1.default, validation_1.default, (0, applicator_1.default)(true), format_1.default, metadata_1.metadataVocabulary, metadata_1.contentVocabulary, next_1.default, unevaluated_1.default ]; exports.default = draft2020Vocabularies; })); var require_schema = /* @__PURE__ */ __commonJSMin(((exports, module) => { module.exports = { "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "https://json-schema.org/draft/2020-12/schema", "$vocabulary": { "https://json-schema.org/draft/2020-12/vocab/core": true, "https://json-schema.org/draft/2020-12/vocab/applicator": true, "https://json-schema.org/draft/2020-12/vocab/unevaluated": true, "https://json-schema.org/draft/2020-12/vocab/validation": true, "https://json-schema.org/draft/2020-12/vocab/meta-data": true, "https://json-schema.org/draft/2020-12/vocab/format-annotation": true, "https://json-schema.org/draft/2020-12/vocab/content": true }, "$dynamicAnchor": "meta", "title": "Core and Validation specifications meta-schema", "allOf": [ { "$ref": "meta/core" }, { "$ref": "meta/applicator" }, { "$ref": "meta/unevaluated" }, { "$ref": "meta/validation" }, { "$ref": "meta/meta-data" }, { "$ref": "meta/format-annotation" }, { "$ref": "meta/content" } ], "type": ["object", "boolean"], "$comment": "This meta-schema also defines keywords that have appeared in previous drafts in order to prevent incompatible extensions as they remain in common use.", "properties": { "definitions": { "$comment": '"definitions" has been replaced by "$defs".', "type": "object", "additionalProperties": { "$dynamicRef": "#meta" }, "deprecated": true, "default": {} }, "dependencies": { "$comment": '"dependencies" has been split and replaced by "dependentSchemas" and "dependentRequired" in order to serve their differing semantics.', "type": "object", "additionalProperties": { "anyOf": [{ "$dynamicRef": "#meta" }, { "$ref": "meta/validation#/$defs/stringArray" }] }, "deprecated": true, "default": {} }, "$recursiveAnchor": { "$comment": '"$recursiveAnchor" has been replaced by "$dynamicAnchor".', "$ref": "meta/core#/$defs/anchorString", "deprecated": true }, "$recursiveRef": { "$comment": '"$recursiveRef" has been replaced by "$dynamicRef".', "$ref": "meta/core#/$defs/uriReferenceString", "deprecated": true } } }; })); var require_applicator = /* @__PURE__ */ __commonJSMin(((exports, module) => { module.exports = { "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "https://json-schema.org/draft/2020-12/meta/applicator", "$vocabulary": { "https://json-schema.org/draft/2020-12/vocab/applicator": true }, "$dynamicAnchor": "meta", "title": "Applicator vocabulary meta-schema", "type": ["object", "boolean"], "properties": { "prefixItems": { "$ref": "#/$defs/schemaArray" }, "items": { "$dynamicRef": "#meta" }, "contains": { "$dynamicRef": "#meta" }, "additionalProperties": { "$dynamicRef": "#meta" }, "properties": { "type": "object", "additionalProperties": { "$dynamicRef": "#meta" }, "default": {} }, "patternProperties": { "type": "object", "additionalProperties": { "$dynamicRef": "#meta" }, "propertyNames": { "format": "regex" }, "default": {} }, "dependentSchemas": { "type": "object", "additionalProperties": { "$dynamicRef": "#meta" }, "default": {} }, "propertyNames": { "$dynamicRef": "#meta" }, "if": { "$dynamicRef": "#meta" }, "then": { "$dynamicRef": "#meta" }, "else": { "$dynamicRef": "#meta" }, "allOf": { "$ref": "#/$defs/schemaArray" }, "anyOf": { "$ref": "#/$defs/schemaArray" }, "oneOf": { "$ref": "#/$defs/schemaArray" }, "not": { "$dynamicRef": "#meta" } }, "$defs": { "schemaArray": { "type": "array", "minItems": 1, "items": { "$dynamicRef": "#meta" } } } }; })); var require_unevaluated = /* @__PURE__ */ __commonJSMin(((exports, module) => { module.exports = { "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "https://json-schema.org/draft/2020-12/meta/unevaluated", "$vocabulary": { "https://json-schema.org/draft/2020-12/vocab/unevaluated": true }, "$dynamicAnchor": "meta", "title": "Unevaluated applicator vocabulary meta-schema", "type": ["object", "boolean"], "properties": { "unevaluatedItems": { "$dynamicRef": "#meta" }, "unevaluatedProperties": { "$dynamicRef": "#meta" } } }; })); var require_content = /* @__PURE__ */ __commonJSMin(((exports, module) => { module.exports = { "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "https://json-schema.org/draft/2020-12/meta/content", "$vocabulary": { "https://json-schema.org/draft/2020-12/vocab/content": true }, "$dynamicAnchor": "meta", "title": "Content vocabulary meta-schema", "type": ["object", "boolean"], "properties": { "contentEncoding": { "type": "string" }, "contentMediaType": { "type": "string" }, "contentSchema": { "$dynamicRef": "#meta" } } }; })); var require_core = /* @__PURE__ */ __commonJSMin(((exports, module) => { module.exports = { "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "https://json-schema.org/draft/2020-12/meta/core", "$vocabulary": { "https://json-schema.org/draft/2020-12/vocab/core": true }, "$dynamicAnchor": "meta", "title": "Core vocabulary meta-schema", "type": ["object", "boolean"], "properties": { "$id": { "$ref": "#/$defs/uriReferenceString", "$comment": "Non-empty fragments not allowed.", "pattern": "^[^#]*#?$" }, "$schema": { "$ref": "#/$defs/uriString" }, "$ref": { "$ref": "#/$defs/uriReferenceString" }, "$anchor": { "$ref": "#/$defs/anchorString" }, "$dynamicRef": { "$ref": "#/$defs/uriReferenceString" }, "$dynamicAnchor": { "$ref": "#/$defs/anchorString" }, "$vocabulary": { "type": "object", "propertyNames": { "$ref": "#/$defs/uriString" }, "additionalProperties": { "type": "boolean" } }, "$comment": { "type": "string" }, "$defs": { "type": "object", "additionalProperties": { "$dynamicRef": "#meta" } } }, "$defs": { "anchorString": { "type": "string", "pattern": "^[A-Za-z_][-A-Za-z0-9._]*$" }, "uriString": { "type": "string", "format": "uri" }, "uriReferenceString": { "type": "string", "format": "uri-reference" } } }; })); var require_format_annotation = /* @__PURE__ */ __commonJSMin(((exports, module) => { module.exports = { "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "https://json-schema.org/draft/2020-12/meta/format-annotation", "$vocabulary": { "https://json-schema.org/draft/2020-12/vocab/format-annotation": true }, "$dynamicAnchor": "meta", "title": "Format vocabulary meta-schema for annotation results", "type": ["object", "boolean"], "properties": { "format": { "type": "string" } } }; })); var require_meta_data = /* @__PURE__ */ __commonJSMin(((exports, module) => { module.exports = { "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "https://json-schema.org/draft/2020-12/meta/meta-data", "$vocabulary": { "https://json-schema.org/draft/2020-12/vocab/meta-data": true }, "$dynamicAnchor": "meta", "title": "Meta-data vocabulary meta-schema", "type": ["object", "boolean"], "properties": { "title": { "type": "string" }, "description": { "type": "string" }, "default": true, "deprecated": { "type": "boolean", "default": false }, "readOnly": { "type": "boolean", "default": false }, "writeOnly": { "type": "boolean", "default": false }, "examples": { "type": "array", "items": true } } }; })); var require_validation = /* @__PURE__ */ __commonJSMin(((exports, module) => { module.exports = { "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "https://json-schema.org/draft/2020-12/meta/validation", "$vocabulary": { "https://json-schema.org/draft/2020-12/vocab/validation": true }, "$dynamicAnchor": "meta", "title": "Validation vocabulary meta-schema", "type": ["object", "boolean"], "properties": { "type": { "anyOf": [{ "$ref": "#/$defs/simpleTypes" }, { "type": "array", "items": { "$ref": "#/$defs/simpleTypes" }, "minItems": 1, "uniqueItems": true }] }, "const": true, "enum": { "type": "array", "items": true }, "multipleOf": { "type": "number", "exclusiveMinimum": 0 }, "maximum": { "type": "number" }, "exclusiveMaximum": { "type": "number" }, "minimum": { "type": "number" }, "exclusiveMinimum": { "type": "number" }, "maxLength": { "$ref": "#/$defs/nonNegativeInteger" }, "minLength": { "$ref": "#/$defs/nonNegativeIntegerDefault0" }, "pattern": { "type": "string", "format": "regex" }, "maxItems": { "$ref": "#/$defs/nonNegativeInteger" }, "minItems": { "$ref": "#/$defs/nonNegativeIntegerDefault0" }, "uniqueItems": { "type": "boolean", "default": false }, "maxContains": { "$ref": "#/$defs/nonNegativeInteger" }, "minContains": { "$ref": "#/$defs/nonNegativeInteger", "default": 1 }, "maxProperties": { "$ref": "#/$defs/nonNegativeInteger" }, "minProperties": { "$ref": "#/$defs/nonNegativeIntegerDefault0" }, "required": { "$ref": "#/$defs/stringArray" }, "dependentRequired": { "type": "object", "additionalProperties": { "$ref": "#/$defs/stringArray" } } }, "$defs": { "nonNegativeInteger": { "type": "integer", "minimum": 0 }, "nonNegativeIntegerDefault0": { "$ref": "#/$defs/nonNegativeInteger", "default": 0 }, "simpleTypes": { "enum": [ "array", "boolean", "integer", "null", "number", "object", "string" ] }, "stringArray": { "type": "array", "items": { "type": "string" }, "uniqueItems": true, "default": [] } } }; })); var require_json_schema_2020_12 = /* @__PURE__ */ __commonJSMin(((exports) => { Object.defineProperty(exports, "__esModule", { value: true }); const metaSchema = require_schema(); const applicator = require_applicator(); const unevaluated = require_unevaluated(); const content = require_content(); const core = require_core(); const format = require_format_annotation(); const metadata = require_meta_data(); const validation = require_validation(); const META_SUPPORT_DATA = ["/properties"]; function addMetaSchema2020($data) { [ metaSchema, applicator, unevaluated, content, core, with$data(this, format), metadata, with$data(this, validation) ].forEach((sch) => this.addMetaSchema(sch, void 0, false)); return this; function with$data(ajv, sch) { return $data ? ajv.$dataMetaSchema(sch, META_SUPPORT_DATA) : sch; } } exports.default = addMetaSchema2020; })); var require__2020 = /* @__PURE__ */ __commonJSMin(((exports, module) => { Object.defineProperty(exports, "__esModule", { value: true }); exports.MissingRefError = exports.ValidationError = exports.CodeGen = exports.Name = exports.nil = exports.stringify = exports.str = exports._ = exports.KeywordCxt = exports.Ajv2020 = void 0; const core_1 = require_core$3(); const draft2020_1 = require_draft2020(); const discriminator_1 = require_discriminator(); const json_schema_2020_12_1 = require_json_schema_2020_12(); const META_SCHEMA_ID = "https://json-schema.org/draft/2020-12/schema"; var Ajv2020 = class extends core_1.default { constructor(opts = {}) { super({ ...opts, dynamicRef: true, next: true, unevaluated: true }); } _addVocabularies() { super._addVocabularies(); draft2020_1.default.forEach((v) => this.addVocabulary(v)); if (this.opts.discriminator) this.addKeyword(discriminator_1.default); } _addDefaultMetaSchema() { super._addDefaultMetaSchema(); const { $data, meta: meta3 } = this.opts; if (!meta3) return; json_schema_2020_12_1.default.call(this, $data); this.refs["http://json-schema.org/schema"] = META_SCHEMA_ID; } defaultMeta() { return this.opts.defaultMeta = super.defaultMeta() || (this.getSchema(META_SCHEMA_ID) ? META_SCHEMA_ID : void 0); } }; exports.Ajv2020 = Ajv2020; module.exports = exports = Ajv2020; module.exports.Ajv2020 = Ajv2020; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = Ajv2020; var validate_1 = require_validate(); Object.defineProperty(exports, "KeywordCxt", { enumerable: true, get: function() { return validate_1.KeywordCxt; } }); var codegen_1 = require_codegen(); Object.defineProperty(exports, "_", { enumerable: true, get: function() { return codegen_1._; } }); Object.defineProperty(exports, "str", { enumerable: true, get: function() { return codegen_1.str; } }); Object.defineProperty(exports, "stringify", { enumerable: true, get: function() { return codegen_1.stringify; } }); Object.defineProperty(exports, "nil", { enumerable: true, get: function() { return codegen_1.nil; } }); Object.defineProperty(exports, "Name", { enumerable: true, get: function() { return codegen_1.Name; } }); Object.defineProperty(exports, "CodeGen", { enumerable: true, get: function() { return codegen_1.CodeGen; } }); var validation_error_1 = require_validation_error(); Object.defineProperty(exports, "ValidationError", { enumerable: true, get: function() { return validation_error_1.default; } }); var ref_error_1 = require_ref_error(); Object.defineProperty(exports, "MissingRefError", { enumerable: true, get: function() { return ref_error_1.default; } }); })); var require_formats = /* @__PURE__ */ __commonJSMin(((exports) => { Object.defineProperty(exports, "__esModule", { value: true }); exports.formatNames = exports.fastFormats = exports.fullFormats = void 0; function fmtDef(validate3, compare) { return { validate: validate3, compare }; } exports.fullFormats = { date: fmtDef(date5, compareDate), time: fmtDef(getTime(true), compareTime), "date-time": fmtDef(getDateTime(true), compareDateTime), "iso-time": fmtDef(getTime(), compareIsoTime), "iso-date-time": fmtDef(getDateTime(), compareIsoDateTime), duration: /^P(?!$)((\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+S)?)?|(\d+W)?)$/, uri, "uri-reference": /^(?:[a-z][a-z0-9+\-.]*:)?(?:\/?\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\.[a-z0-9\-._~!$&'()*+,;=:]+)\]|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)|(?:[a-z0-9\-._~!$&'"()*+,;=]|%[0-9a-f]{2})*)(?::\d*)?(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*|\/(?:(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?(?:\?(?:[a-z0-9\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i, "uri-template": /^(?:(?:[^\x00-\x20"'<>%\\^`{|}]|%[0-9a-f]{2})|\{[+#./;?&=,!@|]?(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?(?:,(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?)*\})*$/i, url: /^(?:https?|ftp):\/\/(?:\S+(?::\S*)?@)?(?:(?!(?:10|127)(?:\.\d{1,3}){3})(?!(?:169\.254|192\.168)(?:\.\d{1,3}){2})(?!172\.(?:1[6-9]|2\d|3[0-1])(?:\.\d{1,3}){2})(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(?:(?:[a-z0-9\u{00a1}-\u{ffff}]+-)*[a-z0-9\u{00a1}-\u{ffff}]+)(?:\.(?:[a-z0-9\u{00a1}-\u{ffff}]+-)*[a-z0-9\u{00a1}-\u{ffff}]+)*(?:\.(?:[a-z\u{00a1}-\u{ffff}]{2,})))(?::\d{2,5})?(?:\/[^\s]*)?$/iu, email: /^[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/i, hostname: /^(?=.{1,253}\.?$)[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[-0-9a-z]{0,61}[0-9a-z])?)*\.?$/i, ipv4: /^(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)$/, ipv6: /^((([0-9a-f]{1,4}:){7}([0-9a-f]{1,4}|:))|(([0-9a-f]{1,4}:){6}(:[0-9a-f]{1,4}|((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9a-f]{1,4}:){5}(((:[0-9a-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9a-f]{1,4}:){4}(((:[0-9a-f]{1,4}){1,3})|((:[0-9a-f]{1,4})?:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){3}(((:[0-9a-f]{1,4}){1,4})|((:[0-9a-f]{1,4}){0,2}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){2}(((:[0-9a-f]{1,4}){1,5})|((:[0-9a-f]{1,4}){0,3}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){1}(((:[0-9a-f]{1,4}){1,6})|((:[0-9a-f]{1,4}){0,4}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(:(((:[0-9a-f]{1,4}){1,7})|((:[0-9a-f]{1,4}){0,5}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))$/i, regex, uuid: /^(?:urn:uuid:)?[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/i, "json-pointer": /^(?:\/(?:[^~/]|~0|~1)*)*$/, "json-pointer-uri-fragment": /^#(?:\/(?:[a-z0-9_\-.!$&'()*+,;:=@]|%[0-9a-f]{2}|~0|~1)*)*$/i, "relative-json-pointer": /^(?:0|[1-9][0-9]*)(?:#|(?:\/(?:[^~/]|~0|~1)*)*)$/, byte, int32: { type: "number", validate: validateInt32 }, int64: { type: "number", validate: validateInt64 }, float: { type: "number", validate: validateNumber }, double: { type: "number", validate: validateNumber }, password: true, binary: true }; exports.fastFormats = { ...exports.fullFormats, date: fmtDef(/^\d\d\d\d-[0-1]\d-[0-3]\d$/, compareDate), time: fmtDef(/^(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)$/i, compareTime), "date-time": fmtDef(/^\d\d\d\d-[0-1]\d-[0-3]\dt(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)$/i, compareDateTime), "iso-time": fmtDef(/^(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)?$/i, compareIsoTime), "iso-date-time": fmtDef(/^\d\d\d\d-[0-1]\d-[0-3]\d[t\s](?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)?$/i, compareIsoDateTime), uri: /^(?:[a-z][a-z0-9+\-.]*:)(?:\/?\/)?[^\s]*$/i, "uri-reference": /^(?:(?:[a-z][a-z0-9+\-.]*:)?\/?\/)?(?:[^\\\s#][^\s#]*)?(?:#[^\\\s]*)?$/i, email: /^[a-z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?)*$/i }; exports.formatNames = Object.keys(exports.fullFormats); function isLeapYear(year) { return year % 4 === 0 && (year % 100 !== 0 || year % 400 === 0); } const DATE = /^(\d\d\d\d)-(\d\d)-(\d\d)$/; const DAYS = [ 0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 ]; function date5(str) { const matches = DATE.exec(str); if (!matches) return false; const year = +matches[1]; const month = +matches[2]; const day = +matches[3]; return month >= 1 && month <= 12 && day >= 1 && day <= (month === 2 && isLeapYear(year) ? 29 : DAYS[month]); } function compareDate(d1, d2) { if (!(d1 && d2)) return void 0; if (d1 > d2) return 1; if (d1 < d2) return -1; return 0; } const TIME = /^(\d\d):(\d\d):(\d\d(?:\.\d+)?)(z|([+-])(\d\d)(?::?(\d\d))?)?$/i; function getTime(strictTimeZone) { return function time3(str) { const matches = TIME.exec(str); if (!matches) return false; const hr = +matches[1]; const min = +matches[2]; const sec = +matches[3]; const tz = matches[4]; const tzSign = matches[5] === "-" ? -1 : 1; const tzH = +(matches[6] || 0); const tzM = +(matches[7] || 0); if (tzH > 23 || tzM > 59 || strictTimeZone && !tz) return false; if (hr <= 23 && min <= 59 && sec < 60) return true; const utcMin = min - tzM * tzSign; const utcHr = hr - tzH * tzSign - (utcMin < 0 ? 1 : 0); return (utcHr === 23 || utcHr === -1) && (utcMin === 59 || utcMin === -1) && sec < 61; }; } function compareTime(s1, s2) { if (!(s1 && s2)) return void 0; const t1 = (/* @__PURE__ */ new Date("2020-01-01T" + s1)).valueOf(); const t2 = (/* @__PURE__ */ new Date("2020-01-01T" + s2)).valueOf(); if (!(t1 && t2)) return void 0; return t1 - t2; } function compareIsoTime(t1, t2) { if (!(t1 && t2)) return void 0; const a1 = TIME.exec(t1); const a2 = TIME.exec(t2); if (!(a1 && a2)) return void 0; t1 = a1[1] + a1[2] + a1[3]; t2 = a2[1] + a2[2] + a2[3]; if (t1 > t2) return 1; if (t1 < t2) return -1; return 0; } const DATE_TIME_SEPARATOR = /t|\s/i; function getDateTime(strictTimeZone) { const time3 = getTime(strictTimeZone); return function date_time(str) { const dateTime = str.split(DATE_TIME_SEPARATOR); return dateTime.length === 2 && date5(dateTime[0]) && time3(dateTime[1]); }; } function compareDateTime(dt1, dt2) { if (!(dt1 && dt2)) return void 0; const d1 = new Date(dt1).valueOf(); const d2 = new Date(dt2).valueOf(); if (!(d1 && d2)) return void 0; return d1 - d2; } function compareIsoDateTime(dt1, dt2) { if (!(dt1 && dt2)) return void 0; const [d1, t1] = dt1.split(DATE_TIME_SEPARATOR); const [d2, t2] = dt2.split(DATE_TIME_SEPARATOR); const res = compareDate(d1, d2); if (res === void 0) return void 0; return res || compareTime(t1, t2); } const NOT_URI_FRAGMENT = /\/|:/; const URI = /^(?:[a-z][a-z0-9+\-.]*:)(?:\/?\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\.[a-z0-9\-._~!$&'()*+,;=:]+)\]|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)|(?:[a-z0-9\-._~!$&'()*+,;=]|%[0-9a-f]{2})*)(?::\d*)?(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*|\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)(?:\?(?:[a-z0-9\-._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\-._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i; function uri(str) { return NOT_URI_FRAGMENT.test(str) && URI.test(str); } const BYTE = /^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/gm; function byte(str) { BYTE.lastIndex = 0; return BYTE.test(str); } const MIN_INT32 = -(2 ** 31); const MAX_INT32 = 2 ** 31 - 1; function validateInt32(value) { return Number.isInteger(value) && value <= MAX_INT32 && value >= MIN_INT32; } function validateInt64(value) { return Number.isInteger(value); } function validateNumber() { return true; } const Z_ANCHOR = /[^\\]\\Z/; function regex(str) { if (Z_ANCHOR.test(str)) return false; try { new RegExp(str); return true; } catch (e) { return false; } } })); var require_limit = /* @__PURE__ */ __commonJSMin(((exports) => { Object.defineProperty(exports, "__esModule", { value: true }); exports.formatLimitDefinition = void 0; const ajv_1 = require_ajv(); const codegen_1 = require_codegen(); const ops = codegen_1.operators; const KWDs = { formatMaximum: { okStr: "<=", ok: ops.LTE, fail: ops.GT }, formatMinimum: { okStr: ">=", ok: ops.GTE, fail: ops.LT }, formatExclusiveMaximum: { okStr: "<", ok: ops.LT, fail: ops.GTE }, formatExclusiveMinimum: { okStr: ">", ok: ops.GT, fail: ops.LTE } }; const error62 = { message: ({ keyword, schemaCode }) => (0, codegen_1.str)`should be ${KWDs[keyword].okStr} ${schemaCode}`, params: ({ keyword, schemaCode }) => (0, codegen_1._)`{comparison: ${KWDs[keyword].okStr}, limit: ${schemaCode}}` }; exports.formatLimitDefinition = { keyword: Object.keys(KWDs), type: "string", schemaType: "string", $data: true, error: error62, code(cxt) { const { gen, data, schemaCode, keyword, it } = cxt; const { opts, self } = it; if (!opts.validateFormats) return; const fCxt = new ajv_1.KeywordCxt(it, self.RULES.all.format.definition, "format"); if (fCxt.$data) validate$DataFormat(); else validateFormat(); function validate$DataFormat() { const fmts = gen.scopeValue("formats", { ref: self.formats, code: opts.code.formats }); const fmt = gen.const("fmt", (0, codegen_1._)`${fmts}[${fCxt.schemaCode}]`); cxt.fail$data((0, codegen_1.or)((0, codegen_1._)`typeof ${fmt} != "object"`, (0, codegen_1._)`${fmt} instanceof RegExp`, (0, codegen_1._)`typeof ${fmt}.compare != "function"`, compareCode(fmt))); } function validateFormat() { const format = fCxt.schema; const fmtDef = self.formats[format]; if (!fmtDef || fmtDef === true) return; if (typeof fmtDef != "object" || fmtDef instanceof RegExp || typeof fmtDef.compare != "function") throw new Error(`"${keyword}": format "${format}" does not define "compare" function`); const fmt = gen.scopeValue("formats", { key: format, ref: fmtDef, code: opts.code.formats ? (0, codegen_1._)`${opts.code.formats}${(0, codegen_1.getProperty)(format)}` : void 0 }); cxt.fail$data(compareCode(fmt)); } function compareCode(fmt) { return (0, codegen_1._)`${fmt}.compare(${data}, ${schemaCode}) ${KWDs[keyword].fail} 0`; } }, dependencies: ["format"] }; const formatLimitPlugin = (ajv) => { ajv.addKeyword(exports.formatLimitDefinition); return ajv; }; exports.default = formatLimitPlugin; })); var require_dist = /* @__PURE__ */ __commonJSMin(((exports, module) => { Object.defineProperty(exports, "__esModule", { value: true }); const formats_1 = require_formats(); const limit_1 = require_limit(); const codegen_1 = require_codegen(); const fullName = new codegen_1.Name("fullFormats"); const fastName = new codegen_1.Name("fastFormats"); const formatsPlugin = (ajv, opts = { keywords: true }) => { if (Array.isArray(opts)) { addFormats2(ajv, opts, formats_1.fullFormats, fullName); return ajv; } const [formats, exportName] = opts.mode === "fast" ? [formats_1.fastFormats, fastName] : [formats_1.fullFormats, fullName]; addFormats2(ajv, opts.formats || formats_1.formatNames, formats, exportName); if (opts.keywords) (0, limit_1.default)(ajv); return ajv; }; formatsPlugin.get = (name, mode = "full") => { const f = (mode === "fast" ? formats_1.fastFormats : formats_1.fullFormats)[name]; if (!f) throw new Error(`Unknown format "${name}"`); return f; }; function addFormats2(ajv, list, fs, exportName) { var _a3; var _b; (_a3 = (_b = ajv.opts.code).formats) !== null && _a3 !== void 0 || (_b.formats = (0, codegen_1._)`require("ajv-formats/dist/formats").${exportName}`); for (const f of list) ajv.addFormat(f, fs[f]); } module.exports = exports = formatsPlugin; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = formatsPlugin; })); var import_ajv = require_ajv(); var import__2019 = require__2019(); var import__2020 = require__2020(); var import_dist = /* @__PURE__ */ __toESM(require_dist(), 1); var addFormats = import_dist.default; function createDefaultAjvInstance(engineClass) { const ajv = new engineClass({ strict: false, validateFormats: true, validateSchema: false, allErrors: true }); addFormats(ajv); return ajv; } var AjvJsonSchemaValidator = class { _ajv; /** Lazy classic (draft-07) engine, built on the first draft-07/draft-06-declared schema. */ _ajvDraft7; /** Lazy 2019-09 engine, built on the first 2019-09-declared schema. */ _ajv2019; /** True iff the constructor received a caller-supplied engine; the `$schema` dispatch is skipped. */ _userAjv; /** * @param ajv - Optional pre-configured AJV-compatible instance. When supplied, this instance is * used for **every** schema regardless of its declared `$schema` (the caller owns dialect * choice). When omitted, the provider constructs per-dialect engines (`Ajv2020`, `Ajv2019`, * and the classic draft-07 `Ajv` for draft-07/06-declared schemas) with * `strict: false`, `validateFormats: true`, `validateSchema: false`, `allErrors: true`, and * `ajv-formats` registered — **lazily, on the first {@linkcode getValidator} call needing each**, so * constructing the provider (e.g. as the default validator of a `Client`/`Server` that never * validates a JSON Schema) does not pay the ajv + ajv-formats instantiation cost. The parameter * is typed structurally so consumers who don't pass an instance need not have `ajv` installed. */ constructor(ajv) { this._userAjv = ajv !== void 0; this._ajv = ajv; } /** The underlying 2020-12 engine — the default instance is created on first use. */ get ajv() { return this._ajv ??= createDefaultAjvInstance(import__2020.Ajv2020); } /** * Pick the engine for a schema's declared dialect. A caller-supplied engine is used for * every schema — do not second-guess by `$schema` (bring-your-own-validator means * bring-your-own-dialect). Otherwise: no `$schema` or 2020-12 → `Ajv2020`; 2019-09 → * `Ajv2019`; draft-07 or draft-06 → classic `Ajv`; anything else → `Error`. */ _engineFor(schema) { if (this._userAjv) return this.ajv; const dialect = declaredDialect(schema, "pass a pre-configured Ajv instance to AjvJsonSchemaValidator(ajv) to validate other dialects."); if (dialect === "2020-12") return this.ajv; if (dialect === "2019-09") return this._ajv2019 ??= createDefaultAjvInstance(import__2019.Ajv2019); return this._ajvDraft7 ??= createDefaultAjvInstance(import_ajv.Ajv); } getValidator(schema) { const engine = this._engineFor(schema); const ajvValidator = "$id" in schema && typeof schema.$id === "string" ? engine.getSchema(schema.$id) ?? engine.compile(schema) : engine.compile(schema); return (input2) => { return ajvValidator(input2) ? { valid: true, data: input2, errorMessage: void 0 } : { valid: false, data: void 0, errorMessage: engine.errorsText(ajvValidator.errors) }; }; } }; var Ajv = import_ajv.Ajv; // ../../../../node_modules/@modelcontextprotocol/server/dist/shimsNode.mjs import process2 from "node:process"; // ../../../../node_modules/@modelcontextprotocol/server/dist/mcp-DXXb3Vv3.mjs var COMPLETABLE_SYMBOL = Symbol.for("mcp.completable"); function isCompletable(schema) { return !!schema && typeof schema === "object" && COMPLETABLE_SYMBOL in schema; } function getCompleter(schema) { return schema[COMPLETABLE_SYMBOL]?.complete; } var MAX_TIMER_DELAY_MS = 2 ** 31 - 1; function listenFilterAccepts(filter, event) { switch (event.kind) { case "tools_list_changed": return filter.toolsListChanged === true; case "prompts_list_changed": return filter.promptsListChanged === true; case "resources_list_changed": return filter.resourcesListChanged === true; case "resource_updated": return filter.resourceSubscriptions !== void 0 && filter.resourceSubscriptions.includes(event.uri); } } function honoredSubset(requested, capabilities) { const honored = {}; const allow = (bit) => capabilities === void 0 || bit === true; if (requested.toolsListChanged === true && allow(capabilities?.tools?.listChanged)) honored.toolsListChanged = true; if (requested.promptsListChanged === true && allow(capabilities?.prompts?.listChanged)) honored.promptsListChanged = true; if (requested.resourcesListChanged === true && allow(capabilities?.resources?.listChanged)) honored.resourcesListChanged = true; if (requested.resourceSubscriptions !== void 0 && requested.resourceSubscriptions.length > 0 && allow(capabilities?.resources?.subscribe)) honored.resourceSubscriptions = [...requested.resourceSubscriptions]; return honored; } var DEFAULT_MAX_SUBSCRIPTIONS = 1024; function stampSubscriptionId(notification, subscriptionId) { return { method: notification.method, params: { ...notification.params, _meta: { ...notification.params?._meta, [SUBSCRIPTION_ID_META_KEY]: subscriptionId } } }; } function parseListenFilter(message) { const outcome = codecForVersion(MODERN_WIRE_REVISION).validateRequest("subscriptions/listen", message); return outcome.ok ? outcome.value.params?.notifications : void 0; } var CHANGE_NOTIFICATION_METHODS = /* @__PURE__ */ new Set([ "notifications/tools/list_changed", "notifications/prompts/list_changed", "notifications/resources/list_changed", "notifications/resources/updated" ]); var StdioListenRouter = class { /** Active subscriptions, keyed by the listen request's JSON-RPC id verbatim. */ _subs = /* @__PURE__ */ new Map(); /** * The serving instance's declared capabilities. Filled in by the entry * once the modern instance is constructed (the router is created before * the instance exists), so the acknowledged filter is narrowed against * what the server can actually deliver. */ _serverCapabilities; /** * The serving instance's identity, stamped onto the graceful-close * results' `_meta` (the spec's `SubscriptionsListenResultMeta` extends * `ResultMetaObject`). Handed over together with the capabilities. */ _serverInfo; constructor(_maxSubscriptions = DEFAULT_MAX_SUBSCRIPTIONS, serverCapabilities, serverInfo) { this._maxSubscriptions = _maxSubscriptions; this._serverCapabilities = serverCapabilities; this._serverInfo = serverInfo; } /** * Record the serving instance's declared capabilities and identity once * it has been constructed. Called by `serveStdio`'s connect path; * subsequent `serve()` calls narrow the honored filter against the * capabilities, and `teardownAll()` stamps the identity. */ setServerCapabilities(capabilities, serverInfo) { this._serverCapabilities = capabilities; if (serverInfo !== void 0) this._serverInfo = serverInfo; } /** Whether `id` is an active listen subscription on this connection. */ has(id) { return this._subs.has(id); } /** * Serve one inbound `subscriptions/listen` request: registers the * subscription and returns the stamped acknowledged notification (or, on * capacity / params rejection, the in-band JSON-RPC error response). * * @throws when called before {@linkcode setServerCapabilities} (or the * constructor) has supplied the serving instance's capabilities. Honoring a * filter without knowing the server's advertised capabilities would fail * open (deliver unadvertised types); the entry guarantees capabilities are * set before any listen request is routed here. */ serve(message) { if (this._serverCapabilities === void 0) throw new Error("StdioListenRouter.serve() called before setServerCapabilities(); refusing to honor a filter without capabilities"); if (this._subs.size >= this._maxSubscriptions) return { jsonrpc: "2.0", id: message.id, error: { code: -32603, message: "Subscription limit reached" } }; const filter = parseListenFilter(message); if (filter === void 0) return { jsonrpc: "2.0", id: message.id, error: { code: -32602, message: "Invalid params: 'notifications' is required and must be a valid SubscriptionFilter" } }; const honored = honoredSubset(filter, this._serverCapabilities); this._subs.set(message.id, honored); return stampSubscriptionId({ method: "notifications/subscriptions/acknowledged", params: { notifications: honored } }, message.id); } /** * Tear down one subscription (inbound `notifications/cancelled`). Returns * `true` when a subscription was removed. After this call NOTHING further * is delivered for that subscription id (the post-cancel hardening). */ cancel(id) { return this._subs.delete(id); } /** * Route an outbound notification through the active subscriptions. * * - For a subscription-gated change notification, returns one stamped copy * per subscription that opted in to it (an empty array means it is * dropped — the modern era never delivers an un-requested change type). * - For any other outbound message, returns `'passthrough'` (the entry * forwards it as-is). */ routeOutbound(message) { if (!CHANGE_NOTIFICATION_METHODS.has(message.method)) return "passthrough"; const uriParam = message.params?.["uri"]; const uri = typeof uriParam === "string" ? uriParam : void 0; const event = notificationToServerEvent(message.method, uri); const out = []; for (const [subscriptionId, filter] of this._subs) if (listenFilterAccepts(filter, event)) out.push(stampSubscriptionId({ method: message.method, params: message.params ?? {} }, subscriptionId)); return out; } /** * Server-side graceful teardown of every active subscription: returns the * empty `subscriptions/listen` JSON-RPC result for each subscription id — * the spec's graceful-close signal, `_meta` carrying the subscription id * and the serving instance's identity — for the entry to emit before * closing the wire. Clears the set so nothing further is delivered. */ teardownAll() { const out = []; for (const id of this._subs.keys()) out.push({ jsonrpc: "2.0", id, result: { resultType: "complete", _meta: { [SUBSCRIPTION_ID_META_KEY]: id, ...this._serverInfo !== void 0 && { [SERVER_INFO_META_KEY]: this._serverInfo } } } }); this._subs.clear(); return out; } }; function notificationToServerEvent(method, uri) { switch (method) { case "notifications/tools/list_changed": return { kind: "tools_list_changed" }; case "notifications/prompts/list_changed": return { kind: "prompts_list_changed" }; case "notifications/resources/list_changed": return { kind: "resources_list_changed" }; default: return { kind: "resource_updated", uri: uri ?? "" }; } } var DEFAULT_LEGACY_SHIM_MAX_ROUNDS = 8; var DEFAULT_LEGACY_SHIM_ROUND_TIMEOUT_MS = 6e5; function resolveLegacyShimOptions(options) { if (options?.maxRounds !== void 0 && (!Number.isInteger(options.maxRounds) || options.maxRounds < 1)) throw new RangeError(`inputRequired.maxRounds must be a positive integer (got ${options.maxRounds})`); if (options?.roundTimeoutMs !== void 0 && (!Number.isFinite(options.roundTimeoutMs) || options.roundTimeoutMs <= 0)) throw new RangeError(`inputRequired.roundTimeoutMs must be a positive number (got ${options.roundTimeoutMs})`); return { maxRounds: options?.maxRounds ?? DEFAULT_LEGACY_SHIM_MAX_ROUNDS, roundTimeoutMs: options?.roundTimeoutMs ?? DEFAULT_LEGACY_SHIM_ROUND_TIMEOUT_MS, legacyShim: options?.legacyShim ?? true }; } function coerceEmbeddedInputRequest(method, key, entry) { if (entry === null || typeof entry !== "object" || typeof entry.method !== "string") throw new ProtocolError(ProtocolErrorCode.InternalError, `Handler for ${method} returned an invalid input request '${key}': each inputRequests entry must be an embedded elicitation/create, sampling/createMessage, or roots/list request`); const embedded = entry; const required2 = requiredClientCapabilitiesForInputRequest(embedded); if (required2 === void 0) throw new ProtocolError(ProtocolErrorCode.InternalError, `Handler for ${method} returned an input request '${key}' of kind '${embedded.method}', which is not an embedded request the 2026-07-28 revision defines`); return { embedded, required: required2 }; } function syntheticElicitationId() { const webCrypto = globalThis.crypto; if (webCrypto?.randomUUID !== void 0) return webCrypto.randomUUID(); const bytes = new Uint8Array(16); webCrypto.getRandomValues(bytes); bytes[6] = bytes[6] & 15 | 64; bytes[8] = bytes[8] & 63 | 128; const hex3 = [...bytes].map((byte) => byte.toString(16).padStart(2, "0")).join(""); return `${hex3.slice(0, 8)}-${hex3.slice(8, 12)}-${hex3.slice(12, 16)}-${hex3.slice(16, 20)}-${hex3.slice(20)}`; } function legacyShimFailure(method, message) { if (method === "tools/call") return { content: [{ type: "text", text: message }], isError: true }; throw new ProtocolError(ProtocolErrorCode.InternalError, message); } var LegacyInputRequiredShim = class { constructor(_host) { this._host = _host; } async fulfill(method, handler, request, ctx, firstResult) { const { maxRounds, roundTimeoutMs } = this._host; const outerSignal = ctx.mcpReq.signal; let current = firstResult; let round = 0; while (true) { round += 1; if (round > maxRounds) return legacyShimFailure(method, inputRequiredRoundsExceededMessage(method, maxRounds)); const inputRequests = current.inputRequests; const hasInputRequests = inputRequests != null && Object.keys(inputRequests).length > 0; const requestState = typeof current.requestState === "string" ? current.requestState : void 0; if (!hasInputRequests && requestState === void 0) throw new ProtocolError(ProtocolErrorCode.InternalError, `Handler for ${method} returned an input-required result with neither inputRequests nor requestState (every InputRequiredResult must include at least one of the two)`); let responses; if (hasInputRequests) { const declared = this._host.resolvedClientCapabilities(ctx); const coerced = []; for (const [key, entry] of Object.entries(inputRequests)) { const { embedded, required: required2 } = coerceEmbeddedInputRequest(method, key, entry); if (embedded.method !== "roots/list" && embedded.params === void 0) throw new ProtocolError(ProtocolErrorCode.InternalError, `Handler for ${method} returned an input request '${key}' of kind '${embedded.method}' without params`); if (missingClientCapabilities(required2, declared) !== void 0) return legacyShimFailure(method, `Cannot request input '${key}' (${embedded.method}): the client on this 2025-era connection did not declare the required capability${declared === void 0 ? " (no client capabilities are available on this connection \u2014 per-request legacy serving cannot receive server-to-client requests)" : ""}`); coerced.push([key, embedded]); } const roundAbort = linkedRoundAbort(outerSignal); try { const legOptions = { relatedRequestId: ctx.mcpReq.id, timeout: roundTimeoutMs, resetTimeoutOnProgress: true, onprogress: () => { }, signal: roundAbort.signal }; const fulfilled = await Promise.all(coerced.map(async ([key, embedded]) => { try { return [key, await this._dispatchLeg(embedded, legOptions)]; } catch (error62) { roundAbort.abort(error62); throw error62; } })); responses = Object.fromEntries(fulfilled); } catch (error62) { if (outerSignal.aborted) throw error62; return legacyShimFailure(method, `Fulfilling input required by '${method}' failed: ${error62 instanceof Error ? error62.message : String(error62)}`); } finally { roundAbort.dispose(); } } else await sleep(REQUEST_STATE_ONLY_LEG_PACING_MS, outerSignal); let ctxNext = { ...ctx, mcpReq: { ...ctx.mcpReq, inputResponses: responses, droppedInputResponseKeys: void 0, requestState: requestStateAccessor(requestState) } }; if (requestState !== void 0) { const decoded = await this._host.verifyRequestState(requestState, ctxNext, method); if (decoded !== void 0) ctxNext = withRequestStateValue(ctxNext, decoded); } const next = await handler(request, ctxNext); if (!isInputRequiredResult(next)) return next; current = next; } } /** Routes one embedded request through the host's existing 2025-era senders (gate already ran). */ async _dispatchLeg(embedded, options) { switch (embedded.method) { case "elicitation/create": { let params = embedded.params; if (params.mode === "url" && params.elicitationId === void 0) params = { ...params, elicitationId: syntheticElicitationId() }; return await this._host.sendElicitation(params, options); } case "sampling/createMessage": return await this._host.sendSampling(embedded.params, options); case "roots/list": return await this._host.listRoots(embedded.params, options); } } }; var INPUT_REQUIRED_CAPABLE_METHODS = /* @__PURE__ */ new Set([ "tools/call", "prompts/get", "resources/read" ]); var writeClientIdentity; var installDiscoverHandler; var readServerIdentity; function installModernOnlyHandlers(server, servedModernVersions) { installDiscoverHandler(server, servedModernVersions); } function serverIdentityOf(server) { return readServerIdentity(server); } var Server = class extends Protocol { _clientCapabilities; _clientVersion; static { writeClientIdentity = (server, identity) => { if (identity.clientCapabilities !== void 0) server._clientCapabilities = identity.clientCapabilities; if (identity.clientInfo !== void 0) server._clientVersion = identity.clientInfo; }; installDiscoverHandler = (server, servedModernVersions) => { const missing = servedModernVersions.filter((version3) => !server._supportedProtocolVersions.includes(version3)); if (missing.length > 0) server._supportedProtocolVersions = [...server._supportedProtocolVersions, ...missing]; server.setRequestHandler("server/discover", () => server._ondiscover()); }; readServerIdentity = (server) => server._serverInfo; } _capabilities; _instructions; _jsonSchemaValidator; _cacheHints; _requestStateVerify; _inputRequiredServing; _legacyShim; /** Lazily-built legacy shim; the loop lives in legacyInputRequiredShim.ts behind a narrow host contract. */ _legacyInputRequiredShim() { return this._legacyShim ??= new LegacyInputRequiredShim({ maxRounds: this._inputRequiredServing.maxRounds, roundTimeoutMs: this._inputRequiredServing.roundTimeoutMs, resolvedClientCapabilities: (ctx) => this._inputRequestCapabilityView(ctx), verifyRequestState: (state, ctx, method) => this._verifyRequestState(state, ctx, method), sendElicitation: (params, options) => this._sendElicitationLeg(params, options, { validateAcceptedContent: false }), sendSampling: (params, options) => this.createMessage(params, options), listRoots: (params, options) => this.listRoots(params, options) }); } /** * Callback for when initialization has fully completed (i.e., the client has sent an `notifications/initialized` notification). */ oninitialized; /** * Initializes this server with the given name and version information. */ constructor(_serverInfo, options) { super(options); this._serverInfo = _serverInfo; this._capabilities = options?.capabilities ? { ...options.capabilities } : {}; this._instructions = options?.instructions; this._jsonSchemaValidator = options?.jsonSchemaValidator ?? new AjvJsonSchemaValidator(); this._requestStateVerify = options?.requestState?.verify; this._inputRequiredServing = resolveLegacyShimOptions(options?.inputRequired); if (options?.cacheHints !== void 0) { for (const [operation, hint] of Object.entries(options.cacheHints)) if (hint !== void 0) assertValidCacheHint(hint, `cacheHints['${operation}']`); this._cacheHints = options.cacheHints; } this.setRequestHandler("initialize", (request) => this._oninitialize(request)); this.setNotificationHandler("notifications/initialized", () => this.oninitialized?.()); if (modernProtocolVersions(this._supportedProtocolVersions).length > 0) this.setRequestHandler("server/discover", () => this._ondiscover()); if (this._capabilities.logging) this._registerLoggingHandler(); } /** * Registers the built-in `logging/setLevel` request handler. * * @deprecated Deprecated as of protocol version 2026-07-28 (SEP-2577). * Remains functional during the deprecation window (at least twelve months). * Migrate to stderr logging (STDIO servers) or OpenTelemetry. */ _registerLoggingHandler() { this.setRequestHandler("logging/setLevel", async (request, ctx) => { const transportSessionId = ctx.sessionId || ctx.http?.req?.headers.get("mcp-session-id") || void 0; const { level } = request.params; const parseResult = parseSchema(LoggingLevelSchema, level); if (parseResult.success) this._loggingLevels.set(transportSessionId, parseResult.data); return {}; }); } buildContext(ctx, transportInfo) { const hasHttpInfo = ctx.http || transportInfo?.request || transportInfo?.closeSSEStream || transportInfo?.closeStandaloneSSEStream; return { ...ctx, mcpReq: { ...ctx.mcpReq, log: (level, data, logger) => { if (!this._capabilities.logging) return Promise.resolve(); let threshold; if (this._servedModernEra()) { threshold = ctx.mcpReq.envelope?.[LOG_LEVEL_META_KEY]; if (threshold === void 0) return Promise.resolve(); } else threshold = this._loggingLevels.get(ctx.sessionId) ?? this._loggingLevels.get(void 0); if (threshold !== void 0 && this.LOG_LEVEL_SEVERITY.get(level) < this.LOG_LEVEL_SEVERITY.get(threshold)) return Promise.resolve(); return ctx.mcpReq.notify({ method: "notifications/message", params: { level, data, logger } }); }, elicitInput: (params, options) => this.elicitInput(params, options), requestSampling: (params, options) => this.createMessage(params, options) }, http: hasHttpInfo ? { ...ctx.http, req: transportInfo?.request, closeSSE: transportInfo?.closeSSEStream, closeStandaloneSSE: transportInfo?.closeStandaloneSSEStream } : void 0 }; } _loggingLevels = /* @__PURE__ */ new Map(); LOG_LEVEL_SEVERITY = new Map(LoggingLevelSchema.options.map((level, index) => [level, index])); isMessageIgnored = (level, sessionId) => { const currentLevel = this._loggingLevels.get(sessionId); return currentLevel ? this.LOG_LEVEL_SEVERITY.get(level) < this.LOG_LEVEL_SEVERITY.get(currentLevel) : false; }; /** * Registers new capabilities. This can only be called before connecting to a transport. * * The new capabilities will be merged with any existing capabilities previously given (e.g., at initialization). */ registerCapabilities(capabilities) { if (this.transport) throw new SdkError(SdkErrorCode.AlreadyConnected, "Cannot register capabilities after connecting to transport"); const hadLogging = !!this._capabilities.logging; this._capabilities = mergeCapabilities(this._capabilities, capabilities); if (!hadLogging && this._capabilities.logging) this._registerLoggingHandler(); } /** * Enforces server-side validation for `tools/call` results regardless of how the * handler was registered, attaches the configured per-operation cache hint * (when one exists) so the 2026-07-28 encode seam can fill `ttlMs`/`cacheScope` * for results that do not provide their own, and owns the multi-round-trip * seam: on the methods whose 2026-07-28 result vocabulary includes * `input_required` (`tools/call`, `prompts/get`, `resources/read`) an * input-required return skips result-schema validation and is checked * against the served era, the at-least-one rule, and the request's own * declared client capabilities; on every other method an input-required * return is a server bug and fails loudly. The hint rides a symbol-keyed * property that is never serialized, so 2025-era responses are unaffected. */ _wrapHandler(method, handler) { if (method !== "tools/call") { const cacheHint = this._cacheHints?.[method]; const isInputRequiredCapable = INPUT_REQUIRED_CAPABLE_METHODS.has(method); if (cacheHint === void 0 && !isInputRequiredCapable) return async (request, ctx) => { const result = await handler(request, ctx); if (isInputRequiredResult(result)) throw new ProtocolError(ProtocolErrorCode.InternalError, `Handler for ${method} returned an input-required result, but only tools/call, prompts/get and resources/read support input_required (protocol revision 2026-07-28)`); return result; }; return async (request, ctx) => { const result = isInputRequiredCapable ? await this._invokeInputRequiredCapableHandler(method, handler, request, ctx) : await handler(request, ctx); if (isInputRequiredResult(result)) { if (!isInputRequiredCapable) throw new ProtocolError(ProtocolErrorCode.InternalError, `Handler for ${method} returned an input-required result, but only tools/call, prompts/get and resources/read support input_required (protocol revision 2026-07-28)`); return result; } return cacheHint === void 0 ? result : attachCacheHintFallback(result, cacheHint); }; } return async (request, ctx) => { const codec2 = codecForVersion(this._negotiatedProtocolVersion); const validatedRequest = codec2.validateRequest("tools/call", request); if (!validatedRequest.ok) throw new ProtocolError(validatedRequest.reason === "not-in-era" ? ProtocolErrorCode.InternalError : ProtocolErrorCode.InvalidParams, validatedRequest.reason === "not-in-era" ? "No wire schema for tools/call in the resolved era" : `Invalid tools/call request: ${validatedRequest.message}`); const result = await this._invokeInputRequiredCapableHandler("tools/call", handler, request, ctx); if (isInputRequiredResult(result)) return result; const normalizedResult = normalizeContentlessToolResult(result); const validationResult = codec2.validateResult("tools/call", normalizedResult); if (!validationResult.ok) throw new ProtocolError(validationResult.reason === "not-in-era" ? ProtocolErrorCode.InternalError : ProtocolErrorCode.InvalidParams, validationResult.reason === "not-in-era" ? "No wire schema for tools/call in the resolved era" : `Invalid tools/call result: ${validationResult.message}`); return validationResult.value; }; } /** * Whether this instance is bound to a 2026-07-28-or-later protocol * revision. Era is instance state — a serving entry (`createMcpHandler`, * `serveStdio`) marks the instance modern at construction; a 2025-era * `initialize` handshake binds it legacy. The multi-round-trip seam reads * this directly: there is no per-request era consult. */ _servedModernEra() { return this._negotiatedProtocolVersion !== void 0 && isModernProtocolVersion(this._negotiatedProtocolVersion); } /** * Invokes a handler for one of the multi-round-trip methods and applies * the input-required seam: * * - a `UrlElicitationRequiredError` (or any 2025-style server→client * request idiom) escaping the handler on a request served on the * 2026-07-28 era fails LOUDLY with a clear steer to * `inputRequired.elicitUrl(...)` — the `-32042` error never reaches the * 2026-07-28 wire and the throw is not silently converted. Requests * served on the 2025 era keep today's `-32042` behavior byte-exact (the * error is rethrown unchanged). * - an input-required RETURN toward a 2026-07-28 request must satisfy * the at-least-one rule, and every embedded request must be covered by * the capabilities declared on the request's envelope (violations * answer the typed `-32021` error). Toward a 2025-era request the * return is fulfilled by the default-on legacy shim, whose own gate * consults the initialize-declared capabilities and surfaces * violations per family; `inputRequired.legacyShim: false` restores * the pre-shim loud failure. */ async _invokeInputRequiredCapableHandler(method, handler, request, ctx) { const servedModern = this._servedModernEra(); const rawRequestState = ctx.mcpReq.requestState(); if (rawRequestState !== void 0 && typeof rawRequestState !== "string") throw new ProtocolError(ProtocolErrorCode.InvalidParams, "Invalid or expired requestState", { reason: "invalid_request_state" }); let ctxForHandler = ctx; if (typeof rawRequestState === "string") { const decoded = await this._verifyRequestState(rawRequestState, ctx, method); if (decoded !== void 0) ctxForHandler = withRequestStateValue(ctx, decoded); } let result; try { result = await handler(request, ctxForHandler); } catch (error62) { if (error62 instanceof ProtocolError && error62.code === ProtocolErrorCode.UrlElicitationRequired) { if (!servedModern) throw error62; throw new ProtocolError(ProtocolErrorCode.InternalError, `URL elicitation cannot be signalled by throwing UrlElicitationRequiredError on protocol revision ${this._negotiatedProtocolVersion}: return inputRequired({ inputRequests: { \u2026: inputRequired.elicitUrl(...) } }) from the handler instead. The urlElicitationRequired error (-32042) of earlier revisions is not available on this revision.`); } throw error62; } if (!isInputRequiredResult(result)) return result; if (!servedModern) { if (!this._inputRequiredServing.legacyShim) throw new ProtocolError(ProtocolErrorCode.InternalError, `Handler for ${method} returned an input-required result, but this request is served on protocol revision ${this._negotiatedProtocolVersion ?? LATEST_PROTOCOL_VERSION}, which has no input_required vocabulary`); return await this._legacyInputRequiredShim().fulfill(method, handler, request, ctxForHandler, result); } const inputRequests = result.inputRequests; const hasInputRequests = inputRequests != null && Object.keys(inputRequests).length > 0; const hasRequestState = typeof result.requestState === "string"; if (!hasInputRequests && !hasRequestState) throw new ProtocolError(ProtocolErrorCode.InternalError, `Handler for ${method} returned an input-required result with neither inputRequests nor requestState (every InputRequiredResult must include at least one of the two)`); if (hasInputRequests) { const declared = this._inputRequestCapabilityView(ctx); for (const [key, entry] of Object.entries(inputRequests)) { const { embedded, required: required2 } = coerceEmbeddedInputRequest(method, key, entry); const missing = missingClientCapabilities(required2, declared); if (missing !== void 0) throw new MissingRequiredClientCapabilityError({ requiredCapabilities: missing }, `Cannot request input '${key}' (${embedded.method}): the request's client capabilities do not declare the required capability`); } } return result; } /** * Runs the configured `requestState.verify` hook and returns its * resolved value (`undefined` when unconfigured or the hook returns * nothing). Deny-on-error: any hook failure answers the frozen `-32602`; * the reason goes to `onerror` only. */ async _verifyRequestState(state, ctx, method) { if (this._requestStateVerify === void 0) return; try { return await this._requestStateVerify(state, ctx); } catch (error62) { this.onerror?.(/* @__PURE__ */ new Error(`requestState verification rejected ${method}: ${error62 instanceof Error ? error62.message : String(error62)}`)); throw new ProtocolError(ProtocolErrorCode.InvalidParams, "Invalid or expired requestState", { reason: "invalid_request_state" }); } } /** * The per-request resolved client-capabilities view: the request's own * `_meta` envelope on the 2026 era; the `initialize`-declared state on a * 2025-era connection. Per-request instances that never saw an * initialize (stateless legacy) hold nothing, so gates refuse there. */ _inputRequestCapabilityView(ctx) { return this._servedModernEra() ? ctx.mcpReq.envelope?.[CLIENT_CAPABILITIES_META_KEY] : this._clientCapabilities; } /** * Guard for the push-style server→client request APIs ({@linkcode createMessage}, * {@linkcode elicitInput}, {@linkcode listRoots}, {@linkcode ping}) on a * modern-era instance: the 2026-07-28 revision has no server→client request * channel, so the call fails before any wire traffic with a typed error * whose message steers to `inputRequired(...)`. The base era gate would * also reject it; this guard runs first to carry the steer. */ _assertPushApiInServedEra(method) { if (this._servedModernEra()) throw new SdkError(SdkErrorCode.MethodNotSupportedByProtocolVersion, `Server-to-client requests are not available on protocol revision ${this._negotiatedProtocolVersion}: '${method}' cannot be sent while serving a request on that revision. Return inputRequired({ ... }) from the handler instead \u2014 the client fulfils the embedded requests and retries the original request (multi round-trip requests).`, { method, era: "2026-07-28" }); } assertCapabilityForMethod(method) { switch (method) { case "sampling/createMessage": if (!this._clientCapabilities?.sampling) throw new SdkError(SdkErrorCode.CapabilityNotSupported, `Client does not support sampling (required for ${method})`); break; case "elicitation/create": if (!this._clientCapabilities?.elicitation) throw new SdkError(SdkErrorCode.CapabilityNotSupported, `Client does not support elicitation (required for ${method})`); break; case "roots/list": if (!this._clientCapabilities?.roots) throw new SdkError(SdkErrorCode.CapabilityNotSupported, `Client does not support listing roots (required for ${method})`); break; case "ping": break; } } assertNotificationCapability(method) { switch (method) { case "notifications/message": if (!this._capabilities.logging) throw new SdkError(SdkErrorCode.CapabilityNotSupported, `Server does not support logging (required for ${method})`); break; case "notifications/resources/updated": case "notifications/resources/list_changed": if (!this._capabilities.resources) throw new SdkError(SdkErrorCode.CapabilityNotSupported, `Server does not support notifying about resources (required for ${method})`); break; case "notifications/tools/list_changed": if (!this._capabilities.tools) throw new SdkError(SdkErrorCode.CapabilityNotSupported, `Server does not support notifying of tool list changes (required for ${method})`); break; case "notifications/prompts/list_changed": if (!this._capabilities.prompts) throw new SdkError(SdkErrorCode.CapabilityNotSupported, `Server does not support notifying of prompt list changes (required for ${method})`); break; case "notifications/elicitation/complete": if (!this._clientCapabilities?.elicitation?.url) throw new SdkError(SdkErrorCode.CapabilityNotSupported, `Client does not support URL elicitation (required for ${method})`); break; case "notifications/cancelled": break; case "notifications/progress": break; } } assertRequestHandlerCapability(method) { switch (method) { case "completion/complete": if (!this._capabilities.completions) throw new SdkError(SdkErrorCode.CapabilityNotSupported, `Server does not support completions (required for ${method})`); break; case "logging/setLevel": if (!this._capabilities.logging) throw new SdkError(SdkErrorCode.CapabilityNotSupported, `Server does not support logging (required for ${method})`); break; case "prompts/get": case "prompts/list": if (!this._capabilities.prompts) throw new SdkError(SdkErrorCode.CapabilityNotSupported, `Server does not support prompts (required for ${method})`); break; case "resources/list": case "resources/templates/list": case "resources/read": if (!this._capabilities.resources) throw new SdkError(SdkErrorCode.CapabilityNotSupported, `Server does not support resources (required for ${method})`); break; case "tools/call": case "tools/list": if (!this._capabilities.tools) throw new SdkError(SdkErrorCode.CapabilityNotSupported, `Server does not support tools (required for ${method})`); break; case "ping": case "initialize": break; } } async _oninitialize(request) { const requestedVersion = request.params.protocolVersion; this._clientCapabilities = request.params.capabilities; this._clientVersion = request.params.clientInfo; const legacyVersions = legacyProtocolVersions(this._supportedProtocolVersions); const protocolVersion = legacyVersions.includes(requestedVersion) ? requestedVersion : legacyVersions[0] ?? LATEST_PROTOCOL_VERSION; this._negotiatedProtocolVersion = protocolVersion; this.transport?.setProtocolVersion?.(protocolVersion); return { protocolVersion, capabilities: this.getCapabilities(), serverInfo: this._serverInfo, ...this._instructions && { instructions: this._instructions } }; } /** * Answers `server/discover` (protocol revision 2026-07-28). `supportedVersions` * lists only modern revisions (2025-era versions are negotiated via `initialize`); * the capabilities are advertised as-is, listChanged/subscribe bits included * (see {@linkcode discoverAdvertisedCapabilities}). */ _ondiscover() { return { supportedVersions: modernProtocolVersions(this._supportedProtocolVersions), capabilities: discoverAdvertisedCapabilities(this.getCapabilities()), ...this._instructions && { instructions: this._instructions } }; } /** * The identity the 2026-era encode seam stamps into every outbound * result's `_meta` under `io.modelcontextprotocol/serverInfo` (spec PR * #3002: servers SHOULD identify themselves on every response). */ _outboundServerInfo() { return this._serverInfo; } /** * After initialization has completed, this will be populated with the client's reported capabilities. * * @deprecated Read client identity from the per-request handler context instead: on * 2026-07-28 (per-request envelope) requests `ctx.mcpReq.envelope` carries the client's * declared capabilities, while on 2025-era connections this accessor keeps returning the * `initialize`-scoped value. The accessor remains functional — instances serving the * 2026-07-28 era are backfilled per request from the validated envelope. */ getClientCapabilities() { return this._clientCapabilities; } /** * After initialization has completed, this will be populated with information about the client's name and version. * * @deprecated Read client identity from the per-request handler context instead: on * 2026-07-28 (per-request envelope) requests `ctx.mcpReq.envelope` carries the client's * name and version, while on 2025-era connections this accessor keeps returning the * `initialize`-scoped value. The accessor remains functional — instances serving the * 2026-07-28 era are backfilled per request from the validated envelope. */ getClientVersion() { return this._clientVersion; } /** * After initialization has completed, this will be populated with the protocol version negotiated * with the client (the version the server responded with during the initialize handshake), or * `undefined` before initialization. * * @deprecated Read the protocol revision from the per-request handler context instead: on * 2026-07-28 (per-request envelope) requests `ctx.mcpReq.envelope` names the revision the * request was sent for, while on 2025-era connections this accessor keeps returning the * `initialize`-negotiated version. The accessor remains functional — instances serving the * 2026-07-28 era report that revision. */ getNegotiatedProtocolVersion() { return this._negotiatedProtocolVersion; } /** * Project a `tools/call` result through this instance's negotiated wire * codec — the era-agnostic SEP-2106 §4.3 TextContent auto-append, plus on * the 2025 era the `{result:…}` wrap when `structuredContent` is a * non-object value or the advertised `outputSchema` had a non-object root. * Identity for object-shaped `structuredContent` on the 2026 era. * * `McpServer`'s built-in `tools/call` handler routes through this method. * Low-level `setRequestHandler('tools/call', …)` authors call it * themselves so the projection lives in one place (the codec) and the * server-side handler stays era-blind. * * This is the only codec function exposed on `Server` — the full * `WireCodec` is intentionally not part of the public surface. */ projectCallToolResult(result, advertisedOutputSchema) { return this._wireCodec().projectCallToolResult(result, advertisedOutputSchema); } /** * Returns the current server capabilities. */ getCapabilities() { return this._capabilities; } /** * Sends a `ping` request to the connected client. * * @deprecated The 2026-07-28 protocol removed ping; it throws on a 2026-07-28-era instance. * If your factory serves both eras, this only works on the legacy path. */ async ping() { this._assertPushApiInServedEra("ping"); return this.request({ method: "ping" }); } async createMessage(params, options) { this._assertPushApiInServedEra("sampling/createMessage"); if ((params.tools || params.toolChoice) && !this._clientCapabilities?.sampling?.tools) throw new SdkError(SdkErrorCode.CapabilityNotSupported, "Client does not support sampling tools capability."); if (params.messages.length > 0) { const lastMessage = params.messages.at(-1); const lastContent = Array.isArray(lastMessage.content) ? lastMessage.content : [lastMessage.content]; const hasToolResults = lastContent.some((c) => c.type === "tool_result"); const previousMessage = params.messages.length > 1 ? params.messages.at(-2) : void 0; const previousContent = previousMessage ? Array.isArray(previousMessage.content) ? previousMessage.content : [previousMessage.content] : []; const hasPreviousToolUse = previousContent.some((c) => c.type === "tool_use"); if (hasToolResults) { if (lastContent.some((c) => c.type !== "tool_result")) throw new ProtocolError(ProtocolErrorCode.InvalidParams, "The last message must contain only tool_result content if any is present"); if (!hasPreviousToolUse) throw new ProtocolError(ProtocolErrorCode.InvalidParams, "tool_result blocks are not matching any tool_use from the previous message"); } if (hasPreviousToolUse) { const toolUseIds = new Set(previousContent.filter((c) => c.type === "tool_use").map((c) => c.id)); const toolResultIds = new Set(lastContent.filter((c) => c.type === "tool_result").map((c) => c.toolUseId)); if (toolUseIds.size !== toolResultIds.size || ![...toolUseIds].every((id) => toolResultIds.has(id))) throw new ProtocolError(ProtocolErrorCode.InvalidParams, "ids of tool_result blocks and tool_use blocks from previous message do not match"); } } const hasTools = Boolean(params.tools || params.toolChoice); const wide = await this.request({ method: "sampling/createMessage", params }, options); const outcome = this._wireCodec().samplingResultVariant(hasTools, wide); if (!outcome.ok) throw new SdkError(SdkErrorCode.InvalidResult, `Invalid sampling/createMessage result: ${outcome.reason === "invalid" ? outcome.message : outcome.reason}`); return outcome.value; } /** * Creates an elicitation request for the given parameters. * For backwards compatibility, `mode` may be omitted for form requests and will default to `"form"`. * @param params The parameters for the elicitation request. * @param options Optional request options. * @returns The result of the elicitation request. * * @deprecated Throws on a 2026-07-28-era request — use {@link index.inputRequired | inputRequired} (multi-round-trip) * instead. The 2025 push-style server-to-client request model is replaced by input_required * results in the 2026-07-28 protocol. If your factory serves both eras, this only works on the * legacy path. */ async elicitInput(params, options) { this._assertPushApiInServedEra("elicitation/create"); switch (params.mode ?? "form") { case "url": if (!this._clientCapabilities?.elicitation?.url) throw new SdkError(SdkErrorCode.CapabilityNotSupported, "Client does not support url elicitation."); break; case "form": if (!this._clientCapabilities?.elicitation?.form) throw new SdkError(SdkErrorCode.CapabilityNotSupported, "Client does not support form elicitation."); break; } return this._sendElicitationLeg(params, options); } /** * The capability-check-free core of {@linkcode elicitInput}. The shim * uses it because its gate differs from the public checks: a bare * `elicitation: {}` counts as form support (the pre-mode rule), and * accepted content passes through unvalidated for parity with the * modern client driver (handlers validate via the schema-aware * `acceptedContent` overload and can re-ask). */ async _sendElicitationLeg(params, options, behavior) { const mode = params.mode ?? "form"; const validateAcceptedContent = behavior?.validateAcceptedContent ?? true; switch (mode) { case "url": { const urlParams = params; return this.request({ method: "elicitation/create", params: urlParams }, options); } case "form": { const formParams = params.mode === "form" ? params : { ...params, mode: "form" }; const result = await this.request({ method: "elicitation/create", params: formParams }, options); if (validateAcceptedContent && result.action === "accept" && result.content && formParams.requestedSchema) try { const validationResult = this._jsonSchemaValidator.getValidator(formParams.requestedSchema)(result.content); if (!validationResult.valid) throw new ProtocolError(ProtocolErrorCode.InvalidParams, `Elicitation response content does not match requested schema: ${validationResult.errorMessage}`); } catch (error62) { if (error62 instanceof ProtocolError) throw error62; throw new ProtocolError(ProtocolErrorCode.InternalError, `Error validating elicitation response: ${error62 instanceof Error ? error62.message : String(error62)}`); } return result; } } } /** * Creates a reusable callback that, when invoked, will send a `notifications/elicitation/complete` * notification for the specified elicitation ID. * * The notification (and the `elicitationId` it references) exists only on protocol revision * 2025-11-25 — the 2026-07-28 revision removed both. On a connection negotiated at 2026-07-28 the * returned callback rejects with a typed local error before anything reaches the transport * (the method is not part of that revision's wire registry). * * @param elicitationId The ID of the elicitation to mark as complete. * @param options Optional notification options. Useful when the completion notification should be related to a prior request. * @returns A function that emits the completion notification when awaited. */ createElicitationCompletionNotifier(elicitationId, options) { if (!this._clientCapabilities?.elicitation?.url) throw new SdkError(SdkErrorCode.CapabilityNotSupported, "Client does not support URL elicitation (required for notifications/elicitation/complete)"); return () => this.notification({ method: "notifications/elicitation/complete", params: { elicitationId } }, options); } /** * Requests the list of roots from the client. * * @deprecated Deprecated as of protocol version 2026-07-28 (SEP-2577). * Throws on a 2026-07-28-era request — use {@link index.inputRequired | inputRequired} (multi-round-trip) instead, * or migrate to passing paths via tool parameters, resource URIs, or configuration. The 2025 * push-style server-to-client request model is replaced by input_required results in the * 2026-07-28 protocol. If your factory serves both eras, this only works on the legacy path. */ async listRoots(params, options) { this._assertPushApiInServedEra("roots/list"); return this.request({ method: "roots/list", params }, options); } /** * Sends a logging message to the client, if connected. * Note: You only need to send the parameters object, not the entire JSON-RPC message. * @see {@linkcode LoggingMessageNotification} * @param params * @param sessionId Optional for stateless transports and backward compatibility. * * @deprecated Deprecated as of protocol version 2026-07-28 (SEP-2577). * Remains functional during the deprecation window (at least twelve months). * Migrate to stderr logging (STDIO servers) or OpenTelemetry. */ async sendLoggingMessage(params, sessionId) { if (this._capabilities.logging && !this.isMessageIgnored(params.level, sessionId)) return this.notification({ method: "notifications/message", params }); } async sendResourceUpdated(params) { return this.notification({ method: "notifications/resources/updated", params }); } async sendResourceListChanged() { return this.notification({ method: "notifications/resources/list_changed" }); } async sendToolListChanged() { return this.notification({ method: "notifications/tools/list_changed" }); } async sendPromptListChanged() { return this.notification({ method: "notifications/prompts/list_changed" }); } }; function discoverAdvertisedCapabilities(capabilities) { return { ...capabilities }; } var McpServer = class { /** * The underlying {@linkcode Server} instance, useful for advanced operations like sending notifications. */ server; _registeredResources = {}; _registeredResourceTemplates = {}; _registeredTools = {}; _registeredPrompts = {}; /** * Per-tool JSON-converted `inputSchema`, memoized so the SEP-2243 * registration-time scan and the pre-dispatch validation step share one * conversion instead of paying it twice per request under the * per-request-factory `createMcpHandler` model. */ _toolInputSchemaJson = {}; /** * The JSON-serialized `inputSchema` of a registered tool, or `undefined` * when no such tool is registered. Used by the HTTP entry's pre-dispatch * SEP-2243 `Mcp-Param-*` validation step (which needs the same JSON Schema * `tools/list` would emit, before dispatch reaches the handler). * * @internal */ toolInputSchemaJson(name) { const tool = this._registeredTools[name]; if (tool === void 0 || !tool.enabled) return void 0; if (Object.hasOwn(this._toolInputSchemaJson, name)) return this._toolInputSchemaJson[name]; if (tool.inputSchema === void 0) return EMPTY_OBJECT_JSON_SCHEMA; try { const json2 = standardSchemaToJsonSchema(tool.inputSchema, "input"); this._toolInputSchemaJson[name] = json2; return json2; } catch { return; } } constructor(serverInfo, options) { this.server = new Server(serverInfo, options); if (options?.capabilities?.tools) this.setToolRequestHandlers(); if (options?.capabilities?.resources) this.setResourceRequestHandlers(); if (options?.capabilities?.prompts) this.setPromptRequestHandlers(); } /** * Attaches to the given transport, starts it, and starts listening for messages. * * The `server` object assumes ownership of the {@linkcode Transport}, replacing any callbacks that have already been set, and expects that it is the only user of the {@linkcode Transport} instance going forward. * * @example * ```ts source="./mcp.examples.ts#McpServer_connect_stdio" * const server = new McpServer({ name: 'my-server', version: '1.0.0' }); * const transport = new StdioServerTransport(); * await server.connect(transport); * ``` */ async connect(transport) { return await this.server.connect(transport); } /** * Closes the connection. */ async close() { await this.server.close(); } _toolHandlersInitialized = false; setToolRequestHandlers() { if (this._toolHandlersInitialized) return; this.server.assertCanSetRequestHandler("tools/list"); this.server.assertCanSetRequestHandler("tools/call"); this.server.registerCapabilities({ tools: { listChanged: this.server.getCapabilities().tools?.listChanged ?? true } }); this.server.setRequestHandler("tools/list", () => ({ tools: Object.entries(this._registeredTools).filter(([, tool]) => tool.enabled).map(([name, tool]) => { const toolDefinition = { name, title: tool.title, description: tool.description, inputSchema: tool.inputSchema ? standardSchemaToJsonSchema(tool.inputSchema, "input") : EMPTY_OBJECT_JSON_SCHEMA, annotations: tool.annotations, icons: tool.icons, execution: tool.execution, _meta: tool._meta }; if (tool.outputSchema) toolDefinition.outputSchema = standardSchemaToJsonSchema(tool.outputSchema, "output"); return toolDefinition; }) })); this.server.setRequestHandler("tools/call", async (request, ctx) => { const tool = this._registeredTools[request.params.name]; if (!tool) throw new ProtocolError(ProtocolErrorCode.InvalidParams, `Tool ${request.params.name} not found`); if (!tool.enabled) throw new ProtocolError(ProtocolErrorCode.InvalidParams, `Tool ${request.params.name} disabled`); try { const args = await this.validateToolInput(tool, request.params.arguments, request.params.name); const result = await this.executeToolHandler(tool, args, ctx); await this.validateToolOutput(tool, result, request.params.name); if (isInputRequiredResult(result)) return result; return this.server.projectCallToolResult(result, tool.outputSchemaJson); } catch (error62) { if (error62 instanceof ProtocolError && error62.code === ProtocolErrorCode.UrlElicitationRequired) throw error62; return this.createToolError(error62 instanceof Error ? error62.message : String(error62)); } }); this._toolHandlersInitialized = true; } /** * Creates a tool error result. * * @param errorMessage - The error message. * @returns The tool error result. */ createToolError(errorMessage) { return { content: [{ type: "text", text: errorMessage }], isError: true }; } /** * Validates tool input arguments against the tool's input schema. */ async validateToolInput(tool, args, toolName) { if (!tool.inputSchema) return; const parseResult = await validateStandardSchema(tool.inputSchema, args ?? {}); if (!parseResult.success) throw new ProtocolError(ProtocolErrorCode.InvalidParams, `Input validation error: Invalid arguments for tool ${toolName}: ${parseResult.error}`); return parseResult.data; } /** * Validates tool output against the tool's output schema. */ async validateToolOutput(tool, result, toolName) { if (!tool.outputSchema) return; if (isInputRequiredResult(result)) return; if (result.isError) return; if (result.structuredContent === void 0) throw new ProtocolError(ProtocolErrorCode.InvalidParams, `Output validation error: Tool ${toolName} has an output schema but no structured content was provided`); const parseResult = await validateStandardSchema(tool.outputSchema, result.structuredContent); if (!parseResult.success) throw new ProtocolError(ProtocolErrorCode.InvalidParams, `Output validation error: Invalid structured content for tool ${toolName}: ${parseResult.error}`); } /** * Executes a tool handler. */ async executeToolHandler(tool, args, ctx) { return tool.executor(args, ctx); } _completionHandlerInitialized = false; setCompletionRequestHandler() { if (this._completionHandlerInitialized) return; this.server.assertCanSetRequestHandler("completion/complete"); this.server.registerCapabilities({ completions: {} }); this.server.setRequestHandler("completion/complete", async (request) => { switch (request.params.ref.type) { case "ref/prompt": assertCompleteRequestPrompt(request); return this.handlePromptCompletion(request, request.params.ref); case "ref/resource": assertCompleteRequestResourceTemplate(request); return this.handleResourceCompletion(request, request.params.ref); default: throw new ProtocolError(ProtocolErrorCode.InvalidParams, `Invalid completion reference: ${request.params.ref}`); } }); this._completionHandlerInitialized = true; } async handlePromptCompletion(request, ref) { const prompt = this._registeredPrompts[ref.name]; if (!prompt) throw new ProtocolError(ProtocolErrorCode.InvalidParams, `Prompt ${ref.name} not found`); if (!prompt.enabled) throw new ProtocolError(ProtocolErrorCode.InvalidParams, `Prompt ${ref.name} disabled`); if (!prompt.argsSchema) return EMPTY_COMPLETION_RESULT; const field = unwrapOptionalSchema(getSchemaShape(prompt.argsSchema)?.[request.params.argument.name]); if (!isCompletable(field)) return EMPTY_COMPLETION_RESULT; const completer = getCompleter(field); if (!completer) return EMPTY_COMPLETION_RESULT; return createCompletionResult(await completer(request.params.argument.value, request.params.context)); } async handleResourceCompletion(request, ref) { const template = Object.values(this._registeredResourceTemplates).find((t) => t.resourceTemplate.uriTemplate.toString() === ref.uri); if (!template) { if (this._registeredResources[ref.uri]) return EMPTY_COMPLETION_RESULT; throw new ProtocolError(ProtocolErrorCode.InvalidParams, `Resource template ${request.params.ref.uri} not found`); } const completer = template.resourceTemplate.completeCallback(request.params.argument.name); if (!completer) return EMPTY_COMPLETION_RESULT; return createCompletionResult(await completer(request.params.argument.value, request.params.context)); } _resourceHandlersInitialized = false; setResourceRequestHandlers() { if (this._resourceHandlersInitialized) return; this.server.assertCanSetRequestHandler("resources/list"); this.server.assertCanSetRequestHandler("resources/templates/list"); this.server.assertCanSetRequestHandler("resources/read"); this.server.registerCapabilities({ resources: { listChanged: this.server.getCapabilities().resources?.listChanged ?? true } }); this.server.setRequestHandler("resources/list", async (_request, ctx) => { const resources = Object.entries(this._registeredResources).filter(([_, resource]) => resource.enabled).map(([uri, resource]) => ({ uri, name: resource.name, ...resource.metadata })); const templateResources = []; for (const template of Object.values(this._registeredResourceTemplates)) { if (!template.resourceTemplate.listCallback) continue; const result = await template.resourceTemplate.listCallback(ctx); for (const resource of result.resources) templateResources.push({ ...template.metadata, ...resource }); } return { resources: [...resources, ...templateResources] }; }); this.server.setRequestHandler("resources/templates/list", async () => { return { resourceTemplates: Object.entries(this._registeredResourceTemplates).map(([name, template]) => ({ name, uriTemplate: template.resourceTemplate.uriTemplate.toString(), ...template.metadata })) }; }); this.server.setRequestHandler("resources/read", async (request, ctx) => { let uri; try { uri = new URL(request.params.uri); } catch { throw new ProtocolError(ProtocolErrorCode.InvalidParams, `Resource URI ${request.params.uri} is invalid`, { uri: request.params.uri, reason: "invalid_uri" }); } const resource = this._registeredResources[uri.toString()]; if (resource) { if (!resource.enabled) throw new ProtocolError(ProtocolErrorCode.InvalidParams, `Resource ${uri} disabled`); return attachCacheHintFallback(await resource.readCallback(uri, ctx), resource.cacheHint); } for (const template of Object.values(this._registeredResourceTemplates)) { const variables = template.resourceTemplate.uriTemplate.match(uri.toString()); if (variables) return attachCacheHintFallback(await template.readCallback(uri, variables, ctx), template.cacheHint); } throw new ResourceNotFoundError(request.params.uri); }); this._resourceHandlersInitialized = true; } _promptHandlersInitialized = false; setPromptRequestHandlers() { if (this._promptHandlersInitialized) return; this.server.assertCanSetRequestHandler("prompts/list"); this.server.assertCanSetRequestHandler("prompts/get"); this.server.registerCapabilities({ prompts: { listChanged: this.server.getCapabilities().prompts?.listChanged ?? true } }); this.server.setRequestHandler("prompts/list", () => ({ prompts: Object.entries(this._registeredPrompts).filter(([, prompt]) => prompt.enabled).map(([name, prompt]) => { return { name, title: prompt.title, description: prompt.description, arguments: prompt.argsSchema ? promptArgumentsFromStandardSchema(prompt.argsSchema) : void 0, icons: prompt.icons, _meta: prompt._meta }; }) })); this.server.setRequestHandler("prompts/get", async (request, ctx) => { const prompt = this._registeredPrompts[request.params.name]; if (!prompt) throw new ProtocolError(ProtocolErrorCode.InvalidParams, `Prompt ${request.params.name} not found`); if (!prompt.enabled) throw new ProtocolError(ProtocolErrorCode.InvalidParams, `Prompt ${request.params.name} disabled`); return prompt.handler(request.params.arguments, ctx); }); this._promptHandlersInitialized = true; } registerResource(name, uriOrTemplate, config2, readCallback) { const cacheHint = config2.cacheHint; let metadata = config2; if (cacheHint !== void 0) { assertValidCacheHint(cacheHint, `resource ${name}`); const rest = { ...config2 }; delete rest.cacheHint; metadata = rest; } if (typeof uriOrTemplate === "string") { if (this._registeredResources[uriOrTemplate]) throw new Error(`Resource ${uriOrTemplate} is already registered`); const registeredResource = this._createRegisteredResource(name, config2.title, uriOrTemplate, metadata, readCallback); if (cacheHint !== void 0) registeredResource.cacheHint = cacheHint; this.setResourceRequestHandlers(); this.sendResourceListChanged(); return registeredResource; } else { if (this._registeredResourceTemplates[name]) throw new Error(`Resource template ${name} is already registered`); const registeredResourceTemplate = this._createRegisteredResourceTemplate(name, config2.title, uriOrTemplate, metadata, readCallback); if (cacheHint !== void 0) registeredResourceTemplate.cacheHint = cacheHint; this.setResourceRequestHandlers(); this.sendResourceListChanged(); return registeredResourceTemplate; } } _createRegisteredResource(name, title, uri, metadata, readCallback) { const registeredResource = { name, title, metadata, readCallback, enabled: true, disable: () => registeredResource.update({ enabled: false }), enable: () => registeredResource.update({ enabled: true }), remove: () => registeredResource.update({ uri: null }), update: (updates) => { if (updates.uri !== void 0 && updates.uri !== uri) { delete this._registeredResources[uri]; if (updates.uri) this._registeredResources[updates.uri] = registeredResource; } if (updates.name !== void 0) registeredResource.name = updates.name; if (updates.title !== void 0) registeredResource.title = updates.title; if (updates.metadata !== void 0) registeredResource.metadata = updates.metadata; if (updates.callback !== void 0) registeredResource.readCallback = updates.callback; if (updates.enabled !== void 0) registeredResource.enabled = updates.enabled; this.sendResourceListChanged(); } }; this._registeredResources[uri] = registeredResource; return registeredResource; } _createRegisteredResourceTemplate(name, title, template, metadata, readCallback) { const registeredResourceTemplate = { resourceTemplate: template, title, metadata, readCallback, enabled: true, disable: () => registeredResourceTemplate.update({ enabled: false }), enable: () => registeredResourceTemplate.update({ enabled: true }), remove: () => registeredResourceTemplate.update({ name: null }), update: (updates) => { if (updates.name !== void 0 && updates.name !== name) { delete this._registeredResourceTemplates[name]; if (updates.name) this._registeredResourceTemplates[updates.name] = registeredResourceTemplate; } if (updates.title !== void 0) registeredResourceTemplate.title = updates.title; if (updates.template !== void 0) registeredResourceTemplate.resourceTemplate = updates.template; if (updates.metadata !== void 0) registeredResourceTemplate.metadata = updates.metadata; if (updates.callback !== void 0) registeredResourceTemplate.readCallback = updates.callback; if (updates.enabled !== void 0) registeredResourceTemplate.enabled = updates.enabled; this.sendResourceListChanged(); } }; this._registeredResourceTemplates[name] = registeredResourceTemplate; const variableNames = template.uriTemplate.variableNames; if (Array.isArray(variableNames) && variableNames.some((v) => !!template.completeCallback(v))) this.setCompletionRequestHandler(); return registeredResourceTemplate; } _createRegisteredPrompt(name, title, description, argsSchema, callback, icons, _meta) { let currentArgsSchema = argsSchema; let currentCallback = callback; const registeredPrompt = { title, description, argsSchema, icons, _meta, handler: createPromptHandler(name, argsSchema, callback), enabled: true, disable: () => registeredPrompt.update({ enabled: false }), enable: () => registeredPrompt.update({ enabled: true }), remove: () => registeredPrompt.update({ name: null }), update: (updates) => { if (updates.name !== void 0 && updates.name !== name) { delete this._registeredPrompts[name]; if (updates.name) this._registeredPrompts[updates.name] = registeredPrompt; } if (updates.title !== void 0) registeredPrompt.title = updates.title; if (updates.description !== void 0) registeredPrompt.description = updates.description; if (updates.icons !== void 0) registeredPrompt.icons = updates.icons; if (updates._meta !== void 0) registeredPrompt._meta = updates._meta; let needsHandlerRegen = false; if (updates.argsSchema !== void 0) { registeredPrompt.argsSchema = updates.argsSchema; currentArgsSchema = updates.argsSchema; needsHandlerRegen = true; } if (updates.callback !== void 0) { currentCallback = updates.callback; needsHandlerRegen = true; } if (needsHandlerRegen) registeredPrompt.handler = createPromptHandler(name, currentArgsSchema, currentCallback); if (updates.enabled !== void 0) registeredPrompt.enabled = updates.enabled; this.sendPromptListChanged(); } }; this._registeredPrompts[name] = registeredPrompt; if (argsSchema) { const shape = getSchemaShape(argsSchema); if (shape) { if (Object.values(shape).some((field) => { return isCompletable(unwrapOptionalSchema(field)); })) this.setCompletionRequestHandler(); } } return registeredPrompt; } _createRegisteredTool(name, title, description, inputSchema, outputSchema, annotations, icons, execution, _meta, handler) { validateAndWarnToolName(name); if (inputSchema !== void 0) try { const json2 = standardSchemaToJsonSchema(inputSchema, "input"); this._toolInputSchemaJson[name] = json2; const scan = scanXMcpHeaderDeclarations(json2); if (!scan.valid) console.warn(`[mcp-sdk] tool '${name}' carries an invalid x-mcp-header declaration and will be excluded by conforming Streamable HTTP clients: ${scan.reason}`); } catch { } let currentHandler = handler; const registeredTool = { title, description, inputSchema, outputSchema, outputSchemaJson: convertOutputSchemaJson(outputSchema), annotations, icons, execution, _meta, handler, executor: createToolExecutor(inputSchema, handler), enabled: true, disable: () => registeredTool.update({ enabled: false }), enable: () => registeredTool.update({ enabled: true }), remove: () => registeredTool.update({ name: null }), update: (updates) => { if (updates.name !== void 0 && updates.name !== name) { if (typeof updates.name === "string") validateAndWarnToolName(updates.name); delete this._registeredTools[name]; delete this._toolInputSchemaJson[name]; if (updates.name) { delete this._toolInputSchemaJson[updates.name]; this._registeredTools[updates.name] = registeredTool; name = updates.name; } } if (updates.title !== void 0) registeredTool.title = updates.title; if (updates.description !== void 0) registeredTool.description = updates.description; let needsExecutorRegen = false; if (updates.paramsSchema !== void 0) { registeredTool.inputSchema = updates.paramsSchema; delete this._toolInputSchemaJson[name]; needsExecutorRegen = true; } if (updates.callback !== void 0) { registeredTool.handler = updates.callback; currentHandler = updates.callback; needsExecutorRegen = true; } if (needsExecutorRegen) registeredTool.executor = createToolExecutor(registeredTool.inputSchema, currentHandler); if (updates.outputSchema !== void 0) { registeredTool.outputSchema = updates.outputSchema; registeredTool.outputSchemaJson = convertOutputSchemaJson(updates.outputSchema); } if (updates.annotations !== void 0) registeredTool.annotations = updates.annotations; if (updates.icons !== void 0) registeredTool.icons = updates.icons; if (updates._meta !== void 0) registeredTool._meta = updates._meta; if (updates.enabled !== void 0) registeredTool.enabled = updates.enabled; this.sendToolListChanged(); } }; this._registeredTools[name] = registeredTool; this.setToolRequestHandlers(); this.sendToolListChanged(); return registeredTool; } registerTool(name, config2, cb) { if (this._registeredTools[name]) throw new Error(`Tool ${name} is already registered`); const { title, description, inputSchema, outputSchema, annotations, icons, _meta } = config2; return this._createRegisteredTool(name, title, description, normalizeRawShapeSchema(inputSchema), normalizeRawShapeSchema(outputSchema), annotations, icons, void 0, _meta, cb); } registerPrompt(name, config2, cb) { if (this._registeredPrompts[name]) throw new Error(`Prompt ${name} is already registered`); const { title, description, argsSchema, icons, _meta } = config2; const registeredPrompt = this._createRegisteredPrompt(name, title, description, normalizeRawShapeSchema(argsSchema), cb, icons, _meta); this.setPromptRequestHandlers(); this.sendPromptListChanged(); return registeredPrompt; } /** * Checks if the server is connected to a transport. * @returns `true` if the server is connected */ isConnected() { return this.server.transport !== void 0; } /** * Sends a logging message to the client, if connected. * Note: You only need to send the parameters object, not the entire JSON-RPC message. * @see {@linkcode LoggingMessageNotification} * @param params * @param sessionId Optional for stateless transports and backward compatibility. * * @example * ```ts source="./mcp.examples.ts#McpServer_sendLoggingMessage_basic" * await server.sendLoggingMessage({ * level: 'info', * data: 'Processing complete' * }); * ``` * * @deprecated Deprecated as of protocol version 2026-07-28 (SEP-2577). * Remains functional during the deprecation window (at least twelve months). * Migrate to stderr logging (STDIO servers) or OpenTelemetry. */ async sendLoggingMessage(params, sessionId) { return this.server.sendLoggingMessage(params, sessionId); } /** * Sends a resource list changed event to the client, if connected. */ sendResourceListChanged() { if (this.isConnected()) this.server.sendResourceListChanged(); } /** * Sends a tool list changed event to the client, if connected. */ sendToolListChanged() { if (this.isConnected()) this.server.sendToolListChanged(); } /** * Sends a prompt list changed event to the client, if connected. */ sendPromptListChanged() { if (this.isConnected()) this.server.sendPromptListChanged(); } }; function createToolExecutor(inputSchema, handler) { if (inputSchema) { const callback$1 = handler; return async (args, ctx) => callback$1(args, ctx); } const callback = handler; return async (_args, ctx) => callback(ctx); } var EMPTY_OBJECT_JSON_SCHEMA = { type: "object", properties: {} }; function convertOutputSchemaJson(outputSchema) { if (outputSchema === void 0) return void 0; try { return standardSchemaToJsonSchema(outputSchema, "output"); } catch { return; } } function createPromptHandler(name, argsSchema, callback) { if (argsSchema) { const typedCallback = callback; return async (args, ctx) => { const parseResult = await validateStandardSchema(argsSchema, args); if (!parseResult.success) throw new ProtocolError(ProtocolErrorCode.InvalidParams, `Invalid arguments for prompt ${name}: ${parseResult.error}`); return typedCallback(parseResult.data, ctx); }; } else { const typedCallback = callback; return async (_args, ctx) => { return typedCallback(ctx); }; } } function createCompletionResult(suggestions) { return { completion: { values: suggestions.map(String).slice(0, 100), total: suggestions.length, hasMore: suggestions.length > 100 } }; } var EMPTY_COMPLETION_RESULT = { completion: { values: [], hasMore: false } }; function getSchemaShape(schema) { const candidate = schema; if (candidate.shape && typeof candidate.shape === "object") return candidate.shape; } function isOptionalSchema(schema) { return schema?.type === "optional"; } function unwrapOptionalSchema(schema) { if (!isOptionalSchema(schema)) return schema; return schema.def?.innerType ?? schema; } // ../../../../node_modules/@modelcontextprotocol/server/dist/stdio.mjs var StdioServerTransport = class { _readBuffer; _started = false; _closed = false; constructor(_stdin = process2.stdin, _stdout = process2.stdout, options) { this._stdin = _stdin; this._stdout = _stdout; this._readBuffer = new ReadBuffer({ maxBufferSize: options?.maxBufferSize }); } onclose; onerror; onmessage; _ondata = (chunk) => { try { this._readBuffer.append(chunk); this.processReadBuffer(); } catch (error62) { this.onerror?.(error62); this.close().catch(() => { }); } }; _onerror = (error62) => { this.onerror?.(error62); }; _onstdouterror = (error62) => { this.onerror?.(error62); this.close().catch(() => { }); }; /** * Starts listening for messages on `stdin`. */ async start() { if (this._started) throw new Error("StdioServerTransport already started! If using Server class, note that connect() calls start() automatically."); this._started = true; this._stdin.on("data", this._ondata); this._stdin.on("error", this._onerror); this._stdout.on("error", this._onstdouterror); } processReadBuffer() { while (true) try { const message = this._readBuffer.readMessage(); if (message === null) break; this.onmessage?.(message); } catch (error62) { this.onerror?.(error62); } } async close() { if (this._closed) return; this._closed = true; this._stdin.off("data", this._ondata); this._stdin.off("error", this._onerror); this._stdout.off("error", this._onstdouterror); if (this._stdin.listenerCount("data") === 0) this._stdin.pause(); this._readBuffer.clear(); this.onclose?.(); } send(message) { if (this._closed) return Promise.reject(/* @__PURE__ */ new Error("StdioServerTransport is closed")); return new Promise((resolve2, reject) => { const json2 = serializeMessage(message); let settled = false; const onError = (error62) => { if (settled) return; settled = true; this._stdout.off("error", onError); this._stdout.off("drain", onDrain); reject(error62); }; const onDrain = () => { if (settled) return; settled = true; this._stdout.off("error", onError); this._stdout.off("drain", onDrain); resolve2(); }; this._stdout.once("error", onError); if (this._stdout.write(json2)) { if (settled) return; settled = true; this._stdout.off("error", onError); resolve2(); } else if (!settled) this._stdout.once("drain", onDrain); }); } }; var DISCARD_ANSWER_TIMEOUT_MS = 3e3; var StdioConnectionChannel = class { onclose; onerror; onmessage; _closed = false; /** Request ids the entry delivered to the instance that the instance has not yet answered. */ _pendingRequests = /* @__PURE__ */ new Set(); _drainWaiters = []; constructor(_wire, _onInstanceClose, _outboundIntercept) { this._wire = _wire; this._onInstanceClose = _onInstanceClose; this._outboundIntercept = _outboundIntercept; } async start() { } async send(message, options) { if (isJSONRPCResultResponse(message) || isJSONRPCErrorResponse(message)) { const { id } = message; if (id !== void 0) this._settle(id); } if (this._closed) return; if (this._outboundIntercept?.(message) === "handled") return; return this._wire.send(message, options); } setProtocolVersion = (version3) => { this._wire.setProtocolVersion?.(version3); }; /** Forwards one inbound message to the connected instance. */ deliver(message, extra) { if (this._closed) return; if (isJSONRPCRequest(message)) this._pendingRequests.add(message.id); else if (isJSONRPCNotification(message) && message.method === "notifications/cancelled") { const cancelledId = message.params?.requestId; if (cancelledId !== void 0) this._settle(cancelledId); } this.onmessage?.(message, extra); } /** * Resolves once every request delivered to the instance has been answered * through {@linkcode send}, settled by a delivered cancellation, or the * channel has been closed and nothing further can be answered. The wait is * bounded by `timeoutMs` as a backstop so no edge can hold the caller * indefinitely; resolves `false` only when the bound elapsed with requests * still unanswered. Used by the probe-discard path so a probe request the * entry accepted is never silently dropped. */ async whenRequestsAnswered(timeoutMs) { if (this._closed || this._pendingRequests.size === 0) return true; return await new Promise((resolve2) => { const waiter = () => { clearTimeout(timer); resolve2(true); }; const timer = setTimeout(() => { this._drainWaiters = this._drainWaiters.filter((pending) => pending !== waiter); resolve2(false); }, timeoutMs); this._drainWaiters.push(waiter); }); } async close() { if (this._closed) return; this._closed = true; this._pendingRequests.clear(); this._releaseDrainWaiters(); try { this._onInstanceClose(); } finally { this.onclose?.(); } } _settle(id) { this._pendingRequests.delete(id); if (this._pendingRequests.size === 0) this._releaseDrainWaiters(); } _releaseDrainWaiters() { const waiters = this._drainWaiters; this._drainWaiters = []; for (const waiter of waiters) waiter(); } }; function classifyOpeningMessage(message) { const params = message.params; if (message.method === "initialize" && !carriesValidModernEnvelopeClaim(params)) { const requestedVersion = params !== null && typeof params === "object" && typeof params.protocolVersion === "string" ? params.protocolVersion : void 0; return { kind: "legacy", reason: "initialize", ...requestedVersion !== void 0 && { requestedVersion } }; } if (!hasEnvelopeClaim(params)) return { kind: "legacy", reason: "no-claim" }; const meta3 = requestMetaOf(params); const firstIssue = (meta3 === void 0 ? [] : validateEnvelopeMeta(meta3))[0]; if (firstIssue !== void 0) return { kind: "invalid-envelope", issue: firstIssue }; const claimedVersion = envelopeClaimVersion(params); if (claimedVersion === void 0 || !SUPPORTED_MODERN_PROTOCOL_VERSIONS.includes(claimedVersion)) return { kind: "unsupported-revision", requested: claimedVersion ?? "unknown" }; return { kind: "modern", revision: claimedVersion, classification: { era: "modern", revision: claimedVersion } }; } function serveStdio(factory, options = {}) { const legacyMode = options.legacy ?? "serve"; const wire = options.transport ?? new StdioServerTransport(); let state = { phase: "opening" }; let discarding; let closing = false; const isTornDown = () => closing || state.phase === "closed"; const reportError = (error62) => { try { options.onerror?.(error62); } catch { } }; const writeErrorResponse = (id, code, message, data) => wire.send({ jsonrpc: "2.0", id, error: { code, message, ...data !== void 0 && { data } } }).catch((error62) => reportError(toError(error62))); const listenRouter = new StdioListenRouter(options.maxSubscriptions ?? DEFAULT_MAX_SUBSCRIPTIONS); const modernOutboundIntercept = (message) => { if (!isJSONRPCNotification(message)) return void 0; const routed = listenRouter.routeOutbound(message); if (routed === "passthrough") return void 0; for (const stamped of routed) wire.send({ jsonrpc: "2.0", ...stamped }).catch((error62) => reportError(toError(error62))); return "handled"; }; const tryServeListen = async (message) => { if (isJSONRPCRequest(message) && message.method === "subscriptions/listen") { const meta3 = requestMetaOf(message.params); const issue2 = hasEnvelopeClaim(message.params) ? (meta3 === void 0 ? [] : validateEnvelopeMeta(meta3))[0] : { key: "_meta", problem: "the per-request envelope is required on protocol revision 2026-07-28" }; const claimedVersion = envelopeClaimVersion(message.params); let reply; if (issue2 !== void 0) reply = { jsonrpc: "2.0", id: message.id, error: { code: -32602, message: `Invalid _meta envelope: ${issue2.key}: ${issue2.problem}` } }; else if (claimedVersion === void 0 || !SUPPORTED_MODERN_PROTOCOL_VERSIONS.includes(claimedVersion)) { const error62 = new UnsupportedProtocolVersionError({ supported: [...SUPPORTED_MODERN_PROTOCOL_VERSIONS], requested: claimedVersion ?? "unknown" }); reply = { jsonrpc: "2.0", id: message.id, error: { code: error62.code, message: error62.message, data: error62.data } }; } else reply = listenRouter.serve(message); await wire.send("error" in reply ? reply : { jsonrpc: "2.0", method: reply.method, params: reply.params }).catch((error62) => reportError(toError(error62))); return true; } if (isJSONRPCNotification(message) && message.method === "notifications/cancelled") { const cancelledId = message.params?.requestId; if (cancelledId !== void 0 && listenRouter.cancel(cancelledId)) return true; } return false; }; const answerLegacyRejection = (request, reason, requestedVersion) => { const rejection2 = modernOnlyStrictRejection({ kind: "legacy", reason, ...requestedVersion !== void 0 && { requestedVersion } }, SUPPORTED_MODERN_PROTOCOL_VERSIONS); if (rejection2 === void 0) return Promise.resolve(); reportError(/* @__PURE__ */ new Error(`Rejected 2025-era request on a modern-only stdio connection (${rejection2.cell}): ${rejection2.message}`)); return writeErrorResponse(request.id, rejection2.code, rejection2.message, rejection2.data); }; const onInstanceClosed = (channel) => { if (closing || channel === discarding) return; closeAll(); }; const connectInstance = async (era, revision) => { const product = await factory({ era }); const server = product instanceof McpServer ? product.server : product; if (era === "modern") { setNegotiatedProtocolVersion(server, revision); installModernOnlyHandlers(server, SUPPORTED_MODERN_PROTOCOL_VERSIONS); listenRouter.setServerCapabilities(server.getCapabilities(), serverIdentityOf(server)); } const channel = new StdioConnectionChannel(wire, () => onInstanceClosed(channel), era === "modern" ? modernOutboundIntercept : void 0); await product.connect(channel); return { product, channel }; }; const disposeLateInstance = (instance) => instance.product.close().catch((error62) => reportError(toError(error62))); const discardProbeInstance = async (instance) => { discarding = instance.channel; try { if (!await instance.channel.whenRequestsAnswered(DISCARD_ANSWER_TIMEOUT_MS)) reportError(/* @__PURE__ */ new Error(`Discarded the probe instance with requests still unanswered after ${DISCARD_ANSWER_TIMEOUT_MS}ms; continuing with the fallback`)); await instance.product.close(); } catch (error62) { reportError(toError(error62)); } finally { discarding = void 0; } }; const processMessage = async (message) => { if (state.phase === "closed") return; if (state.phase === "pinned") { if (state.era === "modern" && isJSONRPCRequest(message) && message.method === "initialize" && !carriesValidModernEnvelopeClaim(message.params)) { await answerLegacyRejection(message, "initialize", message.params !== null && typeof message.params === "object" && typeof message.params.protocolVersion === "string" ? message.params.protocolVersion : void 0); return; } if (state.era === "modern" && await tryServeListen(message)) return; state.instance.channel.deliver(message); return; } if (!isJSONRPCRequest(message) && !isJSONRPCNotification(message)) { reportError(/* @__PURE__ */ new Error("Discarded a JSON-RPC response received before the connection negotiated an era")); return; } const opening = classifyOpeningMessage(message); switch (opening.kind) { case "invalid-envelope": { const detail = `Invalid _meta envelope for protocol revision 2026-07-28: ${opening.issue.key}: ${opening.issue.problem}`; if (isJSONRPCRequest(message)) await writeErrorResponse(message.id, ProtocolErrorCode.InvalidParams, detail, { envelope: opening.issue }); else reportError(/* @__PURE__ */ new Error(`Discarded a notification with a malformed envelope: ${detail}`)); return; } case "unsupported-revision": if (isJSONRPCRequest(message)) { const error62 = new UnsupportedProtocolVersionError({ supported: [...SUPPORTED_MODERN_PROTOCOL_VERSIONS], requested: opening.requested }); reportError(error62); await writeErrorResponse(message.id, error62.code, error62.message, error62.data); } else reportError(/* @__PURE__ */ new Error(`Discarded a notification claiming unsupported protocol revision ${opening.requested}`)); return; case "modern": if (isJSONRPCRequest(message) && message.method === "server/discover") { if (state.phase === "probe") { state.instance.channel.deliver(message, { classification: opening.classification }); return; } const instance = await connectInstance("modern", opening.revision); if (isTornDown()) { await disposeLateInstance(instance); return; } state = { phase: "probe", instance }; instance.channel.deliver(message, { classification: opening.classification }); return; } if (state.phase === "probe") { if (isJSONRPCNotification(message)) { state.instance.channel.deliver(message, { classification: opening.classification }); return; } state = { phase: "pinned", era: "modern", instance: state.instance }; } else { const instance = await connectInstance("modern", opening.revision); if (isTornDown()) { await disposeLateInstance(instance); return; } state = { phase: "pinned", era: "modern", instance }; } if (await tryServeListen(message)) return; state.instance.channel.deliver(message, { classification: opening.classification }); return; case "legacy": { if (legacyMode === "reject") { if (isJSONRPCRequest(message)) await answerLegacyRejection(message, opening.reason, opening.requestedVersion); return; } if (state.phase === "probe") { await discardProbeInstance(state.instance); if (isTornDown()) return; state = { phase: "opening" }; } const instance = await connectInstance("legacy"); if (isTornDown()) { await disposeLateInstance(instance); return; } state = { phase: "pinned", era: "legacy", instance }; state.instance.channel.deliver(message); return; } } }; const queue = []; let pumping = false; const pump = async () => { if (pumping) return; pumping = true; try { while (queue.length > 0) { const message = queue.shift(); try { await processMessage(message); } catch (error62) { if (isJSONRPCRequest(message)) await writeErrorResponse(message.id, ProtocolErrorCode.InternalError, "Internal server error"); reportError(toError(error62)); } } } finally { pumping = false; } }; const closeAll = async () => { if (closing || state.phase === "closed") return; closing = true; const current = state; state = { phase: "closed" }; for (const result of listenRouter.teardownAll()) await wire.send(result).catch((error62) => reportError(toError(error62))); if (current.phase === "probe" || current.phase === "pinned") await current.instance.product.close().catch((error62) => reportError(toError(error62))); await wire.close().catch((error62) => reportError(toError(error62))); }; wire.onmessage = (message) => { queue.push(message); pump(); }; wire.onerror = (error62) => { reportError(error62); if (state.phase === "probe" || state.phase === "pinned") state.instance.channel.onerror?.(error62); }; wire.onclose = () => { if (closing || state.phase === "closed") return; closing = true; const current = state; state = { phase: "closed" }; if (current.phase === "probe" || current.phase === "pinned") current.instance.product.close().catch((error62) => reportError(toError(error62))); }; const started = wire.start().catch((error62) => { reportError(toError(error62)); throw error62; }); started.catch(() => { }); return { close: async () => { await started.catch(() => { }); await closeAll(); } }; } function toError(value) { return value instanceof Error ? value : new Error(String(value)); } // ../contracts/node_modules/zod/v3/external.js var external_exports2 = {}; __export(external_exports2, { BRAND: () => BRAND, DIRTY: () => DIRTY, EMPTY_PATH: () => EMPTY_PATH, INVALID: () => INVALID2, NEVER: () => NEVER2, OK: () => OK, ParseStatus: () => ParseStatus, Schema: () => ZodType2, ZodAny: () => ZodAny2, ZodArray: () => ZodArray2, ZodBigInt: () => ZodBigInt2, ZodBoolean: () => ZodBoolean2, ZodBranded: () => ZodBranded, ZodCatch: () => ZodCatch2, ZodDate: () => ZodDate2, ZodDefault: () => ZodDefault2, ZodDiscriminatedUnion: () => ZodDiscriminatedUnion2, ZodEffects: () => ZodEffects, ZodEnum: () => ZodEnum2, ZodError: () => ZodError2, ZodFirstPartyTypeKind: () => ZodFirstPartyTypeKind2, ZodFunction: () => ZodFunction2, ZodIntersection: () => ZodIntersection2, ZodIssueCode: () => ZodIssueCode2, ZodLazy: () => ZodLazy2, ZodLiteral: () => ZodLiteral2, ZodMap: () => ZodMap2, ZodNaN: () => ZodNaN2, ZodNativeEnum: () => ZodNativeEnum, ZodNever: () => ZodNever2, ZodNull: () => ZodNull2, ZodNullable: () => ZodNullable2, ZodNumber: () => ZodNumber2, ZodObject: () => ZodObject2, ZodOptional: () => ZodOptional2, ZodParsedType: () => ZodParsedType, ZodPipeline: () => ZodPipeline, ZodPromise: () => ZodPromise2, ZodReadonly: () => ZodReadonly2, ZodRecord: () => ZodRecord2, ZodSchema: () => ZodType2, ZodSet: () => ZodSet2, ZodString: () => ZodString2, ZodSymbol: () => ZodSymbol2, ZodTransformer: () => ZodEffects, ZodTuple: () => ZodTuple2, ZodType: () => ZodType2, ZodUndefined: () => ZodUndefined2, ZodUnion: () => ZodUnion2, ZodUnknown: () => ZodUnknown2, ZodVoid: () => ZodVoid2, addIssueToContext: () => addIssueToContext, any: () => anyType, array: () => arrayType, bigint: () => bigIntType, boolean: () => booleanType, coerce: () => coerce, custom: () => custom2, date: () => dateType, datetimeRegex: () => datetimeRegex, defaultErrorMap: () => en_default2, discriminatedUnion: () => discriminatedUnionType, effect: () => effectsType, enum: () => enumType, function: () => functionType, getErrorMap: () => getErrorMap2, getParsedType: () => getParsedType2, instanceof: () => instanceOfType, intersection: () => intersectionType, isAborted: () => isAborted, isAsync: () => isAsync, isDirty: () => isDirty, isValid: () => isValid, late: () => late, lazy: () => lazyType, literal: () => literalType, makeIssue: () => makeIssue, map: () => mapType, nan: () => nanType, nativeEnum: () => nativeEnumType, never: () => neverType, null: () => nullType, nullable: () => nullableType, number: () => numberType, object: () => objectType, objectUtil: () => objectUtil, oboolean: () => oboolean, onumber: () => onumber, optional: () => optionalType, ostring: () => ostring, pipeline: () => pipelineType, preprocess: () => preprocessType, promise: () => promiseType, quotelessJson: () => quotelessJson, record: () => recordType, set: () => setType, setErrorMap: () => setErrorMap2, strictObject: () => strictObjectType, string: () => stringType, symbol: () => symbolType, transformer: () => effectsType, tuple: () => tupleType, undefined: () => undefinedType, union: () => unionType, unknown: () => unknownType, util: () => util, void: () => voidType }); // ../contracts/node_modules/zod/v3/helpers/util.js var util; (function(util3) { util3.assertEqual = (_) => { }; function assertIs2(_arg) { } util3.assertIs = assertIs2; function assertNever2(_x) { throw new Error(); } util3.assertNever = assertNever2; util3.arrayToEnum = (items) => { const obj = {}; for (const item of items) { obj[item] = item; } return obj; }; util3.getValidEnumValues = (obj) => { const validKeys = util3.objectKeys(obj).filter((k) => typeof obj[obj[k]] !== "number"); const filtered = {}; for (const k of validKeys) { filtered[k] = obj[k]; } return util3.objectValues(filtered); }; util3.objectValues = (obj) => { return util3.objectKeys(obj).map(function(e) { return obj[e]; }); }; util3.objectKeys = typeof Object.keys === "function" ? (obj) => Object.keys(obj) : (object2) => { const keys = []; for (const key in object2) { if (Object.prototype.hasOwnProperty.call(object2, key)) { keys.push(key); } } return keys; }; util3.find = (arr, checker) => { for (const item of arr) { if (checker(item)) return item; } return void 0; }; util3.isInteger = typeof Number.isInteger === "function" ? (val) => Number.isInteger(val) : (val) => typeof val === "number" && Number.isFinite(val) && Math.floor(val) === val; function joinValues2(array2, separator = " | ") { return array2.map((val) => typeof val === "string" ? `'${val}'` : val).join(separator); } util3.joinValues = joinValues2; util3.jsonStringifyReplacer = (_, value) => { if (typeof value === "bigint") { return value.toString(); } return value; }; })(util || (util = {})); var objectUtil; (function(objectUtil3) { objectUtil3.mergeShapes = (first, second) => { return { ...first, ...second // second overwrites first }; }; })(objectUtil || (objectUtil = {})); var ZodParsedType = util.arrayToEnum([ "string", "nan", "number", "integer", "float", "boolean", "date", "bigint", "symbol", "function", "undefined", "null", "array", "object", "unknown", "promise", "void", "never", "map", "set" ]); var getParsedType2 = (data) => { const t = typeof data; switch (t) { case "undefined": return ZodParsedType.undefined; case "string": return ZodParsedType.string; case "number": return Number.isNaN(data) ? ZodParsedType.nan : ZodParsedType.number; case "boolean": return ZodParsedType.boolean; case "function": return ZodParsedType.function; case "bigint": return ZodParsedType.bigint; case "symbol": return ZodParsedType.symbol; case "object": if (Array.isArray(data)) { return ZodParsedType.array; } if (data === null) { return ZodParsedType.null; } if (data.then && typeof data.then === "function" && data.catch && typeof data.catch === "function") { return ZodParsedType.promise; } if (typeof Map !== "undefined" && data instanceof Map) { return ZodParsedType.map; } if (typeof Set !== "undefined" && data instanceof Set) { return ZodParsedType.set; } if (typeof Date !== "undefined" && data instanceof Date) { return ZodParsedType.date; } return ZodParsedType.object; default: return ZodParsedType.unknown; } }; // ../contracts/node_modules/zod/v3/ZodError.js var ZodIssueCode2 = util.arrayToEnum([ "invalid_type", "invalid_literal", "custom", "invalid_union", "invalid_union_discriminator", "invalid_enum_value", "unrecognized_keys", "invalid_arguments", "invalid_return_type", "invalid_date", "invalid_string", "too_small", "too_big", "invalid_intersection_types", "not_multiple_of", "not_finite" ]); var quotelessJson = (obj) => { const json2 = JSON.stringify(obj, null, 2); return json2.replace(/"([^"]+)":/g, "$1:"); }; var ZodError2 = class _ZodError extends Error { get errors() { return this.issues; } constructor(issues) { super(); this.issues = []; this.addIssue = (sub) => { this.issues = [...this.issues, sub]; }; this.addIssues = (subs = []) => { this.issues = [...this.issues, ...subs]; }; const actualProto = new.target.prototype; if (Object.setPrototypeOf) { Object.setPrototypeOf(this, actualProto); } else { this.__proto__ = actualProto; } this.name = "ZodError"; this.issues = issues; } format(_mapper) { const mapper = _mapper || function(issue2) { return issue2.message; }; const fieldErrors = { _errors: [] }; const processError = (error62) => { for (const issue2 of error62.issues) { if (issue2.code === "invalid_union") { issue2.unionErrors.map(processError); } else if (issue2.code === "invalid_return_type") { processError(issue2.returnTypeError); } else if (issue2.code === "invalid_arguments") { processError(issue2.argumentsError); } else if (issue2.path.length === 0) { fieldErrors._errors.push(mapper(issue2)); } else { let curr = fieldErrors; let i = 0; while (i < issue2.path.length) { const el = issue2.path[i]; const terminal = i === issue2.path.length - 1; if (!terminal) { curr[el] = curr[el] || { _errors: [] }; } else { curr[el] = curr[el] || { _errors: [] }; curr[el]._errors.push(mapper(issue2)); } curr = curr[el]; i++; } } } }; processError(this); return fieldErrors; } static assert(value) { if (!(value instanceof _ZodError)) { throw new Error(`Not a ZodError: ${value}`); } } toString() { return this.message; } get message() { return JSON.stringify(this.issues, util.jsonStringifyReplacer, 2); } get isEmpty() { return this.issues.length === 0; } flatten(mapper = (issue2) => issue2.message) { const fieldErrors = {}; const formErrors = []; for (const sub of this.issues) { if (sub.path.length > 0) { const firstEl = sub.path[0]; fieldErrors[firstEl] = fieldErrors[firstEl] || []; fieldErrors[firstEl].push(mapper(sub)); } else { formErrors.push(mapper(sub)); } } return { formErrors, fieldErrors }; } get formErrors() { return this.flatten(); } }; ZodError2.create = (issues) => { const error62 = new ZodError2(issues); return error62; }; // ../contracts/node_modules/zod/v3/locales/en.js var errorMap = (issue2, _ctx) => { let message; switch (issue2.code) { case ZodIssueCode2.invalid_type: if (issue2.received === ZodParsedType.undefined) { message = "Required"; } else { message = `Expected ${issue2.expected}, received ${issue2.received}`; } break; case ZodIssueCode2.invalid_literal: message = `Invalid literal value, expected ${JSON.stringify(issue2.expected, util.jsonStringifyReplacer)}`; break; case ZodIssueCode2.unrecognized_keys: message = `Unrecognized key(s) in object: ${util.joinValues(issue2.keys, ", ")}`; break; case ZodIssueCode2.invalid_union: message = `Invalid input`; break; case ZodIssueCode2.invalid_union_discriminator: message = `Invalid discriminator value. Expected ${util.joinValues(issue2.options)}`; break; case ZodIssueCode2.invalid_enum_value: message = `Invalid enum value. Expected ${util.joinValues(issue2.options)}, received '${issue2.received}'`; break; case ZodIssueCode2.invalid_arguments: message = `Invalid function arguments`; break; case ZodIssueCode2.invalid_return_type: message = `Invalid function return type`; break; case ZodIssueCode2.invalid_date: message = `Invalid date`; break; case ZodIssueCode2.invalid_string: if (typeof issue2.validation === "object") { if ("includes" in issue2.validation) { message = `Invalid input: must include "${issue2.validation.includes}"`; if (typeof issue2.validation.position === "number") { message = `${message} at one or more positions greater than or equal to ${issue2.validation.position}`; } } else if ("startsWith" in issue2.validation) { message = `Invalid input: must start with "${issue2.validation.startsWith}"`; } else if ("endsWith" in issue2.validation) { message = `Invalid input: must end with "${issue2.validation.endsWith}"`; } else { util.assertNever(issue2.validation); } } else if (issue2.validation !== "regex") { message = `Invalid ${issue2.validation}`; } else { message = "Invalid"; } break; case ZodIssueCode2.too_small: if (issue2.type === "array") message = `Array must contain ${issue2.exact ? "exactly" : issue2.inclusive ? `at least` : `more than`} ${issue2.minimum} element(s)`; else if (issue2.type === "string") message = `String must contain ${issue2.exact ? "exactly" : issue2.inclusive ? `at least` : `over`} ${issue2.minimum} character(s)`; else if (issue2.type === "number") message = `Number must be ${issue2.exact ? `exactly equal to ` : issue2.inclusive ? `greater than or equal to ` : `greater than `}${issue2.minimum}`; else if (issue2.type === "bigint") message = `Number must be ${issue2.exact ? `exactly equal to ` : issue2.inclusive ? `greater than or equal to ` : `greater than `}${issue2.minimum}`; else if (issue2.type === "date") message = `Date must be ${issue2.exact ? `exactly equal to ` : issue2.inclusive ? `greater than or equal to ` : `greater than `}${new Date(Number(issue2.minimum))}`; else message = "Invalid input"; break; case ZodIssueCode2.too_big: if (issue2.type === "array") message = `Array must contain ${issue2.exact ? `exactly` : issue2.inclusive ? `at most` : `less than`} ${issue2.maximum} element(s)`; else if (issue2.type === "string") message = `String must contain ${issue2.exact ? `exactly` : issue2.inclusive ? `at most` : `under`} ${issue2.maximum} character(s)`; else if (issue2.type === "number") message = `Number must be ${issue2.exact ? `exactly` : issue2.inclusive ? `less than or equal to` : `less than`} ${issue2.maximum}`; else if (issue2.type === "bigint") message = `BigInt must be ${issue2.exact ? `exactly` : issue2.inclusive ? `less than or equal to` : `less than`} ${issue2.maximum}`; else if (issue2.type === "date") message = `Date must be ${issue2.exact ? `exactly` : issue2.inclusive ? `smaller than or equal to` : `smaller than`} ${new Date(Number(issue2.maximum))}`; else message = "Invalid input"; break; case ZodIssueCode2.custom: message = `Invalid input`; break; case ZodIssueCode2.invalid_intersection_types: message = `Intersection results could not be merged`; break; case ZodIssueCode2.not_multiple_of: message = `Number must be a multiple of ${issue2.multipleOf}`; break; case ZodIssueCode2.not_finite: message = "Number must be finite"; break; default: message = _ctx.defaultError; util.assertNever(issue2); } return { message }; }; var en_default2 = errorMap; // ../contracts/node_modules/zod/v3/errors.js var overrideErrorMap = en_default2; function setErrorMap2(map2) { overrideErrorMap = map2; } function getErrorMap2() { return overrideErrorMap; } // ../contracts/node_modules/zod/v3/helpers/parseUtil.js var makeIssue = (params) => { const { data, path, errorMaps, issueData } = params; const fullPath = [...path, ...issueData.path || []]; const fullIssue = { ...issueData, path: fullPath }; if (issueData.message !== void 0) { return { ...issueData, path: fullPath, message: issueData.message }; } let errorMessage = ""; const maps2 = errorMaps.filter((m) => !!m).slice().reverse(); for (const map2 of maps2) { errorMessage = map2(fullIssue, { data, defaultError: errorMessage }).message; } return { ...issueData, path: fullPath, message: errorMessage }; }; var EMPTY_PATH = []; function addIssueToContext(ctx, issueData) { const overrideMap = getErrorMap2(); const issue2 = makeIssue({ issueData, data: ctx.data, path: ctx.path, errorMaps: [ ctx.common.contextualErrorMap, // contextual error map is first priority ctx.schemaErrorMap, // then schema-bound map if available overrideMap, // then global override map overrideMap === en_default2 ? void 0 : en_default2 // then global default map ].filter((x) => !!x) }); ctx.common.issues.push(issue2); } var ParseStatus = class _ParseStatus { constructor() { this.value = "valid"; } dirty() { if (this.value === "valid") this.value = "dirty"; } abort() { if (this.value !== "aborted") this.value = "aborted"; } static mergeArray(status, results) { const arrayValue = []; for (const s of results) { if (s.status === "aborted") return INVALID2; if (s.status === "dirty") status.dirty(); arrayValue.push(s.value); } return { status: status.value, value: arrayValue }; } static async mergeObjectAsync(status, pairs) { const syncPairs = []; for (const pair of pairs) { const key = await pair.key; const value = await pair.value; syncPairs.push({ key, value }); } return _ParseStatus.mergeObjectSync(status, syncPairs); } static mergeObjectSync(status, pairs) { const finalObject = {}; for (const pair of pairs) { const { key, value } = pair; if (key.status === "aborted") return INVALID2; if (value.status === "aborted") return INVALID2; if (key.status === "dirty") status.dirty(); if (value.status === "dirty") status.dirty(); if (key.value !== "__proto__" && (typeof value.value !== "undefined" || pair.alwaysSet)) { finalObject[key.value] = value.value; } } return { status: status.value, value: finalObject }; } }; var INVALID2 = Object.freeze({ status: "aborted" }); var DIRTY = (value) => ({ status: "dirty", value }); var OK = (value) => ({ status: "valid", value }); var isAborted = (x) => x.status === "aborted"; var isDirty = (x) => x.status === "dirty"; var isValid = (x) => x.status === "valid"; var isAsync = (x) => typeof Promise !== "undefined" && x instanceof Promise; // ../contracts/node_modules/zod/v3/helpers/errorUtil.js var errorUtil; (function(errorUtil3) { errorUtil3.errToObj = (message) => typeof message === "string" ? { message } : message || {}; errorUtil3.toString = (message) => typeof message === "string" ? message : message?.message; })(errorUtil || (errorUtil = {})); // ../contracts/node_modules/zod/v3/types.js var ParseInputLazyPath = class { constructor(parent, value, path, key) { this._cachedPath = []; this.parent = parent; this.data = value; this._path = path; this._key = key; } get path() { if (!this._cachedPath.length) { if (Array.isArray(this._key)) { this._cachedPath.push(...this._path, ...this._key); } else { this._cachedPath.push(...this._path, this._key); } } return this._cachedPath; } }; var handleResult = (ctx, result) => { if (isValid(result)) { return { success: true, data: result.value }; } else { if (!ctx.common.issues.length) { throw new Error("Validation failed but no issues detected."); } return { success: false, get error() { if (this._error) return this._error; const error62 = new ZodError2(ctx.common.issues); this._error = error62; return this._error; } }; } }; function processCreateParams(params) { if (!params) return {}; const { errorMap: errorMap3, invalid_type_error, required_error, description } = params; if (errorMap3 && (invalid_type_error || required_error)) { throw new Error(`Can't use "invalid_type_error" or "required_error" in conjunction with custom error map.`); } if (errorMap3) return { errorMap: errorMap3, description }; const customMap = (iss, ctx) => { const { message } = params; if (iss.code === "invalid_enum_value") { return { message: message ?? ctx.defaultError }; } if (typeof ctx.data === "undefined") { return { message: message ?? required_error ?? ctx.defaultError }; } if (iss.code !== "invalid_type") return { message: ctx.defaultError }; return { message: message ?? invalid_type_error ?? ctx.defaultError }; }; return { errorMap: customMap, description }; } var ZodType2 = class { get description() { return this._def.description; } _getType(input2) { return getParsedType2(input2.data); } _getOrReturnCtx(input2, ctx) { return ctx || { common: input2.parent.common, data: input2.data, parsedType: getParsedType2(input2.data), schemaErrorMap: this._def.errorMap, path: input2.path, parent: input2.parent }; } _processInputParams(input2) { return { status: new ParseStatus(), ctx: { common: input2.parent.common, data: input2.data, parsedType: getParsedType2(input2.data), schemaErrorMap: this._def.errorMap, path: input2.path, parent: input2.parent } }; } _parseSync(input2) { const result = this._parse(input2); if (isAsync(result)) { throw new Error("Synchronous parse encountered promise."); } return result; } _parseAsync(input2) { const result = this._parse(input2); return Promise.resolve(result); } parse(data, params) { const result = this.safeParse(data, params); if (result.success) return result.data; throw result.error; } safeParse(data, params) { const ctx = { common: { issues: [], async: params?.async ?? false, contextualErrorMap: params?.errorMap }, path: params?.path || [], schemaErrorMap: this._def.errorMap, parent: null, data, parsedType: getParsedType2(data) }; const result = this._parseSync({ data, path: ctx.path, parent: ctx }); return handleResult(ctx, result); } "~validate"(data) { const ctx = { common: { issues: [], async: !!this["~standard"].async }, path: [], schemaErrorMap: this._def.errorMap, parent: null, data, parsedType: getParsedType2(data) }; if (!this["~standard"].async) { try { const result = this._parseSync({ data, path: [], parent: ctx }); return isValid(result) ? { value: result.value } : { issues: ctx.common.issues }; } catch (err) { if (err?.message?.toLowerCase()?.includes("encountered")) { this["~standard"].async = true; } ctx.common = { issues: [], async: true }; } } return this._parseAsync({ data, path: [], parent: ctx }).then((result) => isValid(result) ? { value: result.value } : { issues: ctx.common.issues }); } async parseAsync(data, params) { const result = await this.safeParseAsync(data, params); if (result.success) return result.data; throw result.error; } async safeParseAsync(data, params) { const ctx = { common: { issues: [], contextualErrorMap: params?.errorMap, async: true }, path: params?.path || [], schemaErrorMap: this._def.errorMap, parent: null, data, parsedType: getParsedType2(data) }; const maybeAsyncResult = this._parse({ data, path: ctx.path, parent: ctx }); const result = await (isAsync(maybeAsyncResult) ? maybeAsyncResult : Promise.resolve(maybeAsyncResult)); return handleResult(ctx, result); } refine(check2, message) { const getIssueProperties = (val) => { if (typeof message === "string" || typeof message === "undefined") { return { message }; } else if (typeof message === "function") { return message(val); } else { return message; } }; return this._refinement((val, ctx) => { const result = check2(val); const setError = () => ctx.addIssue({ code: ZodIssueCode2.custom, ...getIssueProperties(val) }); if (typeof Promise !== "undefined" && result instanceof Promise) { return result.then((data) => { if (!data) { setError(); return false; } else { return true; } }); } if (!result) { setError(); return false; } else { return true; } }); } refinement(check2, refinementData) { return this._refinement((val, ctx) => { if (!check2(val)) { ctx.addIssue(typeof refinementData === "function" ? refinementData(val, ctx) : refinementData); return false; } else { return true; } }); } _refinement(refinement) { return new ZodEffects({ schema: this, typeName: ZodFirstPartyTypeKind2.ZodEffects, effect: { type: "refinement", refinement } }); } superRefine(refinement) { return this._refinement(refinement); } constructor(def) { this.spa = this.safeParseAsync; this._def = def; this.parse = this.parse.bind(this); this.safeParse = this.safeParse.bind(this); this.parseAsync = this.parseAsync.bind(this); this.safeParseAsync = this.safeParseAsync.bind(this); this.spa = this.spa.bind(this); this.refine = this.refine.bind(this); this.refinement = this.refinement.bind(this); this.superRefine = this.superRefine.bind(this); this.optional = this.optional.bind(this); this.nullable = this.nullable.bind(this); this.nullish = this.nullish.bind(this); this.array = this.array.bind(this); this.promise = this.promise.bind(this); this.or = this.or.bind(this); this.and = this.and.bind(this); this.transform = this.transform.bind(this); this.brand = this.brand.bind(this); this.default = this.default.bind(this); this.catch = this.catch.bind(this); this.describe = this.describe.bind(this); this.pipe = this.pipe.bind(this); this.readonly = this.readonly.bind(this); this.isNullable = this.isNullable.bind(this); this.isOptional = this.isOptional.bind(this); this["~standard"] = { version: 1, vendor: "zod", validate: (data) => this["~validate"](data) }; } optional() { return ZodOptional2.create(this, this._def); } nullable() { return ZodNullable2.create(this, this._def); } nullish() { return this.nullable().optional(); } array() { return ZodArray2.create(this); } promise() { return ZodPromise2.create(this, this._def); } or(option) { return ZodUnion2.create([this, option], this._def); } and(incoming) { return ZodIntersection2.create(this, incoming, this._def); } transform(transform2) { return new ZodEffects({ ...processCreateParams(this._def), schema: this, typeName: ZodFirstPartyTypeKind2.ZodEffects, effect: { type: "transform", transform: transform2 } }); } default(def) { const defaultValueFunc = typeof def === "function" ? def : () => def; return new ZodDefault2({ ...processCreateParams(this._def), innerType: this, defaultValue: defaultValueFunc, typeName: ZodFirstPartyTypeKind2.ZodDefault }); } brand() { return new ZodBranded({ typeName: ZodFirstPartyTypeKind2.ZodBranded, type: this, ...processCreateParams(this._def) }); } catch(def) { const catchValueFunc = typeof def === "function" ? def : () => def; return new ZodCatch2({ ...processCreateParams(this._def), innerType: this, catchValue: catchValueFunc, typeName: ZodFirstPartyTypeKind2.ZodCatch }); } describe(description) { const This = this.constructor; return new This({ ...this._def, description }); } pipe(target) { return ZodPipeline.create(this, target); } readonly() { return ZodReadonly2.create(this); } isOptional() { return this.safeParse(void 0).success; } isNullable() { return this.safeParse(null).success; } }; var cuidRegex = /^c[^\s-]{8,}$/i; var cuid2Regex = /^[0-9a-z]+$/; var ulidRegex = /^[0-9A-HJKMNP-TV-Z]{26}$/i; var uuidRegex = /^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/i; var nanoidRegex = /^[a-z0-9_-]{21}$/i; var jwtRegex = /^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/; var durationRegex = /^[-+]?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)?)??$/; var emailRegex = /^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i; var _emojiRegex = `^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$`; var emojiRegex; var ipv4Regex = /^(?:(?: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])$/; var ipv4CidrRegex = /^(?:(?: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])\/(3[0-2]|[12]?[0-9])$/; var ipv6Regex = /^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$/; var ipv6CidrRegex = /^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/; var base64Regex = /^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/; var base64urlRegex = /^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/; var dateRegexSource = `((\\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])))`; var dateRegex = new RegExp(`^${dateRegexSource}$`); function timeRegexSource(args) { let secondsRegexSource = `[0-5]\\d`; if (args.precision) { secondsRegexSource = `${secondsRegexSource}\\.\\d{${args.precision}}`; } else if (args.precision == null) { secondsRegexSource = `${secondsRegexSource}(\\.\\d+)?`; } const secondsQuantifier = args.precision ? "+" : "?"; return `([01]\\d|2[0-3]):[0-5]\\d(:${secondsRegexSource})${secondsQuantifier}`; } function timeRegex(args) { return new RegExp(`^${timeRegexSource(args)}$`); } function datetimeRegex(args) { let regex = `${dateRegexSource}T${timeRegexSource(args)}`; const opts = []; opts.push(args.local ? `Z?` : `Z`); if (args.offset) opts.push(`([+-]\\d{2}:?\\d{2})`); regex = `${regex}(${opts.join("|")})`; return new RegExp(`^${regex}$`); } function isValidIP(ip, version3) { if ((version3 === "v4" || !version3) && ipv4Regex.test(ip)) { return true; } if ((version3 === "v6" || !version3) && ipv6Regex.test(ip)) { return true; } return false; } function isValidJWT2(jwt2, alg) { if (!jwtRegex.test(jwt2)) return false; try { const [header] = jwt2.split("."); if (!header) return false; const base643 = header.replace(/-/g, "+").replace(/_/g, "/").padEnd(header.length + (4 - header.length % 4) % 4, "="); const decoded = JSON.parse(atob(base643)); if (typeof decoded !== "object" || decoded === null) return false; if ("typ" in decoded && decoded?.typ !== "JWT") return false; if (!decoded.alg) return false; if (alg && decoded.alg !== alg) return false; return true; } catch { return false; } } function isValidCidr(ip, version3) { if ((version3 === "v4" || !version3) && ipv4CidrRegex.test(ip)) { return true; } if ((version3 === "v6" || !version3) && ipv6CidrRegex.test(ip)) { return true; } return false; } var ZodString2 = class _ZodString2 extends ZodType2 { _parse(input2) { if (this._def.coerce) { input2.data = String(input2.data); } const parsedType2 = this._getType(input2); if (parsedType2 !== ZodParsedType.string) { const ctx2 = this._getOrReturnCtx(input2); addIssueToContext(ctx2, { code: ZodIssueCode2.invalid_type, expected: ZodParsedType.string, received: ctx2.parsedType }); return INVALID2; } const status = new ParseStatus(); let ctx = void 0; for (const check2 of this._def.checks) { if (check2.kind === "min") { if (input2.data.length < check2.value) { ctx = this._getOrReturnCtx(input2, ctx); addIssueToContext(ctx, { code: ZodIssueCode2.too_small, minimum: check2.value, type: "string", inclusive: true, exact: false, message: check2.message }); status.dirty(); } } else if (check2.kind === "max") { if (input2.data.length > check2.value) { ctx = this._getOrReturnCtx(input2, ctx); addIssueToContext(ctx, { code: ZodIssueCode2.too_big, maximum: check2.value, type: "string", inclusive: true, exact: false, message: check2.message }); status.dirty(); } } else if (check2.kind === "length") { const tooBig = input2.data.length > check2.value; const tooSmall = input2.data.length < check2.value; if (tooBig || tooSmall) { ctx = this._getOrReturnCtx(input2, ctx); if (tooBig) { addIssueToContext(ctx, { code: ZodIssueCode2.too_big, maximum: check2.value, type: "string", inclusive: true, exact: true, message: check2.message }); } else if (tooSmall) { addIssueToContext(ctx, { code: ZodIssueCode2.too_small, minimum: check2.value, type: "string", inclusive: true, exact: true, message: check2.message }); } status.dirty(); } } else if (check2.kind === "email") { if (!emailRegex.test(input2.data)) { ctx = this._getOrReturnCtx(input2, ctx); addIssueToContext(ctx, { validation: "email", code: ZodIssueCode2.invalid_string, message: check2.message }); status.dirty(); } } else if (check2.kind === "emoji") { if (!emojiRegex) { emojiRegex = new RegExp(_emojiRegex, "u"); } if (!emojiRegex.test(input2.data)) { ctx = this._getOrReturnCtx(input2, ctx); addIssueToContext(ctx, { validation: "emoji", code: ZodIssueCode2.invalid_string, message: check2.message }); status.dirty(); } } else if (check2.kind === "uuid") { if (!uuidRegex.test(input2.data)) { ctx = this._getOrReturnCtx(input2, ctx); addIssueToContext(ctx, { validation: "uuid", code: ZodIssueCode2.invalid_string, message: check2.message }); status.dirty(); } } else if (check2.kind === "nanoid") { if (!nanoidRegex.test(input2.data)) { ctx = this._getOrReturnCtx(input2, ctx); addIssueToContext(ctx, { validation: "nanoid", code: ZodIssueCode2.invalid_string, message: check2.message }); status.dirty(); } } else if (check2.kind === "cuid") { if (!cuidRegex.test(input2.data)) { ctx = this._getOrReturnCtx(input2, ctx); addIssueToContext(ctx, { validation: "cuid", code: ZodIssueCode2.invalid_string, message: check2.message }); status.dirty(); } } else if (check2.kind === "cuid2") { if (!cuid2Regex.test(input2.data)) { ctx = this._getOrReturnCtx(input2, ctx); addIssueToContext(ctx, { validation: "cuid2", code: ZodIssueCode2.invalid_string, message: check2.message }); status.dirty(); } } else if (check2.kind === "ulid") { if (!ulidRegex.test(input2.data)) { ctx = this._getOrReturnCtx(input2, ctx); addIssueToContext(ctx, { validation: "ulid", code: ZodIssueCode2.invalid_string, message: check2.message }); status.dirty(); } } else if (check2.kind === "url") { try { new URL(input2.data); } catch { ctx = this._getOrReturnCtx(input2, ctx); addIssueToContext(ctx, { validation: "url", code: ZodIssueCode2.invalid_string, message: check2.message }); status.dirty(); } } else if (check2.kind === "regex") { check2.regex.lastIndex = 0; const testResult = check2.regex.test(input2.data); if (!testResult) { ctx = this._getOrReturnCtx(input2, ctx); addIssueToContext(ctx, { validation: "regex", code: ZodIssueCode2.invalid_string, message: check2.message }); status.dirty(); } } else if (check2.kind === "trim") { input2.data = input2.data.trim(); } else if (check2.kind === "includes") { if (!input2.data.includes(check2.value, check2.position)) { ctx = this._getOrReturnCtx(input2, ctx); addIssueToContext(ctx, { code: ZodIssueCode2.invalid_string, validation: { includes: check2.value, position: check2.position }, message: check2.message }); status.dirty(); } } else if (check2.kind === "toLowerCase") { input2.data = input2.data.toLowerCase(); } else if (check2.kind === "toUpperCase") { input2.data = input2.data.toUpperCase(); } else if (check2.kind === "startsWith") { if (!input2.data.startsWith(check2.value)) { ctx = this._getOrReturnCtx(input2, ctx); addIssueToContext(ctx, { code: ZodIssueCode2.invalid_string, validation: { startsWith: check2.value }, message: check2.message }); status.dirty(); } } else if (check2.kind === "endsWith") { if (!input2.data.endsWith(check2.value)) { ctx = this._getOrReturnCtx(input2, ctx); addIssueToContext(ctx, { code: ZodIssueCode2.invalid_string, validation: { endsWith: check2.value }, message: check2.message }); status.dirty(); } } else if (check2.kind === "datetime") { const regex = datetimeRegex(check2); if (!regex.test(input2.data)) { ctx = this._getOrReturnCtx(input2, ctx); addIssueToContext(ctx, { code: ZodIssueCode2.invalid_string, validation: "datetime", message: check2.message }); status.dirty(); } } else if (check2.kind === "date") { const regex = dateRegex; if (!regex.test(input2.data)) { ctx = this._getOrReturnCtx(input2, ctx); addIssueToContext(ctx, { code: ZodIssueCode2.invalid_string, validation: "date", message: check2.message }); status.dirty(); } } else if (check2.kind === "time") { const regex = timeRegex(check2); if (!regex.test(input2.data)) { ctx = this._getOrReturnCtx(input2, ctx); addIssueToContext(ctx, { code: ZodIssueCode2.invalid_string, validation: "time", message: check2.message }); status.dirty(); } } else if (check2.kind === "duration") { if (!durationRegex.test(input2.data)) { ctx = this._getOrReturnCtx(input2, ctx); addIssueToContext(ctx, { validation: "duration", code: ZodIssueCode2.invalid_string, message: check2.message }); status.dirty(); } } else if (check2.kind === "ip") { if (!isValidIP(input2.data, check2.version)) { ctx = this._getOrReturnCtx(input2, ctx); addIssueToContext(ctx, { validation: "ip", code: ZodIssueCode2.invalid_string, message: check2.message }); status.dirty(); } } else if (check2.kind === "jwt") { if (!isValidJWT2(input2.data, check2.alg)) { ctx = this._getOrReturnCtx(input2, ctx); addIssueToContext(ctx, { validation: "jwt", code: ZodIssueCode2.invalid_string, message: check2.message }); status.dirty(); } } else if (check2.kind === "cidr") { if (!isValidCidr(input2.data, check2.version)) { ctx = this._getOrReturnCtx(input2, ctx); addIssueToContext(ctx, { validation: "cidr", code: ZodIssueCode2.invalid_string, message: check2.message }); status.dirty(); } } else if (check2.kind === "base64") { if (!base64Regex.test(input2.data)) { ctx = this._getOrReturnCtx(input2, ctx); addIssueToContext(ctx, { validation: "base64", code: ZodIssueCode2.invalid_string, message: check2.message }); status.dirty(); } } else if (check2.kind === "base64url") { if (!base64urlRegex.test(input2.data)) { ctx = this._getOrReturnCtx(input2, ctx); addIssueToContext(ctx, { validation: "base64url", code: ZodIssueCode2.invalid_string, message: check2.message }); status.dirty(); } } else { util.assertNever(check2); } } return { status: status.value, value: input2.data }; } _regex(regex, validation, message) { return this.refinement((data) => regex.test(data), { validation, code: ZodIssueCode2.invalid_string, ...errorUtil.errToObj(message) }); } _addCheck(check2) { return new _ZodString2({ ...this._def, checks: [...this._def.checks, check2] }); } email(message) { return this._addCheck({ kind: "email", ...errorUtil.errToObj(message) }); } url(message) { return this._addCheck({ kind: "url", ...errorUtil.errToObj(message) }); } emoji(message) { return this._addCheck({ kind: "emoji", ...errorUtil.errToObj(message) }); } uuid(message) { return this._addCheck({ kind: "uuid", ...errorUtil.errToObj(message) }); } nanoid(message) { return this._addCheck({ kind: "nanoid", ...errorUtil.errToObj(message) }); } cuid(message) { return this._addCheck({ kind: "cuid", ...errorUtil.errToObj(message) }); } cuid2(message) { return this._addCheck({ kind: "cuid2", ...errorUtil.errToObj(message) }); } ulid(message) { return this._addCheck({ kind: "ulid", ...errorUtil.errToObj(message) }); } base64(message) { return this._addCheck({ kind: "base64", ...errorUtil.errToObj(message) }); } base64url(message) { return this._addCheck({ kind: "base64url", ...errorUtil.errToObj(message) }); } jwt(options) { return this._addCheck({ kind: "jwt", ...errorUtil.errToObj(options) }); } ip(options) { return this._addCheck({ kind: "ip", ...errorUtil.errToObj(options) }); } cidr(options) { return this._addCheck({ kind: "cidr", ...errorUtil.errToObj(options) }); } datetime(options) { if (typeof options === "string") { return this._addCheck({ kind: "datetime", precision: null, offset: false, local: false, message: options }); } return this._addCheck({ kind: "datetime", precision: typeof options?.precision === "undefined" ? null : options?.precision, offset: options?.offset ?? false, local: options?.local ?? false, ...errorUtil.errToObj(options?.message) }); } date(message) { return this._addCheck({ kind: "date", message }); } time(options) { if (typeof options === "string") { return this._addCheck({ kind: "time", precision: null, message: options }); } return this._addCheck({ kind: "time", precision: typeof options?.precision === "undefined" ? null : options?.precision, ...errorUtil.errToObj(options?.message) }); } duration(message) { return this._addCheck({ kind: "duration", ...errorUtil.errToObj(message) }); } regex(regex, message) { return this._addCheck({ kind: "regex", regex, ...errorUtil.errToObj(message) }); } includes(value, options) { return this._addCheck({ kind: "includes", value, position: options?.position, ...errorUtil.errToObj(options?.message) }); } startsWith(value, message) { return this._addCheck({ kind: "startsWith", value, ...errorUtil.errToObj(message) }); } endsWith(value, message) { return this._addCheck({ kind: "endsWith", value, ...errorUtil.errToObj(message) }); } min(minLength, message) { return this._addCheck({ kind: "min", value: minLength, ...errorUtil.errToObj(message) }); } max(maxLength, message) { return this._addCheck({ kind: "max", value: maxLength, ...errorUtil.errToObj(message) }); } length(len, message) { return this._addCheck({ kind: "length", value: len, ...errorUtil.errToObj(message) }); } /** * Equivalent to `.min(1)` */ nonempty(message) { return this.min(1, errorUtil.errToObj(message)); } trim() { return new _ZodString2({ ...this._def, checks: [...this._def.checks, { kind: "trim" }] }); } toLowerCase() { return new _ZodString2({ ...this._def, checks: [...this._def.checks, { kind: "toLowerCase" }] }); } toUpperCase() { return new _ZodString2({ ...this._def, checks: [...this._def.checks, { kind: "toUpperCase" }] }); } get isDatetime() { return !!this._def.checks.find((ch) => ch.kind === "datetime"); } get isDate() { return !!this._def.checks.find((ch) => ch.kind === "date"); } get isTime() { return !!this._def.checks.find((ch) => ch.kind === "time"); } get isDuration() { return !!this._def.checks.find((ch) => ch.kind === "duration"); } get isEmail() { return !!this._def.checks.find((ch) => ch.kind === "email"); } get isURL() { return !!this._def.checks.find((ch) => ch.kind === "url"); } get isEmoji() { return !!this._def.checks.find((ch) => ch.kind === "emoji"); } get isUUID() { return !!this._def.checks.find((ch) => ch.kind === "uuid"); } get isNANOID() { return !!this._def.checks.find((ch) => ch.kind === "nanoid"); } get isCUID() { return !!this._def.checks.find((ch) => ch.kind === "cuid"); } get isCUID2() { return !!this._def.checks.find((ch) => ch.kind === "cuid2"); } get isULID() { return !!this._def.checks.find((ch) => ch.kind === "ulid"); } get isIP() { return !!this._def.checks.find((ch) => ch.kind === "ip"); } get isCIDR() { return !!this._def.checks.find((ch) => ch.kind === "cidr"); } get isBase64() { return !!this._def.checks.find((ch) => ch.kind === "base64"); } get isBase64url() { return !!this._def.checks.find((ch) => ch.kind === "base64url"); } get minLength() { let min = null; for (const ch of this._def.checks) { if (ch.kind === "min") { if (min === null || ch.value > min) min = ch.value; } } return min; } get maxLength() { let max = null; for (const ch of this._def.checks) { if (ch.kind === "max") { if (max === null || ch.value < max) max = ch.value; } } return max; } }; ZodString2.create = (params) => { return new ZodString2({ checks: [], typeName: ZodFirstPartyTypeKind2.ZodString, coerce: params?.coerce ?? false, ...processCreateParams(params) }); }; function floatSafeRemainder2(val, step) { const valDecCount = (val.toString().split(".")[1] || "").length; const stepDecCount = (step.toString().split(".")[1] || "").length; const decCount = valDecCount > stepDecCount ? valDecCount : stepDecCount; const valInt = Number.parseInt(val.toFixed(decCount).replace(".", "")); const stepInt = Number.parseInt(step.toFixed(decCount).replace(".", "")); return valInt % stepInt / 10 ** decCount; } var ZodNumber2 = class _ZodNumber extends ZodType2 { constructor() { super(...arguments); this.min = this.gte; this.max = this.lte; this.step = this.multipleOf; } _parse(input2) { if (this._def.coerce) { input2.data = Number(input2.data); } const parsedType2 = this._getType(input2); if (parsedType2 !== ZodParsedType.number) { const ctx2 = this._getOrReturnCtx(input2); addIssueToContext(ctx2, { code: ZodIssueCode2.invalid_type, expected: ZodParsedType.number, received: ctx2.parsedType }); return INVALID2; } let ctx = void 0; const status = new ParseStatus(); for (const check2 of this._def.checks) { if (check2.kind === "int") { if (!util.isInteger(input2.data)) { ctx = this._getOrReturnCtx(input2, ctx); addIssueToContext(ctx, { code: ZodIssueCode2.invalid_type, expected: "integer", received: "float", message: check2.message }); status.dirty(); } } else if (check2.kind === "min") { const tooSmall = check2.inclusive ? input2.data < check2.value : input2.data <= check2.value; if (tooSmall) { ctx = this._getOrReturnCtx(input2, ctx); addIssueToContext(ctx, { code: ZodIssueCode2.too_small, minimum: check2.value, type: "number", inclusive: check2.inclusive, exact: false, message: check2.message }); status.dirty(); } } else if (check2.kind === "max") { const tooBig = check2.inclusive ? input2.data > check2.value : input2.data >= check2.value; if (tooBig) { ctx = this._getOrReturnCtx(input2, ctx); addIssueToContext(ctx, { code: ZodIssueCode2.too_big, maximum: check2.value, type: "number", inclusive: check2.inclusive, exact: false, message: check2.message }); status.dirty(); } } else if (check2.kind === "multipleOf") { if (floatSafeRemainder2(input2.data, check2.value) !== 0) { ctx = this._getOrReturnCtx(input2, ctx); addIssueToContext(ctx, { code: ZodIssueCode2.not_multiple_of, multipleOf: check2.value, message: check2.message }); status.dirty(); } } else if (check2.kind === "finite") { if (!Number.isFinite(input2.data)) { ctx = this._getOrReturnCtx(input2, ctx); addIssueToContext(ctx, { code: ZodIssueCode2.not_finite, message: check2.message }); status.dirty(); } } else { util.assertNever(check2); } } return { status: status.value, value: input2.data }; } gte(value, message) { return this.setLimit("min", value, true, errorUtil.toString(message)); } gt(value, message) { return this.setLimit("min", value, false, errorUtil.toString(message)); } lte(value, message) { return this.setLimit("max", value, true, errorUtil.toString(message)); } lt(value, message) { return this.setLimit("max", value, false, errorUtil.toString(message)); } setLimit(kind, value, inclusive, message) { return new _ZodNumber({ ...this._def, checks: [ ...this._def.checks, { kind, value, inclusive, message: errorUtil.toString(message) } ] }); } _addCheck(check2) { return new _ZodNumber({ ...this._def, checks: [...this._def.checks, check2] }); } int(message) { return this._addCheck({ kind: "int", message: errorUtil.toString(message) }); } positive(message) { return this._addCheck({ kind: "min", value: 0, inclusive: false, message: errorUtil.toString(message) }); } negative(message) { return this._addCheck({ kind: "max", value: 0, inclusive: false, message: errorUtil.toString(message) }); } nonpositive(message) { return this._addCheck({ kind: "max", value: 0, inclusive: true, message: errorUtil.toString(message) }); } nonnegative(message) { return this._addCheck({ kind: "min", value: 0, inclusive: true, message: errorUtil.toString(message) }); } multipleOf(value, message) { return this._addCheck({ kind: "multipleOf", value, message: errorUtil.toString(message) }); } finite(message) { return this._addCheck({ kind: "finite", message: errorUtil.toString(message) }); } safe(message) { return this._addCheck({ kind: "min", inclusive: true, value: Number.MIN_SAFE_INTEGER, message: errorUtil.toString(message) })._addCheck({ kind: "max", inclusive: true, value: Number.MAX_SAFE_INTEGER, message: errorUtil.toString(message) }); } get minValue() { let min = null; for (const ch of this._def.checks) { if (ch.kind === "min") { if (min === null || ch.value > min) min = ch.value; } } return min; } get maxValue() { let max = null; for (const ch of this._def.checks) { if (ch.kind === "max") { if (max === null || ch.value < max) max = ch.value; } } return max; } get isInt() { return !!this._def.checks.find((ch) => ch.kind === "int" || ch.kind === "multipleOf" && util.isInteger(ch.value)); } get isFinite() { let max = null; let min = null; for (const ch of this._def.checks) { if (ch.kind === "finite" || ch.kind === "int" || ch.kind === "multipleOf") { return true; } else if (ch.kind === "min") { if (min === null || ch.value > min) min = ch.value; } else if (ch.kind === "max") { if (max === null || ch.value < max) max = ch.value; } } return Number.isFinite(min) && Number.isFinite(max); } }; ZodNumber2.create = (params) => { return new ZodNumber2({ checks: [], typeName: ZodFirstPartyTypeKind2.ZodNumber, coerce: params?.coerce || false, ...processCreateParams(params) }); }; var ZodBigInt2 = class _ZodBigInt extends ZodType2 { constructor() { super(...arguments); this.min = this.gte; this.max = this.lte; } _parse(input2) { if (this._def.coerce) { try { input2.data = BigInt(input2.data); } catch { return this._getInvalidInput(input2); } } const parsedType2 = this._getType(input2); if (parsedType2 !== ZodParsedType.bigint) { return this._getInvalidInput(input2); } let ctx = void 0; const status = new ParseStatus(); for (const check2 of this._def.checks) { if (check2.kind === "min") { const tooSmall = check2.inclusive ? input2.data < check2.value : input2.data <= check2.value; if (tooSmall) { ctx = this._getOrReturnCtx(input2, ctx); addIssueToContext(ctx, { code: ZodIssueCode2.too_small, type: "bigint", minimum: check2.value, inclusive: check2.inclusive, message: check2.message }); status.dirty(); } } else if (check2.kind === "max") { const tooBig = check2.inclusive ? input2.data > check2.value : input2.data >= check2.value; if (tooBig) { ctx = this._getOrReturnCtx(input2, ctx); addIssueToContext(ctx, { code: ZodIssueCode2.too_big, type: "bigint", maximum: check2.value, inclusive: check2.inclusive, message: check2.message }); status.dirty(); } } else if (check2.kind === "multipleOf") { if (input2.data % check2.value !== BigInt(0)) { ctx = this._getOrReturnCtx(input2, ctx); addIssueToContext(ctx, { code: ZodIssueCode2.not_multiple_of, multipleOf: check2.value, message: check2.message }); status.dirty(); } } else { util.assertNever(check2); } } return { status: status.value, value: input2.data }; } _getInvalidInput(input2) { const ctx = this._getOrReturnCtx(input2); addIssueToContext(ctx, { code: ZodIssueCode2.invalid_type, expected: ZodParsedType.bigint, received: ctx.parsedType }); return INVALID2; } gte(value, message) { return this.setLimit("min", value, true, errorUtil.toString(message)); } gt(value, message) { return this.setLimit("min", value, false, errorUtil.toString(message)); } lte(value, message) { return this.setLimit("max", value, true, errorUtil.toString(message)); } lt(value, message) { return this.setLimit("max", value, false, errorUtil.toString(message)); } setLimit(kind, value, inclusive, message) { return new _ZodBigInt({ ...this._def, checks: [ ...this._def.checks, { kind, value, inclusive, message: errorUtil.toString(message) } ] }); } _addCheck(check2) { return new _ZodBigInt({ ...this._def, checks: [...this._def.checks, check2] }); } positive(message) { return this._addCheck({ kind: "min", value: BigInt(0), inclusive: false, message: errorUtil.toString(message) }); } negative(message) { return this._addCheck({ kind: "max", value: BigInt(0), inclusive: false, message: errorUtil.toString(message) }); } nonpositive(message) { return this._addCheck({ kind: "max", value: BigInt(0), inclusive: true, message: errorUtil.toString(message) }); } nonnegative(message) { return this._addCheck({ kind: "min", value: BigInt(0), inclusive: true, message: errorUtil.toString(message) }); } multipleOf(value, message) { return this._addCheck({ kind: "multipleOf", value, message: errorUtil.toString(message) }); } get minValue() { let min = null; for (const ch of this._def.checks) { if (ch.kind === "min") { if (min === null || ch.value > min) min = ch.value; } } return min; } get maxValue() { let max = null; for (const ch of this._def.checks) { if (ch.kind === "max") { if (max === null || ch.value < max) max = ch.value; } } return max; } }; ZodBigInt2.create = (params) => { return new ZodBigInt2({ checks: [], typeName: ZodFirstPartyTypeKind2.ZodBigInt, coerce: params?.coerce ?? false, ...processCreateParams(params) }); }; var ZodBoolean2 = class extends ZodType2 { _parse(input2) { if (this._def.coerce) { input2.data = Boolean(input2.data); } const parsedType2 = this._getType(input2); if (parsedType2 !== ZodParsedType.boolean) { const ctx = this._getOrReturnCtx(input2); addIssueToContext(ctx, { code: ZodIssueCode2.invalid_type, expected: ZodParsedType.boolean, received: ctx.parsedType }); return INVALID2; } return OK(input2.data); } }; ZodBoolean2.create = (params) => { return new ZodBoolean2({ typeName: ZodFirstPartyTypeKind2.ZodBoolean, coerce: params?.coerce || false, ...processCreateParams(params) }); }; var ZodDate2 = class _ZodDate extends ZodType2 { _parse(input2) { if (this._def.coerce) { input2.data = new Date(input2.data); } const parsedType2 = this._getType(input2); if (parsedType2 !== ZodParsedType.date) { const ctx2 = this._getOrReturnCtx(input2); addIssueToContext(ctx2, { code: ZodIssueCode2.invalid_type, expected: ZodParsedType.date, received: ctx2.parsedType }); return INVALID2; } if (Number.isNaN(input2.data.getTime())) { const ctx2 = this._getOrReturnCtx(input2); addIssueToContext(ctx2, { code: ZodIssueCode2.invalid_date }); return INVALID2; } const status = new ParseStatus(); let ctx = void 0; for (const check2 of this._def.checks) { if (check2.kind === "min") { if (input2.data.getTime() < check2.value) { ctx = this._getOrReturnCtx(input2, ctx); addIssueToContext(ctx, { code: ZodIssueCode2.too_small, message: check2.message, inclusive: true, exact: false, minimum: check2.value, type: "date" }); status.dirty(); } } else if (check2.kind === "max") { if (input2.data.getTime() > check2.value) { ctx = this._getOrReturnCtx(input2, ctx); addIssueToContext(ctx, { code: ZodIssueCode2.too_big, message: check2.message, inclusive: true, exact: false, maximum: check2.value, type: "date" }); status.dirty(); } } else { util.assertNever(check2); } } return { status: status.value, value: new Date(input2.data.getTime()) }; } _addCheck(check2) { return new _ZodDate({ ...this._def, checks: [...this._def.checks, check2] }); } min(minDate, message) { return this._addCheck({ kind: "min", value: minDate.getTime(), message: errorUtil.toString(message) }); } max(maxDate, message) { return this._addCheck({ kind: "max", value: maxDate.getTime(), message: errorUtil.toString(message) }); } get minDate() { let min = null; for (const ch of this._def.checks) { if (ch.kind === "min") { if (min === null || ch.value > min) min = ch.value; } } return min != null ? new Date(min) : null; } get maxDate() { let max = null; for (const ch of this._def.checks) { if (ch.kind === "max") { if (max === null || ch.value < max) max = ch.value; } } return max != null ? new Date(max) : null; } }; ZodDate2.create = (params) => { return new ZodDate2({ checks: [], coerce: params?.coerce || false, typeName: ZodFirstPartyTypeKind2.ZodDate, ...processCreateParams(params) }); }; var ZodSymbol2 = class extends ZodType2 { _parse(input2) { const parsedType2 = this._getType(input2); if (parsedType2 !== ZodParsedType.symbol) { const ctx = this._getOrReturnCtx(input2); addIssueToContext(ctx, { code: ZodIssueCode2.invalid_type, expected: ZodParsedType.symbol, received: ctx.parsedType }); return INVALID2; } return OK(input2.data); } }; ZodSymbol2.create = (params) => { return new ZodSymbol2({ typeName: ZodFirstPartyTypeKind2.ZodSymbol, ...processCreateParams(params) }); }; var ZodUndefined2 = class extends ZodType2 { _parse(input2) { const parsedType2 = this._getType(input2); if (parsedType2 !== ZodParsedType.undefined) { const ctx = this._getOrReturnCtx(input2); addIssueToContext(ctx, { code: ZodIssueCode2.invalid_type, expected: ZodParsedType.undefined, received: ctx.parsedType }); return INVALID2; } return OK(input2.data); } }; ZodUndefined2.create = (params) => { return new ZodUndefined2({ typeName: ZodFirstPartyTypeKind2.ZodUndefined, ...processCreateParams(params) }); }; var ZodNull2 = class extends ZodType2 { _parse(input2) { const parsedType2 = this._getType(input2); if (parsedType2 !== ZodParsedType.null) { const ctx = this._getOrReturnCtx(input2); addIssueToContext(ctx, { code: ZodIssueCode2.invalid_type, expected: ZodParsedType.null, received: ctx.parsedType }); return INVALID2; } return OK(input2.data); } }; ZodNull2.create = (params) => { return new ZodNull2({ typeName: ZodFirstPartyTypeKind2.ZodNull, ...processCreateParams(params) }); }; var ZodAny2 = class extends ZodType2 { constructor() { super(...arguments); this._any = true; } _parse(input2) { return OK(input2.data); } }; ZodAny2.create = (params) => { return new ZodAny2({ typeName: ZodFirstPartyTypeKind2.ZodAny, ...processCreateParams(params) }); }; var ZodUnknown2 = class extends ZodType2 { constructor() { super(...arguments); this._unknown = true; } _parse(input2) { return OK(input2.data); } }; ZodUnknown2.create = (params) => { return new ZodUnknown2({ typeName: ZodFirstPartyTypeKind2.ZodUnknown, ...processCreateParams(params) }); }; var ZodNever2 = class extends ZodType2 { _parse(input2) { const ctx = this._getOrReturnCtx(input2); addIssueToContext(ctx, { code: ZodIssueCode2.invalid_type, expected: ZodParsedType.never, received: ctx.parsedType }); return INVALID2; } }; ZodNever2.create = (params) => { return new ZodNever2({ typeName: ZodFirstPartyTypeKind2.ZodNever, ...processCreateParams(params) }); }; var ZodVoid2 = class extends ZodType2 { _parse(input2) { const parsedType2 = this._getType(input2); if (parsedType2 !== ZodParsedType.undefined) { const ctx = this._getOrReturnCtx(input2); addIssueToContext(ctx, { code: ZodIssueCode2.invalid_type, expected: ZodParsedType.void, received: ctx.parsedType }); return INVALID2; } return OK(input2.data); } }; ZodVoid2.create = (params) => { return new ZodVoid2({ typeName: ZodFirstPartyTypeKind2.ZodVoid, ...processCreateParams(params) }); }; var ZodArray2 = class _ZodArray extends ZodType2 { _parse(input2) { const { ctx, status } = this._processInputParams(input2); const def = this._def; if (ctx.parsedType !== ZodParsedType.array) { addIssueToContext(ctx, { code: ZodIssueCode2.invalid_type, expected: ZodParsedType.array, received: ctx.parsedType }); return INVALID2; } if (def.exactLength !== null) { const tooBig = ctx.data.length > def.exactLength.value; const tooSmall = ctx.data.length < def.exactLength.value; if (tooBig || tooSmall) { addIssueToContext(ctx, { code: tooBig ? ZodIssueCode2.too_big : ZodIssueCode2.too_small, minimum: tooSmall ? def.exactLength.value : void 0, maximum: tooBig ? def.exactLength.value : void 0, type: "array", inclusive: true, exact: true, message: def.exactLength.message }); status.dirty(); } } if (def.minLength !== null) { if (ctx.data.length < def.minLength.value) { addIssueToContext(ctx, { code: ZodIssueCode2.too_small, minimum: def.minLength.value, type: "array", inclusive: true, exact: false, message: def.minLength.message }); status.dirty(); } } if (def.maxLength !== null) { if (ctx.data.length > def.maxLength.value) { addIssueToContext(ctx, { code: ZodIssueCode2.too_big, maximum: def.maxLength.value, type: "array", inclusive: true, exact: false, message: def.maxLength.message }); status.dirty(); } } if (ctx.common.async) { return Promise.all([...ctx.data].map((item, i) => { return def.type._parseAsync(new ParseInputLazyPath(ctx, item, ctx.path, i)); })).then((result2) => { return ParseStatus.mergeArray(status, result2); }); } const result = [...ctx.data].map((item, i) => { return def.type._parseSync(new ParseInputLazyPath(ctx, item, ctx.path, i)); }); return ParseStatus.mergeArray(status, result); } get element() { return this._def.type; } min(minLength, message) { return new _ZodArray({ ...this._def, minLength: { value: minLength, message: errorUtil.toString(message) } }); } max(maxLength, message) { return new _ZodArray({ ...this._def, maxLength: { value: maxLength, message: errorUtil.toString(message) } }); } length(len, message) { return new _ZodArray({ ...this._def, exactLength: { value: len, message: errorUtil.toString(message) } }); } nonempty(message) { return this.min(1, message); } }; ZodArray2.create = (schema, params) => { return new ZodArray2({ type: schema, minLength: null, maxLength: null, exactLength: null, typeName: ZodFirstPartyTypeKind2.ZodArray, ...processCreateParams(params) }); }; function deepPartialify(schema) { if (schema instanceof ZodObject2) { const newShape = {}; for (const key in schema.shape) { const fieldSchema = schema.shape[key]; newShape[key] = ZodOptional2.create(deepPartialify(fieldSchema)); } return new ZodObject2({ ...schema._def, shape: () => newShape }); } else if (schema instanceof ZodArray2) { return new ZodArray2({ ...schema._def, type: deepPartialify(schema.element) }); } else if (schema instanceof ZodOptional2) { return ZodOptional2.create(deepPartialify(schema.unwrap())); } else if (schema instanceof ZodNullable2) { return ZodNullable2.create(deepPartialify(schema.unwrap())); } else if (schema instanceof ZodTuple2) { return ZodTuple2.create(schema.items.map((item) => deepPartialify(item))); } else { return schema; } } var ZodObject2 = class _ZodObject extends ZodType2 { constructor() { super(...arguments); this._cached = null; this.nonstrict = this.passthrough; this.augment = this.extend; } _getCached() { if (this._cached !== null) return this._cached; const shape = this._def.shape(); const keys = util.objectKeys(shape); this._cached = { shape, keys }; return this._cached; } _parse(input2) { const parsedType2 = this._getType(input2); if (parsedType2 !== ZodParsedType.object) { const ctx2 = this._getOrReturnCtx(input2); addIssueToContext(ctx2, { code: ZodIssueCode2.invalid_type, expected: ZodParsedType.object, received: ctx2.parsedType }); return INVALID2; } const { status, ctx } = this._processInputParams(input2); const { shape, keys: shapeKeys2 } = this._getCached(); const extraKeys = []; if (!(this._def.catchall instanceof ZodNever2 && this._def.unknownKeys === "strip")) { for (const key in ctx.data) { if (!shapeKeys2.includes(key)) { extraKeys.push(key); } } } const pairs = []; for (const key of shapeKeys2) { const keyValidator = shape[key]; const value = ctx.data[key]; pairs.push({ key: { status: "valid", value: key }, value: keyValidator._parse(new ParseInputLazyPath(ctx, value, ctx.path, key)), alwaysSet: key in ctx.data }); } if (this._def.catchall instanceof ZodNever2) { const unknownKeys = this._def.unknownKeys; if (unknownKeys === "passthrough") { for (const key of extraKeys) { pairs.push({ key: { status: "valid", value: key }, value: { status: "valid", value: ctx.data[key] } }); } } else if (unknownKeys === "strict") { if (extraKeys.length > 0) { addIssueToContext(ctx, { code: ZodIssueCode2.unrecognized_keys, keys: extraKeys }); status.dirty(); } } else if (unknownKeys === "strip") { } else { throw new Error(`Internal ZodObject error: invalid unknownKeys value.`); } } else { const catchall = this._def.catchall; for (const key of extraKeys) { const value = ctx.data[key]; pairs.push({ key: { status: "valid", value: key }, value: catchall._parse( new ParseInputLazyPath(ctx, value, ctx.path, key) //, ctx.child(key), value, getParsedType(value) ), alwaysSet: key in ctx.data }); } } if (ctx.common.async) { return Promise.resolve().then(async () => { const syncPairs = []; for (const pair of pairs) { const key = await pair.key; const value = await pair.value; syncPairs.push({ key, value, alwaysSet: pair.alwaysSet }); } return syncPairs; }).then((syncPairs) => { return ParseStatus.mergeObjectSync(status, syncPairs); }); } else { return ParseStatus.mergeObjectSync(status, pairs); } } get shape() { return this._def.shape(); } strict(message) { errorUtil.errToObj; return new _ZodObject({ ...this._def, unknownKeys: "strict", ...message !== void 0 ? { errorMap: (issue2, ctx) => { const defaultError = this._def.errorMap?.(issue2, ctx).message ?? ctx.defaultError; if (issue2.code === "unrecognized_keys") return { message: errorUtil.errToObj(message).message ?? defaultError }; return { message: defaultError }; } } : {} }); } strip() { return new _ZodObject({ ...this._def, unknownKeys: "strip" }); } passthrough() { return new _ZodObject({ ...this._def, unknownKeys: "passthrough" }); } // const AugmentFactory = // (def: Def) => // ( // augmentation: Augmentation // ): ZodObject< // extendShape, Augmentation>, // Def["unknownKeys"], // Def["catchall"] // > => { // return new ZodObject({ // ...def, // shape: () => ({ // ...def.shape(), // ...augmentation, // }), // }) as any; // }; extend(augmentation) { return new _ZodObject({ ...this._def, shape: () => ({ ...this._def.shape(), ...augmentation }) }); } /** * Prior to zod@1.0.12 there was a bug in the * inferred type of merged objects. Please * upgrade if you are experiencing issues. */ merge(merging) { const merged = new _ZodObject({ unknownKeys: merging._def.unknownKeys, catchall: merging._def.catchall, shape: () => ({ ...this._def.shape(), ...merging._def.shape() }), typeName: ZodFirstPartyTypeKind2.ZodObject }); return merged; } // merge< // Incoming extends AnyZodObject, // Augmentation extends Incoming["shape"], // NewOutput extends { // [k in keyof Augmentation | keyof Output]: k extends keyof Augmentation // ? Augmentation[k]["_output"] // : k extends keyof Output // ? Output[k] // : never; // }, // NewInput extends { // [k in keyof Augmentation | keyof Input]: k extends keyof Augmentation // ? Augmentation[k]["_input"] // : k extends keyof Input // ? Input[k] // : never; // } // >( // merging: Incoming // ): ZodObject< // extendShape>, // Incoming["_def"]["unknownKeys"], // Incoming["_def"]["catchall"], // NewOutput, // NewInput // > { // const merged: any = new ZodObject({ // unknownKeys: merging._def.unknownKeys, // catchall: merging._def.catchall, // shape: () => // objectUtil.mergeShapes(this._def.shape(), merging._def.shape()), // typeName: ZodFirstPartyTypeKind.ZodObject, // }) as any; // return merged; // } setKey(key, schema) { return this.augment({ [key]: schema }); } // merge( // merging: Incoming // ): //ZodObject = (merging) => { // ZodObject< // extendShape>, // Incoming["_def"]["unknownKeys"], // Incoming["_def"]["catchall"] // > { // // const mergedShape = objectUtil.mergeShapes( // // this._def.shape(), // // merging._def.shape() // // ); // const merged: any = new ZodObject({ // unknownKeys: merging._def.unknownKeys, // catchall: merging._def.catchall, // shape: () => // objectUtil.mergeShapes(this._def.shape(), merging._def.shape()), // typeName: ZodFirstPartyTypeKind.ZodObject, // }) as any; // return merged; // } catchall(index) { return new _ZodObject({ ...this._def, catchall: index }); } pick(mask) { const shape = {}; for (const key of util.objectKeys(mask)) { if (mask[key] && this.shape[key]) { shape[key] = this.shape[key]; } } return new _ZodObject({ ...this._def, shape: () => shape }); } omit(mask) { const shape = {}; for (const key of util.objectKeys(this.shape)) { if (!mask[key]) { shape[key] = this.shape[key]; } } return new _ZodObject({ ...this._def, shape: () => shape }); } /** * @deprecated */ deepPartial() { return deepPartialify(this); } partial(mask) { const newShape = {}; for (const key of util.objectKeys(this.shape)) { const fieldSchema = this.shape[key]; if (mask && !mask[key]) { newShape[key] = fieldSchema; } else { newShape[key] = fieldSchema.optional(); } } return new _ZodObject({ ...this._def, shape: () => newShape }); } required(mask) { const newShape = {}; for (const key of util.objectKeys(this.shape)) { if (mask && !mask[key]) { newShape[key] = this.shape[key]; } else { const fieldSchema = this.shape[key]; let newField = fieldSchema; while (newField instanceof ZodOptional2) { newField = newField._def.innerType; } newShape[key] = newField; } } return new _ZodObject({ ...this._def, shape: () => newShape }); } keyof() { return createZodEnum(util.objectKeys(this.shape)); } }; ZodObject2.create = (shape, params) => { return new ZodObject2({ shape: () => shape, unknownKeys: "strip", catchall: ZodNever2.create(), typeName: ZodFirstPartyTypeKind2.ZodObject, ...processCreateParams(params) }); }; ZodObject2.strictCreate = (shape, params) => { return new ZodObject2({ shape: () => shape, unknownKeys: "strict", catchall: ZodNever2.create(), typeName: ZodFirstPartyTypeKind2.ZodObject, ...processCreateParams(params) }); }; ZodObject2.lazycreate = (shape, params) => { return new ZodObject2({ shape, unknownKeys: "strip", catchall: ZodNever2.create(), typeName: ZodFirstPartyTypeKind2.ZodObject, ...processCreateParams(params) }); }; var ZodUnion2 = class extends ZodType2 { _parse(input2) { const { ctx } = this._processInputParams(input2); const options = this._def.options; function handleResults(results) { for (const result of results) { if (result.result.status === "valid") { return result.result; } } for (const result of results) { if (result.result.status === "dirty") { ctx.common.issues.push(...result.ctx.common.issues); return result.result; } } const unionErrors = results.map((result) => new ZodError2(result.ctx.common.issues)); addIssueToContext(ctx, { code: ZodIssueCode2.invalid_union, unionErrors }); return INVALID2; } if (ctx.common.async) { return Promise.all(options.map(async (option) => { const childCtx = { ...ctx, common: { ...ctx.common, issues: [] }, parent: null }; return { result: await option._parseAsync({ data: ctx.data, path: ctx.path, parent: childCtx }), ctx: childCtx }; })).then(handleResults); } else { let dirty = void 0; const issues = []; for (const option of options) { const childCtx = { ...ctx, common: { ...ctx.common, issues: [] }, parent: null }; const result = option._parseSync({ data: ctx.data, path: ctx.path, parent: childCtx }); if (result.status === "valid") { return result; } else if (result.status === "dirty" && !dirty) { dirty = { result, ctx: childCtx }; } if (childCtx.common.issues.length) { issues.push(childCtx.common.issues); } } if (dirty) { ctx.common.issues.push(...dirty.ctx.common.issues); return dirty.result; } const unionErrors = issues.map((issues2) => new ZodError2(issues2)); addIssueToContext(ctx, { code: ZodIssueCode2.invalid_union, unionErrors }); return INVALID2; } } get options() { return this._def.options; } }; ZodUnion2.create = (types, params) => { return new ZodUnion2({ options: types, typeName: ZodFirstPartyTypeKind2.ZodUnion, ...processCreateParams(params) }); }; var getDiscriminator = (type) => { if (type instanceof ZodLazy2) { return getDiscriminator(type.schema); } else if (type instanceof ZodEffects) { return getDiscriminator(type.innerType()); } else if (type instanceof ZodLiteral2) { return [type.value]; } else if (type instanceof ZodEnum2) { return type.options; } else if (type instanceof ZodNativeEnum) { return util.objectValues(type.enum); } else if (type instanceof ZodDefault2) { return getDiscriminator(type._def.innerType); } else if (type instanceof ZodUndefined2) { return [void 0]; } else if (type instanceof ZodNull2) { return [null]; } else if (type instanceof ZodOptional2) { return [void 0, ...getDiscriminator(type.unwrap())]; } else if (type instanceof ZodNullable2) { return [null, ...getDiscriminator(type.unwrap())]; } else if (type instanceof ZodBranded) { return getDiscriminator(type.unwrap()); } else if (type instanceof ZodReadonly2) { return getDiscriminator(type.unwrap()); } else if (type instanceof ZodCatch2) { return getDiscriminator(type._def.innerType); } else { return []; } }; var ZodDiscriminatedUnion2 = class _ZodDiscriminatedUnion extends ZodType2 { _parse(input2) { const { ctx } = this._processInputParams(input2); if (ctx.parsedType !== ZodParsedType.object) { addIssueToContext(ctx, { code: ZodIssueCode2.invalid_type, expected: ZodParsedType.object, received: ctx.parsedType }); return INVALID2; } const discriminator = this.discriminator; const discriminatorValue = ctx.data[discriminator]; const option = this.optionsMap.get(discriminatorValue); if (!option) { addIssueToContext(ctx, { code: ZodIssueCode2.invalid_union_discriminator, options: Array.from(this.optionsMap.keys()), path: [discriminator] }); return INVALID2; } if (ctx.common.async) { return option._parseAsync({ data: ctx.data, path: ctx.path, parent: ctx }); } else { return option._parseSync({ data: ctx.data, path: ctx.path, parent: ctx }); } } get discriminator() { return this._def.discriminator; } get options() { return this._def.options; } get optionsMap() { return this._def.optionsMap; } /** * The constructor of the discriminated union schema. Its behaviour is very similar to that of the normal z.union() constructor. * However, it only allows a union of objects, all of which need to share a discriminator property. This property must * have a different value for each object in the union. * @param discriminator the name of the discriminator property * @param types an array of object schemas * @param params */ static create(discriminator, options, params) { const optionsMap = /* @__PURE__ */ new Map(); for (const type of options) { const discriminatorValues = getDiscriminator(type.shape[discriminator]); if (!discriminatorValues.length) { throw new Error(`A discriminator value for key \`${discriminator}\` could not be extracted from all schema options`); } for (const value of discriminatorValues) { if (optionsMap.has(value)) { throw new Error(`Discriminator property ${String(discriminator)} has duplicate value ${String(value)}`); } optionsMap.set(value, type); } } return new _ZodDiscriminatedUnion({ typeName: ZodFirstPartyTypeKind2.ZodDiscriminatedUnion, discriminator, options, optionsMap, ...processCreateParams(params) }); } }; function mergeValues2(a, b) { const aType = getParsedType2(a); const bType = getParsedType2(b); if (a === b) { return { valid: true, data: a }; } else if (aType === ZodParsedType.object && bType === ZodParsedType.object) { const bKeys = util.objectKeys(b); const sharedKeys = util.objectKeys(a).filter((key) => bKeys.indexOf(key) !== -1); const newObj = { ...a, ...b }; for (const key of sharedKeys) { const sharedValue = mergeValues2(a[key], b[key]); if (!sharedValue.valid) { return { valid: false }; } newObj[key] = sharedValue.data; } return { valid: true, data: newObj }; } else if (aType === ZodParsedType.array && bType === ZodParsedType.array) { if (a.length !== b.length) { return { valid: false }; } const newArray = []; for (let index = 0; index < a.length; index++) { const itemA = a[index]; const itemB = b[index]; const sharedValue = mergeValues2(itemA, itemB); if (!sharedValue.valid) { return { valid: false }; } newArray.push(sharedValue.data); } return { valid: true, data: newArray }; } else if (aType === ZodParsedType.date && bType === ZodParsedType.date && +a === +b) { return { valid: true, data: a }; } else { return { valid: false }; } } var ZodIntersection2 = class extends ZodType2 { _parse(input2) { const { status, ctx } = this._processInputParams(input2); const handleParsed = (parsedLeft, parsedRight) => { if (isAborted(parsedLeft) || isAborted(parsedRight)) { return INVALID2; } const merged = mergeValues2(parsedLeft.value, parsedRight.value); if (!merged.valid) { addIssueToContext(ctx, { code: ZodIssueCode2.invalid_intersection_types }); return INVALID2; } if (isDirty(parsedLeft) || isDirty(parsedRight)) { status.dirty(); } return { status: status.value, value: merged.data }; }; if (ctx.common.async) { return Promise.all([ this._def.left._parseAsync({ data: ctx.data, path: ctx.path, parent: ctx }), this._def.right._parseAsync({ data: ctx.data, path: ctx.path, parent: ctx }) ]).then(([left, right]) => handleParsed(left, right)); } else { return handleParsed(this._def.left._parseSync({ data: ctx.data, path: ctx.path, parent: ctx }), this._def.right._parseSync({ data: ctx.data, path: ctx.path, parent: ctx })); } } }; ZodIntersection2.create = (left, right, params) => { return new ZodIntersection2({ left, right, typeName: ZodFirstPartyTypeKind2.ZodIntersection, ...processCreateParams(params) }); }; var ZodTuple2 = class _ZodTuple extends ZodType2 { _parse(input2) { const { status, ctx } = this._processInputParams(input2); if (ctx.parsedType !== ZodParsedType.array) { addIssueToContext(ctx, { code: ZodIssueCode2.invalid_type, expected: ZodParsedType.array, received: ctx.parsedType }); return INVALID2; } if (ctx.data.length < this._def.items.length) { addIssueToContext(ctx, { code: ZodIssueCode2.too_small, minimum: this._def.items.length, inclusive: true, exact: false, type: "array" }); return INVALID2; } const rest = this._def.rest; if (!rest && ctx.data.length > this._def.items.length) { addIssueToContext(ctx, { code: ZodIssueCode2.too_big, maximum: this._def.items.length, inclusive: true, exact: false, type: "array" }); status.dirty(); } const items = [...ctx.data].map((item, itemIndex) => { const schema = this._def.items[itemIndex] || this._def.rest; if (!schema) return null; return schema._parse(new ParseInputLazyPath(ctx, item, ctx.path, itemIndex)); }).filter((x) => !!x); if (ctx.common.async) { return Promise.all(items).then((results) => { return ParseStatus.mergeArray(status, results); }); } else { return ParseStatus.mergeArray(status, items); } } get items() { return this._def.items; } rest(rest) { return new _ZodTuple({ ...this._def, rest }); } }; ZodTuple2.create = (schemas, params) => { if (!Array.isArray(schemas)) { throw new Error("You must pass an array of schemas to z.tuple([ ... ])"); } return new ZodTuple2({ items: schemas, typeName: ZodFirstPartyTypeKind2.ZodTuple, rest: null, ...processCreateParams(params) }); }; var ZodRecord2 = class _ZodRecord extends ZodType2 { get keySchema() { return this._def.keyType; } get valueSchema() { return this._def.valueType; } _parse(input2) { const { status, ctx } = this._processInputParams(input2); if (ctx.parsedType !== ZodParsedType.object) { addIssueToContext(ctx, { code: ZodIssueCode2.invalid_type, expected: ZodParsedType.object, received: ctx.parsedType }); return INVALID2; } const pairs = []; const keyType = this._def.keyType; const valueType = this._def.valueType; for (const key in ctx.data) { pairs.push({ key: keyType._parse(new ParseInputLazyPath(ctx, key, ctx.path, key)), value: valueType._parse(new ParseInputLazyPath(ctx, ctx.data[key], ctx.path, key)), alwaysSet: key in ctx.data }); } if (ctx.common.async) { return ParseStatus.mergeObjectAsync(status, pairs); } else { return ParseStatus.mergeObjectSync(status, pairs); } } get element() { return this._def.valueType; } static create(first, second, third) { if (second instanceof ZodType2) { return new _ZodRecord({ keyType: first, valueType: second, typeName: ZodFirstPartyTypeKind2.ZodRecord, ...processCreateParams(third) }); } return new _ZodRecord({ keyType: ZodString2.create(), valueType: first, typeName: ZodFirstPartyTypeKind2.ZodRecord, ...processCreateParams(second) }); } }; var ZodMap2 = class extends ZodType2 { get keySchema() { return this._def.keyType; } get valueSchema() { return this._def.valueType; } _parse(input2) { const { status, ctx } = this._processInputParams(input2); if (ctx.parsedType !== ZodParsedType.map) { addIssueToContext(ctx, { code: ZodIssueCode2.invalid_type, expected: ZodParsedType.map, received: ctx.parsedType }); return INVALID2; } const keyType = this._def.keyType; const valueType = this._def.valueType; const pairs = [...ctx.data.entries()].map(([key, value], index) => { return { key: keyType._parse(new ParseInputLazyPath(ctx, key, ctx.path, [index, "key"])), value: valueType._parse(new ParseInputLazyPath(ctx, value, ctx.path, [index, "value"])) }; }); if (ctx.common.async) { const finalMap = /* @__PURE__ */ new Map(); return Promise.resolve().then(async () => { for (const pair of pairs) { const key = await pair.key; const value = await pair.value; if (key.status === "aborted" || value.status === "aborted") { return INVALID2; } if (key.status === "dirty" || value.status === "dirty") { status.dirty(); } finalMap.set(key.value, value.value); } return { status: status.value, value: finalMap }; }); } else { const finalMap = /* @__PURE__ */ new Map(); for (const pair of pairs) { const key = pair.key; const value = pair.value; if (key.status === "aborted" || value.status === "aborted") { return INVALID2; } if (key.status === "dirty" || value.status === "dirty") { status.dirty(); } finalMap.set(key.value, value.value); } return { status: status.value, value: finalMap }; } } }; ZodMap2.create = (keyType, valueType, params) => { return new ZodMap2({ valueType, keyType, typeName: ZodFirstPartyTypeKind2.ZodMap, ...processCreateParams(params) }); }; var ZodSet2 = class _ZodSet extends ZodType2 { _parse(input2) { const { status, ctx } = this._processInputParams(input2); if (ctx.parsedType !== ZodParsedType.set) { addIssueToContext(ctx, { code: ZodIssueCode2.invalid_type, expected: ZodParsedType.set, received: ctx.parsedType }); return INVALID2; } const def = this._def; if (def.minSize !== null) { if (ctx.data.size < def.minSize.value) { addIssueToContext(ctx, { code: ZodIssueCode2.too_small, minimum: def.minSize.value, type: "set", inclusive: true, exact: false, message: def.minSize.message }); status.dirty(); } } if (def.maxSize !== null) { if (ctx.data.size > def.maxSize.value) { addIssueToContext(ctx, { code: ZodIssueCode2.too_big, maximum: def.maxSize.value, type: "set", inclusive: true, exact: false, message: def.maxSize.message }); status.dirty(); } } const valueType = this._def.valueType; function finalizeSet(elements2) { const parsedSet = /* @__PURE__ */ new Set(); for (const element of elements2) { if (element.status === "aborted") return INVALID2; if (element.status === "dirty") status.dirty(); parsedSet.add(element.value); } return { status: status.value, value: parsedSet }; } const elements = [...ctx.data.values()].map((item, i) => valueType._parse(new ParseInputLazyPath(ctx, item, ctx.path, i))); if (ctx.common.async) { return Promise.all(elements).then((elements2) => finalizeSet(elements2)); } else { return finalizeSet(elements); } } min(minSize, message) { return new _ZodSet({ ...this._def, minSize: { value: minSize, message: errorUtil.toString(message) } }); } max(maxSize, message) { return new _ZodSet({ ...this._def, maxSize: { value: maxSize, message: errorUtil.toString(message) } }); } size(size, message) { return this.min(size, message).max(size, message); } nonempty(message) { return this.min(1, message); } }; ZodSet2.create = (valueType, params) => { return new ZodSet2({ valueType, minSize: null, maxSize: null, typeName: ZodFirstPartyTypeKind2.ZodSet, ...processCreateParams(params) }); }; var ZodFunction2 = class _ZodFunction extends ZodType2 { constructor() { super(...arguments); this.validate = this.implement; } _parse(input2) { const { ctx } = this._processInputParams(input2); if (ctx.parsedType !== ZodParsedType.function) { addIssueToContext(ctx, { code: ZodIssueCode2.invalid_type, expected: ZodParsedType.function, received: ctx.parsedType }); return INVALID2; } function makeArgsIssue(args, error62) { return makeIssue({ data: args, path: ctx.path, errorMaps: [ctx.common.contextualErrorMap, ctx.schemaErrorMap, getErrorMap2(), en_default2].filter((x) => !!x), issueData: { code: ZodIssueCode2.invalid_arguments, argumentsError: error62 } }); } function makeReturnsIssue(returns, error62) { return makeIssue({ data: returns, path: ctx.path, errorMaps: [ctx.common.contextualErrorMap, ctx.schemaErrorMap, getErrorMap2(), en_default2].filter((x) => !!x), issueData: { code: ZodIssueCode2.invalid_return_type, returnTypeError: error62 } }); } const params = { errorMap: ctx.common.contextualErrorMap }; const fn = ctx.data; if (this._def.returns instanceof ZodPromise2) { const me = this; return OK(async function(...args) { const error62 = new ZodError2([]); const parsedArgs = await me._def.args.parseAsync(args, params).catch((e) => { error62.addIssue(makeArgsIssue(args, e)); throw error62; }); const result = await Reflect.apply(fn, this, parsedArgs); const parsedReturns = await me._def.returns._def.type.parseAsync(result, params).catch((e) => { error62.addIssue(makeReturnsIssue(result, e)); throw error62; }); return parsedReturns; }); } else { const me = this; return OK(function(...args) { const parsedArgs = me._def.args.safeParse(args, params); if (!parsedArgs.success) { throw new ZodError2([makeArgsIssue(args, parsedArgs.error)]); } const result = Reflect.apply(fn, this, parsedArgs.data); const parsedReturns = me._def.returns.safeParse(result, params); if (!parsedReturns.success) { throw new ZodError2([makeReturnsIssue(result, parsedReturns.error)]); } return parsedReturns.data; }); } } parameters() { return this._def.args; } returnType() { return this._def.returns; } args(...items) { return new _ZodFunction({ ...this._def, args: ZodTuple2.create(items).rest(ZodUnknown2.create()) }); } returns(returnType) { return new _ZodFunction({ ...this._def, returns: returnType }); } implement(func) { const validatedFunc = this.parse(func); return validatedFunc; } strictImplement(func) { const validatedFunc = this.parse(func); return validatedFunc; } static create(args, returns, params) { return new _ZodFunction({ args: args ? args : ZodTuple2.create([]).rest(ZodUnknown2.create()), returns: returns || ZodUnknown2.create(), typeName: ZodFirstPartyTypeKind2.ZodFunction, ...processCreateParams(params) }); } }; var ZodLazy2 = class extends ZodType2 { get schema() { return this._def.getter(); } _parse(input2) { const { ctx } = this._processInputParams(input2); const lazySchema = this._def.getter(); return lazySchema._parse({ data: ctx.data, path: ctx.path, parent: ctx }); } }; ZodLazy2.create = (getter, params) => { return new ZodLazy2({ getter, typeName: ZodFirstPartyTypeKind2.ZodLazy, ...processCreateParams(params) }); }; var ZodLiteral2 = class extends ZodType2 { _parse(input2) { if (input2.data !== this._def.value) { const ctx = this._getOrReturnCtx(input2); addIssueToContext(ctx, { received: ctx.data, code: ZodIssueCode2.invalid_literal, expected: this._def.value }); return INVALID2; } return { status: "valid", value: input2.data }; } get value() { return this._def.value; } }; ZodLiteral2.create = (value, params) => { return new ZodLiteral2({ value, typeName: ZodFirstPartyTypeKind2.ZodLiteral, ...processCreateParams(params) }); }; function createZodEnum(values, params) { return new ZodEnum2({ values, typeName: ZodFirstPartyTypeKind2.ZodEnum, ...processCreateParams(params) }); } var ZodEnum2 = class _ZodEnum extends ZodType2 { _parse(input2) { if (typeof input2.data !== "string") { const ctx = this._getOrReturnCtx(input2); const expectedValues = this._def.values; addIssueToContext(ctx, { expected: util.joinValues(expectedValues), received: ctx.parsedType, code: ZodIssueCode2.invalid_type }); return INVALID2; } if (!this._cache) { this._cache = new Set(this._def.values); } if (!this._cache.has(input2.data)) { const ctx = this._getOrReturnCtx(input2); const expectedValues = this._def.values; addIssueToContext(ctx, { received: ctx.data, code: ZodIssueCode2.invalid_enum_value, options: expectedValues }); return INVALID2; } return OK(input2.data); } get options() { return this._def.values; } get enum() { const enumValues = {}; for (const val of this._def.values) { enumValues[val] = val; } return enumValues; } get Values() { const enumValues = {}; for (const val of this._def.values) { enumValues[val] = val; } return enumValues; } get Enum() { const enumValues = {}; for (const val of this._def.values) { enumValues[val] = val; } return enumValues; } extract(values, newDef = this._def) { return _ZodEnum.create(values, { ...this._def, ...newDef }); } exclude(values, newDef = this._def) { return _ZodEnum.create(this.options.filter((opt) => !values.includes(opt)), { ...this._def, ...newDef }); } }; ZodEnum2.create = createZodEnum; var ZodNativeEnum = class extends ZodType2 { _parse(input2) { const nativeEnumValues = util.getValidEnumValues(this._def.values); const ctx = this._getOrReturnCtx(input2); if (ctx.parsedType !== ZodParsedType.string && ctx.parsedType !== ZodParsedType.number) { const expectedValues = util.objectValues(nativeEnumValues); addIssueToContext(ctx, { expected: util.joinValues(expectedValues), received: ctx.parsedType, code: ZodIssueCode2.invalid_type }); return INVALID2; } if (!this._cache) { this._cache = new Set(util.getValidEnumValues(this._def.values)); } if (!this._cache.has(input2.data)) { const expectedValues = util.objectValues(nativeEnumValues); addIssueToContext(ctx, { received: ctx.data, code: ZodIssueCode2.invalid_enum_value, options: expectedValues }); return INVALID2; } return OK(input2.data); } get enum() { return this._def.values; } }; ZodNativeEnum.create = (values, params) => { return new ZodNativeEnum({ values, typeName: ZodFirstPartyTypeKind2.ZodNativeEnum, ...processCreateParams(params) }); }; var ZodPromise2 = class extends ZodType2 { unwrap() { return this._def.type; } _parse(input2) { const { ctx } = this._processInputParams(input2); if (ctx.parsedType !== ZodParsedType.promise && ctx.common.async === false) { addIssueToContext(ctx, { code: ZodIssueCode2.invalid_type, expected: ZodParsedType.promise, received: ctx.parsedType }); return INVALID2; } const promisified = ctx.parsedType === ZodParsedType.promise ? ctx.data : Promise.resolve(ctx.data); return OK(promisified.then((data) => { return this._def.type.parseAsync(data, { path: ctx.path, errorMap: ctx.common.contextualErrorMap }); })); } }; ZodPromise2.create = (schema, params) => { return new ZodPromise2({ type: schema, typeName: ZodFirstPartyTypeKind2.ZodPromise, ...processCreateParams(params) }); }; var ZodEffects = class extends ZodType2 { innerType() { return this._def.schema; } sourceType() { return this._def.schema._def.typeName === ZodFirstPartyTypeKind2.ZodEffects ? this._def.schema.sourceType() : this._def.schema; } _parse(input2) { const { status, ctx } = this._processInputParams(input2); const effect = this._def.effect || null; const checkCtx = { addIssue: (arg) => { addIssueToContext(ctx, arg); if (arg.fatal) { status.abort(); } else { status.dirty(); } }, get path() { return ctx.path; } }; checkCtx.addIssue = checkCtx.addIssue.bind(checkCtx); if (effect.type === "preprocess") { const processed = effect.transform(ctx.data, checkCtx); if (ctx.common.async) { return Promise.resolve(processed).then(async (processed2) => { if (status.value === "aborted") return INVALID2; const result = await this._def.schema._parseAsync({ data: processed2, path: ctx.path, parent: ctx }); if (result.status === "aborted") return INVALID2; if (result.status === "dirty") return DIRTY(result.value); if (status.value === "dirty") return DIRTY(result.value); return result; }); } else { if (status.value === "aborted") return INVALID2; const result = this._def.schema._parseSync({ data: processed, path: ctx.path, parent: ctx }); if (result.status === "aborted") return INVALID2; if (result.status === "dirty") return DIRTY(result.value); if (status.value === "dirty") return DIRTY(result.value); return result; } } if (effect.type === "refinement") { const executeRefinement = (acc) => { const result = effect.refinement(acc, checkCtx); if (ctx.common.async) { return Promise.resolve(result); } if (result instanceof Promise) { throw new Error("Async refinement encountered during synchronous parse operation. Use .parseAsync instead."); } return acc; }; if (ctx.common.async === false) { const inner = this._def.schema._parseSync({ data: ctx.data, path: ctx.path, parent: ctx }); if (inner.status === "aborted") return INVALID2; if (inner.status === "dirty") status.dirty(); executeRefinement(inner.value); return { status: status.value, value: inner.value }; } else { return this._def.schema._parseAsync({ data: ctx.data, path: ctx.path, parent: ctx }).then((inner) => { if (inner.status === "aborted") return INVALID2; if (inner.status === "dirty") status.dirty(); return executeRefinement(inner.value).then(() => { return { status: status.value, value: inner.value }; }); }); } } if (effect.type === "transform") { if (ctx.common.async === false) { const base = this._def.schema._parseSync({ data: ctx.data, path: ctx.path, parent: ctx }); if (!isValid(base)) return INVALID2; const result = effect.transform(base.value, checkCtx); if (result instanceof Promise) { throw new Error(`Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.`); } return { status: status.value, value: result }; } else { return this._def.schema._parseAsync({ data: ctx.data, path: ctx.path, parent: ctx }).then((base) => { if (!isValid(base)) return INVALID2; return Promise.resolve(effect.transform(base.value, checkCtx)).then((result) => ({ status: status.value, value: result })); }); } } util.assertNever(effect); } }; ZodEffects.create = (schema, effect, params) => { return new ZodEffects({ schema, typeName: ZodFirstPartyTypeKind2.ZodEffects, effect, ...processCreateParams(params) }); }; ZodEffects.createWithPreprocess = (preprocess2, schema, params) => { return new ZodEffects({ schema, effect: { type: "preprocess", transform: preprocess2 }, typeName: ZodFirstPartyTypeKind2.ZodEffects, ...processCreateParams(params) }); }; var ZodOptional2 = class extends ZodType2 { _parse(input2) { const parsedType2 = this._getType(input2); if (parsedType2 === ZodParsedType.undefined) { return OK(void 0); } return this._def.innerType._parse(input2); } unwrap() { return this._def.innerType; } }; ZodOptional2.create = (type, params) => { return new ZodOptional2({ innerType: type, typeName: ZodFirstPartyTypeKind2.ZodOptional, ...processCreateParams(params) }); }; var ZodNullable2 = class extends ZodType2 { _parse(input2) { const parsedType2 = this._getType(input2); if (parsedType2 === ZodParsedType.null) { return OK(null); } return this._def.innerType._parse(input2); } unwrap() { return this._def.innerType; } }; ZodNullable2.create = (type, params) => { return new ZodNullable2({ innerType: type, typeName: ZodFirstPartyTypeKind2.ZodNullable, ...processCreateParams(params) }); }; var ZodDefault2 = class extends ZodType2 { _parse(input2) { const { ctx } = this._processInputParams(input2); let data = ctx.data; if (ctx.parsedType === ZodParsedType.undefined) { data = this._def.defaultValue(); } return this._def.innerType._parse({ data, path: ctx.path, parent: ctx }); } removeDefault() { return this._def.innerType; } }; ZodDefault2.create = (type, params) => { return new ZodDefault2({ innerType: type, typeName: ZodFirstPartyTypeKind2.ZodDefault, defaultValue: typeof params.default === "function" ? params.default : () => params.default, ...processCreateParams(params) }); }; var ZodCatch2 = class extends ZodType2 { _parse(input2) { const { ctx } = this._processInputParams(input2); const newCtx = { ...ctx, common: { ...ctx.common, issues: [] } }; const result = this._def.innerType._parse({ data: newCtx.data, path: newCtx.path, parent: { ...newCtx } }); if (isAsync(result)) { return result.then((result2) => { return { status: "valid", value: result2.status === "valid" ? result2.value : this._def.catchValue({ get error() { return new ZodError2(newCtx.common.issues); }, input: newCtx.data }) }; }); } else { return { status: "valid", value: result.status === "valid" ? result.value : this._def.catchValue({ get error() { return new ZodError2(newCtx.common.issues); }, input: newCtx.data }) }; } } removeCatch() { return this._def.innerType; } }; ZodCatch2.create = (type, params) => { return new ZodCatch2({ innerType: type, typeName: ZodFirstPartyTypeKind2.ZodCatch, catchValue: typeof params.catch === "function" ? params.catch : () => params.catch, ...processCreateParams(params) }); }; var ZodNaN2 = class extends ZodType2 { _parse(input2) { const parsedType2 = this._getType(input2); if (parsedType2 !== ZodParsedType.nan) { const ctx = this._getOrReturnCtx(input2); addIssueToContext(ctx, { code: ZodIssueCode2.invalid_type, expected: ZodParsedType.nan, received: ctx.parsedType }); return INVALID2; } return { status: "valid", value: input2.data }; } }; ZodNaN2.create = (params) => { return new ZodNaN2({ typeName: ZodFirstPartyTypeKind2.ZodNaN, ...processCreateParams(params) }); }; var BRAND = Symbol("zod_brand"); var ZodBranded = class extends ZodType2 { _parse(input2) { const { ctx } = this._processInputParams(input2); const data = ctx.data; return this._def.type._parse({ data, path: ctx.path, parent: ctx }); } unwrap() { return this._def.type; } }; var ZodPipeline = class _ZodPipeline extends ZodType2 { _parse(input2) { const { status, ctx } = this._processInputParams(input2); if (ctx.common.async) { const handleAsync = async () => { const inResult = await this._def.in._parseAsync({ data: ctx.data, path: ctx.path, parent: ctx }); if (inResult.status === "aborted") return INVALID2; if (inResult.status === "dirty") { status.dirty(); return DIRTY(inResult.value); } else { return this._def.out._parseAsync({ data: inResult.value, path: ctx.path, parent: ctx }); } }; return handleAsync(); } else { const inResult = this._def.in._parseSync({ data: ctx.data, path: ctx.path, parent: ctx }); if (inResult.status === "aborted") return INVALID2; if (inResult.status === "dirty") { status.dirty(); return { status: "dirty", value: inResult.value }; } else { return this._def.out._parseSync({ data: inResult.value, path: ctx.path, parent: ctx }); } } } static create(a, b) { return new _ZodPipeline({ in: a, out: b, typeName: ZodFirstPartyTypeKind2.ZodPipeline }); } }; var ZodReadonly2 = class extends ZodType2 { _parse(input2) { const result = this._def.innerType._parse(input2); const freeze = (data) => { if (isValid(data)) { data.value = Object.freeze(data.value); } return data; }; return isAsync(result) ? result.then((data) => freeze(data)) : freeze(result); } unwrap() { return this._def.innerType; } }; ZodReadonly2.create = (type, params) => { return new ZodReadonly2({ innerType: type, typeName: ZodFirstPartyTypeKind2.ZodReadonly, ...processCreateParams(params) }); }; function cleanParams(params, data) { const p = typeof params === "function" ? params(data) : typeof params === "string" ? { message: params } : params; const p2 = typeof p === "string" ? { message: p } : p; return p2; } function custom2(check2, _params = {}, fatal) { if (check2) return ZodAny2.create().superRefine((data, ctx) => { const r = check2(data); if (r instanceof Promise) { return r.then((r2) => { if (!r2) { const params = cleanParams(_params, data); const _fatal = params.fatal ?? fatal ?? true; ctx.addIssue({ code: "custom", ...params, fatal: _fatal }); } }); } if (!r) { const params = cleanParams(_params, data); const _fatal = params.fatal ?? fatal ?? true; ctx.addIssue({ code: "custom", ...params, fatal: _fatal }); } return; }); return ZodAny2.create(); } var late = { object: ZodObject2.lazycreate }; var ZodFirstPartyTypeKind2; (function(ZodFirstPartyTypeKind4) { ZodFirstPartyTypeKind4["ZodString"] = "ZodString"; ZodFirstPartyTypeKind4["ZodNumber"] = "ZodNumber"; ZodFirstPartyTypeKind4["ZodNaN"] = "ZodNaN"; ZodFirstPartyTypeKind4["ZodBigInt"] = "ZodBigInt"; ZodFirstPartyTypeKind4["ZodBoolean"] = "ZodBoolean"; ZodFirstPartyTypeKind4["ZodDate"] = "ZodDate"; ZodFirstPartyTypeKind4["ZodSymbol"] = "ZodSymbol"; ZodFirstPartyTypeKind4["ZodUndefined"] = "ZodUndefined"; ZodFirstPartyTypeKind4["ZodNull"] = "ZodNull"; ZodFirstPartyTypeKind4["ZodAny"] = "ZodAny"; ZodFirstPartyTypeKind4["ZodUnknown"] = "ZodUnknown"; ZodFirstPartyTypeKind4["ZodNever"] = "ZodNever"; ZodFirstPartyTypeKind4["ZodVoid"] = "ZodVoid"; ZodFirstPartyTypeKind4["ZodArray"] = "ZodArray"; ZodFirstPartyTypeKind4["ZodObject"] = "ZodObject"; ZodFirstPartyTypeKind4["ZodUnion"] = "ZodUnion"; ZodFirstPartyTypeKind4["ZodDiscriminatedUnion"] = "ZodDiscriminatedUnion"; ZodFirstPartyTypeKind4["ZodIntersection"] = "ZodIntersection"; ZodFirstPartyTypeKind4["ZodTuple"] = "ZodTuple"; ZodFirstPartyTypeKind4["ZodRecord"] = "ZodRecord"; ZodFirstPartyTypeKind4["ZodMap"] = "ZodMap"; ZodFirstPartyTypeKind4["ZodSet"] = "ZodSet"; ZodFirstPartyTypeKind4["ZodFunction"] = "ZodFunction"; ZodFirstPartyTypeKind4["ZodLazy"] = "ZodLazy"; ZodFirstPartyTypeKind4["ZodLiteral"] = "ZodLiteral"; ZodFirstPartyTypeKind4["ZodEnum"] = "ZodEnum"; ZodFirstPartyTypeKind4["ZodEffects"] = "ZodEffects"; ZodFirstPartyTypeKind4["ZodNativeEnum"] = "ZodNativeEnum"; ZodFirstPartyTypeKind4["ZodOptional"] = "ZodOptional"; ZodFirstPartyTypeKind4["ZodNullable"] = "ZodNullable"; ZodFirstPartyTypeKind4["ZodDefault"] = "ZodDefault"; ZodFirstPartyTypeKind4["ZodCatch"] = "ZodCatch"; ZodFirstPartyTypeKind4["ZodPromise"] = "ZodPromise"; ZodFirstPartyTypeKind4["ZodBranded"] = "ZodBranded"; ZodFirstPartyTypeKind4["ZodPipeline"] = "ZodPipeline"; ZodFirstPartyTypeKind4["ZodReadonly"] = "ZodReadonly"; })(ZodFirstPartyTypeKind2 || (ZodFirstPartyTypeKind2 = {})); var instanceOfType = (cls, params = { message: `Input not instance of ${cls.name}` }) => custom2((data) => data instanceof cls, params); var stringType = ZodString2.create; var numberType = ZodNumber2.create; var nanType = ZodNaN2.create; var bigIntType = ZodBigInt2.create; var booleanType = ZodBoolean2.create; var dateType = ZodDate2.create; var symbolType = ZodSymbol2.create; var undefinedType = ZodUndefined2.create; var nullType = ZodNull2.create; var anyType = ZodAny2.create; var unknownType = ZodUnknown2.create; var neverType = ZodNever2.create; var voidType = ZodVoid2.create; var arrayType = ZodArray2.create; var objectType = ZodObject2.create; var strictObjectType = ZodObject2.strictCreate; var unionType = ZodUnion2.create; var discriminatedUnionType = ZodDiscriminatedUnion2.create; var intersectionType = ZodIntersection2.create; var tupleType = ZodTuple2.create; var recordType = ZodRecord2.create; var mapType = ZodMap2.create; var setType = ZodSet2.create; var functionType = ZodFunction2.create; var lazyType = ZodLazy2.create; var literalType = ZodLiteral2.create; var enumType = ZodEnum2.create; var nativeEnumType = ZodNativeEnum.create; var promiseType = ZodPromise2.create; var effectsType = ZodEffects.create; var optionalType = ZodOptional2.create; var nullableType = ZodNullable2.create; var preprocessType = ZodEffects.createWithPreprocess; var pipelineType = ZodPipeline.create; var ostring = () => stringType().optional(); var onumber = () => numberType().optional(); var oboolean = () => booleanType().optional(); var coerce = { string: ((arg) => ZodString2.create({ ...arg, coerce: true })), number: ((arg) => ZodNumber2.create({ ...arg, coerce: true })), boolean: ((arg) => ZodBoolean2.create({ ...arg, coerce: true })), bigint: ((arg) => ZodBigInt2.create({ ...arg, coerce: true })), date: ((arg) => ZodDate2.create({ ...arg, coerce: true })) }; var NEVER2 = INVALID2; // ../../../../node_modules/zod-to-json-schema/dist/esm/Options.js var ignoreOverride = Symbol("Let zodToJsonSchema decide on which parser to use"); var defaultOptions = { name: void 0, $refStrategy: "root", basePath: ["#"], effectStrategy: "input", pipeStrategy: "all", dateStrategy: "format:date-time", mapStrategy: "entries", removeAdditionalStrategy: "passthrough", allowedAdditionalProperties: true, rejectedAdditionalProperties: false, definitionPath: "definitions", target: "jsonSchema7", strictUnions: false, definitions: {}, errorMessages: false, markdownDescription: false, patternStrategy: "escape", applyRegexFlags: false, emailStrategy: "format:email", base64Strategy: "contentEncoding:base64", nameStrategy: "ref", openAiAnyTypeName: "OpenAiAnyType" }; var getDefaultOptions = (options) => typeof options === "string" ? { ...defaultOptions, name: options } : { ...defaultOptions, ...options }; // ../../../../node_modules/zod-to-json-schema/dist/esm/Refs.js var getRefs = (options) => { const _options = getDefaultOptions(options); const currentPath = _options.name !== void 0 ? [..._options.basePath, _options.definitionPath, _options.name] : _options.basePath; return { ..._options, flags: { hasReferencedOpenAiAnyType: false }, currentPath, propertyPath: void 0, seen: new Map(Object.entries(_options.definitions).map(([name, def]) => [ def._def, { def: def._def, path: [..._options.basePath, _options.definitionPath, name], // Resolution of references will be forced even though seen, so it's ok that the schema is undefined here for now. jsonSchema: void 0 } ])) }; }; // ../../../../node_modules/zod-to-json-schema/dist/esm/errorMessages.js function addErrorMessage(res, key, errorMessage, refs) { if (!refs?.errorMessages) return; if (errorMessage) { res.errorMessage = { ...res.errorMessage, [key]: errorMessage }; } } function setResponseValueAndErrors(res, key, value, errorMessage, refs) { res[key] = value; addErrorMessage(res, key, errorMessage, refs); } // ../../../../node_modules/zod-to-json-schema/dist/esm/getRelativePath.js var getRelativePath = (pathA, pathB) => { let i = 0; for (; i < pathA.length && i < pathB.length; i++) { if (pathA[i] !== pathB[i]) break; } return [(pathA.length - i).toString(), ...pathB.slice(i)].join("/"); }; // ../../../../node_modules/zod-to-json-schema/node_modules/zod/v3/helpers/util.js var util2; (function(util3) { util3.assertEqual = (_) => { }; function assertIs2(_arg) { } util3.assertIs = assertIs2; function assertNever2(_x) { throw new Error(); } util3.assertNever = assertNever2; util3.arrayToEnum = (items) => { const obj = {}; for (const item of items) { obj[item] = item; } return obj; }; util3.getValidEnumValues = (obj) => { const validKeys = util3.objectKeys(obj).filter((k) => typeof obj[obj[k]] !== "number"); const filtered = {}; for (const k of validKeys) { filtered[k] = obj[k]; } return util3.objectValues(filtered); }; util3.objectValues = (obj) => { return util3.objectKeys(obj).map(function(e) { return obj[e]; }); }; util3.objectKeys = typeof Object.keys === "function" ? (obj) => Object.keys(obj) : (object2) => { const keys = []; for (const key in object2) { if (Object.prototype.hasOwnProperty.call(object2, key)) { keys.push(key); } } return keys; }; util3.find = (arr, checker) => { for (const item of arr) { if (checker(item)) return item; } return void 0; }; util3.isInteger = typeof Number.isInteger === "function" ? (val) => Number.isInteger(val) : (val) => typeof val === "number" && Number.isFinite(val) && Math.floor(val) === val; function joinValues2(array2, separator = " | ") { return array2.map((val) => typeof val === "string" ? `'${val}'` : val).join(separator); } util3.joinValues = joinValues2; util3.jsonStringifyReplacer = (_, value) => { if (typeof value === "bigint") { return value.toString(); } return value; }; })(util2 || (util2 = {})); var objectUtil2; (function(objectUtil3) { objectUtil3.mergeShapes = (first, second) => { return { ...first, ...second // second overwrites first }; }; })(objectUtil2 || (objectUtil2 = {})); var ZodParsedType2 = util2.arrayToEnum([ "string", "nan", "number", "integer", "float", "boolean", "date", "bigint", "symbol", "function", "undefined", "null", "array", "object", "unknown", "promise", "void", "never", "map", "set" ]); var getParsedType3 = (data) => { const t = typeof data; switch (t) { case "undefined": return ZodParsedType2.undefined; case "string": return ZodParsedType2.string; case "number": return Number.isNaN(data) ? ZodParsedType2.nan : ZodParsedType2.number; case "boolean": return ZodParsedType2.boolean; case "function": return ZodParsedType2.function; case "bigint": return ZodParsedType2.bigint; case "symbol": return ZodParsedType2.symbol; case "object": if (Array.isArray(data)) { return ZodParsedType2.array; } if (data === null) { return ZodParsedType2.null; } if (data.then && typeof data.then === "function" && data.catch && typeof data.catch === "function") { return ZodParsedType2.promise; } if (typeof Map !== "undefined" && data instanceof Map) { return ZodParsedType2.map; } if (typeof Set !== "undefined" && data instanceof Set) { return ZodParsedType2.set; } if (typeof Date !== "undefined" && data instanceof Date) { return ZodParsedType2.date; } return ZodParsedType2.object; default: return ZodParsedType2.unknown; } }; // ../../../../node_modules/zod-to-json-schema/node_modules/zod/v3/ZodError.js var ZodIssueCode3 = util2.arrayToEnum([ "invalid_type", "invalid_literal", "custom", "invalid_union", "invalid_union_discriminator", "invalid_enum_value", "unrecognized_keys", "invalid_arguments", "invalid_return_type", "invalid_date", "invalid_string", "too_small", "too_big", "invalid_intersection_types", "not_multiple_of", "not_finite" ]); var ZodError3 = class _ZodError extends Error { get errors() { return this.issues; } constructor(issues) { super(); this.issues = []; this.addIssue = (sub) => { this.issues = [...this.issues, sub]; }; this.addIssues = (subs = []) => { this.issues = [...this.issues, ...subs]; }; const actualProto = new.target.prototype; if (Object.setPrototypeOf) { Object.setPrototypeOf(this, actualProto); } else { this.__proto__ = actualProto; } this.name = "ZodError"; this.issues = issues; } format(_mapper) { const mapper = _mapper || function(issue2) { return issue2.message; }; const fieldErrors = { _errors: [] }; const processError = (error62) => { for (const issue2 of error62.issues) { if (issue2.code === "invalid_union") { issue2.unionErrors.map(processError); } else if (issue2.code === "invalid_return_type") { processError(issue2.returnTypeError); } else if (issue2.code === "invalid_arguments") { processError(issue2.argumentsError); } else if (issue2.path.length === 0) { fieldErrors._errors.push(mapper(issue2)); } else { let curr = fieldErrors; let i = 0; while (i < issue2.path.length) { const el = issue2.path[i]; const terminal = i === issue2.path.length - 1; if (!terminal) { curr[el] = curr[el] || { _errors: [] }; } else { curr[el] = curr[el] || { _errors: [] }; curr[el]._errors.push(mapper(issue2)); } curr = curr[el]; i++; } } } }; processError(this); return fieldErrors; } static assert(value) { if (!(value instanceof _ZodError)) { throw new Error(`Not a ZodError: ${value}`); } } toString() { return this.message; } get message() { return JSON.stringify(this.issues, util2.jsonStringifyReplacer, 2); } get isEmpty() { return this.issues.length === 0; } flatten(mapper = (issue2) => issue2.message) { const fieldErrors = {}; const formErrors = []; for (const sub of this.issues) { if (sub.path.length > 0) { const firstEl = sub.path[0]; fieldErrors[firstEl] = fieldErrors[firstEl] || []; fieldErrors[firstEl].push(mapper(sub)); } else { formErrors.push(mapper(sub)); } } return { formErrors, fieldErrors }; } get formErrors() { return this.flatten(); } }; ZodError3.create = (issues) => { const error62 = new ZodError3(issues); return error62; }; // ../../../../node_modules/zod-to-json-schema/node_modules/zod/v3/locales/en.js var errorMap2 = (issue2, _ctx) => { let message; switch (issue2.code) { case ZodIssueCode3.invalid_type: if (issue2.received === ZodParsedType2.undefined) { message = "Required"; } else { message = `Expected ${issue2.expected}, received ${issue2.received}`; } break; case ZodIssueCode3.invalid_literal: message = `Invalid literal value, expected ${JSON.stringify(issue2.expected, util2.jsonStringifyReplacer)}`; break; case ZodIssueCode3.unrecognized_keys: message = `Unrecognized key(s) in object: ${util2.joinValues(issue2.keys, ", ")}`; break; case ZodIssueCode3.invalid_union: message = `Invalid input`; break; case ZodIssueCode3.invalid_union_discriminator: message = `Invalid discriminator value. Expected ${util2.joinValues(issue2.options)}`; break; case ZodIssueCode3.invalid_enum_value: message = `Invalid enum value. Expected ${util2.joinValues(issue2.options)}, received '${issue2.received}'`; break; case ZodIssueCode3.invalid_arguments: message = `Invalid function arguments`; break; case ZodIssueCode3.invalid_return_type: message = `Invalid function return type`; break; case ZodIssueCode3.invalid_date: message = `Invalid date`; break; case ZodIssueCode3.invalid_string: if (typeof issue2.validation === "object") { if ("includes" in issue2.validation) { message = `Invalid input: must include "${issue2.validation.includes}"`; if (typeof issue2.validation.position === "number") { message = `${message} at one or more positions greater than or equal to ${issue2.validation.position}`; } } else if ("startsWith" in issue2.validation) { message = `Invalid input: must start with "${issue2.validation.startsWith}"`; } else if ("endsWith" in issue2.validation) { message = `Invalid input: must end with "${issue2.validation.endsWith}"`; } else { util2.assertNever(issue2.validation); } } else if (issue2.validation !== "regex") { message = `Invalid ${issue2.validation}`; } else { message = "Invalid"; } break; case ZodIssueCode3.too_small: if (issue2.type === "array") message = `Array must contain ${issue2.exact ? "exactly" : issue2.inclusive ? `at least` : `more than`} ${issue2.minimum} element(s)`; else if (issue2.type === "string") message = `String must contain ${issue2.exact ? "exactly" : issue2.inclusive ? `at least` : `over`} ${issue2.minimum} character(s)`; else if (issue2.type === "number") message = `Number must be ${issue2.exact ? `exactly equal to ` : issue2.inclusive ? `greater than or equal to ` : `greater than `}${issue2.minimum}`; else if (issue2.type === "bigint") message = `Number must be ${issue2.exact ? `exactly equal to ` : issue2.inclusive ? `greater than or equal to ` : `greater than `}${issue2.minimum}`; else if (issue2.type === "date") message = `Date must be ${issue2.exact ? `exactly equal to ` : issue2.inclusive ? `greater than or equal to ` : `greater than `}${new Date(Number(issue2.minimum))}`; else message = "Invalid input"; break; case ZodIssueCode3.too_big: if (issue2.type === "array") message = `Array must contain ${issue2.exact ? `exactly` : issue2.inclusive ? `at most` : `less than`} ${issue2.maximum} element(s)`; else if (issue2.type === "string") message = `String must contain ${issue2.exact ? `exactly` : issue2.inclusive ? `at most` : `under`} ${issue2.maximum} character(s)`; else if (issue2.type === "number") message = `Number must be ${issue2.exact ? `exactly` : issue2.inclusive ? `less than or equal to` : `less than`} ${issue2.maximum}`; else if (issue2.type === "bigint") message = `BigInt must be ${issue2.exact ? `exactly` : issue2.inclusive ? `less than or equal to` : `less than`} ${issue2.maximum}`; else if (issue2.type === "date") message = `Date must be ${issue2.exact ? `exactly` : issue2.inclusive ? `smaller than or equal to` : `smaller than`} ${new Date(Number(issue2.maximum))}`; else message = "Invalid input"; break; case ZodIssueCode3.custom: message = `Invalid input`; break; case ZodIssueCode3.invalid_intersection_types: message = `Intersection results could not be merged`; break; case ZodIssueCode3.not_multiple_of: message = `Number must be a multiple of ${issue2.multipleOf}`; break; case ZodIssueCode3.not_finite: message = "Number must be finite"; break; default: message = _ctx.defaultError; util2.assertNever(issue2); } return { message }; }; var en_default3 = errorMap2; // ../../../../node_modules/zod-to-json-schema/node_modules/zod/v3/errors.js var overrideErrorMap2 = en_default3; function getErrorMap3() { return overrideErrorMap2; } // ../../../../node_modules/zod-to-json-schema/node_modules/zod/v3/helpers/parseUtil.js var makeIssue2 = (params) => { const { data, path, errorMaps, issueData } = params; const fullPath = [...path, ...issueData.path || []]; const fullIssue = { ...issueData, path: fullPath }; if (issueData.message !== void 0) { return { ...issueData, path: fullPath, message: issueData.message }; } let errorMessage = ""; const maps2 = errorMaps.filter((m) => !!m).slice().reverse(); for (const map2 of maps2) { errorMessage = map2(fullIssue, { data, defaultError: errorMessage }).message; } return { ...issueData, path: fullPath, message: errorMessage }; }; function addIssueToContext2(ctx, issueData) { const overrideMap = getErrorMap3(); const issue2 = makeIssue2({ issueData, data: ctx.data, path: ctx.path, errorMaps: [ ctx.common.contextualErrorMap, // contextual error map is first priority ctx.schemaErrorMap, // then schema-bound map if available overrideMap, // then global override map overrideMap === en_default3 ? void 0 : en_default3 // then global default map ].filter((x) => !!x) }); ctx.common.issues.push(issue2); } var ParseStatus2 = class _ParseStatus { constructor() { this.value = "valid"; } dirty() { if (this.value === "valid") this.value = "dirty"; } abort() { if (this.value !== "aborted") this.value = "aborted"; } static mergeArray(status, results) { const arrayValue = []; for (const s of results) { if (s.status === "aborted") return INVALID3; if (s.status === "dirty") status.dirty(); arrayValue.push(s.value); } return { status: status.value, value: arrayValue }; } static async mergeObjectAsync(status, pairs) { const syncPairs = []; for (const pair of pairs) { const key = await pair.key; const value = await pair.value; syncPairs.push({ key, value }); } return _ParseStatus.mergeObjectSync(status, syncPairs); } static mergeObjectSync(status, pairs) { const finalObject = {}; for (const pair of pairs) { const { key, value } = pair; if (key.status === "aborted") return INVALID3; if (value.status === "aborted") return INVALID3; if (key.status === "dirty") status.dirty(); if (value.status === "dirty") status.dirty(); if (key.value !== "__proto__" && (typeof value.value !== "undefined" || pair.alwaysSet)) { finalObject[key.value] = value.value; } } return { status: status.value, value: finalObject }; } }; var INVALID3 = Object.freeze({ status: "aborted" }); var DIRTY2 = (value) => ({ status: "dirty", value }); var OK2 = (value) => ({ status: "valid", value }); var isAborted2 = (x) => x.status === "aborted"; var isDirty2 = (x) => x.status === "dirty"; var isValid2 = (x) => x.status === "valid"; var isAsync2 = (x) => typeof Promise !== "undefined" && x instanceof Promise; // ../../../../node_modules/zod-to-json-schema/node_modules/zod/v3/helpers/errorUtil.js var errorUtil2; (function(errorUtil3) { errorUtil3.errToObj = (message) => typeof message === "string" ? { message } : message || {}; errorUtil3.toString = (message) => typeof message === "string" ? message : message?.message; })(errorUtil2 || (errorUtil2 = {})); // ../../../../node_modules/zod-to-json-schema/node_modules/zod/v3/types.js var ParseInputLazyPath2 = class { constructor(parent, value, path, key) { this._cachedPath = []; this.parent = parent; this.data = value; this._path = path; this._key = key; } get path() { if (!this._cachedPath.length) { if (Array.isArray(this._key)) { this._cachedPath.push(...this._path, ...this._key); } else { this._cachedPath.push(...this._path, this._key); } } return this._cachedPath; } }; var handleResult2 = (ctx, result) => { if (isValid2(result)) { return { success: true, data: result.value }; } else { if (!ctx.common.issues.length) { throw new Error("Validation failed but no issues detected."); } return { success: false, get error() { if (this._error) return this._error; const error62 = new ZodError3(ctx.common.issues); this._error = error62; return this._error; } }; } }; function processCreateParams2(params) { if (!params) return {}; const { errorMap: errorMap3, invalid_type_error, required_error, description } = params; if (errorMap3 && (invalid_type_error || required_error)) { throw new Error(`Can't use "invalid_type_error" or "required_error" in conjunction with custom error map.`); } if (errorMap3) return { errorMap: errorMap3, description }; const customMap = (iss, ctx) => { const { message } = params; if (iss.code === "invalid_enum_value") { return { message: message ?? ctx.defaultError }; } if (typeof ctx.data === "undefined") { return { message: message ?? required_error ?? ctx.defaultError }; } if (iss.code !== "invalid_type") return { message: ctx.defaultError }; return { message: message ?? invalid_type_error ?? ctx.defaultError }; }; return { errorMap: customMap, description }; } var ZodType3 = class { get description() { return this._def.description; } _getType(input2) { return getParsedType3(input2.data); } _getOrReturnCtx(input2, ctx) { return ctx || { common: input2.parent.common, data: input2.data, parsedType: getParsedType3(input2.data), schemaErrorMap: this._def.errorMap, path: input2.path, parent: input2.parent }; } _processInputParams(input2) { return { status: new ParseStatus2(), ctx: { common: input2.parent.common, data: input2.data, parsedType: getParsedType3(input2.data), schemaErrorMap: this._def.errorMap, path: input2.path, parent: input2.parent } }; } _parseSync(input2) { const result = this._parse(input2); if (isAsync2(result)) { throw new Error("Synchronous parse encountered promise."); } return result; } _parseAsync(input2) { const result = this._parse(input2); return Promise.resolve(result); } parse(data, params) { const result = this.safeParse(data, params); if (result.success) return result.data; throw result.error; } safeParse(data, params) { const ctx = { common: { issues: [], async: params?.async ?? false, contextualErrorMap: params?.errorMap }, path: params?.path || [], schemaErrorMap: this._def.errorMap, parent: null, data, parsedType: getParsedType3(data) }; const result = this._parseSync({ data, path: ctx.path, parent: ctx }); return handleResult2(ctx, result); } "~validate"(data) { const ctx = { common: { issues: [], async: !!this["~standard"].async }, path: [], schemaErrorMap: this._def.errorMap, parent: null, data, parsedType: getParsedType3(data) }; if (!this["~standard"].async) { try { const result = this._parseSync({ data, path: [], parent: ctx }); return isValid2(result) ? { value: result.value } : { issues: ctx.common.issues }; } catch (err) { if (err?.message?.toLowerCase()?.includes("encountered")) { this["~standard"].async = true; } ctx.common = { issues: [], async: true }; } } return this._parseAsync({ data, path: [], parent: ctx }).then((result) => isValid2(result) ? { value: result.value } : { issues: ctx.common.issues }); } async parseAsync(data, params) { const result = await this.safeParseAsync(data, params); if (result.success) return result.data; throw result.error; } async safeParseAsync(data, params) { const ctx = { common: { issues: [], contextualErrorMap: params?.errorMap, async: true }, path: params?.path || [], schemaErrorMap: this._def.errorMap, parent: null, data, parsedType: getParsedType3(data) }; const maybeAsyncResult = this._parse({ data, path: ctx.path, parent: ctx }); const result = await (isAsync2(maybeAsyncResult) ? maybeAsyncResult : Promise.resolve(maybeAsyncResult)); return handleResult2(ctx, result); } refine(check2, message) { const getIssueProperties = (val) => { if (typeof message === "string" || typeof message === "undefined") { return { message }; } else if (typeof message === "function") { return message(val); } else { return message; } }; return this._refinement((val, ctx) => { const result = check2(val); const setError = () => ctx.addIssue({ code: ZodIssueCode3.custom, ...getIssueProperties(val) }); if (typeof Promise !== "undefined" && result instanceof Promise) { return result.then((data) => { if (!data) { setError(); return false; } else { return true; } }); } if (!result) { setError(); return false; } else { return true; } }); } refinement(check2, refinementData) { return this._refinement((val, ctx) => { if (!check2(val)) { ctx.addIssue(typeof refinementData === "function" ? refinementData(val, ctx) : refinementData); return false; } else { return true; } }); } _refinement(refinement) { return new ZodEffects2({ schema: this, typeName: ZodFirstPartyTypeKind3.ZodEffects, effect: { type: "refinement", refinement } }); } superRefine(refinement) { return this._refinement(refinement); } constructor(def) { this.spa = this.safeParseAsync; this._def = def; this.parse = this.parse.bind(this); this.safeParse = this.safeParse.bind(this); this.parseAsync = this.parseAsync.bind(this); this.safeParseAsync = this.safeParseAsync.bind(this); this.spa = this.spa.bind(this); this.refine = this.refine.bind(this); this.refinement = this.refinement.bind(this); this.superRefine = this.superRefine.bind(this); this.optional = this.optional.bind(this); this.nullable = this.nullable.bind(this); this.nullish = this.nullish.bind(this); this.array = this.array.bind(this); this.promise = this.promise.bind(this); this.or = this.or.bind(this); this.and = this.and.bind(this); this.transform = this.transform.bind(this); this.brand = this.brand.bind(this); this.default = this.default.bind(this); this.catch = this.catch.bind(this); this.describe = this.describe.bind(this); this.pipe = this.pipe.bind(this); this.readonly = this.readonly.bind(this); this.isNullable = this.isNullable.bind(this); this.isOptional = this.isOptional.bind(this); this["~standard"] = { version: 1, vendor: "zod", validate: (data) => this["~validate"](data) }; } optional() { return ZodOptional3.create(this, this._def); } nullable() { return ZodNullable3.create(this, this._def); } nullish() { return this.nullable().optional(); } array() { return ZodArray3.create(this); } promise() { return ZodPromise3.create(this, this._def); } or(option) { return ZodUnion3.create([this, option], this._def); } and(incoming) { return ZodIntersection3.create(this, incoming, this._def); } transform(transform2) { return new ZodEffects2({ ...processCreateParams2(this._def), schema: this, typeName: ZodFirstPartyTypeKind3.ZodEffects, effect: { type: "transform", transform: transform2 } }); } default(def) { const defaultValueFunc = typeof def === "function" ? def : () => def; return new ZodDefault3({ ...processCreateParams2(this._def), innerType: this, defaultValue: defaultValueFunc, typeName: ZodFirstPartyTypeKind3.ZodDefault }); } brand() { return new ZodBranded2({ typeName: ZodFirstPartyTypeKind3.ZodBranded, type: this, ...processCreateParams2(this._def) }); } catch(def) { const catchValueFunc = typeof def === "function" ? def : () => def; return new ZodCatch3({ ...processCreateParams2(this._def), innerType: this, catchValue: catchValueFunc, typeName: ZodFirstPartyTypeKind3.ZodCatch }); } describe(description) { const This = this.constructor; return new This({ ...this._def, description }); } pipe(target) { return ZodPipeline2.create(this, target); } readonly() { return ZodReadonly3.create(this); } isOptional() { return this.safeParse(void 0).success; } isNullable() { return this.safeParse(null).success; } }; var cuidRegex2 = /^c[^\s-]{8,}$/i; var cuid2Regex2 = /^[0-9a-z]+$/; var ulidRegex2 = /^[0-9A-HJKMNP-TV-Z]{26}$/i; var uuidRegex2 = /^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/i; var nanoidRegex2 = /^[a-z0-9_-]{21}$/i; var jwtRegex2 = /^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/; var durationRegex2 = /^[-+]?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)?)??$/; var emailRegex2 = /^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i; var _emojiRegex2 = `^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$`; var emojiRegex2; var ipv4Regex2 = /^(?:(?: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])$/; var ipv4CidrRegex2 = /^(?:(?: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])\/(3[0-2]|[12]?[0-9])$/; var ipv6Regex2 = /^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$/; var ipv6CidrRegex2 = /^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/; var base64Regex2 = /^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/; var base64urlRegex2 = /^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/; var dateRegexSource2 = `((\\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])))`; var dateRegex2 = new RegExp(`^${dateRegexSource2}$`); function timeRegexSource2(args) { let secondsRegexSource = `[0-5]\\d`; if (args.precision) { secondsRegexSource = `${secondsRegexSource}\\.\\d{${args.precision}}`; } else if (args.precision == null) { secondsRegexSource = `${secondsRegexSource}(\\.\\d+)?`; } const secondsQuantifier = args.precision ? "+" : "?"; return `([01]\\d|2[0-3]):[0-5]\\d(:${secondsRegexSource})${secondsQuantifier}`; } function timeRegex2(args) { return new RegExp(`^${timeRegexSource2(args)}$`); } function datetimeRegex2(args) { let regex = `${dateRegexSource2}T${timeRegexSource2(args)}`; const opts = []; opts.push(args.local ? `Z?` : `Z`); if (args.offset) opts.push(`([+-]\\d{2}:?\\d{2})`); regex = `${regex}(${opts.join("|")})`; return new RegExp(`^${regex}$`); } function isValidIP2(ip, version3) { if ((version3 === "v4" || !version3) && ipv4Regex2.test(ip)) { return true; } if ((version3 === "v6" || !version3) && ipv6Regex2.test(ip)) { return true; } return false; } function isValidJWT3(jwt2, alg) { if (!jwtRegex2.test(jwt2)) return false; try { const [header] = jwt2.split("."); if (!header) return false; const base643 = header.replace(/-/g, "+").replace(/_/g, "/").padEnd(header.length + (4 - header.length % 4) % 4, "="); const decoded = JSON.parse(atob(base643)); if (typeof decoded !== "object" || decoded === null) return false; if ("typ" in decoded && decoded?.typ !== "JWT") return false; if (!decoded.alg) return false; if (alg && decoded.alg !== alg) return false; return true; } catch { return false; } } function isValidCidr2(ip, version3) { if ((version3 === "v4" || !version3) && ipv4CidrRegex2.test(ip)) { return true; } if ((version3 === "v6" || !version3) && ipv6CidrRegex2.test(ip)) { return true; } return false; } var ZodString3 = class _ZodString2 extends ZodType3 { _parse(input2) { if (this._def.coerce) { input2.data = String(input2.data); } const parsedType2 = this._getType(input2); if (parsedType2 !== ZodParsedType2.string) { const ctx2 = this._getOrReturnCtx(input2); addIssueToContext2(ctx2, { code: ZodIssueCode3.invalid_type, expected: ZodParsedType2.string, received: ctx2.parsedType }); return INVALID3; } const status = new ParseStatus2(); let ctx = void 0; for (const check2 of this._def.checks) { if (check2.kind === "min") { if (input2.data.length < check2.value) { ctx = this._getOrReturnCtx(input2, ctx); addIssueToContext2(ctx, { code: ZodIssueCode3.too_small, minimum: check2.value, type: "string", inclusive: true, exact: false, message: check2.message }); status.dirty(); } } else if (check2.kind === "max") { if (input2.data.length > check2.value) { ctx = this._getOrReturnCtx(input2, ctx); addIssueToContext2(ctx, { code: ZodIssueCode3.too_big, maximum: check2.value, type: "string", inclusive: true, exact: false, message: check2.message }); status.dirty(); } } else if (check2.kind === "length") { const tooBig = input2.data.length > check2.value; const tooSmall = input2.data.length < check2.value; if (tooBig || tooSmall) { ctx = this._getOrReturnCtx(input2, ctx); if (tooBig) { addIssueToContext2(ctx, { code: ZodIssueCode3.too_big, maximum: check2.value, type: "string", inclusive: true, exact: true, message: check2.message }); } else if (tooSmall) { addIssueToContext2(ctx, { code: ZodIssueCode3.too_small, minimum: check2.value, type: "string", inclusive: true, exact: true, message: check2.message }); } status.dirty(); } } else if (check2.kind === "email") { if (!emailRegex2.test(input2.data)) { ctx = this._getOrReturnCtx(input2, ctx); addIssueToContext2(ctx, { validation: "email", code: ZodIssueCode3.invalid_string, message: check2.message }); status.dirty(); } } else if (check2.kind === "emoji") { if (!emojiRegex2) { emojiRegex2 = new RegExp(_emojiRegex2, "u"); } if (!emojiRegex2.test(input2.data)) { ctx = this._getOrReturnCtx(input2, ctx); addIssueToContext2(ctx, { validation: "emoji", code: ZodIssueCode3.invalid_string, message: check2.message }); status.dirty(); } } else if (check2.kind === "uuid") { if (!uuidRegex2.test(input2.data)) { ctx = this._getOrReturnCtx(input2, ctx); addIssueToContext2(ctx, { validation: "uuid", code: ZodIssueCode3.invalid_string, message: check2.message }); status.dirty(); } } else if (check2.kind === "nanoid") { if (!nanoidRegex2.test(input2.data)) { ctx = this._getOrReturnCtx(input2, ctx); addIssueToContext2(ctx, { validation: "nanoid", code: ZodIssueCode3.invalid_string, message: check2.message }); status.dirty(); } } else if (check2.kind === "cuid") { if (!cuidRegex2.test(input2.data)) { ctx = this._getOrReturnCtx(input2, ctx); addIssueToContext2(ctx, { validation: "cuid", code: ZodIssueCode3.invalid_string, message: check2.message }); status.dirty(); } } else if (check2.kind === "cuid2") { if (!cuid2Regex2.test(input2.data)) { ctx = this._getOrReturnCtx(input2, ctx); addIssueToContext2(ctx, { validation: "cuid2", code: ZodIssueCode3.invalid_string, message: check2.message }); status.dirty(); } } else if (check2.kind === "ulid") { if (!ulidRegex2.test(input2.data)) { ctx = this._getOrReturnCtx(input2, ctx); addIssueToContext2(ctx, { validation: "ulid", code: ZodIssueCode3.invalid_string, message: check2.message }); status.dirty(); } } else if (check2.kind === "url") { try { new URL(input2.data); } catch { ctx = this._getOrReturnCtx(input2, ctx); addIssueToContext2(ctx, { validation: "url", code: ZodIssueCode3.invalid_string, message: check2.message }); status.dirty(); } } else if (check2.kind === "regex") { check2.regex.lastIndex = 0; const testResult = check2.regex.test(input2.data); if (!testResult) { ctx = this._getOrReturnCtx(input2, ctx); addIssueToContext2(ctx, { validation: "regex", code: ZodIssueCode3.invalid_string, message: check2.message }); status.dirty(); } } else if (check2.kind === "trim") { input2.data = input2.data.trim(); } else if (check2.kind === "includes") { if (!input2.data.includes(check2.value, check2.position)) { ctx = this._getOrReturnCtx(input2, ctx); addIssueToContext2(ctx, { code: ZodIssueCode3.invalid_string, validation: { includes: check2.value, position: check2.position }, message: check2.message }); status.dirty(); } } else if (check2.kind === "toLowerCase") { input2.data = input2.data.toLowerCase(); } else if (check2.kind === "toUpperCase") { input2.data = input2.data.toUpperCase(); } else if (check2.kind === "startsWith") { if (!input2.data.startsWith(check2.value)) { ctx = this._getOrReturnCtx(input2, ctx); addIssueToContext2(ctx, { code: ZodIssueCode3.invalid_string, validation: { startsWith: check2.value }, message: check2.message }); status.dirty(); } } else if (check2.kind === "endsWith") { if (!input2.data.endsWith(check2.value)) { ctx = this._getOrReturnCtx(input2, ctx); addIssueToContext2(ctx, { code: ZodIssueCode3.invalid_string, validation: { endsWith: check2.value }, message: check2.message }); status.dirty(); } } else if (check2.kind === "datetime") { const regex = datetimeRegex2(check2); if (!regex.test(input2.data)) { ctx = this._getOrReturnCtx(input2, ctx); addIssueToContext2(ctx, { code: ZodIssueCode3.invalid_string, validation: "datetime", message: check2.message }); status.dirty(); } } else if (check2.kind === "date") { const regex = dateRegex2; if (!regex.test(input2.data)) { ctx = this._getOrReturnCtx(input2, ctx); addIssueToContext2(ctx, { code: ZodIssueCode3.invalid_string, validation: "date", message: check2.message }); status.dirty(); } } else if (check2.kind === "time") { const regex = timeRegex2(check2); if (!regex.test(input2.data)) { ctx = this._getOrReturnCtx(input2, ctx); addIssueToContext2(ctx, { code: ZodIssueCode3.invalid_string, validation: "time", message: check2.message }); status.dirty(); } } else if (check2.kind === "duration") { if (!durationRegex2.test(input2.data)) { ctx = this._getOrReturnCtx(input2, ctx); addIssueToContext2(ctx, { validation: "duration", code: ZodIssueCode3.invalid_string, message: check2.message }); status.dirty(); } } else if (check2.kind === "ip") { if (!isValidIP2(input2.data, check2.version)) { ctx = this._getOrReturnCtx(input2, ctx); addIssueToContext2(ctx, { validation: "ip", code: ZodIssueCode3.invalid_string, message: check2.message }); status.dirty(); } } else if (check2.kind === "jwt") { if (!isValidJWT3(input2.data, check2.alg)) { ctx = this._getOrReturnCtx(input2, ctx); addIssueToContext2(ctx, { validation: "jwt", code: ZodIssueCode3.invalid_string, message: check2.message }); status.dirty(); } } else if (check2.kind === "cidr") { if (!isValidCidr2(input2.data, check2.version)) { ctx = this._getOrReturnCtx(input2, ctx); addIssueToContext2(ctx, { validation: "cidr", code: ZodIssueCode3.invalid_string, message: check2.message }); status.dirty(); } } else if (check2.kind === "base64") { if (!base64Regex2.test(input2.data)) { ctx = this._getOrReturnCtx(input2, ctx); addIssueToContext2(ctx, { validation: "base64", code: ZodIssueCode3.invalid_string, message: check2.message }); status.dirty(); } } else if (check2.kind === "base64url") { if (!base64urlRegex2.test(input2.data)) { ctx = this._getOrReturnCtx(input2, ctx); addIssueToContext2(ctx, { validation: "base64url", code: ZodIssueCode3.invalid_string, message: check2.message }); status.dirty(); } } else { util2.assertNever(check2); } } return { status: status.value, value: input2.data }; } _regex(regex, validation, message) { return this.refinement((data) => regex.test(data), { validation, code: ZodIssueCode3.invalid_string, ...errorUtil2.errToObj(message) }); } _addCheck(check2) { return new _ZodString2({ ...this._def, checks: [...this._def.checks, check2] }); } email(message) { return this._addCheck({ kind: "email", ...errorUtil2.errToObj(message) }); } url(message) { return this._addCheck({ kind: "url", ...errorUtil2.errToObj(message) }); } emoji(message) { return this._addCheck({ kind: "emoji", ...errorUtil2.errToObj(message) }); } uuid(message) { return this._addCheck({ kind: "uuid", ...errorUtil2.errToObj(message) }); } nanoid(message) { return this._addCheck({ kind: "nanoid", ...errorUtil2.errToObj(message) }); } cuid(message) { return this._addCheck({ kind: "cuid", ...errorUtil2.errToObj(message) }); } cuid2(message) { return this._addCheck({ kind: "cuid2", ...errorUtil2.errToObj(message) }); } ulid(message) { return this._addCheck({ kind: "ulid", ...errorUtil2.errToObj(message) }); } base64(message) { return this._addCheck({ kind: "base64", ...errorUtil2.errToObj(message) }); } base64url(message) { return this._addCheck({ kind: "base64url", ...errorUtil2.errToObj(message) }); } jwt(options) { return this._addCheck({ kind: "jwt", ...errorUtil2.errToObj(options) }); } ip(options) { return this._addCheck({ kind: "ip", ...errorUtil2.errToObj(options) }); } cidr(options) { return this._addCheck({ kind: "cidr", ...errorUtil2.errToObj(options) }); } datetime(options) { if (typeof options === "string") { return this._addCheck({ kind: "datetime", precision: null, offset: false, local: false, message: options }); } return this._addCheck({ kind: "datetime", precision: typeof options?.precision === "undefined" ? null : options?.precision, offset: options?.offset ?? false, local: options?.local ?? false, ...errorUtil2.errToObj(options?.message) }); } date(message) { return this._addCheck({ kind: "date", message }); } time(options) { if (typeof options === "string") { return this._addCheck({ kind: "time", precision: null, message: options }); } return this._addCheck({ kind: "time", precision: typeof options?.precision === "undefined" ? null : options?.precision, ...errorUtil2.errToObj(options?.message) }); } duration(message) { return this._addCheck({ kind: "duration", ...errorUtil2.errToObj(message) }); } regex(regex, message) { return this._addCheck({ kind: "regex", regex, ...errorUtil2.errToObj(message) }); } includes(value, options) { return this._addCheck({ kind: "includes", value, position: options?.position, ...errorUtil2.errToObj(options?.message) }); } startsWith(value, message) { return this._addCheck({ kind: "startsWith", value, ...errorUtil2.errToObj(message) }); } endsWith(value, message) { return this._addCheck({ kind: "endsWith", value, ...errorUtil2.errToObj(message) }); } min(minLength, message) { return this._addCheck({ kind: "min", value: minLength, ...errorUtil2.errToObj(message) }); } max(maxLength, message) { return this._addCheck({ kind: "max", value: maxLength, ...errorUtil2.errToObj(message) }); } length(len, message) { return this._addCheck({ kind: "length", value: len, ...errorUtil2.errToObj(message) }); } /** * Equivalent to `.min(1)` */ nonempty(message) { return this.min(1, errorUtil2.errToObj(message)); } trim() { return new _ZodString2({ ...this._def, checks: [...this._def.checks, { kind: "trim" }] }); } toLowerCase() { return new _ZodString2({ ...this._def, checks: [...this._def.checks, { kind: "toLowerCase" }] }); } toUpperCase() { return new _ZodString2({ ...this._def, checks: [...this._def.checks, { kind: "toUpperCase" }] }); } get isDatetime() { return !!this._def.checks.find((ch) => ch.kind === "datetime"); } get isDate() { return !!this._def.checks.find((ch) => ch.kind === "date"); } get isTime() { return !!this._def.checks.find((ch) => ch.kind === "time"); } get isDuration() { return !!this._def.checks.find((ch) => ch.kind === "duration"); } get isEmail() { return !!this._def.checks.find((ch) => ch.kind === "email"); } get isURL() { return !!this._def.checks.find((ch) => ch.kind === "url"); } get isEmoji() { return !!this._def.checks.find((ch) => ch.kind === "emoji"); } get isUUID() { return !!this._def.checks.find((ch) => ch.kind === "uuid"); } get isNANOID() { return !!this._def.checks.find((ch) => ch.kind === "nanoid"); } get isCUID() { return !!this._def.checks.find((ch) => ch.kind === "cuid"); } get isCUID2() { return !!this._def.checks.find((ch) => ch.kind === "cuid2"); } get isULID() { return !!this._def.checks.find((ch) => ch.kind === "ulid"); } get isIP() { return !!this._def.checks.find((ch) => ch.kind === "ip"); } get isCIDR() { return !!this._def.checks.find((ch) => ch.kind === "cidr"); } get isBase64() { return !!this._def.checks.find((ch) => ch.kind === "base64"); } get isBase64url() { return !!this._def.checks.find((ch) => ch.kind === "base64url"); } get minLength() { let min = null; for (const ch of this._def.checks) { if (ch.kind === "min") { if (min === null || ch.value > min) min = ch.value; } } return min; } get maxLength() { let max = null; for (const ch of this._def.checks) { if (ch.kind === "max") { if (max === null || ch.value < max) max = ch.value; } } return max; } }; ZodString3.create = (params) => { return new ZodString3({ checks: [], typeName: ZodFirstPartyTypeKind3.ZodString, coerce: params?.coerce ?? false, ...processCreateParams2(params) }); }; function floatSafeRemainder3(val, step) { const valDecCount = (val.toString().split(".")[1] || "").length; const stepDecCount = (step.toString().split(".")[1] || "").length; const decCount = valDecCount > stepDecCount ? valDecCount : stepDecCount; const valInt = Number.parseInt(val.toFixed(decCount).replace(".", "")); const stepInt = Number.parseInt(step.toFixed(decCount).replace(".", "")); return valInt % stepInt / 10 ** decCount; } var ZodNumber3 = class _ZodNumber extends ZodType3 { constructor() { super(...arguments); this.min = this.gte; this.max = this.lte; this.step = this.multipleOf; } _parse(input2) { if (this._def.coerce) { input2.data = Number(input2.data); } const parsedType2 = this._getType(input2); if (parsedType2 !== ZodParsedType2.number) { const ctx2 = this._getOrReturnCtx(input2); addIssueToContext2(ctx2, { code: ZodIssueCode3.invalid_type, expected: ZodParsedType2.number, received: ctx2.parsedType }); return INVALID3; } let ctx = void 0; const status = new ParseStatus2(); for (const check2 of this._def.checks) { if (check2.kind === "int") { if (!util2.isInteger(input2.data)) { ctx = this._getOrReturnCtx(input2, ctx); addIssueToContext2(ctx, { code: ZodIssueCode3.invalid_type, expected: "integer", received: "float", message: check2.message }); status.dirty(); } } else if (check2.kind === "min") { const tooSmall = check2.inclusive ? input2.data < check2.value : input2.data <= check2.value; if (tooSmall) { ctx = this._getOrReturnCtx(input2, ctx); addIssueToContext2(ctx, { code: ZodIssueCode3.too_small, minimum: check2.value, type: "number", inclusive: check2.inclusive, exact: false, message: check2.message }); status.dirty(); } } else if (check2.kind === "max") { const tooBig = check2.inclusive ? input2.data > check2.value : input2.data >= check2.value; if (tooBig) { ctx = this._getOrReturnCtx(input2, ctx); addIssueToContext2(ctx, { code: ZodIssueCode3.too_big, maximum: check2.value, type: "number", inclusive: check2.inclusive, exact: false, message: check2.message }); status.dirty(); } } else if (check2.kind === "multipleOf") { if (floatSafeRemainder3(input2.data, check2.value) !== 0) { ctx = this._getOrReturnCtx(input2, ctx); addIssueToContext2(ctx, { code: ZodIssueCode3.not_multiple_of, multipleOf: check2.value, message: check2.message }); status.dirty(); } } else if (check2.kind === "finite") { if (!Number.isFinite(input2.data)) { ctx = this._getOrReturnCtx(input2, ctx); addIssueToContext2(ctx, { code: ZodIssueCode3.not_finite, message: check2.message }); status.dirty(); } } else { util2.assertNever(check2); } } return { status: status.value, value: input2.data }; } gte(value, message) { return this.setLimit("min", value, true, errorUtil2.toString(message)); } gt(value, message) { return this.setLimit("min", value, false, errorUtil2.toString(message)); } lte(value, message) { return this.setLimit("max", value, true, errorUtil2.toString(message)); } lt(value, message) { return this.setLimit("max", value, false, errorUtil2.toString(message)); } setLimit(kind, value, inclusive, message) { return new _ZodNumber({ ...this._def, checks: [ ...this._def.checks, { kind, value, inclusive, message: errorUtil2.toString(message) } ] }); } _addCheck(check2) { return new _ZodNumber({ ...this._def, checks: [...this._def.checks, check2] }); } int(message) { return this._addCheck({ kind: "int", message: errorUtil2.toString(message) }); } positive(message) { return this._addCheck({ kind: "min", value: 0, inclusive: false, message: errorUtil2.toString(message) }); } negative(message) { return this._addCheck({ kind: "max", value: 0, inclusive: false, message: errorUtil2.toString(message) }); } nonpositive(message) { return this._addCheck({ kind: "max", value: 0, inclusive: true, message: errorUtil2.toString(message) }); } nonnegative(message) { return this._addCheck({ kind: "min", value: 0, inclusive: true, message: errorUtil2.toString(message) }); } multipleOf(value, message) { return this._addCheck({ kind: "multipleOf", value, message: errorUtil2.toString(message) }); } finite(message) { return this._addCheck({ kind: "finite", message: errorUtil2.toString(message) }); } safe(message) { return this._addCheck({ kind: "min", inclusive: true, value: Number.MIN_SAFE_INTEGER, message: errorUtil2.toString(message) })._addCheck({ kind: "max", inclusive: true, value: Number.MAX_SAFE_INTEGER, message: errorUtil2.toString(message) }); } get minValue() { let min = null; for (const ch of this._def.checks) { if (ch.kind === "min") { if (min === null || ch.value > min) min = ch.value; } } return min; } get maxValue() { let max = null; for (const ch of this._def.checks) { if (ch.kind === "max") { if (max === null || ch.value < max) max = ch.value; } } return max; } get isInt() { return !!this._def.checks.find((ch) => ch.kind === "int" || ch.kind === "multipleOf" && util2.isInteger(ch.value)); } get isFinite() { let max = null; let min = null; for (const ch of this._def.checks) { if (ch.kind === "finite" || ch.kind === "int" || ch.kind === "multipleOf") { return true; } else if (ch.kind === "min") { if (min === null || ch.value > min) min = ch.value; } else if (ch.kind === "max") { if (max === null || ch.value < max) max = ch.value; } } return Number.isFinite(min) && Number.isFinite(max); } }; ZodNumber3.create = (params) => { return new ZodNumber3({ checks: [], typeName: ZodFirstPartyTypeKind3.ZodNumber, coerce: params?.coerce || false, ...processCreateParams2(params) }); }; var ZodBigInt3 = class _ZodBigInt extends ZodType3 { constructor() { super(...arguments); this.min = this.gte; this.max = this.lte; } _parse(input2) { if (this._def.coerce) { try { input2.data = BigInt(input2.data); } catch { return this._getInvalidInput(input2); } } const parsedType2 = this._getType(input2); if (parsedType2 !== ZodParsedType2.bigint) { return this._getInvalidInput(input2); } let ctx = void 0; const status = new ParseStatus2(); for (const check2 of this._def.checks) { if (check2.kind === "min") { const tooSmall = check2.inclusive ? input2.data < check2.value : input2.data <= check2.value; if (tooSmall) { ctx = this._getOrReturnCtx(input2, ctx); addIssueToContext2(ctx, { code: ZodIssueCode3.too_small, type: "bigint", minimum: check2.value, inclusive: check2.inclusive, message: check2.message }); status.dirty(); } } else if (check2.kind === "max") { const tooBig = check2.inclusive ? input2.data > check2.value : input2.data >= check2.value; if (tooBig) { ctx = this._getOrReturnCtx(input2, ctx); addIssueToContext2(ctx, { code: ZodIssueCode3.too_big, type: "bigint", maximum: check2.value, inclusive: check2.inclusive, message: check2.message }); status.dirty(); } } else if (check2.kind === "multipleOf") { if (input2.data % check2.value !== BigInt(0)) { ctx = this._getOrReturnCtx(input2, ctx); addIssueToContext2(ctx, { code: ZodIssueCode3.not_multiple_of, multipleOf: check2.value, message: check2.message }); status.dirty(); } } else { util2.assertNever(check2); } } return { status: status.value, value: input2.data }; } _getInvalidInput(input2) { const ctx = this._getOrReturnCtx(input2); addIssueToContext2(ctx, { code: ZodIssueCode3.invalid_type, expected: ZodParsedType2.bigint, received: ctx.parsedType }); return INVALID3; } gte(value, message) { return this.setLimit("min", value, true, errorUtil2.toString(message)); } gt(value, message) { return this.setLimit("min", value, false, errorUtil2.toString(message)); } lte(value, message) { return this.setLimit("max", value, true, errorUtil2.toString(message)); } lt(value, message) { return this.setLimit("max", value, false, errorUtil2.toString(message)); } setLimit(kind, value, inclusive, message) { return new _ZodBigInt({ ...this._def, checks: [ ...this._def.checks, { kind, value, inclusive, message: errorUtil2.toString(message) } ] }); } _addCheck(check2) { return new _ZodBigInt({ ...this._def, checks: [...this._def.checks, check2] }); } positive(message) { return this._addCheck({ kind: "min", value: BigInt(0), inclusive: false, message: errorUtil2.toString(message) }); } negative(message) { return this._addCheck({ kind: "max", value: BigInt(0), inclusive: false, message: errorUtil2.toString(message) }); } nonpositive(message) { return this._addCheck({ kind: "max", value: BigInt(0), inclusive: true, message: errorUtil2.toString(message) }); } nonnegative(message) { return this._addCheck({ kind: "min", value: BigInt(0), inclusive: true, message: errorUtil2.toString(message) }); } multipleOf(value, message) { return this._addCheck({ kind: "multipleOf", value, message: errorUtil2.toString(message) }); } get minValue() { let min = null; for (const ch of this._def.checks) { if (ch.kind === "min") { if (min === null || ch.value > min) min = ch.value; } } return min; } get maxValue() { let max = null; for (const ch of this._def.checks) { if (ch.kind === "max") { if (max === null || ch.value < max) max = ch.value; } } return max; } }; ZodBigInt3.create = (params) => { return new ZodBigInt3({ checks: [], typeName: ZodFirstPartyTypeKind3.ZodBigInt, coerce: params?.coerce ?? false, ...processCreateParams2(params) }); }; var ZodBoolean3 = class extends ZodType3 { _parse(input2) { if (this._def.coerce) { input2.data = Boolean(input2.data); } const parsedType2 = this._getType(input2); if (parsedType2 !== ZodParsedType2.boolean) { const ctx = this._getOrReturnCtx(input2); addIssueToContext2(ctx, { code: ZodIssueCode3.invalid_type, expected: ZodParsedType2.boolean, received: ctx.parsedType }); return INVALID3; } return OK2(input2.data); } }; ZodBoolean3.create = (params) => { return new ZodBoolean3({ typeName: ZodFirstPartyTypeKind3.ZodBoolean, coerce: params?.coerce || false, ...processCreateParams2(params) }); }; var ZodDate3 = class _ZodDate extends ZodType3 { _parse(input2) { if (this._def.coerce) { input2.data = new Date(input2.data); } const parsedType2 = this._getType(input2); if (parsedType2 !== ZodParsedType2.date) { const ctx2 = this._getOrReturnCtx(input2); addIssueToContext2(ctx2, { code: ZodIssueCode3.invalid_type, expected: ZodParsedType2.date, received: ctx2.parsedType }); return INVALID3; } if (Number.isNaN(input2.data.getTime())) { const ctx2 = this._getOrReturnCtx(input2); addIssueToContext2(ctx2, { code: ZodIssueCode3.invalid_date }); return INVALID3; } const status = new ParseStatus2(); let ctx = void 0; for (const check2 of this._def.checks) { if (check2.kind === "min") { if (input2.data.getTime() < check2.value) { ctx = this._getOrReturnCtx(input2, ctx); addIssueToContext2(ctx, { code: ZodIssueCode3.too_small, message: check2.message, inclusive: true, exact: false, minimum: check2.value, type: "date" }); status.dirty(); } } else if (check2.kind === "max") { if (input2.data.getTime() > check2.value) { ctx = this._getOrReturnCtx(input2, ctx); addIssueToContext2(ctx, { code: ZodIssueCode3.too_big, message: check2.message, inclusive: true, exact: false, maximum: check2.value, type: "date" }); status.dirty(); } } else { util2.assertNever(check2); } } return { status: status.value, value: new Date(input2.data.getTime()) }; } _addCheck(check2) { return new _ZodDate({ ...this._def, checks: [...this._def.checks, check2] }); } min(minDate, message) { return this._addCheck({ kind: "min", value: minDate.getTime(), message: errorUtil2.toString(message) }); } max(maxDate, message) { return this._addCheck({ kind: "max", value: maxDate.getTime(), message: errorUtil2.toString(message) }); } get minDate() { let min = null; for (const ch of this._def.checks) { if (ch.kind === "min") { if (min === null || ch.value > min) min = ch.value; } } return min != null ? new Date(min) : null; } get maxDate() { let max = null; for (const ch of this._def.checks) { if (ch.kind === "max") { if (max === null || ch.value < max) max = ch.value; } } return max != null ? new Date(max) : null; } }; ZodDate3.create = (params) => { return new ZodDate3({ checks: [], coerce: params?.coerce || false, typeName: ZodFirstPartyTypeKind3.ZodDate, ...processCreateParams2(params) }); }; var ZodSymbol3 = class extends ZodType3 { _parse(input2) { const parsedType2 = this._getType(input2); if (parsedType2 !== ZodParsedType2.symbol) { const ctx = this._getOrReturnCtx(input2); addIssueToContext2(ctx, { code: ZodIssueCode3.invalid_type, expected: ZodParsedType2.symbol, received: ctx.parsedType }); return INVALID3; } return OK2(input2.data); } }; ZodSymbol3.create = (params) => { return new ZodSymbol3({ typeName: ZodFirstPartyTypeKind3.ZodSymbol, ...processCreateParams2(params) }); }; var ZodUndefined3 = class extends ZodType3 { _parse(input2) { const parsedType2 = this._getType(input2); if (parsedType2 !== ZodParsedType2.undefined) { const ctx = this._getOrReturnCtx(input2); addIssueToContext2(ctx, { code: ZodIssueCode3.invalid_type, expected: ZodParsedType2.undefined, received: ctx.parsedType }); return INVALID3; } return OK2(input2.data); } }; ZodUndefined3.create = (params) => { return new ZodUndefined3({ typeName: ZodFirstPartyTypeKind3.ZodUndefined, ...processCreateParams2(params) }); }; var ZodNull3 = class extends ZodType3 { _parse(input2) { const parsedType2 = this._getType(input2); if (parsedType2 !== ZodParsedType2.null) { const ctx = this._getOrReturnCtx(input2); addIssueToContext2(ctx, { code: ZodIssueCode3.invalid_type, expected: ZodParsedType2.null, received: ctx.parsedType }); return INVALID3; } return OK2(input2.data); } }; ZodNull3.create = (params) => { return new ZodNull3({ typeName: ZodFirstPartyTypeKind3.ZodNull, ...processCreateParams2(params) }); }; var ZodAny3 = class extends ZodType3 { constructor() { super(...arguments); this._any = true; } _parse(input2) { return OK2(input2.data); } }; ZodAny3.create = (params) => { return new ZodAny3({ typeName: ZodFirstPartyTypeKind3.ZodAny, ...processCreateParams2(params) }); }; var ZodUnknown3 = class extends ZodType3 { constructor() { super(...arguments); this._unknown = true; } _parse(input2) { return OK2(input2.data); } }; ZodUnknown3.create = (params) => { return new ZodUnknown3({ typeName: ZodFirstPartyTypeKind3.ZodUnknown, ...processCreateParams2(params) }); }; var ZodNever3 = class extends ZodType3 { _parse(input2) { const ctx = this._getOrReturnCtx(input2); addIssueToContext2(ctx, { code: ZodIssueCode3.invalid_type, expected: ZodParsedType2.never, received: ctx.parsedType }); return INVALID3; } }; ZodNever3.create = (params) => { return new ZodNever3({ typeName: ZodFirstPartyTypeKind3.ZodNever, ...processCreateParams2(params) }); }; var ZodVoid3 = class extends ZodType3 { _parse(input2) { const parsedType2 = this._getType(input2); if (parsedType2 !== ZodParsedType2.undefined) { const ctx = this._getOrReturnCtx(input2); addIssueToContext2(ctx, { code: ZodIssueCode3.invalid_type, expected: ZodParsedType2.void, received: ctx.parsedType }); return INVALID3; } return OK2(input2.data); } }; ZodVoid3.create = (params) => { return new ZodVoid3({ typeName: ZodFirstPartyTypeKind3.ZodVoid, ...processCreateParams2(params) }); }; var ZodArray3 = class _ZodArray extends ZodType3 { _parse(input2) { const { ctx, status } = this._processInputParams(input2); const def = this._def; if (ctx.parsedType !== ZodParsedType2.array) { addIssueToContext2(ctx, { code: ZodIssueCode3.invalid_type, expected: ZodParsedType2.array, received: ctx.parsedType }); return INVALID3; } if (def.exactLength !== null) { const tooBig = ctx.data.length > def.exactLength.value; const tooSmall = ctx.data.length < def.exactLength.value; if (tooBig || tooSmall) { addIssueToContext2(ctx, { code: tooBig ? ZodIssueCode3.too_big : ZodIssueCode3.too_small, minimum: tooSmall ? def.exactLength.value : void 0, maximum: tooBig ? def.exactLength.value : void 0, type: "array", inclusive: true, exact: true, message: def.exactLength.message }); status.dirty(); } } if (def.minLength !== null) { if (ctx.data.length < def.minLength.value) { addIssueToContext2(ctx, { code: ZodIssueCode3.too_small, minimum: def.minLength.value, type: "array", inclusive: true, exact: false, message: def.minLength.message }); status.dirty(); } } if (def.maxLength !== null) { if (ctx.data.length > def.maxLength.value) { addIssueToContext2(ctx, { code: ZodIssueCode3.too_big, maximum: def.maxLength.value, type: "array", inclusive: true, exact: false, message: def.maxLength.message }); status.dirty(); } } if (ctx.common.async) { return Promise.all([...ctx.data].map((item, i) => { return def.type._parseAsync(new ParseInputLazyPath2(ctx, item, ctx.path, i)); })).then((result2) => { return ParseStatus2.mergeArray(status, result2); }); } const result = [...ctx.data].map((item, i) => { return def.type._parseSync(new ParseInputLazyPath2(ctx, item, ctx.path, i)); }); return ParseStatus2.mergeArray(status, result); } get element() { return this._def.type; } min(minLength, message) { return new _ZodArray({ ...this._def, minLength: { value: minLength, message: errorUtil2.toString(message) } }); } max(maxLength, message) { return new _ZodArray({ ...this._def, maxLength: { value: maxLength, message: errorUtil2.toString(message) } }); } length(len, message) { return new _ZodArray({ ...this._def, exactLength: { value: len, message: errorUtil2.toString(message) } }); } nonempty(message) { return this.min(1, message); } }; ZodArray3.create = (schema, params) => { return new ZodArray3({ type: schema, minLength: null, maxLength: null, exactLength: null, typeName: ZodFirstPartyTypeKind3.ZodArray, ...processCreateParams2(params) }); }; function deepPartialify2(schema) { if (schema instanceof ZodObject3) { const newShape = {}; for (const key in schema.shape) { const fieldSchema = schema.shape[key]; newShape[key] = ZodOptional3.create(deepPartialify2(fieldSchema)); } return new ZodObject3({ ...schema._def, shape: () => newShape }); } else if (schema instanceof ZodArray3) { return new ZodArray3({ ...schema._def, type: deepPartialify2(schema.element) }); } else if (schema instanceof ZodOptional3) { return ZodOptional3.create(deepPartialify2(schema.unwrap())); } else if (schema instanceof ZodNullable3) { return ZodNullable3.create(deepPartialify2(schema.unwrap())); } else if (schema instanceof ZodTuple3) { return ZodTuple3.create(schema.items.map((item) => deepPartialify2(item))); } else { return schema; } } var ZodObject3 = class _ZodObject extends ZodType3 { constructor() { super(...arguments); this._cached = null; this.nonstrict = this.passthrough; this.augment = this.extend; } _getCached() { if (this._cached !== null) return this._cached; const shape = this._def.shape(); const keys = util2.objectKeys(shape); this._cached = { shape, keys }; return this._cached; } _parse(input2) { const parsedType2 = this._getType(input2); if (parsedType2 !== ZodParsedType2.object) { const ctx2 = this._getOrReturnCtx(input2); addIssueToContext2(ctx2, { code: ZodIssueCode3.invalid_type, expected: ZodParsedType2.object, received: ctx2.parsedType }); return INVALID3; } const { status, ctx } = this._processInputParams(input2); const { shape, keys: shapeKeys2 } = this._getCached(); const extraKeys = []; if (!(this._def.catchall instanceof ZodNever3 && this._def.unknownKeys === "strip")) { for (const key in ctx.data) { if (!shapeKeys2.includes(key)) { extraKeys.push(key); } } } const pairs = []; for (const key of shapeKeys2) { const keyValidator = shape[key]; const value = ctx.data[key]; pairs.push({ key: { status: "valid", value: key }, value: keyValidator._parse(new ParseInputLazyPath2(ctx, value, ctx.path, key)), alwaysSet: key in ctx.data }); } if (this._def.catchall instanceof ZodNever3) { const unknownKeys = this._def.unknownKeys; if (unknownKeys === "passthrough") { for (const key of extraKeys) { pairs.push({ key: { status: "valid", value: key }, value: { status: "valid", value: ctx.data[key] } }); } } else if (unknownKeys === "strict") { if (extraKeys.length > 0) { addIssueToContext2(ctx, { code: ZodIssueCode3.unrecognized_keys, keys: extraKeys }); status.dirty(); } } else if (unknownKeys === "strip") { } else { throw new Error(`Internal ZodObject error: invalid unknownKeys value.`); } } else { const catchall = this._def.catchall; for (const key of extraKeys) { const value = ctx.data[key]; pairs.push({ key: { status: "valid", value: key }, value: catchall._parse( new ParseInputLazyPath2(ctx, value, ctx.path, key) //, ctx.child(key), value, getParsedType(value) ), alwaysSet: key in ctx.data }); } } if (ctx.common.async) { return Promise.resolve().then(async () => { const syncPairs = []; for (const pair of pairs) { const key = await pair.key; const value = await pair.value; syncPairs.push({ key, value, alwaysSet: pair.alwaysSet }); } return syncPairs; }).then((syncPairs) => { return ParseStatus2.mergeObjectSync(status, syncPairs); }); } else { return ParseStatus2.mergeObjectSync(status, pairs); } } get shape() { return this._def.shape(); } strict(message) { errorUtil2.errToObj; return new _ZodObject({ ...this._def, unknownKeys: "strict", ...message !== void 0 ? { errorMap: (issue2, ctx) => { const defaultError = this._def.errorMap?.(issue2, ctx).message ?? ctx.defaultError; if (issue2.code === "unrecognized_keys") return { message: errorUtil2.errToObj(message).message ?? defaultError }; return { message: defaultError }; } } : {} }); } strip() { return new _ZodObject({ ...this._def, unknownKeys: "strip" }); } passthrough() { return new _ZodObject({ ...this._def, unknownKeys: "passthrough" }); } // const AugmentFactory = // (def: Def) => // ( // augmentation: Augmentation // ): ZodObject< // extendShape, Augmentation>, // Def["unknownKeys"], // Def["catchall"] // > => { // return new ZodObject({ // ...def, // shape: () => ({ // ...def.shape(), // ...augmentation, // }), // }) as any; // }; extend(augmentation) { return new _ZodObject({ ...this._def, shape: () => ({ ...this._def.shape(), ...augmentation }) }); } /** * Prior to zod@1.0.12 there was a bug in the * inferred type of merged objects. Please * upgrade if you are experiencing issues. */ merge(merging) { const merged = new _ZodObject({ unknownKeys: merging._def.unknownKeys, catchall: merging._def.catchall, shape: () => ({ ...this._def.shape(), ...merging._def.shape() }), typeName: ZodFirstPartyTypeKind3.ZodObject }); return merged; } // merge< // Incoming extends AnyZodObject, // Augmentation extends Incoming["shape"], // NewOutput extends { // [k in keyof Augmentation | keyof Output]: k extends keyof Augmentation // ? Augmentation[k]["_output"] // : k extends keyof Output // ? Output[k] // : never; // }, // NewInput extends { // [k in keyof Augmentation | keyof Input]: k extends keyof Augmentation // ? Augmentation[k]["_input"] // : k extends keyof Input // ? Input[k] // : never; // } // >( // merging: Incoming // ): ZodObject< // extendShape>, // Incoming["_def"]["unknownKeys"], // Incoming["_def"]["catchall"], // NewOutput, // NewInput // > { // const merged: any = new ZodObject({ // unknownKeys: merging._def.unknownKeys, // catchall: merging._def.catchall, // shape: () => // objectUtil.mergeShapes(this._def.shape(), merging._def.shape()), // typeName: ZodFirstPartyTypeKind.ZodObject, // }) as any; // return merged; // } setKey(key, schema) { return this.augment({ [key]: schema }); } // merge( // merging: Incoming // ): //ZodObject = (merging) => { // ZodObject< // extendShape>, // Incoming["_def"]["unknownKeys"], // Incoming["_def"]["catchall"] // > { // // const mergedShape = objectUtil.mergeShapes( // // this._def.shape(), // // merging._def.shape() // // ); // const merged: any = new ZodObject({ // unknownKeys: merging._def.unknownKeys, // catchall: merging._def.catchall, // shape: () => // objectUtil.mergeShapes(this._def.shape(), merging._def.shape()), // typeName: ZodFirstPartyTypeKind.ZodObject, // }) as any; // return merged; // } catchall(index) { return new _ZodObject({ ...this._def, catchall: index }); } pick(mask) { const shape = {}; for (const key of util2.objectKeys(mask)) { if (mask[key] && this.shape[key]) { shape[key] = this.shape[key]; } } return new _ZodObject({ ...this._def, shape: () => shape }); } omit(mask) { const shape = {}; for (const key of util2.objectKeys(this.shape)) { if (!mask[key]) { shape[key] = this.shape[key]; } } return new _ZodObject({ ...this._def, shape: () => shape }); } /** * @deprecated */ deepPartial() { return deepPartialify2(this); } partial(mask) { const newShape = {}; for (const key of util2.objectKeys(this.shape)) { const fieldSchema = this.shape[key]; if (mask && !mask[key]) { newShape[key] = fieldSchema; } else { newShape[key] = fieldSchema.optional(); } } return new _ZodObject({ ...this._def, shape: () => newShape }); } required(mask) { const newShape = {}; for (const key of util2.objectKeys(this.shape)) { if (mask && !mask[key]) { newShape[key] = this.shape[key]; } else { const fieldSchema = this.shape[key]; let newField = fieldSchema; while (newField instanceof ZodOptional3) { newField = newField._def.innerType; } newShape[key] = newField; } } return new _ZodObject({ ...this._def, shape: () => newShape }); } keyof() { return createZodEnum2(util2.objectKeys(this.shape)); } }; ZodObject3.create = (shape, params) => { return new ZodObject3({ shape: () => shape, unknownKeys: "strip", catchall: ZodNever3.create(), typeName: ZodFirstPartyTypeKind3.ZodObject, ...processCreateParams2(params) }); }; ZodObject3.strictCreate = (shape, params) => { return new ZodObject3({ shape: () => shape, unknownKeys: "strict", catchall: ZodNever3.create(), typeName: ZodFirstPartyTypeKind3.ZodObject, ...processCreateParams2(params) }); }; ZodObject3.lazycreate = (shape, params) => { return new ZodObject3({ shape, unknownKeys: "strip", catchall: ZodNever3.create(), typeName: ZodFirstPartyTypeKind3.ZodObject, ...processCreateParams2(params) }); }; var ZodUnion3 = class extends ZodType3 { _parse(input2) { const { ctx } = this._processInputParams(input2); const options = this._def.options; function handleResults(results) { for (const result of results) { if (result.result.status === "valid") { return result.result; } } for (const result of results) { if (result.result.status === "dirty") { ctx.common.issues.push(...result.ctx.common.issues); return result.result; } } const unionErrors = results.map((result) => new ZodError3(result.ctx.common.issues)); addIssueToContext2(ctx, { code: ZodIssueCode3.invalid_union, unionErrors }); return INVALID3; } if (ctx.common.async) { return Promise.all(options.map(async (option) => { const childCtx = { ...ctx, common: { ...ctx.common, issues: [] }, parent: null }; return { result: await option._parseAsync({ data: ctx.data, path: ctx.path, parent: childCtx }), ctx: childCtx }; })).then(handleResults); } else { let dirty = void 0; const issues = []; for (const option of options) { const childCtx = { ...ctx, common: { ...ctx.common, issues: [] }, parent: null }; const result = option._parseSync({ data: ctx.data, path: ctx.path, parent: childCtx }); if (result.status === "valid") { return result; } else if (result.status === "dirty" && !dirty) { dirty = { result, ctx: childCtx }; } if (childCtx.common.issues.length) { issues.push(childCtx.common.issues); } } if (dirty) { ctx.common.issues.push(...dirty.ctx.common.issues); return dirty.result; } const unionErrors = issues.map((issues2) => new ZodError3(issues2)); addIssueToContext2(ctx, { code: ZodIssueCode3.invalid_union, unionErrors }); return INVALID3; } } get options() { return this._def.options; } }; ZodUnion3.create = (types, params) => { return new ZodUnion3({ options: types, typeName: ZodFirstPartyTypeKind3.ZodUnion, ...processCreateParams2(params) }); }; var getDiscriminator2 = (type) => { if (type instanceof ZodLazy3) { return getDiscriminator2(type.schema); } else if (type instanceof ZodEffects2) { return getDiscriminator2(type.innerType()); } else if (type instanceof ZodLiteral3) { return [type.value]; } else if (type instanceof ZodEnum3) { return type.options; } else if (type instanceof ZodNativeEnum2) { return util2.objectValues(type.enum); } else if (type instanceof ZodDefault3) { return getDiscriminator2(type._def.innerType); } else if (type instanceof ZodUndefined3) { return [void 0]; } else if (type instanceof ZodNull3) { return [null]; } else if (type instanceof ZodOptional3) { return [void 0, ...getDiscriminator2(type.unwrap())]; } else if (type instanceof ZodNullable3) { return [null, ...getDiscriminator2(type.unwrap())]; } else if (type instanceof ZodBranded2) { return getDiscriminator2(type.unwrap()); } else if (type instanceof ZodReadonly3) { return getDiscriminator2(type.unwrap()); } else if (type instanceof ZodCatch3) { return getDiscriminator2(type._def.innerType); } else { return []; } }; var ZodDiscriminatedUnion3 = class _ZodDiscriminatedUnion extends ZodType3 { _parse(input2) { const { ctx } = this._processInputParams(input2); if (ctx.parsedType !== ZodParsedType2.object) { addIssueToContext2(ctx, { code: ZodIssueCode3.invalid_type, expected: ZodParsedType2.object, received: ctx.parsedType }); return INVALID3; } const discriminator = this.discriminator; const discriminatorValue = ctx.data[discriminator]; const option = this.optionsMap.get(discriminatorValue); if (!option) { addIssueToContext2(ctx, { code: ZodIssueCode3.invalid_union_discriminator, options: Array.from(this.optionsMap.keys()), path: [discriminator] }); return INVALID3; } if (ctx.common.async) { return option._parseAsync({ data: ctx.data, path: ctx.path, parent: ctx }); } else { return option._parseSync({ data: ctx.data, path: ctx.path, parent: ctx }); } } get discriminator() { return this._def.discriminator; } get options() { return this._def.options; } get optionsMap() { return this._def.optionsMap; } /** * The constructor of the discriminated union schema. Its behaviour is very similar to that of the normal z.union() constructor. * However, it only allows a union of objects, all of which need to share a discriminator property. This property must * have a different value for each object in the union. * @param discriminator the name of the discriminator property * @param types an array of object schemas * @param params */ static create(discriminator, options, params) { const optionsMap = /* @__PURE__ */ new Map(); for (const type of options) { const discriminatorValues = getDiscriminator2(type.shape[discriminator]); if (!discriminatorValues.length) { throw new Error(`A discriminator value for key \`${discriminator}\` could not be extracted from all schema options`); } for (const value of discriminatorValues) { if (optionsMap.has(value)) { throw new Error(`Discriminator property ${String(discriminator)} has duplicate value ${String(value)}`); } optionsMap.set(value, type); } } return new _ZodDiscriminatedUnion({ typeName: ZodFirstPartyTypeKind3.ZodDiscriminatedUnion, discriminator, options, optionsMap, ...processCreateParams2(params) }); } }; function mergeValues3(a, b) { const aType = getParsedType3(a); const bType = getParsedType3(b); if (a === b) { return { valid: true, data: a }; } else if (aType === ZodParsedType2.object && bType === ZodParsedType2.object) { const bKeys = util2.objectKeys(b); const sharedKeys = util2.objectKeys(a).filter((key) => bKeys.indexOf(key) !== -1); const newObj = { ...a, ...b }; for (const key of sharedKeys) { const sharedValue = mergeValues3(a[key], b[key]); if (!sharedValue.valid) { return { valid: false }; } newObj[key] = sharedValue.data; } return { valid: true, data: newObj }; } else if (aType === ZodParsedType2.array && bType === ZodParsedType2.array) { if (a.length !== b.length) { return { valid: false }; } const newArray = []; for (let index = 0; index < a.length; index++) { const itemA = a[index]; const itemB = b[index]; const sharedValue = mergeValues3(itemA, itemB); if (!sharedValue.valid) { return { valid: false }; } newArray.push(sharedValue.data); } return { valid: true, data: newArray }; } else if (aType === ZodParsedType2.date && bType === ZodParsedType2.date && +a === +b) { return { valid: true, data: a }; } else { return { valid: false }; } } var ZodIntersection3 = class extends ZodType3 { _parse(input2) { const { status, ctx } = this._processInputParams(input2); const handleParsed = (parsedLeft, parsedRight) => { if (isAborted2(parsedLeft) || isAborted2(parsedRight)) { return INVALID3; } const merged = mergeValues3(parsedLeft.value, parsedRight.value); if (!merged.valid) { addIssueToContext2(ctx, { code: ZodIssueCode3.invalid_intersection_types }); return INVALID3; } if (isDirty2(parsedLeft) || isDirty2(parsedRight)) { status.dirty(); } return { status: status.value, value: merged.data }; }; if (ctx.common.async) { return Promise.all([ this._def.left._parseAsync({ data: ctx.data, path: ctx.path, parent: ctx }), this._def.right._parseAsync({ data: ctx.data, path: ctx.path, parent: ctx }) ]).then(([left, right]) => handleParsed(left, right)); } else { return handleParsed(this._def.left._parseSync({ data: ctx.data, path: ctx.path, parent: ctx }), this._def.right._parseSync({ data: ctx.data, path: ctx.path, parent: ctx })); } } }; ZodIntersection3.create = (left, right, params) => { return new ZodIntersection3({ left, right, typeName: ZodFirstPartyTypeKind3.ZodIntersection, ...processCreateParams2(params) }); }; var ZodTuple3 = class _ZodTuple extends ZodType3 { _parse(input2) { const { status, ctx } = this._processInputParams(input2); if (ctx.parsedType !== ZodParsedType2.array) { addIssueToContext2(ctx, { code: ZodIssueCode3.invalid_type, expected: ZodParsedType2.array, received: ctx.parsedType }); return INVALID3; } if (ctx.data.length < this._def.items.length) { addIssueToContext2(ctx, { code: ZodIssueCode3.too_small, minimum: this._def.items.length, inclusive: true, exact: false, type: "array" }); return INVALID3; } const rest = this._def.rest; if (!rest && ctx.data.length > this._def.items.length) { addIssueToContext2(ctx, { code: ZodIssueCode3.too_big, maximum: this._def.items.length, inclusive: true, exact: false, type: "array" }); status.dirty(); } const items = [...ctx.data].map((item, itemIndex) => { const schema = this._def.items[itemIndex] || this._def.rest; if (!schema) return null; return schema._parse(new ParseInputLazyPath2(ctx, item, ctx.path, itemIndex)); }).filter((x) => !!x); if (ctx.common.async) { return Promise.all(items).then((results) => { return ParseStatus2.mergeArray(status, results); }); } else { return ParseStatus2.mergeArray(status, items); } } get items() { return this._def.items; } rest(rest) { return new _ZodTuple({ ...this._def, rest }); } }; ZodTuple3.create = (schemas, params) => { if (!Array.isArray(schemas)) { throw new Error("You must pass an array of schemas to z.tuple([ ... ])"); } return new ZodTuple3({ items: schemas, typeName: ZodFirstPartyTypeKind3.ZodTuple, rest: null, ...processCreateParams2(params) }); }; var ZodRecord3 = class _ZodRecord extends ZodType3 { get keySchema() { return this._def.keyType; } get valueSchema() { return this._def.valueType; } _parse(input2) { const { status, ctx } = this._processInputParams(input2); if (ctx.parsedType !== ZodParsedType2.object) { addIssueToContext2(ctx, { code: ZodIssueCode3.invalid_type, expected: ZodParsedType2.object, received: ctx.parsedType }); return INVALID3; } const pairs = []; const keyType = this._def.keyType; const valueType = this._def.valueType; for (const key in ctx.data) { pairs.push({ key: keyType._parse(new ParseInputLazyPath2(ctx, key, ctx.path, key)), value: valueType._parse(new ParseInputLazyPath2(ctx, ctx.data[key], ctx.path, key)), alwaysSet: key in ctx.data }); } if (ctx.common.async) { return ParseStatus2.mergeObjectAsync(status, pairs); } else { return ParseStatus2.mergeObjectSync(status, pairs); } } get element() { return this._def.valueType; } static create(first, second, third) { if (second instanceof ZodType3) { return new _ZodRecord({ keyType: first, valueType: second, typeName: ZodFirstPartyTypeKind3.ZodRecord, ...processCreateParams2(third) }); } return new _ZodRecord({ keyType: ZodString3.create(), valueType: first, typeName: ZodFirstPartyTypeKind3.ZodRecord, ...processCreateParams2(second) }); } }; var ZodMap3 = class extends ZodType3 { get keySchema() { return this._def.keyType; } get valueSchema() { return this._def.valueType; } _parse(input2) { const { status, ctx } = this._processInputParams(input2); if (ctx.parsedType !== ZodParsedType2.map) { addIssueToContext2(ctx, { code: ZodIssueCode3.invalid_type, expected: ZodParsedType2.map, received: ctx.parsedType }); return INVALID3; } const keyType = this._def.keyType; const valueType = this._def.valueType; const pairs = [...ctx.data.entries()].map(([key, value], index) => { return { key: keyType._parse(new ParseInputLazyPath2(ctx, key, ctx.path, [index, "key"])), value: valueType._parse(new ParseInputLazyPath2(ctx, value, ctx.path, [index, "value"])) }; }); if (ctx.common.async) { const finalMap = /* @__PURE__ */ new Map(); return Promise.resolve().then(async () => { for (const pair of pairs) { const key = await pair.key; const value = await pair.value; if (key.status === "aborted" || value.status === "aborted") { return INVALID3; } if (key.status === "dirty" || value.status === "dirty") { status.dirty(); } finalMap.set(key.value, value.value); } return { status: status.value, value: finalMap }; }); } else { const finalMap = /* @__PURE__ */ new Map(); for (const pair of pairs) { const key = pair.key; const value = pair.value; if (key.status === "aborted" || value.status === "aborted") { return INVALID3; } if (key.status === "dirty" || value.status === "dirty") { status.dirty(); } finalMap.set(key.value, value.value); } return { status: status.value, value: finalMap }; } } }; ZodMap3.create = (keyType, valueType, params) => { return new ZodMap3({ valueType, keyType, typeName: ZodFirstPartyTypeKind3.ZodMap, ...processCreateParams2(params) }); }; var ZodSet3 = class _ZodSet extends ZodType3 { _parse(input2) { const { status, ctx } = this._processInputParams(input2); if (ctx.parsedType !== ZodParsedType2.set) { addIssueToContext2(ctx, { code: ZodIssueCode3.invalid_type, expected: ZodParsedType2.set, received: ctx.parsedType }); return INVALID3; } const def = this._def; if (def.minSize !== null) { if (ctx.data.size < def.minSize.value) { addIssueToContext2(ctx, { code: ZodIssueCode3.too_small, minimum: def.minSize.value, type: "set", inclusive: true, exact: false, message: def.minSize.message }); status.dirty(); } } if (def.maxSize !== null) { if (ctx.data.size > def.maxSize.value) { addIssueToContext2(ctx, { code: ZodIssueCode3.too_big, maximum: def.maxSize.value, type: "set", inclusive: true, exact: false, message: def.maxSize.message }); status.dirty(); } } const valueType = this._def.valueType; function finalizeSet(elements2) { const parsedSet = /* @__PURE__ */ new Set(); for (const element of elements2) { if (element.status === "aborted") return INVALID3; if (element.status === "dirty") status.dirty(); parsedSet.add(element.value); } return { status: status.value, value: parsedSet }; } const elements = [...ctx.data.values()].map((item, i) => valueType._parse(new ParseInputLazyPath2(ctx, item, ctx.path, i))); if (ctx.common.async) { return Promise.all(elements).then((elements2) => finalizeSet(elements2)); } else { return finalizeSet(elements); } } min(minSize, message) { return new _ZodSet({ ...this._def, minSize: { value: minSize, message: errorUtil2.toString(message) } }); } max(maxSize, message) { return new _ZodSet({ ...this._def, maxSize: { value: maxSize, message: errorUtil2.toString(message) } }); } size(size, message) { return this.min(size, message).max(size, message); } nonempty(message) { return this.min(1, message); } }; ZodSet3.create = (valueType, params) => { return new ZodSet3({ valueType, minSize: null, maxSize: null, typeName: ZodFirstPartyTypeKind3.ZodSet, ...processCreateParams2(params) }); }; var ZodFunction3 = class _ZodFunction extends ZodType3 { constructor() { super(...arguments); this.validate = this.implement; } _parse(input2) { const { ctx } = this._processInputParams(input2); if (ctx.parsedType !== ZodParsedType2.function) { addIssueToContext2(ctx, { code: ZodIssueCode3.invalid_type, expected: ZodParsedType2.function, received: ctx.parsedType }); return INVALID3; } function makeArgsIssue(args, error62) { return makeIssue2({ data: args, path: ctx.path, errorMaps: [ctx.common.contextualErrorMap, ctx.schemaErrorMap, getErrorMap3(), en_default3].filter((x) => !!x), issueData: { code: ZodIssueCode3.invalid_arguments, argumentsError: error62 } }); } function makeReturnsIssue(returns, error62) { return makeIssue2({ data: returns, path: ctx.path, errorMaps: [ctx.common.contextualErrorMap, ctx.schemaErrorMap, getErrorMap3(), en_default3].filter((x) => !!x), issueData: { code: ZodIssueCode3.invalid_return_type, returnTypeError: error62 } }); } const params = { errorMap: ctx.common.contextualErrorMap }; const fn = ctx.data; if (this._def.returns instanceof ZodPromise3) { const me = this; return OK2(async function(...args) { const error62 = new ZodError3([]); const parsedArgs = await me._def.args.parseAsync(args, params).catch((e) => { error62.addIssue(makeArgsIssue(args, e)); throw error62; }); const result = await Reflect.apply(fn, this, parsedArgs); const parsedReturns = await me._def.returns._def.type.parseAsync(result, params).catch((e) => { error62.addIssue(makeReturnsIssue(result, e)); throw error62; }); return parsedReturns; }); } else { const me = this; return OK2(function(...args) { const parsedArgs = me._def.args.safeParse(args, params); if (!parsedArgs.success) { throw new ZodError3([makeArgsIssue(args, parsedArgs.error)]); } const result = Reflect.apply(fn, this, parsedArgs.data); const parsedReturns = me._def.returns.safeParse(result, params); if (!parsedReturns.success) { throw new ZodError3([makeReturnsIssue(result, parsedReturns.error)]); } return parsedReturns.data; }); } } parameters() { return this._def.args; } returnType() { return this._def.returns; } args(...items) { return new _ZodFunction({ ...this._def, args: ZodTuple3.create(items).rest(ZodUnknown3.create()) }); } returns(returnType) { return new _ZodFunction({ ...this._def, returns: returnType }); } implement(func) { const validatedFunc = this.parse(func); return validatedFunc; } strictImplement(func) { const validatedFunc = this.parse(func); return validatedFunc; } static create(args, returns, params) { return new _ZodFunction({ args: args ? args : ZodTuple3.create([]).rest(ZodUnknown3.create()), returns: returns || ZodUnknown3.create(), typeName: ZodFirstPartyTypeKind3.ZodFunction, ...processCreateParams2(params) }); } }; var ZodLazy3 = class extends ZodType3 { get schema() { return this._def.getter(); } _parse(input2) { const { ctx } = this._processInputParams(input2); const lazySchema = this._def.getter(); return lazySchema._parse({ data: ctx.data, path: ctx.path, parent: ctx }); } }; ZodLazy3.create = (getter, params) => { return new ZodLazy3({ getter, typeName: ZodFirstPartyTypeKind3.ZodLazy, ...processCreateParams2(params) }); }; var ZodLiteral3 = class extends ZodType3 { _parse(input2) { if (input2.data !== this._def.value) { const ctx = this._getOrReturnCtx(input2); addIssueToContext2(ctx, { received: ctx.data, code: ZodIssueCode3.invalid_literal, expected: this._def.value }); return INVALID3; } return { status: "valid", value: input2.data }; } get value() { return this._def.value; } }; ZodLiteral3.create = (value, params) => { return new ZodLiteral3({ value, typeName: ZodFirstPartyTypeKind3.ZodLiteral, ...processCreateParams2(params) }); }; function createZodEnum2(values, params) { return new ZodEnum3({ values, typeName: ZodFirstPartyTypeKind3.ZodEnum, ...processCreateParams2(params) }); } var ZodEnum3 = class _ZodEnum extends ZodType3 { _parse(input2) { if (typeof input2.data !== "string") { const ctx = this._getOrReturnCtx(input2); const expectedValues = this._def.values; addIssueToContext2(ctx, { expected: util2.joinValues(expectedValues), received: ctx.parsedType, code: ZodIssueCode3.invalid_type }); return INVALID3; } if (!this._cache) { this._cache = new Set(this._def.values); } if (!this._cache.has(input2.data)) { const ctx = this._getOrReturnCtx(input2); const expectedValues = this._def.values; addIssueToContext2(ctx, { received: ctx.data, code: ZodIssueCode3.invalid_enum_value, options: expectedValues }); return INVALID3; } return OK2(input2.data); } get options() { return this._def.values; } get enum() { const enumValues = {}; for (const val of this._def.values) { enumValues[val] = val; } return enumValues; } get Values() { const enumValues = {}; for (const val of this._def.values) { enumValues[val] = val; } return enumValues; } get Enum() { const enumValues = {}; for (const val of this._def.values) { enumValues[val] = val; } return enumValues; } extract(values, newDef = this._def) { return _ZodEnum.create(values, { ...this._def, ...newDef }); } exclude(values, newDef = this._def) { return _ZodEnum.create(this.options.filter((opt) => !values.includes(opt)), { ...this._def, ...newDef }); } }; ZodEnum3.create = createZodEnum2; var ZodNativeEnum2 = class extends ZodType3 { _parse(input2) { const nativeEnumValues = util2.getValidEnumValues(this._def.values); const ctx = this._getOrReturnCtx(input2); if (ctx.parsedType !== ZodParsedType2.string && ctx.parsedType !== ZodParsedType2.number) { const expectedValues = util2.objectValues(nativeEnumValues); addIssueToContext2(ctx, { expected: util2.joinValues(expectedValues), received: ctx.parsedType, code: ZodIssueCode3.invalid_type }); return INVALID3; } if (!this._cache) { this._cache = new Set(util2.getValidEnumValues(this._def.values)); } if (!this._cache.has(input2.data)) { const expectedValues = util2.objectValues(nativeEnumValues); addIssueToContext2(ctx, { received: ctx.data, code: ZodIssueCode3.invalid_enum_value, options: expectedValues }); return INVALID3; } return OK2(input2.data); } get enum() { return this._def.values; } }; ZodNativeEnum2.create = (values, params) => { return new ZodNativeEnum2({ values, typeName: ZodFirstPartyTypeKind3.ZodNativeEnum, ...processCreateParams2(params) }); }; var ZodPromise3 = class extends ZodType3 { unwrap() { return this._def.type; } _parse(input2) { const { ctx } = this._processInputParams(input2); if (ctx.parsedType !== ZodParsedType2.promise && ctx.common.async === false) { addIssueToContext2(ctx, { code: ZodIssueCode3.invalid_type, expected: ZodParsedType2.promise, received: ctx.parsedType }); return INVALID3; } const promisified = ctx.parsedType === ZodParsedType2.promise ? ctx.data : Promise.resolve(ctx.data); return OK2(promisified.then((data) => { return this._def.type.parseAsync(data, { path: ctx.path, errorMap: ctx.common.contextualErrorMap }); })); } }; ZodPromise3.create = (schema, params) => { return new ZodPromise3({ type: schema, typeName: ZodFirstPartyTypeKind3.ZodPromise, ...processCreateParams2(params) }); }; var ZodEffects2 = class extends ZodType3 { innerType() { return this._def.schema; } sourceType() { return this._def.schema._def.typeName === ZodFirstPartyTypeKind3.ZodEffects ? this._def.schema.sourceType() : this._def.schema; } _parse(input2) { const { status, ctx } = this._processInputParams(input2); const effect = this._def.effect || null; const checkCtx = { addIssue: (arg) => { addIssueToContext2(ctx, arg); if (arg.fatal) { status.abort(); } else { status.dirty(); } }, get path() { return ctx.path; } }; checkCtx.addIssue = checkCtx.addIssue.bind(checkCtx); if (effect.type === "preprocess") { const processed = effect.transform(ctx.data, checkCtx); if (ctx.common.async) { return Promise.resolve(processed).then(async (processed2) => { if (status.value === "aborted") return INVALID3; const result = await this._def.schema._parseAsync({ data: processed2, path: ctx.path, parent: ctx }); if (result.status === "aborted") return INVALID3; if (result.status === "dirty") return DIRTY2(result.value); if (status.value === "dirty") return DIRTY2(result.value); return result; }); } else { if (status.value === "aborted") return INVALID3; const result = this._def.schema._parseSync({ data: processed, path: ctx.path, parent: ctx }); if (result.status === "aborted") return INVALID3; if (result.status === "dirty") return DIRTY2(result.value); if (status.value === "dirty") return DIRTY2(result.value); return result; } } if (effect.type === "refinement") { const executeRefinement = (acc) => { const result = effect.refinement(acc, checkCtx); if (ctx.common.async) { return Promise.resolve(result); } if (result instanceof Promise) { throw new Error("Async refinement encountered during synchronous parse operation. Use .parseAsync instead."); } return acc; }; if (ctx.common.async === false) { const inner = this._def.schema._parseSync({ data: ctx.data, path: ctx.path, parent: ctx }); if (inner.status === "aborted") return INVALID3; if (inner.status === "dirty") status.dirty(); executeRefinement(inner.value); return { status: status.value, value: inner.value }; } else { return this._def.schema._parseAsync({ data: ctx.data, path: ctx.path, parent: ctx }).then((inner) => { if (inner.status === "aborted") return INVALID3; if (inner.status === "dirty") status.dirty(); return executeRefinement(inner.value).then(() => { return { status: status.value, value: inner.value }; }); }); } } if (effect.type === "transform") { if (ctx.common.async === false) { const base = this._def.schema._parseSync({ data: ctx.data, path: ctx.path, parent: ctx }); if (!isValid2(base)) return INVALID3; const result = effect.transform(base.value, checkCtx); if (result instanceof Promise) { throw new Error(`Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.`); } return { status: status.value, value: result }; } else { return this._def.schema._parseAsync({ data: ctx.data, path: ctx.path, parent: ctx }).then((base) => { if (!isValid2(base)) return INVALID3; return Promise.resolve(effect.transform(base.value, checkCtx)).then((result) => ({ status: status.value, value: result })); }); } } util2.assertNever(effect); } }; ZodEffects2.create = (schema, effect, params) => { return new ZodEffects2({ schema, typeName: ZodFirstPartyTypeKind3.ZodEffects, effect, ...processCreateParams2(params) }); }; ZodEffects2.createWithPreprocess = (preprocess2, schema, params) => { return new ZodEffects2({ schema, effect: { type: "preprocess", transform: preprocess2 }, typeName: ZodFirstPartyTypeKind3.ZodEffects, ...processCreateParams2(params) }); }; var ZodOptional3 = class extends ZodType3 { _parse(input2) { const parsedType2 = this._getType(input2); if (parsedType2 === ZodParsedType2.undefined) { return OK2(void 0); } return this._def.innerType._parse(input2); } unwrap() { return this._def.innerType; } }; ZodOptional3.create = (type, params) => { return new ZodOptional3({ innerType: type, typeName: ZodFirstPartyTypeKind3.ZodOptional, ...processCreateParams2(params) }); }; var ZodNullable3 = class extends ZodType3 { _parse(input2) { const parsedType2 = this._getType(input2); if (parsedType2 === ZodParsedType2.null) { return OK2(null); } return this._def.innerType._parse(input2); } unwrap() { return this._def.innerType; } }; ZodNullable3.create = (type, params) => { return new ZodNullable3({ innerType: type, typeName: ZodFirstPartyTypeKind3.ZodNullable, ...processCreateParams2(params) }); }; var ZodDefault3 = class extends ZodType3 { _parse(input2) { const { ctx } = this._processInputParams(input2); let data = ctx.data; if (ctx.parsedType === ZodParsedType2.undefined) { data = this._def.defaultValue(); } return this._def.innerType._parse({ data, path: ctx.path, parent: ctx }); } removeDefault() { return this._def.innerType; } }; ZodDefault3.create = (type, params) => { return new ZodDefault3({ innerType: type, typeName: ZodFirstPartyTypeKind3.ZodDefault, defaultValue: typeof params.default === "function" ? params.default : () => params.default, ...processCreateParams2(params) }); }; var ZodCatch3 = class extends ZodType3 { _parse(input2) { const { ctx } = this._processInputParams(input2); const newCtx = { ...ctx, common: { ...ctx.common, issues: [] } }; const result = this._def.innerType._parse({ data: newCtx.data, path: newCtx.path, parent: { ...newCtx } }); if (isAsync2(result)) { return result.then((result2) => { return { status: "valid", value: result2.status === "valid" ? result2.value : this._def.catchValue({ get error() { return new ZodError3(newCtx.common.issues); }, input: newCtx.data }) }; }); } else { return { status: "valid", value: result.status === "valid" ? result.value : this._def.catchValue({ get error() { return new ZodError3(newCtx.common.issues); }, input: newCtx.data }) }; } } removeCatch() { return this._def.innerType; } }; ZodCatch3.create = (type, params) => { return new ZodCatch3({ innerType: type, typeName: ZodFirstPartyTypeKind3.ZodCatch, catchValue: typeof params.catch === "function" ? params.catch : () => params.catch, ...processCreateParams2(params) }); }; var ZodNaN3 = class extends ZodType3 { _parse(input2) { const parsedType2 = this._getType(input2); if (parsedType2 !== ZodParsedType2.nan) { const ctx = this._getOrReturnCtx(input2); addIssueToContext2(ctx, { code: ZodIssueCode3.invalid_type, expected: ZodParsedType2.nan, received: ctx.parsedType }); return INVALID3; } return { status: "valid", value: input2.data }; } }; ZodNaN3.create = (params) => { return new ZodNaN3({ typeName: ZodFirstPartyTypeKind3.ZodNaN, ...processCreateParams2(params) }); }; var BRAND2 = Symbol("zod_brand"); var ZodBranded2 = class extends ZodType3 { _parse(input2) { const { ctx } = this._processInputParams(input2); const data = ctx.data; return this._def.type._parse({ data, path: ctx.path, parent: ctx }); } unwrap() { return this._def.type; } }; var ZodPipeline2 = class _ZodPipeline extends ZodType3 { _parse(input2) { const { status, ctx } = this._processInputParams(input2); if (ctx.common.async) { const handleAsync = async () => { const inResult = await this._def.in._parseAsync({ data: ctx.data, path: ctx.path, parent: ctx }); if (inResult.status === "aborted") return INVALID3; if (inResult.status === "dirty") { status.dirty(); return DIRTY2(inResult.value); } else { return this._def.out._parseAsync({ data: inResult.value, path: ctx.path, parent: ctx }); } }; return handleAsync(); } else { const inResult = this._def.in._parseSync({ data: ctx.data, path: ctx.path, parent: ctx }); if (inResult.status === "aborted") return INVALID3; if (inResult.status === "dirty") { status.dirty(); return { status: "dirty", value: inResult.value }; } else { return this._def.out._parseSync({ data: inResult.value, path: ctx.path, parent: ctx }); } } } static create(a, b) { return new _ZodPipeline({ in: a, out: b, typeName: ZodFirstPartyTypeKind3.ZodPipeline }); } }; var ZodReadonly3 = class extends ZodType3 { _parse(input2) { const result = this._def.innerType._parse(input2); const freeze = (data) => { if (isValid2(data)) { data.value = Object.freeze(data.value); } return data; }; return isAsync2(result) ? result.then((data) => freeze(data)) : freeze(result); } unwrap() { return this._def.innerType; } }; ZodReadonly3.create = (type, params) => { return new ZodReadonly3({ innerType: type, typeName: ZodFirstPartyTypeKind3.ZodReadonly, ...processCreateParams2(params) }); }; var late2 = { object: ZodObject3.lazycreate }; var ZodFirstPartyTypeKind3; (function(ZodFirstPartyTypeKind4) { ZodFirstPartyTypeKind4["ZodString"] = "ZodString"; ZodFirstPartyTypeKind4["ZodNumber"] = "ZodNumber"; ZodFirstPartyTypeKind4["ZodNaN"] = "ZodNaN"; ZodFirstPartyTypeKind4["ZodBigInt"] = "ZodBigInt"; ZodFirstPartyTypeKind4["ZodBoolean"] = "ZodBoolean"; ZodFirstPartyTypeKind4["ZodDate"] = "ZodDate"; ZodFirstPartyTypeKind4["ZodSymbol"] = "ZodSymbol"; ZodFirstPartyTypeKind4["ZodUndefined"] = "ZodUndefined"; ZodFirstPartyTypeKind4["ZodNull"] = "ZodNull"; ZodFirstPartyTypeKind4["ZodAny"] = "ZodAny"; ZodFirstPartyTypeKind4["ZodUnknown"] = "ZodUnknown"; ZodFirstPartyTypeKind4["ZodNever"] = "ZodNever"; ZodFirstPartyTypeKind4["ZodVoid"] = "ZodVoid"; ZodFirstPartyTypeKind4["ZodArray"] = "ZodArray"; ZodFirstPartyTypeKind4["ZodObject"] = "ZodObject"; ZodFirstPartyTypeKind4["ZodUnion"] = "ZodUnion"; ZodFirstPartyTypeKind4["ZodDiscriminatedUnion"] = "ZodDiscriminatedUnion"; ZodFirstPartyTypeKind4["ZodIntersection"] = "ZodIntersection"; ZodFirstPartyTypeKind4["ZodTuple"] = "ZodTuple"; ZodFirstPartyTypeKind4["ZodRecord"] = "ZodRecord"; ZodFirstPartyTypeKind4["ZodMap"] = "ZodMap"; ZodFirstPartyTypeKind4["ZodSet"] = "ZodSet"; ZodFirstPartyTypeKind4["ZodFunction"] = "ZodFunction"; ZodFirstPartyTypeKind4["ZodLazy"] = "ZodLazy"; ZodFirstPartyTypeKind4["ZodLiteral"] = "ZodLiteral"; ZodFirstPartyTypeKind4["ZodEnum"] = "ZodEnum"; ZodFirstPartyTypeKind4["ZodEffects"] = "ZodEffects"; ZodFirstPartyTypeKind4["ZodNativeEnum"] = "ZodNativeEnum"; ZodFirstPartyTypeKind4["ZodOptional"] = "ZodOptional"; ZodFirstPartyTypeKind4["ZodNullable"] = "ZodNullable"; ZodFirstPartyTypeKind4["ZodDefault"] = "ZodDefault"; ZodFirstPartyTypeKind4["ZodCatch"] = "ZodCatch"; ZodFirstPartyTypeKind4["ZodPromise"] = "ZodPromise"; ZodFirstPartyTypeKind4["ZodBranded"] = "ZodBranded"; ZodFirstPartyTypeKind4["ZodPipeline"] = "ZodPipeline"; ZodFirstPartyTypeKind4["ZodReadonly"] = "ZodReadonly"; })(ZodFirstPartyTypeKind3 || (ZodFirstPartyTypeKind3 = {})); var stringType2 = ZodString3.create; var numberType2 = ZodNumber3.create; var nanType2 = ZodNaN3.create; var bigIntType2 = ZodBigInt3.create; var booleanType2 = ZodBoolean3.create; var dateType2 = ZodDate3.create; var symbolType2 = ZodSymbol3.create; var undefinedType2 = ZodUndefined3.create; var nullType2 = ZodNull3.create; var anyType2 = ZodAny3.create; var unknownType2 = ZodUnknown3.create; var neverType2 = ZodNever3.create; var voidType2 = ZodVoid3.create; var arrayType2 = ZodArray3.create; var objectType2 = ZodObject3.create; var strictObjectType2 = ZodObject3.strictCreate; var unionType2 = ZodUnion3.create; var discriminatedUnionType2 = ZodDiscriminatedUnion3.create; var intersectionType2 = ZodIntersection3.create; var tupleType2 = ZodTuple3.create; var recordType2 = ZodRecord3.create; var mapType2 = ZodMap3.create; var setType2 = ZodSet3.create; var functionType2 = ZodFunction3.create; var lazyType2 = ZodLazy3.create; var literalType2 = ZodLiteral3.create; var enumType2 = ZodEnum3.create; var nativeEnumType2 = ZodNativeEnum2.create; var promiseType2 = ZodPromise3.create; var effectsType2 = ZodEffects2.create; var optionalType2 = ZodOptional3.create; var nullableType2 = ZodNullable3.create; var preprocessType2 = ZodEffects2.createWithPreprocess; var pipelineType2 = ZodPipeline2.create; // ../../../../node_modules/zod-to-json-schema/dist/esm/parsers/any.js function parseAnyDef(refs) { if (refs.target !== "openAi") { return {}; } const anyDefinitionPath = [ ...refs.basePath, refs.definitionPath, refs.openAiAnyTypeName ]; refs.flags.hasReferencedOpenAiAnyType = true; return { $ref: refs.$refStrategy === "relative" ? getRelativePath(anyDefinitionPath, refs.currentPath) : anyDefinitionPath.join("/") }; } // ../../../../node_modules/zod-to-json-schema/dist/esm/parsers/array.js function parseArrayDef(def, refs) { const res = { type: "array" }; if (def.type?._def && def.type?._def?.typeName !== ZodFirstPartyTypeKind3.ZodAny) { res.items = parseDef(def.type._def, { ...refs, currentPath: [...refs.currentPath, "items"] }); } if (def.minLength) { setResponseValueAndErrors(res, "minItems", def.minLength.value, def.minLength.message, refs); } if (def.maxLength) { setResponseValueAndErrors(res, "maxItems", def.maxLength.value, def.maxLength.message, refs); } if (def.exactLength) { setResponseValueAndErrors(res, "minItems", def.exactLength.value, def.exactLength.message, refs); setResponseValueAndErrors(res, "maxItems", def.exactLength.value, def.exactLength.message, refs); } return res; } // ../../../../node_modules/zod-to-json-schema/dist/esm/parsers/bigint.js function parseBigintDef(def, refs) { const res = { type: "integer", format: "int64" }; if (!def.checks) return res; for (const check2 of def.checks) { switch (check2.kind) { case "min": if (refs.target === "jsonSchema7") { if (check2.inclusive) { setResponseValueAndErrors(res, "minimum", check2.value, check2.message, refs); } else { setResponseValueAndErrors(res, "exclusiveMinimum", check2.value, check2.message, refs); } } else { if (!check2.inclusive) { res.exclusiveMinimum = true; } setResponseValueAndErrors(res, "minimum", check2.value, check2.message, refs); } break; case "max": if (refs.target === "jsonSchema7") { if (check2.inclusive) { setResponseValueAndErrors(res, "maximum", check2.value, check2.message, refs); } else { setResponseValueAndErrors(res, "exclusiveMaximum", check2.value, check2.message, refs); } } else { if (!check2.inclusive) { res.exclusiveMaximum = true; } setResponseValueAndErrors(res, "maximum", check2.value, check2.message, refs); } break; case "multipleOf": setResponseValueAndErrors(res, "multipleOf", check2.value, check2.message, refs); break; } } return res; } // ../../../../node_modules/zod-to-json-schema/dist/esm/parsers/boolean.js function parseBooleanDef() { return { type: "boolean" }; } // ../../../../node_modules/zod-to-json-schema/dist/esm/parsers/branded.js function parseBrandedDef(_def, refs) { return parseDef(_def.type._def, refs); } // ../../../../node_modules/zod-to-json-schema/dist/esm/parsers/catch.js var parseCatchDef = (def, refs) => { return parseDef(def.innerType._def, refs); }; // ../../../../node_modules/zod-to-json-schema/dist/esm/parsers/date.js function parseDateDef(def, refs, overrideDateStrategy) { const strategy = overrideDateStrategy ?? refs.dateStrategy; if (Array.isArray(strategy)) { return { anyOf: strategy.map((item, i) => parseDateDef(def, refs, item)) }; } switch (strategy) { case "string": case "format:date-time": return { type: "string", format: "date-time" }; case "format:date": return { type: "string", format: "date" }; case "integer": return integerDateParser(def, refs); } } var integerDateParser = (def, refs) => { const res = { type: "integer", format: "unix-time" }; if (refs.target === "openApi3") { return res; } for (const check2 of def.checks) { switch (check2.kind) { case "min": setResponseValueAndErrors( res, "minimum", check2.value, // This is in milliseconds check2.message, refs ); break; case "max": setResponseValueAndErrors( res, "maximum", check2.value, // This is in milliseconds check2.message, refs ); break; } } return res; }; // ../../../../node_modules/zod-to-json-schema/dist/esm/parsers/default.js function parseDefaultDef(_def, refs) { return { ...parseDef(_def.innerType._def, refs), default: _def.defaultValue() }; } // ../../../../node_modules/zod-to-json-schema/dist/esm/parsers/effects.js function parseEffectsDef(_def, refs) { return refs.effectStrategy === "input" ? parseDef(_def.schema._def, refs) : parseAnyDef(refs); } // ../../../../node_modules/zod-to-json-schema/dist/esm/parsers/enum.js function parseEnumDef(def) { return { type: "string", enum: Array.from(def.values) }; } // ../../../../node_modules/zod-to-json-schema/dist/esm/parsers/intersection.js var isJsonSchema7AllOfType = (type) => { if ("type" in type && type.type === "string") return false; return "allOf" in type; }; function parseIntersectionDef(def, refs) { const allOf = [ parseDef(def.left._def, { ...refs, currentPath: [...refs.currentPath, "allOf", "0"] }), parseDef(def.right._def, { ...refs, currentPath: [...refs.currentPath, "allOf", "1"] }) ].filter((x) => !!x); let unevaluatedProperties = refs.target === "jsonSchema2019-09" ? { unevaluatedProperties: false } : void 0; const mergedAllOf = []; allOf.forEach((schema) => { if (isJsonSchema7AllOfType(schema)) { mergedAllOf.push(...schema.allOf); if (schema.unevaluatedProperties === void 0) { unevaluatedProperties = void 0; } } else { let nestedSchema = schema; if ("additionalProperties" in schema && schema.additionalProperties === false) { const { additionalProperties, ...rest } = schema; nestedSchema = rest; } else { unevaluatedProperties = void 0; } mergedAllOf.push(nestedSchema); } }); return mergedAllOf.length ? { allOf: mergedAllOf, ...unevaluatedProperties } : void 0; } // ../../../../node_modules/zod-to-json-schema/dist/esm/parsers/literal.js function parseLiteralDef(def, refs) { const parsedType2 = typeof def.value; if (parsedType2 !== "bigint" && parsedType2 !== "number" && parsedType2 !== "boolean" && parsedType2 !== "string") { return { type: Array.isArray(def.value) ? "array" : "object" }; } if (refs.target === "openApi3") { return { type: parsedType2 === "bigint" ? "integer" : parsedType2, enum: [def.value] }; } return { type: parsedType2 === "bigint" ? "integer" : parsedType2, const: def.value }; } // ../../../../node_modules/zod-to-json-schema/dist/esm/parsers/string.js var emojiRegex3 = void 0; var zodPatterns = { /** * `c` was changed to `[cC]` to replicate /i flag */ cuid: /^[cC][^\s-]{8,}$/, cuid2: /^[0-9a-z]+$/, ulid: /^[0-9A-HJKMNP-TV-Z]{26}$/, /** * `a-z` was added to replicate /i flag */ email: /^(?!\.)(?!.*\.\.)([a-zA-Z0-9_'+\-\.]*)[a-zA-Z0-9_+-]@([a-zA-Z0-9][a-zA-Z0-9\-]*\.)+[a-zA-Z]{2,}$/, /** * Constructed a valid Unicode RegExp * * Lazily instantiate since this type of regex isn't supported * in all envs (e.g. React Native). * * See: * https://github.com/colinhacks/zod/issues/2433 * Fix in Zod: * https://github.com/colinhacks/zod/commit/9340fd51e48576a75adc919bff65dbc4a5d4c99b */ emoji: () => { if (emojiRegex3 === void 0) { emojiRegex3 = RegExp("^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$", "u"); } return emojiRegex3; }, /** * Unused */ uuid: /^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/, /** * Unused */ 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])$/, ipv4Cidr: /^(?:(?: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])\/(3[0-2]|[12]?[0-9])$/, /** * Unused */ ipv6: /^(([a-f0-9]{1,4}:){7}|::([a-f0-9]{1,4}:){0,6}|([a-f0-9]{1,4}:){1}:([a-f0-9]{1,4}:){0,5}|([a-f0-9]{1,4}:){2}:([a-f0-9]{1,4}:){0,4}|([a-f0-9]{1,4}:){3}:([a-f0-9]{1,4}:){0,3}|([a-f0-9]{1,4}:){4}:([a-f0-9]{1,4}:){0,2}|([a-f0-9]{1,4}:){5}:([a-f0-9]{1,4}:){0,1})([a-f0-9]{1,4}|(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2})))$/, ipv6Cidr: /^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/, base64: /^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/, base64url: /^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/, nanoid: /^[a-zA-Z0-9_-]{21}$/, jwt: /^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/ }; function parseStringDef(def, refs) { const res = { type: "string" }; if (def.checks) { for (const check2 of def.checks) { switch (check2.kind) { case "min": setResponseValueAndErrors(res, "minLength", typeof res.minLength === "number" ? Math.max(res.minLength, check2.value) : check2.value, check2.message, refs); break; case "max": setResponseValueAndErrors(res, "maxLength", typeof res.maxLength === "number" ? Math.min(res.maxLength, check2.value) : check2.value, check2.message, refs); break; case "email": switch (refs.emailStrategy) { case "format:email": addFormat(res, "email", check2.message, refs); break; case "format:idn-email": addFormat(res, "idn-email", check2.message, refs); break; case "pattern:zod": addPattern2(res, zodPatterns.email, check2.message, refs); break; } break; case "url": addFormat(res, "uri", check2.message, refs); break; case "uuid": addFormat(res, "uuid", check2.message, refs); break; case "regex": addPattern2(res, check2.regex, check2.message, refs); break; case "cuid": addPattern2(res, zodPatterns.cuid, check2.message, refs); break; case "cuid2": addPattern2(res, zodPatterns.cuid2, check2.message, refs); break; case "startsWith": addPattern2(res, RegExp(`^${escapeLiteralCheckValue(check2.value, refs)}`), check2.message, refs); break; case "endsWith": addPattern2(res, RegExp(`${escapeLiteralCheckValue(check2.value, refs)}$`), check2.message, refs); break; case "datetime": addFormat(res, "date-time", check2.message, refs); break; case "date": addFormat(res, "date", check2.message, refs); break; case "time": addFormat(res, "time", check2.message, refs); break; case "duration": addFormat(res, "duration", check2.message, refs); break; case "length": setResponseValueAndErrors(res, "minLength", typeof res.minLength === "number" ? Math.max(res.minLength, check2.value) : check2.value, check2.message, refs); setResponseValueAndErrors(res, "maxLength", typeof res.maxLength === "number" ? Math.min(res.maxLength, check2.value) : check2.value, check2.message, refs); break; case "includes": { addPattern2(res, RegExp(escapeLiteralCheckValue(check2.value, refs)), check2.message, refs); break; } case "ip": { if (check2.version !== "v6") { addFormat(res, "ipv4", check2.message, refs); } if (check2.version !== "v4") { addFormat(res, "ipv6", check2.message, refs); } break; } case "base64url": addPattern2(res, zodPatterns.base64url, check2.message, refs); break; case "jwt": addPattern2(res, zodPatterns.jwt, check2.message, refs); break; case "cidr": { if (check2.version !== "v6") { addPattern2(res, zodPatterns.ipv4Cidr, check2.message, refs); } if (check2.version !== "v4") { addPattern2(res, zodPatterns.ipv6Cidr, check2.message, refs); } break; } case "emoji": addPattern2(res, zodPatterns.emoji(), check2.message, refs); break; case "ulid": { addPattern2(res, zodPatterns.ulid, check2.message, refs); break; } case "base64": { switch (refs.base64Strategy) { case "format:binary": { addFormat(res, "binary", check2.message, refs); break; } case "contentEncoding:base64": { setResponseValueAndErrors(res, "contentEncoding", "base64", check2.message, refs); break; } case "pattern:zod": { addPattern2(res, zodPatterns.base64, check2.message, refs); break; } } break; } case "nanoid": { addPattern2(res, zodPatterns.nanoid, check2.message, refs); } case "toLowerCase": case "toUpperCase": case "trim": break; default: /* @__PURE__ */ ((_) => { })(check2); } } } return res; } function escapeLiteralCheckValue(literal2, refs) { return refs.patternStrategy === "escape" ? escapeNonAlphaNumeric(literal2) : literal2; } var ALPHA_NUMERIC = new Set("ABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvxyz0123456789"); function escapeNonAlphaNumeric(source) { let result = ""; for (let i = 0; i < source.length; i++) { if (!ALPHA_NUMERIC.has(source[i])) { result += "\\"; } result += source[i]; } return result; } function addFormat(schema, value, message, refs) { if (schema.format || schema.anyOf?.some((x) => x.format)) { if (!schema.anyOf) { schema.anyOf = []; } if (schema.format) { schema.anyOf.push({ format: schema.format, ...schema.errorMessage && refs.errorMessages && { errorMessage: { format: schema.errorMessage.format } } }); delete schema.format; if (schema.errorMessage) { delete schema.errorMessage.format; if (Object.keys(schema.errorMessage).length === 0) { delete schema.errorMessage; } } } schema.anyOf.push({ format: value, ...message && refs.errorMessages && { errorMessage: { format: message } } }); } else { setResponseValueAndErrors(schema, "format", value, message, refs); } } function addPattern2(schema, regex, message, refs) { if (schema.pattern || schema.allOf?.some((x) => x.pattern)) { if (!schema.allOf) { schema.allOf = []; } if (schema.pattern) { schema.allOf.push({ pattern: schema.pattern, ...schema.errorMessage && refs.errorMessages && { errorMessage: { pattern: schema.errorMessage.pattern } } }); delete schema.pattern; if (schema.errorMessage) { delete schema.errorMessage.pattern; if (Object.keys(schema.errorMessage).length === 0) { delete schema.errorMessage; } } } schema.allOf.push({ pattern: stringifyRegExpWithFlags(regex, refs), ...message && refs.errorMessages && { errorMessage: { pattern: message } } }); } else { setResponseValueAndErrors(schema, "pattern", stringifyRegExpWithFlags(regex, refs), message, refs); } } function stringifyRegExpWithFlags(regex, refs) { if (!refs.applyRegexFlags || !regex.flags) { return regex.source; } const flags = { i: regex.flags.includes("i"), m: regex.flags.includes("m"), s: regex.flags.includes("s") // `.` matches newlines }; const source = flags.i ? regex.source.toLowerCase() : regex.source; let pattern = ""; let isEscaped = false; let inCharGroup = false; let inCharRange = false; for (let i = 0; i < source.length; i++) { if (isEscaped) { pattern += source[i]; isEscaped = false; continue; } if (flags.i) { if (inCharGroup) { if (source[i].match(/[a-z]/)) { if (inCharRange) { pattern += source[i]; pattern += `${source[i - 2]}-${source[i]}`.toUpperCase(); inCharRange = false; } else if (source[i + 1] === "-" && source[i + 2]?.match(/[a-z]/)) { pattern += source[i]; inCharRange = true; } else { pattern += `${source[i]}${source[i].toUpperCase()}`; } continue; } } else if (source[i].match(/[a-z]/)) { pattern += `[${source[i]}${source[i].toUpperCase()}]`; continue; } } if (flags.m) { if (source[i] === "^") { pattern += `(^|(?<=[\r ]))`; continue; } else if (source[i] === "$") { pattern += `($|(?=[\r ]))`; continue; } } if (flags.s && source[i] === ".") { pattern += inCharGroup ? `${source[i]}\r ` : `[${source[i]}\r ]`; continue; } pattern += source[i]; if (source[i] === "\\") { isEscaped = true; } else if (inCharGroup && source[i] === "]") { inCharGroup = false; } else if (!inCharGroup && source[i] === "[") { inCharGroup = true; } } try { new RegExp(pattern); } catch { console.warn(`Could not convert regex pattern at ${refs.currentPath.join("/")} to a flag-independent form! Falling back to the flag-ignorant source`); return regex.source; } return pattern; } // ../../../../node_modules/zod-to-json-schema/dist/esm/parsers/record.js function parseRecordDef(def, refs) { if (refs.target === "openAi") { console.warn("Warning: OpenAI may not support records in schemas! Try an array of key-value pairs instead."); } if (refs.target === "openApi3" && def.keyType?._def.typeName === ZodFirstPartyTypeKind3.ZodEnum) { return { type: "object", required: def.keyType._def.values, properties: def.keyType._def.values.reduce((acc, key) => ({ ...acc, [key]: parseDef(def.valueType._def, { ...refs, currentPath: [...refs.currentPath, "properties", key] }) ?? parseAnyDef(refs) }), {}), additionalProperties: refs.rejectedAdditionalProperties }; } const schema = { type: "object", additionalProperties: parseDef(def.valueType._def, { ...refs, currentPath: [...refs.currentPath, "additionalProperties"] }) ?? refs.allowedAdditionalProperties }; if (refs.target === "openApi3") { return schema; } if (def.keyType?._def.typeName === ZodFirstPartyTypeKind3.ZodString && def.keyType._def.checks?.length) { const { type, ...keyType } = parseStringDef(def.keyType._def, refs); return { ...schema, propertyNames: keyType }; } else if (def.keyType?._def.typeName === ZodFirstPartyTypeKind3.ZodEnum) { return { ...schema, propertyNames: { enum: def.keyType._def.values } }; } else if (def.keyType?._def.typeName === ZodFirstPartyTypeKind3.ZodBranded && def.keyType._def.type._def.typeName === ZodFirstPartyTypeKind3.ZodString && def.keyType._def.type._def.checks?.length) { const { type, ...keyType } = parseBrandedDef(def.keyType._def, refs); return { ...schema, propertyNames: keyType }; } return schema; } // ../../../../node_modules/zod-to-json-schema/dist/esm/parsers/map.js function parseMapDef(def, refs) { if (refs.mapStrategy === "record") { return parseRecordDef(def, refs); } const keys = parseDef(def.keyType._def, { ...refs, currentPath: [...refs.currentPath, "items", "items", "0"] }) || parseAnyDef(refs); const values = parseDef(def.valueType._def, { ...refs, currentPath: [...refs.currentPath, "items", "items", "1"] }) || parseAnyDef(refs); return { type: "array", maxItems: 125, items: { type: "array", items: [keys, values], minItems: 2, maxItems: 2 } }; } // ../../../../node_modules/zod-to-json-schema/dist/esm/parsers/nativeEnum.js function parseNativeEnumDef(def) { const object2 = def.values; const actualKeys = Object.keys(def.values).filter((key) => { return typeof object2[object2[key]] !== "number"; }); const actualValues = actualKeys.map((key) => object2[key]); const parsedTypes = Array.from(new Set(actualValues.map((values) => typeof values))); return { type: parsedTypes.length === 1 ? parsedTypes[0] === "string" ? "string" : "number" : ["string", "number"], enum: actualValues }; } // ../../../../node_modules/zod-to-json-schema/dist/esm/parsers/never.js function parseNeverDef(refs) { return refs.target === "openAi" ? void 0 : { not: parseAnyDef({ ...refs, currentPath: [...refs.currentPath, "not"] }) }; } // ../../../../node_modules/zod-to-json-schema/dist/esm/parsers/null.js function parseNullDef(refs) { return refs.target === "openApi3" ? { enum: ["null"], nullable: true } : { type: "null" }; } // ../../../../node_modules/zod-to-json-schema/dist/esm/parsers/union.js var primitiveMappings = { ZodString: "string", ZodNumber: "number", ZodBigInt: "integer", ZodBoolean: "boolean", ZodNull: "null" }; function parseUnionDef(def, refs) { if (refs.target === "openApi3") return asAnyOf(def, refs); const options = def.options instanceof Map ? Array.from(def.options.values()) : def.options; if (options.every((x) => x._def.typeName in primitiveMappings && (!x._def.checks || !x._def.checks.length))) { const types = options.reduce((types2, x) => { const type = primitiveMappings[x._def.typeName]; return type && !types2.includes(type) ? [...types2, type] : types2; }, []); return { type: types.length > 1 ? types : types[0] }; } else if (options.every((x) => x._def.typeName === "ZodLiteral" && !x.description)) { const types = options.reduce((acc, x) => { const type = typeof x._def.value; switch (type) { case "string": case "number": case "boolean": return [...acc, type]; case "bigint": return [...acc, "integer"]; case "object": if (x._def.value === null) return [...acc, "null"]; case "symbol": case "undefined": case "function": default: return acc; } }, []); if (types.length === options.length) { const uniqueTypes = types.filter((x, i, a) => a.indexOf(x) === i); return { type: uniqueTypes.length > 1 ? uniqueTypes : uniqueTypes[0], enum: options.reduce((acc, x) => { return acc.includes(x._def.value) ? acc : [...acc, x._def.value]; }, []) }; } } else if (options.every((x) => x._def.typeName === "ZodEnum")) { return { type: "string", enum: options.reduce((acc, x) => [ ...acc, ...x._def.values.filter((x2) => !acc.includes(x2)) ], []) }; } return asAnyOf(def, refs); } var asAnyOf = (def, refs) => { const anyOf = (def.options instanceof Map ? Array.from(def.options.values()) : def.options).map((x, i) => parseDef(x._def, { ...refs, currentPath: [...refs.currentPath, "anyOf", `${i}`] })).filter((x) => !!x && (!refs.strictUnions || typeof x === "object" && Object.keys(x).length > 0)); return anyOf.length ? { anyOf } : void 0; }; // ../../../../node_modules/zod-to-json-schema/dist/esm/parsers/nullable.js function parseNullableDef(def, refs) { if (["ZodString", "ZodNumber", "ZodBigInt", "ZodBoolean", "ZodNull"].includes(def.innerType._def.typeName) && (!def.innerType._def.checks || !def.innerType._def.checks.length)) { if (refs.target === "openApi3") { return { type: primitiveMappings[def.innerType._def.typeName], nullable: true }; } return { type: [ primitiveMappings[def.innerType._def.typeName], "null" ] }; } if (refs.target === "openApi3") { const base2 = parseDef(def.innerType._def, { ...refs, currentPath: [...refs.currentPath] }); if (base2 && "$ref" in base2) return { allOf: [base2], nullable: true }; return base2 && { ...base2, nullable: true }; } const base = parseDef(def.innerType._def, { ...refs, currentPath: [...refs.currentPath, "anyOf", "0"] }); return base && { anyOf: [base, { type: "null" }] }; } // ../../../../node_modules/zod-to-json-schema/dist/esm/parsers/number.js function parseNumberDef(def, refs) { const res = { type: "number" }; if (!def.checks) return res; for (const check2 of def.checks) { switch (check2.kind) { case "int": res.type = "integer"; addErrorMessage(res, "type", check2.message, refs); break; case "min": if (refs.target === "jsonSchema7") { if (check2.inclusive) { setResponseValueAndErrors(res, "minimum", check2.value, check2.message, refs); } else { setResponseValueAndErrors(res, "exclusiveMinimum", check2.value, check2.message, refs); } } else { if (!check2.inclusive) { res.exclusiveMinimum = true; } setResponseValueAndErrors(res, "minimum", check2.value, check2.message, refs); } break; case "max": if (refs.target === "jsonSchema7") { if (check2.inclusive) { setResponseValueAndErrors(res, "maximum", check2.value, check2.message, refs); } else { setResponseValueAndErrors(res, "exclusiveMaximum", check2.value, check2.message, refs); } } else { if (!check2.inclusive) { res.exclusiveMaximum = true; } setResponseValueAndErrors(res, "maximum", check2.value, check2.message, refs); } break; case "multipleOf": setResponseValueAndErrors(res, "multipleOf", check2.value, check2.message, refs); break; } } return res; } // ../../../../node_modules/zod-to-json-schema/dist/esm/parsers/object.js function parseObjectDef(def, refs) { const forceOptionalIntoNullable = refs.target === "openAi"; const result = { type: "object", properties: {} }; const required2 = []; const shape = def.shape(); for (const propName in shape) { let propDef = shape[propName]; if (propDef === void 0 || propDef._def === void 0) { continue; } let propOptional = safeIsOptional(propDef); if (propOptional && forceOptionalIntoNullable) { if (propDef._def.typeName === "ZodOptional") { propDef = propDef._def.innerType; } if (!propDef.isNullable()) { propDef = propDef.nullable(); } propOptional = false; } const parsedDef = parseDef(propDef._def, { ...refs, currentPath: [...refs.currentPath, "properties", propName], propertyPath: [...refs.currentPath, "properties", propName] }); if (parsedDef === void 0) { continue; } result.properties[propName] = parsedDef; if (!propOptional) { required2.push(propName); } } if (required2.length) { result.required = required2; } const additionalProperties = decideAdditionalProperties(def, refs); if (additionalProperties !== void 0) { result.additionalProperties = additionalProperties; } return result; } function decideAdditionalProperties(def, refs) { if (def.catchall._def.typeName !== "ZodNever") { return parseDef(def.catchall._def, { ...refs, currentPath: [...refs.currentPath, "additionalProperties"] }); } switch (def.unknownKeys) { case "passthrough": return refs.allowedAdditionalProperties; case "strict": return refs.rejectedAdditionalProperties; case "strip": return refs.removeAdditionalStrategy === "strict" ? refs.allowedAdditionalProperties : refs.rejectedAdditionalProperties; } } function safeIsOptional(schema) { try { return schema.isOptional(); } catch { return true; } } // ../../../../node_modules/zod-to-json-schema/dist/esm/parsers/optional.js var parseOptionalDef = (def, refs) => { if (refs.currentPath.toString() === refs.propertyPath?.toString()) { return parseDef(def.innerType._def, refs); } const innerSchema = parseDef(def.innerType._def, { ...refs, currentPath: [...refs.currentPath, "anyOf", "1"] }); return innerSchema ? { anyOf: [ { not: parseAnyDef(refs) }, innerSchema ] } : parseAnyDef(refs); }; // ../../../../node_modules/zod-to-json-schema/dist/esm/parsers/pipeline.js var parsePipelineDef = (def, refs) => { if (refs.pipeStrategy === "input") { return parseDef(def.in._def, refs); } else if (refs.pipeStrategy === "output") { return parseDef(def.out._def, refs); } const a = parseDef(def.in._def, { ...refs, currentPath: [...refs.currentPath, "allOf", "0"] }); const b = parseDef(def.out._def, { ...refs, currentPath: [...refs.currentPath, "allOf", a ? "1" : "0"] }); return { allOf: [a, b].filter((x) => x !== void 0) }; }; // ../../../../node_modules/zod-to-json-schema/dist/esm/parsers/promise.js function parsePromiseDef(def, refs) { return parseDef(def.type._def, refs); } // ../../../../node_modules/zod-to-json-schema/dist/esm/parsers/set.js function parseSetDef(def, refs) { const items = parseDef(def.valueType._def, { ...refs, currentPath: [...refs.currentPath, "items"] }); const schema = { type: "array", uniqueItems: true, items }; if (def.minSize) { setResponseValueAndErrors(schema, "minItems", def.minSize.value, def.minSize.message, refs); } if (def.maxSize) { setResponseValueAndErrors(schema, "maxItems", def.maxSize.value, def.maxSize.message, refs); } return schema; } // ../../../../node_modules/zod-to-json-schema/dist/esm/parsers/tuple.js function parseTupleDef(def, refs) { if (def.rest) { return { type: "array", minItems: def.items.length, items: def.items.map((x, i) => parseDef(x._def, { ...refs, currentPath: [...refs.currentPath, "items", `${i}`] })).reduce((acc, x) => x === void 0 ? acc : [...acc, x], []), additionalItems: parseDef(def.rest._def, { ...refs, currentPath: [...refs.currentPath, "additionalItems"] }) }; } else { return { type: "array", minItems: def.items.length, maxItems: def.items.length, items: def.items.map((x, i) => parseDef(x._def, { ...refs, currentPath: [...refs.currentPath, "items", `${i}`] })).reduce((acc, x) => x === void 0 ? acc : [...acc, x], []) }; } } // ../../../../node_modules/zod-to-json-schema/dist/esm/parsers/undefined.js function parseUndefinedDef(refs) { return { not: parseAnyDef(refs) }; } // ../../../../node_modules/zod-to-json-schema/dist/esm/parsers/unknown.js function parseUnknownDef(refs) { return parseAnyDef(refs); } // ../../../../node_modules/zod-to-json-schema/dist/esm/parsers/readonly.js var parseReadonlyDef = (def, refs) => { return parseDef(def.innerType._def, refs); }; // ../../../../node_modules/zod-to-json-schema/dist/esm/selectParser.js var selectParser = (def, typeName, refs) => { switch (typeName) { case ZodFirstPartyTypeKind3.ZodString: return parseStringDef(def, refs); case ZodFirstPartyTypeKind3.ZodNumber: return parseNumberDef(def, refs); case ZodFirstPartyTypeKind3.ZodObject: return parseObjectDef(def, refs); case ZodFirstPartyTypeKind3.ZodBigInt: return parseBigintDef(def, refs); case ZodFirstPartyTypeKind3.ZodBoolean: return parseBooleanDef(); case ZodFirstPartyTypeKind3.ZodDate: return parseDateDef(def, refs); case ZodFirstPartyTypeKind3.ZodUndefined: return parseUndefinedDef(refs); case ZodFirstPartyTypeKind3.ZodNull: return parseNullDef(refs); case ZodFirstPartyTypeKind3.ZodArray: return parseArrayDef(def, refs); case ZodFirstPartyTypeKind3.ZodUnion: case ZodFirstPartyTypeKind3.ZodDiscriminatedUnion: return parseUnionDef(def, refs); case ZodFirstPartyTypeKind3.ZodIntersection: return parseIntersectionDef(def, refs); case ZodFirstPartyTypeKind3.ZodTuple: return parseTupleDef(def, refs); case ZodFirstPartyTypeKind3.ZodRecord: return parseRecordDef(def, refs); case ZodFirstPartyTypeKind3.ZodLiteral: return parseLiteralDef(def, refs); case ZodFirstPartyTypeKind3.ZodEnum: return parseEnumDef(def); case ZodFirstPartyTypeKind3.ZodNativeEnum: return parseNativeEnumDef(def); case ZodFirstPartyTypeKind3.ZodNullable: return parseNullableDef(def, refs); case ZodFirstPartyTypeKind3.ZodOptional: return parseOptionalDef(def, refs); case ZodFirstPartyTypeKind3.ZodMap: return parseMapDef(def, refs); case ZodFirstPartyTypeKind3.ZodSet: return parseSetDef(def, refs); case ZodFirstPartyTypeKind3.ZodLazy: return () => def.getter()._def; case ZodFirstPartyTypeKind3.ZodPromise: return parsePromiseDef(def, refs); case ZodFirstPartyTypeKind3.ZodNaN: case ZodFirstPartyTypeKind3.ZodNever: return parseNeverDef(refs); case ZodFirstPartyTypeKind3.ZodEffects: return parseEffectsDef(def, refs); case ZodFirstPartyTypeKind3.ZodAny: return parseAnyDef(refs); case ZodFirstPartyTypeKind3.ZodUnknown: return parseUnknownDef(refs); case ZodFirstPartyTypeKind3.ZodDefault: return parseDefaultDef(def, refs); case ZodFirstPartyTypeKind3.ZodBranded: return parseBrandedDef(def, refs); case ZodFirstPartyTypeKind3.ZodReadonly: return parseReadonlyDef(def, refs); case ZodFirstPartyTypeKind3.ZodCatch: return parseCatchDef(def, refs); case ZodFirstPartyTypeKind3.ZodPipeline: return parsePipelineDef(def, refs); case ZodFirstPartyTypeKind3.ZodFunction: case ZodFirstPartyTypeKind3.ZodVoid: case ZodFirstPartyTypeKind3.ZodSymbol: return void 0; default: return /* @__PURE__ */ ((_) => void 0)(typeName); } }; // ../../../../node_modules/zod-to-json-schema/dist/esm/parseDef.js function parseDef(def, refs, forceResolution = false) { const seenItem = refs.seen.get(def); if (refs.override) { const overrideResult = refs.override?.(def, refs, seenItem, forceResolution); if (overrideResult !== ignoreOverride) { return overrideResult; } } if (seenItem && !forceResolution) { const seenSchema = get$ref(seenItem, refs); if (seenSchema !== void 0) { return seenSchema; } } const newItem = { def, path: refs.currentPath, jsonSchema: void 0 }; refs.seen.set(def, newItem); const jsonSchemaOrGetter = selectParser(def, def.typeName, refs); const jsonSchema = typeof jsonSchemaOrGetter === "function" ? parseDef(jsonSchemaOrGetter(), refs) : jsonSchemaOrGetter; if (jsonSchema) { addMeta(def, refs, jsonSchema); } if (refs.postProcess) { const postProcessResult = refs.postProcess(jsonSchema, def, refs); newItem.jsonSchema = jsonSchema; return postProcessResult; } newItem.jsonSchema = jsonSchema; return jsonSchema; } var get$ref = (item, refs) => { switch (refs.$refStrategy) { case "root": return { $ref: item.path.join("/") }; case "relative": return { $ref: getRelativePath(refs.currentPath, item.path) }; case "none": case "seen": { if (item.path.length < refs.currentPath.length && item.path.every((value, index) => refs.currentPath[index] === value)) { console.warn(`Recursive reference detected at ${refs.currentPath.join("/")}! Defaulting to any`); return parseAnyDef(refs); } return refs.$refStrategy === "seen" ? parseAnyDef(refs) : void 0; } } }; var addMeta = (def, refs, jsonSchema) => { if (def.description) { jsonSchema.description = def.description; if (refs.markdownDescription) { jsonSchema.markdownDescription = def.description; } } return jsonSchema; }; // ../../../../node_modules/zod-to-json-schema/dist/esm/zodToJsonSchema.js var zodToJsonSchema = (schema, options) => { const refs = getRefs(options); let definitions = typeof options === "object" && options.definitions ? Object.entries(options.definitions).reduce((acc, [name2, schema2]) => ({ ...acc, [name2]: parseDef(schema2._def, { ...refs, currentPath: [...refs.basePath, refs.definitionPath, name2] }, true) ?? parseAnyDef(refs) }), {}) : void 0; const name = typeof options === "string" ? options : options?.nameStrategy === "title" ? void 0 : options?.name; const main2 = parseDef(schema._def, name === void 0 ? refs : { ...refs, currentPath: [...refs.basePath, refs.definitionPath, name] }, false) ?? parseAnyDef(refs); const title = typeof options === "object" && options.name !== void 0 && options.nameStrategy === "title" ? options.name : void 0; if (title !== void 0) { main2.title = title; } if (refs.flags.hasReferencedOpenAiAnyType) { if (!definitions) { definitions = {}; } if (!definitions[refs.openAiAnyTypeName]) { definitions[refs.openAiAnyTypeName] = { // Skipping "object" as no properties can be defined and additionalProperties must be "false" type: ["string", "number", "integer", "boolean", "array", "null"], items: { $ref: refs.$refStrategy === "relative" ? "1" : [ ...refs.basePath, refs.definitionPath, refs.openAiAnyTypeName ].join("/") } }; } } const combined = name === void 0 ? definitions ? { ...main2, [refs.definitionPath]: definitions } : main2 : { $ref: [ ...refs.$refStrategy === "relative" ? [] : refs.basePath, refs.definitionPath, name ].join("/"), [refs.definitionPath]: { ...definitions, [name]: main2 } }; if (refs.target === "jsonSchema7") { combined.$schema = "http://json-schema.org/draft-07/schema#"; } else if (refs.target === "jsonSchema2019-09" || refs.target === "openAi") { combined.$schema = "https://json-schema.org/draft/2019-09/schema#"; } if (refs.target === "openAi" && ("anyOf" in combined || "oneOf" in combined || "allOf" in combined || "type" in combined && Array.isArray(combined.type))) { console.warn("Warning: OpenAI may not support schemas with unions as roots! Try wrapping it in an object property."); } return combined; }; // ../contracts/dist/tools/json-schema.js var STRIPPED_SCHEMA_KEYS = /* @__PURE__ */ new Set([ "$schema", "$id", "$ref", "$defs", "definitions" ]); var TOOL_JSON_SCHEMA_VERSION = "https://json-schema.org/draft/2020-12/schema"; function toToolJsonSchema(schema) { const jsonSchema = zodToJsonSchema(schema, { $refStrategy: "none", effectStrategy: "input", target: "jsonSchema7" }); normalizeToolJsonSchema(jsonSchema); jsonSchema.$schema = TOOL_JSON_SCHEMA_VERSION; return jsonSchema; } function normalizeToolJsonSchema(schema) { normalizeSchemaNode(schema); return schema; } function normalizeSchemaNode(value) { if (Array.isArray(value)) { for (const item of value) { normalizeSchemaNode(item); } return; } if (!isRecord(value)) return; for (const key of STRIPPED_SCHEMA_KEYS) { delete value[key]; } if (isRecord(value.properties)) { for (const child of Object.values(value.properties)) { normalizeSchemaNode(child); } } normalizeSchemaNode(value.items); normalizeSchemaNode(value.additionalProperties); normalizeSchemaNode(value.oneOf); normalizeSchemaNode(value.anyOf); normalizeSchemaNode(value.allOf); if (Array.isArray(value.anyOf) && value.oneOf === void 0) { value.oneOf = value.anyOf; delete value.anyOf; } if (value.type === void 0) { const inferredType = inferSchemaType(value); if (inferredType) { value.type = inferredType; } } const typeValues = Array.isArray(value.type) ? value.type : [value.type]; if (typeValues.includes("object") && !isRecord(value.properties) && isRecord(value.additionalProperties) && value.propertyNames === void 0) { value.propertyNames = { type: "string" }; } if (typeValues.includes("object") && !isRecord(value.properties) && value.additionalProperties === void 0) { value.properties = {}; } if (typeValues.includes("array") && value.items === void 0) { value.items = {}; } } function inferSchemaType(schema) { if (isRecord(schema.properties) || Array.isArray(schema.required)) { return "object"; } if (schema.items !== void 0 || typeof schema.minItems === "number" || typeof schema.maxItems === "number") { return "array"; } if (Array.isArray(schema.enum)) { return inferTypeFromValues(schema.enum); } if ("const" in schema) { return inferTypeFromValues([schema.const]); } if (typeof schema.minLength === "number" || typeof schema.maxLength === "number") { return "string"; } if (typeof schema.minimum === "number" || typeof schema.maximum === "number") { return "number"; } return void 0; } function inferTypeFromValues(values) { if (values.length === 0) return void 0; if (values.every((value) => typeof value === "string")) return "string"; if (values.every((value) => typeof value === "boolean")) return "boolean"; if (values.every((value) => Number.isInteger(value))) return "integer"; if (values.every((value) => typeof value === "number")) return "number"; if (values.every((value) => value === null)) return "null"; return void 0; } function isRecord(value) { return typeof value === "object" && value !== null && !Array.isArray(value); } // ../contracts/dist/tools/node-repl.js var JsInputBaseShape = { // 同一模型 schema 同时服务 persistent core REPL 与 fresh-kernel Browser Use MCP; // 字段文案不能替任一执行边界承诺跨调用状态,生命周期由各自 tool description 说明。 code: external_exports2.string().describe("JavaScript code to execute in the Node REPL session"), // 只写 optional 无法让模型判断何时覆盖默认值,长等待容易在副作用完成后超时。 timeout_ms: external_exports2.number().int().positive().max(12e4).optional().describe("Per-call timeout in milliseconds. You MUST provide this when the code is expected to run longer than 30000 ms, including all awaited operations. Set it to at least the estimated total runtime plus 15000 ms. If that exceeds the 120000 ms maximum, split the work into multiple calls.") }; var JsUserTitleSchema = external_exports2.string().min(1).max(120).describe("Required short user-facing title in the user's language that describes the intended action without implementation terms such as js, JavaScript, or node_repl"); var JsInputSchema = external_exports2.object({ ...JsInputBaseShape, title: JsUserTitleSchema }).strict(); var JsRuntimeInputSchema = external_exports2.object({ ...JsInputBaseShape, title: JsUserTitleSchema.optional() }).strict(); var JsOutputSchema = external_exports2.object({ result: external_exports2.string().optional(), logs: external_exports2.string(), error: external_exports2.object({ name: external_exports2.string(), message: external_exports2.string(), stack: external_exports2.string().optional() }).optional(), // nodeRepl.emitImage 收集的图片(如 tab.screenshot 的截图);formatModelContent 会转成 image 内容块给模型。 images: external_exports2.array(external_exports2.object({ base64: external_exports2.string(), mimeType: external_exports2.string() }).strict()).optional(), // 模型显式 tab.screenshot() 原始 PNG 的 session artifact 绝对路径。 browserScreenshotPaths: external_exports2.array(external_exports2.string()).optional(), responseMeta: external_exports2.record(external_exports2.string(), external_exports2.unknown()).optional() }).strict(); var JsInputJsonSchema = toToolJsonSchema(JsInputSchema); var JsOutputJsonSchema = toToolJsonSchema(JsOutputSchema); // ../core/dist/repl/node-repl-session.js import { createContext, runInContext as runInContext2 } from "node:vm"; import { createRequire } from "node:module"; import { homedir, tmpdir } from "node:os"; // ../core/dist/repl/executors.js import { runInContext } from "node:vm"; // ../../../../node_modules/meriyah/dist/meriyah.mjs var version$1 = "7.1.2"; var packageJson = { version: version$1 }; var unicodeLookup = ((compressed, lookup) => { const result = new Uint32Array(69632); let index = 0; let subIndex = 0; while (index < 2597) { const inst = compressed[index++]; if (inst < 0) { subIndex -= inst; } else { let code = compressed[index++]; if (inst & 2) code = lookup[code]; if (inst & 1) { result.fill(code, subIndex, subIndex += compressed[index++]); } else { result[subIndex++] = code; } } } return result; })([-1, 2, 26, 2, 27, 2, 5, -1, 0, 77595648, 3, 44, 2, 3, 0, 14, 2, 61, 2, 62, 3, 0, 3, 0, 3168796671, 0, 4294956992, 2, 1, 2, 0, 2, 41, 3, 0, 4, 0, 4294966523, 3, 0, 4, 2, 16, 2, 63, 2, 0, 0, 4294836735, 0, 3221225471, 0, 4294901942, 2, 64, 0, 134152192, 3, 0, 2, 0, 4294951935, 3, 0, 2, 0, 2683305983, 0, 2684354047, 2, 17, 2, 0, 0, 4294961151, 3, 0, 2, 2, 19, 2, 0, 0, 608174079, 2, 0, 2, 58, 2, 7, 2, 6, 0, 4286643967, 3, 0, 2, 2, 1, 3, 0, 3, 0, 4294901711, 2, 40, 0, 4089839103, 0, 2961209759, 0, 1342439375, 0, 4294543342, 0, 3547201023, 0, 1577204103, 0, 4194240, 0, 4294688750, 2, 2, 0, 80831, 0, 4261478351, 0, 4294549486, 2, 2, 0, 2967484831, 0, 196559, 0, 3594373100, 0, 3288319768, 0, 8469959, 0, 65472, 2, 3, 0, 4093640191, 0, 929054175, 0, 65487, 0, 4294828015, 0, 4092591615, 0, 1885355487, 0, 982991, 2, 3, 2, 0, 0, 2163244511, 0, 4227923919, 0, 4236247022, 2, 69, 0, 4284449919, 0, 851904, 2, 4, 2, 12, 0, 67076095, -1, 2, 70, 0, 1073741743, 0, 4093607775, -1, 0, 50331649, 0, 3265266687, 2, 33, 0, 4294844415, 0, 4278190047, 2, 20, 2, 137, -1, 3, 0, 2, 2, 23, 2, 0, 2, 9, 2, 0, 2, 15, 2, 22, 3, 0, 10, 2, 72, 2, 0, 2, 73, 2, 74, 2, 75, 2, 0, 2, 76, 2, 0, 2, 11, 0, 261632, 2, 25, 3, 0, 2, 2, 13, 2, 4, 3, 0, 18, 2, 77, 2, 5, 3, 0, 2, 2, 78, 0, 2151677951, 2, 29, 2, 10, 0, 909311, 3, 0, 2, 0, 814743551, 2, 48, 0, 67090432, 3, 0, 2, 2, 42, 2, 0, 2, 6, 2, 0, 2, 30, 2, 8, 0, 268374015, 2, 108, 2, 51, 2, 0, 2, 79, 0, 134153215, -1, 2, 7, 2, 0, 2, 8, 0, 2684354559, 0, 67044351, 0, 3221160064, 2, 9, 2, 18, 3, 0, 2, 2, 53, 0, 1046528, 3, 0, 3, 2, 10, 2, 0, 2, 127, 0, 4294960127, 2, 9, 2, 6, 2, 11, 0, 4294377472, 2, 12, 3, 0, 16, 2, 13, 2, 0, 2, 80, 2, 9, 2, 0, 2, 81, 2, 82, 2, 83, 0, 12288, 2, 54, 0, 1048577, 2, 84, 2, 14, -1, 2, 14, 0, 131042, 2, 85, 2, 86, 2, 87, 2, 0, 2, 34, -83, 3, 0, 7, 0, 1046559, 2, 0, 2, 15, 2, 0, 0, 2147516671, 2, 21, 3, 88, 2, 2, 0, -16, 2, 89, 0, 524222462, 2, 4, 2, 0, 0, 4269801471, 2, 4, 3, 0, 2, 2, 28, 2, 16, 3, 0, 2, 2, 49, 2, 0, -1, 2, 17, -16, 3, 0, 206, -2, 3, 0, 692, 2, 71, -1, 2, 17, 2, 9, 3, 0, 8, 2, 91, 2, 18, 2, 0, 0, 3220242431, 3, 0, 3, 2, 19, 2, 92, 2, 93, 3, 0, 2, 2, 94, 2, 0, 2, 20, 2, 95, 2, 0, 0, 4351, 2, 0, 2, 10, 3, 0, 2, 0, 67043391, 0, 3909091327, 2, 0, 2, 24, 2, 10, 2, 20, 3, 0, 2, 0, 67076097, 2, 8, 2, 0, 2, 21, 0, 67059711, 0, 4236247039, 3, 0, 2, 0, 939524103, 0, 8191999, 2, 99, 2, 100, 2, 22, 2, 23, 3, 0, 3, 0, 67057663, 3, 0, 349, 2, 101, 2, 102, 2, 7, -264, 3, 0, 11, 2, 24, 3, 0, 2, 2, 32, -1, 0, 3774349439, 2, 103, 2, 104, 3, 0, 2, 2, 19, 2, 105, 3, 0, 10, 2, 9, 2, 17, 2, 0, 2, 46, 2, 0, 2, 31, 2, 106, 2, 25, 0, 1638399, 0, 57344, 2, 107, 3, 0, 3, 2, 20, 2, 26, 2, 27, 2, 5, 2, 28, 2, 0, 2, 8, 2, 109, -1, 2, 110, 2, 111, 2, 112, -1, 3, 0, 3, 2, 12, -2, 2, 0, 2, 29, -3, 0, 536870912, -4, 2, 20, 2, 0, 2, 36, 0, 1, 2, 0, 2, 65, 2, 6, 2, 12, 2, 9, 2, 0, 2, 113, -1, 3, 0, 4, 2, 9, 2, 23, 2, 114, 2, 7, 2, 0, 2, 115, 2, 0, 2, 116, 2, 117, 2, 118, 2, 0, 2, 10, 3, 0, 9, 2, 21, 2, 30, 2, 31, 2, 119, 2, 120, -2, 2, 121, 2, 122, 2, 30, 2, 21, 2, 8, -2, 2, 123, 2, 30, 3, 32, 2, -1, 2, 0, 2, 39, -2, 0, 4277137519, 0, 2269118463, -1, 3, 20, 2, -1, 2, 33, 2, 38, 2, 0, 3, 30, 2, 2, 35, 2, 19, -3, 3, 0, 2, 2, 34, -1, 2, 0, 2, 35, 2, 0, 2, 35, 2, 0, 2, 47, 2, 0, 0, 4294950463, 2, 37, -7, 2, 0, 0, 203775, 2, 125, 0, 4227858432, 2, 20, 2, 43, 2, 36, 2, 17, 2, 37, 2, 17, 2, 124, 2, 21, 3, 0, 2, 2, 38, 0, 2151677888, 2, 0, 2, 12, 0, 4294901764, 2, 145, 2, 0, 2, 56, 2, 55, 0, 5242879, 3, 0, 2, 0, 402644511, -1, 2, 128, 2, 39, 0, 3, -1, 2, 129, 2, 130, 2, 0, 0, 67045375, 2, 40, 0, 4226678271, 0, 3766565279, 0, 2039759, 2, 132, 2, 41, 0, 1046437, 0, 6, 3, 0, 2, 0, 3288270847, 0, 3, 3, 0, 2, 0, 67043519, -5, 2, 0, 0, 4282384383, 0, 1056964609, -1, 3, 0, 2, 0, 67043345, -1, 2, 0, 2, 42, 2, 23, 2, 50, 2, 11, 2, 59, 2, 38, -5, 2, 0, 2, 12, -3, 3, 0, 2, 0, 2147484671, 2, 133, 0, 4190109695, 2, 52, -2, 2, 134, 0, 4244635647, 0, 27, 2, 0, 2, 8, 2, 43, 2, 0, 2, 66, 2, 17, 2, 0, 2, 42, -3, 2, 31, -2, 2, 0, 2, 45, 2, 57, 2, 44, 2, 45, 2, 135, 2, 46, 0, 8388351, -2, 2, 136, 0, 3028287487, 2, 47, 2, 138, 0, 33259519, 2, 23, 2, 7, 2, 48, -7, 2, 21, 0, 4294836223, 0, 3355443199, 0, 134152199, -2, 2, 67, -2, 3, 0, 28, 2, 32, -3, 3, 0, 3, 2, 49, 3, 0, 6, 2, 50, -81, 2, 17, 3, 0, 2, 2, 36, 3, 0, 33, 2, 25, 2, 30, 3, 0, 124, 2, 12, 3, 0, 18, 2, 38, -213, 2, 0, 2, 32, -54, 3, 0, 17, 2, 42, 2, 8, 2, 23, 2, 0, 2, 8, 2, 23, 2, 51, 2, 0, 2, 21, 2, 52, 2, 139, 2, 25, -13, 2, 0, 2, 53, -6, 3, 0, 2, -1, 2, 140, 2, 10, -1, 3, 0, 2, 0, 4294936575, 2, 0, 0, 4294934783, -2, 0, 8323099, 3, 0, 230, 2, 30, 2, 54, 2, 8, -3, 3, 0, 3, 2, 35, -271, 2, 141, 3, 0, 9, 2, 142, 2, 143, 2, 55, 3, 0, 11, 2, 7, -72, 3, 0, 3, 2, 144, 0, 1677656575, -130, 2, 26, -16, 2, 0, 2, 24, 2, 38, -16, 0, 4161266656, 0, 4071, 0, 15360, -4, 0, 28, -13, 3, 0, 2, 2, 56, 2, 0, 2, 146, 2, 147, 2, 60, 2, 0, 2, 148, 2, 149, 2, 150, 3, 0, 10, 2, 151, 2, 152, 2, 22, 3, 56, 2, 3, 153, 2, 3, 57, 2, 0, 4294954999, 2, 0, -16, 2, 0, 2, 90, 2, 0, 0, 2105343, 0, 4160749584, 0, 65534, -34, 2, 8, 2, 155, -6, 0, 4194303871, 0, 4294903771, 2, 0, 2, 58, 2, 98, -3, 2, 0, 0, 1073684479, 0, 17407, -9, 2, 17, 2, 49, 2, 0, 2, 32, -14, 2, 17, 2, 32, -6, 2, 17, 2, 12, -6, 2, 8, 0, 3225419775, -7, 2, 156, 3, 0, 6, 0, 8323103, -1, 3, 0, 2, 2, 59, -37, 2, 60, 2, 157, 2, 158, 2, 159, 2, 160, 2, 161, -105, 2, 26, -32, 3, 0, 1335, -1, 3, 0, 136, 2, 9, 3, 0, 180, 2, 24, 3, 0, 233, 2, 162, 3, 0, 18, 2, 9, -77, 3, 0, 16, 2, 9, -47, 3, 0, 154, 2, 6, 3, 0, 264, 2, 32, -22116, 3, 0, 7, 2, 25, -6130, 3, 5, 2, -1, 0, 69207040, 3, 44, 2, 3, 0, 14, 2, 61, 2, 62, -3, 0, 3168731136, 0, 4294956864, 2, 1, 2, 0, 2, 41, 3, 0, 4, 0, 4294966275, 3, 0, 4, 2, 16, 2, 63, 2, 0, 2, 34, -1, 2, 17, 2, 64, -1, 2, 0, 0, 2047, 0, 4294885376, 3, 0, 2, 0, 3145727, 0, 2617294944, 0, 4294770688, 2, 25, 2, 65, 3, 0, 2, 0, 131135, 2, 96, 0, 70256639, 0, 71303167, 0, 272, 2, 42, 2, 6, 0, 65279, 2, 0, 2, 48, -1, 2, 97, 2, 66, 0, 4278255616, 0, 4294836227, 0, 4294549473, 0, 600178175, 0, 2952806400, 0, 268632067, 0, 4294543328, 0, 57540095, 0, 1577058304, 0, 1835008, 0, 4294688736, 2, 68, 2, 67, 0, 33554435, 2, 131, 2, 68, 0, 2952790016, 0, 131075, 0, 3594373096, 0, 67094296, 2, 67, -1, 0, 4294828e3, 0, 603979263, 0, 922746880, 0, 3, 0, 4294828001, 0, 602930687, 0, 1879048192, 0, 393219, 0, 4294828016, 0, 671088639, 0, 2154840064, 0, 4227858435, 0, 4236247008, 2, 69, 2, 38, -1, 2, 4, 0, 917503, 2, 38, -1, 2, 70, 0, 537788335, 0, 4026531935, -1, 0, 1, -1, 2, 33, 2, 71, 0, 7936, -3, 2, 0, 0, 2147485695, 0, 1010761728, 0, 4292984930, 0, 16387, 2, 0, 2, 15, 2, 22, 3, 0, 10, 2, 72, 2, 0, 2, 73, 2, 74, 2, 75, 2, 0, 2, 76, 2, 0, 2, 12, -1, 2, 25, 3, 0, 2, 2, 13, 2, 4, 3, 0, 18, 2, 77, 2, 5, 3, 0, 2, 2, 78, 0, 2147745791, 3, 19, 2, 0, 122879, 2, 0, 2, 10, 0, 276824064, -2, 3, 0, 2, 2, 42, 2, 0, 0, 4294903295, 2, 0, 2, 30, 2, 8, -1, 2, 17, 2, 51, 2, 0, 2, 79, 2, 48, -1, 2, 21, 2, 0, 2, 29, -2, 0, 128, -2, 2, 28, 2, 10, 0, 8160, -1, 2, 126, 0, 4227907585, 2, 0, 2, 37, 2, 0, 2, 50, 0, 4227915776, 2, 9, 2, 6, 2, 11, -1, 0, 74440192, 3, 0, 6, -2, 3, 0, 8, 2, 13, 2, 0, 2, 80, 2, 9, 2, 0, 2, 81, 2, 82, 2, 83, -3, 2, 84, 2, 14, -3, 2, 85, 2, 86, 2, 87, 2, 0, 2, 34, -83, 3, 0, 7, 0, 817183, 2, 0, 2, 15, 2, 0, 0, 33023, 2, 21, 3, 88, 2, -17, 2, 89, 0, 524157950, 2, 4, 2, 0, 2, 90, 2, 4, 2, 0, 2, 22, 2, 28, 2, 16, 3, 0, 2, 2, 49, 2, 0, -1, 2, 17, -16, 3, 0, 206, -2, 3, 0, 692, 2, 71, -1, 2, 17, 2, 9, 3, 0, 8, 2, 91, 0, 3072, 2, 0, 0, 2147516415, 2, 9, 3, 0, 2, 2, 25, 2, 92, 2, 93, 3, 0, 2, 2, 94, 2, 0, 2, 20, 2, 95, 0, 4294965179, 0, 7, 2, 0, 2, 10, 2, 93, 2, 10, -1, 0, 1761345536, 2, 96, 0, 4294901823, 2, 38, 2, 20, 2, 97, 2, 35, 2, 98, 0, 2080440287, 2, 0, 2, 34, 2, 154, 0, 3296722943, 2, 0, 0, 1046675455, 0, 939524101, 0, 1837055, 2, 99, 2, 100, 2, 22, 2, 23, 3, 0, 3, 0, 7, 3, 0, 349, 2, 101, 2, 102, 2, 7, -264, 3, 0, 11, 2, 24, 3, 0, 2, 2, 32, -1, 0, 2700607615, 2, 103, 2, 104, 3, 0, 2, 2, 19, 2, 105, 3, 0, 10, 2, 9, 2, 17, 2, 0, 2, 46, 2, 0, 2, 31, 2, 106, -3, 2, 107, 3, 0, 3, 2, 20, -1, 3, 5, 2, 2, 108, 2, 0, 2, 8, 2, 109, -1, 2, 110, 2, 111, 2, 112, -1, 3, 0, 3, 2, 12, -2, 2, 0, 2, 29, -8, 2, 20, 2, 0, 2, 36, -1, 2, 0, 2, 65, 2, 6, 2, 30, 2, 9, 2, 0, 2, 113, -1, 3, 0, 4, 2, 9, 2, 17, 2, 114, 2, 7, 2, 0, 2, 115, 2, 0, 2, 116, 2, 117, 2, 118, 2, 0, 2, 10, 3, 0, 9, 2, 21, 2, 30, 2, 31, 2, 119, 2, 120, -2, 2, 121, 2, 122, 2, 30, 2, 21, 2, 8, -2, 2, 123, 2, 30, 3, 32, 2, -1, 2, 0, 2, 39, -2, 0, 4277075969, 2, 30, -1, 3, 20, 2, -1, 2, 33, 2, 124, 2, 0, 3, 30, 2, 2, 35, 2, 19, -3, 3, 0, 2, 2, 34, -1, 2, 0, 2, 35, 2, 0, 2, 35, 2, 0, 2, 50, 2, 96, 0, 4294934591, 2, 37, -7, 2, 0, 0, 197631, 2, 125, -1, 2, 20, 2, 43, 2, 37, 2, 17, 0, 3, 2, 17, 2, 124, 2, 21, 2, 126, 2, 127, -1, 0, 2490368, 2, 126, 2, 25, 2, 17, 2, 34, 2, 126, 2, 38, 0, 4294901904, 0, 4718591, 2, 126, 2, 35, 0, 335544350, -1, 2, 128, 0, 2147487743, 0, 1, -1, 2, 129, 2, 130, 2, 8, -1, 2, 131, 2, 68, 0, 3758161920, 0, 3, 2, 132, 0, 12582911, 0, 655360, -1, 2, 0, 2, 29, 0, 2147485568, 0, 3, 2, 0, 2, 25, 0, 176, -5, 2, 0, 2, 49, 0, 251658240, -1, 2, 0, 2, 25, 0, 16, -1, 2, 0, 0, 16779263, -2, 2, 12, -1, 2, 38, -5, 2, 0, 2, 18, -3, 3, 0, 2, 2, 54, 2, 133, 0, 2147549183, 0, 2, -2, 2, 134, 2, 36, 0, 10, 0, 4294965249, 0, 67633151, 0, 4026597376, 2, 0, 0, 536871935, 2, 17, 2, 0, 2, 42, -6, 2, 0, 0, 1, 2, 57, 2, 49, 0, 1, 2, 135, 2, 25, -3, 2, 136, 2, 36, 2, 137, 2, 138, 0, 16778239, 2, 17, 2, 7, -8, 2, 35, 0, 4294836212, 2, 10, -3, 2, 67, -2, 3, 0, 28, 2, 32, -3, 3, 0, 3, 2, 49, 3, 0, 6, 2, 50, -81, 2, 17, 3, 0, 2, 2, 36, 3, 0, 33, 2, 25, 0, 126, 3, 0, 124, 2, 12, 3, 0, 18, 2, 38, -213, 2, 9, -55, 3, 0, 17, 2, 42, 2, 8, 2, 17, 2, 0, 2, 8, 2, 17, 2, 58, 2, 0, 2, 25, 2, 50, 2, 139, 2, 25, -13, 2, 0, 2, 71, -6, 3, 0, 2, -1, 2, 140, 2, 10, -1, 3, 0, 2, 0, 67583, -1, 2, 105, -2, 0, 8126475, 3, 0, 230, 2, 30, 2, 54, 2, 8, -3, 3, 0, 3, 2, 35, -271, 2, 141, 3, 0, 9, 2, 142, 2, 143, 2, 55, 3, 0, 11, 2, 7, -72, 3, 0, 3, 2, 144, 2, 145, -187, 3, 0, 2, 2, 56, 2, 0, 2, 146, 2, 147, 2, 60, 2, 0, 2, 148, 2, 149, 2, 150, 3, 0, 10, 2, 151, 2, 152, 2, 22, 3, 56, 2, 3, 153, 2, 3, 57, 2, 2, 154, -57, 2, 8, 2, 155, -7, 2, 17, 2, 0, 2, 58, -4, 2, 0, 0, 1065361407, 0, 16384, -9, 2, 17, 2, 58, 2, 0, 2, 18, -14, 2, 17, 2, 18, -6, 2, 17, 0, 81919, -6, 2, 8, 0, 3223273399, -7, 2, 156, 3, 0, 6, 2, 124, -1, 3, 0, 2, 0, 2063, -37, 2, 60, 2, 157, 2, 158, 2, 159, 2, 160, 2, 161, -138, 3, 0, 1335, -1, 3, 0, 136, 2, 9, 3, 0, 180, 2, 24, 3, 0, 233, 2, 162, 3, 0, 18, 2, 9, -77, 3, 0, 16, 2, 9, -47, 3, 0, 154, 2, 6, 3, 0, 264, 2, 32, -28252], [4294967295, 4294967291, 4092460543, 4294828031, 4294967294, 134217726, 4294903807, 268435455, 2147483647, 1073741823, 1048575, 3892314111, 134217727, 1061158911, 536805376, 4294910143, 4294901759, 4294901760, 4095, 262143, 536870911, 8388607, 4160749567, 4294902783, 4294918143, 65535, 67043328, 2281701374, 4294967264, 2097151, 4194303, 255, 67108863, 4294967039, 511, 524287, 131071, 63, 127, 3238002687, 4294549487, 4290772991, 33554431, 4294901888, 4286578687, 67043329, 4294770687, 67043583, 1023, 32767, 15, 2047999, 67043343, 67051519, 2147483648, 4294902e3, 4292870143, 4294966783, 16383, 67047423, 4294967279, 262083, 20511, 41943039, 493567, 4294959104, 603979775, 65536, 602799615, 805044223, 4294965206, 8191, 1031749119, 4294917631, 2134769663, 4286578493, 4282253311, 4294942719, 33540095, 4294905855, 2868854591, 1608515583, 265232348, 534519807, 2147614720, 1060109444, 4093640016, 17376, 2139062143, 224, 4169138175, 4294909951, 4286578688, 4294967292, 4294965759, 4294836224, 4294966272, 4294967280, 32768, 8289918, 4294934399, 4294901775, 4294965375, 1602223615, 4294967259, 4294443008, 268369920, 4292804608, 4294967232, 486341884, 4294963199, 3087007615, 1073692671, 4128527, 4279238655, 4294902015, 4160684047, 4290246655, 469499899, 4294967231, 134086655, 4294966591, 2445279231, 3670015, 31, 252, 4294967288, 16777215, 4294705151, 3221208447, 4294902271, 4294549472, 4294921215, 4285526655, 4294966527, 4294705152, 4294966143, 64, 4294966719, 3774873592, 4194303999, 1877934080, 262151, 2555904, 536807423, 67043839, 3758096383, 3959414372, 3755993023, 2080374783, 4294835295, 4294967103, 4160749565, 4294934527, 4087, 2016, 2147446655, 184024726, 2862017156, 1593309078, 268434431, 268434414, 4294901761]); var isIDContinue = (code) => (unicodeLookup[(code >>> 5) + 0] >>> code & 31 & 1) !== 0; var isIDStart = (code) => (unicodeLookup[(code >>> 5) + 34816] >>> code & 31 & 1) !== 0; var CharTypes = [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8 | 1024, 0, 0, 8 | 2048, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8192, 0, 1 | 2, 0, 0, 8192, 0, 0, 0, 256, 0, 256 | 32768, 0, 0, 2 | 16 | 128 | 32 | 64, 2 | 16 | 128 | 32 | 64, 2 | 16 | 32 | 64, 2 | 16 | 32 | 64, 2 | 16 | 32 | 64, 2 | 16 | 32 | 64, 2 | 16 | 32 | 64, 2 | 16 | 32 | 64, 2 | 16 | 512 | 64, 2 | 16 | 512 | 64, 0, 0, 16384, 0, 0, 0, 0, 1 | 2 | 64, 1 | 2 | 64, 1 | 2 | 64, 1 | 2 | 64, 1 | 2 | 64, 1 | 2 | 64, 1 | 2, 1 | 2, 1 | 2, 1 | 2, 1 | 2, 1 | 2, 1 | 2, 1 | 2, 1 | 2, 1 | 2, 1 | 2, 1 | 2, 1 | 2, 1 | 2, 1 | 2, 1 | 2, 1 | 2, 1 | 2, 1 | 2, 1 | 2, 0, 1, 0, 0, 1 | 2 | 4096, 0, 1 | 2 | 4 | 64, 1 | 2 | 4 | 64, 1 | 2 | 4 | 64, 1 | 2 | 4 | 64, 1 | 2 | 4 | 64, 1 | 2 | 4 | 64, 1 | 2 | 4, 1 | 2 | 4, 1 | 2 | 4, 1 | 2 | 4, 1 | 2 | 4, 1 | 2 | 4, 1 | 2 | 4, 1 | 2 | 4, 1 | 2 | 4, 1 | 2 | 4, 1 | 2 | 4, 1 | 2 | 4, 1 | 2 | 4, 1 | 2 | 4, 1 | 2 | 4, 1 | 2 | 4, 1 | 2 | 4, 1 | 2 | 4, 1 | 2 | 4, 1 | 2 | 4, 16384, 0, 0, 0, 0 ]; var isIdStart = [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0 ]; var isIdPart = [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0 ]; function isIdentifierStart(code) { return code <= 127 ? isIdStart[code] > 0 : isIDStart(code); } function isIdentifierPart(code) { return code <= 127 ? isIdPart[code] > 0 : isIDContinue(code) || (code === 8204 || code === 8205); } function advanceChar(parser) { parser.column++; return parser.currentChar = parser.source.charCodeAt(++parser.index); } function consumePossibleSurrogatePair(parser) { const hi = parser.currentChar; if ((hi & 64512) !== 55296) return 0; const lo = parser.source.charCodeAt(parser.index + 1); if ((lo & 64512) !== 56320) return 0; return 65536 + ((hi & 1023) << 10) + (lo & 1023); } function consumeLineFeed(parser, state) { parser.currentChar = parser.source.charCodeAt(++parser.index); parser.flags |= 1; if ((state & 4) === 0) { parser.column = 0; parser.line++; } } function scanNewLine(parser) { parser.flags |= 1; parser.currentChar = parser.source.charCodeAt(++parser.index); parser.column = 0; parser.line++; } function isExoticECMAScriptWhitespace(ch) { return ch === 160 || ch === 65279 || ch === 133 || ch === 5760 || ch >= 8192 && ch <= 8203 || ch === 8239 || ch === 8287 || ch === 12288 || ch === 8201 || ch === 65519; } function toHex(code) { return code < 65 ? code - 48 : code - 65 + 10 & 15; } function convertTokenType(t) { switch (t) { case 134283266: return "NumericLiteral"; case 134283267: return "StringLiteral"; case 86021: case 86022: return "BooleanLiteral"; case 86023: return "NullLiteral"; case 65540: return "RegularExpression"; case 67174408: case 67174409: case 131: return "TemplateLiteral"; default: if ((t & 143360) === 143360) return "Identifier"; if ((t & 4096) === 4096) return "Keyword"; return "Punctuator"; } } var CommentTypes = ["SingleLine", "MultiLine", "HTMLOpen", "HTMLClose", "HashbangComment"]; function skipHashBang(parser) { const { source } = parser; if (parser.currentChar === 35 && source.charCodeAt(parser.index + 1) === 33) { advanceChar(parser); advanceChar(parser); skipSingleLineComment(parser, source, 0, 4, parser.tokenStart); } } function skipSingleHTMLComment(parser, source, state, context, type, start) { if (context & 2) parser.report(0); return skipSingleLineComment(parser, source, state, type, start); } function skipSingleLineComment(parser, source, state, type, start) { const { index } = parser; parser.tokenIndex = parser.index; parser.tokenLine = parser.line; parser.tokenColumn = parser.column; while (parser.index < parser.end) { if (CharTypes[parser.currentChar] & 8) { const isCR = parser.currentChar === 13; scanNewLine(parser); if (isCR && parser.index < parser.end && parser.currentChar === 10) parser.currentChar = source.charCodeAt(++parser.index); break; } else if ((parser.currentChar ^ 8232) <= 1) { scanNewLine(parser); break; } advanceChar(parser); parser.tokenIndex = parser.index; parser.tokenLine = parser.line; parser.tokenColumn = parser.column; } if (parser.options.onComment) { const loc = { start: { line: start.line, column: start.column }, end: { line: parser.tokenLine, column: parser.tokenColumn } }; parser.options.onComment(CommentTypes[type & 255], source.slice(index, parser.tokenIndex), start.index, parser.tokenIndex, loc); } return state | 1; } function skipMultiLineComment(parser, source, state) { const { index } = parser; while (parser.index < parser.end) { if (parser.currentChar < 43) { let skippedOneAsterisk = false; while (parser.currentChar === 42) { if (!skippedOneAsterisk) { state &= -5; skippedOneAsterisk = true; } if (advanceChar(parser) === 47) { advanceChar(parser); if (parser.options.onComment) { const loc = { start: { line: parser.tokenLine, column: parser.tokenColumn }, end: { line: parser.line, column: parser.column } }; parser.options.onComment(CommentTypes[1 & 255], source.slice(index, parser.index - 2), index - 2, parser.index, loc); } parser.tokenIndex = parser.index; parser.tokenLine = parser.line; parser.tokenColumn = parser.column; return state; } } if (skippedOneAsterisk) { continue; } if (CharTypes[parser.currentChar] & 8) { if (parser.currentChar === 13) { state |= 1 | 4; scanNewLine(parser); } else { consumeLineFeed(parser, state); state = state & -5 | 1; } } else { advanceChar(parser); } } else if ((parser.currentChar ^ 8232) <= 1) { state = state & -5 | 1; scanNewLine(parser); } else { state &= -5; advanceChar(parser); } } parser.report(18); } var errorMessages = { [0]: "Unexpected token", [30]: "Unexpected token: '%0'", [1]: "Octal escape sequences are not allowed in strict mode", [2]: "Octal escape sequences are not allowed in template strings", [3]: "\\8 and \\9 are not allowed in template strings", [4]: "Private identifier #%0 is not defined", [5]: "Illegal Unicode escape sequence", [6]: "Invalid code point %0", [7]: "Invalid hexadecimal escape sequence", [9]: "Octal literals are not allowed in strict mode", [8]: "Decimal integer literals with a leading zero are forbidden in strict mode", [10]: "Expected number in radix %0", [151]: "Invalid left-hand side assignment to a destructible right-hand side", [11]: "Non-number found after exponent indicator", [12]: "Invalid BigIntLiteral", [13]: "No identifiers allowed directly after numeric literal", [14]: "Escapes \\8 or \\9 are not syntactically valid escapes", [15]: "Escapes \\8 or \\9 are not allowed in strict mode", [16]: "Unterminated string literal", [17]: "Unterminated template literal", [18]: "Multiline comment was not closed properly", [19]: "The identifier contained dynamic unicode escape that was not closed", [20]: "Illegal character '%0'", [21]: "Missing hexadecimal digits", [22]: "Invalid implicit octal", [23]: "Invalid line break in string literal", [24]: "Only unicode escapes are legal in identifier names", [25]: "Expected '%0'", [26]: "Invalid left-hand side in assignment", [27]: "Invalid left-hand side in async arrow", [28]: 'Calls to super must be in the "constructor" method of a class expression or class declaration that has a superclass', [29]: "Member access on super must be in a method", [31]: "Await expression not allowed in formal parameter", [32]: "Yield expression not allowed in formal parameter", [95]: "Unexpected token: 'escaped keyword'", [33]: "Unary expressions as the left operand of an exponentiation expression must be disambiguated with parentheses", [123]: "Async functions can only be declared at the top level or inside a block", [34]: "Unterminated regular expression", [35]: "Unexpected regular expression flag", [36]: "Duplicate regular expression flag '%0'", [37]: "%0 functions must have exactly %1 argument%2", [38]: "Setter function argument must not be a rest parameter", [39]: "%0 declaration must have a name in this context", [40]: "Function name may not contain any reserved words or be eval or arguments in strict mode", [41]: "The rest operator is missing an argument", [42]: "A getter cannot be a generator", [43]: "A setter cannot be a generator", [44]: "A computed property name must be followed by a colon or paren", [134]: "Object literal keys that are strings or numbers must be a method or have a colon", [46]: "Found `* async x(){}` but this should be `async * x(){}`", [45]: "Getters and setters can not be generators", [47]: "'%0' can not be generator method", [48]: "No line break is allowed after '=>'", [49]: "The left-hand side of the arrow can only be destructed through assignment", [50]: "The binding declaration is not destructible", [51]: "Async arrow can not be followed by new expression", [52]: "Classes may not have a static property named 'prototype'", [53]: "Class constructor may not be a %0", [54]: "Duplicate constructor method in class", [55]: "Invalid increment/decrement operand", [56]: "Invalid use of `new` keyword on an increment/decrement expression", [57]: "`=>` is an invalid assignment target", [58]: "Rest element may not have a trailing comma", [59]: "Missing initializer in %0 declaration", [60]: "'for-%0' loop head declarations can not have an initializer", [61]: "Invalid left-hand side in for-%0 loop: Must have a single binding", [62]: "Invalid shorthand property initializer", [63]: "Property name __proto__ appears more than once in object literal", [64]: "Let is disallowed as a lexically bound name", [65]: "Invalid use of '%0' inside new expression", [66]: "Illegal 'use strict' directive in function with non-simple parameter list", [67]: 'Identifier "let" disallowed as left-hand side expression in strict mode', [68]: "Illegal continue statement", [69]: "Illegal break statement", [70]: "Cannot have `let[...]` as a var name in strict mode", [71]: "Invalid destructuring assignment target", [72]: "Rest parameter may not have a default initializer", [73]: "The rest argument must the be last parameter", [74]: "Invalid rest argument", [76]: "In strict mode code, functions can only be declared at top level or inside a block", [77]: "In non-strict mode code, functions can only be declared at top level, inside a block, or as the body of an if statement", [78]: "Without web compatibility enabled functions can not be declared at top level, inside a block, or as the body of an if statement", [79]: "Class declaration can't appear in single-statement context", [80]: "Invalid left-hand side in for-%0", [81]: "Invalid assignment in for-%0", [82]: "for await (... of ...) is only valid in async functions and async generators", [83]: "The first token after the template expression should be a continuation of the template", [85]: "`let` declaration not allowed here and `let` cannot be a regular var name in strict mode", [84]: "`let \n [` is a restricted production at the start of a statement", [86]: "Catch clause requires exactly one parameter, not more (and no trailing comma)", [87]: "Catch clause parameter does not support default values", [88]: "Missing catch or finally after try", [89]: "More than one default clause in switch statement", [90]: "Illegal newline after throw", [91]: "Strict mode code may not include a with statement", [92]: "Illegal return statement", [93]: "The left hand side of the for-header binding declaration is not destructible", [94]: "new.target only allowed within functions or static blocks", [96]: "'#' not followed by identifier", [102]: "Invalid keyword", [101]: "Can not use 'let' as a class name", [100]: "'A lexical declaration can't define a 'let' binding", [99]: "Can not use `let` as variable name in strict mode", [97]: "'%0' may not be used as an identifier in this context", [98]: "Await is only valid in async functions", [103]: "The %0 keyword can only be used with the module goal", [104]: "Unicode codepoint must not be greater than 0x10FFFF", [105]: "%0 source must be string", [106]: "Only a identifier or string can be used to indicate alias", [107]: "Only '*' or '{...}' can be imported after default", [108]: "Trailing decorator may be followed by method", [109]: "Decorators can't be used with a constructor", [110]: "Can not use `await` as identifier in module or async func", [111]: "Can not use `await` as identifier in module", [112]: "HTML comments are only allowed with web compatibility (Annex B)", [113]: "The identifier 'let' must not be in expression position in strict mode", [114]: "Cannot assign to `eval` and `arguments` in strict mode", [115]: "The left-hand side of a for-of loop may not start with 'let'", [116]: "Block body arrows can not be immediately invoked without a group", [117]: "Block body arrows can not be immediately accessed without a group", [118]: "Unexpected strict mode reserved word", [119]: "Unexpected eval or arguments in strict mode", [120]: "Decorators must not be followed by a semicolon", [121]: "Calling delete on expression not allowed in strict mode", [122]: "Pattern can not have a tail", [124]: "Can not have a `yield` expression on the left side of a ternary", [125]: "An arrow function can not have a postfix update operator", [126]: "Invalid object literal key character after generator star", [127]: "Private fields can not be deleted", [129]: "Classes may not have a field called constructor", [128]: "Classes may not have a private element named constructor", [130]: "A class field initializer or static block may not contain arguments", [131]: "Generators can only be declared at the top level or inside a block", [132]: "Async methods are a restricted production and cannot have a newline following it", [133]: "Unexpected character after object literal property name", [135]: "Invalid key token", [136]: "Label '%0' has already been declared", [137]: "continue statement must be nested within an iteration statement", [138]: "Undefined label '%0'", [139]: "Trailing comma is disallowed inside import(...) arguments", [140]: "Invalid binding in JSON import", [141]: "import() requires exactly one argument", [142]: "Cannot use new with import(...)", [143]: "... is not allowed in import()", [144]: "Expected '=>'", [145]: "Duplicate binding '%0'", [146]: "Duplicate private identifier #%0", [147]: "Cannot export a duplicate name '%0'", [150]: "Duplicate %0 for-binding", [148]: "Exported binding '%0' needs to refer to a top-level declared variable", [149]: "Unexpected private field", [153]: "Numeric separators are not allowed at the end of numeric literals", [152]: "Only one underscore is allowed as numeric separator", [154]: "JSX value should be either an expression or a quoted JSX text", [155]: "Expected corresponding JSX closing tag for %0", [156]: "Adjacent JSX elements must be wrapped in an enclosing tag", [157]: "JSX attributes must only be assigned a non-empty 'expression'", [158]: "'%0' has already been declared", [159]: "'%0' shadowed a catch clause binding", [160]: "Dot property must be an identifier", [161]: "Encountered invalid input after spread/rest argument", [162]: "Catch without try", [163]: "Finally without try", [164]: "Expected corresponding closing tag for JSX fragment", [165]: "Coalescing and logical operators used together in the same expression must be disambiguated with parentheses", [166]: "Invalid tagged template on optional chain", [167]: "Invalid optional chain from super property", [168]: "Invalid optional chain from new expression", [169]: 'Cannot use "import.meta" outside a module', [170]: "Leading decorators must be attached to a class declaration", [171]: "An export name cannot include a lone surrogate", [172]: "A string literal cannot be used as an exported binding without `from`", [173]: "Private fields can't be accessed on super", [174]: "The only valid meta property for import is 'import.meta'", [175]: "'import.meta' must not contain escaped characters", [176]: 'cannot use "await" as identifier inside an async function', [177]: 'cannot use "await" in static blocks' }; var ParseError = class extends SyntaxError { start; end; range; loc; description; constructor(start, end, type, ...params) { const description = errorMessages[type].replace(/%(\d+)/g, (_, i) => params[i]); const message = "[" + start.line + ":" + start.column + "-" + end.line + ":" + end.column + "]: " + description; super(message); this.start = start.index; this.end = end.index; this.range = [start.index, end.index]; this.loc = { start: { line: start.line, column: start.column }, end: { line: end.line, column: end.column } }; this.description = description; } }; function getOwnProperty(object2, key) { return Object.hasOwn(object2, key) ? object2[key] : void 0; } var KeywordDescTable = [ "end of source", "identifier", "number", "string", "regular expression", "false", "true", "null", "template continuation", "template tail", "=>", "(", "{", ".", "...", "}", ")", ";", ",", "[", "]", ":", "?", "'", '"', "++", "--", "=", "<<=", ">>=", ">>>=", "**=", "+=", "-=", "*=", "/=", "%=", "^=", "|=", "&=", "||=", "&&=", "??=", "typeof", "delete", "void", "!", "~", "+", "-", "in", "instanceof", "*", "%", "/", "**", "&&", "||", "===", "!==", "==", "!=", "<=", ">=", "<", ">", "<<", ">>", ">>>", "&", "|", "^", "var", "let", "const", "break", "case", "catch", "class", "continue", "debugger", "default", "do", "else", "export", "extends", "finally", "for", "function", "if", "import", "new", "return", "super", "switch", "this", "throw", "try", "while", "with", "implements", "interface", "package", "private", "protected", "public", "static", "yield", "as", "async", "await", "constructor", "get", "set", "accessor", "from", "of", "enum", "eval", "arguments", "escaped keyword", "escaped future reserved keyword", "reserved if strict", "#", "BigIntLiteral", "??", "?.", "WhiteSpace", "Illegal", "LineTerminator", "PrivateField", "Template", "@", "target", "meta", "LineFeed", "Escaped", "JSXText" ]; var descKeywordTable = { this: 86111, function: 86104, if: 20569, return: 20572, var: 86088, else: 20563, for: 20567, new: 86107, in: 8673330, typeof: 16863275, while: 20578, case: 20556, break: 20555, try: 20577, catch: 20557, delete: 16863276, throw: 86112, switch: 86110, continue: 20559, default: 20561, instanceof: 8411187, do: 20562, void: 16863277, finally: 20566, async: 209005, await: 209006, class: 86094, const: 86090, constructor: 12399, debugger: 20560, export: 20564, extends: 20565, false: 86021, from: 209011, get: 209008, implements: 36964, import: 86106, interface: 36965, let: 241737, null: 86023, of: 471156, package: 36966, private: 36967, protected: 36968, public: 36969, set: 209009, static: 36970, super: 86109, true: 86022, with: 20579, yield: 241771, enum: 86133, eval: 537079926, as: 77932, arguments: 537079927, target: 209029, meta: 209030, accessor: 12402 }; function scanIdentifier(parser, context, isValidAsKeyword) { while (isIdPart[advanceChar(parser)]) ; parser.tokenValue = parser.source.slice(parser.tokenIndex, parser.index); return parser.currentChar !== 92 && parser.currentChar <= 126 ? getOwnProperty(descKeywordTable, parser.tokenValue) ?? 208897 : scanIdentifierSlowCase(parser, context, 0, isValidAsKeyword); } function scanUnicodeIdentifier(parser, context) { const cookedChar = scanIdentifierUnicodeEscape(parser); if (!isIdentifierStart(cookedChar)) parser.report(5); parser.tokenValue = String.fromCodePoint(cookedChar); return scanIdentifierSlowCase(parser, context, 1, CharTypes[cookedChar] & 4); } function scanIdentifierSlowCase(parser, context, hasEscape, isValidAsKeyword) { let start = parser.index; while (parser.index < parser.end) { if (parser.currentChar === 92) { parser.tokenValue += parser.source.slice(start, parser.index); hasEscape = 1; const code = scanIdentifierUnicodeEscape(parser); if (!isIdentifierPart(code)) parser.report(5); isValidAsKeyword = isValidAsKeyword && CharTypes[code] & 4; parser.tokenValue += String.fromCodePoint(code); start = parser.index; } else { const merged = consumePossibleSurrogatePair(parser); if (merged > 0) { if (!isIdentifierPart(merged)) { parser.report(20, String.fromCodePoint(merged)); } parser.currentChar = merged; parser.index++; parser.column++; } else if (!isIdentifierPart(parser.currentChar)) { break; } advanceChar(parser); } } if (parser.index <= parser.end) { parser.tokenValue += parser.source.slice(start, parser.index); } const { length } = parser.tokenValue; if (isValidAsKeyword && length >= 2 && length <= 11) { const token = getOwnProperty(descKeywordTable, parser.tokenValue); if (token === void 0) return 208897 | (hasEscape ? -2147483648 : 0); if (!hasEscape) return token; if (token === 209006) { if ((context & (2 | 2048)) === 0) { return token | -2147483648; } return -2147483528; } if (context & 1) { if (token === 36970) { return -2147483527; } if ((token & 36864) === 36864) { return -2147483527; } if ((token & 20480) === 20480) { if (context & 262144 && (context & 8) === 0) { return token | -2147483648; } else { return -2147483528; } } return 209018 | -2147483648; } if (context & 262144 && (context & 8) === 0 && (token & 20480) === 20480) { return token | -2147483648; } if (token === 241771) { return context & 262144 ? 209018 | -2147483648 : context & 1024 ? -2147483528 : token | -2147483648; } if (token === 209005) { return 209018 | -2147483648; } if ((token & 36864) === 36864) { return token | 12288 | -2147483648; } return -2147483528; } return 208897 | (hasEscape ? -2147483648 : 0); } function scanPrivateIdentifier(parser) { let char = advanceChar(parser); if (char === 92) return 130; const merged = consumePossibleSurrogatePair(parser); if (merged) char = merged; if (!isIdentifierStart(char)) parser.report(96); return 130; } function scanIdentifierUnicodeEscape(parser) { if (parser.source.charCodeAt(parser.index + 1) !== 117) { parser.report(5); } parser.currentChar = parser.source.charCodeAt(parser.index += 2); parser.column += 2; return scanUnicodeEscape(parser); } function scanUnicodeEscape(parser) { let codePoint = 0; const char = parser.currentChar; if (char === 123) { const begin = parser.index - 2; while (CharTypes[advanceChar(parser)] & 64) { codePoint = codePoint << 4 | toHex(parser.currentChar); if (codePoint > 1114111) throw new ParseError({ index: begin, line: parser.line, column: parser.column }, parser.currentLocation, 104); } if (parser.currentChar !== 125) { throw new ParseError({ index: begin, line: parser.line, column: parser.column }, parser.currentLocation, 7); } advanceChar(parser); return codePoint; } if ((CharTypes[char] & 64) === 0) parser.report(7); const char2 = parser.source.charCodeAt(parser.index + 1); if ((CharTypes[char2] & 64) === 0) parser.report(7); const char3 = parser.source.charCodeAt(parser.index + 2); if ((CharTypes[char3] & 64) === 0) parser.report(7); const char4 = parser.source.charCodeAt(parser.index + 3); if ((CharTypes[char4] & 64) === 0) parser.report(7); codePoint = toHex(char) << 12 | toHex(char2) << 8 | toHex(char3) << 4 | toHex(char4); parser.currentChar = parser.source.charCodeAt(parser.index += 4); parser.column += 4; return codePoint; } function scanNumber(parser, context, kind) { let char = parser.currentChar; let value = 0; let digit = 9; let atStart = kind & 64 ? 0 : 1; let digits = 0; let allowSeparator = 0; if (kind & 64) { value = "." + scanDecimalDigitsOrSeparator(parser, char); char = parser.currentChar; if (char === 110) parser.report(12); } else { if (char === 48) { char = advanceChar(parser); if ((char | 32) === 120) { kind = 8 | 128; char = advanceChar(parser); while (CharTypes[char] & (64 | 4096)) { if (char === 95) { if (!allowSeparator) parser.report(152); allowSeparator = 0; char = advanceChar(parser); continue; } allowSeparator = 1; value = value * 16 + toHex(char); digits++; char = advanceChar(parser); } if (digits === 0 || !allowSeparator) { parser.report(digits === 0 ? 21 : 153); } } else if ((char | 32) === 111) { kind = 4 | 128; char = advanceChar(parser); while (CharTypes[char] & (32 | 4096)) { if (char === 95) { if (!allowSeparator) { parser.report(152); } allowSeparator = 0; char = advanceChar(parser); continue; } allowSeparator = 1; value = value * 8 + (char - 48); digits++; char = advanceChar(parser); } if (digits === 0 || !allowSeparator) { parser.report(digits === 0 ? 0 : 153); } } else if ((char | 32) === 98) { kind = 2 | 128; char = advanceChar(parser); while (CharTypes[char] & (128 | 4096)) { if (char === 95) { if (!allowSeparator) { parser.report(152); } allowSeparator = 0; char = advanceChar(parser); continue; } allowSeparator = 1; value = value * 2 + (char - 48); digits++; char = advanceChar(parser); } if (digits === 0 || !allowSeparator) { parser.report(digits === 0 ? 0 : 153); } } else if (CharTypes[char] & 32) { if (context & 1) parser.report(1); kind = 1; while (CharTypes[char] & 16) { if (CharTypes[char] & 512) { kind = 32; atStart = 0; break; } value = value * 8 + (char - 48); char = advanceChar(parser); } } else if (CharTypes[char] & 512) { if (context & 1) parser.report(1); parser.flags |= 64; kind = 32; } else if (char === 95) { parser.report(0); } } if (kind & 48) { if (atStart) { while (digit >= 0 && CharTypes[char] & (16 | 4096)) { if (char === 95) { char = advanceChar(parser); if (char === 95 || kind & 32) { throw new ParseError(parser.currentLocation, { index: parser.index + 1, line: parser.line, column: parser.column }, 152); } allowSeparator = 1; continue; } allowSeparator = 0; value = 10 * value + (char - 48); char = advanceChar(parser); --digit; } if (allowSeparator) { throw new ParseError(parser.currentLocation, { index: parser.index + 1, line: parser.line, column: parser.column }, 153); } if (digit >= 0 && !isIdentifierStart(char) && char !== 46) { parser.tokenValue = value; if (parser.options.raw) parser.tokenRaw = parser.source.slice(parser.tokenIndex, parser.index); return 134283266; } } value += scanDecimalDigitsOrSeparator(parser, char); char = parser.currentChar; if (char === 46) { if (advanceChar(parser) === 95) parser.report(0); kind = 64; value += "." + scanDecimalDigitsOrSeparator(parser, parser.currentChar); char = parser.currentChar; } } } const end = parser.index; let isBigInt = 0; if (char === 110 && kind & 128) { isBigInt = 1; char = advanceChar(parser); } else { if ((char | 32) === 101) { char = advanceChar(parser); if (CharTypes[char] & 256) char = advanceChar(parser); const { index } = parser; if ((CharTypes[char] & 16) === 0) parser.report(11); value += parser.source.substring(end, index) + scanDecimalDigitsOrSeparator(parser, char); char = parser.currentChar; } } if (parser.index < parser.end && CharTypes[char] & 16 || isIdentifierStart(char)) { parser.report(13); } if (isBigInt) { parser.tokenRaw = parser.source.slice(parser.tokenIndex, parser.index); parser.tokenValue = BigInt(parser.tokenRaw.slice(0, -1).replaceAll("_", "")); return 134283388; } parser.tokenValue = kind & (1 | 2 | 8 | 4) ? value : kind & 32 ? parseFloat(parser.source.substring(parser.tokenIndex, parser.index)) : +value; if (parser.options.raw) parser.tokenRaw = parser.source.slice(parser.tokenIndex, parser.index); return 134283266; } function scanDecimalDigitsOrSeparator(parser, char) { let allowSeparator = 0; let start = parser.index; let ret = ""; while (CharTypes[char] & (16 | 4096)) { if (char === 95) { const { index } = parser; char = advanceChar(parser); if (char === 95) { throw new ParseError(parser.currentLocation, { index: parser.index + 1, line: parser.line, column: parser.column }, 152); } allowSeparator = 1; ret += parser.source.substring(start, index); start = parser.index; continue; } allowSeparator = 0; char = advanceChar(parser); } if (allowSeparator) { throw new ParseError(parser.currentLocation, { index: parser.index + 1, line: parser.line, column: parser.column }, 153); } return ret + parser.source.substring(start, parser.index); } var RegexState; (function(RegexState2) { RegexState2[RegexState2["Empty"] = 0] = "Empty"; RegexState2[RegexState2["Escape"] = 1] = "Escape"; RegexState2[RegexState2["Class"] = 2] = "Class"; })(RegexState || (RegexState = {})); var RegexFlags; (function(RegexFlags2) { RegexFlags2[RegexFlags2["Empty"] = 0] = "Empty"; RegexFlags2[RegexFlags2["IgnoreCase"] = 1] = "IgnoreCase"; RegexFlags2[RegexFlags2["Global"] = 2] = "Global"; RegexFlags2[RegexFlags2["Multiline"] = 4] = "Multiline"; RegexFlags2[RegexFlags2["Unicode"] = 16] = "Unicode"; RegexFlags2[RegexFlags2["Sticky"] = 8] = "Sticky"; RegexFlags2[RegexFlags2["DotAll"] = 32] = "DotAll"; RegexFlags2[RegexFlags2["Indices"] = 64] = "Indices"; RegexFlags2[RegexFlags2["UnicodeSets"] = 128] = "UnicodeSets"; })(RegexFlags || (RegexFlags = {})); function scanRegularExpression(parser) { const bodyStart = parser.index; let preparseState = RegexState.Empty; loop: while (true) { const ch = parser.currentChar; advanceChar(parser); if (preparseState & RegexState.Escape) { preparseState &= ~RegexState.Escape; } else { switch (ch) { case 47: if (!preparseState) break loop; else break; case 92: preparseState |= RegexState.Escape; break; case 91: preparseState |= RegexState.Class; break; case 93: preparseState &= RegexState.Escape; break; } } if (ch === 13 || ch === 10 || ch === 8232 || ch === 8233) { parser.report(34); } if (parser.index >= parser.source.length) { return parser.report(34); } } const bodyEnd = parser.index - 1; let mask = RegexFlags.Empty; let char = parser.currentChar; const { index: flagStart } = parser; while (isIdentifierPart(char)) { switch (char) { case 103: if (mask & RegexFlags.Global) parser.report(36, "g"); mask |= RegexFlags.Global; break; case 105: if (mask & RegexFlags.IgnoreCase) parser.report(36, "i"); mask |= RegexFlags.IgnoreCase; break; case 109: if (mask & RegexFlags.Multiline) parser.report(36, "m"); mask |= RegexFlags.Multiline; break; case 117: if (mask & RegexFlags.Unicode) parser.report(36, "u"); if (mask & RegexFlags.UnicodeSets) parser.report(36, "vu"); mask |= RegexFlags.Unicode; break; case 118: if (mask & RegexFlags.Unicode) parser.report(36, "uv"); if (mask & RegexFlags.UnicodeSets) parser.report(36, "v"); mask |= RegexFlags.UnicodeSets; break; case 121: if (mask & RegexFlags.Sticky) parser.report(36, "y"); mask |= RegexFlags.Sticky; break; case 115: if (mask & RegexFlags.DotAll) parser.report(36, "s"); mask |= RegexFlags.DotAll; break; case 100: if (mask & RegexFlags.Indices) parser.report(36, "d"); mask |= RegexFlags.Indices; break; default: parser.report(35); } char = advanceChar(parser); } const flags = parser.source.slice(flagStart, parser.index); const pattern = parser.source.slice(bodyStart, bodyEnd); parser.tokenRegExp = { pattern, flags }; if (parser.options.raw) parser.tokenRaw = parser.source.slice(parser.tokenIndex, parser.index); parser.tokenValue = validate2(parser, pattern, flags); return 65540; } function validate2(parser, pattern, flags) { try { return new RegExp(pattern, flags); } catch { if (!parser.options.validateRegex) { return null; } parser.report(34); } } function scanString(parser, context, quote) { const { index: start } = parser; let ret = ""; let char = advanceChar(parser); let marker = parser.index; while ((CharTypes[char] & 8) === 0) { if (char === quote) { ret += parser.source.slice(marker, parser.index); advanceChar(parser); if (parser.options.raw) parser.tokenRaw = parser.source.slice(start, parser.index); parser.tokenValue = ret; return 134283267; } if ((char & 8) === 8 && char === 92) { ret += parser.source.slice(marker, parser.index); char = advanceChar(parser); if (char < 127 || char === 8232 || char === 8233) { const code = parseEscape(parser, context, char); if (code >= 0) ret += String.fromCodePoint(code); else handleStringError(parser, code, 0); } else { ret += String.fromCodePoint(char); } marker = parser.index + 1; } else if (char === 8232 || char === 8233) { parser.column = -1; parser.line++; } if (parser.index >= parser.end) parser.report(16); char = advanceChar(parser); } parser.report(16); } function parseEscape(parser, context, first, isTemplate = 0) { switch (first) { case 98: return 8; case 102: return 12; case 114: return 13; case 110: return 10; case 116: return 9; case 118: return 11; case 13: { if (parser.index < parser.end) { const nextChar = parser.source.charCodeAt(parser.index + 1); if (nextChar === 10) { parser.index = parser.index + 1; parser.currentChar = nextChar; } } } case 10: case 8232: case 8233: parser.column = -1; parser.line++; return -1; case 48: case 49: case 50: case 51: { let code = first - 48; let index = parser.index + 1; let column = parser.column + 1; if (index < parser.end) { const next = parser.source.charCodeAt(index); if ((CharTypes[next] & 32) === 0) { if (code !== 0 || CharTypes[next] & 512) { if (context & 1 || isTemplate) return -2; parser.flags |= 64; } } else if (context & 1 || isTemplate) { return -2; } else { parser.currentChar = next; code = code << 3 | next - 48; index++; column++; if (index < parser.end) { const next2 = parser.source.charCodeAt(index); if (CharTypes[next2] & 32) { parser.currentChar = next2; code = code << 3 | next2 - 48; index++; column++; } } parser.flags |= 64; } parser.index = index - 1; parser.column = column - 1; } return code; } case 52: case 53: case 54: case 55: { if (isTemplate || context & 1) return -2; let code = first - 48; const index = parser.index + 1; const column = parser.column + 1; if (index < parser.end) { const next = parser.source.charCodeAt(index); if (CharTypes[next] & 32) { code = code << 3 | next - 48; parser.currentChar = next; parser.index = index; parser.column = column; } } parser.flags |= 64; return code; } case 120: { const ch1 = advanceChar(parser); if ((CharTypes[ch1] & 64) === 0) return -4; const hi = toHex(ch1); const ch2 = advanceChar(parser); if ((CharTypes[ch2] & 64) === 0) return -4; const lo = toHex(ch2); return hi << 4 | lo; } case 117: { const ch = advanceChar(parser); if (parser.currentChar === 123) { let code = 0; let digits = 0; while ((CharTypes[advanceChar(parser)] & 64) !== 0) { code = code << 4 | toHex(parser.currentChar); if (code > 1114111) return -5; digits++; } if (digits === 0 || parser.currentChar < 1 || parser.currentChar !== 125) { return -4; } return code; } else { if ((CharTypes[ch] & 64) === 0) return -4; const ch2 = parser.source.charCodeAt(parser.index + 1); if ((CharTypes[ch2] & 64) === 0) return -4; const ch3 = parser.source.charCodeAt(parser.index + 2); if ((CharTypes[ch3] & 64) === 0) return -4; const ch4 = parser.source.charCodeAt(parser.index + 3); if ((CharTypes[ch4] & 64) === 0) return -4; parser.index += 3; parser.column += 3; parser.currentChar = parser.source.charCodeAt(parser.index); return toHex(ch) << 12 | toHex(ch2) << 8 | toHex(ch3) << 4 | toHex(ch4); } } case 56: case 57: if (isTemplate || context & 1) return -3; parser.flags |= 4096; default: return first; } } function handleStringError(parser, code, isTemplate) { switch (code) { case -1: return; case -2: parser.report(isTemplate ? 2 : 1); case -3: parser.report(isTemplate ? 3 : 14); case -4: parser.report(7); case -5: parser.report(104); } } function scanTemplate(parser, context) { const { index: start } = parser; let token = 67174409; let ret = ""; let char = advanceChar(parser); while (char !== 96) { if (char === 36 && parser.source.charCodeAt(parser.index + 1) === 123) { advanceChar(parser); token = 67174408; break; } else if (char === 92) { char = advanceChar(parser); if (char > 126) { ret += String.fromCodePoint(char); } else { const { index, line, column } = parser; const code = parseEscape(parser, context | 1, char, 1); if (code >= 0) { ret += String.fromCodePoint(code); } else if (code !== -1 && context & 64) { parser.index = index; parser.line = line; parser.column = column; ret = null; char = scanBadTemplate(parser, char); if (char < 0) token = 67174408; break; } else { handleStringError(parser, code, 1); } } } else if (parser.index < parser.end) { if (char === 13 && parser.source.charCodeAt(parser.index) === 10) { ret += String.fromCodePoint(char); parser.currentChar = parser.source.charCodeAt(++parser.index); } if ((char & 83) < 3 && char === 10 || (char ^ 8232) <= 1) { parser.column = -1; parser.line++; } ret += String.fromCodePoint(char); } if (parser.index >= parser.end) parser.report(17); char = advanceChar(parser); } advanceChar(parser); parser.tokenValue = ret; parser.tokenRaw = parser.source.slice(start + 1, parser.index - (token === 67174409 ? 1 : 2)); return token; } function scanBadTemplate(parser, ch) { while (ch !== 96) { switch (ch) { case 36: { const index = parser.index + 1; if (index < parser.end && parser.source.charCodeAt(index) === 123) { parser.index = index; parser.column++; return -ch; } break; } case 10: case 8232: case 8233: parser.column = -1; parser.line++; } if (parser.index >= parser.end) parser.report(17); ch = advanceChar(parser); } return ch; } function scanTemplateTail(parser, context) { if (parser.index >= parser.end) parser.report(0); parser.index--; parser.column--; return scanTemplate(parser, context); } var TokenLookup = [ 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 135, 127, 127, 129, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 127, 16842798, 134283267, 130, 208897, 8391477, 8390213, 134283267, 67174411, 16, 8391476, 25233968, 18, 25233969, 67108877, 8457014, 134283266, 134283266, 134283266, 134283266, 134283266, 134283266, 134283266, 134283266, 134283266, 134283266, 21, 1074790417, 8456256, 1077936155, 8390721, 22, 132, 208897, 208897, 208897, 208897, 208897, 208897, 208897, 208897, 208897, 208897, 208897, 208897, 208897, 208897, 208897, 208897, 208897, 208897, 208897, 208897, 208897, 208897, 208897, 208897, 208897, 208897, 69271571, 136, 20, 8389959, 208897, 131, 4096, 4096, 4096, 4096, 4096, 4096, 4096, 208897, 4096, 208897, 208897, 4096, 208897, 4096, 208897, 4096, 208897, 4096, 4096, 4096, 208897, 4096, 4096, 208897, 4096, 4096, 2162700, 8389702, 1074790415, 16842799, 128 ]; function nextToken(parser, context) { parser.flags = (parser.flags | 1) ^ 1; parser.startIndex = parser.index; parser.startColumn = parser.column; parser.startLine = parser.line; parser.setToken(scanSingleToken(parser, context, 0)); } function scanSingleToken(parser, context, state) { const isStartOfLine = parser.index === 0; const { source } = parser; while (parser.index < parser.end) { parser.tokenIndex = parser.index; parser.tokenColumn = parser.column; parser.tokenLine = parser.line; let char = parser.currentChar; if (char <= 126) { const token = TokenLookup[char]; switch (token) { case 67174411: case 16: case 2162700: case 1074790415: case 69271571: case 20: case 21: case 1074790417: case 18: case 16842799: case 132: case 128: advanceChar(parser); return token; case 208897: return scanIdentifier(parser, context, 0); case 4096: return scanIdentifier(parser, context, 1); case 134283266: return scanNumber(parser, context, 16 | 128); case 134283267: return scanString(parser, context, char); case 131: return scanTemplate(parser, context); case 136: return scanUnicodeIdentifier(parser, context); case 130: return scanPrivateIdentifier(parser); case 127: advanceChar(parser); break; case 129: state |= 1 | 4; scanNewLine(parser); break; case 135: consumeLineFeed(parser, state); state = state & -5 | 1; break; case 8456256: { const ch = advanceChar(parser); if (parser.index < parser.end) { if (ch === 60) { if (parser.index < parser.end && advanceChar(parser) === 61) { advanceChar(parser); return 4194332; } return 8390978; } else if (ch === 61) { advanceChar(parser); return 8390718; } if (ch === 33) { const index = parser.index + 1; if (index + 1 < parser.end && source.charCodeAt(index) === 45 && source.charCodeAt(index + 1) == 45) { parser.column += 3; parser.currentChar = source.charCodeAt(parser.index += 3); state = skipSingleHTMLComment(parser, source, state, context, 2, parser.tokenStart); continue; } return 8456256; } } return 8456256; } case 1077936155: { advanceChar(parser); const ch = parser.currentChar; if (ch === 61) { if (advanceChar(parser) === 61) { advanceChar(parser); return 8390458; } return 8390460; } if (ch === 62) { advanceChar(parser); return 10; } return 1077936155; } case 16842798: if (advanceChar(parser) !== 61) { return 16842798; } if (advanceChar(parser) !== 61) { return 8390461; } advanceChar(parser); return 8390459; case 8391477: if (advanceChar(parser) !== 61) return 8391477; advanceChar(parser); return 4194340; case 8391476: { advanceChar(parser); if (parser.index >= parser.end) return 8391476; const ch = parser.currentChar; if (ch === 61) { advanceChar(parser); return 4194338; } if (ch !== 42) return 8391476; if (advanceChar(parser) !== 61) return 8391735; advanceChar(parser); return 4194335; } case 8389959: if (advanceChar(parser) !== 61) return 8389959; advanceChar(parser); return 4194341; case 25233968: { advanceChar(parser); const ch = parser.currentChar; if (ch === 43) { advanceChar(parser); return 33619993; } if (ch === 61) { advanceChar(parser); return 4194336; } return 25233968; } case 25233969: { advanceChar(parser); const ch = parser.currentChar; if (ch === 45) { advanceChar(parser); if ((state & 1 || isStartOfLine) && parser.currentChar === 62) { if (!parser.options.webcompat) parser.report(112); advanceChar(parser); state = skipSingleHTMLComment(parser, source, state, context, 3, parser.tokenStart); continue; } return 33619994; } if (ch === 61) { advanceChar(parser); return 4194337; } return 25233969; } case 8457014: { advanceChar(parser); if (parser.index < parser.end) { const ch = parser.currentChar; if (ch === 47) { advanceChar(parser); state = skipSingleLineComment(parser, source, state, 0, parser.tokenStart); continue; } if (ch === 42) { advanceChar(parser); state = skipMultiLineComment(parser, source, state); continue; } if (context & 32) { return scanRegularExpression(parser); } if (ch === 61) { advanceChar(parser); return 4259875; } } return 8457014; } case 67108877: { const next = advanceChar(parser); if (next >= 48 && next <= 57) return scanNumber(parser, context, 64 | 16); if (next === 46) { const index = parser.index + 1; if (index < parser.end && source.charCodeAt(index) === 46) { parser.column += 2; parser.currentChar = source.charCodeAt(parser.index += 2); return 14; } } return 67108877; } case 8389702: { advanceChar(parser); const ch = parser.currentChar; if (ch === 124) { advanceChar(parser); if (parser.currentChar === 61) { advanceChar(parser); return 4718632; } return 8913465; } if (ch === 61) { advanceChar(parser); return 4194342; } return 8389702; } case 8390721: { advanceChar(parser); const ch = parser.currentChar; if (ch === 61) { advanceChar(parser); return 8390719; } if (ch !== 62) return 8390721; advanceChar(parser); if (parser.index < parser.end) { const ch2 = parser.currentChar; if (ch2 === 62) { if (advanceChar(parser) === 61) { advanceChar(parser); return 4194334; } return 8390980; } if (ch2 === 61) { advanceChar(parser); return 4194333; } } return 8390979; } case 8390213: { advanceChar(parser); const ch = parser.currentChar; if (ch === 38) { advanceChar(parser); if (parser.currentChar === 61) { advanceChar(parser); return 4718633; } return 8913720; } if (ch === 61) { advanceChar(parser); return 4194343; } return 8390213; } case 22: { let ch = advanceChar(parser); if (ch === 63) { advanceChar(parser); if (parser.currentChar === 61) { advanceChar(parser); return 4718634; } return 276824445; } if (ch === 46) { const index = parser.index + 1; if (index < parser.end) { ch = source.charCodeAt(index); if (!(ch >= 48 && ch <= 57)) { advanceChar(parser); return 67108990; } } } return 22; } } } else { if ((char ^ 8232) <= 1) { state = state & -5 | 1; scanNewLine(parser); continue; } const merged = consumePossibleSurrogatePair(parser); if (merged > 0) char = merged; if (isIDStart(char)) { parser.tokenValue = ""; return scanIdentifierSlowCase(parser, context, 0, 0); } if (isExoticECMAScriptWhitespace(char)) { advanceChar(parser); continue; } parser.report(20, String.fromCodePoint(char)); } } return 1048576; } function matchOrInsertSemicolon(parser, context) { if ((parser.flags & 1) === 0 && (parser.getToken() & 1048576) !== 1048576) { parser.report(30, KeywordDescTable[parser.getToken() & 255]); } if (!consumeOpt(parser, context, 1074790417)) { parser.options.onInsertedSemicolon?.(parser.startIndex); } } function isValidStrictMode(parser, index, tokenIndex, tokenValue) { if (index - tokenIndex < 13 && tokenValue === "use strict") { if ((parser.getToken() & 1048576) === 1048576 || parser.flags & 1) { return 1; } } return 0; } function optionalBit(parser, context, t) { if (parser.getToken() !== t) return 0; nextToken(parser, context); return 1; } function consumeOpt(parser, context, t) { if (parser.getToken() !== t) return false; nextToken(parser, context); return true; } function consume(parser, context, t) { if (parser.getToken() !== t) parser.report(25, KeywordDescTable[t & 255]); nextToken(parser, context); } function reinterpretToPattern(parser, node2) { switch (node2.type) { case "ArrayExpression": { node2.type = "ArrayPattern"; const { elements } = node2; for (let i = 0, n = elements.length; i < n; ++i) { const element = elements[i]; if (element) reinterpretToPattern(parser, element); } return; } case "ObjectExpression": { node2.type = "ObjectPattern"; const { properties } = node2; for (let i = 0, n = properties.length; i < n; ++i) { reinterpretToPattern(parser, properties[i]); } return; } case "AssignmentExpression": node2.type = "AssignmentPattern"; if (node2.operator !== "=") parser.report(71); delete node2.operator; reinterpretToPattern(parser, node2.left); return; case "Property": reinterpretToPattern(parser, node2.value); return; case "SpreadElement": node2.type = "RestElement"; reinterpretToPattern(parser, node2.argument); } } function validateBindingIdentifier(parser, context, kind, t, skipEvalArgCheck) { if (context & 1) { if ((t & 36864) === 36864) { parser.report(118); } if (!skipEvalArgCheck && (t & 537079808) === 537079808) { parser.report(119); } } if ((t & 20480) === 20480 || t === -2147483528) { parser.report(102); } if (kind & (8 | 16) && (t & 255) === (241737 & 255)) { parser.report(100); } if (context & (2048 | 2) && t === 209006) { parser.report(110); } if (context & (1024 | 1) && t === 241771) { parser.report(97, "yield"); } } function validateFunctionName(parser, context, t) { if (context & 1) { if ((t & 36864) === 36864) { parser.report(118); } if ((t & 537079808) === 537079808) { parser.report(119); } if (t === -2147483527) { parser.report(95); } if (t === -2147483528) { parser.report(95); } } if ((t & 20480) === 20480) { parser.report(102); } if (context & (2048 | 2) && t === 209006) { parser.report(110); } if (context & (1024 | 1) && t === 241771) { parser.report(97, "yield"); } } function isStrictReservedWord(parser, context, t) { if (t === 209006) { if (context & (2048 | 2)) parser.report(110); parser.destructible |= 128; } if (t === 241771 && context & 1024) parser.report(97, "yield"); return (t & 20480) === 20480 || (t & 36864) === 36864 || t == -2147483527; } function isPropertyWithPrivateFieldKey(expr) { return !expr.property ? false : expr.property.type === "PrivateIdentifier"; } function isValidLabel(parser, labels, name, isIterationStatement) { while (labels) { if (labels["$" + name]) { if (isIterationStatement) parser.report(137); return 1; } if (isIterationStatement && labels.loop) isIterationStatement = 0; labels = labels["$"]; } return 0; } function validateAndDeclareLabel(parser, labels, name) { let set2 = labels; while (set2) { if (set2["$" + name]) parser.report(136, name); set2 = set2["$"]; } labels["$" + name] = 1; } function isEqualTagName(elementName) { switch (elementName.type) { case "JSXIdentifier": return elementName.name; case "JSXNamespacedName": return elementName.namespace + ":" + elementName.name; case "JSXMemberExpression": return isEqualTagName(elementName.object) + "." + isEqualTagName(elementName.property); } } function isValidIdentifier(context, t) { if (context & (1 | 1024)) { if (context & 2 && t === 209006) return false; if (context & 1024 && t === 241771) return false; return (t & 12288) === 12288; } return (t & 12288) === 12288 || (t & 36864) === 36864; } function classifyIdentifier(parser, context, t) { if ((t & 537079808) === 537079808) { if (context & 1) parser.report(119); parser.flags |= 512; } if (!isValidIdentifier(context, t)) parser.report(0); } var entities = { AElig: "\xC6", AMP: "&", Aacute: "\xC1", Abreve: "\u0102", Acirc: "\xC2", Acy: "\u0410", Afr: "\u{1D504}", Agrave: "\xC0", Alpha: "\u0391", Amacr: "\u0100", And: "\u2A53", Aogon: "\u0104", Aopf: "\u{1D538}", ApplyFunction: "\u2061", Aring: "\xC5", Ascr: "\u{1D49C}", Assign: "\u2254", Atilde: "\xC3", Auml: "\xC4", Backslash: "\u2216", Barv: "\u2AE7", Barwed: "\u2306", Bcy: "\u0411", Because: "\u2235", Bernoullis: "\u212C", Beta: "\u0392", Bfr: "\u{1D505}", Bopf: "\u{1D539}", Breve: "\u02D8", Bscr: "\u212C", Bumpeq: "\u224E", CHcy: "\u0427", COPY: "\xA9", Cacute: "\u0106", Cap: "\u22D2", CapitalDifferentialD: "\u2145", Cayleys: "\u212D", Ccaron: "\u010C", Ccedil: "\xC7", Ccirc: "\u0108", Cconint: "\u2230", Cdot: "\u010A", Cedilla: "\xB8", CenterDot: "\xB7", Cfr: "\u212D", Chi: "\u03A7", CircleDot: "\u2299", CircleMinus: "\u2296", CirclePlus: "\u2295", CircleTimes: "\u2297", ClockwiseContourIntegral: "\u2232", CloseCurlyDoubleQuote: "\u201D", CloseCurlyQuote: "\u2019", Colon: "\u2237", Colone: "\u2A74", Congruent: "\u2261", Conint: "\u222F", ContourIntegral: "\u222E", Copf: "\u2102", Coproduct: "\u2210", CounterClockwiseContourIntegral: "\u2233", Cross: "\u2A2F", Cscr: "\u{1D49E}", Cup: "\u22D3", CupCap: "\u224D", DD: "\u2145", DDotrahd: "\u2911", DJcy: "\u0402", DScy: "\u0405", DZcy: "\u040F", Dagger: "\u2021", Darr: "\u21A1", Dashv: "\u2AE4", Dcaron: "\u010E", Dcy: "\u0414", Del: "\u2207", Delta: "\u0394", Dfr: "\u{1D507}", DiacriticalAcute: "\xB4", DiacriticalDot: "\u02D9", DiacriticalDoubleAcute: "\u02DD", DiacriticalGrave: "`", DiacriticalTilde: "\u02DC", Diamond: "\u22C4", DifferentialD: "\u2146", Dopf: "\u{1D53B}", Dot: "\xA8", DotDot: "\u20DC", DotEqual: "\u2250", DoubleContourIntegral: "\u222F", DoubleDot: "\xA8", DoubleDownArrow: "\u21D3", DoubleLeftArrow: "\u21D0", DoubleLeftRightArrow: "\u21D4", DoubleLeftTee: "\u2AE4", DoubleLongLeftArrow: "\u27F8", DoubleLongLeftRightArrow: "\u27FA", DoubleLongRightArrow: "\u27F9", DoubleRightArrow: "\u21D2", DoubleRightTee: "\u22A8", DoubleUpArrow: "\u21D1", DoubleUpDownArrow: "\u21D5", DoubleVerticalBar: "\u2225", DownArrow: "\u2193", DownArrowBar: "\u2913", DownArrowUpArrow: "\u21F5", DownBreve: "\u0311", DownLeftRightVector: "\u2950", DownLeftTeeVector: "\u295E", DownLeftVector: "\u21BD", DownLeftVectorBar: "\u2956", DownRightTeeVector: "\u295F", DownRightVector: "\u21C1", DownRightVectorBar: "\u2957", DownTee: "\u22A4", DownTeeArrow: "\u21A7", Downarrow: "\u21D3", Dscr: "\u{1D49F}", Dstrok: "\u0110", ENG: "\u014A", ETH: "\xD0", Eacute: "\xC9", Ecaron: "\u011A", Ecirc: "\xCA", Ecy: "\u042D", Edot: "\u0116", Efr: "\u{1D508}", Egrave: "\xC8", Element: "\u2208", Emacr: "\u0112", EmptySmallSquare: "\u25FB", EmptyVerySmallSquare: "\u25AB", Eogon: "\u0118", Eopf: "\u{1D53C}", Epsilon: "\u0395", Equal: "\u2A75", EqualTilde: "\u2242", Equilibrium: "\u21CC", Escr: "\u2130", Esim: "\u2A73", Eta: "\u0397", Euml: "\xCB", Exists: "\u2203", ExponentialE: "\u2147", Fcy: "\u0424", Ffr: "\u{1D509}", FilledSmallSquare: "\u25FC", FilledVerySmallSquare: "\u25AA", Fopf: "\u{1D53D}", ForAll: "\u2200", Fouriertrf: "\u2131", Fscr: "\u2131", GJcy: "\u0403", GT: ">", Gamma: "\u0393", Gammad: "\u03DC", Gbreve: "\u011E", Gcedil: "\u0122", Gcirc: "\u011C", Gcy: "\u0413", Gdot: "\u0120", Gfr: "\u{1D50A}", Gg: "\u22D9", Gopf: "\u{1D53E}", GreaterEqual: "\u2265", GreaterEqualLess: "\u22DB", GreaterFullEqual: "\u2267", GreaterGreater: "\u2AA2", GreaterLess: "\u2277", GreaterSlantEqual: "\u2A7E", GreaterTilde: "\u2273", Gscr: "\u{1D4A2}", Gt: "\u226B", HARDcy: "\u042A", Hacek: "\u02C7", Hat: "^", Hcirc: "\u0124", Hfr: "\u210C", HilbertSpace: "\u210B", Hopf: "\u210D", HorizontalLine: "\u2500", Hscr: "\u210B", Hstrok: "\u0126", HumpDownHump: "\u224E", HumpEqual: "\u224F", IEcy: "\u0415", IJlig: "\u0132", IOcy: "\u0401", Iacute: "\xCD", Icirc: "\xCE", Icy: "\u0418", Idot: "\u0130", Ifr: "\u2111", Igrave: "\xCC", Im: "\u2111", Imacr: "\u012A", ImaginaryI: "\u2148", Implies: "\u21D2", Int: "\u222C", Integral: "\u222B", Intersection: "\u22C2", InvisibleComma: "\u2063", InvisibleTimes: "\u2062", Iogon: "\u012E", Iopf: "\u{1D540}", Iota: "\u0399", Iscr: "\u2110", Itilde: "\u0128", Iukcy: "\u0406", Iuml: "\xCF", Jcirc: "\u0134", Jcy: "\u0419", Jfr: "\u{1D50D}", Jopf: "\u{1D541}", Jscr: "\u{1D4A5}", Jsercy: "\u0408", Jukcy: "\u0404", KHcy: "\u0425", KJcy: "\u040C", Kappa: "\u039A", Kcedil: "\u0136", Kcy: "\u041A", Kfr: "\u{1D50E}", Kopf: "\u{1D542}", Kscr: "\u{1D4A6}", LJcy: "\u0409", LT: "<", Lacute: "\u0139", Lambda: "\u039B", Lang: "\u27EA", Laplacetrf: "\u2112", Larr: "\u219E", Lcaron: "\u013D", Lcedil: "\u013B", Lcy: "\u041B", LeftAngleBracket: "\u27E8", LeftArrow: "\u2190", LeftArrowBar: "\u21E4", LeftArrowRightArrow: "\u21C6", LeftCeiling: "\u2308", LeftDoubleBracket: "\u27E6", LeftDownTeeVector: "\u2961", LeftDownVector: "\u21C3", LeftDownVectorBar: "\u2959", LeftFloor: "\u230A", LeftRightArrow: "\u2194", LeftRightVector: "\u294E", LeftTee: "\u22A3", LeftTeeArrow: "\u21A4", LeftTeeVector: "\u295A", LeftTriangle: "\u22B2", LeftTriangleBar: "\u29CF", LeftTriangleEqual: "\u22B4", LeftUpDownVector: "\u2951", LeftUpTeeVector: "\u2960", LeftUpVector: "\u21BF", LeftUpVectorBar: "\u2958", LeftVector: "\u21BC", LeftVectorBar: "\u2952", Leftarrow: "\u21D0", Leftrightarrow: "\u21D4", LessEqualGreater: "\u22DA", LessFullEqual: "\u2266", LessGreater: "\u2276", LessLess: "\u2AA1", LessSlantEqual: "\u2A7D", LessTilde: "\u2272", Lfr: "\u{1D50F}", Ll: "\u22D8", Lleftarrow: "\u21DA", Lmidot: "\u013F", LongLeftArrow: "\u27F5", LongLeftRightArrow: "\u27F7", LongRightArrow: "\u27F6", Longleftarrow: "\u27F8", Longleftrightarrow: "\u27FA", Longrightarrow: "\u27F9", Lopf: "\u{1D543}", LowerLeftArrow: "\u2199", LowerRightArrow: "\u2198", Lscr: "\u2112", Lsh: "\u21B0", Lstrok: "\u0141", Lt: "\u226A", Map: "\u2905", Mcy: "\u041C", MediumSpace: "\u205F", Mellintrf: "\u2133", Mfr: "\u{1D510}", MinusPlus: "\u2213", Mopf: "\u{1D544}", Mscr: "\u2133", Mu: "\u039C", NJcy: "\u040A", Nacute: "\u0143", Ncaron: "\u0147", Ncedil: "\u0145", Ncy: "\u041D", NegativeMediumSpace: "\u200B", NegativeThickSpace: "\u200B", NegativeThinSpace: "\u200B", NegativeVeryThinSpace: "\u200B", NestedGreaterGreater: "\u226B", NestedLessLess: "\u226A", NewLine: "\n", Nfr: "\u{1D511}", NoBreak: "\u2060", NonBreakingSpace: "\xA0", Nopf: "\u2115", Not: "\u2AEC", NotCongruent: "\u2262", NotCupCap: "\u226D", NotDoubleVerticalBar: "\u2226", NotElement: "\u2209", NotEqual: "\u2260", NotEqualTilde: "\u2242\u0338", NotExists: "\u2204", NotGreater: "\u226F", NotGreaterEqual: "\u2271", NotGreaterFullEqual: "\u2267\u0338", NotGreaterGreater: "\u226B\u0338", NotGreaterLess: "\u2279", NotGreaterSlantEqual: "\u2A7E\u0338", NotGreaterTilde: "\u2275", NotHumpDownHump: "\u224E\u0338", NotHumpEqual: "\u224F\u0338", NotLeftTriangle: "\u22EA", NotLeftTriangleBar: "\u29CF\u0338", NotLeftTriangleEqual: "\u22EC", NotLess: "\u226E", NotLessEqual: "\u2270", NotLessGreater: "\u2278", NotLessLess: "\u226A\u0338", NotLessSlantEqual: "\u2A7D\u0338", NotLessTilde: "\u2274", NotNestedGreaterGreater: "\u2AA2\u0338", NotNestedLessLess: "\u2AA1\u0338", NotPrecedes: "\u2280", NotPrecedesEqual: "\u2AAF\u0338", NotPrecedesSlantEqual: "\u22E0", NotReverseElement: "\u220C", NotRightTriangle: "\u22EB", NotRightTriangleBar: "\u29D0\u0338", NotRightTriangleEqual: "\u22ED", NotSquareSubset: "\u228F\u0338", NotSquareSubsetEqual: "\u22E2", NotSquareSuperset: "\u2290\u0338", NotSquareSupersetEqual: "\u22E3", NotSubset: "\u2282\u20D2", NotSubsetEqual: "\u2288", NotSucceeds: "\u2281", NotSucceedsEqual: "\u2AB0\u0338", NotSucceedsSlantEqual: "\u22E1", NotSucceedsTilde: "\u227F\u0338", NotSuperset: "\u2283\u20D2", NotSupersetEqual: "\u2289", NotTilde: "\u2241", NotTildeEqual: "\u2244", NotTildeFullEqual: "\u2247", NotTildeTilde: "\u2249", NotVerticalBar: "\u2224", Nscr: "\u{1D4A9}", Ntilde: "\xD1", Nu: "\u039D", OElig: "\u0152", Oacute: "\xD3", Ocirc: "\xD4", Ocy: "\u041E", Odblac: "\u0150", Ofr: "\u{1D512}", Ograve: "\xD2", Omacr: "\u014C", Omega: "\u03A9", Omicron: "\u039F", Oopf: "\u{1D546}", OpenCurlyDoubleQuote: "\u201C", OpenCurlyQuote: "\u2018", Or: "\u2A54", Oscr: "\u{1D4AA}", Oslash: "\xD8", Otilde: "\xD5", Otimes: "\u2A37", Ouml: "\xD6", OverBar: "\u203E", OverBrace: "\u23DE", OverBracket: "\u23B4", OverParenthesis: "\u23DC", PartialD: "\u2202", Pcy: "\u041F", Pfr: "\u{1D513}", Phi: "\u03A6", Pi: "\u03A0", PlusMinus: "\xB1", Poincareplane: "\u210C", Popf: "\u2119", Pr: "\u2ABB", Precedes: "\u227A", PrecedesEqual: "\u2AAF", PrecedesSlantEqual: "\u227C", PrecedesTilde: "\u227E", Prime: "\u2033", Product: "\u220F", Proportion: "\u2237", Proportional: "\u221D", Pscr: "\u{1D4AB}", Psi: "\u03A8", QUOT: '"', Qfr: "\u{1D514}", Qopf: "\u211A", Qscr: "\u{1D4AC}", RBarr: "\u2910", REG: "\xAE", Racute: "\u0154", Rang: "\u27EB", Rarr: "\u21A0", Rarrtl: "\u2916", Rcaron: "\u0158", Rcedil: "\u0156", Rcy: "\u0420", Re: "\u211C", ReverseElement: "\u220B", ReverseEquilibrium: "\u21CB", ReverseUpEquilibrium: "\u296F", Rfr: "\u211C", Rho: "\u03A1", RightAngleBracket: "\u27E9", RightArrow: "\u2192", RightArrowBar: "\u21E5", RightArrowLeftArrow: "\u21C4", RightCeiling: "\u2309", RightDoubleBracket: "\u27E7", RightDownTeeVector: "\u295D", RightDownVector: "\u21C2", RightDownVectorBar: "\u2955", RightFloor: "\u230B", RightTee: "\u22A2", RightTeeArrow: "\u21A6", RightTeeVector: "\u295B", RightTriangle: "\u22B3", RightTriangleBar: "\u29D0", RightTriangleEqual: "\u22B5", RightUpDownVector: "\u294F", RightUpTeeVector: "\u295C", RightUpVector: "\u21BE", RightUpVectorBar: "\u2954", RightVector: "\u21C0", RightVectorBar: "\u2953", Rightarrow: "\u21D2", Ropf: "\u211D", RoundImplies: "\u2970", Rrightarrow: "\u21DB", Rscr: "\u211B", Rsh: "\u21B1", RuleDelayed: "\u29F4", SHCHcy: "\u0429", SHcy: "\u0428", SOFTcy: "\u042C", Sacute: "\u015A", Sc: "\u2ABC", Scaron: "\u0160", Scedil: "\u015E", Scirc: "\u015C", Scy: "\u0421", Sfr: "\u{1D516}", ShortDownArrow: "\u2193", ShortLeftArrow: "\u2190", ShortRightArrow: "\u2192", ShortUpArrow: "\u2191", Sigma: "\u03A3", SmallCircle: "\u2218", Sopf: "\u{1D54A}", Sqrt: "\u221A", Square: "\u25A1", SquareIntersection: "\u2293", SquareSubset: "\u228F", SquareSubsetEqual: "\u2291", SquareSuperset: "\u2290", SquareSupersetEqual: "\u2292", SquareUnion: "\u2294", Sscr: "\u{1D4AE}", Star: "\u22C6", Sub: "\u22D0", Subset: "\u22D0", SubsetEqual: "\u2286", Succeeds: "\u227B", SucceedsEqual: "\u2AB0", SucceedsSlantEqual: "\u227D", SucceedsTilde: "\u227F", SuchThat: "\u220B", Sum: "\u2211", Sup: "\u22D1", Superset: "\u2283", SupersetEqual: "\u2287", Supset: "\u22D1", THORN: "\xDE", TRADE: "\u2122", TSHcy: "\u040B", TScy: "\u0426", Tab: " ", Tau: "\u03A4", Tcaron: "\u0164", Tcedil: "\u0162", Tcy: "\u0422", Tfr: "\u{1D517}", Therefore: "\u2234", Theta: "\u0398", ThickSpace: "\u205F\u200A", ThinSpace: "\u2009", Tilde: "\u223C", TildeEqual: "\u2243", TildeFullEqual: "\u2245", TildeTilde: "\u2248", Topf: "\u{1D54B}", TripleDot: "\u20DB", Tscr: "\u{1D4AF}", Tstrok: "\u0166", Uacute: "\xDA", Uarr: "\u219F", Uarrocir: "\u2949", Ubrcy: "\u040E", Ubreve: "\u016C", Ucirc: "\xDB", Ucy: "\u0423", Udblac: "\u0170", Ufr: "\u{1D518}", Ugrave: "\xD9", Umacr: "\u016A", UnderBar: "_", UnderBrace: "\u23DF", UnderBracket: "\u23B5", UnderParenthesis: "\u23DD", Union: "\u22C3", UnionPlus: "\u228E", Uogon: "\u0172", Uopf: "\u{1D54C}", UpArrow: "\u2191", UpArrowBar: "\u2912", UpArrowDownArrow: "\u21C5", UpDownArrow: "\u2195", UpEquilibrium: "\u296E", UpTee: "\u22A5", UpTeeArrow: "\u21A5", Uparrow: "\u21D1", Updownarrow: "\u21D5", UpperLeftArrow: "\u2196", UpperRightArrow: "\u2197", Upsi: "\u03D2", Upsilon: "\u03A5", Uring: "\u016E", Uscr: "\u{1D4B0}", Utilde: "\u0168", Uuml: "\xDC", VDash: "\u22AB", Vbar: "\u2AEB", Vcy: "\u0412", Vdash: "\u22A9", Vdashl: "\u2AE6", Vee: "\u22C1", Verbar: "\u2016", Vert: "\u2016", VerticalBar: "\u2223", VerticalLine: "|", VerticalSeparator: "\u2758", VerticalTilde: "\u2240", VeryThinSpace: "\u200A", Vfr: "\u{1D519}", Vopf: "\u{1D54D}", Vscr: "\u{1D4B1}", Vvdash: "\u22AA", Wcirc: "\u0174", Wedge: "\u22C0", Wfr: "\u{1D51A}", Wopf: "\u{1D54E}", Wscr: "\u{1D4B2}", Xfr: "\u{1D51B}", Xi: "\u039E", Xopf: "\u{1D54F}", Xscr: "\u{1D4B3}", YAcy: "\u042F", YIcy: "\u0407", YUcy: "\u042E", Yacute: "\xDD", Ycirc: "\u0176", Ycy: "\u042B", Yfr: "\u{1D51C}", Yopf: "\u{1D550}", Yscr: "\u{1D4B4}", Yuml: "\u0178", ZHcy: "\u0416", Zacute: "\u0179", Zcaron: "\u017D", Zcy: "\u0417", Zdot: "\u017B", ZeroWidthSpace: "\u200B", Zeta: "\u0396", Zfr: "\u2128", Zopf: "\u2124", Zscr: "\u{1D4B5}", aacute: "\xE1", abreve: "\u0103", ac: "\u223E", acE: "\u223E\u0333", acd: "\u223F", acirc: "\xE2", acute: "\xB4", acy: "\u0430", aelig: "\xE6", af: "\u2061", afr: "\u{1D51E}", agrave: "\xE0", alefsym: "\u2135", aleph: "\u2135", alpha: "\u03B1", amacr: "\u0101", amalg: "\u2A3F", amp: "&", and: "\u2227", andand: "\u2A55", andd: "\u2A5C", andslope: "\u2A58", andv: "\u2A5A", ang: "\u2220", ange: "\u29A4", angle: "\u2220", angmsd: "\u2221", angmsdaa: "\u29A8", angmsdab: "\u29A9", angmsdac: "\u29AA", angmsdad: "\u29AB", angmsdae: "\u29AC", angmsdaf: "\u29AD", angmsdag: "\u29AE", angmsdah: "\u29AF", angrt: "\u221F", angrtvb: "\u22BE", angrtvbd: "\u299D", angsph: "\u2222", angst: "\xC5", angzarr: "\u237C", aogon: "\u0105", aopf: "\u{1D552}", ap: "\u2248", apE: "\u2A70", apacir: "\u2A6F", ape: "\u224A", apid: "\u224B", apos: "'", approx: "\u2248", approxeq: "\u224A", aring: "\xE5", ascr: "\u{1D4B6}", ast: "*", asymp: "\u2248", asympeq: "\u224D", atilde: "\xE3", auml: "\xE4", awconint: "\u2233", awint: "\u2A11", bNot: "\u2AED", backcong: "\u224C", backepsilon: "\u03F6", backprime: "\u2035", backsim: "\u223D", backsimeq: "\u22CD", barvee: "\u22BD", barwed: "\u2305", barwedge: "\u2305", bbrk: "\u23B5", bbrktbrk: "\u23B6", bcong: "\u224C", bcy: "\u0431", bdquo: "\u201E", becaus: "\u2235", because: "\u2235", bemptyv: "\u29B0", bepsi: "\u03F6", bernou: "\u212C", beta: "\u03B2", beth: "\u2136", between: "\u226C", bfr: "\u{1D51F}", bigcap: "\u22C2", bigcirc: "\u25EF", bigcup: "\u22C3", bigodot: "\u2A00", bigoplus: "\u2A01", bigotimes: "\u2A02", bigsqcup: "\u2A06", bigstar: "\u2605", bigtriangledown: "\u25BD", bigtriangleup: "\u25B3", biguplus: "\u2A04", bigvee: "\u22C1", bigwedge: "\u22C0", bkarow: "\u290D", blacklozenge: "\u29EB", blacksquare: "\u25AA", blacktriangle: "\u25B4", blacktriangledown: "\u25BE", blacktriangleleft: "\u25C2", blacktriangleright: "\u25B8", blank: "\u2423", blk12: "\u2592", blk14: "\u2591", blk34: "\u2593", block: "\u2588", bne: "=\u20E5", bnequiv: "\u2261\u20E5", bnot: "\u2310", bopf: "\u{1D553}", bot: "\u22A5", bottom: "\u22A5", bowtie: "\u22C8", boxDL: "\u2557", boxDR: "\u2554", boxDl: "\u2556", boxDr: "\u2553", boxH: "\u2550", boxHD: "\u2566", boxHU: "\u2569", boxHd: "\u2564", boxHu: "\u2567", boxUL: "\u255D", boxUR: "\u255A", boxUl: "\u255C", boxUr: "\u2559", boxV: "\u2551", boxVH: "\u256C", boxVL: "\u2563", boxVR: "\u2560", boxVh: "\u256B", boxVl: "\u2562", boxVr: "\u255F", boxbox: "\u29C9", boxdL: "\u2555", boxdR: "\u2552", boxdl: "\u2510", boxdr: "\u250C", boxh: "\u2500", boxhD: "\u2565", boxhU: "\u2568", boxhd: "\u252C", boxhu: "\u2534", boxminus: "\u229F", boxplus: "\u229E", boxtimes: "\u22A0", boxuL: "\u255B", boxuR: "\u2558", boxul: "\u2518", boxur: "\u2514", boxv: "\u2502", boxvH: "\u256A", boxvL: "\u2561", boxvR: "\u255E", boxvh: "\u253C", boxvl: "\u2524", boxvr: "\u251C", bprime: "\u2035", breve: "\u02D8", brvbar: "\xA6", bscr: "\u{1D4B7}", bsemi: "\u204F", bsim: "\u223D", bsime: "\u22CD", bsol: "\\", bsolb: "\u29C5", bsolhsub: "\u27C8", bull: "\u2022", bullet: "\u2022", bump: "\u224E", bumpE: "\u2AAE", bumpe: "\u224F", bumpeq: "\u224F", cacute: "\u0107", cap: "\u2229", capand: "\u2A44", capbrcup: "\u2A49", capcap: "\u2A4B", capcup: "\u2A47", capdot: "\u2A40", caps: "\u2229\uFE00", caret: "\u2041", caron: "\u02C7", ccaps: "\u2A4D", ccaron: "\u010D", ccedil: "\xE7", ccirc: "\u0109", ccups: "\u2A4C", ccupssm: "\u2A50", cdot: "\u010B", cedil: "\xB8", cemptyv: "\u29B2", cent: "\xA2", centerdot: "\xB7", cfr: "\u{1D520}", chcy: "\u0447", check: "\u2713", checkmark: "\u2713", chi: "\u03C7", cir: "\u25CB", cirE: "\u29C3", circ: "\u02C6", circeq: "\u2257", circlearrowleft: "\u21BA", circlearrowright: "\u21BB", circledR: "\xAE", circledS: "\u24C8", circledast: "\u229B", circledcirc: "\u229A", circleddash: "\u229D", cire: "\u2257", cirfnint: "\u2A10", cirmid: "\u2AEF", cirscir: "\u29C2", clubs: "\u2663", clubsuit: "\u2663", colon: ":", colone: "\u2254", coloneq: "\u2254", comma: ",", commat: "@", comp: "\u2201", compfn: "\u2218", complement: "\u2201", complexes: "\u2102", cong: "\u2245", congdot: "\u2A6D", conint: "\u222E", copf: "\u{1D554}", coprod: "\u2210", copy: "\xA9", copysr: "\u2117", crarr: "\u21B5", cross: "\u2717", cscr: "\u{1D4B8}", csub: "\u2ACF", csube: "\u2AD1", csup: "\u2AD0", csupe: "\u2AD2", ctdot: "\u22EF", cudarrl: "\u2938", cudarrr: "\u2935", cuepr: "\u22DE", cuesc: "\u22DF", cularr: "\u21B6", cularrp: "\u293D", cup: "\u222A", cupbrcap: "\u2A48", cupcap: "\u2A46", cupcup: "\u2A4A", cupdot: "\u228D", cupor: "\u2A45", cups: "\u222A\uFE00", curarr: "\u21B7", curarrm: "\u293C", curlyeqprec: "\u22DE", curlyeqsucc: "\u22DF", curlyvee: "\u22CE", curlywedge: "\u22CF", curren: "\xA4", curvearrowleft: "\u21B6", curvearrowright: "\u21B7", cuvee: "\u22CE", cuwed: "\u22CF", cwconint: "\u2232", cwint: "\u2231", cylcty: "\u232D", dArr: "\u21D3", dHar: "\u2965", dagger: "\u2020", daleth: "\u2138", darr: "\u2193", dash: "\u2010", dashv: "\u22A3", dbkarow: "\u290F", dblac: "\u02DD", dcaron: "\u010F", dcy: "\u0434", dd: "\u2146", ddagger: "\u2021", ddarr: "\u21CA", ddotseq: "\u2A77", deg: "\xB0", delta: "\u03B4", demptyv: "\u29B1", dfisht: "\u297F", dfr: "\u{1D521}", dharl: "\u21C3", dharr: "\u21C2", diam: "\u22C4", diamond: "\u22C4", diamondsuit: "\u2666", diams: "\u2666", die: "\xA8", digamma: "\u03DD", disin: "\u22F2", div: "\xF7", divide: "\xF7", divideontimes: "\u22C7", divonx: "\u22C7", djcy: "\u0452", dlcorn: "\u231E", dlcrop: "\u230D", dollar: "$", dopf: "\u{1D555}", dot: "\u02D9", doteq: "\u2250", doteqdot: "\u2251", dotminus: "\u2238", dotplus: "\u2214", dotsquare: "\u22A1", doublebarwedge: "\u2306", downarrow: "\u2193", downdownarrows: "\u21CA", downharpoonleft: "\u21C3", downharpoonright: "\u21C2", drbkarow: "\u2910", drcorn: "\u231F", drcrop: "\u230C", dscr: "\u{1D4B9}", dscy: "\u0455", dsol: "\u29F6", dstrok: "\u0111", dtdot: "\u22F1", dtri: "\u25BF", dtrif: "\u25BE", duarr: "\u21F5", duhar: "\u296F", dwangle: "\u29A6", dzcy: "\u045F", dzigrarr: "\u27FF", eDDot: "\u2A77", eDot: "\u2251", eacute: "\xE9", easter: "\u2A6E", ecaron: "\u011B", ecir: "\u2256", ecirc: "\xEA", ecolon: "\u2255", ecy: "\u044D", edot: "\u0117", ee: "\u2147", efDot: "\u2252", efr: "\u{1D522}", eg: "\u2A9A", egrave: "\xE8", egs: "\u2A96", egsdot: "\u2A98", el: "\u2A99", elinters: "\u23E7", ell: "\u2113", els: "\u2A95", elsdot: "\u2A97", emacr: "\u0113", empty: "\u2205", emptyset: "\u2205", emptyv: "\u2205", emsp13: "\u2004", emsp14: "\u2005", emsp: "\u2003", eng: "\u014B", ensp: "\u2002", eogon: "\u0119", eopf: "\u{1D556}", epar: "\u22D5", eparsl: "\u29E3", eplus: "\u2A71", epsi: "\u03B5", epsilon: "\u03B5", epsiv: "\u03F5", eqcirc: "\u2256", eqcolon: "\u2255", eqsim: "\u2242", eqslantgtr: "\u2A96", eqslantless: "\u2A95", equals: "=", equest: "\u225F", equiv: "\u2261", equivDD: "\u2A78", eqvparsl: "\u29E5", erDot: "\u2253", erarr: "\u2971", escr: "\u212F", esdot: "\u2250", esim: "\u2242", eta: "\u03B7", eth: "\xF0", euml: "\xEB", euro: "\u20AC", excl: "!", exist: "\u2203", expectation: "\u2130", exponentiale: "\u2147", fallingdotseq: "\u2252", fcy: "\u0444", female: "\u2640", ffilig: "\uFB03", fflig: "\uFB00", ffllig: "\uFB04", ffr: "\u{1D523}", filig: "\uFB01", fjlig: "fj", flat: "\u266D", fllig: "\uFB02", fltns: "\u25B1", fnof: "\u0192", fopf: "\u{1D557}", forall: "\u2200", fork: "\u22D4", forkv: "\u2AD9", fpartint: "\u2A0D", frac12: "\xBD", frac13: "\u2153", frac14: "\xBC", frac15: "\u2155", frac16: "\u2159", frac18: "\u215B", frac23: "\u2154", frac25: "\u2156", frac34: "\xBE", frac35: "\u2157", frac38: "\u215C", frac45: "\u2158", frac56: "\u215A", frac58: "\u215D", frac78: "\u215E", frasl: "\u2044", frown: "\u2322", fscr: "\u{1D4BB}", gE: "\u2267", gEl: "\u2A8C", gacute: "\u01F5", gamma: "\u03B3", gammad: "\u03DD", gap: "\u2A86", gbreve: "\u011F", gcirc: "\u011D", gcy: "\u0433", gdot: "\u0121", ge: "\u2265", gel: "\u22DB", geq: "\u2265", geqq: "\u2267", geqslant: "\u2A7E", ges: "\u2A7E", gescc: "\u2AA9", gesdot: "\u2A80", gesdoto: "\u2A82", gesdotol: "\u2A84", gesl: "\u22DB\uFE00", gesles: "\u2A94", gfr: "\u{1D524}", gg: "\u226B", ggg: "\u22D9", gimel: "\u2137", gjcy: "\u0453", gl: "\u2277", glE: "\u2A92", gla: "\u2AA5", glj: "\u2AA4", gnE: "\u2269", gnap: "\u2A8A", gnapprox: "\u2A8A", gne: "\u2A88", gneq: "\u2A88", gneqq: "\u2269", gnsim: "\u22E7", gopf: "\u{1D558}", grave: "`", gscr: "\u210A", gsim: "\u2273", gsime: "\u2A8E", gsiml: "\u2A90", gt: ">", gtcc: "\u2AA7", gtcir: "\u2A7A", gtdot: "\u22D7", gtlPar: "\u2995", gtquest: "\u2A7C", gtrapprox: "\u2A86", gtrarr: "\u2978", gtrdot: "\u22D7", gtreqless: "\u22DB", gtreqqless: "\u2A8C", gtrless: "\u2277", gtrsim: "\u2273", gvertneqq: "\u2269\uFE00", gvnE: "\u2269\uFE00", hArr: "\u21D4", hairsp: "\u200A", half: "\xBD", hamilt: "\u210B", hardcy: "\u044A", harr: "\u2194", harrcir: "\u2948", harrw: "\u21AD", hbar: "\u210F", hcirc: "\u0125", hearts: "\u2665", heartsuit: "\u2665", hellip: "\u2026", hercon: "\u22B9", hfr: "\u{1D525}", hksearow: "\u2925", hkswarow: "\u2926", hoarr: "\u21FF", homtht: "\u223B", hookleftarrow: "\u21A9", hookrightarrow: "\u21AA", hopf: "\u{1D559}", horbar: "\u2015", hscr: "\u{1D4BD}", hslash: "\u210F", hstrok: "\u0127", hybull: "\u2043", hyphen: "\u2010", iacute: "\xED", ic: "\u2063", icirc: "\xEE", icy: "\u0438", iecy: "\u0435", iexcl: "\xA1", iff: "\u21D4", ifr: "\u{1D526}", igrave: "\xEC", ii: "\u2148", iiiint: "\u2A0C", iiint: "\u222D", iinfin: "\u29DC", iiota: "\u2129", ijlig: "\u0133", imacr: "\u012B", image: "\u2111", imagline: "\u2110", imagpart: "\u2111", imath: "\u0131", imof: "\u22B7", imped: "\u01B5", in: "\u2208", incare: "\u2105", infin: "\u221E", infintie: "\u29DD", inodot: "\u0131", int: "\u222B", intcal: "\u22BA", integers: "\u2124", intercal: "\u22BA", intlarhk: "\u2A17", intprod: "\u2A3C", iocy: "\u0451", iogon: "\u012F", iopf: "\u{1D55A}", iota: "\u03B9", iprod: "\u2A3C", iquest: "\xBF", iscr: "\u{1D4BE}", isin: "\u2208", isinE: "\u22F9", isindot: "\u22F5", isins: "\u22F4", isinsv: "\u22F3", isinv: "\u2208", it: "\u2062", itilde: "\u0129", iukcy: "\u0456", iuml: "\xEF", jcirc: "\u0135", jcy: "\u0439", jfr: "\u{1D527}", jmath: "\u0237", jopf: "\u{1D55B}", jscr: "\u{1D4BF}", jsercy: "\u0458", jukcy: "\u0454", kappa: "\u03BA", kappav: "\u03F0", kcedil: "\u0137", kcy: "\u043A", kfr: "\u{1D528}", kgreen: "\u0138", khcy: "\u0445", kjcy: "\u045C", kopf: "\u{1D55C}", kscr: "\u{1D4C0}", lAarr: "\u21DA", lArr: "\u21D0", lAtail: "\u291B", lBarr: "\u290E", lE: "\u2266", lEg: "\u2A8B", lHar: "\u2962", lacute: "\u013A", laemptyv: "\u29B4", lagran: "\u2112", lambda: "\u03BB", lang: "\u27E8", langd: "\u2991", langle: "\u27E8", lap: "\u2A85", laquo: "\xAB", larr: "\u2190", larrb: "\u21E4", larrbfs: "\u291F", larrfs: "\u291D", larrhk: "\u21A9", larrlp: "\u21AB", larrpl: "\u2939", larrsim: "\u2973", larrtl: "\u21A2", lat: "\u2AAB", latail: "\u2919", late: "\u2AAD", lates: "\u2AAD\uFE00", lbarr: "\u290C", lbbrk: "\u2772", lbrace: "{", lbrack: "[", lbrke: "\u298B", lbrksld: "\u298F", lbrkslu: "\u298D", lcaron: "\u013E", lcedil: "\u013C", lceil: "\u2308", lcub: "{", lcy: "\u043B", ldca: "\u2936", ldquo: "\u201C", ldquor: "\u201E", ldrdhar: "\u2967", ldrushar: "\u294B", ldsh: "\u21B2", le: "\u2264", leftarrow: "\u2190", leftarrowtail: "\u21A2", leftharpoondown: "\u21BD", leftharpoonup: "\u21BC", leftleftarrows: "\u21C7", leftrightarrow: "\u2194", leftrightarrows: "\u21C6", leftrightharpoons: "\u21CB", leftrightsquigarrow: "\u21AD", leftthreetimes: "\u22CB", leg: "\u22DA", leq: "\u2264", leqq: "\u2266", leqslant: "\u2A7D", les: "\u2A7D", lescc: "\u2AA8", lesdot: "\u2A7F", lesdoto: "\u2A81", lesdotor: "\u2A83", lesg: "\u22DA\uFE00", lesges: "\u2A93", lessapprox: "\u2A85", lessdot: "\u22D6", lesseqgtr: "\u22DA", lesseqqgtr: "\u2A8B", lessgtr: "\u2276", lesssim: "\u2272", lfisht: "\u297C", lfloor: "\u230A", lfr: "\u{1D529}", lg: "\u2276", lgE: "\u2A91", lhard: "\u21BD", lharu: "\u21BC", lharul: "\u296A", lhblk: "\u2584", ljcy: "\u0459", ll: "\u226A", llarr: "\u21C7", llcorner: "\u231E", llhard: "\u296B", lltri: "\u25FA", lmidot: "\u0140", lmoust: "\u23B0", lmoustache: "\u23B0", lnE: "\u2268", lnap: "\u2A89", lnapprox: "\u2A89", lne: "\u2A87", lneq: "\u2A87", lneqq: "\u2268", lnsim: "\u22E6", loang: "\u27EC", loarr: "\u21FD", lobrk: "\u27E6", longleftarrow: "\u27F5", longleftrightarrow: "\u27F7", longmapsto: "\u27FC", longrightarrow: "\u27F6", looparrowleft: "\u21AB", looparrowright: "\u21AC", lopar: "\u2985", lopf: "\u{1D55D}", loplus: "\u2A2D", lotimes: "\u2A34", lowast: "\u2217", lowbar: "_", loz: "\u25CA", lozenge: "\u25CA", lozf: "\u29EB", lpar: "(", lparlt: "\u2993", lrarr: "\u21C6", lrcorner: "\u231F", lrhar: "\u21CB", lrhard: "\u296D", lrm: "\u200E", lrtri: "\u22BF", lsaquo: "\u2039", lscr: "\u{1D4C1}", lsh: "\u21B0", lsim: "\u2272", lsime: "\u2A8D", lsimg: "\u2A8F", lsqb: "[", lsquo: "\u2018", lsquor: "\u201A", lstrok: "\u0142", lt: "<", ltcc: "\u2AA6", ltcir: "\u2A79", ltdot: "\u22D6", lthree: "\u22CB", ltimes: "\u22C9", ltlarr: "\u2976", ltquest: "\u2A7B", ltrPar: "\u2996", ltri: "\u25C3", ltrie: "\u22B4", ltrif: "\u25C2", lurdshar: "\u294A", luruhar: "\u2966", lvertneqq: "\u2268\uFE00", lvnE: "\u2268\uFE00", mDDot: "\u223A", macr: "\xAF", male: "\u2642", malt: "\u2720", maltese: "\u2720", map: "\u21A6", mapsto: "\u21A6", mapstodown: "\u21A7", mapstoleft: "\u21A4", mapstoup: "\u21A5", marker: "\u25AE", mcomma: "\u2A29", mcy: "\u043C", mdash: "\u2014", measuredangle: "\u2221", mfr: "\u{1D52A}", mho: "\u2127", micro: "\xB5", mid: "\u2223", midast: "*", midcir: "\u2AF0", middot: "\xB7", minus: "\u2212", minusb: "\u229F", minusd: "\u2238", minusdu: "\u2A2A", mlcp: "\u2ADB", mldr: "\u2026", mnplus: "\u2213", models: "\u22A7", mopf: "\u{1D55E}", mp: "\u2213", mscr: "\u{1D4C2}", mstpos: "\u223E", mu: "\u03BC", multimap: "\u22B8", mumap: "\u22B8", nGg: "\u22D9\u0338", nGt: "\u226B\u20D2", nGtv: "\u226B\u0338", nLeftarrow: "\u21CD", nLeftrightarrow: "\u21CE", nLl: "\u22D8\u0338", nLt: "\u226A\u20D2", nLtv: "\u226A\u0338", nRightarrow: "\u21CF", nVDash: "\u22AF", nVdash: "\u22AE", nabla: "\u2207", nacute: "\u0144", nang: "\u2220\u20D2", nap: "\u2249", napE: "\u2A70\u0338", napid: "\u224B\u0338", napos: "\u0149", napprox: "\u2249", natur: "\u266E", natural: "\u266E", naturals: "\u2115", nbsp: "\xA0", nbump: "\u224E\u0338", nbumpe: "\u224F\u0338", ncap: "\u2A43", ncaron: "\u0148", ncedil: "\u0146", ncong: "\u2247", ncongdot: "\u2A6D\u0338", ncup: "\u2A42", ncy: "\u043D", ndash: "\u2013", ne: "\u2260", neArr: "\u21D7", nearhk: "\u2924", nearr: "\u2197", nearrow: "\u2197", nedot: "\u2250\u0338", nequiv: "\u2262", nesear: "\u2928", nesim: "\u2242\u0338", nexist: "\u2204", nexists: "\u2204", nfr: "\u{1D52B}", ngE: "\u2267\u0338", nge: "\u2271", ngeq: "\u2271", ngeqq: "\u2267\u0338", ngeqslant: "\u2A7E\u0338", nges: "\u2A7E\u0338", ngsim: "\u2275", ngt: "\u226F", ngtr: "\u226F", nhArr: "\u21CE", nharr: "\u21AE", nhpar: "\u2AF2", ni: "\u220B", nis: "\u22FC", nisd: "\u22FA", niv: "\u220B", njcy: "\u045A", nlArr: "\u21CD", nlE: "\u2266\u0338", nlarr: "\u219A", nldr: "\u2025", nle: "\u2270", nleftarrow: "\u219A", nleftrightarrow: "\u21AE", nleq: "\u2270", nleqq: "\u2266\u0338", nleqslant: "\u2A7D\u0338", nles: "\u2A7D\u0338", nless: "\u226E", nlsim: "\u2274", nlt: "\u226E", nltri: "\u22EA", nltrie: "\u22EC", nmid: "\u2224", nopf: "\u{1D55F}", not: "\xAC", notin: "\u2209", notinE: "\u22F9\u0338", notindot: "\u22F5\u0338", notinva: "\u2209", notinvb: "\u22F7", notinvc: "\u22F6", notni: "\u220C", notniva: "\u220C", notnivb: "\u22FE", notnivc: "\u22FD", npar: "\u2226", nparallel: "\u2226", nparsl: "\u2AFD\u20E5", npart: "\u2202\u0338", npolint: "\u2A14", npr: "\u2280", nprcue: "\u22E0", npre: "\u2AAF\u0338", nprec: "\u2280", npreceq: "\u2AAF\u0338", nrArr: "\u21CF", nrarr: "\u219B", nrarrc: "\u2933\u0338", nrarrw: "\u219D\u0338", nrightarrow: "\u219B", nrtri: "\u22EB", nrtrie: "\u22ED", nsc: "\u2281", nsccue: "\u22E1", nsce: "\u2AB0\u0338", nscr: "\u{1D4C3}", nshortmid: "\u2224", nshortparallel: "\u2226", nsim: "\u2241", nsime: "\u2244", nsimeq: "\u2244", nsmid: "\u2224", nspar: "\u2226", nsqsube: "\u22E2", nsqsupe: "\u22E3", nsub: "\u2284", nsubE: "\u2AC5\u0338", nsube: "\u2288", nsubset: "\u2282\u20D2", nsubseteq: "\u2288", nsubseteqq: "\u2AC5\u0338", nsucc: "\u2281", nsucceq: "\u2AB0\u0338", nsup: "\u2285", nsupE: "\u2AC6\u0338", nsupe: "\u2289", nsupset: "\u2283\u20D2", nsupseteq: "\u2289", nsupseteqq: "\u2AC6\u0338", ntgl: "\u2279", ntilde: "\xF1", ntlg: "\u2278", ntriangleleft: "\u22EA", ntrianglelefteq: "\u22EC", ntriangleright: "\u22EB", ntrianglerighteq: "\u22ED", nu: "\u03BD", num: "#", numero: "\u2116", numsp: "\u2007", nvDash: "\u22AD", nvHarr: "\u2904", nvap: "\u224D\u20D2", nvdash: "\u22AC", nvge: "\u2265\u20D2", nvgt: ">\u20D2", nvinfin: "\u29DE", nvlArr: "\u2902", nvle: "\u2264\u20D2", nvlt: "<\u20D2", nvltrie: "\u22B4\u20D2", nvrArr: "\u2903", nvrtrie: "\u22B5\u20D2", nvsim: "\u223C\u20D2", nwArr: "\u21D6", nwarhk: "\u2923", nwarr: "\u2196", nwarrow: "\u2196", nwnear: "\u2927", oS: "\u24C8", oacute: "\xF3", oast: "\u229B", ocir: "\u229A", ocirc: "\xF4", ocy: "\u043E", odash: "\u229D", odblac: "\u0151", odiv: "\u2A38", odot: "\u2299", odsold: "\u29BC", oelig: "\u0153", ofcir: "\u29BF", ofr: "\u{1D52C}", ogon: "\u02DB", ograve: "\xF2", ogt: "\u29C1", ohbar: "\u29B5", ohm: "\u03A9", oint: "\u222E", olarr: "\u21BA", olcir: "\u29BE", olcross: "\u29BB", oline: "\u203E", olt: "\u29C0", omacr: "\u014D", omega: "\u03C9", omicron: "\u03BF", omid: "\u29B6", ominus: "\u2296", oopf: "\u{1D560}", opar: "\u29B7", operp: "\u29B9", oplus: "\u2295", or: "\u2228", orarr: "\u21BB", ord: "\u2A5D", order: "\u2134", orderof: "\u2134", ordf: "\xAA", ordm: "\xBA", origof: "\u22B6", oror: "\u2A56", orslope: "\u2A57", orv: "\u2A5B", oscr: "\u2134", oslash: "\xF8", osol: "\u2298", otilde: "\xF5", otimes: "\u2297", otimesas: "\u2A36", ouml: "\xF6", ovbar: "\u233D", par: "\u2225", para: "\xB6", parallel: "\u2225", parsim: "\u2AF3", parsl: "\u2AFD", part: "\u2202", pcy: "\u043F", percnt: "%", period: ".", permil: "\u2030", perp: "\u22A5", pertenk: "\u2031", pfr: "\u{1D52D}", phi: "\u03C6", phiv: "\u03D5", phmmat: "\u2133", phone: "\u260E", pi: "\u03C0", pitchfork: "\u22D4", piv: "\u03D6", planck: "\u210F", planckh: "\u210E", plankv: "\u210F", plus: "+", plusacir: "\u2A23", plusb: "\u229E", pluscir: "\u2A22", plusdo: "\u2214", plusdu: "\u2A25", pluse: "\u2A72", plusmn: "\xB1", plussim: "\u2A26", plustwo: "\u2A27", pm: "\xB1", pointint: "\u2A15", popf: "\u{1D561}", pound: "\xA3", pr: "\u227A", prE: "\u2AB3", prap: "\u2AB7", prcue: "\u227C", pre: "\u2AAF", prec: "\u227A", precapprox: "\u2AB7", preccurlyeq: "\u227C", preceq: "\u2AAF", precnapprox: "\u2AB9", precneqq: "\u2AB5", precnsim: "\u22E8", precsim: "\u227E", prime: "\u2032", primes: "\u2119", prnE: "\u2AB5", prnap: "\u2AB9", prnsim: "\u22E8", prod: "\u220F", profalar: "\u232E", profline: "\u2312", profsurf: "\u2313", prop: "\u221D", propto: "\u221D", prsim: "\u227E", prurel: "\u22B0", pscr: "\u{1D4C5}", psi: "\u03C8", puncsp: "\u2008", qfr: "\u{1D52E}", qint: "\u2A0C", qopf: "\u{1D562}", qprime: "\u2057", qscr: "\u{1D4C6}", quaternions: "\u210D", quatint: "\u2A16", quest: "?", questeq: "\u225F", quot: '"', rAarr: "\u21DB", rArr: "\u21D2", rAtail: "\u291C", rBarr: "\u290F", rHar: "\u2964", race: "\u223D\u0331", racute: "\u0155", radic: "\u221A", raemptyv: "\u29B3", rang: "\u27E9", rangd: "\u2992", range: "\u29A5", rangle: "\u27E9", raquo: "\xBB", rarr: "\u2192", rarrap: "\u2975", rarrb: "\u21E5", rarrbfs: "\u2920", rarrc: "\u2933", rarrfs: "\u291E", rarrhk: "\u21AA", rarrlp: "\u21AC", rarrpl: "\u2945", rarrsim: "\u2974", rarrtl: "\u21A3", rarrw: "\u219D", ratail: "\u291A", ratio: "\u2236", rationals: "\u211A", rbarr: "\u290D", rbbrk: "\u2773", rbrace: "}", rbrack: "]", rbrke: "\u298C", rbrksld: "\u298E", rbrkslu: "\u2990", rcaron: "\u0159", rcedil: "\u0157", rceil: "\u2309", rcub: "}", rcy: "\u0440", rdca: "\u2937", rdldhar: "\u2969", rdquo: "\u201D", rdquor: "\u201D", rdsh: "\u21B3", real: "\u211C", realine: "\u211B", realpart: "\u211C", reals: "\u211D", rect: "\u25AD", reg: "\xAE", rfisht: "\u297D", rfloor: "\u230B", rfr: "\u{1D52F}", rhard: "\u21C1", rharu: "\u21C0", rharul: "\u296C", rho: "\u03C1", rhov: "\u03F1", rightarrow: "\u2192", rightarrowtail: "\u21A3", rightharpoondown: "\u21C1", rightharpoonup: "\u21C0", rightleftarrows: "\u21C4", rightleftharpoons: "\u21CC", rightrightarrows: "\u21C9", rightsquigarrow: "\u219D", rightthreetimes: "\u22CC", ring: "\u02DA", risingdotseq: "\u2253", rlarr: "\u21C4", rlhar: "\u21CC", rlm: "\u200F", rmoust: "\u23B1", rmoustache: "\u23B1", rnmid: "\u2AEE", roang: "\u27ED", roarr: "\u21FE", robrk: "\u27E7", ropar: "\u2986", ropf: "\u{1D563}", roplus: "\u2A2E", rotimes: "\u2A35", rpar: ")", rpargt: "\u2994", rppolint: "\u2A12", rrarr: "\u21C9", rsaquo: "\u203A", rscr: "\u{1D4C7}", rsh: "\u21B1", rsqb: "]", rsquo: "\u2019", rsquor: "\u2019", rthree: "\u22CC", rtimes: "\u22CA", rtri: "\u25B9", rtrie: "\u22B5", rtrif: "\u25B8", rtriltri: "\u29CE", ruluhar: "\u2968", rx: "\u211E", sacute: "\u015B", sbquo: "\u201A", sc: "\u227B", scE: "\u2AB4", scap: "\u2AB8", scaron: "\u0161", sccue: "\u227D", sce: "\u2AB0", scedil: "\u015F", scirc: "\u015D", scnE: "\u2AB6", scnap: "\u2ABA", scnsim: "\u22E9", scpolint: "\u2A13", scsim: "\u227F", scy: "\u0441", sdot: "\u22C5", sdotb: "\u22A1", sdote: "\u2A66", seArr: "\u21D8", searhk: "\u2925", searr: "\u2198", searrow: "\u2198", sect: "\xA7", semi: ";", seswar: "\u2929", setminus: "\u2216", setmn: "\u2216", sext: "\u2736", sfr: "\u{1D530}", sfrown: "\u2322", sharp: "\u266F", shchcy: "\u0449", shcy: "\u0448", shortmid: "\u2223", shortparallel: "\u2225", shy: "\xAD", sigma: "\u03C3", sigmaf: "\u03C2", sigmav: "\u03C2", sim: "\u223C", simdot: "\u2A6A", sime: "\u2243", simeq: "\u2243", simg: "\u2A9E", simgE: "\u2AA0", siml: "\u2A9D", simlE: "\u2A9F", simne: "\u2246", simplus: "\u2A24", simrarr: "\u2972", slarr: "\u2190", smallsetminus: "\u2216", smashp: "\u2A33", smeparsl: "\u29E4", smid: "\u2223", smile: "\u2323", smt: "\u2AAA", smte: "\u2AAC", smtes: "\u2AAC\uFE00", softcy: "\u044C", sol: "/", solb: "\u29C4", solbar: "\u233F", sopf: "\u{1D564}", spades: "\u2660", spadesuit: "\u2660", spar: "\u2225", sqcap: "\u2293", sqcaps: "\u2293\uFE00", sqcup: "\u2294", sqcups: "\u2294\uFE00", sqsub: "\u228F", sqsube: "\u2291", sqsubset: "\u228F", sqsubseteq: "\u2291", sqsup: "\u2290", sqsupe: "\u2292", sqsupset: "\u2290", sqsupseteq: "\u2292", squ: "\u25A1", square: "\u25A1", squarf: "\u25AA", squf: "\u25AA", srarr: "\u2192", sscr: "\u{1D4C8}", ssetmn: "\u2216", ssmile: "\u2323", sstarf: "\u22C6", star: "\u2606", starf: "\u2605", straightepsilon: "\u03F5", straightphi: "\u03D5", strns: "\xAF", sub: "\u2282", subE: "\u2AC5", subdot: "\u2ABD", sube: "\u2286", subedot: "\u2AC3", submult: "\u2AC1", subnE: "\u2ACB", subne: "\u228A", subplus: "\u2ABF", subrarr: "\u2979", subset: "\u2282", subseteq: "\u2286", subseteqq: "\u2AC5", subsetneq: "\u228A", subsetneqq: "\u2ACB", subsim: "\u2AC7", subsub: "\u2AD5", subsup: "\u2AD3", succ: "\u227B", succapprox: "\u2AB8", succcurlyeq: "\u227D", succeq: "\u2AB0", succnapprox: "\u2ABA", succneqq: "\u2AB6", succnsim: "\u22E9", succsim: "\u227F", sum: "\u2211", sung: "\u266A", sup1: "\xB9", sup2: "\xB2", sup3: "\xB3", sup: "\u2283", supE: "\u2AC6", supdot: "\u2ABE", supdsub: "\u2AD8", supe: "\u2287", supedot: "\u2AC4", suphsol: "\u27C9", suphsub: "\u2AD7", suplarr: "\u297B", supmult: "\u2AC2", supnE: "\u2ACC", supne: "\u228B", supplus: "\u2AC0", supset: "\u2283", supseteq: "\u2287", supseteqq: "\u2AC6", supsetneq: "\u228B", supsetneqq: "\u2ACC", supsim: "\u2AC8", supsub: "\u2AD4", supsup: "\u2AD6", swArr: "\u21D9", swarhk: "\u2926", swarr: "\u2199", swarrow: "\u2199", swnwar: "\u292A", szlig: "\xDF", target: "\u2316", tau: "\u03C4", tbrk: "\u23B4", tcaron: "\u0165", tcedil: "\u0163", tcy: "\u0442", tdot: "\u20DB", telrec: "\u2315", tfr: "\u{1D531}", there4: "\u2234", therefore: "\u2234", theta: "\u03B8", thetasym: "\u03D1", thetav: "\u03D1", thickapprox: "\u2248", thicksim: "\u223C", thinsp: "\u2009", thkap: "\u2248", thksim: "\u223C", thorn: "\xFE", tilde: "\u02DC", times: "\xD7", timesb: "\u22A0", timesbar: "\u2A31", timesd: "\u2A30", tint: "\u222D", toea: "\u2928", top: "\u22A4", topbot: "\u2336", topcir: "\u2AF1", topf: "\u{1D565}", topfork: "\u2ADA", tosa: "\u2929", tprime: "\u2034", trade: "\u2122", triangle: "\u25B5", triangledown: "\u25BF", triangleleft: "\u25C3", trianglelefteq: "\u22B4", triangleq: "\u225C", triangleright: "\u25B9", trianglerighteq: "\u22B5", tridot: "\u25EC", trie: "\u225C", triminus: "\u2A3A", triplus: "\u2A39", trisb: "\u29CD", tritime: "\u2A3B", trpezium: "\u23E2", tscr: "\u{1D4C9}", tscy: "\u0446", tshcy: "\u045B", tstrok: "\u0167", twixt: "\u226C", twoheadleftarrow: "\u219E", twoheadrightarrow: "\u21A0", uArr: "\u21D1", uHar: "\u2963", uacute: "\xFA", uarr: "\u2191", ubrcy: "\u045E", ubreve: "\u016D", ucirc: "\xFB", ucy: "\u0443", udarr: "\u21C5", udblac: "\u0171", udhar: "\u296E", ufisht: "\u297E", ufr: "\u{1D532}", ugrave: "\xF9", uharl: "\u21BF", uharr: "\u21BE", uhblk: "\u2580", ulcorn: "\u231C", ulcorner: "\u231C", ulcrop: "\u230F", ultri: "\u25F8", umacr: "\u016B", uml: "\xA8", uogon: "\u0173", uopf: "\u{1D566}", uparrow: "\u2191", updownarrow: "\u2195", upharpoonleft: "\u21BF", upharpoonright: "\u21BE", uplus: "\u228E", upsi: "\u03C5", upsih: "\u03D2", upsilon: "\u03C5", upuparrows: "\u21C8", urcorn: "\u231D", urcorner: "\u231D", urcrop: "\u230E", uring: "\u016F", urtri: "\u25F9", uscr: "\u{1D4CA}", utdot: "\u22F0", utilde: "\u0169", utri: "\u25B5", utrif: "\u25B4", uuarr: "\u21C8", uuml: "\xFC", uwangle: "\u29A7", vArr: "\u21D5", vBar: "\u2AE8", vBarv: "\u2AE9", vDash: "\u22A8", vangrt: "\u299C", varepsilon: "\u03F5", varkappa: "\u03F0", varnothing: "\u2205", varphi: "\u03D5", varpi: "\u03D6", varpropto: "\u221D", varr: "\u2195", varrho: "\u03F1", varsigma: "\u03C2", varsubsetneq: "\u228A\uFE00", varsubsetneqq: "\u2ACB\uFE00", varsupsetneq: "\u228B\uFE00", varsupsetneqq: "\u2ACC\uFE00", vartheta: "\u03D1", vartriangleleft: "\u22B2", vartriangleright: "\u22B3", vcy: "\u0432", vdash: "\u22A2", vee: "\u2228", veebar: "\u22BB", veeeq: "\u225A", vellip: "\u22EE", verbar: "|", vert: "|", vfr: "\u{1D533}", vltri: "\u22B2", vnsub: "\u2282\u20D2", vnsup: "\u2283\u20D2", vopf: "\u{1D567}", vprop: "\u221D", vrtri: "\u22B3", vscr: "\u{1D4CB}", vsubnE: "\u2ACB\uFE00", vsubne: "\u228A\uFE00", vsupnE: "\u2ACC\uFE00", vsupne: "\u228B\uFE00", vzigzag: "\u299A", wcirc: "\u0175", wedbar: "\u2A5F", wedge: "\u2227", wedgeq: "\u2259", weierp: "\u2118", wfr: "\u{1D534}", wopf: "\u{1D568}", wp: "\u2118", wr: "\u2240", wreath: "\u2240", wscr: "\u{1D4CC}", xcap: "\u22C2", xcirc: "\u25EF", xcup: "\u22C3", xdtri: "\u25BD", xfr: "\u{1D535}", xhArr: "\u27FA", xharr: "\u27F7", xi: "\u03BE", xlArr: "\u27F8", xlarr: "\u27F5", xmap: "\u27FC", xnis: "\u22FB", xodot: "\u2A00", xopf: "\u{1D569}", xoplus: "\u2A01", xotime: "\u2A02", xrArr: "\u27F9", xrarr: "\u27F6", xscr: "\u{1D4CD}", xsqcup: "\u2A06", xuplus: "\u2A04", xutri: "\u25B3", xvee: "\u22C1", xwedge: "\u22C0", yacute: "\xFD", yacy: "\u044F", ycirc: "\u0177", ycy: "\u044B", yen: "\xA5", yfr: "\u{1D536}", yicy: "\u0457", yopf: "\u{1D56A}", yscr: "\u{1D4CE}", yucy: "\u044E", yuml: "\xFF", zacute: "\u017A", zcaron: "\u017E", zcy: "\u0437", zdot: "\u017C", zeetrf: "\u2128", zeta: "\u03B6", zfr: "\u{1D537}", zhcy: "\u0436", zigrarr: "\u21DD", zopf: "\u{1D56B}", zscr: "\u{1D4CF}", zwj: "\u200D", zwnj: "\u200C" }; var decodeMap = { "0": 65533, "128": 8364, "130": 8218, "131": 402, "132": 8222, "133": 8230, "134": 8224, "135": 8225, "136": 710, "137": 8240, "138": 352, "139": 8249, "140": 338, "142": 381, "145": 8216, "146": 8217, "147": 8220, "148": 8221, "149": 8226, "150": 8211, "151": 8212, "152": 732, "153": 8482, "154": 353, "155": 8250, "156": 339, "158": 382, "159": 376 }; function decodeHTMLStrict(text) { return text.replace(/&(?:[a-zA-Z]+|#[xX][\da-fA-F]+|#\d+);/g, (key) => { if (key.charAt(1) === "#") { const secondChar = key.charAt(2); const codePoint = secondChar === "X" || secondChar === "x" ? parseInt(key.slice(3), 16) : parseInt(key.slice(2), 10); return decodeCodePoint(codePoint); } return getOwnProperty(entities, key.slice(1, -1)) ?? key; }); } function decodeCodePoint(codePoint) { if (codePoint >= 55296 && codePoint <= 57343 || codePoint > 1114111) { return "\uFFFD"; } return String.fromCodePoint(getOwnProperty(decodeMap, codePoint) ?? codePoint); } function scanJSXAttributeValue(parser, context) { parser.startIndex = parser.tokenIndex = parser.index; parser.startColumn = parser.tokenColumn = parser.column; parser.startLine = parser.tokenLine = parser.line; parser.setToken(CharTypes[parser.currentChar] & 8192 ? scanJSXString(parser) : scanSingleToken(parser, context, 0)); return parser.getToken(); } function scanJSXString(parser) { const quote = parser.currentChar; let char = advanceChar(parser); const start = parser.index; while (char !== quote) { if (parser.index >= parser.end) parser.report(16); char = advanceChar(parser); } if (char !== quote) parser.report(16); parser.tokenValue = parser.source.slice(start, parser.index); advanceChar(parser); if (parser.options.raw) parser.tokenRaw = parser.source.slice(parser.tokenIndex, parser.index); return 134283267; } function nextJSXToken(parser) { parser.startIndex = parser.tokenIndex = parser.index; parser.startColumn = parser.tokenColumn = parser.column; parser.startLine = parser.tokenLine = parser.line; if (parser.index >= parser.end) { parser.setToken(1048576); return; } if (parser.currentChar === 60) { advanceChar(parser); parser.setToken(8456256); return; } if (parser.currentChar === 123) { advanceChar(parser); parser.setToken(2162700); return; } let state = 0; while (parser.index < parser.end) { const type = CharTypes[parser.source.charCodeAt(parser.index)]; if (type & 1024) { state |= 1 | 4; scanNewLine(parser); } else if (type & 2048) { consumeLineFeed(parser, state); state = state & -5 | 1; } else { advanceChar(parser); } if (CharTypes[parser.currentChar] & 16384) break; } if (parser.tokenIndex === parser.index) parser.report(0); const raw = parser.source.slice(parser.tokenIndex, parser.index); if (parser.options.raw) parser.tokenRaw = raw; parser.tokenValue = decodeHTMLStrict(raw); parser.setToken(137); } function rescanJSXIdentifier(parser) { if ((parser.getToken() & 143360) === 143360) { const { index } = parser; let char = parser.currentChar; while (CharTypes[char] & (32768 | 2)) { char = advanceChar(parser); } parser.tokenValue += parser.source.slice(index, parser.index); parser.setToken(208897, true); } return parser.getToken(); } function normalizeRanges(ranges) { if (!ranges) return void 0; if (ranges === true) return { start: true, end: true, range: true }; return { start: ranges.start ?? false, end: ranges.end ?? false, range: ranges.range ?? false }; } function normalizeOptions(rawOptions) { const options = { validateRegex: true, ...rawOptions, ranges: normalizeRanges(rawOptions.ranges) }; if (options.module && !options.sourceType) { options.sourceType = "module"; } if (options.globalReturn && (!options.sourceType || options.sourceType === "script")) { options.sourceType = "commonjs"; } return options; } var PrivateScope = class { parser; parent; refs = /* @__PURE__ */ Object.create(null); privateIdentifiers = /* @__PURE__ */ new Map(); constructor(parser, parent) { this.parser = parser; this.parent = parent; } addPrivateIdentifier(name, kind) { const { privateIdentifiers } = this; let focusKind = kind & (32 | 768); if (!(focusKind & 768)) focusKind |= 768; const value = privateIdentifiers.get(name); if (this.hasPrivateIdentifier(name) && ((value & 32) !== (focusKind & 32) || value & focusKind & 768)) { this.parser.report(146, name); } privateIdentifiers.set(name, this.hasPrivateIdentifier(name) ? value | focusKind : focusKind); } addPrivateIdentifierRef(name) { this.refs[name] ??= []; this.refs[name].push(this.parser.tokenStart); } isPrivateIdentifierDefined(name) { return this.hasPrivateIdentifier(name) || Boolean(this.parent?.isPrivateIdentifierDefined(name)); } validatePrivateIdentifierRefs() { for (const name in this.refs) { if (!this.isPrivateIdentifierDefined(name)) { const { index, line, column } = this.refs[name][0]; throw new ParseError({ index, line, column }, { index: index + name.length, line, column: column + name.length }, 4, name); } } } hasPrivateIdentifier(name) { return this.privateIdentifiers.has(name); } }; var Scope = class _Scope { parser; type; parent; scopeError; variableBindings = /* @__PURE__ */ new Map(); constructor(parser, type = 2, parent) { this.parser = parser; this.type = type; this.parent = parent; } createChildScope(type) { return new _Scope(this.parser, type, this); } addVarOrBlock(context, name, kind, origin) { if (kind & 4) { this.addVarName(context, name, kind); } else { this.addBlockName(context, name, kind, origin); } if (origin & 64) { this.parser.declareUnboundVariable(name); } } addVarName(context, name, kind) { const { parser } = this; let currentScope = this; while (currentScope && (currentScope.type & 128) === 0) { const { variableBindings } = currentScope; const value = variableBindings.get(name); if (value && value & 248) { if (parser.options.webcompat && (context & 1) === 0 && (kind & 128 && value & 68 || value & 128 && kind & 68)) ; else { parser.report(145, name); } } if (currentScope === this) { if (value && value & 1 && kind & 1) { currentScope.recordScopeError(145, name); } } if (value && (value & 256 || value & 512 && !parser.options.webcompat)) { parser.report(145, name); } currentScope.variableBindings.set(name, kind); currentScope = currentScope.parent; } } hasVariable(name) { return this.variableBindings.has(name); } addBlockName(context, name, kind, origin) { const { parser } = this; const value = this.variableBindings.get(name); if (value && (value & 2) === 0) { if (kind & 1) { this.recordScopeError(145, name); } else if (parser.options.webcompat && (context & 1) === 0 && origin & 2 && value === 64 && kind === 64) ; else { parser.report(145, name); } } if (this.type & 64 && this.parent?.hasVariable(name) && (this.parent.variableBindings.get(name) & 2) === 0) { parser.report(145, name); } if (this.type & 512 && value && (value & 2) === 0) { if (kind & 1) { this.recordScopeError(145, name); } } if (this.type & 32) { if (this.parent.variableBindings.get(name) & 768) parser.report(159, name); } this.variableBindings.set(name, kind); } recordScopeError(type, ...params) { this.scopeError = { type, params, start: this.parser.tokenStart, end: this.parser.currentLocation }; } reportScopeError() { const { scopeError } = this; if (!scopeError) { return; } throw new ParseError(scopeError.start, scopeError.end, scopeError.type, ...scopeError.params); } }; function createArrowHeadParsingScope(parser, context, value) { const scope = parser.createScope().createChildScope(512); scope.addBlockName(context, value, 1, 0); return scope; } var Parser = class { source; lastOnToken = null; options; token = 1048576; flags = 0; index = 0; line = 1; column = 0; startIndex = 0; end = 0; tokenIndex = 0; startColumn = 0; tokenColumn = 0; tokenLine = 1; startLine = 1; tokenValue = ""; tokenRaw = ""; tokenRegExp = void 0; currentChar = 0; exportedNames = /* @__PURE__ */ new Set(); exportedBindings = /* @__PURE__ */ new Set(); assignable = 0; destructible = 0; strictReservedRange = null; leadingDecorators = { decorators: [] }; constructor(source, rawOptions = {}) { this.source = source; this.end = source.length; this.currentChar = source.charCodeAt(0); this.options = normalizeOptions(rawOptions); if (Array.isArray(this.options.onComment)) { this.options.onComment = pushComment(this.options.onComment, this.options); } if (Array.isArray(this.options.onToken)) { this.options.onToken = pushToken(this.options.onToken, this.options); } } getToken() { return this.token; } setToken(value, replaceLast = false) { this.token = value; const { onToken } = this.options; if (onToken) { if (value !== 1048576) { const loc = { start: { line: this.tokenLine, column: this.tokenColumn }, end: { line: this.line, column: this.column } }; if (!replaceLast && this.lastOnToken) { onToken(...this.lastOnToken); } this.lastOnToken = [convertTokenType(value), this.tokenIndex, this.index, loc]; } else { if (this.lastOnToken) { onToken(...this.lastOnToken); this.lastOnToken = null; } } } return value; } get tokenStart() { return { index: this.tokenIndex, line: this.tokenLine, column: this.tokenColumn }; } get currentLocation() { return { index: this.index, line: this.line, column: this.column }; } finishNode(node2, start, end) { const { ranges } = this.options; if (ranges) { const endIndex = end ? end.index : this.startIndex; if (ranges.start) node2.start = start.index; if (ranges.end) node2.end = endIndex; if (ranges.range) node2.range = [start.index, endIndex]; } if (this.options.loc) { node2.loc = { start: { line: start.line, column: start.column }, end: end ? { line: end.line, column: end.column } : { line: this.startLine, column: this.startColumn } }; if (this.options.source) { node2.loc.source = this.options.source; } } return node2; } addBindingToExports(name) { this.exportedBindings.add(name); } declareUnboundVariable(name) { const { exportedNames } = this; if (exportedNames.has(name)) { this.report(147, name); } exportedNames.add(name); } report(type, ...params) { throw new ParseError(this.tokenStart, this.currentLocation, type, ...params); } createScopeIfLexical(type, parent) { if (this.options.lexical) { return this.createScope(type, parent); } return void 0; } createScope(type, parent) { return new Scope(this, type, parent); } createPrivateScopeIfLexical(parent) { if (this.options.lexical) { return new PrivateScope(this, parent); } return void 0; } cloneIdentifier(original) { return this.cloneLocationInformation({ ...original }, original); } cloneStringLiteral(original) { return this.cloneLocationInformation({ ...original }, original); } cloneLocationInformation(node2, original) { const { ranges } = this.options; if (ranges) { if (ranges.start) node2.start = original.start; if (ranges.end) node2.end = original.end; if (ranges.range) node2.range = [...original.range]; } if (this.options.loc) { node2.loc = { ...original.loc, start: { ...original.loc.start }, end: { ...original.loc.end } }; } return node2; } }; function pushComment(comments, options) { return function(type, value, start, end, loc) { const comment = { type, value }; const { ranges } = options; if (ranges) { if (ranges.start) comment.start = start; if (ranges.end) comment.end = end; if (ranges.range) comment.range = [start, end]; } if (options.loc) { comment.loc = loc; } comments.push(comment); }; } function pushToken(tokens, options) { return function(type, start, end, loc) { const token = { token: type }; const { ranges } = options; if (ranges) { if (ranges.start) token.start = start; if (ranges.end) token.end = end; if (ranges.range) token.range = [start, end]; } if (options.loc) { token.loc = loc; } tokens.push(token); }; } function parseSource(source, rawOptions = {}, context = 0) { const parser = new Parser(source, rawOptions); if (parser.options.sourceType === "module") context |= 2 | 1; if (parser.options.sourceType === "commonjs") context |= 4096 | 65536; if (parser.options.impliedStrict) context |= 1; skipHashBang(parser); const scope = parser.createScopeIfLexical(); let body; let sourceType = "script"; if (context & 2) { sourceType = "module"; body = parseModuleItemList(parser, context | 8, scope); if (scope) { for (const name of parser.exportedBindings) { if (!scope.hasVariable(name)) parser.report(148, name); } } } else { body = parseStatementList(parser, context | 8, scope); } return parser.finishNode({ type: "Program", sourceType, body }, { index: 0, line: 1, column: 0 }, parser.currentLocation); } function parseStatementList(parser, context, scope) { nextToken(parser, context | 32 | 262144); const statements = []; while (parser.getToken() === 134283267) { const { index, tokenValue, tokenStart, tokenIndex } = parser; const token = parser.getToken(); const expr = parseLiteral(parser, context); if (isValidStrictMode(parser, index, tokenIndex, tokenValue)) { context |= 1; if (parser.flags & 64) { throw new ParseError(parser.tokenStart, parser.currentLocation, 9); } if (parser.flags & 4096) { throw new ParseError(parser.tokenStart, parser.currentLocation, 15); } } statements.push(parseDirective(parser, context, expr, token, tokenStart)); } while (parser.getToken() !== 1048576) { statements.push(parseStatementListItem(parser, context, scope, void 0, 4, {})); } return statements; } function parseModuleItemList(parser, context, scope) { nextToken(parser, context | 32); const statements = []; while (parser.getToken() === 134283267) { const { tokenStart } = parser; const token = parser.getToken(); statements.push(parseDirective(parser, context, parseLiteral(parser, context), token, tokenStart)); } while (parser.getToken() !== 1048576) { statements.push(parseModuleItem(parser, context, scope)); } return statements; } function parseModuleItem(parser, context, scope) { if (parser.getToken() === 132) { Object.assign(parser.leadingDecorators, { start: parser.tokenStart, decorators: parseDecorators(parser, context, void 0) }); } let moduleItem; switch (parser.getToken()) { case 20564: moduleItem = parseExportDeclaration(parser, context, scope); break; case 86106: moduleItem = parseImportDeclaration(parser, context, scope); break; default: moduleItem = parseStatementListItem(parser, context, scope, void 0, 4, {}); } if (parser.leadingDecorators?.decorators.length) { parser.report(170); } return moduleItem; } function parseStatementListItem(parser, context, scope, privateScope, origin, labels) { const start = parser.tokenStart; switch (parser.getToken()) { case 86104: return parseFunctionDeclaration(parser, context, scope, privateScope, origin, 1, 0, 0, start); case 132: case 86094: return parseClassDeclaration(parser, context, scope, privateScope, 0); case 86090: return parseLexicalDeclaration(parser, context, scope, privateScope, 16, 0); case 241737: return parseLetIdentOrVarDeclarationStatement(parser, context, scope, privateScope, origin); case 20564: parser.report(103, "export"); case 86106: nextToken(parser, context); switch (parser.getToken()) { case 67174411: return parseImportCallDeclaration(parser, context, privateScope, start); case 67108877: return parseImportMetaDeclaration(parser, context, start); default: parser.report(103, "import"); } case 209005: return parseAsyncArrowOrAsyncFunctionDeclaration(parser, context, scope, privateScope, origin, labels, 1); default: return parseStatement(parser, context, scope, privateScope, origin, labels, 1); } } function parseStatement(parser, context, scope, privateScope, origin, labels, allowFuncDecl) { switch (parser.getToken()) { case 86088: return parseVariableStatement(parser, context, scope, privateScope, 0); case 20572: return parseReturnStatement(parser, context, privateScope); case 20569: return parseIfStatement(parser, context, scope, privateScope, labels); case 20567: return parseForStatement(parser, context, scope, privateScope, labels); case 20562: return parseDoWhileStatement(parser, context, scope, privateScope, labels); case 20578: return parseWhileStatement(parser, context, scope, privateScope, labels); case 86110: return parseSwitchStatement(parser, context, scope, privateScope, labels); case 1074790417: return parseEmptyStatement(parser, context); case 2162700: return parseBlock(parser, context, scope?.createChildScope(), privateScope, labels, parser.tokenStart); case 86112: return parseThrowStatement(parser, context, privateScope); case 20555: return parseBreakStatement(parser, context, labels); case 20559: return parseContinueStatement(parser, context, labels); case 20577: return parseTryStatement(parser, context, scope, privateScope, labels); case 20579: return parseWithStatement(parser, context, scope, privateScope, labels); case 20560: return parseDebuggerStatement(parser, context); case 209005: return parseAsyncArrowOrAsyncFunctionDeclaration(parser, context, scope, privateScope, origin, labels, 0); case 20557: parser.report(162); case 20566: parser.report(163); case 86104: parser.report(context & 1 ? 76 : !parser.options.webcompat ? 78 : 77); case 86094: parser.report(79); default: return parseExpressionOrLabelledStatement(parser, context, scope, privateScope, origin, labels, allowFuncDecl); } } function parseExpressionOrLabelledStatement(parser, context, scope, privateScope, origin, labels, allowFuncDecl) { const { tokenValue, tokenStart } = parser; const token = parser.getToken(); let expr; switch (token) { case 241737: expr = parseIdentifier(parser, context); if (context & 1) parser.report(85); if (parser.getToken() === 69271571) parser.report(84); break; default: expr = parsePrimaryExpression(parser, context, privateScope, 2, 0, 1, 0, 1, parser.tokenStart); } if (token & 143360 && parser.getToken() === 21) { return parseLabelledStatement(parser, context, scope, privateScope, origin, labels, tokenValue, expr, token, allowFuncDecl, tokenStart); } expr = parseMemberOrUpdateExpression(parser, context, privateScope, expr, 0, 0, tokenStart); expr = parseAssignmentExpression(parser, context, privateScope, 0, 0, tokenStart, expr); if (parser.getToken() === 18) { expr = parseSequenceExpression(parser, context, privateScope, 0, tokenStart, expr); } return parseExpressionStatement(parser, context, expr, tokenStart); } function parseBlock(parser, context, scope, privateScope, labels, start = parser.tokenStart, type = "BlockStatement") { const body = []; consume(parser, context | 32, 2162700); while (parser.getToken() !== 1074790415) { body.push(parseStatementListItem(parser, context, scope, privateScope, 2, { $: labels })); } consume(parser, context | 32, 1074790415); return parser.finishNode({ type, body }, start); } function parseReturnStatement(parser, context, privateScope) { if ((context & 4096) === 0) parser.report(92); const start = parser.tokenStart; nextToken(parser, context | 32); const argument = parser.flags & 1 || parser.getToken() & 1048576 ? null : parseExpressions(parser, context, privateScope, 0, 1, parser.tokenStart); matchOrInsertSemicolon(parser, context | 32); return parser.finishNode({ type: "ReturnStatement", argument }, start); } function parseExpressionStatement(parser, context, expression, start) { matchOrInsertSemicolon(parser, context | 32); return parser.finishNode({ type: "ExpressionStatement", expression }, start); } function parseLabelledStatement(parser, context, scope, privateScope, origin, labels, value, expr, token, allowFuncDecl, start) { validateBindingIdentifier(parser, context, 0, token, 1); validateAndDeclareLabel(parser, labels, value); nextToken(parser, context | 32); const body = allowFuncDecl && (context & 1) === 0 && parser.options.webcompat && parser.getToken() === 86104 ? parseFunctionDeclaration(parser, context, scope?.createChildScope(), privateScope, origin, 0, 0, 0, parser.tokenStart) : parseStatement(parser, context, scope, privateScope, origin, labels, allowFuncDecl); return parser.finishNode({ type: "LabeledStatement", label: expr, body }, start); } function parseAsyncArrowOrAsyncFunctionDeclaration(parser, context, scope, privateScope, origin, labels, allowFuncDecl) { const { tokenValue, tokenStart: start } = parser; const token = parser.getToken(); let expr = parseIdentifier(parser, context); if (parser.getToken() === 21) { return parseLabelledStatement(parser, context, scope, privateScope, origin, labels, tokenValue, expr, token, 1, start); } const asyncNewLine = parser.flags & 1; if (!asyncNewLine) { if (parser.getToken() === 86104) { if (!allowFuncDecl) parser.report(123); return parseFunctionDeclaration(parser, context, scope, privateScope, origin, 1, 0, 1, start); } if (isValidIdentifier(context, parser.getToken())) { expr = parseAsyncArrowAfterIdent(parser, context, privateScope, 1, start); if (parser.getToken() === 18) expr = parseSequenceExpression(parser, context, privateScope, 0, start, expr); return parseExpressionStatement(parser, context, expr, start); } } if (parser.getToken() === 67174411) { expr = parseAsyncArrowOrCallExpression(parser, context, privateScope, expr, 1, 1, 0, asyncNewLine, start); } else { if (parser.getToken() === 10) { classifyIdentifier(parser, context, token); if ((token & 36864) === 36864) { parser.flags |= 256; } expr = parseArrowFromIdentifier(parser, context | 2048, privateScope, parser.tokenValue, expr, 0, 1, 0, start); } parser.assignable = 1; } expr = parseMemberOrUpdateExpression(parser, context, privateScope, expr, 0, 0, start); expr = parseAssignmentExpression(parser, context, privateScope, 0, 0, start, expr); parser.assignable = 1; if (parser.getToken() === 18) { expr = parseSequenceExpression(parser, context, privateScope, 0, start, expr); } return parseExpressionStatement(parser, context, expr, start); } function parseDirective(parser, context, expression, token, start) { const endIndex = parser.startIndex; if (token !== 1074790417) { parser.assignable = 2; expression = parseMemberOrUpdateExpression(parser, context, void 0, expression, 0, 0, start); if (parser.getToken() !== 1074790417) { expression = parseAssignmentExpression(parser, context, void 0, 0, 0, start, expression); if (parser.getToken() === 18) { expression = parseSequenceExpression(parser, context, void 0, 0, start, expression); } } matchOrInsertSemicolon(parser, context | 32); } const node2 = { type: "ExpressionStatement", expression }; if (expression.type === "Literal" && typeof expression.value === "string") { node2.directive = parser.source.slice(start.index + 1, endIndex - 1); } return parser.finishNode(node2, start); } function parseEmptyStatement(parser, context) { const start = parser.tokenStart; nextToken(parser, context | 32); return parser.finishNode({ type: "EmptyStatement" }, start); } function parseThrowStatement(parser, context, privateScope) { const start = parser.tokenStart; nextToken(parser, context | 32); if (parser.flags & 1) parser.report(90); const argument = parseExpressions(parser, context, privateScope, 0, 1, parser.tokenStart); matchOrInsertSemicolon(parser, context | 32); return parser.finishNode({ type: "ThrowStatement", argument }, start); } function parseIfStatement(parser, context, scope, privateScope, labels) { const start = parser.tokenStart; nextToken(parser, context); consume(parser, context | 32, 67174411); parser.assignable = 1; const test = parseExpressions(parser, context, privateScope, 0, 1, parser.tokenStart); consume(parser, context | 32, 16); const consequent = parseConsequentOrAlternative(parser, context, scope, privateScope, labels); let alternate = null; if (parser.getToken() === 20563) { nextToken(parser, context | 32); alternate = parseConsequentOrAlternative(parser, context, scope, privateScope, labels); } return parser.finishNode({ type: "IfStatement", test, consequent, alternate }, start); } function parseConsequentOrAlternative(parser, context, scope, privateScope, labels) { const { tokenStart } = parser; return context & 1 || !parser.options.webcompat || parser.getToken() !== 86104 ? parseStatement(parser, context, scope, privateScope, 0, { $: labels }, 0) : parseFunctionDeclaration(parser, context, scope?.createChildScope(), privateScope, 0, 0, 0, 0, tokenStart); } function parseSwitchStatement(parser, context, scope, privateScope, labels) { const start = parser.tokenStart; nextToken(parser, context); consume(parser, context | 32, 67174411); const discriminant = parseExpressions(parser, context, privateScope, 0, 1, parser.tokenStart); consume(parser, context, 16); consume(parser, context, 2162700); const cases = []; let seenDefault = 0; scope = scope?.createChildScope(8); while (parser.getToken() !== 1074790415) { const { tokenStart } = parser; let test = null; const consequent = []; if (consumeOpt(parser, context | 32, 20556)) { test = parseExpressions(parser, context, privateScope, 0, 1, parser.tokenStart); } else { consume(parser, context | 32, 20561); if (seenDefault) parser.report(89); seenDefault = 1; } consume(parser, context | 32, 21); while (parser.getToken() !== 20556 && parser.getToken() !== 1074790415 && parser.getToken() !== 20561) { consequent.push(parseStatementListItem(parser, context | 4, scope, privateScope, 2, { $: labels })); } cases.push(parser.finishNode({ type: "SwitchCase", test, consequent }, tokenStart)); } consume(parser, context | 32, 1074790415); return parser.finishNode({ type: "SwitchStatement", discriminant, cases }, start); } function parseWhileStatement(parser, context, scope, privateScope, labels) { const start = parser.tokenStart; nextToken(parser, context); consume(parser, context | 32, 67174411); const test = parseExpressions(parser, context, privateScope, 0, 1, parser.tokenStart); consume(parser, context | 32, 16); const body = parseIterationStatementBody(parser, context, scope, privateScope, labels); return parser.finishNode({ type: "WhileStatement", test, body }, start); } function parseIterationStatementBody(parser, context, scope, privateScope, labels) { return parseStatement(parser, (context | 131072) ^ 131072 | 128, scope, privateScope, 0, { loop: 1, $: labels }, 0); } function parseContinueStatement(parser, context, labels) { if ((context & 128) === 0) parser.report(68); const start = parser.tokenStart; nextToken(parser, context); let label = null; if ((parser.flags & 1) === 0 && parser.getToken() & 143360) { const { tokenValue } = parser; label = parseIdentifier(parser, context | 32); if (!isValidLabel(parser, labels, tokenValue, 1)) parser.report(138, tokenValue); } matchOrInsertSemicolon(parser, context | 32); return parser.finishNode({ type: "ContinueStatement", label }, start); } function parseBreakStatement(parser, context, labels) { const start = parser.tokenStart; nextToken(parser, context | 32); let label = null; if ((parser.flags & 1) === 0 && parser.getToken() & 143360) { const { tokenValue } = parser; label = parseIdentifier(parser, context | 32); if (!isValidLabel(parser, labels, tokenValue, 0)) parser.report(138, tokenValue); } else if ((context & (4 | 128)) === 0) { parser.report(69); } matchOrInsertSemicolon(parser, context | 32); return parser.finishNode({ type: "BreakStatement", label }, start); } function parseWithStatement(parser, context, scope, privateScope, labels) { const start = parser.tokenStart; nextToken(parser, context); if (context & 1) parser.report(91); consume(parser, context | 32, 67174411); const object2 = parseExpressions(parser, context, privateScope, 0, 1, parser.tokenStart); consume(parser, context | 32, 16); const body = parseStatement(parser, context, scope, privateScope, 2, labels, 0); return parser.finishNode({ type: "WithStatement", object: object2, body }, start); } function parseDebuggerStatement(parser, context) { const start = parser.tokenStart; nextToken(parser, context | 32); matchOrInsertSemicolon(parser, context | 32); return parser.finishNode({ type: "DebuggerStatement" }, start); } function parseTryStatement(parser, context, scope, privateScope, labels) { const start = parser.tokenStart; nextToken(parser, context | 32); const firstScope = scope?.createChildScope(16); const block = parseBlock(parser, context, firstScope, privateScope, { $: labels }); const { tokenStart } = parser; const handler = consumeOpt(parser, context | 32, 20557) ? parseCatchBlock(parser, context, scope, privateScope, labels, tokenStart) : null; let finalizer = null; if (parser.getToken() === 20566) { nextToken(parser, context | 32); const finalizerScope = scope?.createChildScope(4); const block2 = parseBlock(parser, context, finalizerScope, privateScope, { $: labels }); finalizer = block2; } if (!handler && !finalizer) { parser.report(88); } return parser.finishNode({ type: "TryStatement", block, handler, finalizer }, start); } function parseCatchBlock(parser, context, scope, privateScope, labels, start) { let param = null; if (consumeOpt(parser, context, 67174411)) { scope = scope?.createChildScope(4); param = parseBindingPattern(parser, context, scope, privateScope, (parser.getToken() & 2097152) === 2097152 ? 256 : 512, 0); if (parser.getToken() === 18) { parser.report(86); } else if (parser.getToken() === 1077936155) { parser.report(87); } consume(parser, context | 32, 16); } const additionalScope = scope?.createChildScope(32); const body = parseBlock(parser, context, additionalScope, privateScope, { $: labels }); return parser.finishNode({ type: "CatchClause", param, body }, start); } function parseStaticBlock(parser, context, scope, privateScope, start) { scope = scope?.createChildScope(); const ctorContext = 512 | 4096 | 1024 | 4 | 128; context = (context | ctorContext) ^ ctorContext | 256 | 2048 | 524288 | 65536; return parseBlock(parser, context, scope, privateScope, {}, start, "StaticBlock"); } function parseDoWhileStatement(parser, context, scope, privateScope, labels) { const start = parser.tokenStart; nextToken(parser, context | 32); const body = parseIterationStatementBody(parser, context, scope, privateScope, labels); consume(parser, context, 20578); consume(parser, context | 32, 67174411); const test = parseExpressions(parser, context, privateScope, 0, 1, parser.tokenStart); consume(parser, context | 32, 16); consumeOpt(parser, context | 32, 1074790417); return parser.finishNode({ type: "DoWhileStatement", body, test }, start); } function parseLetIdentOrVarDeclarationStatement(parser, context, scope, privateScope, origin) { const { tokenValue, tokenStart } = parser; const token = parser.getToken(); let expr = parseIdentifier(parser, context); if (parser.getToken() & (143360 | 2097152) && (parser.getToken() & 20480) !== 20480) { const declarations = parseVariableDeclarationList(parser, context, scope, privateScope, 8, 0); matchOrInsertSemicolon(parser, context | 32); return parser.finishNode({ type: "VariableDeclaration", kind: "let", declarations }, tokenStart); } parser.assignable = 1; if (context & 1) parser.report(85); if (parser.getToken() === 21) { return parseLabelledStatement(parser, context, scope, privateScope, origin, {}, tokenValue, expr, token, 0, tokenStart); } if (parser.getToken() === 10) { let scope2 = void 0; if (parser.options.lexical) scope2 = createArrowHeadParsingScope(parser, context, tokenValue); parser.flags = (parser.flags | 128) ^ 128; expr = parseArrowFunctionExpression(parser, context, scope2, privateScope, [expr], 0, tokenStart); } else { expr = parseMemberOrUpdateExpression(parser, context, privateScope, expr, 0, 0, tokenStart); expr = parseAssignmentExpression(parser, context, privateScope, 0, 0, tokenStart, expr); } if (parser.getToken() === 18) { expr = parseSequenceExpression(parser, context, privateScope, 0, tokenStart, expr); } return parseExpressionStatement(parser, context, expr, tokenStart); } function parseLexicalDeclaration(parser, context, scope, privateScope, kind, origin) { const start = parser.tokenStart; nextToken(parser, context); const declarations = parseVariableDeclarationList(parser, context, scope, privateScope, kind, origin); matchOrInsertSemicolon(parser, context | 32); return parser.finishNode({ type: "VariableDeclaration", kind: kind & 8 ? "let" : "const", declarations }, start); } function parseVariableStatement(parser, context, scope, privateScope, origin) { const start = parser.tokenStart; nextToken(parser, context); const declarations = parseVariableDeclarationList(parser, context, scope, privateScope, 4, origin); matchOrInsertSemicolon(parser, context | 32); return parser.finishNode({ type: "VariableDeclaration", kind: "var", declarations }, start); } function parseVariableDeclarationList(parser, context, scope, privateScope, kind, origin) { let bindingCount = 1; const list = [ parseVariableDeclaration(parser, context, scope, privateScope, kind, origin) ]; while (consumeOpt(parser, context, 18)) { bindingCount++; list.push(parseVariableDeclaration(parser, context, scope, privateScope, kind, origin)); } if (bindingCount > 1 && origin & 32 && parser.getToken() & 262144) { parser.report(61, KeywordDescTable[parser.getToken() & 255]); } return list; } function parseVariableDeclaration(parser, context, scope, privateScope, kind, origin) { const { tokenStart } = parser; const token = parser.getToken(); let init = null; const id = parseBindingPattern(parser, context, scope, privateScope, kind, origin); if (parser.getToken() === 1077936155) { nextToken(parser, context | 32); init = parseExpression(parser, context, privateScope, 1, 0, parser.tokenStart); if (origin & 32) { if (parser.getToken() === 471156 || parser.getToken() === 8673330 && (token & 2097152 || (kind & 4) === 0 || context & 1)) { throw new ParseError(tokenStart, parser.currentLocation, 60, parser.getToken() === 471156 ? "of" : "in"); } } } else if ((kind & 16 || (token & 2097152) > 0) && (parser.getToken() & 262144) !== 262144) { parser.report(59, kind & 16 ? "const" : "destructuring"); } return parser.finishNode({ type: "VariableDeclarator", id, init }, tokenStart); } function parseForStatement(parser, context, scope, privateScope, labels) { const start = parser.tokenStart; nextToken(parser, context); const forAwait = ((context & 2048) > 0 || (context & 2) > 0 && (context & 8) > 0) && consumeOpt(parser, context, 209006); consume(parser, context | 32, 67174411); scope = scope?.createChildScope(1); let test = null; let update = null; let destructible = 0; let init = null; let isVarDecl = parser.getToken() === 86088 || parser.getToken() === 241737 || parser.getToken() === 86090; let right; const { tokenStart } = parser; const token = parser.getToken(); if (isVarDecl) { if (token === 241737) { init = parseIdentifier(parser, context); if (parser.getToken() & (143360 | 2097152) && (parser.getToken() & 20480) !== 20480) { init = parser.finishNode({ type: "VariableDeclaration", kind: "let", declarations: parseVariableDeclarationList(parser, context | 131072, scope, privateScope, 8, 32) }, tokenStart); parser.assignable = 1; } else if (context & 1) { parser.report(67); } else { isVarDecl = false; parser.assignable = 1; init = parseMemberOrUpdateExpression(parser, context, privateScope, init, 0, 0, tokenStart); if (parser.getToken() === 471156) parser.report(115); } } else { nextToken(parser, context); init = parser.finishNode(token === 86088 ? { type: "VariableDeclaration", kind: "var", declarations: parseVariableDeclarationList(parser, context | 131072, scope, privateScope, 4, 32) } : { type: "VariableDeclaration", kind: "const", declarations: parseVariableDeclarationList(parser, context | 131072, scope, privateScope, 16, 32) }, tokenStart); parser.assignable = 1; } } else if (token === 1074790417) { if (forAwait) parser.report(82); } else if ((token & 2097152) === 2097152) { const patternStart = parser.tokenStart; init = token === 2162700 ? parseObjectLiteralOrPattern(parser, context, void 0, privateScope, 1, 0, 0, 2, 32) : parseArrayExpressionOrPattern(parser, context, void 0, privateScope, 1, 0, 0, 2, 32); destructible = parser.destructible; if (destructible & 64) { parser.report(63); } parser.assignable = destructible & 16 ? 2 : 1; init = parseMemberOrUpdateExpression(parser, context | 131072, privateScope, init, 0, 0, patternStart); } else { init = parseLeftHandSideExpression(parser, context | 131072, privateScope, 1, 0, 1); } if ((parser.getToken() & 262144) === 262144) { if (parser.getToken() === 471156) { if (parser.assignable & 2) parser.report(80, forAwait ? "await" : "of"); reinterpretToPattern(parser, init); nextToken(parser, context | 32); right = parseExpression(parser, context, privateScope, 1, 0, parser.tokenStart); consume(parser, context | 32, 16); const body3 = parseIterationStatementBody(parser, context, scope, privateScope, labels); return parser.finishNode({ type: "ForOfStatement", left: init, right, body: body3, await: forAwait }, start); } if (parser.assignable & 2) parser.report(80, "in"); reinterpretToPattern(parser, init); nextToken(parser, context | 32); if (forAwait) parser.report(82); right = parseExpressions(parser, context, privateScope, 0, 1, parser.tokenStart); consume(parser, context | 32, 16); const body2 = parseIterationStatementBody(parser, context, scope, privateScope, labels); return parser.finishNode({ type: "ForInStatement", body: body2, left: init, right }, start); } if (forAwait) parser.report(82); if (!isVarDecl) { if (destructible & 8 && parser.getToken() !== 1077936155) { parser.report(80, "loop"); } init = parseAssignmentExpression(parser, context | 131072, privateScope, 0, 0, tokenStart, init); } if (parser.getToken() === 18) init = parseSequenceExpression(parser, context, privateScope, 0, tokenStart, init); consume(parser, context | 32, 1074790417); if (parser.getToken() !== 1074790417) test = parseExpressions(parser, context, privateScope, 0, 1, parser.tokenStart); consume(parser, context | 32, 1074790417); if (parser.getToken() !== 16) update = parseExpressions(parser, context, privateScope, 0, 1, parser.tokenStart); consume(parser, context | 32, 16); const body = parseIterationStatementBody(parser, context, scope, privateScope, labels); return parser.finishNode({ type: "ForStatement", init, test, update, body }, start); } function parseRestrictedIdentifier(parser, context, scope) { if (!isValidIdentifier(context, parser.getToken())) parser.report(118); if ((parser.getToken() & 537079808) === 537079808) parser.report(119); scope?.addBlockName(context, parser.tokenValue, 8, 0); return parseIdentifier(parser, context); } function parseImportDeclaration(parser, context, scope) { const start = parser.tokenStart; nextToken(parser, context); let source; const { tokenStart } = parser; let specifiers = []; if (parser.getToken() === 134283267) { source = parseLiteral(parser, context); } else { if (parser.getToken() & 143360) { const local = parseRestrictedIdentifier(parser, context, scope); specifiers = [ parser.finishNode({ type: "ImportDefaultSpecifier", local }, tokenStart) ]; if (consumeOpt(parser, context, 18)) { switch (parser.getToken()) { case 8391476: specifiers.push(parseImportNamespaceSpecifier(parser, context, scope)); break; case 2162700: parseImportSpecifierOrNamedImports(parser, context, scope, specifiers); break; default: parser.report(107); } } } else { switch (parser.getToken()) { case 8391476: specifiers = [parseImportNamespaceSpecifier(parser, context, scope)]; break; case 2162700: parseImportSpecifierOrNamedImports(parser, context, scope, specifiers); break; case 67174411: return parseImportCallDeclaration(parser, context, void 0, start); case 67108877: return parseImportMetaDeclaration(parser, context, start); default: parser.report(30, KeywordDescTable[parser.getToken() & 255]); } } source = parseModuleSpecifier(parser, context); } const attributes = parseImportAttributes(parser, context); const node2 = { type: "ImportDeclaration", specifiers, source, attributes }; matchOrInsertSemicolon(parser, context | 32); return parser.finishNode(node2, start); } function parseImportNamespaceSpecifier(parser, context, scope) { const { tokenStart } = parser; nextToken(parser, context); consume(parser, context, 77932); if ((parser.getToken() & 134217728) === 134217728) { throw new ParseError(tokenStart, parser.currentLocation, 30, KeywordDescTable[parser.getToken() & 255]); } return parser.finishNode({ type: "ImportNamespaceSpecifier", local: parseRestrictedIdentifier(parser, context, scope) }, tokenStart); } function parseModuleSpecifier(parser, context) { consume(parser, context, 209011); if (parser.getToken() !== 134283267) parser.report(105, "Import"); return parseLiteral(parser, context); } function parseImportSpecifierOrNamedImports(parser, context, scope, specifiers) { nextToken(parser, context); while (parser.getToken() & 143360 || parser.getToken() === 134283267) { let { tokenValue, tokenStart } = parser; const token = parser.getToken(); const imported = parseModuleExportName(parser, context); let local; if (consumeOpt(parser, context, 77932)) { if ((parser.getToken() & 134217728) === 134217728 || parser.getToken() === 18) { parser.report(106); } else { validateBindingIdentifier(parser, context, 16, parser.getToken(), 0); } tokenValue = parser.tokenValue; local = parseIdentifier(parser, context); } else if (imported.type === "Identifier") { validateBindingIdentifier(parser, context, 16, token, 0); local = parser.cloneIdentifier(imported); } else { parser.report(25, KeywordDescTable[77932 & 255]); } scope?.addBlockName(context, tokenValue, 8, 0); specifiers.push(parser.finishNode({ type: "ImportSpecifier", local, imported }, tokenStart)); if (parser.getToken() !== 1074790415) consume(parser, context, 18); } consume(parser, context, 1074790415); return specifiers; } function parseImportMetaDeclaration(parser, context, start) { let expr = parseImportMetaExpression(parser, context, parser.finishNode({ type: "Identifier", name: "import" }, start), start); expr = parseMemberOrUpdateExpression(parser, context, void 0, expr, 0, 0, start); expr = parseAssignmentExpression(parser, context, void 0, 0, 0, start, expr); if (parser.getToken() === 18) { expr = parseSequenceExpression(parser, context, void 0, 0, start, expr); } return parseExpressionStatement(parser, context, expr, start); } function parseImportCallDeclaration(parser, context, privateScope, start) { let expr = parseImportExpression(parser, context, privateScope, 0, start); expr = parseMemberOrUpdateExpression(parser, context, privateScope, expr, 0, 0, start); if (parser.getToken() === 18) { expr = parseSequenceExpression(parser, context, privateScope, 0, start, expr); } return parseExpressionStatement(parser, context, expr, start); } function parseExportDeclaration(parser, context, scope) { const start = parser.leadingDecorators.decorators.length ? parser.leadingDecorators.start : parser.tokenStart; nextToken(parser, context | 32); const specifiers = []; let declaration = null; let source = null; let attributes = []; if (consumeOpt(parser, context | 32, 20561)) { switch (parser.getToken()) { case 86104: { declaration = parseFunctionDeclaration(parser, context, scope, void 0, 4, 1, 1, 0, parser.tokenStart); break; } case 132: case 86094: declaration = parseClassDeclaration(parser, context, scope, void 0, 1); break; case 209005: { const { tokenStart } = parser; declaration = parseIdentifier(parser, context); const { flags } = parser; if ((flags & 1) === 0) { if (parser.getToken() === 86104) { declaration = parseFunctionDeclaration(parser, context, scope, void 0, 4, 1, 1, 1, tokenStart); } else { if (parser.getToken() === 67174411) { declaration = parseAsyncArrowOrCallExpression(parser, context, void 0, declaration, 1, 1, 0, flags, tokenStart); declaration = parseMemberOrUpdateExpression(parser, context, void 0, declaration, 0, 0, tokenStart); declaration = parseAssignmentExpression(parser, context, void 0, 0, 0, tokenStart, declaration); } else if (parser.getToken() & 143360) { if (scope) scope = createArrowHeadParsingScope(parser, context, parser.tokenValue); declaration = parseIdentifier(parser, context); declaration = parseArrowFunctionExpression(parser, context, scope, void 0, [declaration], 1, tokenStart); } } } break; } default: declaration = parseExpression(parser, context, void 0, 1, 0, parser.tokenStart); matchOrInsertSemicolon(parser, context | 32); } if (scope) parser.declareUnboundVariable("default"); return parser.finishNode({ type: "ExportDefaultDeclaration", declaration }, start); } switch (parser.getToken()) { case 8391476: { nextToken(parser, context); let exported = null; const isNamedDeclaration = consumeOpt(parser, context, 77932); if (isNamedDeclaration) { if (scope) parser.declareUnboundVariable(parser.tokenValue); exported = parseModuleExportName(parser, context); } consume(parser, context, 209011); if (parser.getToken() !== 134283267) parser.report(105, "Export"); source = parseLiteral(parser, context); const attributes2 = parseImportAttributes(parser, context); const node3 = { type: "ExportAllDeclaration", source, exported, attributes: attributes2 }; matchOrInsertSemicolon(parser, context | 32); return parser.finishNode(node3, start); } case 2162700: { nextToken(parser, context); const tmpExportedNames = []; const tmpExportedBindings = []; let hasLiteralLocal = 0; while (parser.getToken() & 143360 || parser.getToken() === 134283267) { const { tokenStart, tokenValue } = parser; const local = parseModuleExportName(parser, context); if (local.type === "Literal") { hasLiteralLocal = 1; } let exported; if (parser.getToken() === 77932) { nextToken(parser, context); if ((parser.getToken() & 143360) === 0 && parser.getToken() !== 134283267) { parser.report(106); } if (scope) { tmpExportedNames.push(parser.tokenValue); tmpExportedBindings.push(tokenValue); } exported = parseModuleExportName(parser, context); } else { if (scope) { tmpExportedNames.push(parser.tokenValue); tmpExportedBindings.push(parser.tokenValue); } exported = local.type === "Literal" ? parser.cloneStringLiteral(local) : parser.cloneIdentifier(local); } specifiers.push(parser.finishNode({ type: "ExportSpecifier", local, exported }, tokenStart)); if (parser.getToken() !== 1074790415) consume(parser, context, 18); } consume(parser, context, 1074790415); if (consumeOpt(parser, context, 209011)) { if (parser.getToken() !== 134283267) parser.report(105, "Export"); source = parseLiteral(parser, context); attributes = parseImportAttributes(parser, context); if (scope) { tmpExportedNames.forEach((n) => parser.declareUnboundVariable(n)); } } else { if (hasLiteralLocal) { parser.report(172); } if (scope) { tmpExportedNames.forEach((n) => parser.declareUnboundVariable(n)); tmpExportedBindings.forEach((b) => parser.addBindingToExports(b)); } } matchOrInsertSemicolon(parser, context | 32); break; } case 132: case 86094: declaration = parseClassDeclaration(parser, context, scope, void 0, 2); break; case 86104: declaration = parseFunctionDeclaration(parser, context, scope, void 0, 4, 1, 2, 0, parser.tokenStart); break; case 241737: declaration = parseLexicalDeclaration(parser, context, scope, void 0, 8, 64); break; case 86090: declaration = parseLexicalDeclaration(parser, context, scope, void 0, 16, 64); break; case 86088: declaration = parseVariableStatement(parser, context, scope, void 0, 64); break; case 209005: { const { tokenStart } = parser; nextToken(parser, context); if ((parser.flags & 1) === 0 && parser.getToken() === 86104) { declaration = parseFunctionDeclaration(parser, context, scope, void 0, 4, 1, 2, 1, tokenStart); break; } } default: parser.report(30, KeywordDescTable[parser.getToken() & 255]); } const node2 = { type: "ExportNamedDeclaration", declaration, specifiers, source, attributes }; return parser.finishNode(node2, start); } function parseExpression(parser, context, privateScope, canAssign, inGroup, start) { let expr = parsePrimaryExpression(parser, context, privateScope, 2, 0, canAssign, inGroup, 1, start); expr = parseMemberOrUpdateExpression(parser, context, privateScope, expr, inGroup, 0, start); return parseAssignmentExpression(parser, context, privateScope, inGroup, 0, start, expr); } function parseSequenceExpression(parser, context, privateScope, inGroup, start, expr) { const expressions = [expr]; while (consumeOpt(parser, context | 32, 18)) { expressions.push(parseExpression(parser, context, privateScope, 1, inGroup, parser.tokenStart)); } return parser.finishNode({ type: "SequenceExpression", expressions }, start); } function parseExpressions(parser, context, privateScope, inGroup, canAssign, start) { const expr = parseExpression(parser, context, privateScope, canAssign, inGroup, start); return parser.getToken() === 18 ? parseSequenceExpression(parser, context, privateScope, inGroup, start, expr) : expr; } function parseAssignmentExpression(parser, context, privateScope, inGroup, isPattern, start, left) { const token = parser.getToken(); if ((token & 4194304) === 4194304) { if (parser.assignable & 2) parser.report(26); if ((token & 524288) === 524288 && parser.assignable & 4) parser.report(26); if (!isPattern && token === 1077936155 && left.type === "ArrayExpression" || left.type === "ObjectExpression") { reinterpretToPattern(parser, left); } nextToken(parser, context | 32); const right = parseExpression(parser, context, privateScope, 1, inGroup, parser.tokenStart); parser.assignable = 2; return parser.finishNode(isPattern ? { type: "AssignmentPattern", left, right } : { type: "AssignmentExpression", left, operator: KeywordDescTable[token & 255], right }, start); } if ((token & 8388608) === 8388608) { left = parseBinaryExpression(parser, context, privateScope, inGroup, start, 4, token, left); } if (consumeOpt(parser, context | 32, 22)) { left = parseConditionalExpression(parser, context, privateScope, left, start); } return left; } function parseAssignmentExpressionOrPattern(parser, context, privateScope, inGroup, isPattern, start, left) { const token = parser.getToken(); nextToken(parser, context | 32); const right = parseExpression(parser, context, privateScope, 1, inGroup, parser.tokenStart); left = parser.finishNode(isPattern ? { type: "AssignmentPattern", left, right } : { type: "AssignmentExpression", left, operator: KeywordDescTable[token & 255], right }, start); parser.assignable = 2; return left; } function parseConditionalExpression(parser, context, privateScope, test, start) { const consequent = parseExpression(parser, (context | 131072) ^ 131072, privateScope, 1, 0, parser.tokenStart); consume(parser, context | 32, 21); parser.assignable = 1; const alternate = parseExpression(parser, context, privateScope, 1, 0, parser.tokenStart); parser.assignable = 2; return parser.finishNode({ type: "ConditionalExpression", test, consequent, alternate }, start); } function parseBinaryExpression(parser, context, privateScope, inGroup, start, minPrecedence, operator, left) { const bit = -((context & 131072) > 0) & 8673330; let t; let precedence; parser.assignable = 2; while (parser.getToken() & 8388608) { t = parser.getToken(); precedence = t & 3840; if (t & 524288 && operator & 268435456 || operator & 524288 && t & 268435456) { parser.report(165); } if (precedence + ((t === 8391735) << 8) - ((bit === t) << 12) <= minPrecedence) break; nextToken(parser, context | 32); left = parser.finishNode({ type: t & 524288 || t & 268435456 ? "LogicalExpression" : "BinaryExpression", left, right: parseBinaryExpression(parser, context, privateScope, inGroup, parser.tokenStart, precedence, t, parseLeftHandSideExpression(parser, context, privateScope, 0, inGroup, 1)), operator: KeywordDescTable[t & 255] }, start); } if (parser.getToken() === 1077936155) parser.report(26); return left; } function parseUnaryExpression(parser, context, privateScope, isLHS, inGroup) { if (!isLHS) parser.report(0); const { tokenStart } = parser; const unaryOperator = parser.getToken(); nextToken(parser, context | 32); const arg = parseLeftHandSideExpression(parser, context, privateScope, 0, inGroup, 1); if (parser.getToken() === 8391735) parser.report(33); if (context & 1 && unaryOperator === 16863276) { if (arg.type === "Identifier") { parser.report(121); } else if (isPropertyWithPrivateFieldKey(arg)) { parser.report(127); } } parser.assignable = 2; return parser.finishNode({ type: "UnaryExpression", operator: KeywordDescTable[unaryOperator & 255], argument: arg, prefix: true }, tokenStart); } function parseAsyncExpression(parser, context, privateScope, inGroup, isLHS, canAssign, inNew, start) { const token = parser.getToken(); const expr = parseIdentifier(parser, context); const { flags } = parser; if ((flags & 1) === 0) { if (parser.getToken() === 86104) { return parseFunctionExpression(parser, context, privateScope, 1, inGroup, start); } if (isValidIdentifier(context, parser.getToken())) { if (!isLHS) parser.report(0); if ((parser.getToken() & 36864) === 36864) { parser.flags |= 256; } return parseAsyncArrowAfterIdent(parser, context, privateScope, canAssign, start); } } if (!inNew && parser.getToken() === 67174411) { return parseAsyncArrowOrCallExpression(parser, context, privateScope, expr, canAssign, 1, 0, flags, start); } if (parser.getToken() === 10) { classifyIdentifier(parser, context, token); if (inNew) parser.report(51); if ((token & 36864) === 36864) { parser.flags |= 256; } return parseArrowFromIdentifier(parser, context, privateScope, parser.tokenValue, expr, inNew, canAssign, 0, start); } parser.assignable = 1; return expr; } function parseYieldExpressionOrIdentifier(parser, context, privateScope, inGroup, canAssign, start) { if (inGroup) parser.destructible |= 256; if (context & 1024) { nextToken(parser, context | 32); if (context & 8192) parser.report(32); if (!canAssign) parser.report(26); if (parser.getToken() === 22) parser.report(124); let argument = null; let delegate = false; if ((parser.flags & 1) === 0) { delegate = consumeOpt(parser, context | 32, 8391476); if (parser.getToken() & (12288 | 65536) || delegate) { argument = parseExpression(parser, context, privateScope, 1, 0, parser.tokenStart); } } else if (parser.getToken() === 8391476) { parser.report(30, KeywordDescTable[parser.getToken() & 255]); } parser.assignable = 2; return parser.finishNode({ type: "YieldExpression", argument, delegate }, start); } if (context & 1) parser.report(97, "yield"); return parseIdentifierOrArrow(parser, context, privateScope); } function parseAwaitExpressionOrIdentifier(parser, context, privateScope, inNew, inGroup, start) { if (inGroup) parser.destructible |= 128; if (context & 524288) parser.report(177); const possibleIdentifierOrArrowFunc = parseIdentifierOrArrow(parser, context, privateScope); const isIdentifier = possibleIdentifierOrArrowFunc.type === "ArrowFunctionExpression" || (parser.getToken() & 65536) === 0; if (isIdentifier) { if (context & 2048) throw new ParseError(start, { index: parser.startIndex, line: parser.startLine, column: parser.startColumn }, 176); if (context & 2) throw new ParseError(start, { index: parser.startIndex, line: parser.startLine, column: parser.startColumn }, 110); if (context & 8192 && context & 2048) throw new ParseError(start, { index: parser.startIndex, line: parser.startLine, column: parser.startColumn }, 110); return possibleIdentifierOrArrowFunc; } if (context & 8192) { throw new ParseError(start, { index: parser.startIndex, line: parser.startLine, column: parser.startColumn }, 31); } if (context & 2048 || context & 2 && context & 8) { if (inNew) throw new ParseError(start, { index: parser.startIndex, line: parser.startLine, column: parser.startColumn }, 0); const argument = parseLeftHandSideExpression(parser, context, privateScope, 0, 0, 1); if (parser.getToken() === 8391735) parser.report(33); parser.assignable = 2; return parser.finishNode({ type: "AwaitExpression", argument }, start); } if (context & 2) throw new ParseError(start, { index: parser.startIndex, line: parser.startLine, column: parser.startColumn }, 98); return possibleIdentifierOrArrowFunc; } function parseFunctionBody(parser, context, scope, privateScope, origin, funcNameToken, functionScope) { const { tokenStart } = parser; consume(parser, context | 32, 2162700); const body = []; if (parser.getToken() !== 1074790415) { while (parser.getToken() === 134283267) { const { index, tokenStart: tokenStart2, tokenIndex, tokenValue } = parser; const token = parser.getToken(); const expr = parseLiteral(parser, context); if (isValidStrictMode(parser, index, tokenIndex, tokenValue)) { context |= 1; if (parser.flags & 128) { throw new ParseError(tokenStart2, parser.currentLocation, 66); } if (parser.flags & 64) { throw new ParseError(tokenStart2, parser.currentLocation, 9); } if (parser.flags & 4096) { throw new ParseError(tokenStart2, parser.currentLocation, 15); } functionScope?.reportScopeError(); } body.push(parseDirective(parser, context, expr, token, tokenStart2)); } if (context & 1) { if (funcNameToken) { if ((funcNameToken & 537079808) === 537079808) { parser.report(119); } if ((funcNameToken & 36864) === 36864) { parser.report(40); } } if (parser.flags & 512) parser.report(119); if (parser.flags & 256) { if (parser.strictReservedRange) { throw new ParseError(parser.strictReservedRange[0], parser.strictReservedRange[1], 118); } parser.report(118); } } } parser.flags = (parser.flags | 512 | 256 | 64 | 4096) ^ (512 | 256 | 64 | 4096); parser.destructible = (parser.destructible | 256) ^ 256; while (parser.getToken() !== 1074790415) { body.push(parseStatementListItem(parser, context, scope, privateScope, 4, {})); } consume(parser, origin & (16 | 8) ? context | 32 : context, 1074790415); parser.flags &= -4289; if (parser.getToken() === 1077936155) parser.report(26); return parser.finishNode({ type: "BlockStatement", body }, tokenStart); } function parseSuperExpression(parser, context) { const { tokenStart } = parser; nextToken(parser, context); switch (parser.getToken()) { case 67108990: parser.report(167); case 67174411: { if ((context & 512) === 0) parser.report(28); parser.assignable = 2; break; } case 69271571: case 67108877: { if ((context & 256) === 0) parser.report(29); parser.assignable = 1; break; } default: parser.report(30, "super"); } return parser.finishNode({ type: "Super" }, tokenStart); } function parseLeftHandSideExpression(parser, context, privateScope, canAssign, inGroup, isLHS) { const start = parser.tokenStart; const expression = parsePrimaryExpression(parser, context, privateScope, 2, 0, canAssign, inGroup, isLHS, start); return parseMemberOrUpdateExpression(parser, context, privateScope, expression, inGroup, 0, start); } function parseUpdateExpression(parser, context, expr, start) { if (parser.assignable & 2) parser.report(55); const token = parser.getToken(); nextToken(parser, context); parser.assignable = 2; return parser.finishNode({ type: "UpdateExpression", argument: expr, operator: KeywordDescTable[token & 255], prefix: false }, start); } function parseMemberOrUpdateExpression(parser, context, privateScope, expr, inGroup, inChain, start) { if ((parser.getToken() & 33619968) === 33619968 && (parser.flags & 1) === 0) { expr = parseUpdateExpression(parser, context, expr, start); } else if ((parser.getToken() & 67108864) === 67108864) { context = (context | 131072) ^ 131072; switch (parser.getToken()) { case 67108877: { nextToken(parser, (context | 262144 | 8) ^ 8); if (context & 16 && parser.getToken() === 130 && parser.tokenValue === "super") { parser.report(173); } parser.assignable = 1; const property = parsePropertyOrPrivatePropertyName(parser, context | 64, privateScope); expr = parser.finishNode({ type: "MemberExpression", object: expr, computed: false, property, optional: false }, start); break; } case 69271571: { if ((parser.flags & 8192) === 8192) { parser.flags = (parser.flags | 8192) ^ 8192; return expr; } let restoreHasOptionalChaining = false; if ((parser.flags & 2048) === 2048) { restoreHasOptionalChaining = true; parser.flags = (parser.flags | 2048) ^ 2048; } nextToken(parser, context | 32); const { tokenStart } = parser; const property = parseExpressions(parser, context, privateScope, inGroup, 1, tokenStart); consume(parser, context, 20); parser.assignable = 1; expr = parser.finishNode({ type: "MemberExpression", object: expr, computed: true, property, optional: false }, start); if (restoreHasOptionalChaining) { parser.flags |= 2048; } break; } case 67174411: { if ((parser.flags & 1024) === 1024) { parser.flags = (parser.flags | 1024) ^ 1024; return expr; } let restoreHasOptionalChaining = false; if ((parser.flags & 2048) === 2048) { restoreHasOptionalChaining = true; parser.flags = (parser.flags | 2048) ^ 2048; } const args = parseArguments(parser, context, privateScope, inGroup); if (!(context & 1) && parser.options.webcompat) { parser.assignable = 4; } else { parser.assignable = 2; } expr = parser.finishNode({ type: "CallExpression", callee: expr, arguments: args, optional: false }, start); if (restoreHasOptionalChaining) { parser.flags |= 2048; } break; } case 67108990: { nextToken(parser, (context | 262144 | 8) ^ 8); parser.flags |= 2048; parser.assignable = 2; expr = parseOptionalChain(parser, context, privateScope, expr, start); break; } default: if ((parser.flags & 2048) === 2048) { parser.report(166); } parser.assignable = 2; expr = parser.finishNode({ type: "TaggedTemplateExpression", tag: expr, quasi: parser.getToken() === 67174408 ? parseTemplate(parser, context | 64, privateScope) : parseTemplateLiteral(parser, context) }, start); } expr = parseMemberOrUpdateExpression(parser, context, privateScope, expr, 0, 1, start); } if (inChain === 0 && (parser.flags & 2048) === 2048) { parser.flags = (parser.flags | 2048) ^ 2048; expr = parser.finishNode({ type: "ChainExpression", expression: expr }, start); } return expr; } function parseOptionalChain(parser, context, privateScope, expr, start) { let restoreHasOptionalChaining = false; let node2; if (parser.getToken() === 69271571 || parser.getToken() === 67174411) { if ((parser.flags & 2048) === 2048) { restoreHasOptionalChaining = true; parser.flags = (parser.flags | 2048) ^ 2048; } } if (parser.getToken() === 69271571) { nextToken(parser, context | 32); const { tokenStart } = parser; const property = parseExpressions(parser, context, privateScope, 0, 1, tokenStart); consume(parser, context, 20); parser.assignable = 2; node2 = parser.finishNode({ type: "MemberExpression", object: expr, computed: true, optional: true, property }, start); } else if (parser.getToken() === 67174411) { const args = parseArguments(parser, context, privateScope, 0); if (!(context & 1) && parser.options.webcompat) { parser.assignable = 4; } else { parser.assignable = 2; } node2 = parser.finishNode({ type: "CallExpression", callee: expr, arguments: args, optional: true }, start); } else { const property = parsePropertyOrPrivatePropertyName(parser, context, privateScope); parser.assignable = 2; node2 = parser.finishNode({ type: "MemberExpression", object: expr, computed: false, optional: true, property }, start); } if (restoreHasOptionalChaining) { parser.flags |= 2048; } return node2; } function parsePropertyOrPrivatePropertyName(parser, context, privateScope) { if ((parser.getToken() & 143360) === 0 && parser.getToken() !== -2147483528 && parser.getToken() !== -2147483527 && parser.getToken() !== 130) { parser.report(160); } return parser.getToken() === 130 ? parsePrivateIdentifier(parser, context, privateScope, 0) : parseIdentifier(parser, context); } function parseUpdateExpressionPrefixed(parser, context, privateScope, inNew, isLHS, start) { if (inNew) parser.report(56); if (!isLHS) parser.report(0); const token = parser.getToken(); nextToken(parser, context | 32); const arg = parseLeftHandSideExpression(parser, context, privateScope, 0, 0, 1); if (parser.assignable & 2) { parser.report(55); } parser.assignable = 2; return parser.finishNode({ type: "UpdateExpression", argument: arg, operator: KeywordDescTable[token & 255], prefix: true }, start); } function parsePrimaryExpression(parser, context, privateScope, kind, inNew, canAssign, inGroup, isLHS, start) { if ((parser.getToken() & 143360) === 143360) { switch (parser.getToken()) { case 209006: return parseAwaitExpressionOrIdentifier(parser, context, privateScope, inNew, inGroup, start); case 241771: return parseYieldExpressionOrIdentifier(parser, context, privateScope, inGroup, canAssign, start); case 209005: return parseAsyncExpression(parser, context, privateScope, inGroup, isLHS, canAssign, inNew, start); } const { tokenValue } = parser; const token = parser.getToken(); const expr = parseIdentifier(parser, context | 64); if (parser.getToken() === 10) { if (!isLHS) parser.report(0); classifyIdentifier(parser, context, token); if ((token & 36864) === 36864) { parser.flags |= 256; } return parseArrowFromIdentifier(parser, context, privateScope, tokenValue, expr, inNew, canAssign, 0, start); } if (context & 16 && !(context & 32768) && !(context & 8192) && parser.tokenValue === "arguments") parser.report(130); if ((token & 255) === (241737 & 255)) { if (context & 1) parser.report(113); if (kind & (8 | 16)) parser.report(100); } parser.assignable = context & 1 && (token & 537079808) === 537079808 ? 2 : 1; return expr; } if ((parser.getToken() & 134217728) === 134217728) { return parseLiteral(parser, context); } switch (parser.getToken()) { case 33619993: case 33619994: return parseUpdateExpressionPrefixed(parser, context, privateScope, inNew, isLHS, start); case 16863276: case 16842798: case 16842799: case 25233968: case 25233969: case 16863275: case 16863277: return parseUnaryExpression(parser, context, privateScope, isLHS, inGroup); case 86104: return parseFunctionExpression(parser, context, privateScope, 0, inGroup, start); case 2162700: return parseObjectLiteral(parser, context, privateScope, canAssign ? 0 : 1, inGroup); case 69271571: return parseArrayLiteral(parser, context, privateScope, canAssign ? 0 : 1, inGroup); case 67174411: return parseParenthesizedExpression(parser, context | 64, privateScope, canAssign, 1, 0, start); case 86021: case 86022: case 86023: return parseNullOrTrueOrFalseLiteral(parser, context); case 86111: return parseThisExpression(parser, context); case 65540: return parseRegExpLiteral(parser, context); case 132: case 86094: return parseClassExpression(parser, context, privateScope, inGroup, start); case 86109: return parseSuperExpression(parser, context); case 67174409: return parseTemplateLiteral(parser, context); case 67174408: return parseTemplate(parser, context, privateScope); case 86107: return parseNewExpression(parser, context, privateScope, inGroup); case 134283388: return parseBigIntLiteral(parser, context); case 130: return parsePrivateIdentifier(parser, context, privateScope, 0); case 86106: return parseImportCallOrMetaExpression(parser, context, privateScope, inNew, inGroup, start); case 8456256: if (parser.options.jsx) return parseJSXRootElementOrFragment(parser, context, privateScope, 0, parser.tokenStart); default: if (isValidIdentifier(context, parser.getToken())) return parseIdentifierOrArrow(parser, context, privateScope); parser.report(30, KeywordDescTable[parser.getToken() & 255]); } } function parseImportCallOrMetaExpression(parser, context, privateScope, inNew, inGroup, start) { let expr = parseIdentifier(parser, context); if (parser.getToken() === 67108877) { return parseImportMetaExpression(parser, context, expr, start); } if (inNew) parser.report(142); expr = parseImportExpression(parser, context, privateScope, inGroup, start); parser.assignable = 2; return parseMemberOrUpdateExpression(parser, context, privateScope, expr, inGroup, 0, start); } function parseImportMetaExpression(parser, context, meta3, start) { if ((context & 2) === 0) parser.report(169); nextToken(parser, context); const token = parser.getToken(); if (token !== 209030 && parser.tokenValue !== "meta") { parser.report(174); } else if (token & -2147483648) { parser.report(175); } parser.assignable = 2; return parser.finishNode({ type: "MetaProperty", meta: meta3, property: parseIdentifier(parser, context) }, start); } function parseImportExpression(parser, context, privateScope, inGroup, start) { consume(parser, context | 32, 67174411); if (parser.getToken() === 14) parser.report(143); const source = parseExpression(parser, context, privateScope, 1, inGroup, parser.tokenStart); let options = null; if (parser.getToken() === 18) { consume(parser, context, 18); if (parser.getToken() !== 16) { const expContext = (context | 131072) ^ 131072; options = parseExpression(parser, expContext, privateScope, 1, inGroup, parser.tokenStart); } consumeOpt(parser, context, 18); } const node2 = { type: "ImportExpression", source, options }; consume(parser, context, 16); return parser.finishNode(node2, start); } function parseImportAttributes(parser, context) { if (!consumeOpt(parser, context, 20579)) return []; consume(parser, context, 2162700); const attributes = []; const keysContent = /* @__PURE__ */ new Set(); while (parser.getToken() !== 1074790415) { const start = parser.tokenStart; const key = parseIdentifierOrStringLiteral(parser, context); consume(parser, context, 21); const value = parseStringLiteral(parser, context); const keyContent = key.type === "Literal" ? key.value : key.name; if (keysContent.has(keyContent)) { parser.report(145, `${keyContent}`); } keysContent.add(keyContent); attributes.push(parser.finishNode({ type: "ImportAttribute", key, value }, start)); if (parser.getToken() !== 1074790415) { consume(parser, context, 18); } } consume(parser, context, 1074790415); return attributes; } function parseStringLiteral(parser, context) { if (parser.getToken() === 134283267) { return parseLiteral(parser, context); } else { parser.report(30, KeywordDescTable[parser.getToken() & 255]); } } function parseIdentifierOrStringLiteral(parser, context) { if (parser.getToken() === 134283267) { return parseLiteral(parser, context); } else if (parser.getToken() & 143360) { return parseIdentifier(parser, context); } else { parser.report(30, KeywordDescTable[parser.getToken() & 255]); } } function parseModuleExportName(parser, context) { if (parser.getToken() === 134283267) { const value = parser.tokenValue; if (!value.isWellFormed()) { parser.report(171); } return parseLiteral(parser, context); } else if (parser.getToken() & 143360) { return parseIdentifier(parser, context); } else { parser.report(30, KeywordDescTable[parser.getToken() & 255]); } } function parseBigIntLiteral(parser, context) { const { tokenRaw, tokenValue, tokenStart } = parser; nextToken(parser, context); parser.assignable = 2; const node2 = { type: "Literal", value: tokenValue, bigint: String(tokenValue) }; if (parser.options.raw) { node2.raw = tokenRaw; } return parser.finishNode(node2, tokenStart); } function parseTemplateLiteral(parser, context) { parser.assignable = 2; const { tokenValue, tokenRaw, tokenStart } = parser; consume(parser, context, 67174409); const quasis = [parseTemplateElement(parser, tokenValue, tokenRaw, tokenStart, true)]; return parser.finishNode({ type: "TemplateLiteral", expressions: [], quasis }, tokenStart); } function parseTemplate(parser, context, privateScope) { context = (context | 131072) ^ 131072; const { tokenValue, tokenRaw, tokenStart } = parser; consume(parser, context & -65 | 32, 67174408); const quasis = [parseTemplateElement(parser, tokenValue, tokenRaw, tokenStart, false)]; const expressions = [ parseExpressions(parser, context & -65, privateScope, 0, 1, parser.tokenStart) ]; if (parser.getToken() !== 1074790415) parser.report(83); while (parser.setToken(scanTemplateTail(parser, context), true) !== 67174409) { const { tokenValue: tokenValue2, tokenRaw: tokenRaw2, tokenStart: tokenStart2 } = parser; consume(parser, context & -65 | 32, 67174408); quasis.push(parseTemplateElement(parser, tokenValue2, tokenRaw2, tokenStart2, false)); expressions.push(parseExpressions(parser, context, privateScope, 0, 1, parser.tokenStart)); if (parser.getToken() !== 1074790415) parser.report(83); } { const { tokenValue: tokenValue2, tokenRaw: tokenRaw2, tokenStart: tokenStart2 } = parser; consume(parser, context, 67174409); quasis.push(parseTemplateElement(parser, tokenValue2, tokenRaw2, tokenStart2, true)); } parser.assignable = 2; return parser.finishNode({ type: "TemplateLiteral", expressions, quasis }, tokenStart); } function parseTemplateElement(parser, cooked, raw, start, tail) { const node2 = parser.finishNode({ type: "TemplateElement", value: { cooked, raw }, tail }, start); const tailSize = tail ? 1 : 2; const { ranges } = parser.options; if (ranges) { if (ranges.start) node2.start += 1; if (ranges.end) node2.end -= tailSize; if (ranges.range) { node2.range[0] += 1; node2.range[1] -= tailSize; } } if (parser.options.loc) { node2.loc.start.column += 1; node2.loc.end.column -= tailSize; } return node2; } function parseSpreadElement(parser, context, privateScope) { const start = parser.tokenStart; context = (context | 131072) ^ 131072; consume(parser, context | 32, 14); const argument = parseExpression(parser, context, privateScope, 1, 0, parser.tokenStart); parser.assignable = 1; return parser.finishNode({ type: "SpreadElement", argument }, start); } function parseArguments(parser, context, privateScope, inGroup) { nextToken(parser, context | 32); const args = []; if (parser.getToken() === 16) { nextToken(parser, context | 64); return args; } while (parser.getToken() !== 16) { if (parser.getToken() === 14) { args.push(parseSpreadElement(parser, context, privateScope)); } else { args.push(parseExpression(parser, context, privateScope, 1, inGroup, parser.tokenStart)); } if (parser.getToken() !== 18) break; nextToken(parser, context | 32); if (parser.getToken() === 16) break; } consume(parser, context | 64, 16); return args; } function parseIdentifier(parser, context) { const { tokenValue, tokenStart } = parser; const allowRegex = tokenValue === "await" && (parser.getToken() & -2147483648) === 0; nextToken(parser, context | (allowRegex ? 32 : 0)); return parser.finishNode({ type: "Identifier", name: tokenValue }, tokenStart); } function parseLiteral(parser, context) { const { tokenValue, tokenRaw, tokenStart } = parser; if (parser.getToken() === 134283388) { return parseBigIntLiteral(parser, context); } const node2 = { type: "Literal", value: tokenValue }; if (parser.options.raw) { node2.raw = tokenRaw; } nextToken(parser, context); parser.assignable = 2; return parser.finishNode(node2, tokenStart); } function parseNullOrTrueOrFalseLiteral(parser, context) { const start = parser.tokenStart; const raw = KeywordDescTable[parser.getToken() & 255]; const value = parser.getToken() === 86023 ? null : raw === "true"; const node2 = { type: "Literal", value }; if (parser.options.raw) { node2.raw = raw; } nextToken(parser, context); parser.assignable = 2; return parser.finishNode(node2, start); } function parseThisExpression(parser, context) { const { tokenStart } = parser; nextToken(parser, context); parser.assignable = 2; return parser.finishNode({ type: "ThisExpression" }, tokenStart); } function parseFunctionDeclaration(parser, context, scope, privateScope, origin, allowGen, flags, isAsync3, start) { nextToken(parser, context | 32); const isGenerator = allowGen ? optionalBit(parser, context, 8391476) : 0; let id = null; let funcNameToken; let functionScope = scope ? parser.createScope() : void 0; if (parser.getToken() === 67174411) { if ((flags & 1) === 0) parser.report(39, "Function"); } else { const kind = origin & 4 && ((context & 8) === 0 || (context & 2) === 0) ? 4 : 64 | (isAsync3 ? 1024 : 0) | (isGenerator ? 1024 : 0); validateFunctionName(parser, context, parser.getToken()); if (scope) { if (kind & 4) { scope.addVarName(context, parser.tokenValue, kind); } else { scope.addBlockName(context, parser.tokenValue, kind, origin); } functionScope = functionScope?.createChildScope(128); if (flags) { if (flags & 2) { parser.declareUnboundVariable(parser.tokenValue); } } } funcNameToken = parser.getToken(); if (parser.getToken() & 143360) { id = parseIdentifier(parser, context); } else { parser.report(30, KeywordDescTable[parser.getToken() & 255]); } } { const modifierFlags2 = 256 | 512 | 1024 | 2048 | 8192 | 16384; context = (context | modifierFlags2) ^ modifierFlags2 | 65536 | (isAsync3 ? 2048 : 0) | (isGenerator ? 1024 : 0) | (isGenerator ? 0 : 262144); } functionScope = functionScope?.createChildScope(256); const params = parseFormalParametersOrFormalList(parser, (context | 8192) & -524289, functionScope, privateScope, 0, 1); const modifierFlags = 8 | 4 | 128 | 524288; const body = parseFunctionBody(parser, (context | modifierFlags) ^ modifierFlags | 32768 | 4096, functionScope?.createChildScope(64), privateScope, 8, funcNameToken, functionScope); return parser.finishNode({ type: "FunctionDeclaration", id, params, body, async: isAsync3 === 1, generator: isGenerator === 1 }, start); } function parseFunctionExpression(parser, context, privateScope, isAsync3, inGroup, start) { nextToken(parser, context | 32); const isGenerator = optionalBit(parser, context, 8391476); const generatorAndAsyncFlags = (isAsync3 ? 2048 : 0) | (isGenerator ? 1024 : 0); let id = null; let funcNameToken; let scope = parser.createScopeIfLexical(); const modifierFlags = 256 | 512 | 1024 | 2048 | 8192 | 16384 | 524288; if (parser.getToken() & 143360) { validateFunctionName(parser, (context | modifierFlags) ^ modifierFlags | generatorAndAsyncFlags, parser.getToken()); scope = scope?.createChildScope(128); funcNameToken = parser.getToken(); id = parseIdentifier(parser, context); } context = (context | modifierFlags) ^ modifierFlags | 65536 | generatorAndAsyncFlags | (isGenerator ? 0 : 262144); scope = scope?.createChildScope(256); const params = parseFormalParametersOrFormalList(parser, (context | 8192) & -524289, scope, privateScope, inGroup, 1); const body = parseFunctionBody(parser, context & -131229 | 32768 | 4096, scope?.createChildScope(64), privateScope, 0, funcNameToken, scope); parser.assignable = 2; return parser.finishNode({ type: "FunctionExpression", id, params, body, async: isAsync3 === 1, generator: isGenerator === 1 }, start); } function parseArrayLiteral(parser, context, privateScope, skipInitializer, inGroup) { const expr = parseArrayExpressionOrPattern(parser, context, void 0, privateScope, skipInitializer, inGroup, 0, 2, 0); if (parser.destructible & 64) { parser.report(63); } if (parser.destructible & 8) { parser.report(62); } return expr; } function parseArrayExpressionOrPattern(parser, context, scope, privateScope, skipInitializer, inGroup, isPattern, kind, origin) { const { tokenStart: start } = parser; nextToken(parser, context | 32); const elements = []; let destructible = 0; context = (context | 131072) ^ 131072; while (parser.getToken() !== 20) { if (consumeOpt(parser, context | 32, 18)) { elements.push(null); } else { let left; const { tokenStart, tokenValue } = parser; const token = parser.getToken(); if (token & 143360) { left = parsePrimaryExpression(parser, context, privateScope, kind, 0, 1, inGroup, 1, tokenStart); if (parser.getToken() === 1077936155) { if (parser.assignable & 2) parser.report(26); nextToken(parser, context | 32); scope?.addVarOrBlock(context, tokenValue, kind, origin); const right = parseExpression(parser, context, privateScope, 1, inGroup, parser.tokenStart); left = parser.finishNode(isPattern ? { type: "AssignmentPattern", left, right } : { type: "AssignmentExpression", operator: "=", left, right }, tokenStart); destructible |= parser.destructible & 256 ? 256 : 0 | parser.destructible & 128 ? 128 : 0; } else if (parser.getToken() === 18 || parser.getToken() === 20) { if (parser.assignable & 2) { destructible |= 16; } else { scope?.addVarOrBlock(context, tokenValue, kind, origin); } destructible |= parser.destructible & 256 ? 256 : 0 | parser.destructible & 128 ? 128 : 0; } else { destructible |= kind & 1 ? 32 : (kind & 2) === 0 ? 16 : 0; left = parseMemberOrUpdateExpression(parser, context, privateScope, left, inGroup, 0, tokenStart); if (parser.getToken() !== 18 && parser.getToken() !== 20) { if (parser.getToken() !== 1077936155) destructible |= 16; left = parseAssignmentExpression(parser, context, privateScope, inGroup, isPattern, tokenStart, left); } else if (parser.getToken() !== 1077936155) { destructible |= parser.assignable & 1 ? 32 : 16; } } } else if (token & 2097152) { left = parser.getToken() === 2162700 ? parseObjectLiteralOrPattern(parser, context, scope, privateScope, 0, inGroup, isPattern, kind, origin) : parseArrayExpressionOrPattern(parser, context, scope, privateScope, 0, inGroup, isPattern, kind, origin); destructible |= parser.destructible; parser.assignable = parser.destructible & 16 ? 2 : 1; if (parser.getToken() === 18 || parser.getToken() === 20) { if (parser.assignable & 2) { destructible |= 16; } } else if (parser.destructible & 8) { parser.report(71); } else { left = parseMemberOrUpdateExpression(parser, context, privateScope, left, inGroup, 0, tokenStart); destructible = parser.assignable & 2 ? 16 : 0; if (parser.getToken() !== 18 && parser.getToken() !== 20) { left = parseAssignmentExpression(parser, context, privateScope, inGroup, isPattern, tokenStart, left); } else if (parser.getToken() !== 1077936155) { destructible |= parser.assignable & 1 ? 32 : 16; } } } else if (token === 14) { left = parseSpreadOrRestElement(parser, context, scope, privateScope, 20, kind, origin, 0, inGroup, isPattern); destructible |= parser.destructible; if (parser.getToken() !== 18 && parser.getToken() !== 20) parser.report(30, KeywordDescTable[parser.getToken() & 255]); } else { left = parseLeftHandSideExpression(parser, context, privateScope, 1, 0, 1); if (parser.getToken() !== 18 && parser.getToken() !== 20) { left = parseAssignmentExpression(parser, context, privateScope, inGroup, isPattern, tokenStart, left); if ((kind & (2 | 1)) === 0 && token === 67174411) destructible |= 16; } else if (parser.assignable & 2) { destructible |= 16; } else if (token === 67174411) { destructible |= parser.assignable & 1 && kind & (2 | 1) ? 32 : 16; } } elements.push(left); if (consumeOpt(parser, context | 32, 18)) { if (parser.getToken() === 20) break; } else break; } } consume(parser, context, 20); const node2 = parser.finishNode({ type: isPattern ? "ArrayPattern" : "ArrayExpression", elements }, start); if (!skipInitializer && parser.getToken() & 4194304) { return parseArrayOrObjectAssignmentPattern(parser, context, privateScope, destructible, inGroup, isPattern, start, node2); } parser.destructible = destructible; return node2; } function parseArrayOrObjectAssignmentPattern(parser, context, privateScope, destructible, inGroup, isPattern, start, node2) { if (parser.getToken() !== 1077936155) parser.report(26); nextToken(parser, context | 32); if (destructible & 16) parser.report(26); if (!isPattern) reinterpretToPattern(parser, node2); const { tokenStart } = parser; const right = parseExpression(parser, context, privateScope, 1, inGroup, tokenStart); parser.destructible = (destructible | 64 | 8) ^ (8 | 64) | (parser.destructible & 128 ? 128 : 0) | (parser.destructible & 256 ? 256 : 0); return parser.finishNode(isPattern ? { type: "AssignmentPattern", left: node2, right } : { type: "AssignmentExpression", left: node2, operator: "=", right }, start); } function parseSpreadOrRestElement(parser, context, scope, privateScope, closingToken, kind, origin, isAsync3, inGroup, isPattern) { const { tokenStart: start } = parser; nextToken(parser, context | 32); let argument = null; let destructible = 0; const { tokenValue, tokenStart } = parser; let token = parser.getToken(); if (token & 143360) { parser.assignable = 1; argument = parsePrimaryExpression(parser, context, privateScope, kind, 0, 1, inGroup, 1, tokenStart); token = parser.getToken(); argument = parseMemberOrUpdateExpression(parser, context, privateScope, argument, inGroup, 0, tokenStart); if (parser.getToken() !== 18 && parser.getToken() !== closingToken) { if (parser.assignable & 2 && parser.getToken() === 1077936155) parser.report(71); destructible |= 16; argument = parseAssignmentExpression(parser, context, privateScope, inGroup, isPattern, tokenStart, argument); } if (parser.assignable & 2) { destructible |= 16; } else if (token === closingToken || token === 18) { scope?.addVarOrBlock(context, tokenValue, kind, origin); } else { destructible |= 32; } destructible |= parser.destructible & 128 ? 128 : 0; } else if (token === closingToken) { parser.report(41); } else if (token & 2097152) { argument = parser.getToken() === 2162700 ? parseObjectLiteralOrPattern(parser, context, scope, privateScope, 1, inGroup, isPattern, kind, origin) : parseArrayExpressionOrPattern(parser, context, scope, privateScope, 1, inGroup, isPattern, kind, origin); token = parser.getToken(); if (token !== 1077936155 && token !== closingToken && token !== 18) { if (parser.destructible & 8) parser.report(71); argument = parseMemberOrUpdateExpression(parser, context, privateScope, argument, inGroup, 0, tokenStart); destructible |= parser.assignable & 1 ? 0 : 16; if ((parser.getToken() & 4194304) === 4194304) { if (parser.getToken() !== 1077936155) destructible |= 16; argument = parseAssignmentExpression(parser, context, privateScope, inGroup, isPattern, tokenStart, argument); } else { if ((parser.getToken() & 8388608) === 8388608) { argument = parseBinaryExpression(parser, context, privateScope, 1, tokenStart, 4, token, argument); } if (consumeOpt(parser, context | 32, 22)) { argument = parseConditionalExpression(parser, context, privateScope, argument, tokenStart); } destructible |= parser.assignable & 1 ? 32 : 16; } } else { destructible |= closingToken === 1074790415 && token !== 1077936155 ? 16 : parser.destructible; } } else { destructible |= 32; argument = parseLeftHandSideExpression(parser, context, privateScope, 1, inGroup, 1); const { tokenStart: tokenStart2 } = parser; const token2 = parser.getToken(); if (token2 === 1077936155) { if (parser.assignable & 2) parser.report(26); argument = parseAssignmentExpression(parser, context, privateScope, inGroup, isPattern, tokenStart2, argument); destructible |= 16; } else { if (token2 === 18) { destructible |= 16; } else if (token2 !== closingToken) { argument = parseAssignmentExpression(parser, context, privateScope, inGroup, isPattern, tokenStart2, argument); } destructible |= parser.assignable & 1 ? 32 : 16; } parser.destructible = destructible; if (parser.getToken() !== closingToken && parser.getToken() !== 18) parser.report(161); return parser.finishNode({ type: isPattern ? "RestElement" : "SpreadElement", argument }, start); } if (parser.getToken() !== closingToken) { if (kind & 1) destructible |= isAsync3 ? 16 : 32; if (consumeOpt(parser, context | 32, 1077936155)) { if (destructible & 16) parser.report(26); reinterpretToPattern(parser, argument); const right = parseExpression(parser, context, privateScope, 1, inGroup, parser.tokenStart); argument = parser.finishNode(isPattern ? { type: "AssignmentPattern", left: argument, right } : { type: "AssignmentExpression", left: argument, operator: "=", right }, tokenStart); destructible = 16; } else { destructible |= 16; } } parser.destructible = destructible; return parser.finishNode({ type: isPattern ? "RestElement" : "SpreadElement", argument }, start); } function parseMethodDefinition(parser, context, privateScope, kind, inGroup, start) { const modifierFlags = 1024 | 2048 | 8192 | ((kind & 64) === 0 ? 512 | 16384 : 0); context = (context | modifierFlags) ^ modifierFlags | (kind & 8 ? 1024 : 0) | (kind & 16 ? 2048 : 0) | (kind & 64 ? 16384 : 0) | 256 | 32768 | 65536; let scope = parser.createScopeIfLexical(256); const params = parseMethodFormals(parser, (context | 8192) & -524289, scope, privateScope, kind, 1, inGroup); scope = scope?.createChildScope(64); const body = parseFunctionBody(parser, context & -655373 | 32768 | 4096, scope, privateScope, 0, void 0, scope?.parent); return parser.finishNode({ type: "FunctionExpression", params, body, async: (kind & 16) > 0, generator: (kind & 8) > 0, id: null }, start); } function parseObjectLiteral(parser, context, privateScope, skipInitializer, inGroup) { const expr = parseObjectLiteralOrPattern(parser, context, void 0, privateScope, skipInitializer, inGroup, 0, 2, 0); if (parser.destructible & 64) { parser.report(63); } if (parser.destructible & 8) { parser.report(62); } return expr; } function parseObjectLiteralOrPattern(parser, context, scope, privateScope, skipInitializer, inGroup, isPattern, kind, origin) { const { tokenStart: start } = parser; nextToken(parser, context); const properties = []; let destructible = 0; let prototypeCount = 0; context = (context | 131072) ^ 131072; while (parser.getToken() !== 1074790415) { const { tokenValue, tokenStart } = parser; const token = parser.getToken(); if (token === 14) { properties.push(parseSpreadOrRestElement(parser, context, scope, privateScope, 1074790415, kind, origin, 0, inGroup, isPattern)); } else { let state = 0; let key = null; let value; if (parser.getToken() & 143360 || parser.getToken() === -2147483528 || parser.getToken() === -2147483527) { if (parser.getToken() === -2147483527) destructible |= 16; key = parseIdentifier(parser, context); if (parser.getToken() === 18 || parser.getToken() === 1074790415 || parser.getToken() === 1077936155) { state |= 4; if (context & 1 && (token & 537079808) === 537079808) { destructible |= 16; } else { validateBindingIdentifier(parser, context, kind, token, 0); } scope?.addVarOrBlock(context, tokenValue, kind, origin); if (consumeOpt(parser, context | 32, 1077936155)) { destructible |= 8; const right = parseExpression(parser, context, privateScope, 1, inGroup, parser.tokenStart); destructible |= parser.destructible & 256 ? 256 : 0 | parser.destructible & 128 ? 128 : 0; value = parser.finishNode({ type: "AssignmentPattern", left: parser.cloneIdentifier(key), right }, tokenStart); } else { destructible |= (token === 209006 ? 128 : 0) | (token === -2147483528 ? 16 : 0); value = parser.cloneIdentifier(key); } } else if (consumeOpt(parser, context | 32, 21)) { const { tokenStart: tokenStart2 } = parser; if (tokenValue === "__proto__") prototypeCount++; if (parser.getToken() & 143360) { const tokenAfterColon = parser.getToken(); const valueAfterColon = parser.tokenValue; value = parsePrimaryExpression(parser, context, privateScope, kind, 0, 1, inGroup, 1, tokenStart2); const token2 = parser.getToken(); value = parseMemberOrUpdateExpression(parser, context, privateScope, value, inGroup, 0, tokenStart2); if (parser.getToken() === 18 || parser.getToken() === 1074790415) { if (token2 === 1077936155 || token2 === 1074790415 || token2 === 18) { destructible |= parser.destructible & 128 ? 128 : 0; if (parser.assignable & 2) { destructible |= 16; } else if ((tokenAfterColon & 143360) === 143360) { scope?.addVarOrBlock(context, valueAfterColon, kind, origin); } } else { destructible |= parser.assignable & 1 ? 32 : 16; } } else if ((parser.getToken() & 4194304) === 4194304) { if (parser.assignable & 2) { destructible |= 16; } else if (token2 !== 1077936155) { destructible |= 32; } else { scope?.addVarOrBlock(context, valueAfterColon, kind, origin); } value = parseAssignmentExpression(parser, context, privateScope, inGroup, isPattern, tokenStart2, value); } else { destructible |= 16; if ((parser.getToken() & 8388608) === 8388608) { value = parseBinaryExpression(parser, context, privateScope, 1, tokenStart2, 4, token2, value); } if (consumeOpt(parser, context | 32, 22)) { value = parseConditionalExpression(parser, context, privateScope, value, tokenStart2); } } } else if ((parser.getToken() & 2097152) === 2097152) { value = parser.getToken() === 69271571 ? parseArrayExpressionOrPattern(parser, context, scope, privateScope, 0, inGroup, isPattern, kind, origin) : parseObjectLiteralOrPattern(parser, context, scope, privateScope, 0, inGroup, isPattern, kind, origin); destructible = parser.destructible; parser.assignable = destructible & 16 ? 2 : 1; if (parser.getToken() === 18 || parser.getToken() === 1074790415) { if (parser.assignable & 2) destructible |= 16; } else if (parser.destructible & 8) { parser.report(71); } else { value = parseMemberOrUpdateExpression(parser, context, privateScope, value, inGroup, 0, tokenStart2); destructible = parser.assignable & 2 ? 16 : 0; if ((parser.getToken() & 4194304) === 4194304) { value = parseAssignmentExpressionOrPattern(parser, context, privateScope, inGroup, isPattern, tokenStart2, value); } else { if ((parser.getToken() & 8388608) === 8388608) { value = parseBinaryExpression(parser, context, privateScope, 1, tokenStart2, 4, token, value); } if (consumeOpt(parser, context | 32, 22)) { value = parseConditionalExpression(parser, context, privateScope, value, tokenStart2); } destructible |= parser.assignable & 1 ? 32 : 16; } } } else { value = parseLeftHandSideExpression(parser, context, privateScope, 1, inGroup, 1); destructible |= parser.assignable & 1 ? 32 : 16; if (parser.getToken() === 18 || parser.getToken() === 1074790415) { if (parser.assignable & 2) destructible |= 16; } else { value = parseMemberOrUpdateExpression(parser, context, privateScope, value, inGroup, 0, tokenStart2); destructible = parser.assignable & 2 ? 16 : 0; if (parser.getToken() !== 18 && token !== 1074790415) { if (parser.getToken() !== 1077936155) destructible |= 16; value = parseAssignmentExpression(parser, context, privateScope, inGroup, isPattern, tokenStart2, value); } } } } else if (parser.getToken() === 69271571) { destructible |= 16; if (token === 209005) state |= 16; state |= (token === 209008 ? 256 : token === 209009 ? 512 : 1) | 2; key = parseComputedPropertyName(parser, context, privateScope, inGroup); destructible |= parser.assignable; value = parseMethodDefinition(parser, context, privateScope, state, inGroup, parser.tokenStart); } else if (parser.getToken() & 143360) { destructible |= 16; if (token === -2147483528) parser.report(95); if (token === 209005) { if (parser.flags & 1) parser.report(132); state |= 16 | 1; } else if (token === 209008) { state |= 256; } else if (token === 209009) { state |= 512; } else { parser.report(0); } key = parseIdentifier(parser, context); value = parseMethodDefinition(parser, context, privateScope, state, inGroup, parser.tokenStart); } else if (parser.getToken() === 67174411) { destructible |= 16; state |= 1; value = parseMethodDefinition(parser, context, privateScope, state, inGroup, parser.tokenStart); } else if (parser.getToken() === 8391476) { destructible |= 16; if (token === 209008) { parser.report(42); } else if (token === 209009) { parser.report(43); } else if (token !== 209005) { parser.report(30, KeywordDescTable[8391476 & 255]); } nextToken(parser, context); state |= 8 | 1 | (token === 209005 ? 16 : 0); if (parser.getToken() & 143360) { key = parseIdentifier(parser, context); } else if ((parser.getToken() & 134217728) === 134217728) { key = parseLiteral(parser, context); } else if (parser.getToken() === 69271571) { state |= 2; key = parseComputedPropertyName(parser, context, privateScope, inGroup); destructible |= parser.assignable; } else { parser.report(30, KeywordDescTable[parser.getToken() & 255]); } value = parseMethodDefinition(parser, context, privateScope, state, inGroup, parser.tokenStart); } else if ((parser.getToken() & 134217728) === 134217728) { if (token === 209005) state |= 16; state |= token === 209008 ? 256 : token === 209009 ? 512 : 1; destructible |= 16; key = parseLiteral(parser, context); value = parseMethodDefinition(parser, context, privateScope, state, inGroup, parser.tokenStart); } else { parser.report(133); } } else if ((parser.getToken() & 134217728) === 134217728) { key = parseLiteral(parser, context); if (parser.getToken() === 21) { consume(parser, context | 32, 21); const { tokenStart: tokenStart2 } = parser; if (tokenValue === "__proto__") prototypeCount++; if (parser.getToken() & 143360) { value = parsePrimaryExpression(parser, context, privateScope, kind, 0, 1, inGroup, 1, tokenStart2); const { tokenValue: valueAfterColon } = parser; const token2 = parser.getToken(); value = parseMemberOrUpdateExpression(parser, context, privateScope, value, inGroup, 0, tokenStart2); if (parser.getToken() === 18 || parser.getToken() === 1074790415) { if (token2 === 1077936155 || token2 === 1074790415 || token2 === 18) { if (parser.assignable & 2) { destructible |= 16; } else { scope?.addVarOrBlock(context, valueAfterColon, kind, origin); } } else { destructible |= parser.assignable & 1 ? 32 : 16; } } else if (parser.getToken() === 1077936155) { if (parser.assignable & 2) destructible |= 16; value = parseAssignmentExpression(parser, context, privateScope, inGroup, isPattern, tokenStart2, value); } else { destructible |= 16; value = parseAssignmentExpression(parser, context, privateScope, inGroup, isPattern, tokenStart2, value); } } else if ((parser.getToken() & 2097152) === 2097152) { value = parser.getToken() === 69271571 ? parseArrayExpressionOrPattern(parser, context, scope, privateScope, 0, inGroup, isPattern, kind, origin) : parseObjectLiteralOrPattern(parser, context, scope, privateScope, 0, inGroup, isPattern, kind, origin); destructible = parser.destructible; parser.assignable = destructible & 16 ? 2 : 1; if (parser.getToken() === 18 || parser.getToken() === 1074790415) { if (parser.assignable & 2) { destructible |= 16; } } else if ((parser.destructible & 8) !== 8) { value = parseMemberOrUpdateExpression(parser, context, privateScope, value, inGroup, 0, tokenStart2); destructible = parser.assignable & 2 ? 16 : 0; if ((parser.getToken() & 4194304) === 4194304) { value = parseAssignmentExpressionOrPattern(parser, context, privateScope, inGroup, isPattern, tokenStart2, value); } else { if ((parser.getToken() & 8388608) === 8388608) { value = parseBinaryExpression(parser, context, privateScope, 1, tokenStart2, 4, token, value); } if (consumeOpt(parser, context | 32, 22)) { value = parseConditionalExpression(parser, context, privateScope, value, tokenStart2); } destructible |= parser.assignable & 1 ? 32 : 16; } } } else { value = parseLeftHandSideExpression(parser, context, privateScope, 1, 0, 1); destructible |= parser.assignable & 1 ? 32 : 16; if (parser.getToken() === 18 || parser.getToken() === 1074790415) { if (parser.assignable & 2) { destructible |= 16; } } else { value = parseMemberOrUpdateExpression(parser, context, privateScope, value, inGroup, 0, tokenStart2); destructible = parser.assignable & 1 ? 0 : 16; if (parser.getToken() !== 18 && parser.getToken() !== 1074790415) { if (parser.getToken() !== 1077936155) destructible |= 16; value = parseAssignmentExpression(parser, context, privateScope, inGroup, isPattern, tokenStart2, value); } } } } else if (parser.getToken() === 67174411) { state |= 1; value = parseMethodDefinition(parser, context, privateScope, state, inGroup, parser.tokenStart); destructible = 16; } else { parser.report(134); } } else if (parser.getToken() === 69271571) { key = parseComputedPropertyName(parser, context, privateScope, inGroup); destructible |= parser.destructible & 256 ? 256 : 0; state |= 2; if (parser.getToken() === 21) { nextToken(parser, context | 32); const { tokenStart: tokenStart2, tokenValue: tokenValue2 } = parser; const tokenAfterColon = parser.getToken(); if (parser.getToken() & 143360) { value = parsePrimaryExpression(parser, context, privateScope, kind, 0, 1, inGroup, 1, tokenStart2); const token2 = parser.getToken(); value = parseMemberOrUpdateExpression(parser, context, privateScope, value, inGroup, 0, tokenStart2); if ((parser.getToken() & 4194304) === 4194304) { destructible |= parser.assignable & 1 ? token2 === 1077936155 ? 0 : 32 : 16; value = parseAssignmentExpressionOrPattern(parser, context, privateScope, inGroup, isPattern, tokenStart2, value); } else if (parser.getToken() === 18 || parser.getToken() === 1074790415) { if (token2 === 1077936155 || token2 === 1074790415 || token2 === 18) { if (parser.assignable & 2) { destructible |= 16; } else if ((tokenAfterColon & 143360) === 143360) { scope?.addVarOrBlock(context, tokenValue2, kind, origin); } } else { destructible |= parser.assignable & 1 ? 32 : 16; } } else { destructible |= 16; value = parseAssignmentExpression(parser, context, privateScope, inGroup, isPattern, tokenStart2, value); } } else if ((parser.getToken() & 2097152) === 2097152) { value = parser.getToken() === 69271571 ? parseArrayExpressionOrPattern(parser, context, scope, privateScope, 0, inGroup, isPattern, kind, origin) : parseObjectLiteralOrPattern(parser, context, scope, privateScope, 0, inGroup, isPattern, kind, origin); destructible = parser.destructible; parser.assignable = destructible & 16 ? 2 : 1; if (parser.getToken() === 18 || parser.getToken() === 1074790415) { if (parser.assignable & 2) destructible |= 16; } else if (destructible & 8) { parser.report(62); } else { value = parseMemberOrUpdateExpression(parser, context, privateScope, value, inGroup, 0, tokenStart2); destructible = parser.assignable & 2 ? destructible | 16 : 0; if ((parser.getToken() & 4194304) === 4194304) { if (parser.getToken() !== 1077936155) destructible |= 16; value = parseAssignmentExpressionOrPattern(parser, context, privateScope, inGroup, isPattern, tokenStart2, value); } else { if ((parser.getToken() & 8388608) === 8388608) { value = parseBinaryExpression(parser, context, privateScope, 1, tokenStart2, 4, token, value); } if (consumeOpt(parser, context | 32, 22)) { value = parseConditionalExpression(parser, context, privateScope, value, tokenStart2); } destructible |= parser.assignable & 1 ? 32 : 16; } } } else { value = parseLeftHandSideExpression(parser, context, privateScope, 1, 0, 1); destructible |= parser.assignable & 1 ? 32 : 16; if (parser.getToken() === 18 || parser.getToken() === 1074790415) { if (parser.assignable & 2) destructible |= 16; } else { value = parseMemberOrUpdateExpression(parser, context, privateScope, value, inGroup, 0, tokenStart2); destructible = parser.assignable & 1 ? 0 : 16; if (parser.getToken() !== 18 && parser.getToken() !== 1074790415) { if (parser.getToken() !== 1077936155) destructible |= 16; value = parseAssignmentExpression(parser, context, privateScope, inGroup, isPattern, tokenStart2, value); } } } } else if (parser.getToken() === 67174411) { state |= 1; value = parseMethodDefinition(parser, context, privateScope, state, inGroup, parser.tokenStart); destructible = 16; } else { parser.report(44); } } else if (token === 8391476) { consume(parser, context | 32, 8391476); state |= 8; if (parser.getToken() & 143360) { const token2 = parser.getToken(); key = parseIdentifier(parser, context); state |= 1; if (parser.getToken() === 67174411) { destructible |= 16; value = parseMethodDefinition(parser, context, privateScope, state, inGroup, parser.tokenStart); } else { throw new ParseError(parser.tokenStart, parser.currentLocation, token2 === 209005 ? 46 : token2 === 209008 || parser.getToken() === 209009 ? 45 : 47, KeywordDescTable[token2 & 255]); } } else if ((parser.getToken() & 134217728) === 134217728) { destructible |= 16; key = parseLiteral(parser, context); state |= 1; value = parseMethodDefinition(parser, context, privateScope, state, inGroup, parser.tokenStart); } else if (parser.getToken() === 69271571) { destructible |= 16; state |= 2 | 1; key = parseComputedPropertyName(parser, context, privateScope, inGroup); value = parseMethodDefinition(parser, context, privateScope, state, inGroup, parser.tokenStart); } else { parser.report(126); } } else { parser.report(30, KeywordDescTable[token & 255]); } destructible |= parser.destructible & 128 ? 128 : 0; parser.destructible = destructible; properties.push(parser.finishNode({ type: "Property", key, value, kind: !(state & 768) ? "init" : state & 512 ? "set" : "get", computed: (state & 2) > 0, method: (state & 1) > 0, shorthand: (state & 4) > 0 }, tokenStart)); } destructible |= parser.destructible; if (parser.getToken() !== 18) break; nextToken(parser, context); } consume(parser, context, 1074790415); if (prototypeCount > 1) destructible |= 64; const node2 = parser.finishNode({ type: isPattern ? "ObjectPattern" : "ObjectExpression", properties }, start); if (!skipInitializer && parser.getToken() & 4194304) { return parseArrayOrObjectAssignmentPattern(parser, context, privateScope, destructible, inGroup, isPattern, start, node2); } parser.destructible = destructible; return node2; } function parseMethodFormals(parser, context, scope, privateScope, kind, type, inGroup) { consume(parser, context, 67174411); const params = []; parser.flags = (parser.flags | 128) ^ 128; parser.strictReservedRange = null; if (parser.getToken() === 16) { if (kind & 512) { parser.report(37, "Setter", "one", ""); } nextToken(parser, context); return params; } if (kind & 256) { parser.report(37, "Getter", "no", "s"); } if (kind & 512 && parser.getToken() === 14) { parser.report(38); } context = (context | 131072) ^ 131072; let setterArgs = 0; let isNonSimpleParameterList = 0; while (parser.getToken() !== 18) { let left = null; const { tokenStart } = parser; if (parser.getToken() & 143360) { if ((context & 1) === 0) { if ((parser.getToken() & 36864) === 36864) { parser.flags |= 256; parser.strictReservedRange ??= [tokenStart, parser.currentLocation]; } if ((parser.getToken() & 537079808) === 537079808) { parser.flags |= 512; } } left = parseAndClassifyIdentifier(parser, context, scope, kind | 1, 0); } else { if (parser.getToken() === 2162700) { left = parseObjectLiteralOrPattern(parser, context, scope, privateScope, 1, inGroup, 1, type, 0); } else if (parser.getToken() === 69271571) { left = parseArrayExpressionOrPattern(parser, context, scope, privateScope, 1, inGroup, 1, type, 0); } else if (parser.getToken() === 14) { left = parseSpreadOrRestElement(parser, context, scope, privateScope, 16, type, 0, 0, inGroup, 1); } isNonSimpleParameterList = 1; if (parser.destructible & (32 | 16)) parser.report(50); } if (parser.getToken() === 1077936155) { nextToken(parser, context | 32); isNonSimpleParameterList = 1; const right = parseExpression(parser, context, privateScope, 1, 0, parser.tokenStart); left = parser.finishNode({ type: "AssignmentPattern", left, right }, tokenStart); } setterArgs++; params.push(left); if (!consumeOpt(parser, context, 18)) break; if (parser.getToken() === 16) { break; } } if (kind & 512 && setterArgs !== 1) { parser.report(37, "Setter", "one", ""); } scope?.reportScopeError(); if (isNonSimpleParameterList) parser.flags |= 128; consume(parser, context, 16); return params; } function parseComputedPropertyName(parser, context, privateScope, inGroup) { nextToken(parser, context | 32); const key = parseExpression(parser, (context | 131072) ^ 131072, privateScope, 1, inGroup, parser.tokenStart); consume(parser, context, 20); return key; } function parseParenthesizedExpression(parser, context, privateScope, canAssign, kind, origin, start) { parser.flags = (parser.flags | 128) ^ 128; const parenthesesStart = parser.tokenStart; nextToken(parser, context | 32 | 262144); const scope = parser.createScopeIfLexical()?.createChildScope(512); context = (context | 131072) ^ 131072; if (consumeOpt(parser, context, 16)) { return parseParenthesizedArrow(parser, context, scope, privateScope, [], canAssign, 0, start); } let destructible = 0; parser.destructible &= -385; let expr; let expressions = []; let isSequence = 0; let isNonSimpleParameterList = 0; let hasStrictReserved = 0; const tokenAfterParenthesesStart = parser.tokenStart; parser.assignable = 1; while (parser.getToken() !== 16) { const { tokenStart } = parser; const token = parser.getToken(); if (token & 143360) { scope?.addBlockName(context, parser.tokenValue, 1, 0); if ((token & 537079808) === 537079808) { isNonSimpleParameterList = 1; } else if ((token & 36864) === 36864) { hasStrictReserved = 1; } expr = parsePrimaryExpression(parser, context, privateScope, kind, 0, 1, 1, 1, tokenStart); if (parser.getToken() === 16 || parser.getToken() === 18) { if (parser.assignable & 2) { destructible |= 16; isNonSimpleParameterList = 1; } } else { if (parser.getToken() === 1077936155) { isNonSimpleParameterList = 1; } else { destructible |= 16; } expr = parseMemberOrUpdateExpression(parser, context, privateScope, expr, 1, 0, tokenStart); if (parser.getToken() !== 16 && parser.getToken() !== 18) { expr = parseAssignmentExpression(parser, context, privateScope, 1, 0, tokenStart, expr); } } } else if ((token & 2097152) === 2097152) { expr = token === 2162700 ? parseObjectLiteralOrPattern(parser, context | 262144, scope, privateScope, 0, 1, 0, kind, origin) : parseArrayExpressionOrPattern(parser, context | 262144, scope, privateScope, 0, 1, 0, kind, origin); destructible |= parser.destructible; isNonSimpleParameterList = 1; parser.assignable = 2; if (parser.getToken() !== 16 && parser.getToken() !== 18) { if (destructible & 8) parser.report(122); expr = parseMemberOrUpdateExpression(parser, context, privateScope, expr, 0, 0, tokenStart); destructible |= 16; if (parser.getToken() !== 16 && parser.getToken() !== 18) { expr = parseAssignmentExpression(parser, context, privateScope, 0, 0, tokenStart, expr); } } } else if (token === 14) { expr = parseSpreadOrRestElement(parser, context, scope, privateScope, 16, kind, origin, 0, 1, 0); if (parser.destructible & 16) parser.report(74); isNonSimpleParameterList = 1; if (isSequence && (parser.getToken() === 16 || parser.getToken() === 18)) { expressions.push(expr); } destructible |= 8; break; } else { destructible |= 16; expr = parseExpression(parser, context, privateScope, 1, 1, tokenStart); if (isSequence && (parser.getToken() === 16 || parser.getToken() === 18)) { expressions.push(expr); } if (parser.getToken() === 18) { if (!isSequence) { isSequence = 1; expressions = [expr]; } } if (isSequence) { while (consumeOpt(parser, context | 32, 18)) { expressions.push(parseExpression(parser, context, privateScope, 1, 1, parser.tokenStart)); } parser.assignable = 2; expr = parser.finishNode({ type: "SequenceExpression", expressions }, tokenAfterParenthesesStart); } consume(parser, context, 16); parser.destructible = destructible; return parser.options.preserveParens ? parser.finishNode({ type: "ParenthesizedExpression", expression: expr }, parenthesesStart) : expr; } if (isSequence && (parser.getToken() === 16 || parser.getToken() === 18)) { expressions.push(expr); } if (!consumeOpt(parser, context | 32, 18)) break; if (!isSequence) { isSequence = 1; expressions = [expr]; } if (parser.getToken() === 16) { destructible |= 8; break; } } if (isSequence) { parser.assignable = 2; expr = parser.finishNode({ type: "SequenceExpression", expressions }, tokenAfterParenthesesStart); } consume(parser, context, 16); if (destructible & 16 && destructible & 8) parser.report(151); destructible |= parser.destructible & 256 ? 256 : 0 | parser.destructible & 128 ? 128 : 0; if (parser.getToken() === 10) { if (destructible & (32 | 16)) parser.report(49); if (context & (2048 | 2) && destructible & 128) parser.report(31); if (context & (1 | 1024) && destructible & 256) { parser.report(32); } if (isNonSimpleParameterList) parser.flags |= 128; if (hasStrictReserved) parser.flags |= 256; return parseParenthesizedArrow(parser, context, scope, privateScope, isSequence ? expressions : [expr], canAssign, 0, start); } if (destructible & 64) { parser.report(63); } if (destructible & 8) { parser.report(144); } parser.destructible = (parser.destructible | 256) ^ 256 | destructible; return parser.options.preserveParens ? parser.finishNode({ type: "ParenthesizedExpression", expression: expr }, parenthesesStart) : expr; } function parseIdentifierOrArrow(parser, context, privateScope) { const { tokenStart: start } = parser; const { tokenValue } = parser; let isNonSimpleParameterList = 0; let hasStrictReserved = 0; if ((parser.getToken() & 537079808) === 537079808) { isNonSimpleParameterList = 1; } else if ((parser.getToken() & 36864) === 36864) { hasStrictReserved = 1; } const expr = parseIdentifier(parser, context); parser.assignable = 1; if (parser.getToken() === 10) { const scope = parser.options.lexical ? createArrowHeadParsingScope(parser, context, tokenValue) : void 0; if (isNonSimpleParameterList) parser.flags |= 128; if (hasStrictReserved) parser.flags |= 256; return parseArrowFunctionExpression(parser, context, scope, privateScope, [expr], 0, start); } return expr; } function parseArrowFromIdentifier(parser, context, privateScope, value, expr, inNew, canAssign, isAsync3, start) { if (!canAssign) parser.report(57); if (inNew) parser.report(51); parser.flags &= -129; const scope = parser.options.lexical ? createArrowHeadParsingScope(parser, context, value) : void 0; return parseArrowFunctionExpression(parser, context, scope, privateScope, [expr], isAsync3, start); } function parseParenthesizedArrow(parser, context, scope, privateScope, params, canAssign, isAsync3, start) { if (!canAssign) parser.report(57); for (let i = 0; i < params.length; ++i) reinterpretToPattern(parser, params[i]); return parseArrowFunctionExpression(parser, context, scope, privateScope, params, isAsync3, start); } function parseArrowFunctionExpression(parser, context, scope, privateScope, params, isAsync3, start) { if (parser.flags & 1) parser.report(48); consume(parser, context | 32, 10); const modifierFlags = 1024 | 2048 | 8192 | 524288; context = (context | modifierFlags) ^ modifierFlags | (isAsync3 ? 2048 : 0); const expression = parser.getToken() !== 2162700; let body; scope?.reportScopeError(); if (expression) { parser.flags = (parser.flags | 512 | 256 | 64 | 4096) ^ (512 | 256 | 64 | 4096); body = parseExpression(parser, context, privateScope, 1, 0, parser.tokenStart); } else { scope = scope?.createChildScope(64); const modifierFlags2 = 4 | 131072 | 8; body = parseFunctionBody(parser, (context | modifierFlags2) ^ modifierFlags2 | 4096, scope, privateScope, 16, void 0, void 0); switch (parser.getToken()) { case 69271571: if ((parser.flags & 1) === 0) { parser.report(116); } parser.flags |= 8192; break; case 67108877: case 67174409: case 22: parser.report(117); case 67174411: if ((parser.flags & 1) === 0) { parser.report(116); } parser.flags |= 1024; break; } if ((parser.getToken() & 8388608) === 8388608 && (parser.flags & 1) === 0) parser.report(30, KeywordDescTable[parser.getToken() & 255]); if ((parser.getToken() & 33619968) === 33619968) parser.report(125); } parser.assignable = 2; return parser.finishNode({ type: "ArrowFunctionExpression", params, body, async: isAsync3 === 1, expression, generator: false }, start); } function parseFormalParametersOrFormalList(parser, context, scope, privateScope, inGroup, kind) { consume(parser, context, 67174411); parser.flags = (parser.flags | 128) ^ 128; parser.strictReservedRange = null; const params = []; if (consumeOpt(parser, context, 16)) return params; context = (context | 131072) ^ 131072; let isNonSimpleParameterList = 0; while (parser.getToken() !== 18) { let left; const { tokenStart } = parser; const token = parser.getToken(); if (token & 143360) { if ((context & 1) === 0) { if ((token & 36864) === 36864) { parser.flags |= 256; parser.strictReservedRange ??= [tokenStart, parser.currentLocation]; } if ((token & 537079808) === 537079808) { parser.flags |= 512; } } left = parseAndClassifyIdentifier(parser, context, scope, kind | 1, 0); } else { if (token === 2162700) { left = parseObjectLiteralOrPattern(parser, context, scope, privateScope, 1, inGroup, 1, kind, 0); } else if (token === 69271571) { left = parseArrayExpressionOrPattern(parser, context, scope, privateScope, 1, inGroup, 1, kind, 0); } else if (token === 14) { left = parseSpreadOrRestElement(parser, context, scope, privateScope, 16, kind, 0, 0, inGroup, 1); } else { parser.report(30, KeywordDescTable[token & 255]); } isNonSimpleParameterList = 1; if (parser.destructible & (32 | 16)) { parser.report(50); } } if (parser.getToken() === 1077936155) { nextToken(parser, context | 32); isNonSimpleParameterList = 1; const right = parseExpression(parser, context, privateScope, 1, inGroup, parser.tokenStart); left = parser.finishNode({ type: "AssignmentPattern", left, right }, tokenStart); } params.push(left); if (!consumeOpt(parser, context, 18)) break; if (parser.getToken() === 16) { break; } } if (isNonSimpleParameterList) parser.flags |= 128; if (isNonSimpleParameterList || context & 1) { scope?.reportScopeError(); } consume(parser, context, 16); return params; } function parseMemberExpressionNoCall(parser, context, privateScope, expr, inGroup, start) { const token = parser.getToken(); if (token & 67108864) { if (token === 67108877) { nextToken(parser, context | 262144); parser.assignable = 1; const property = parsePropertyOrPrivatePropertyName(parser, context, privateScope); return parseMemberExpressionNoCall(parser, context, privateScope, parser.finishNode({ type: "MemberExpression", object: expr, computed: false, property, optional: false }, start), 0, start); } else if (token === 69271571) { nextToken(parser, context | 32); const { tokenStart } = parser; const property = parseExpressions(parser, context, privateScope, inGroup, 1, tokenStart); consume(parser, context, 20); parser.assignable = 1; return parseMemberExpressionNoCall(parser, context, privateScope, parser.finishNode({ type: "MemberExpression", object: expr, computed: true, property, optional: false }, start), 0, start); } else if (token === 67174408 || token === 67174409) { parser.assignable = 2; return parseMemberExpressionNoCall(parser, context, privateScope, parser.finishNode({ type: "TaggedTemplateExpression", tag: expr, quasi: parser.getToken() === 67174408 ? parseTemplate(parser, context | 64, privateScope) : parseTemplateLiteral(parser, context | 64) }, start), 0, start); } } return expr; } function parseNewExpression(parser, context, privateScope, inGroup) { const { tokenStart: start } = parser; const id = parseIdentifier(parser, context | 32); const { tokenStart } = parser; if (consumeOpt(parser, context, 67108877)) { if (context & 65536 && parser.getToken() === 209029) { parser.assignable = 2; return parseMetaProperty(parser, context, id, start); } parser.report(94); } parser.assignable = 2; if ((parser.getToken() & 16842752) === 16842752) { parser.report(65, KeywordDescTable[parser.getToken() & 255]); } const expr = parsePrimaryExpression(parser, context, privateScope, 2, 1, 0, inGroup, 1, tokenStart); context = (context | 131072) ^ 131072; if (parser.getToken() === 67108990) parser.report(168); const callee = parseMemberExpressionNoCall(parser, context, privateScope, expr, inGroup, tokenStart); parser.assignable = 2; return parser.finishNode({ type: "NewExpression", callee, arguments: parser.getToken() === 67174411 ? parseArguments(parser, context, privateScope, inGroup) : [] }, start); } function parseMetaProperty(parser, context, meta3, start) { const property = parseIdentifier(parser, context); return parser.finishNode({ type: "MetaProperty", meta: meta3, property }, start); } function parseAsyncArrowAfterIdent(parser, context, privateScope, canAssign, start) { if (parser.getToken() === 209006) parser.report(31); if (context & (1 | 1024) && parser.getToken() === 241771) { parser.report(32); } classifyIdentifier(parser, context, parser.getToken()); if ((parser.getToken() & 36864) === 36864) { parser.flags |= 256; } return parseArrowFromIdentifier(parser, context & -524289 | 2048, privateScope, parser.tokenValue, parseIdentifier(parser, context), 0, canAssign, 1, start); } function parseAsyncArrowOrCallExpression(parser, context, privateScope, callee, canAssign, kind, origin, flags, start) { nextToken(parser, context | 32); const scope = parser.createScopeIfLexical()?.createChildScope(512); context = (context | 131072) ^ 131072; if (consumeOpt(parser, context, 16)) { if (parser.getToken() === 10) { if (flags & 1) parser.report(48); return parseParenthesizedArrow(parser, context, scope, privateScope, [], canAssign, 1, start); } if (!(context & 1) && parser.options.webcompat) { parser.assignable = 4; } else { parser.assignable = 2; } return parser.finishNode({ type: "CallExpression", callee, arguments: [], optional: false }, start); } let destructible = 0; let expr; let isNonSimpleParameterList = 0; parser.destructible = (parser.destructible | 256 | 128) ^ (256 | 128); const params = []; while (parser.getToken() !== 16) { const { tokenStart } = parser; const token = parser.getToken(); if (token & 143360) { scope?.addBlockName(context, parser.tokenValue, kind, 0); if ((token & 537079808) === 537079808) { parser.flags |= 512; } else if ((token & 36864) === 36864) { parser.flags |= 256; } expr = parsePrimaryExpression(parser, context, privateScope, kind, 0, 1, 1, 1, tokenStart); if (parser.getToken() === 16 || parser.getToken() === 18) { if (parser.assignable & 2) { destructible |= 16; isNonSimpleParameterList = 1; } } else { if (parser.getToken() === 1077936155) { isNonSimpleParameterList = 1; } else { destructible |= 16; } expr = parseMemberOrUpdateExpression(parser, context, privateScope, expr, 1, 0, tokenStart); if (parser.getToken() !== 16 && parser.getToken() !== 18) { expr = parseAssignmentExpression(parser, context, privateScope, 1, 0, tokenStart, expr); } } } else if (token & 2097152) { expr = token === 2162700 ? parseObjectLiteralOrPattern(parser, context, scope, privateScope, 0, 1, 0, kind, origin) : parseArrayExpressionOrPattern(parser, context, scope, privateScope, 0, 1, 0, kind, origin); destructible |= parser.destructible; isNonSimpleParameterList = 1; if (parser.getToken() !== 16 && parser.getToken() !== 18) { if (destructible & 8) parser.report(122); expr = parseMemberOrUpdateExpression(parser, context, privateScope, expr, 0, 0, tokenStart); destructible |= 16; if ((parser.getToken() & 8388608) === 8388608) { expr = parseBinaryExpression(parser, context, privateScope, 1, start, 4, token, expr); } if (consumeOpt(parser, context | 32, 22)) { expr = parseConditionalExpression(parser, context, privateScope, expr, start); } } } else if (token === 14) { expr = parseSpreadOrRestElement(parser, context, scope, privateScope, 16, kind, origin, 1, 1, 0); destructible |= (parser.getToken() === 16 ? 0 : 16) | parser.destructible; isNonSimpleParameterList = 1; } else { expr = parseExpression(parser, context, privateScope, 1, 0, tokenStart); destructible = 0; params.push(expr); while (consumeOpt(parser, context | 32, 18)) { params.push(parseExpression(parser, context, privateScope, 1, 0, tokenStart)); } destructible |= parser.assignable; consume(parser, context, 16); parser.destructible = destructible | 16; if (!(context & 1) && parser.options.webcompat) { parser.assignable = 4; } else { parser.assignable = 2; } return parser.finishNode({ type: "CallExpression", callee, arguments: params, optional: false }, start); } params.push(expr); if (!consumeOpt(parser, context | 32, 18)) break; } consume(parser, context, 16); destructible |= parser.destructible & 256 ? 256 : 0 | parser.destructible & 128 ? 128 : 0; if (parser.getToken() === 10) { if (destructible & (32 | 16)) parser.report(27); if (parser.flags & 1 || flags & 1) parser.report(48); if (destructible & 128) parser.report(31); if (context & (1 | 1024) && destructible & 256) parser.report(32); if (isNonSimpleParameterList) parser.flags |= 128; return parseParenthesizedArrow(parser, context | 2048, scope, privateScope, params, canAssign, 1, start); } if (destructible & 64) { parser.report(63); } if (destructible & 8) { parser.report(62); } if (!(context & 1) && parser.options.webcompat) { parser.assignable = 4; } else { parser.assignable = 2; } return parser.finishNode({ type: "CallExpression", callee, arguments: params, optional: false }, start); } function parseRegExpLiteral(parser, context) { const { tokenRaw, tokenRegExp, tokenValue, tokenStart } = parser; nextToken(parser, context); parser.assignable = 2; const node2 = { type: "Literal", value: tokenValue, regex: tokenRegExp }; if (parser.options.raw) { node2.raw = tokenRaw; } return parser.finishNode(node2, tokenStart); } function parseClassDeclaration(parser, context, scope, privateScope, flags) { let start; let decorators; if (parser.leadingDecorators.decorators.length) { if (parser.getToken() === 132) { parser.report(30, "@"); } start = parser.leadingDecorators.start; decorators = [...parser.leadingDecorators.decorators]; parser.leadingDecorators.decorators.length = 0; } else { start = parser.tokenStart; decorators = parseDecorators(parser, context, privateScope); } context = (context | 16384 | 1) ^ 16384; nextToken(parser, context); let id = null; let superClass = null; const { tokenValue } = parser; if (parser.getToken() & 4096 && parser.getToken() !== 20565) { if (isStrictReservedWord(parser, context, parser.getToken())) { parser.report(118); } if ((parser.getToken() & 537079808) === 537079808) { parser.report(119); } if (scope) { scope.addBlockName(context, tokenValue, 32, 0); if (flags) { if (flags & 2) { parser.declareUnboundVariable(tokenValue); } } } id = parseIdentifier(parser, context); } else { if ((flags & 1) === 0) parser.report(39, "Class"); } let inheritedContext = context; if (consumeOpt(parser, context | 32, 20565)) { superClass = parseLeftHandSideExpression(parser, context, privateScope, 0, 0, 0); inheritedContext |= 512; } else { inheritedContext = (inheritedContext | 512) ^ 512; } const body = parseClassBody(parser, inheritedContext, context, scope, privateScope, 2, 8, 0); return parser.finishNode({ type: "ClassDeclaration", id, superClass, body, ...parser.options.next ? { decorators } : null }, start); } function parseClassExpression(parser, context, privateScope, inGroup, start) { let id = null; let superClass = null; const decorators = parseDecorators(parser, context, privateScope); context = (context | 1 | 16384) ^ 16384; nextToken(parser, context); if (parser.getToken() & 4096 && parser.getToken() !== 20565) { if (isStrictReservedWord(parser, context, parser.getToken())) parser.report(118); if ((parser.getToken() & 537079808) === 537079808) { parser.report(119); } id = parseIdentifier(parser, context); } let inheritedContext = context; if (consumeOpt(parser, context | 32, 20565)) { superClass = parseLeftHandSideExpression(parser, context, privateScope, 0, inGroup, 0); inheritedContext |= 512; } else { inheritedContext = (inheritedContext | 512) ^ 512; } const body = parseClassBody(parser, inheritedContext, context, void 0, privateScope, 2, 0, inGroup); parser.assignable = 2; return parser.finishNode({ type: "ClassExpression", id, superClass, body, ...parser.options.next ? { decorators } : null }, start); } function parseDecorators(parser, context, privateScope) { const list = []; if (parser.options.next) { while (parser.getToken() === 132) { list.push(parseDecoratorList(parser, context, privateScope)); } } return list; } function parseDecoratorList(parser, context, privateScope) { const start = parser.tokenStart; nextToken(parser, context | 32); const expressionStart = parser.tokenStart; let expression = parsePrimaryExpression(parser, context, privateScope, 2, 0, 1, 0, 1, start); expression = parseMemberOrUpdateExpression(parser, context, privateScope, expression, 0, 0, expressionStart); return parser.finishNode({ type: "Decorator", expression }, start); } function parseClassBody(parser, context, inheritedContext, scope, parentScope, kind, origin, inGroup) { const { tokenStart } = parser; const privateScope = parser.createPrivateScopeIfLexical(parentScope); consume(parser, context | 32, 2162700); const modifierFlags = 131072 | 524288; context = (context | modifierFlags) ^ modifierFlags; const hasConstr = parser.flags & 32; parser.flags = (parser.flags | 32) ^ 32; const body = []; while (parser.getToken() !== 1074790415) { const decoratorStart = parser.tokenStart; const decorators = parseDecorators(parser, context, privateScope); if (decorators.length > 0 && parser.tokenValue === "constructor") { parser.report(109); } if (parser.getToken() === 1074790415) parser.report(108); if (consumeOpt(parser, context, 1074790417)) { if (decorators.length > 0) parser.report(120); continue; } body.push(parseClassElementList(parser, context, scope, privateScope, inheritedContext, kind, decorators, 0, inGroup, decorators.length > 0 ? decoratorStart : parser.tokenStart)); } consume(parser, origin & 8 ? context | 32 : context, 1074790415); privateScope?.validatePrivateIdentifierRefs(); parser.flags = parser.flags & -33 | hasConstr; return parser.finishNode({ type: "ClassBody", body }, tokenStart); } function parseClassElementList(parser, context, scope, privateScope, inheritedContext, type, decorators, isStatic, inGroup, start) { let kind = isStatic ? 32 : 0; let key = null; const token = parser.getToken(); if (token & (143360 | 36864) || token === -2147483528) { key = parseIdentifier(parser, context); switch (token) { case 36970: if (!isStatic && parser.getToken() !== 67174411 && (parser.getToken() & 1048576) !== 1048576 && parser.getToken() !== 1077936155) { return parseClassElementList(parser, context, scope, privateScope, inheritedContext, type, decorators, 1, inGroup, start); } break; case 209005: if (parser.getToken() !== 67174411 && (parser.flags & 1) === 0) { if ((parser.getToken() & 1073741824) === 1073741824) { return parsePropertyDefinition(parser, context, privateScope, key, kind, decorators, start); } kind |= 16 | (optionalBit(parser, context, 8391476) ? 8 : 0); } break; case 209008: if (parser.getToken() !== 67174411) { if (parser.getToken() === 8391476 && parser.flags & 1) { return parsePropertyDefinition(parser, context, privateScope, key, kind, decorators, start); } if ((parser.getToken() & 1073741824) === 1073741824) { return parsePropertyDefinition(parser, context, privateScope, key, kind, decorators, start); } kind |= 256; } break; case 209009: if (parser.getToken() !== 67174411) { if (parser.getToken() === 8391476 && parser.flags & 1) { return parsePropertyDefinition(parser, context, privateScope, key, kind, decorators, start); } if ((parser.getToken() & 1073741824) === 1073741824) { return parsePropertyDefinition(parser, context, privateScope, key, kind, decorators, start); } kind |= 512; } break; case 12402: if (parser.getToken() !== 67174411 && (parser.flags & 1) === 0) { if ((parser.getToken() & 1073741824) === 1073741824) { return parsePropertyDefinition(parser, context, privateScope, key, kind, decorators, start); } if (parser.options.next) kind |= 1024; } break; } } else if (token === 69271571) { kind |= 2; key = parseComputedPropertyName(parser, inheritedContext, privateScope, inGroup); } else if ((token & 134217728) === 134217728) { key = parseLiteral(parser, context); } else if (token === 8391476) { kind |= 8; nextToken(parser, context); } else if (parser.getToken() === 130) { kind |= 8192; key = parsePrivateIdentifier(parser, context | 16, privateScope, 768); } else if ((parser.getToken() & 1073741824) === 1073741824) { kind |= 128; } else if (isStatic && token === 2162700) { return parseStaticBlock(parser, context | 16, scope, privateScope, start); } else if (token === -2147483527) { key = parseIdentifier(parser, context); if (parser.getToken() !== 67174411) parser.report(30, KeywordDescTable[parser.getToken() & 255]); } else { parser.report(30, KeywordDescTable[parser.getToken() & 255]); } if (kind & (8 | 16 | 768 | 1024)) { if (parser.getToken() & 143360 || parser.getToken() === -2147483528 || parser.getToken() === -2147483527) { key = parseIdentifier(parser, context); } else if ((parser.getToken() & 134217728) === 134217728) { key = parseLiteral(parser, context); } else if (parser.getToken() === 69271571) { kind |= 2; key = parseComputedPropertyName(parser, context, privateScope, 0); } else if (parser.getToken() === 130) { kind |= 8192; key = parsePrivateIdentifier(parser, context, privateScope, kind); } else parser.report(135); } if ((kind & 2) === 0) { if (parser.tokenValue === "constructor") { if ((parser.getToken() & 1073741824) === 1073741824) { parser.report(129); } else if ((kind & 32) === 0 && parser.getToken() === 67174411) { if (kind & (768 | 16 | 128 | 8)) { parser.report(53, "accessor"); } else if ((context & 512) === 0) { if (parser.flags & 32) parser.report(54); else parser.flags |= 32; } } kind |= 64; } else if ((kind & 8192) === 0 && kind & 32 && parser.tokenValue === "prototype") { parser.report(52); } } if (kind & 1024 || parser.getToken() !== 67174411 && (kind & 768) === 0) { return parsePropertyDefinition(parser, context, privateScope, key, kind, decorators, start); } const value = parseMethodDefinition(parser, context | 16, privateScope, kind, inGroup, parser.tokenStart); return parser.finishNode({ type: "MethodDefinition", kind: (kind & 32) === 0 && kind & 64 ? "constructor" : kind & 256 ? "get" : kind & 512 ? "set" : "method", static: (kind & 32) > 0, computed: (kind & 2) > 0, key, value, ...parser.options.next ? { decorators } : null }, start); } function parsePrivateIdentifier(parser, context, privateScope, kind) { const { tokenStart } = parser; nextToken(parser, context); const { tokenValue } = parser; if (tokenValue === "constructor") parser.report(128); if (parser.options.lexical) { if (!privateScope) parser.report(4, tokenValue); if (kind) { privateScope.addPrivateIdentifier(tokenValue, kind); } else { privateScope.addPrivateIdentifierRef(tokenValue); } } nextToken(parser, context); return parser.finishNode({ type: "PrivateIdentifier", name: tokenValue }, tokenStart); } function parsePropertyDefinition(parser, context, privateScope, key, state, decorators, start) { let value = null; if (state & 8) parser.report(0); if (parser.getToken() === 1077936155) { nextToken(parser, context | 32); const { tokenStart } = parser; if (parser.getToken() === 537079927) parser.report(119); const modifierFlags = 1024 | 2048 | 8192 | ((state & 64) === 0 ? 512 | 16384 : 0); context = (context | modifierFlags) ^ modifierFlags | (state & 8 ? 1024 : 0) | (state & 16 ? 2048 : 0) | (state & 64 ? 16384 : 0) | 256 | 65536; value = parsePrimaryExpression(parser, context | 16, privateScope, 2, 0, 1, 0, 1, tokenStart); if ((parser.getToken() & 1073741824) !== 1073741824 || (parser.getToken() & 4194304) === 4194304) { value = parseMemberOrUpdateExpression(parser, context | 16, privateScope, value, 0, 0, tokenStart); value = parseAssignmentExpression(parser, context | 16, privateScope, 0, 0, tokenStart, value); } } matchOrInsertSemicolon(parser, context); return parser.finishNode({ type: state & 1024 ? "AccessorProperty" : "PropertyDefinition", key, value, static: (state & 32) > 0, computed: (state & 2) > 0, ...parser.options.next ? { decorators } : null }, start); } function parseBindingPattern(parser, context, scope, privateScope, type, origin) { if (parser.getToken() & 143360 || (context & 1) === 0 && parser.getToken() === -2147483527) return parseAndClassifyIdentifier(parser, context, scope, type, origin); if ((parser.getToken() & 2097152) !== 2097152) parser.report(30, KeywordDescTable[parser.getToken() & 255]); const left = parser.getToken() === 69271571 ? parseArrayExpressionOrPattern(parser, context, scope, privateScope, 1, 0, 1, type, origin) : parseObjectLiteralOrPattern(parser, context, scope, privateScope, 1, 0, 1, type, origin); if (parser.destructible & 16) parser.report(50); if (parser.destructible & 32) parser.report(50); return left; } function parseAndClassifyIdentifier(parser, context, scope, kind, origin) { const token = parser.getToken(); if (context & 1) { if ((token & 537079808) === 537079808) { parser.report(119); } else if ((token & 36864) === 36864 || token === -2147483527) { parser.report(118); } } if ((token & 20480) === 20480) { parser.report(102); } if (token === 241771) { if (context & 1024) parser.report(32); if (context & 2) parser.report(111); } if ((token & 255) === (241737 & 255)) { if (kind & (8 | 16)) parser.report(100); } if (token === 209006) { if (context & 2048) parser.report(176); if (context & 2) parser.report(110); } const { tokenValue, tokenStart: start } = parser; nextToken(parser, context); scope?.addVarOrBlock(context, tokenValue, kind, origin); return parser.finishNode({ type: "Identifier", name: tokenValue }, start); } function parseJSXRootElementOrFragment(parser, context, privateScope, inJSXChild, start) { if (!inJSXChild) consume(parser, context, 8456256); if (parser.getToken() === 8390721) { const openingFragment = parseJSXOpeningFragment(parser, start); const [children2, closingFragment] = parseJSXChildrenAndClosingFragment(parser, context, privateScope, inJSXChild); return parser.finishNode({ type: "JSXFragment", openingFragment, children: children2, closingFragment }, start); } if (parser.getToken() === 8457014) parser.report(30, KeywordDescTable[parser.getToken() & 255]); let closingElement = null; let children = []; const openingElement = parseJSXOpeningElementOrSelfCloseElement(parser, context, privateScope, inJSXChild, start); if (!openingElement.selfClosing) { [children, closingElement] = parseJSXChildrenAndClosingElement(parser, context, privateScope, inJSXChild); const close = isEqualTagName(closingElement.name); if (isEqualTagName(openingElement.name) !== close) parser.report(155, close); } return parser.finishNode({ type: "JSXElement", children, openingElement, closingElement }, start); } function parseJSXOpeningFragment(parser, start) { nextJSXToken(parser); return parser.finishNode({ type: "JSXOpeningFragment" }, start); } function parseJSXClosingElement(parser, context, inJSXChild, start) { consume(parser, context, 8457014); const name = parseJSXElementName(parser, context); if (parser.getToken() !== 8390721) { parser.report(25, KeywordDescTable[8390721 & 255]); } if (inJSXChild) { nextJSXToken(parser); } else { nextToken(parser, context); } return parser.finishNode({ type: "JSXClosingElement", name }, start); } function parseJSXClosingFragment(parser, context, inJSXChild, start) { consume(parser, context, 8457014); if (parser.getToken() !== 8390721) { parser.report(25, KeywordDescTable[8390721 & 255]); } if (inJSXChild) { nextJSXToken(parser); } else { nextToken(parser, context); } return parser.finishNode({ type: "JSXClosingFragment" }, start); } function parseJSXChildrenAndClosingElement(parser, context, privateScope, inJSXChild) { const children = []; while (true) { const child = parseJSXChildOrClosingElement(parser, context, privateScope, inJSXChild); if (child.type === "JSXClosingElement") { return [children, child]; } children.push(child); } } function parseJSXChildrenAndClosingFragment(parser, context, privateScope, inJSXChild) { const children = []; while (true) { const child = parseJSXChildOrClosingFragment(parser, context, privateScope, inJSXChild); if (child.type === "JSXClosingFragment") { return [children, child]; } children.push(child); } } function parseJSXChildOrClosingElement(parser, context, privateScope, inJSXChild) { if (parser.getToken() === 137) return parseJSXText(parser, context); if (parser.getToken() === 2162700) return parseJSXExpressionContainer(parser, context, privateScope, 1, 0); if (parser.getToken() === 8456256) { const { tokenStart } = parser; nextToken(parser, context); if (parser.getToken() === 8457014) return parseJSXClosingElement(parser, context, inJSXChild, tokenStart); return parseJSXRootElementOrFragment(parser, context, privateScope, 1, tokenStart); } parser.report(0); } function parseJSXChildOrClosingFragment(parser, context, privateScope, inJSXChild) { if (parser.getToken() === 137) return parseJSXText(parser, context); if (parser.getToken() === 2162700) return parseJSXExpressionContainer(parser, context, privateScope, 1, 0); if (parser.getToken() === 8456256) { const { tokenStart } = parser; nextToken(parser, context); if (parser.getToken() === 8457014) return parseJSXClosingFragment(parser, context, inJSXChild, tokenStart); return parseJSXRootElementOrFragment(parser, context, privateScope, 1, tokenStart); } parser.report(0); } function parseJSXText(parser, context) { const start = parser.tokenStart; nextToken(parser, context); const node2 = { type: "JSXText", value: parser.tokenValue }; if (parser.options.raw) { node2.raw = parser.tokenRaw; } return parser.finishNode(node2, start); } function parseJSXOpeningElementOrSelfCloseElement(parser, context, privateScope, inJSXChild, start) { if ((parser.getToken() & 143360) !== 143360 && (parser.getToken() & 4096) !== 4096) parser.report(0); const tagName = parseJSXElementName(parser, context); const attributes = parseJSXAttributes(parser, context, privateScope); const selfClosing = parser.getToken() === 8457014; if (selfClosing) consume(parser, context, 8457014); if (parser.getToken() !== 8390721) { parser.report(25, KeywordDescTable[8390721 & 255]); } if (inJSXChild || !selfClosing) { nextJSXToken(parser); } else { nextToken(parser, context); } return parser.finishNode({ type: "JSXOpeningElement", name: tagName, attributes, selfClosing }, start); } function parseJSXElementName(parser, context) { const { tokenStart } = parser; rescanJSXIdentifier(parser); let key = parseJSXIdentifier(parser, context); if (parser.getToken() === 21) return parseJSXNamespacedName(parser, context, key, tokenStart); while (consumeOpt(parser, context, 67108877)) { rescanJSXIdentifier(parser); key = parseJSXMemberExpression(parser, context, key, tokenStart); } return key; } function parseJSXMemberExpression(parser, context, object2, start) { const property = parseJSXIdentifier(parser, context); return parser.finishNode({ type: "JSXMemberExpression", object: object2, property }, start); } function parseJSXAttributes(parser, context, privateScope) { const attributes = []; while (parser.getToken() !== 8457014 && parser.getToken() !== 8390721 && parser.getToken() !== 1048576) { attributes.push(parseJsxAttribute(parser, context, privateScope)); } return attributes; } function parseJSXSpreadAttribute(parser, context, privateScope) { const start = parser.tokenStart; nextToken(parser, context); consume(parser, context, 14); const expression = parseExpression(parser, context, privateScope, 1, 0, parser.tokenStart); consume(parser, context, 1074790415); return parser.finishNode({ type: "JSXSpreadAttribute", argument: expression }, start); } function parseJsxAttribute(parser, context, privateScope) { const { tokenStart } = parser; if (parser.getToken() === 2162700) return parseJSXSpreadAttribute(parser, context, privateScope); rescanJSXIdentifier(parser); let value = null; let name = parseJSXIdentifier(parser, context); if (parser.getToken() === 21) { name = parseJSXNamespacedName(parser, context, name, tokenStart); } if (parser.getToken() === 1077936155) { const token = scanJSXAttributeValue(parser, context); switch (token) { case 134283267: value = parseLiteral(parser, context); break; case 8456256: value = parseJSXRootElementOrFragment(parser, context, privateScope, 0, parser.tokenStart); break; case 2162700: value = parseJSXExpressionContainer(parser, context, privateScope, 0, 1); break; default: parser.report(154); } } return parser.finishNode({ type: "JSXAttribute", value, name }, tokenStart); } function parseJSXNamespacedName(parser, context, namespace, start) { consume(parser, context, 21); const name = parseJSXIdentifier(parser, context); return parser.finishNode({ type: "JSXNamespacedName", namespace, name }, start); } function parseJSXExpressionContainer(parser, context, privateScope, inJSXChild, isAttr) { const { tokenStart: start } = parser; nextToken(parser, context | 32); const { tokenStart } = parser; if (parser.getToken() === 14) return parseJSXSpreadChild(parser, context, privateScope, start); let expression; if (parser.getToken() === 1074790415) { if (isAttr) parser.report(157); expression = parseJSXEmptyExpression(parser, { index: parser.startIndex, line: parser.startLine, column: parser.startColumn }); } else { expression = parseExpression(parser, context, privateScope, 1, 0, tokenStart); } if (parser.getToken() !== 1074790415) { parser.report(25, KeywordDescTable[1074790415 & 255]); } if (inJSXChild) { nextJSXToken(parser); } else { nextToken(parser, context); } return parser.finishNode({ type: "JSXExpressionContainer", expression }, start); } function parseJSXSpreadChild(parser, context, privateScope, start) { consume(parser, context, 14); const expression = parseExpression(parser, context, privateScope, 1, 0, parser.tokenStart); consume(parser, context, 1074790415); return parser.finishNode({ type: "JSXSpreadChild", expression }, start); } function parseJSXEmptyExpression(parser, start) { return parser.finishNode({ type: "JSXEmptyExpression" }, start, parser.tokenStart); } function parseJSXIdentifier(parser, context) { const start = parser.tokenStart; if (!(parser.getToken() & 143360)) { parser.report(30, KeywordDescTable[parser.getToken() & 255]); } const { tokenValue } = parser; nextToken(parser, context); return parser.finishNode({ type: "JSXIdentifier", name: tokenValue }, start); } var { version: version2 } = packageJson; function parseModule(source, options) { return parseSource(source, { ...options, sourceType: "module" }); } // ../core/dist/repl/instrument.js function parseReplCode(code) { try { const ast = parseModule(code, { next: true, ranges: true }); return { ast }; } catch (error62) { return { parseError: error62 instanceof Error ? error62 : new Error(String(error62)) }; } } function collectPatternNames(node2, out) { if (!node2) { return; } switch (node2.type) { case "Identifier": out.push(node2.name); return; case "ObjectPattern": for (const prop of node2.properties) { const p = prop; if (p.type === "RestElement") { collectPatternNames(p.argument, out); } else if (p.type === "Property") { collectPatternNames(p.value, out); } else if (p.type === "SpreadElement") { collectPatternNames(p.argument, out); } } return; case "ArrayPattern": for (const el of node2.elements) { collectPatternNames(el, out); } return; case "AssignmentPattern": collectPatternNames(node2.left, out); return; case "RestElement": collectPatternNames(node2.argument, out); return; default: return; } } function collectStatementBindingNames(node2) { const names = []; if (node2.type === "VariableDeclaration") { for (const decl of node2.declarations) { collectPatternNames(decl.id, names); } } else if (node2.type === "FunctionDeclaration" || node2.type === "ClassDeclaration") { if (node2.id) { names.push(node2.id.name); } } return names; } function rewriteDynamicImports(code, ast) { const starts = []; const seen = /* @__PURE__ */ new Set(); const visit2 = (value) => { if (!value || typeof value !== "object") return; if (seen.has(value)) return; seen.add(value); if (Array.isArray(value)) { for (const item of value) visit2(item); return; } const node2 = value; if (node2.type === "ImportExpression") { const start = typeof node2.start === "number" ? node2.start : Array.isArray(node2.range) && typeof node2.range[0] === "number" ? node2.range[0] : void 0; if (start !== void 0) starts.push(start); } for (const child of Object.values(value)) visit2(child); }; visit2(ast); let rewritten = code; for (const start of starts.sort((left, right) => right - left)) { rewritten = `${rewritten.slice(0, start)}importModule${rewritten.slice(start + "import".length)}`; } return rewritten; } function rewriteDynamicImportsForRepl(code) { const direct = parseReplCode(code); if ("ast" in direct) return rewriteDynamicImports(code, direct.ast); const prefix = "(async () => {\n"; const suffix = "\n})"; const wrapped = `${prefix}${code}${suffix}`; const wrappedParsed = parseReplCode(wrapped); if (!("ast" in wrappedParsed)) return code; const rewritten = rewriteDynamicImports(wrapped, wrappedParsed.ast); return rewritten.slice(prefix.length, rewritten.length - suffix.length); } function nodeEnd(node2) { const end = node2.end ?? node2.range?.[1]; if (end === void 0) { throw new Error("instrument \u9700\u8981\u8282\u70B9 end\uFF08parseReplCode \u5E94\u5E26 ranges:true\uFF09"); } return end; } function nodeStart(node2) { const start = node2.start ?? node2.range?.[0]; if (start === void 0) { throw new Error("instrument \u9700\u8981\u8282\u70B9 start\uFF08parseReplCode \u5E94\u5E26 ranges:true\uFF09"); } return start; } function instrumentForContextPersistence(code, ast) { let cursor = 0; let out = ""; const lastIndex = ast.body.length - 1; ast.body.forEach((stmt, index) => { if (index === lastIndex && stmt.type === "ExpressionStatement") { const stmtStart = nodeStart(stmt); const stmtEnd = nodeEnd(stmt); const expressionSource = code.slice(stmtStart, stmtEnd).replace(/;\s*$/, ""); out += code.slice(cursor, stmtStart); out += `return (${expressionSource});`; cursor = nodeEnd(stmt); return; } const end = nodeEnd(stmt); out += code.slice(cursor, end); cursor = end; const names = collectStatementBindingNames(stmt); if (names.length > 0) { const assigns = names.map((name) => `globalThis.${name}=${name};`).join(""); out += `;${assigns}`; } }); out += code.slice(cursor); return out; } // ../core/dist/repl/executors.js var IifeContextExecutor = class { async run(code, context, signal, syncTimeoutMs = 5e3) { if (signal?.aborted) { throw abortReason(signal); } const rewrittenCode = rewriteDynamicImportsForRepl(code); const rewrittenParsed = parseReplCode(rewrittenCode); const effectiveCode = "ast" in rewrittenParsed ? instrumentForContextPersistence(rewrittenCode, rewrittenParsed.ast) : rewrittenCode; const wrapped = `(async () => { ${effectiveCode} })()`; const promise2 = runInContext(wrapped, context, { timeout: Math.max(1, Math.trunc(syncTimeoutMs)) }); return signal ? await raceAbort(promise2, signal) : await promise2; } }; function abortReason(signal) { const reason = signal.reason; if (reason && typeof reason === "object" && "name" in reason) return reason; return new DOMException(typeof reason === "string" ? reason : "aborted", "AbortError"); } function raceAbort(promise2, signal) { if (signal.aborted) { return Promise.reject(abortReason(signal)); } return new Promise((resolve2, reject) => { const onAbort = () => reject(abortReason(signal)); signal.addEventListener("abort", onAbort, { once: true }); if (signal.aborted) onAbort(); promise2.then((v) => { signal.removeEventListener("abort", onAbort); resolve2(v); }, (e) => { signal.removeEventListener("abort", onAbort); reject(e); }); }); } // ../core/dist/repl/node-repl-runtime-helpers.js import { inspect } from "node:util"; var PROCESS_MODULE_IDS = /* @__PURE__ */ new Set(["process", "node:process"]); function createRestrictedProcessFacade() { return Object.freeze({ arch: process.arch, argv: Object.freeze([...process.argv]), cwd: () => process.cwd(), env: Object.freeze({ ...process.env }), execArgv: Object.freeze([...process.execArgv]), execPath: process.execPath, hrtime: process.hrtime.bind(process), memoryUsage: process.memoryUsage.bind(process), nextTick: process.nextTick.bind(process), pid: process.pid, platform: process.platform, release: Object.freeze({ ...process.release }), resourceUsage: process.resourceUsage.bind(process), uptime: process.uptime.bind(process), version: process.version, versions: Object.freeze({ ...process.versions }) }); } function createReplRequire(baseRequire, restrictedProcess) { if (!restrictedProcess) return baseRequire; const facade = ((specifier) => PROCESS_MODULE_IDS.has(specifier) ? restrictedProcess : baseRequire(specifier)); facade.cache = baseRequire.cache; facade.extensions = baseRequire.extensions; facade.main = baseRequire.main; facade.resolve = baseRequire.resolve; return facade; } function stringifyReplResult(value) { if (value === void 0) return void 0; if (typeof value === "string") return value; if (ArrayBuffer.isView(value) && !(value instanceof DataView)) { return inspect(value, { maxArrayLength: 100 }); } try { const json2 = JSON.stringify(value, null, 2); return json2 === void 0 ? String(value) : json2; } catch { return String(value); } } function normalizeReplError(error62) { if (error62 && typeof error62 === "object") { const value = error62; const name = typeof value.name === "string" ? value.name : "Error"; const message = typeof value.message === "string" ? value.message : String(error62); const stack = typeof value.stack === "string" ? value.stack : void 0; return { name, message, stack }; } return { name: "Error", message: String(error62) }; } // ../core/dist/repl/node-repl-session.js function browserScreenshotIndexResult(images, browserScreenshots) { if (images.length === 0 || browserScreenshots.length === 0) return {}; const remainingByPayload = /* @__PURE__ */ new Map(); for (const screenshot of browserScreenshots) { const key = `${screenshot.mimeType}\0${screenshot.base64}`; remainingByPayload.set(key, (remainingByPayload.get(key) ?? 0) + 1); } const browserScreenshotImageIndices = []; images.forEach((image, index) => { const key = `${image.mimeType}\0${image.base64}`; const remaining = remainingByPayload.get(key) ?? 0; if (remaining <= 0) return; browserScreenshotImageIndices.push(index); remainingByPayload.set(key, remaining - 1); }); return browserScreenshotImageIndices.length > 0 ? { browserScreenshotImageIndices } : {}; } function latestCuaAppResult(cuaApps) { const cuaApp = cuaApps.at(-1); return cuaApp ? { cuaApp } : {}; } var NodeReplSession = class { context; createInjectedGlobals; restrictedProcess; currentSink = null; nodeReplApi = null; disposed = false; cleanupContextResources = () => void 0; /** 执行+持久策略(默认路线 B);切换 executor 即切换路线,run 主体不变。 */ executor; constructor(options = {}) { const injectedGlobals = options.injectedGlobals; this.createInjectedGlobals = typeof injectedGlobals === "function" ? injectedGlobals : () => injectedGlobals ?? {}; this.restrictedProcess = options.restrictProcess ? createRestrictedProcessFacade() : void 0; this.executor = new IifeContextExecutor(); this.context = this.buildContext(); } buildContext() { const timeouts = /* @__PURE__ */ new Set(); const intervals = /* @__PURE__ */ new Set(); const scopedSetTimeout = (callback, delay, ...args) => { const handle = setTimeout(() => { timeouts.delete(handle); callback(...args); }, delay); timeouts.add(handle); return handle; }; const scopedClearTimeout = (handle) => { timeouts.delete(handle); clearTimeout(handle); }; const scopedSetInterval = (callback, delay, ...args) => { const handle = setInterval(callback, delay, ...args); intervals.add(handle); return handle; }; const scopedClearInterval = (handle) => { intervals.delete(handle); clearInterval(handle); }; this.cleanupContextResources = () => { for (const handle of timeouts) clearTimeout(handle); for (const handle of intervals) clearInterval(handle); timeouts.clear(); intervals.clear(); }; const teeConsole = { log: (...args) => this.emit(args), info: (...args) => this.emit(args), warn: (...args) => this.emit(args), error: (...args) => this.emit(args), debug: (...args) => this.emit(args) }; const req = createReplRequire(createRequire(`${process.cwd()}/`), this.restrictedProcess); const nodeReplApi = { cwd: process.cwd(), homeDir: homedir(), tmpDir: tmpdir(), requestMeta: {}, write: (text) => this.emit([text]), // 把图片(如 tab.screenshot 结果)作为 image 内容块回给模型;接受 bytes/base64/dataUrl。 emitImage: (image) => this.emitImage(image), // SDK 结果必须走结构化通道;否则模型的 console.log 会把 image/image_ref 拆成普通文本, // 官方 CUA 的精确帧校验就无法确认这两块仍然相邻且未被改写。 emitStructuredResult: (result) => this.emitStructuredResult(result), setResponseMeta: (meta3) => this.setResponseMeta(meta3) }; this.nodeReplApi = nodeReplApi; const sandbox = { console: teeConsole, process: this.restrictedProcess ?? process, Buffer, URL, URLSearchParams, TextEncoder, TextDecoder, setTimeout: scopedSetTimeout, clearTimeout: scopedClearTimeout, setInterval: scopedSetInterval, clearInterval: scopedClearInterval, queueMicrotask, structuredClone, require: req, // 动态加载模块。用注入函数而非裸 import():vm 里的 import() 需要 --experimental-vm-modules // 启动 flag(agent 是打包 binary,不便加 flag);importModule 直通宿主 import(),无需 flag。 // 模型与 browser skill 使用标准 await import("...");executor 会按 AST 安全改写到该 loader。 importModule: (specifier) => this.importModule(specifier), nodeRepl: nodeReplApi, // 每次 kernel reset 都重建 browser-client facade;旧 context 中的 browser/tab binding // 不能跨 reset 漂移到新 generation,保持新会话 bootstrap 边界一致。 ...this.createInjectedGlobals() }; const context = createContext(sandbox); runInContext2("globalThis.globalThis = globalThis;", context); return context; } emit(args) { if (!this.currentSink) { return; } const text = args.map((a) => typeof a === "string" ? a : stringifyReplResult(a) ?? "undefined").join(" "); this.currentSink.write(text); } /** * 收集一张图片到本次 run 输出(供 formatModelContent 转成 image 内容块给模型)。 * 接受 Uint8Array/Buffer/number[]、data URL,或 { base64 | bytes, mimeType }。 * 入参非法时抛 TypeError,让模型直接看到用法错误。 */ emitImage(image) { if (!this.currentSink) { return; } const directBytes = ArrayBuffer.isView(image) && !(image instanceof DataView) || Array.isArray(image) ? image : null; const rec = directBytes !== null ? { bytes: directBytes } : image ?? {}; let base643 = null; let dataUrlMimeType; if (typeof rec.dataUrl === "string") { const match = /^data:([^;,]+);base64,(.+)$/u.exec(rec.dataUrl); if (match) { dataUrlMimeType = match[1]; base643 = match[2]; } } else if (typeof rec.base64 === "string" && rec.base64.length > 0) { base643 = rec.base64; } else if (rec.bytes != null) { try { base643 = Buffer.from(rec.bytes).toString("base64"); } catch { base643 = null; } } if (!base643) { throw new TypeError("nodeRepl.emitImage requires bytes, dataUrl, { base64 }, or { bytes }; e.g. emitImage(await tab.screenshot())"); } const mimeType = typeof rec.mimeType === "string" && rec.mimeType ? rec.mimeType : dataUrlMimeType ?? "image/png"; this.currentSink.images.push({ base64: base643, mimeType }); } setResponseMeta(meta3) { if (!this.currentSink) return; if (!meta3 || typeof meta3 !== "object" || Array.isArray(meta3)) { throw new TypeError("nodeRepl.setResponseMeta requires a plain object"); } Object.assign(this.currentSink.responseMeta, meta3); } emitStructuredResult(result) { if (!this.currentSink) return; if (!result || typeof result !== "object" || Array.isArray(result)) { throw new TypeError("nodeRepl.emitStructuredResult requires a result object"); } const candidate = result; if (!Array.isArray(candidate.content)) { throw new TypeError("nodeRepl.emitStructuredResult requires a content array"); } for (const block of candidate.content) { if (!block || typeof block !== "object" || typeof block.type !== "string") { throw new TypeError("nodeRepl.emitStructuredResult content blocks require a type"); } } this.currentSink.structuredResults.push(result); } /** browser-client transport 在同一次 js run 内把 backend meta 合并进工具结果。 */ mergeResponseMeta(meta3) { if (!this.currentSink) return; const currentSurface = this.currentSink.responseMeta["zcode/toolSurface"]; const nextSurface = meta3["zcode/toolSurface"]; if (currentSurface && typeof currentSurface === "object" && !Array.isArray(currentSurface) && nextSurface && typeof nextSurface === "object" && !Array.isArray(nextSurface)) { this.setResponseMeta({ ...meta3, "zcode/toolSurface": { ...currentSurface, ...nextSurface } }); return; } this.setResponseMeta(meta3); } /** browser transport 记录模型显式 screenshot 的原始图片,供 emitImage 结果做来源对应。 */ recordBrowserScreenshot(image) { if (!this.currentSink) return; this.currentSink.browserScreenshots.push(image); } /** * CUA bridge 从 broker 响应记录本次调用的目标应用身份。 * * 刻意不放进 sandbox globals(对比 write/emitImage/emitStructuredResult/setResponseMeta): * 工具卡据此显示 App 图标,模型能写就能声称自己操作了别的应用。 */ recordCuaAppIdentity(app) { if (!this.currentSink) return; this.currentSink.cuaApps.push(app); } /** 执行一段代码;signal 支持取消(超时/停止)。 */ async run(code, options = {}) { if (this.disposed) { return { logs: "", error: { name: "DisposedError", message: "REPL session \u5DF2\u91CA\u653E" } }; } let buffer = ""; const images = []; const browserScreenshots = []; const structuredResults = []; const responseMeta = {}; const cuaApps = []; if (this.nodeReplApi) { this.nodeReplApi.requestMeta = { ...options.requestMeta }; } this.currentSink = { write: (text) => { buffer += (buffer ? "\n" : "") + text; }, images, browserScreenshots, structuredResults, responseMeta, cuaApps }; try { const value = await this.executor.run(code, this.context, options.signal, options.syncTimeoutMs); return { result: stringifyReplResult(value), logs: buffer, ...images.length > 0 ? { images } : {}, ...browserScreenshotIndexResult(images, browserScreenshots), ...structuredResults.length > 0 ? { structuredResults } : {}, ...Object.keys(responseMeta).length > 0 ? { responseMeta } : {}, ...latestCuaAppResult(cuaApps) }; } catch (error62) { const normalized = normalizeReplError(error62); const mustResetKernel = normalized.name === "AbortError" || normalized.name === "TimeoutError" || normalized.message.includes("Script execution timed out"); if (mustResetKernel && !this.disposed) { this.cleanupContextResources(); this.context = this.buildContext(); normalized.message = `${normalized.message}; kernel reset, all previous bindings were cleared; reinitialize browser/tab bindings before rerunning`; } return { logs: buffer, error: normalized, ...images.length > 0 ? { images } : {}, ...browserScreenshotIndexResult(images, browserScreenshots), ...structuredResults.length > 0 ? { structuredResults } : {}, ...Object.keys(responseMeta).length > 0 ? { responseMeta } : {}, ...latestCuaAppResult(cuaApps) }; } finally { this.currentSink = null; if (this.nodeReplApi) { this.nodeReplApi.requestMeta = {}; } } } async importModule(specifier) { if (this.restrictedProcess && PROCESS_MODULE_IDS.has(specifier)) { return { ...this.restrictedProcess, default: this.restrictedProcess }; } return await import(specifier); } /** 释放资源。 */ dispose() { this.disposed = true; this.cleanupContextResources(); this.currentSink = null; } }; // ../../../../packages/zcode-cua/index.js var UNAVAILABLE_TEXT = "Computer Use is not available in this build."; function createComputerUseRuntime(_options) { return { async execute() { return { content: [{ type: "text", text: UNAVAILABLE_TEXT }], isError: true }; }, async closeSession() { }, async dispose() { } }; } // src/browser-bridge.ts import { randomUUID } from "node:crypto"; import { createConnection } from "node:net"; // ../../../../packages/shared/src/browser-use/command-metadata.ts var BROWSER_VIEWPORT_LIMITS = { minWidth: 320, maxWidth: 3840, minHeight: 320, maxHeight: 2160 }; var browserViewportSizeSchema = external_exports.object({ width: external_exports.number().int().positive(), height: external_exports.number().int().positive() }).strict(); var browserViewportInputSchema = browserViewportSizeSchema.extend({ width: external_exports.number().int().min(BROWSER_VIEWPORT_LIMITS.minWidth).max(BROWSER_VIEWPORT_LIMITS.maxWidth), height: external_exports.number().int().min(BROWSER_VIEWPORT_LIMITS.minHeight).max(BROWSER_VIEWPORT_LIMITS.maxHeight) }); var BROWSER_VIEWPORT_ZOOM_OPTIONS = [ "fit", "50", "75", "100", "125", "150", "200" ]; var browserViewportZoomSchema = external_exports.enum(BROWSER_VIEWPORT_ZOOM_OPTIONS); var embeddedBrowserViewportPreferenceSchema = external_exports.object({ mode: external_exports.enum(["normal", "responsive"]), viewport: browserViewportInputSchema, zoom: browserViewportZoomSchema }).strict(); var browserCommandMethodSchema = external_exports.enum([ "navigate", "back", "forward", "reload", "snapshot", "click", "fill", "type", "press", "cuaKeypress", "scroll", "cuaScroll", "domCuaScroll", "hover", "select", "check", "drag", "cuaDrag", "screenshot", "getState", "elementInfo", "evaluate", "getDialog", "handleDialog", "waitFor", "playwright", "playwrightWaitForTimeout", "capabilities", "browserVisibilityGet", "browserVisibilitySet", "browserViewportSet", "browserViewportReset", "recordingStart", "recordingStatus", "recordingCancel", "activateTab", "newTab", "finalize", "finalizeTabs", "listUserTabs", "claimTab", "markDeliverable", "markHandoff", "nameSession", "turnEnded", "closeSession", "cancelRequest", "close", "list" ]); var browserClientModeSchema = external_exports.enum(["desktop-continuous", "web-remote-replayable"]); var browserCommandContextSchema = external_exports.object({ /** workspaceIdentity?.trim() || workspacePath,用于隔离与受控 tab 复用。 */ workspaceKey: external_exports.string().min(1), sessionId: external_exports.string().min(1), /** 受控 tab id;缺省表示该 session 的活动受控 tab。 */ tabId: external_exports.string().min(1).optional(), requestId: external_exports.string().min(1), clientMode: browserClientModeSchema }).strict(); var browserErrorCodeSchema = external_exports.enum([ "backend_unavailable", "capability_unsupported", "duplicate_request_id", "ref_not_found", "navigation_blocked", "timeout", "renderer_unreachable", "cancelled", "execution_error" ]); var browserPageStateSchema = external_exports.object({ url: external_exports.string(), title: external_exports.string(), canGoBack: external_exports.boolean(), canGoForward: external_exports.boolean(), scrollX: external_exports.number().optional(), scrollY: external_exports.number().optional(), viewportWidth: external_exports.number().optional(), viewportHeight: external_exports.number().optional() }).strict(); // ../../../../packages/shared/src/browser-use/commands.ts var browserMouseButtonSchema = external_exports.enum(["left", "right", "middle"]); var browserKeyModifierSchema = external_exports.enum([ "Alt", "Control", "ControlOrMeta", "Meta", "Shift" ]); var browserPointSchema = external_exports.object({ x: external_exports.number(), y: external_exports.number() }).strict(); var browserRecordingDurationSchema = external_exports.number().int().nonnegative().max(9e4); var browserRecordingSelectorSchema = external_exports.string().trim().min(1).max(2e3); var browserRecordingActionSchema = external_exports.discriminatedUnion("type", [ external_exports.object({ type: external_exports.literal("wait"), durationMs: browserRecordingDurationSchema }).strict(), external_exports.object({ type: external_exports.literal("click"), selector: browserRecordingSelectorSchema.optional(), x: external_exports.number().optional(), y: external_exports.number().optional(), button: browserMouseButtonSchema.optional(), doubleClick: external_exports.boolean().optional(), delayAfterMs: browserRecordingDurationSchema.optional() }).strict(), external_exports.object({ type: external_exports.literal("type"), selector: browserRecordingSelectorSchema, text: external_exports.string().max(1e5), delayAfterMs: browserRecordingDurationSchema.optional() }).strict(), external_exports.object({ type: external_exports.literal("hover"), selector: browserRecordingSelectorSchema.optional(), x: external_exports.number().optional(), y: external_exports.number().optional(), durationMs: browserRecordingDurationSchema.optional(), delayAfterMs: browserRecordingDurationSchema.optional() }).strict(), external_exports.object({ type: external_exports.literal("move"), x: external_exports.number(), y: external_exports.number(), durationMs: browserRecordingDurationSchema.optional(), delayAfterMs: browserRecordingDurationSchema.optional() }).strict(), external_exports.object({ type: external_exports.literal("scroll"), deltaX: external_exports.number().optional(), deltaY: external_exports.number(), durationMs: browserRecordingDurationSchema.optional(), delayAfterMs: browserRecordingDurationSchema.optional() }).strict(), external_exports.object({ type: external_exports.literal("scrollTo"), selector: browserRecordingSelectorSchema.optional(), x: external_exports.number().optional(), y: external_exports.number().optional(), durationMs: browserRecordingDurationSchema.optional(), delayAfterMs: browserRecordingDurationSchema.optional() }).strict(), external_exports.object({ type: external_exports.literal("wheel"), deltaX: external_exports.number().optional(), deltaY: external_exports.number(), times: external_exports.number().int().min(1).max(100).optional(), intervalMs: browserRecordingDurationSchema.optional(), delayAfterMs: browserRecordingDurationSchema.optional() }).strict(), external_exports.object({ type: external_exports.literal("drag"), path: external_exports.array(browserPointSchema).min(2).max(200), durationMs: browserRecordingDurationSchema.optional(), delayAfterMs: browserRecordingDurationSchema.optional() }).strict(), external_exports.object({ type: external_exports.literal("waitFor"), selector: browserRecordingSelectorSchema, state: external_exports.enum(["attached", "detached", "visible", "hidden"]).optional(), timeoutMs: external_exports.number().int().positive().max(3e4).optional(), delayAfterMs: browserRecordingDurationSchema.optional() }).strict() ]); var browserRecordingOptionsSchema = external_exports.object({ viewport: browserViewportInputSchema.optional(), fps: external_exports.number().int().min(1).max(60).optional(), jpegQuality: external_exports.number().int().min(1).max(100).optional(), maxDurationMs: external_exports.number().int().min(1e3).max(9e4).optional(), settleMs: browserRecordingDurationSchema.optional(), showCursor: external_exports.boolean().optional(), actions: external_exports.array(browserRecordingActionSchema).max(500).optional() }).strict(); var browserRecordingOutputPathSchema = external_exports.string().trim().min(1).max(2e3).refine((value) => !/^[/\\]/u.test(value) && !/^[A-Za-z]:[/\\]/u.test(value), { message: "recording outputPath must be relative to the workspace" }).refine( (value) => !value.split(/[\\/]+/u).some((segment) => segment === ".." || segment === "." || segment.length === 0), { message: "recording outputPath cannot escape the workspace" } ).refine((value) => value.toLowerCase().endsWith(".webm"), { message: "recording outputPath must end with .webm" }); var browserPlaywrightLocatorOperationSchema = external_exports.enum([ "allTextContents", "click", "count", "dblclick", "downloadMedia", "evaluate", "fill", "getAttribute", "innerText", "isEnabled", "isVisible", "press", "selectOption", "setChecked", "textContent", "waitFor" ]); var browserPlaywrightModifierSchema = external_exports.enum([ "Alt", "Control", "ControlOrMeta", "Meta", "Shift" ]); var browserPlaywrightTimeoutSchema = external_exports.number().int().positive().optional(); var browserPlaywrightSelectOptionSchema = external_exports.object({ value: external_exports.string().optional(), label: external_exports.string().optional(), index: external_exports.number().int().nonnegative().optional() }).strict().refine( (selection) => selection.value !== void 0 || selection.label !== void 0 || selection.index !== void 0, "Select option requires value, label, or index" ); var browserPlaywrightActionSchema = external_exports.discriminatedUnion("name", [ external_exports.object({ name: external_exports.literal("domSnapshot") }).strict(), external_exports.object({ name: external_exports.literal("elementInfo"), x: external_exports.number(), y: external_exports.number(), includeNonInteractable: external_exports.boolean().optional() }).strict(), external_exports.object({ name: external_exports.literal("elementScreenshot"), x: external_exports.number(), y: external_exports.number(), includeNonInteractable: external_exports.boolean().optional() }).strict(), external_exports.object({ name: external_exports.literal("evaluate"), expression: external_exports.string().min(1), expressionKind: external_exports.enum(["string", "function"]), arg: external_exports.unknown().optional(), timeoutMs: browserPlaywrightTimeoutSchema }).strict(), external_exports.object({ name: external_exports.literal("waitForLoadState"), state: external_exports.enum(["load", "domcontentloaded", "networkidle"]).optional(), timeoutMs: browserPlaywrightTimeoutSchema }).strict(), external_exports.object({ name: external_exports.literal("waitForURL"), url: external_exports.string().min(1), waitUntil: external_exports.enum(["load", "domcontentloaded", "networkidle", "commit"]).optional(), timeoutMs: browserPlaywrightTimeoutSchema }).strict(), external_exports.object({ name: external_exports.literal("waitForEvent"), event: external_exports.enum(["download", "filechooser"]), timeoutMs: browserPlaywrightTimeoutSchema }).strict(), external_exports.object({ name: external_exports.literal("downloadPath"), downloadId: external_exports.string().min(1), timeoutMs: browserPlaywrightTimeoutSchema }).strict(), external_exports.object({ name: external_exports.literal("fileChooserSetFiles"), fileChooserId: external_exports.string().min(1), files: external_exports.array(external_exports.string()).min(1), timeoutMs: browserPlaywrightTimeoutSchema }).strict(), external_exports.object({ name: external_exports.literal("locator"), selector: external_exports.string().min(1), operation: browserPlaywrightLocatorOperationSchema, value: external_exports.unknown().optional(), arg: external_exports.unknown().optional(), expression: external_exports.string().min(1).optional(), expressionKind: external_exports.enum(["string", "function"]).optional(), attribute: external_exports.string().min(1).optional(), checked: external_exports.boolean().optional(), replace: external_exports.boolean().optional(), force: external_exports.boolean().optional(), button: browserMouseButtonSchema.optional(), modifiers: external_exports.array(browserPlaywrightModifierSchema).optional(), state: external_exports.enum(["attached", "detached", "visible", "hidden"]).optional(), selections: external_exports.array(browserPlaywrightSelectOptionSchema).min(1).optional(), timeoutMs: browserPlaywrightTimeoutSchema }).strict() ]); var browserCommandSchema = external_exports.discriminatedUnion("method", [ external_exports.object({ method: external_exports.literal("navigate"), url: external_exports.string().min(1), tabId: external_exports.string().optional() }).strict(), external_exports.object({ method: external_exports.literal("back"), tabId: external_exports.string().optional() }).strict(), external_exports.object({ method: external_exports.literal("forward"), tabId: external_exports.string().optional() }).strict(), external_exports.object({ method: external_exports.literal("reload"), tabId: external_exports.string().optional() }).strict(), external_exports.object({ method: external_exports.literal("snapshot"), maxElements: external_exports.number().int().positive().optional(), includeHidden: external_exports.boolean().optional(), tabId: external_exports.string().optional() }).strict(), external_exports.object({ method: external_exports.literal("click"), // ref(快照句柄)与坐标 (x,y) 二选一:ref 走 dom_cua 式定位,(x,y) 走 cua 视觉坐标定位。 ref: external_exports.string().min(1).optional(), x: external_exports.number().optional(), y: external_exports.number().optional(), button: browserMouseButtonSchema.optional(), doubleClick: external_exports.boolean().optional(), modifiers: external_exports.array(browserKeyModifierSchema).optional(), tabId: external_exports.string().optional() }).strict(), external_exports.object({ method: external_exports.literal("fill"), ref: external_exports.string().min(1), value: external_exports.string(), tabId: external_exports.string().optional() }).strict(), external_exports.object({ method: external_exports.literal("type"), ref: external_exports.string().min(1).optional(), text: external_exports.string(), tabId: external_exports.string().optional() }).strict(), external_exports.object({ method: external_exports.literal("press"), key: external_exports.string().min(1), ref: external_exports.string().min(1).optional(), modifiers: external_exports.array(browserKeyModifierSchema).optional(), tabId: external_exports.string().optional() }).strict(), // CUA 组合键输入:keys 是一个组合键,必须保留逐键 down/up 顺序,不能压成末键 + bitmask。 external_exports.object({ method: external_exports.literal("cuaKeypress"), keys: external_exports.array(external_exports.string().min(1)).min(1), tabId: external_exports.string().optional() }).strict(), external_exports.object({ method: external_exports.literal("scroll"), ref: external_exports.string().min(1).optional(), x: external_exports.number().optional(), y: external_exports.number().optional(), tabId: external_exports.string().optional() }).strict(), // CUA 滚动输入:视口锚点与滚动 delta 是两组不同坐标,且可携带 modifier。 external_exports.object({ method: external_exports.literal("cuaScroll"), x: external_exports.number(), y: external_exports.number(), scrollX: external_exports.number(), scrollY: external_exports.number(), modifiers: external_exports.array(browserKeyModifierSchema).optional(), tabId: external_exports.string().optional() }).strict(), // DOM CUA 滚动输入:nodeId 缺省时从视口中心滚动;存在时从该节点中心滚动。 external_exports.object({ method: external_exports.literal("domCuaScroll"), nodeId: external_exports.string().min(1).optional(), scrollX: external_exports.number(), scrollY: external_exports.number(), tabId: external_exports.string().optional() }).strict(), external_exports.object({ method: external_exports.literal("screenshot"), ref: external_exports.string().min(1).optional(), fullPage: external_exports.boolean().optional(), // 区域截图:CDP Page.captureScreenshot 的 clip(视口 CSS px)。与 fullPage 互斥。 clip: external_exports.object({ x: external_exports.number(), y: external_exports.number(), width: external_exports.number().positive(), height: external_exports.number().positive() }).strict().optional(), tabId: external_exports.string().optional() }).strict(), external_exports.object({ method: external_exports.literal("getState"), tabId: external_exports.string().optional() }).strict(), // hover:移动鼠标到元素(ref)或坐标(x,y),触发 hover 态(cua move / dom_cua 定位后 move)。 external_exports.object({ method: external_exports.literal("hover"), ref: external_exports.string().min(1).optional(), x: external_exports.number().optional(), y: external_exports.number().optional(), modifiers: external_exports.array(browserKeyModifierSchema).optional(), tabId: external_exports.string().optional() }).strict(), // select:对