@highstate/restic 0.9.18 → 0.9.20

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../node_modules/ajv/lib/compile/codegen/code.ts","../../../node_modules/ajv/lib/compile/codegen/scope.ts","../../../node_modules/ajv/lib/compile/codegen/index.ts","../../../node_modules/ajv/lib/compile/util.ts","../../../node_modules/ajv/lib/compile/names.ts","../../../node_modules/ajv/lib/compile/errors.ts","../../../node_modules/ajv/lib/compile/validate/boolSchema.ts","../../../node_modules/ajv/lib/compile/rules.ts","../../../node_modules/ajv/lib/compile/validate/applicability.ts","../../../node_modules/ajv/lib/compile/validate/dataType.ts","../../../node_modules/ajv/lib/compile/validate/defaults.ts","../../../node_modules/ajv/lib/vocabularies/code.ts","../../../node_modules/ajv/lib/compile/validate/keyword.ts","../../../node_modules/ajv/lib/compile/validate/subschema.ts","../../../node_modules/fast-deep-equal/index.js","../../../node_modules/json-schema-traverse/index.js","../../../node_modules/ajv/lib/compile/resolve.ts","../../../node_modules/ajv/lib/compile/validate/index.ts","../../../node_modules/ajv/lib/runtime/validation_error.ts","../../../node_modules/ajv/lib/compile/ref_error.ts","../../../node_modules/ajv/lib/compile/index.ts","../../../node_modules/ajv/dist/refs/data.json","../../../node_modules/fast-uri/lib/scopedChars.js","../../../node_modules/fast-uri/lib/utils.js","../../../node_modules/fast-uri/lib/schemes.js","../../../node_modules/fast-uri/index.js","../../../node_modules/ajv/lib/runtime/uri.ts","../../../node_modules/ajv/lib/core.ts","../../../node_modules/ajv/lib/vocabularies/core/id.ts","../../../node_modules/ajv/lib/vocabularies/core/ref.ts","../../../node_modules/ajv/lib/vocabularies/core/index.ts","../../../node_modules/ajv/lib/vocabularies/validation/limitNumber.ts","../../../node_modules/ajv/lib/vocabularies/validation/multipleOf.ts","../../../node_modules/ajv/lib/runtime/ucs2length.ts","../../../node_modules/ajv/lib/vocabularies/validation/limitLength.ts","../../../node_modules/ajv/lib/vocabularies/validation/pattern.ts","../../../node_modules/ajv/lib/vocabularies/validation/limitProperties.ts","../../../node_modules/ajv/lib/vocabularies/validation/required.ts","../../../node_modules/ajv/lib/vocabularies/validation/limitItems.ts","../../../node_modules/ajv/lib/runtime/equal.ts","../../../node_modules/ajv/lib/vocabularies/validation/uniqueItems.ts","../../../node_modules/ajv/lib/vocabularies/validation/const.ts","../../../node_modules/ajv/lib/vocabularies/validation/enum.ts","../../../node_modules/ajv/lib/vocabularies/validation/index.ts","../../../node_modules/ajv/lib/vocabularies/applicator/additionalItems.ts","../../../node_modules/ajv/lib/vocabularies/applicator/items.ts","../../../node_modules/ajv/lib/vocabularies/applicator/prefixItems.ts","../../../node_modules/ajv/lib/vocabularies/applicator/items2020.ts","../../../node_modules/ajv/lib/vocabularies/applicator/contains.ts","../../../node_modules/ajv/lib/vocabularies/applicator/dependencies.ts","../../../node_modules/ajv/lib/vocabularies/applicator/propertyNames.ts","../../../node_modules/ajv/lib/vocabularies/applicator/additionalProperties.ts","../../../node_modules/ajv/lib/vocabularies/applicator/properties.ts","../../../node_modules/ajv/lib/vocabularies/applicator/patternProperties.ts","../../../node_modules/ajv/lib/vocabularies/applicator/not.ts","../../../node_modules/ajv/lib/vocabularies/applicator/anyOf.ts","../../../node_modules/ajv/lib/vocabularies/applicator/oneOf.ts","../../../node_modules/ajv/lib/vocabularies/applicator/allOf.ts","../../../node_modules/ajv/lib/vocabularies/applicator/if.ts","../../../node_modules/ajv/lib/vocabularies/applicator/thenElse.ts","../../../node_modules/ajv/lib/vocabularies/applicator/index.ts","../../../node_modules/ajv/lib/vocabularies/format/format.ts","../../../node_modules/ajv/lib/vocabularies/format/index.ts","../../../node_modules/ajv/lib/vocabularies/metadata.ts","../../../node_modules/ajv/lib/vocabularies/draft7.ts","../../../node_modules/ajv/lib/vocabularies/discriminator/types.ts","../../../node_modules/ajv/lib/vocabularies/discriminator/index.ts","../../../node_modules/ajv/dist/refs/json-schema-draft-07.json","../../../node_modules/ajv/lib/ajv.ts","../../../node_modules/zod/v4/classic/external.js","../../../node_modules/zod/v4/core/index.js","../../../node_modules/zod/v4/core/core.js","../../../node_modules/zod/v4/core/util.js","../../../node_modules/zod/v4/core/errors.js","../../../node_modules/zod/v4/core/parse.js","../../../node_modules/zod/v4/core/regexes.js","../../../node_modules/zod/v4/core/checks.js","../../../node_modules/zod/v4/core/doc.js","../../../node_modules/zod/v4/core/versions.js","../../../node_modules/zod/v4/core/schemas.js","../../../node_modules/zod/v4/locales/index.js","../../../node_modules/zod/v4/locales/ar.js","../../../node_modules/zod/v4/locales/az.js","../../../node_modules/zod/v4/locales/be.js","../../../node_modules/zod/v4/locales/ca.js","../../../node_modules/zod/v4/locales/cs.js","../../../node_modules/zod/v4/locales/de.js","../../../node_modules/zod/v4/locales/en.js","../../../node_modules/zod/v4/locales/eo.js","../../../node_modules/zod/v4/locales/es.js","../../../node_modules/zod/v4/locales/fa.js","../../../node_modules/zod/v4/locales/fi.js","../../../node_modules/zod/v4/locales/fr.js","../../../node_modules/zod/v4/locales/fr-CA.js","../../../node_modules/zod/v4/locales/he.js","../../../node_modules/zod/v4/locales/hu.js","../../../node_modules/zod/v4/locales/id.js","../../../node_modules/zod/v4/locales/it.js","../../../node_modules/zod/v4/locales/ja.js","../../../node_modules/zod/v4/locales/kh.js","../../../node_modules/zod/v4/locales/ko.js","../../../node_modules/zod/v4/locales/mk.js","../../../node_modules/zod/v4/locales/ms.js","../../../node_modules/zod/v4/locales/nl.js","../../../node_modules/zod/v4/locales/no.js","../../../node_modules/zod/v4/locales/ota.js","../../../node_modules/zod/v4/locales/ps.js","../../../node_modules/zod/v4/locales/pl.js","../../../node_modules/zod/v4/locales/pt.js","../../../node_modules/zod/v4/locales/ru.js","../../../node_modules/zod/v4/locales/sl.js","../../../node_modules/zod/v4/locales/sv.js","../../../node_modules/zod/v4/locales/ta.js","../../../node_modules/zod/v4/locales/th.js","../../../node_modules/zod/v4/locales/tr.js","../../../node_modules/zod/v4/locales/ua.js","../../../node_modules/zod/v4/locales/ur.js","../../../node_modules/zod/v4/locales/vi.js","../../../node_modules/zod/v4/locales/zh-CN.js","../../../node_modules/zod/v4/locales/zh-TW.js","../../../node_modules/zod/v4/core/registries.js","../../../node_modules/zod/v4/core/api.js","../../../node_modules/zod/v4/core/function.js","../../../node_modules/zod/v4/core/to-json-schema.js","../../../node_modules/zod/v4/core/json-schema.js","../../../node_modules/zod/v4/classic/iso.js","../../../node_modules/zod/v4/classic/errors.js","../../../node_modules/zod/v4/classic/parse.js","../../../node_modules/zod/v4/classic/schemas.js","../../../node_modules/zod/v4/classic/compat.js","../../../node_modules/zod/v4/classic/coerce.js","../../../node_modules/zod/index.js","../../contract/src/meta.ts","../../contract/src/entity.ts","../../contract/src/instance.ts","../../contract/src/utils.ts","../../contract/src/component.ts","../../contract/src/unit.ts","../assets/images.json","../src/scripts.ts","../src/job-pair.ts"],"names":["UsedValueState","error","mergeValues","Type","DataType","_a","normalize","output","ipv6","esc","parse","Ajv","text","DiscrError","required","_default","base64","base64url","bigint","boolean","_catch","cidrv4","cidrv6","core_exports","cuid","cuid2","date","e164","email","emoji","_enum","guid","ipv4","ksuid","nanoid","_null","nullish","number","parseAsync","safeParse","safeParseAsync","string","ulid","_undefined","uuid","_void","xid","_emoji","initializer","array","object","Class","config","issue","version","time","inst","result","checks","_","url","isObject","allowsEval","r","results","map","left","right","keyResult","valueResult","parsedType","json","file","id","schema","params","gen","datetime","duration","issues","def","check","ZodFirstPartyTypeKind","z","indent","terminal-restic","args"],"mappings":"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","file":"index.js","sourcesContent":["// eslint-disable-next-line @typescript-eslint/no-extraneous-class\nexport abstract class _CodeOrName {\n abstract readonly str: string\n abstract readonly names: UsedNames\n abstract toString(): string\n abstract emptyStr(): boolean\n}\n\nexport const IDENTIFIER = /^[a-z$_][a-z$_0-9]*$/i\n\nexport class Name extends _CodeOrName {\n readonly str: string\n constructor(s: string) {\n super()\n if (!IDENTIFIER.test(s)) throw new Error(\"CodeGen: name must be a valid identifier\")\n this.str = s\n }\n\n toString(): string {\n return this.str\n }\n\n emptyStr(): boolean {\n return false\n }\n\n get names(): UsedNames {\n return {[this.str]: 1}\n }\n}\n\nexport class _Code extends _CodeOrName {\n readonly _items: readonly CodeItem[]\n private _str?: string\n private _names?: UsedNames\n\n constructor(code: string | readonly CodeItem[]) {\n super()\n this._items = typeof code === \"string\" ? [code] : code\n }\n\n toString(): string {\n return this.str\n }\n\n emptyStr(): boolean {\n if (this._items.length > 1) return false\n const item = this._items[0]\n return item === \"\" || item === '\"\"'\n }\n\n get str(): string {\n return (this._str ??= this._items.reduce((s: string, c: CodeItem) => `${s}${c}`, \"\"))\n }\n\n get names(): UsedNames {\n return (this._names ??= this._items.reduce((names: UsedNames, c) => {\n if (c instanceof Name) names[c.str] = (names[c.str] || 0) + 1\n return names\n }, {}))\n }\n}\n\nexport type CodeItem = Name | string | number | boolean | null\n\nexport type UsedNames = Record<string, number | undefined>\n\nexport type Code = _Code | Name\n\nexport type SafeExpr = Code | number | boolean | null\n\nexport const nil = new _Code(\"\")\n\ntype CodeArg = SafeExpr | string | undefined\n\nexport function _(strs: TemplateStringsArray, ...args: CodeArg[]): _Code {\n const code: CodeItem[] = [strs[0]]\n let i = 0\n while (i < args.length) {\n addCodeArg(code, args[i])\n code.push(strs[++i])\n }\n return new _Code(code)\n}\n\nconst plus = new _Code(\"+\")\n\nexport function str(strs: TemplateStringsArray, ...args: (CodeArg | string[])[]): _Code {\n const expr: CodeItem[] = [safeStringify(strs[0])]\n let i = 0\n while (i < args.length) {\n expr.push(plus)\n addCodeArg(expr, args[i])\n expr.push(plus, safeStringify(strs[++i]))\n }\n optimize(expr)\n return new _Code(expr)\n}\n\nexport function addCodeArg(code: CodeItem[], arg: CodeArg | string[]): void {\n if (arg instanceof _Code) code.push(...arg._items)\n else if (arg instanceof Name) code.push(arg)\n else code.push(interpolate(arg))\n}\n\nfunction optimize(expr: CodeItem[]): void {\n let i = 1\n while (i < expr.length - 1) {\n if (expr[i] === plus) {\n const res = mergeExprItems(expr[i - 1], expr[i + 1])\n if (res !== undefined) {\n expr.splice(i - 1, 3, res)\n continue\n }\n expr[i++] = \"+\"\n }\n i++\n }\n}\n\nfunction mergeExprItems(a: CodeItem, b: CodeItem): CodeItem | undefined {\n if (b === '\"\"') return a\n if (a === '\"\"') return b\n if (typeof a == \"string\") {\n if (b instanceof Name || a[a.length - 1] !== '\"') return\n if (typeof b != \"string\") return `${a.slice(0, -1)}${b}\"`\n if (b[0] === '\"') return a.slice(0, -1) + b.slice(1)\n return\n }\n if (typeof b == \"string\" && b[0] === '\"' && !(a instanceof Name)) return `\"${a}${b.slice(1)}`\n return\n}\n\nexport function strConcat(c1: Code, c2: Code): Code {\n return c2.emptyStr() ? c1 : c1.emptyStr() ? c2 : str`${c1}${c2}`\n}\n\n// TODO do not allow arrays here\nfunction interpolate(x?: string | string[] | number | boolean | null): SafeExpr | string {\n return typeof x == \"number\" || typeof x == \"boolean\" || x === null\n ? x\n : safeStringify(Array.isArray(x) ? x.join(\",\") : x)\n}\n\nexport function stringify(x: unknown): Code {\n return new _Code(safeStringify(x))\n}\n\nexport function safeStringify(x: unknown): string {\n return JSON.stringify(x)\n .replace(/\\u2028/g, \"\\\\u2028\")\n .replace(/\\u2029/g, \"\\\\u2029\")\n}\n\nexport function getProperty(key: Code | string | number): Code {\n return typeof key == \"string\" && IDENTIFIER.test(key) ? new _Code(`.${key}`) : _`[${key}]`\n}\n\n//Does best effort to format the name properly\nexport function getEsmExportName(key: Code | string | number): Code {\n if (typeof key == \"string\" && IDENTIFIER.test(key)) {\n return new _Code(`${key}`)\n }\n throw new Error(`CodeGen: invalid export name: ${key}, use explicit $id name mapping`)\n}\n\nexport function regexpCode(rx: RegExp): Code {\n return new _Code(rx.toString())\n}\n","import {_, nil, Code, Name} from \"./code\"\n\ninterface NameGroup {\n prefix: string\n index: number\n}\n\nexport interface NameValue {\n ref: ValueReference // this is the reference to any value that can be referred to from generated code via `globals` var in the closure\n key?: unknown // any key to identify a global to avoid duplicates, if not passed ref is used\n code?: Code // this is the code creating the value needed for standalone code wit_out closure - can be a primitive value, function or import (`require`)\n}\n\nexport type ValueReference = unknown // possibly make CodeGen parameterized type on this type\n\nclass ValueError extends Error {\n readonly value?: NameValue\n constructor(name: ValueScopeName) {\n super(`CodeGen: \"code\" for ${name} not defined`)\n this.value = name.value\n }\n}\n\ninterface ScopeOptions {\n prefixes?: Set<string>\n parent?: Scope\n}\n\ninterface ValueScopeOptions extends ScopeOptions {\n scope: ScopeStore\n es5?: boolean\n lines?: boolean\n}\n\nexport type ScopeStore = Record<string, ValueReference[] | undefined>\n\ntype ScopeValues = {\n [Prefix in string]?: Map<unknown, ValueScopeName>\n}\n\nexport type ScopeValueSets = {\n [Prefix in string]?: Set<ValueScopeName>\n}\n\nexport enum UsedValueState {\n Started,\n Completed,\n}\n\nexport type UsedScopeValues = {\n [Prefix in string]?: Map<ValueScopeName, UsedValueState | undefined>\n}\n\nexport const varKinds = {\n const: new Name(\"const\"),\n let: new Name(\"let\"),\n var: new Name(\"var\"),\n}\n\nexport class Scope {\n protected readonly _names: {[Prefix in string]?: NameGroup} = {}\n protected readonly _prefixes?: Set<string>\n protected readonly _parent?: Scope\n\n constructor({prefixes, parent}: ScopeOptions = {}) {\n this._prefixes = prefixes\n this._parent = parent\n }\n\n toName(nameOrPrefix: Name | string): Name {\n return nameOrPrefix instanceof Name ? nameOrPrefix : this.name(nameOrPrefix)\n }\n\n name(prefix: string): Name {\n return new Name(this._newName(prefix))\n }\n\n protected _newName(prefix: string): string {\n const ng = this._names[prefix] || this._nameGroup(prefix)\n return `${prefix}${ng.index++}`\n }\n\n private _nameGroup(prefix: string): NameGroup {\n if (this._parent?._prefixes?.has(prefix) || (this._prefixes && !this._prefixes.has(prefix))) {\n throw new Error(`CodeGen: prefix \"${prefix}\" is not allowed in this scope`)\n }\n return (this._names[prefix] = {prefix, index: 0})\n }\n}\n\ninterface ScopePath {\n property: string\n itemIndex: number\n}\n\nexport class ValueScopeName extends Name {\n readonly prefix: string\n value?: NameValue\n scopePath?: Code\n\n constructor(prefix: string, nameStr: string) {\n super(nameStr)\n this.prefix = prefix\n }\n\n setValue(value: NameValue, {property, itemIndex}: ScopePath): void {\n this.value = value\n this.scopePath = _`.${new Name(property)}[${itemIndex}]`\n }\n}\n\ninterface VSOptions extends ValueScopeOptions {\n _n: Code\n}\n\nconst line = _`\\n`\n\nexport class ValueScope extends Scope {\n protected readonly _values: ScopeValues = {}\n protected readonly _scope: ScopeStore\n readonly opts: VSOptions\n\n constructor(opts: ValueScopeOptions) {\n super(opts)\n this._scope = opts.scope\n this.opts = {...opts, _n: opts.lines ? line : nil}\n }\n\n get(): ScopeStore {\n return this._scope\n }\n\n name(prefix: string): ValueScopeName {\n return new ValueScopeName(prefix, this._newName(prefix))\n }\n\n value(nameOrPrefix: ValueScopeName | string, value: NameValue): ValueScopeName {\n if (value.ref === undefined) throw new Error(\"CodeGen: ref must be passed in value\")\n const name = this.toName(nameOrPrefix) as ValueScopeName\n const {prefix} = name\n const valueKey = value.key ?? value.ref\n let vs = this._values[prefix]\n if (vs) {\n const _name = vs.get(valueKey)\n if (_name) return _name\n } else {\n vs = this._values[prefix] = new Map()\n }\n vs.set(valueKey, name)\n\n const s = this._scope[prefix] || (this._scope[prefix] = [])\n const itemIndex = s.length\n s[itemIndex] = value.ref\n name.setValue(value, {property: prefix, itemIndex})\n return name\n }\n\n getValue(prefix: string, keyOrRef: unknown): ValueScopeName | undefined {\n const vs = this._values[prefix]\n if (!vs) return\n return vs.get(keyOrRef)\n }\n\n scopeRefs(scopeName: Name, values: ScopeValues | ScopeValueSets = this._values): Code {\n return this._reduceValues(values, (name: ValueScopeName) => {\n if (name.scopePath === undefined) throw new Error(`CodeGen: name \"${name}\" has no value`)\n return _`${scopeName}${name.scopePath}`\n })\n }\n\n scopeCode(\n values: ScopeValues | ScopeValueSets = this._values,\n usedValues?: UsedScopeValues,\n getCode?: (n: ValueScopeName) => Code | undefined\n ): Code {\n return this._reduceValues(\n values,\n (name: ValueScopeName) => {\n if (name.value === undefined) throw new Error(`CodeGen: name \"${name}\" has no value`)\n return name.value.code\n },\n usedValues,\n getCode\n )\n }\n\n private _reduceValues(\n values: ScopeValues | ScopeValueSets,\n valueCode: (n: ValueScopeName) => Code | undefined,\n usedValues: UsedScopeValues = {},\n getCode?: (n: ValueScopeName) => Code | undefined\n ): Code {\n let code: Code = nil\n for (const prefix in values) {\n const vs = values[prefix]\n if (!vs) continue\n const nameSet = (usedValues[prefix] = usedValues[prefix] || new Map())\n vs.forEach((name: ValueScopeName) => {\n if (nameSet.has(name)) return\n nameSet.set(name, UsedValueState.Started)\n let c = valueCode(name)\n if (c) {\n const def = this.opts.es5 ? varKinds.var : varKinds.const\n code = _`${code}${def} ${name} = ${c};${this.opts._n}`\n } else if ((c = getCode?.(name))) {\n code = _`${code}${c}${this.opts._n}`\n } else {\n throw new ValueError(name)\n }\n nameSet.set(name, UsedValueState.Completed)\n })\n }\n return code\n }\n}\n","import type {ScopeValueSets, NameValue, ValueScope, ValueScopeName} from \"./scope\"\nimport {_, nil, _Code, Code, Name, UsedNames, CodeItem, addCodeArg, _CodeOrName} from \"./code\"\nimport {Scope, varKinds} from \"./scope\"\n\nexport {_, str, strConcat, nil, getProperty, stringify, regexpCode, Name, Code} from \"./code\"\nexport {Scope, ScopeStore, ValueScope, ValueScopeName, ScopeValueSets, varKinds} from \"./scope\"\n\n// type for expressions that can be safely inserted in code without quotes\nexport type SafeExpr = Code | number | boolean | null\n\n// type that is either Code of function that adds code to CodeGen instance using its methods\nexport type Block = Code | (() => void)\n\nexport const operators = {\n GT: new _Code(\">\"),\n GTE: new _Code(\">=\"),\n LT: new _Code(\"<\"),\n LTE: new _Code(\"<=\"),\n EQ: new _Code(\"===\"),\n NEQ: new _Code(\"!==\"),\n NOT: new _Code(\"!\"),\n OR: new _Code(\"||\"),\n AND: new _Code(\"&&\"),\n ADD: new _Code(\"+\"),\n}\n\nabstract class Node {\n abstract readonly names: UsedNames\n\n optimizeNodes(): this | ChildNode | ChildNode[] | undefined {\n return this\n }\n\n optimizeNames(_names: UsedNames, _constants: Constants): this | undefined {\n return this\n }\n\n // get count(): number {\n // return 1\n // }\n}\n\nclass Def extends Node {\n constructor(\n private readonly varKind: Name,\n private readonly name: Name,\n private rhs?: SafeExpr\n ) {\n super()\n }\n\n render({es5, _n}: CGOptions): string {\n const varKind = es5 ? varKinds.var : this.varKind\n const rhs = this.rhs === undefined ? \"\" : ` = ${this.rhs}`\n return `${varKind} ${this.name}${rhs};` + _n\n }\n\n optimizeNames(names: UsedNames, constants: Constants): this | undefined {\n if (!names[this.name.str]) return\n if (this.rhs) this.rhs = optimizeExpr(this.rhs, names, constants)\n return this\n }\n\n get names(): UsedNames {\n return this.rhs instanceof _CodeOrName ? this.rhs.names : {}\n }\n}\n\nclass Assign extends Node {\n constructor(\n readonly lhs: Code,\n public rhs: SafeExpr,\n private readonly sideEffects?: boolean\n ) {\n super()\n }\n\n render({_n}: CGOptions): string {\n return `${this.lhs} = ${this.rhs};` + _n\n }\n\n optimizeNames(names: UsedNames, constants: Constants): this | undefined {\n if (this.lhs instanceof Name && !names[this.lhs.str] && !this.sideEffects) return\n this.rhs = optimizeExpr(this.rhs, names, constants)\n return this\n }\n\n get names(): UsedNames {\n const names = this.lhs instanceof Name ? {} : {...this.lhs.names}\n return addExprNames(names, this.rhs)\n }\n}\n\nclass AssignOp extends Assign {\n constructor(\n lhs: Code,\n private readonly op: Code,\n rhs: SafeExpr,\n sideEffects?: boolean\n ) {\n super(lhs, rhs, sideEffects)\n }\n\n render({_n}: CGOptions): string {\n return `${this.lhs} ${this.op}= ${this.rhs};` + _n\n }\n}\n\nclass Label extends Node {\n readonly names: UsedNames = {}\n constructor(readonly label: Name) {\n super()\n }\n\n render({_n}: CGOptions): string {\n return `${this.label}:` + _n\n }\n}\n\nclass Break extends Node {\n readonly names: UsedNames = {}\n constructor(readonly label?: Code) {\n super()\n }\n\n render({_n}: CGOptions): string {\n const label = this.label ? ` ${this.label}` : \"\"\n return `break${label};` + _n\n }\n}\n\nclass Throw extends Node {\n constructor(readonly error: Code) {\n super()\n }\n\n render({_n}: CGOptions): string {\n return `throw ${this.error};` + _n\n }\n\n get names(): UsedNames {\n return this.error.names\n }\n}\n\nclass AnyCode extends Node {\n constructor(private code: SafeExpr) {\n super()\n }\n\n render({_n}: CGOptions): string {\n return `${this.code};` + _n\n }\n\n optimizeNodes(): this | undefined {\n return `${this.code}` ? this : undefined\n }\n\n optimizeNames(names: UsedNames, constants: Constants): this {\n this.code = optimizeExpr(this.code, names, constants)\n return this\n }\n\n get names(): UsedNames {\n return this.code instanceof _CodeOrName ? this.code.names : {}\n }\n}\n\nabstract class ParentNode extends Node {\n constructor(readonly nodes: ChildNode[] = []) {\n super()\n }\n\n render(opts: CGOptions): string {\n return this.nodes.reduce((code, n) => code + n.render(opts), \"\")\n }\n\n optimizeNodes(): this | ChildNode | ChildNode[] | undefined {\n const {nodes} = this\n let i = nodes.length\n while (i--) {\n const n = nodes[i].optimizeNodes()\n if (Array.isArray(n)) nodes.splice(i, 1, ...n)\n else if (n) nodes[i] = n\n else nodes.splice(i, 1)\n }\n return nodes.length > 0 ? this : undefined\n }\n\n optimizeNames(names: UsedNames, constants: Constants): this | undefined {\n const {nodes} = this\n let i = nodes.length\n while (i--) {\n // iterating backwards improves 1-pass optimization\n const n = nodes[i]\n if (n.optimizeNames(names, constants)) continue\n subtractNames(names, n.names)\n nodes.splice(i, 1)\n }\n return nodes.length > 0 ? this : undefined\n }\n\n get names(): UsedNames {\n return this.nodes.reduce((names: UsedNames, n) => addNames(names, n.names), {})\n }\n\n // get count(): number {\n // return this.nodes.reduce((c, n) => c + n.count, 1)\n // }\n}\n\nabstract class BlockNode extends ParentNode {\n render(opts: CGOptions): string {\n return \"{\" + opts._n + super.render(opts) + \"}\" + opts._n\n }\n}\n\nclass Root extends ParentNode {}\n\nclass Else extends BlockNode {\n static readonly kind = \"else\"\n}\n\nclass If extends BlockNode {\n static readonly kind = \"if\"\n else?: If | Else\n constructor(\n private condition: Code | boolean,\n nodes?: ChildNode[]\n ) {\n super(nodes)\n }\n\n render(opts: CGOptions): string {\n let code = `if(${this.condition})` + super.render(opts)\n if (this.else) code += \"else \" + this.else.render(opts)\n return code\n }\n\n optimizeNodes(): If | ChildNode[] | undefined {\n super.optimizeNodes()\n const cond = this.condition\n if (cond === true) return this.nodes // else is ignored here\n let e = this.else\n if (e) {\n const ns = e.optimizeNodes()\n e = this.else = Array.isArray(ns) ? new Else(ns) : (ns as Else | undefined)\n }\n if (e) {\n if (cond === false) return e instanceof If ? e : e.nodes\n if (this.nodes.length) return this\n return new If(not(cond), e instanceof If ? [e] : e.nodes)\n }\n if (cond === false || !this.nodes.length) return undefined\n return this\n }\n\n optimizeNames(names: UsedNames, constants: Constants): this | undefined {\n this.else = this.else?.optimizeNames(names, constants)\n if (!(super.optimizeNames(names, constants) || this.else)) return\n this.condition = optimizeExpr(this.condition, names, constants)\n return this\n }\n\n get names(): UsedNames {\n const names = super.names\n addExprNames(names, this.condition)\n if (this.else) addNames(names, this.else.names)\n return names\n }\n\n // get count(): number {\n // return super.count + (this.else?.count || 0)\n // }\n}\n\nabstract class For extends BlockNode {\n static readonly kind = \"for\"\n}\n\nclass ForLoop extends For {\n constructor(private iteration: Code) {\n super()\n }\n\n render(opts: CGOptions): string {\n return `for(${this.iteration})` + super.render(opts)\n }\n\n optimizeNames(names: UsedNames, constants: Constants): this | undefined {\n if (!super.optimizeNames(names, constants)) return\n this.iteration = optimizeExpr(this.iteration, names, constants)\n return this\n }\n\n get names(): UsedNames {\n return addNames(super.names, this.iteration.names)\n }\n}\n\nclass ForRange extends For {\n constructor(\n private readonly varKind: Name,\n private readonly name: Name,\n private readonly from: SafeExpr,\n private readonly to: SafeExpr\n ) {\n super()\n }\n\n render(opts: CGOptions): string {\n const varKind = opts.es5 ? varKinds.var : this.varKind\n const {name, from, to} = this\n return `for(${varKind} ${name}=${from}; ${name}<${to}; ${name}++)` + super.render(opts)\n }\n\n get names(): UsedNames {\n const names = addExprNames(super.names, this.from)\n return addExprNames(names, this.to)\n }\n}\n\nclass ForIter extends For {\n constructor(\n private readonly loop: \"of\" | \"in\",\n private readonly varKind: Name,\n private readonly name: Name,\n private iterable: Code\n ) {\n super()\n }\n\n render(opts: CGOptions): string {\n return `for(${this.varKind} ${this.name} ${this.loop} ${this.iterable})` + super.render(opts)\n }\n\n optimizeNames(names: UsedNames, constants: Constants): this | undefined {\n if (!super.optimizeNames(names, constants)) return\n this.iterable = optimizeExpr(this.iterable, names, constants)\n return this\n }\n\n get names(): UsedNames {\n return addNames(super.names, this.iterable.names)\n }\n}\n\nclass Func extends BlockNode {\n static readonly kind = \"func\"\n constructor(\n public name: Name,\n public args: Code,\n public async?: boolean\n ) {\n super()\n }\n\n render(opts: CGOptions): string {\n const _async = this.async ? \"async \" : \"\"\n return `${_async}function ${this.name}(${this.args})` + super.render(opts)\n }\n}\n\nclass Return extends ParentNode {\n static readonly kind = \"return\"\n\n render(opts: CGOptions): string {\n return \"return \" + super.render(opts)\n }\n}\n\nclass Try extends BlockNode {\n catch?: Catch\n finally?: Finally\n\n render(opts: CGOptions): string {\n let code = \"try\" + super.render(opts)\n if (this.catch) code += this.catch.render(opts)\n if (this.finally) code += this.finally.render(opts)\n return code\n }\n\n optimizeNodes(): this {\n super.optimizeNodes()\n this.catch?.optimizeNodes() as Catch | undefined\n this.finally?.optimizeNodes() as Finally | undefined\n return this\n }\n\n optimizeNames(names: UsedNames, constants: Constants): this {\n super.optimizeNames(names, constants)\n this.catch?.optimizeNames(names, constants)\n this.finally?.optimizeNames(names, constants)\n return this\n }\n\n get names(): UsedNames {\n const names = super.names\n if (this.catch) addNames(names, this.catch.names)\n if (this.finally) addNames(names, this.finally.names)\n return names\n }\n\n // get count(): number {\n // return super.count + (this.catch?.count || 0) + (this.finally?.count || 0)\n // }\n}\n\nclass Catch extends BlockNode {\n static readonly kind = \"catch\"\n constructor(readonly error: Name) {\n super()\n }\n\n render(opts: CGOptions): string {\n return `catch(${this.error})` + super.render(opts)\n }\n}\n\nclass Finally extends BlockNode {\n static readonly kind = \"finally\"\n render(opts: CGOptions): string {\n return \"finally\" + super.render(opts)\n }\n}\n\ntype StartBlockNode = If | For | Func | Return | Try\n\ntype LeafNode = Def | Assign | Label | Break | Throw | AnyCode\n\ntype ChildNode = StartBlockNode | LeafNode\n\ntype EndBlockNodeType =\n | typeof If\n | typeof Else\n | typeof For\n | typeof Func\n | typeof Return\n | typeof Catch\n | typeof Finally\n\ntype Constants = Record<string, SafeExpr | undefined>\n\nexport interface CodeGenOptions {\n es5?: boolean\n lines?: boolean\n ownProperties?: boolean\n}\n\ninterface CGOptions extends CodeGenOptions {\n _n: \"\\n\" | \"\"\n}\n\nexport class CodeGen {\n readonly _scope: Scope\n readonly _extScope: ValueScope\n readonly _values: ScopeValueSets = {}\n private readonly _nodes: ParentNode[]\n private readonly _blockStarts: number[] = []\n private readonly _constants: Constants = {}\n private readonly opts: CGOptions\n\n constructor(extScope: ValueScope, opts: CodeGenOptions = {}) {\n this.opts = {...opts, _n: opts.lines ? \"\\n\" : \"\"}\n this._extScope = extScope\n this._scope = new Scope({parent: extScope})\n this._nodes = [new Root()]\n }\n\n toString(): string {\n return this._root.render(this.opts)\n }\n\n // returns unique name in the internal scope\n name(prefix: string): Name {\n return this._scope.name(prefix)\n }\n\n // reserves unique name in the external scope\n scopeName(prefix: string): ValueScopeName {\n return this._extScope.name(prefix)\n }\n\n // reserves unique name in the external scope and assigns value to it\n scopeValue(prefixOrName: ValueScopeName | string, value: NameValue): Name {\n const name = this._extScope.value(prefixOrName, value)\n const vs = this._values[name.prefix] || (this._values[name.prefix] = new Set())\n vs.add(name)\n return name\n }\n\n getScopeValue(prefix: string, keyOrRef: unknown): ValueScopeName | undefined {\n return this._extScope.getValue(prefix, keyOrRef)\n }\n\n // return code that assigns values in the external scope to the names that are used internally\n // (same names that were returned by gen.scopeName or gen.scopeValue)\n scopeRefs(scopeName: Name): Code {\n return this._extScope.scopeRefs(scopeName, this._values)\n }\n\n scopeCode(): Code {\n return this._extScope.scopeCode(this._values)\n }\n\n private _def(\n varKind: Name,\n nameOrPrefix: Name | string,\n rhs?: SafeExpr,\n constant?: boolean\n ): Name {\n const name = this._scope.toName(nameOrPrefix)\n if (rhs !== undefined && constant) this._constants[name.str] = rhs\n this._leafNode(new Def(varKind, name, rhs))\n return name\n }\n\n // `const` declaration (`var` in es5 mode)\n const(nameOrPrefix: Name | string, rhs: SafeExpr, _constant?: boolean): Name {\n return this._def(varKinds.const, nameOrPrefix, rhs, _constant)\n }\n\n // `let` declaration with optional assignment (`var` in es5 mode)\n let(nameOrPrefix: Name | string, rhs?: SafeExpr, _constant?: boolean): Name {\n return this._def(varKinds.let, nameOrPrefix, rhs, _constant)\n }\n\n // `var` declaration with optional assignment\n var(nameOrPrefix: Name | string, rhs?: SafeExpr, _constant?: boolean): Name {\n return this._def(varKinds.var, nameOrPrefix, rhs, _constant)\n }\n\n // assignment code\n assign(lhs: Code, rhs: SafeExpr, sideEffects?: boolean): CodeGen {\n return this._leafNode(new Assign(lhs, rhs, sideEffects))\n }\n\n // `+=` code\n add(lhs: Code, rhs: SafeExpr): CodeGen {\n return this._leafNode(new AssignOp(lhs, operators.ADD, rhs))\n }\n\n // appends passed SafeExpr to code or executes Block\n code(c: Block | SafeExpr): CodeGen {\n if (typeof c == \"function\") c()\n else if (c !== nil) this._leafNode(new AnyCode(c))\n return this\n }\n\n // returns code for object literal for the passed argument list of key-value pairs\n object(...keyValues: [Name | string, SafeExpr | string][]): _Code {\n const code: CodeItem[] = [\"{\"]\n for (const [key, value] of keyValues) {\n if (code.length > 1) code.push(\",\")\n code.push(key)\n if (key !== value || this.opts.es5) {\n code.push(\":\")\n addCodeArg(code, value)\n }\n }\n code.push(\"}\")\n return new _Code(code)\n }\n\n // `if` clause (or statement if `thenBody` and, optionally, `elseBody` are passed)\n if(condition: Code | boolean, thenBody?: Block, elseBody?: Block): CodeGen {\n this._blockNode(new If(condition))\n\n if (thenBody && elseBody) {\n this.code(thenBody).else().code(elseBody).endIf()\n } else if (thenBody) {\n this.code(thenBody).endIf()\n } else if (elseBody) {\n throw new Error('CodeGen: \"else\" body without \"then\" body')\n }\n return this\n }\n\n // `else if` clause - invalid without `if` or after `else` clauses\n elseIf(condition: Code | boolean): CodeGen {\n return this._elseNode(new If(condition))\n }\n\n // `else` clause - only valid after `if` or `else if` clauses\n else(): CodeGen {\n return this._elseNode(new Else())\n }\n\n // end `if` statement (needed if gen.if was used only with condition)\n endIf(): CodeGen {\n return this._endBlockNode(If, Else)\n }\n\n private _for(node: For, forBody?: Block): CodeGen {\n this._blockNode(node)\n if (forBody) this.code(forBody).endFor()\n return this\n }\n\n // a generic `for` clause (or statement if `forBody` is passed)\n for(iteration: Code, forBody?: Block): CodeGen {\n return this._for(new ForLoop(iteration), forBody)\n }\n\n // `for` statement for a range of values\n forRange(\n nameOrPrefix: Name | string,\n from: SafeExpr,\n to: SafeExpr,\n forBody: (index: Name) => void,\n varKind: Code = this.opts.es5 ? varKinds.var : varKinds.let\n ): CodeGen {\n const name = this._scope.toName(nameOrPrefix)\n return this._for(new ForRange(varKind, name, from, to), () => forBody(name))\n }\n\n // `for-of` statement (in es5 mode replace with a normal for loop)\n forOf(\n nameOrPrefix: Name | string,\n iterable: Code,\n forBody: (item: Name) => void,\n varKind: Code = varKinds.const\n ): CodeGen {\n const name = this._scope.toName(nameOrPrefix)\n if (this.opts.es5) {\n const arr = iterable instanceof Name ? iterable : this.var(\"_arr\", iterable)\n return this.forRange(\"_i\", 0, _`${arr}.length`, (i) => {\n this.var(name, _`${arr}[${i}]`)\n forBody(name)\n })\n }\n return this._for(new ForIter(\"of\", varKind, name, iterable), () => forBody(name))\n }\n\n // `for-in` statement.\n // With option `ownProperties` replaced with a `for-of` loop for object keys\n forIn(\n nameOrPrefix: Name | string,\n obj: Code,\n forBody: (item: Name) => void,\n varKind: Code = this.opts.es5 ? varKinds.var : varKinds.const\n ): CodeGen {\n if (this.opts.ownProperties) {\n return this.forOf(nameOrPrefix, _`Object.keys(${obj})`, forBody)\n }\n const name = this._scope.toName(nameOrPrefix)\n return this._for(new ForIter(\"in\", varKind, name, obj), () => forBody(name))\n }\n\n // end `for` loop\n endFor(): CodeGen {\n return this._endBlockNode(For)\n }\n\n // `label` statement\n label(label: Name): CodeGen {\n return this._leafNode(new Label(label))\n }\n\n // `break` statement\n break(label?: Code): CodeGen {\n return this._leafNode(new Break(label))\n }\n\n // `return` statement\n return(value: Block | SafeExpr): CodeGen {\n const node = new Return()\n this._blockNode(node)\n this.code(value)\n if (node.nodes.length !== 1) throw new Error('CodeGen: \"return\" should have one node')\n return this._endBlockNode(Return)\n }\n\n // `try` statement\n try(tryBody: Block, catchCode?: (e: Name) => void, finallyCode?: Block): CodeGen {\n if (!catchCode && !finallyCode) throw new Error('CodeGen: \"try\" without \"catch\" and \"finally\"')\n const node = new Try()\n this._blockNode(node)\n this.code(tryBody)\n if (catchCode) {\n const error = this.name(\"e\")\n this._currNode = node.catch = new Catch(error)\n catchCode(error)\n }\n if (finallyCode) {\n this._currNode = node.finally = new Finally()\n this.code(finallyCode)\n }\n return this._endBlockNode(Catch, Finally)\n }\n\n // `throw` statement\n throw(error: Code): CodeGen {\n return this._leafNode(new Throw(error))\n }\n\n // start self-balancing block\n block(body?: Block, nodeCount?: number): CodeGen {\n this._blockStarts.push(this._nodes.length)\n if (body) this.code(body).endBlock(nodeCount)\n return this\n }\n\n // end the current self-balancing block\n endBlock(nodeCount?: number): CodeGen {\n const len = this._blockStarts.pop()\n if (len === undefined) throw new Error(\"CodeGen: not in self-balancing block\")\n const toClose = this._nodes.length - len\n if (toClose < 0 || (nodeCount !== undefined && toClose !== nodeCount)) {\n throw new Error(`CodeGen: wrong number of nodes: ${toClose} vs ${nodeCount} expected`)\n }\n this._nodes.length = len\n return this\n }\n\n // `function` heading (or definition if funcBody is passed)\n func(name: Name, args: Code = nil, async?: boolean, funcBody?: Block): CodeGen {\n this._blockNode(new Func(name, args, async))\n if (funcBody) this.code(funcBody).endFunc()\n return this\n }\n\n // end function definition\n endFunc(): CodeGen {\n return this._endBlockNode(Func)\n }\n\n optimize(n = 1): void {\n while (n-- > 0) {\n this._root.optimizeNodes()\n this._root.optimizeNames(this._root.names, this._constants)\n }\n }\n\n private _leafNode(node: LeafNode): CodeGen {\n this._currNode.nodes.push(node)\n return this\n }\n\n private _blockNode(node: StartBlockNode): void {\n this._currNode.nodes.push(node)\n this._nodes.push(node)\n }\n\n private _endBlockNode(N1: EndBlockNodeType, N2?: EndBlockNodeType): CodeGen {\n const n = this._currNode\n if (n instanceof N1 || (N2 && n instanceof N2)) {\n this._nodes.pop()\n return this\n }\n throw new Error(`CodeGen: not in block \"${N2 ? `${N1.kind}/${N2.kind}` : N1.kind}\"`)\n }\n\n private _elseNode(node: If | Else): CodeGen {\n const n = this._currNode\n if (!(n instanceof If)) {\n throw new Error('CodeGen: \"else\" without \"if\"')\n }\n this._currNode = n.else = node\n return this\n }\n\n private get _root(): Root {\n return this._nodes[0] as Root\n }\n\n private get _currNode(): ParentNode {\n const ns = this._nodes\n return ns[ns.length - 1]\n }\n\n private set _currNode(node: ParentNode) {\n const ns = this._nodes\n ns[ns.length - 1] = node\n }\n\n // get nodeCount(): number {\n // return this._root.count\n // }\n}\n\nfunction addNames(names: UsedNames, from: UsedNames): UsedNames {\n for (const n in from) names[n] = (names[n] || 0) + (from[n] || 0)\n return names\n}\n\nfunction addExprNames(names: UsedNames, from: SafeExpr): UsedNames {\n return from instanceof _CodeOrName ? addNames(names, from.names) : names\n}\n\nfunction optimizeExpr<T extends SafeExpr | Code>(expr: T, names: UsedNames, constants: Constants): T\nfunction optimizeExpr(expr: SafeExpr, names: UsedNames, constants: Constants): SafeExpr {\n if (expr instanceof Name) return replaceName(expr)\n if (!canOptimize(expr)) return expr\n return new _Code(\n expr._items.reduce((items: CodeItem[], c: SafeExpr | string) => {\n if (c instanceof Name) c = replaceName(c)\n if (c instanceof _Code) items.push(...c._items)\n else items.push(c)\n return items\n }, [])\n )\n\n function replaceName(n: Name): SafeExpr {\n const c = constants[n.str]\n if (c === undefined || names[n.str] !== 1) return n\n delete names[n.str]\n return c\n }\n\n function canOptimize(e: SafeExpr): e is _Code {\n return (\n e instanceof _Code &&\n e._items.some(\n (c) => c instanceof Name && names[c.str] === 1 && constants[c.str] !== undefined\n )\n )\n }\n}\n\nfunction subtractNames(names: UsedNames, from: UsedNames): void {\n for (const n in from) names[n] = (names[n] || 0) - (from[n] || 0)\n}\n\nexport function not<T extends Code | SafeExpr>(x: T): T\nexport function not(x: Code | SafeExpr): Code | SafeExpr {\n return typeof x == \"boolean\" || typeof x == \"number\" || x === null ? !x : _`!${par(x)}`\n}\n\nconst andCode = mappend(operators.AND)\n\n// boolean AND (&&) expression with the passed arguments\nexport function and(...args: Code[]): Code {\n return args.reduce(andCode)\n}\n\nconst orCode = mappend(operators.OR)\n\n// boolean OR (||) expression with the passed arguments\nexport function or(...args: Code[]): Code {\n return args.reduce(orCode)\n}\n\ntype MAppend = (x: Code, y: Code) => Code\n\nfunction mappend(op: Code): MAppend {\n return (x, y) => (x === nil ? y : y === nil ? x : _`${par(x)} ${op} ${par(y)}`)\n}\n\nfunction par(x: Code): Code {\n return x instanceof Name ? x : _`(${x})`\n}\n","import type {AnySchema, EvaluatedProperties, EvaluatedItems} from \"../types\"\nimport type {SchemaCxt, SchemaObjCxt} from \".\"\nimport {_, getProperty, Code, Name, CodeGen} from \"./codegen\"\nimport {_Code} from \"./codegen/code\"\nimport type {Rule, ValidationRules} from \"./rules\"\n\n// TODO refactor to use Set\nexport function toHash<T extends string = string>(arr: T[]): {[K in T]?: true} {\n const hash: {[K in T]?: true} = {}\n for (const item of arr) hash[item] = true\n return hash\n}\n\nexport function alwaysValidSchema(it: SchemaCxt, schema: AnySchema): boolean | void {\n if (typeof schema == \"boolean\") return schema\n if (Object.keys(schema).length === 0) return true\n checkUnknownRules(it, schema)\n return !schemaHasRules(schema, it.self.RULES.all)\n}\n\nexport function checkUnknownRules(it: SchemaCxt, schema: AnySchema = it.schema): void {\n const {opts, self} = it\n if (!opts.strictSchema) return\n if (typeof schema === \"boolean\") return\n const rules = self.RULES.keywords\n for (const key in schema) {\n if (!rules[key]) checkStrictMode(it, `unknown keyword: \"${key}\"`)\n }\n}\n\nexport function schemaHasRules(\n schema: AnySchema,\n rules: {[Key in string]?: boolean | Rule}\n): boolean {\n if (typeof schema == \"boolean\") return !schema\n for (const key in schema) if (rules[key]) return true\n return false\n}\n\nexport function schemaHasRulesButRef(schema: AnySchema, RULES: ValidationRules): boolean {\n if (typeof schema == \"boolean\") return !schema\n for (const key in schema) if (key !== \"$ref\" && RULES.all[key]) return true\n return false\n}\n\nexport function schemaRefOrVal(\n {topSchemaRef, schemaPath}: SchemaObjCxt,\n schema: unknown,\n keyword: string,\n $data?: string | false\n): Code | number | boolean {\n if (!$data) {\n if (typeof schema == \"number\" || typeof schema == \"boolean\") return schema\n if (typeof schema == \"string\") return _`${schema}`\n }\n return _`${topSchemaRef}${schemaPath}${getProperty(keyword)}`\n}\n\nexport function unescapeFragment(str: string): string {\n return unescapeJsonPointer(decodeURIComponent(str))\n}\n\nexport function escapeFragment(str: string | number): string {\n return encodeURIComponent(escapeJsonPointer(str))\n}\n\nexport function escapeJsonPointer(str: string | number): string {\n if (typeof str == \"number\") return `${str}`\n return str.replace(/~/g, \"~0\").replace(/\\//g, \"~1\")\n}\n\nexport function unescapeJsonPointer(str: string): string {\n return str.replace(/~1/g, \"/\").replace(/~0/g, \"~\")\n}\n\nexport function eachItem<T>(xs: T | T[], f: (x: T) => void): void {\n if (Array.isArray(xs)) {\n for (const x of xs) f(x)\n } else {\n f(xs)\n }\n}\n\ntype SomeEvaluated = EvaluatedProperties | EvaluatedItems\n\ntype MergeEvaluatedFunc<T extends SomeEvaluated> = (\n gen: CodeGen,\n from: Name | T,\n to: Name | Exclude<T, true> | undefined,\n toName?: typeof Name\n) => Name | T\n\ninterface MakeMergeFuncArgs<T extends SomeEvaluated> {\n mergeNames: (gen: CodeGen, from: Name, to: Name) => void\n mergeToName: (gen: CodeGen, from: T, to: Name) => void\n mergeValues: (from: T, to: Exclude<T, true>) => T\n resultToName: (gen: CodeGen, res?: T) => Name\n}\n\nfunction makeMergeEvaluated<T extends SomeEvaluated>({\n mergeNames,\n mergeToName,\n mergeValues,\n resultToName,\n}: MakeMergeFuncArgs<T>): MergeEvaluatedFunc<T> {\n return (gen, from, to, toName) => {\n const res =\n to === undefined\n ? from\n : to instanceof Name\n ? (from instanceof Name ? mergeNames(gen, from, to) : mergeToName(gen, from, to), to)\n : from instanceof Name\n ? (mergeToName(gen, to, from), from)\n : mergeValues(from, to)\n return toName === Name && !(res instanceof Name) ? resultToName(gen, res) : res\n }\n}\n\ninterface MergeEvaluated {\n props: MergeEvaluatedFunc<EvaluatedProperties>\n items: MergeEvaluatedFunc<EvaluatedItems>\n}\n\nexport const mergeEvaluated: MergeEvaluated = {\n props: makeMergeEvaluated({\n mergeNames: (gen, from, to) =>\n gen.if(_`${to} !== true && ${from} !== undefined`, () => {\n gen.if(\n _`${from} === true`,\n () => gen.assign(to, true),\n () => gen.assign(to, _`${to} || {}`).code(_`Object.assign(${to}, ${from})`)\n )\n }),\n mergeToName: (gen, from, to) =>\n gen.if(_`${to} !== true`, () => {\n if (from === true) {\n gen.assign(to, true)\n } else {\n gen.assign(to, _`${to} || {}`)\n setEvaluated(gen, to, from)\n }\n }),\n mergeValues: (from, to) => (from === true ? true : {...from, ...to}),\n resultToName: evaluatedPropsToName,\n }),\n items: makeMergeEvaluated({\n mergeNames: (gen, from, to) =>\n gen.if(_`${to} !== true && ${from} !== undefined`, () =>\n gen.assign(to, _`${from} === true ? true : ${to} > ${from} ? ${to} : ${from}`)\n ),\n mergeToName: (gen, from, to) =>\n gen.if(_`${to} !== true`, () =>\n gen.assign(to, from === true ? true : _`${to} > ${from} ? ${to} : ${from}`)\n ),\n mergeValues: (from, to) => (from === true ? true : Math.max(from, to)),\n resultToName: (gen, items) => gen.var(\"items\", items),\n }),\n}\n\nexport function evaluatedPropsToName(gen: CodeGen, ps?: EvaluatedProperties): Name {\n if (ps === true) return gen.var(\"props\", true)\n const props = gen.var(\"props\", _`{}`)\n if (ps !== undefined) setEvaluated(gen, props, ps)\n return props\n}\n\nexport function setEvaluated(gen: CodeGen, props: Name, ps: {[K in string]?: true}): void {\n Object.keys(ps).forEach((p) => gen.assign(_`${props}${getProperty(p)}`, true))\n}\n\nconst snippets: {[S in string]?: _Code} = {}\n\nexport function useFunc(gen: CodeGen, f: {code: string}): Name {\n return gen.scopeValue(\"func\", {\n ref: f,\n code: snippets[f.code] || (snippets[f.code] = new _Code(f.code)),\n })\n}\n\nexport enum Type {\n Num,\n Str,\n}\n\nexport function getErrorPath(\n dataProp: Name | string | number,\n dataPropType?: Type,\n jsPropertySyntax?: boolean\n): Code | string {\n // let path\n if (dataProp instanceof Name) {\n const isNumber = dataPropType === Type.Num\n return jsPropertySyntax\n ? isNumber\n ? _`\"[\" + ${dataProp} + \"]\"`\n : _`\"['\" + ${dataProp} + \"']\"`\n : isNumber\n ? _`\"/\" + ${dataProp}`\n : _`\"/\" + ${dataProp}.replace(/~/g, \"~0\").replace(/\\\\//g, \"~1\")` // TODO maybe use global escapePointer\n }\n return jsPropertySyntax ? getProperty(dataProp).toString() : \"/\" + escapeJsonPointer(dataProp)\n}\n\nexport function checkStrictMode(\n it: SchemaCxt,\n msg: string,\n mode: boolean | \"log\" = it.opts.strictSchema\n): void {\n if (!mode) return\n msg = `strict mode: ${msg}`\n if (mode === true) throw new Error(msg)\n it.self.logger.warn(msg)\n}\n","import {Name} from \"./codegen\"\n\nconst names = {\n // validation function arguments\n data: new Name(\"data\"), // data passed to validation function\n // args passed from referencing schema\n valCxt: new Name(\"valCxt\"), // validation/data context - should not be used directly, it is destructured to the names below\n instancePath: new Name(\"instancePath\"),\n parentData: new Name(\"parentData\"),\n parentDataProperty: new Name(\"parentDataProperty\"),\n rootData: new Name(\"rootData\"), // root data - same as the data passed to the first/top validation function\n dynamicAnchors: new Name(\"dynamicAnchors\"), // used to support recursiveRef and dynamicRef\n // function scoped variables\n vErrors: new Name(\"vErrors\"), // null or array of validation errors\n errors: new Name(\"errors\"), // counter of validation errors\n this: new Name(\"this\"),\n // \"globals\"\n self: new Name(\"self\"),\n scope: new Name(\"scope\"),\n // JTD serialize/parse name for JSON string and position\n json: new Name(\"json\"),\n jsonPos: new Name(\"jsonPos\"),\n jsonLen: new Name(\"jsonLen\"),\n jsonPart: new Name(\"jsonPart\"),\n}\n\nexport default names\n","import type {KeywordErrorCxt, KeywordErrorDefinition} from \"../types\"\nimport type {SchemaCxt} from \"./index\"\nimport {CodeGen, _, str, strConcat, Code, Name} from \"./codegen\"\nimport {SafeExpr} from \"./codegen/code\"\nimport {getErrorPath, Type} from \"./util\"\nimport N from \"./names\"\n\nexport const keywordError: KeywordErrorDefinition = {\n message: ({keyword}) => str`must pass \"${keyword}\" keyword validation`,\n}\n\nexport const keyword$DataError: KeywordErrorDefinition = {\n message: ({keyword, schemaType}) =>\n schemaType\n ? str`\"${keyword}\" keyword must be ${schemaType} ($data)`\n : str`\"${keyword}\" keyword is invalid ($data)`,\n}\n\nexport interface ErrorPaths {\n instancePath?: Code\n schemaPath?: string\n parentSchema?: boolean\n}\n\nexport function reportError(\n cxt: KeywordErrorCxt,\n error: KeywordErrorDefinition = keywordError,\n errorPaths?: ErrorPaths,\n overrideAllErrors?: boolean\n): void {\n const {it} = cxt\n const {gen, compositeRule, allErrors} = it\n const errObj = errorObjectCode(cxt, error, errorPaths)\n if (overrideAllErrors ?? (compositeRule || allErrors)) {\n addError(gen, errObj)\n } else {\n returnErrors(it, _`[${errObj}]`)\n }\n}\n\nexport function reportExtraError(\n cxt: KeywordErrorCxt,\n error: KeywordErrorDefinition = keywordError,\n errorPaths?: ErrorPaths\n): void {\n const {it} = cxt\n const {gen, compositeRule, allErrors} = it\n const errObj = errorObjectCode(cxt, error, errorPaths)\n addError(gen, errObj)\n if (!(compositeRule || allErrors)) {\n returnErrors(it, N.vErrors)\n }\n}\n\nexport function resetErrorsCount(gen: CodeGen, errsCount: Name): void {\n gen.assign(N.errors, errsCount)\n gen.if(_`${N.vErrors} !== null`, () =>\n gen.if(\n errsCount,\n () => gen.assign(_`${N.vErrors}.length`, errsCount),\n () => gen.assign(N.vErrors, null)\n )\n )\n}\n\nexport function extendErrors({\n gen,\n keyword,\n schemaValue,\n data,\n errsCount,\n it,\n}: KeywordErrorCxt): void {\n /* istanbul ignore if */\n if (errsCount === undefined) throw new Error(\"ajv implementation error\")\n const err = gen.name(\"err\")\n gen.forRange(\"i\", errsCount, N.errors, (i) => {\n gen.const(err, _`${N.vErrors}[${i}]`)\n gen.if(_`${err}.instancePath === undefined`, () =>\n gen.assign(_`${err}.instancePath`, strConcat(N.instancePath, it.errorPath))\n )\n gen.assign(_`${err}.schemaPath`, str`${it.errSchemaPath}/${keyword}`)\n if (it.opts.verbose) {\n gen.assign(_`${err}.schema`, schemaValue)\n gen.assign(_`${err}.data`, data)\n }\n })\n}\n\nfunction addError(gen: CodeGen, errObj: Code): void {\n const err = gen.const(\"err\", errObj)\n gen.if(\n _`${N.vErrors} === null`,\n () => gen.assign(N.vErrors, _`[${err}]`),\n _`${N.vErrors}.push(${err})`\n )\n gen.code(_`${N.errors}++`)\n}\n\nfunction returnErrors(it: SchemaCxt, errs: Code): void {\n const {gen, validateName, schemaEnv} = it\n if (schemaEnv.$async) {\n gen.throw(_`new ${it.ValidationError as Name}(${errs})`)\n } else {\n gen.assign(_`${validateName}.errors`, errs)\n gen.return(false)\n }\n}\n\nconst E = {\n keyword: new Name(\"keyword\"),\n schemaPath: new Name(\"schemaPath\"), // also used in JTD errors\n params: new Name(\"params\"),\n propertyName: new Name(\"propertyName\"),\n message: new Name(\"message\"),\n schema: new Name(\"schema\"),\n parentSchema: new Name(\"parentSchema\"),\n}\n\nfunction errorObjectCode(\n cxt: KeywordErrorCxt,\n error: KeywordErrorDefinition,\n errorPaths?: ErrorPaths\n): Code {\n const {createErrors} = cxt.it\n if (createErrors === false) return _`{}`\n return errorObject(cxt, error, errorPaths)\n}\n\nfunction errorObject(\n cxt: KeywordErrorCxt,\n error: KeywordErrorDefinition,\n errorPaths: ErrorPaths = {}\n): Code {\n const {gen, it} = cxt\n const keyValues: [Name, SafeExpr | string][] = [\n errorInstancePath(it, errorPaths),\n errorSchemaPath(cxt, errorPaths),\n ]\n extraErrorProps(cxt, error, keyValues)\n return gen.object(...keyValues)\n}\n\nfunction errorInstancePath({errorPath}: SchemaCxt, {instancePath}: ErrorPaths): [Name, Code] {\n const instPath = instancePath\n ? str`${errorPath}${getErrorPath(instancePath, Type.Str)}`\n : errorPath\n return [N.instancePath, strConcat(N.instancePath, instPath)]\n}\n\nfunction errorSchemaPath(\n {keyword, it: {errSchemaPath}}: KeywordErrorCxt,\n {schemaPath, parentSchema}: ErrorPaths\n): [Name, string | Code] {\n let schPath = parentSchema ? errSchemaPath : str`${errSchemaPath}/${keyword}`\n if (schemaPath) {\n schPath = str`${schPath}${getErrorPath(schemaPath, Type.Str)}`\n }\n return [E.schemaPath, schPath]\n}\n\nfunction extraErrorProps(\n cxt: KeywordErrorCxt,\n {params, message}: KeywordErrorDefinition,\n keyValues: [Name, SafeExpr | string][]\n): void {\n const {keyword, data, schemaValue, it} = cxt\n const {opts, propertyName, topSchemaRef, schemaPath} = it\n keyValues.push(\n [E.keyword, keyword],\n [E.params, typeof params == \"function\" ? params(cxt) : params || _`{}`]\n )\n if (opts.messages) {\n keyValues.push([E.message, typeof message == \"function\" ? message(cxt) : message])\n }\n if (opts.verbose) {\n keyValues.push(\n [E.schema, schemaValue],\n [E.parentSchema, _`${topSchemaRef}${schemaPath}`],\n [N.data, data]\n )\n }\n if (propertyName) keyValues.push([E.propertyName, propertyName])\n}\n","import type {KeywordErrorDefinition, KeywordErrorCxt} from \"../../types\"\nimport type {SchemaCxt} from \"..\"\nimport {reportError} from \"../errors\"\nimport {_, Name} from \"../codegen\"\nimport N from \"../names\"\n\nconst boolError: KeywordErrorDefinition = {\n message: \"boolean schema is false\",\n}\n\nexport function topBoolOrEmptySchema(it: SchemaCxt): void {\n const {gen, schema, validateName} = it\n if (schema === false) {\n falseSchemaError(it, false)\n } else if (typeof schema == \"object\" && schema.$async === true) {\n gen.return(N.data)\n } else {\n gen.assign(_`${validateName}.errors`, null)\n gen.return(true)\n }\n}\n\nexport function boolOrEmptySchema(it: SchemaCxt, valid: Name): void {\n const {gen, schema} = it\n if (schema === false) {\n gen.var(valid, false) // TODO var\n falseSchemaError(it)\n } else {\n gen.var(valid, true) // TODO var\n }\n}\n\nfunction falseSchemaError(it: SchemaCxt, overrideAllErrors?: boolean): void {\n const {gen, data} = it\n // TODO maybe some other interface should be used for non-keyword validation errors...\n const cxt: KeywordErrorCxt = {\n gen,\n keyword: \"false schema\",\n data,\n schema: false,\n schemaCode: false,\n schemaValue: false,\n params: {},\n it,\n }\n reportError(cxt, boolError, undefined, overrideAllErrors)\n}\n","import type {AddedKeywordDefinition} from \"../types\"\n\nconst _jsonTypes = [\"string\", \"number\", \"integer\", \"boolean\", \"null\", \"object\", \"array\"] as const\n\nexport type JSONType = (typeof _jsonTypes)[number]\n\nconst jsonTypes: Set<string> = new Set(_jsonTypes)\n\nexport function isJSONType(x: unknown): x is JSONType {\n return typeof x == \"string\" && jsonTypes.has(x)\n}\n\ntype ValidationTypes = {\n [K in JSONType]: boolean | RuleGroup | undefined\n}\n\nexport interface ValidationRules {\n rules: RuleGroup[]\n post: RuleGroup\n all: {[Key in string]?: boolean | Rule} // rules that have to be validated\n keywords: {[Key in string]?: boolean} // all known keywords (superset of \"all\")\n types: ValidationTypes\n}\n\nexport interface RuleGroup {\n type?: JSONType\n rules: Rule[]\n}\n\n// This interface wraps KeywordDefinition because definition can have multiple keywords\nexport interface Rule {\n keyword: string\n definition: AddedKeywordDefinition\n}\n\nexport function getRules(): ValidationRules {\n const groups: Record<\"number\" | \"string\" | \"array\" | \"object\", RuleGroup> = {\n number: {type: \"number\", rules: []},\n string: {type: \"string\", rules: []},\n array: {type: \"array\", rules: []},\n object: {type: \"object\", rules: []},\n }\n return {\n types: {...groups, integer: true, boolean: true, null: true},\n rules: [{rules: []}, groups.number, groups.string, groups.array, groups.object],\n post: {rules: []},\n all: {},\n keywords: {},\n }\n}\n","import type {AnySchemaObject} from \"../../types\"\nimport type {SchemaObjCxt} from \"..\"\nimport type {JSONType, RuleGroup, Rule} from \"../rules\"\n\nexport function schemaHasRulesForType(\n {schema, self}: SchemaObjCxt,\n type: JSONType\n): boolean | undefined {\n const group = self.RULES.types[type]\n return group && group !== true && shouldUseGroup(schema, group)\n}\n\nexport function shouldUseGroup(schema: AnySchemaObject, group: RuleGroup): boolean {\n return group.rules.some((rule) => shouldUseRule(schema, rule))\n}\n\nexport function shouldUseRule(schema: AnySchemaObject, rule: Rule): boolean | undefined {\n return (\n schema[rule.keyword] !== undefined ||\n rule.definition.implements?.some((kwd) => schema[kwd] !== undefined)\n )\n}\n","import type {\n KeywordErrorDefinition,\n KeywordErrorCxt,\n ErrorObject,\n AnySchemaObject,\n} from \"../../types\"\nimport type {SchemaObjCxt} from \"..\"\nimport {isJSONType, JSONType} from \"../rules\"\nimport {schemaHasRulesForType} from \"./applicability\"\nimport {reportError} from \"../errors\"\nimport {_, nil, and, not, operators, Code, Name} from \"../codegen\"\nimport {toHash, schemaRefOrVal} from \"../util\"\n\nexport enum DataType {\n Correct,\n Wrong,\n}\n\nexport function getSchemaTypes(schema: AnySchemaObject): JSONType[] {\n const types = getJSONTypes(schema.type)\n const hasNull = types.includes(\"null\")\n if (hasNull) {\n if (schema.nullable === false) throw new Error(\"type: null contradicts nullable: false\")\n } else {\n if (!types.length && schema.nullable !== undefined) {\n throw new Error('\"nullable\" cannot be used without \"type\"')\n }\n if (schema.nullable === true) types.push(\"null\")\n }\n return types\n}\n\n// eslint-disable-next-line @typescript-eslint/no-redundant-type-constituents\nexport function getJSONTypes(ts: unknown | unknown[]): JSONType[] {\n const types: unknown[] = Array.isArray(ts) ? ts : ts ? [ts] : []\n if (types.every(isJSONType)) return types\n throw new Error(\"type must be JSONType or JSONType[]: \" + types.join(\",\"))\n}\n\nexport function coerceAndCheckDataType(it: SchemaObjCxt, types: JSONType[]): boolean {\n const {gen, data, opts} = it\n const coerceTo = coerceToTypes(types, opts.coerceTypes)\n const checkTypes =\n types.length > 0 &&\n !(coerceTo.length === 0 && types.length === 1 && schemaHasRulesForType(it, types[0]))\n if (checkTypes) {\n const wrongType = checkDataTypes(types, data, opts.strictNumbers, DataType.Wrong)\n gen.if(wrongType, () => {\n if (coerceTo.length) coerceData(it, types, coerceTo)\n else reportTypeError(it)\n })\n }\n return checkTypes\n}\n\nconst COERCIBLE: Set<JSONType> = new Set([\"string\", \"number\", \"integer\", \"boolean\", \"null\"])\nfunction coerceToTypes(types: JSONType[], coerceTypes?: boolean | \"array\"): JSONType[] {\n return coerceTypes\n ? types.filter((t) => COERCIBLE.has(t) || (coerceTypes === \"array\" && t === \"array\"))\n : []\n}\n\nfunction coerceData(it: SchemaObjCxt, types: JSONType[], coerceTo: JSONType[]): void {\n const {gen, data, opts} = it\n const dataType = gen.let(\"dataType\", _`typeof ${data}`)\n const coerced = gen.let(\"coerced\", _`undefined`)\n if (opts.coerceTypes === \"array\") {\n gen.if(_`${dataType} == 'object' && Array.isArray(${data}) && ${data}.length == 1`, () =>\n gen\n .assign(data, _`${data}[0]`)\n .assign(dataType, _`typeof ${data}`)\n .if(checkDataTypes(types, data, opts.strictNumbers), () => gen.assign(coerced, data))\n )\n }\n gen.if(_`${coerced} !== undefined`)\n for (const t of coerceTo) {\n if (COERCIBLE.has(t) || (t === \"array\" && opts.coerceTypes === \"array\")) {\n coerceSpecificType(t)\n }\n }\n gen.else()\n reportTypeError(it)\n gen.endIf()\n\n gen.if(_`${coerced} !== undefined`, () => {\n gen.assign(data, coerced)\n assignParentData(it, coerced)\n })\n\n function coerceSpecificType(t: string): void {\n switch (t) {\n case \"string\":\n gen\n .elseIf(_`${dataType} == \"number\" || ${dataType} == \"boolean\"`)\n .assign(coerced, _`\"\" + ${data}`)\n .elseIf(_`${data} === null`)\n .assign(coerced, _`\"\"`)\n return\n case \"number\":\n gen\n .elseIf(\n _`${dataType} == \"boolean\" || ${data} === null\n || (${dataType} == \"string\" && ${data} && ${data} == +${data})`\n )\n .assign(coerced, _`+${data}`)\n return\n case \"integer\":\n gen\n .elseIf(\n _`${dataType} === \"boolean\" || ${data} === null\n || (${dataType} === \"string\" && ${data} && ${data} == +${data} && !(${data} % 1))`\n )\n .assign(coerced, _`+${data}`)\n return\n case \"boolean\":\n gen\n .elseIf(_`${data} === \"false\" || ${data} === 0 || ${data} === null`)\n .assign(coerced, false)\n .elseIf(_`${data} === \"true\" || ${data} === 1`)\n .assign(coerced, true)\n return\n case \"null\":\n gen.elseIf(_`${data} === \"\" || ${data} === 0 || ${data} === false`)\n gen.assign(coerced, null)\n return\n\n case \"array\":\n gen\n .elseIf(\n _`${dataType} === \"string\" || ${dataType} === \"number\"\n || ${dataType} === \"boolean\" || ${data} === null`\n )\n .assign(coerced, _`[${data}]`)\n }\n }\n}\n\nfunction assignParentData({gen, parentData, parentDataProperty}: SchemaObjCxt, expr: Name): void {\n // TODO use gen.property\n gen.if(_`${parentData} !== undefined`, () =>\n gen.assign(_`${parentData}[${parentDataProperty}]`, expr)\n )\n}\n\nexport function checkDataType(\n dataType: JSONType,\n data: Name,\n strictNums?: boolean | \"log\",\n correct = DataType.Correct\n): Code {\n const EQ = correct === DataType.Correct ? operators.EQ : operators.NEQ\n let cond: Code\n switch (dataType) {\n case \"null\":\n return _`${data} ${EQ} null`\n case \"array\":\n cond = _`Array.isArray(${data})`\n break\n case \"object\":\n cond = _`${data} && typeof ${data} == \"object\" && !Array.isArray(${data})`\n break\n case \"integer\":\n cond = numCond(_`!(${data} % 1) && !isNaN(${data})`)\n break\n case \"number\":\n cond = numCond()\n break\n default:\n return _`typeof ${data} ${EQ} ${dataType}`\n }\n return correct === DataType.Correct ? cond : not(cond)\n\n function numCond(_cond: Code = nil): Code {\n return and(_`typeof ${data} == \"number\"`, _cond, strictNums ? _`isFinite(${data})` : nil)\n }\n}\n\nexport function checkDataTypes(\n dataTypes: JSONType[],\n data: Name,\n strictNums?: boolean | \"log\",\n correct?: DataType\n): Code {\n if (dataTypes.length === 1) {\n return checkDataType(dataTypes[0], data, strictNums, correct)\n }\n let cond: Code\n const types = toHash(dataTypes)\n if (types.array && types.object) {\n const notObj = _`typeof ${data} != \"object\"`\n cond = types.null ? notObj : _`!${data} || ${notObj}`\n delete types.null\n delete types.array\n delete types.object\n } else {\n cond = nil\n }\n if (types.number) delete types.integer\n for (const t in types) cond = and(cond, checkDataType(t as JSONType, data, strictNums, correct))\n return cond\n}\n\nexport type TypeError = ErrorObject<\"type\", {type: string}>\n\nconst typeError: KeywordErrorDefinition = {\n message: ({schema}) => `must be ${schema}`,\n params: ({schema, schemaValue}) =>\n typeof schema == \"string\" ? _`{type: ${schema}}` : _`{type: ${schemaValue}}`,\n}\n\nexport function reportTypeError(it: SchemaObjCxt): void {\n const cxt = getTypeErrorContext(it)\n reportError(cxt, typeError)\n}\n\nfunction getTypeErrorContext(it: SchemaObjCxt): KeywordErrorCxt {\n const {gen, data, schema} = it\n const schemaCode = schemaRefOrVal(it, schema, \"type\")\n return {\n gen,\n keyword: \"type\",\n data,\n schema: schema.type,\n schemaCode,\n schemaValue: schemaCode,\n parentSchema: schema,\n params: {},\n it,\n }\n}\n","import type {SchemaObjCxt} from \"..\"\nimport {_, getProperty, stringify} from \"../codegen\"\nimport {checkStrictMode} from \"../util\"\n\nexport function assignDefaults(it: SchemaObjCxt, ty?: string): void {\n const {properties, items} = it.schema\n if (ty === \"object\" && properties) {\n for (const key in properties) {\n assignDefault(it, key, properties[key].default)\n }\n } else if (ty === \"array\" && Array.isArray(items)) {\n items.forEach((sch, i: number) => assignDefault(it, i, sch.default))\n }\n}\n\nfunction assignDefault(it: SchemaObjCxt, prop: string | number, defaultValue: unknown): void {\n const {gen, compositeRule, data, opts} = it\n if (defaultValue === undefined) return\n const childData = _`${data}${getProperty(prop)}`\n if (compositeRule) {\n checkStrictMode(it, `default is ignored for: ${childData}`)\n return\n }\n\n let condition = _`${childData} === undefined`\n if (opts.useDefaults === \"empty\") {\n condition = _`${condition} || ${childData} === null || ${childData} === \"\"`\n }\n // `${childData} === undefined` +\n // (opts.useDefaults === \"empty\" ? ` || ${childData} === null || ${childData} === \"\"` : \"\")\n gen.if(condition, _`${childData} = ${stringify(defaultValue)}`)\n}\n","import type {AnySchema, SchemaMap} from \"../types\"\nimport type {SchemaCxt} from \"../compile\"\nimport type {KeywordCxt} from \"../compile/validate\"\nimport {CodeGen, _, and, or, not, nil, strConcat, getProperty, Code, Name} from \"../compile/codegen\"\nimport {alwaysValidSchema, Type} from \"../compile/util\"\nimport N from \"../compile/names\"\nimport {useFunc} from \"../compile/util\"\nexport function checkReportMissingProp(cxt: KeywordCxt, prop: string): void {\n const {gen, data, it} = cxt\n gen.if(noPropertyInData(gen, data, prop, it.opts.ownProperties), () => {\n cxt.setParams({missingProperty: _`${prop}`}, true)\n cxt.error()\n })\n}\n\nexport function checkMissingProp(\n {gen, data, it: {opts}}: KeywordCxt,\n properties: string[],\n missing: Name\n): Code {\n return or(\n ...properties.map((prop) =>\n and(noPropertyInData(gen, data, prop, opts.ownProperties), _`${missing} = ${prop}`)\n )\n )\n}\n\nexport function reportMissingProp(cxt: KeywordCxt, missing: Name): void {\n cxt.setParams({missingProperty: missing}, true)\n cxt.error()\n}\n\nexport function hasPropFunc(gen: CodeGen): Name {\n return gen.scopeValue(\"func\", {\n // eslint-disable-next-line @typescript-eslint/unbound-method\n ref: Object.prototype.hasOwnProperty,\n code: _`Object.prototype.hasOwnProperty`,\n })\n}\n\nexport function isOwnProperty(gen: CodeGen, data: Name, property: Name | string): Code {\n return _`${hasPropFunc(gen)}.call(${data}, ${property})`\n}\n\nexport function propertyInData(\n gen: CodeGen,\n data: Name,\n property: Name | string,\n ownProperties?: boolean\n): Code {\n const cond = _`${data}${getProperty(property)} !== undefined`\n return ownProperties ? _`${cond} && ${isOwnProperty(gen, data, property)}` : cond\n}\n\nexport function noPropertyInData(\n gen: CodeGen,\n data: Name,\n property: Name | string,\n ownProperties?: boolean\n): Code {\n const cond = _`${data}${getProperty(property)} === undefined`\n return ownProperties ? or(cond, not(isOwnProperty(gen, data, property))) : cond\n}\n\nexport function allSchemaProperties(schemaMap?: SchemaMap): string[] {\n return schemaMap ? Object.keys(schemaMap).filter((p) => p !== \"__proto__\") : []\n}\n\nexport function schemaProperties(it: SchemaCxt, schemaMap: SchemaMap): string[] {\n return allSchemaProperties(schemaMap).filter(\n (p) => !alwaysValidSchema(it, schemaMap[p] as AnySchema)\n )\n}\n\nexport function callValidateCode(\n {schemaCode, data, it: {gen, topSchemaRef, schemaPath, errorPath}, it}: KeywordCxt,\n func: Code,\n context: Code,\n passSchema?: boolean\n): Code {\n const dataAndSchema = passSchema ? _`${schemaCode}, ${data}, ${topSchemaRef}${schemaPath}` : data\n const valCxt: [Name, Code | number][] = [\n [N.instancePath, strConcat(N.instancePath, errorPath)],\n [N.parentData, it.parentData],\n [N.parentDataProperty, it.parentDataProperty],\n [N.rootData, N.rootData],\n ]\n if (it.opts.dynamicRef) valCxt.push([N.dynamicAnchors, N.dynamicAnchors])\n const args = _`${dataAndSchema}, ${gen.object(...valCxt)}`\n return context !== nil ? _`${func}.call(${context}, ${args})` : _`${func}(${args})`\n}\n\nconst newRegExp = _`new RegExp`\n\nexport function usePattern({gen, it: {opts}}: KeywordCxt, pattern: string): Name {\n const u = opts.unicodeRegExp ? \"u\" : \"\"\n const {regExp} = opts.code\n const rx = regExp(pattern, u)\n\n return gen.scopeValue(\"pattern\", {\n key: rx.toString(),\n ref: rx,\n code: _`${regExp.code === \"new RegExp\" ? newRegExp : useFunc(gen, regExp)}(${pattern}, ${u})`,\n })\n}\n\nexport function validateArray(cxt: KeywordCxt): Name {\n const {gen, data, keyword, it} = cxt\n const valid = gen.name(\"valid\")\n if (it.allErrors) {\n const validArr = gen.let(\"valid\", true)\n validateItems(() => gen.assign(validArr, false))\n return validArr\n }\n gen.var(valid, true)\n validateItems(() => gen.break())\n return valid\n\n function validateItems(notValid: () => void): void {\n const len = gen.const(\"len\", _`${data}.length`)\n gen.forRange(\"i\", 0, len, (i) => {\n cxt.subschema(\n {\n keyword,\n dataProp: i,\n dataPropType: Type.Num,\n },\n valid\n )\n gen.if(not(valid), notValid)\n })\n }\n}\n\nexport function validateUnion(cxt: KeywordCxt): void {\n const {gen, schema, keyword, it} = cxt\n /* istanbul ignore if */\n if (!Array.isArray(schema)) throw new Error(\"ajv implementation error\")\n const alwaysValid = schema.some((sch: AnySchema) => alwaysValidSchema(it, sch))\n if (alwaysValid && !it.opts.unevaluated) return\n\n const valid = gen.let(\"valid\", false)\n const schValid = gen.name(\"_valid\")\n\n gen.block(() =>\n schema.forEach((_sch: AnySchema, i: number) => {\n const schCxt = cxt.subschema(\n {\n keyword,\n schemaProp: i,\n compositeRule: true,\n },\n schValid\n )\n gen.assign(valid, _`${valid} || ${schValid}`)\n const merged = cxt.mergeValidEvaluated(schCxt, schValid)\n // can short-circuit if `unevaluatedProperties/Items` not supported (opts.unevaluated !== true)\n // or if all properties and items were evaluated (it.props === true && it.items === true)\n if (!merged) gen.if(not(valid))\n })\n )\n\n cxt.result(\n valid,\n () => cxt.reset(),\n () => cxt.error(true)\n )\n}\n","import type {KeywordCxt} from \".\"\nimport type {\n AnySchema,\n SchemaValidateFunction,\n AnyValidateFunction,\n AddedKeywordDefinition,\n MacroKeywordDefinition,\n FuncKeywordDefinition,\n} from \"../../types\"\nimport type {SchemaObjCxt} from \"..\"\nimport {_, nil, not, stringify, Code, Name, CodeGen} from \"../codegen\"\nimport N from \"../names\"\nimport type {JSONType} from \"../rules\"\nimport {callValidateCode} from \"../../vocabularies/code\"\nimport {extendErrors} from \"../errors\"\n\ntype KeywordCompilationResult = AnySchema | SchemaValidateFunction | AnyValidateFunction\n\nexport function macroKeywordCode(cxt: KeywordCxt, def: MacroKeywordDefinition): void {\n const {gen, keyword, schema, parentSchema, it} = cxt\n const macroSchema = def.macro.call(it.self, schema, parentSchema, it)\n const schemaRef = useKeyword(gen, keyword, macroSchema)\n if (it.opts.validateSchema !== false) it.self.validateSchema(macroSchema, true)\n\n const valid = gen.name(\"valid\")\n cxt.subschema(\n {\n schema: macroSchema,\n schemaPath: nil,\n errSchemaPath: `${it.errSchemaPath}/${keyword}`,\n topSchemaRef: schemaRef,\n compositeRule: true,\n },\n valid\n )\n cxt.pass(valid, () => cxt.error(true))\n}\n\nexport function funcKeywordCode(cxt: KeywordCxt, def: FuncKeywordDefinition): void {\n const {gen, keyword, schema, parentSchema, $data, it} = cxt\n checkAsyncKeyword(it, def)\n const validate =\n !$data && def.compile ? def.compile.call(it.self, schema, parentSchema, it) : def.validate\n const validateRef = useKeyword(gen, keyword, validate)\n const valid = gen.let(\"valid\")\n cxt.block$data(valid, validateKeyword)\n cxt.ok(def.valid ?? valid)\n\n function validateKeyword(): void {\n if (def.errors === false) {\n assignValid()\n if (def.modifying) modifyData(cxt)\n reportErrs(() => cxt.error())\n } else {\n const ruleErrs = def.async ? validateAsync() : validateSync()\n if (def.modifying) modifyData(cxt)\n reportErrs(() => addErrs(cxt, ruleErrs))\n }\n }\n\n function validateAsync(): Name {\n const ruleErrs = gen.let(\"ruleErrs\", null)\n gen.try(\n () => assignValid(_`await `),\n (e) =>\n gen.assign(valid, false).if(\n _`${e} instanceof ${it.ValidationError as Name}`,\n () => gen.assign(ruleErrs, _`${e}.errors`),\n () => gen.throw(e)\n )\n )\n return ruleErrs\n }\n\n function validateSync(): Code {\n const validateErrs = _`${validateRef}.errors`\n gen.assign(validateErrs, null)\n assignValid(nil)\n return validateErrs\n }\n\n function assignValid(_await: Code = def.async ? _`await ` : nil): void {\n const passCxt = it.opts.passContext ? N.this : N.self\n const passSchema = !((\"compile\" in def && !$data) || def.schema === false)\n gen.assign(\n valid,\n _`${_await}${callValidateCode(cxt, validateRef, passCxt, passSchema)}`,\n def.modifying\n )\n }\n\n function reportErrs(errors: () => void): void {\n gen.if(not(def.valid ?? valid), errors)\n }\n}\n\nfunction modifyData(cxt: KeywordCxt): void {\n const {gen, data, it} = cxt\n gen.if(it.parentData, () => gen.assign(data, _`${it.parentData}[${it.parentDataProperty}]`))\n}\n\nfunction addErrs(cxt: KeywordCxt, errs: Code): void {\n const {gen} = cxt\n gen.if(\n _`Array.isArray(${errs})`,\n () => {\n gen\n .assign(N.vErrors, _`${N.vErrors} === null ? ${errs} : ${N.vErrors}.concat(${errs})`)\n .assign(N.errors, _`${N.vErrors}.length`)\n extendErrors(cxt)\n },\n () => cxt.error()\n )\n}\n\nfunction checkAsyncKeyword({schemaEnv}: SchemaObjCxt, def: FuncKeywordDefinition): void {\n if (def.async && !schemaEnv.$async) throw new Error(\"async keyword in sync schema\")\n}\n\nfunction useKeyword(gen: CodeGen, keyword: string, result?: KeywordCompilationResult): Name {\n if (result === undefined) throw new Error(`keyword \"${keyword}\" failed to compile`)\n return gen.scopeValue(\n \"keyword\",\n typeof result == \"function\" ? {ref: result} : {ref: result, code: stringify(result)}\n )\n}\n\nexport function validSchemaType(\n schema: unknown,\n schemaType: JSONType[],\n allowUndefined = false\n): boolean {\n // TODO add tests\n return (\n !schemaType.length ||\n schemaType.some((st) =>\n st === \"array\"\n ? Array.isArray(schema)\n : st === \"object\"\n ? schema && typeof schema == \"object\" && !Array.isArray(schema)\n : typeof schema == st || (allowUndefined && typeof schema == \"undefined\")\n )\n )\n}\n\nexport function validateKeywordUsage(\n {schema, opts, self, errSchemaPath}: SchemaObjCxt,\n def: AddedKeywordDefinition,\n keyword: string\n): void {\n /* istanbul ignore if */\n if (Array.isArray(def.keyword) ? !def.keyword.includes(keyword) : def.keyword !== keyword) {\n throw new Error(\"ajv implementation error\")\n }\n\n const deps = def.dependencies\n if (deps?.some((kwd) => !Object.prototype.hasOwnProperty.call(schema, kwd))) {\n throw new Error(`parent schema must have dependencies of ${keyword}: ${deps.join(\",\")}`)\n }\n\n if (def.validateSchema) {\n const valid = def.validateSchema(schema[keyword])\n if (!valid) {\n const msg =\n `keyword \"${keyword}\" value is invalid at path \"${errSchemaPath}\": ` +\n self.errorsText(def.validateSchema.errors)\n if (opts.validateSchema === \"log\") self.logger.error(msg)\n else throw new Error(msg)\n }\n }\n}\n","import type {AnySchema} from \"../../types\"\nimport type {SchemaObjCxt} from \"..\"\nimport {_, str, getProperty, Code, Name} from \"../codegen\"\nimport {escapeFragment, getErrorPath, Type} from \"../util\"\nimport type {JSONType} from \"../rules\"\n\nexport interface SubschemaContext {\n // TODO use Optional? align with SchemCxt property types\n schema: AnySchema\n schemaPath: Code\n errSchemaPath: string\n topSchemaRef?: Code\n errorPath?: Code\n dataLevel?: number\n dataTypes?: JSONType[]\n data?: Name\n parentData?: Name\n parentDataProperty?: Code | number\n dataNames?: Name[]\n dataPathArr?: (Code | number)[]\n propertyName?: Name\n jtdDiscriminator?: string\n jtdMetadata?: boolean\n compositeRule?: true\n createErrors?: boolean\n allErrors?: boolean\n}\n\nexport type SubschemaArgs = Partial<{\n keyword: string\n schemaProp: string | number\n schema: AnySchema\n schemaPath: Code\n errSchemaPath: string\n topSchemaRef: Code\n data: Name | Code\n dataProp: Code | string | number\n dataTypes: JSONType[]\n definedProperties: Set<string>\n propertyName: Name\n dataPropType: Type\n jtdDiscriminator: string\n jtdMetadata: boolean\n compositeRule: true\n createErrors: boolean\n allErrors: boolean\n}>\n\nexport function getSubschema(\n it: SchemaObjCxt,\n {keyword, schemaProp, schema, schemaPath, errSchemaPath, topSchemaRef}: SubschemaArgs\n): SubschemaContext {\n if (keyword !== undefined && schema !== undefined) {\n throw new Error('both \"keyword\" and \"schema\" passed, only one allowed')\n }\n\n if (keyword !== undefined) {\n const sch = it.schema[keyword]\n return schemaProp === undefined\n ? {\n schema: sch,\n schemaPath: _`${it.schemaPath}${getProperty(keyword)}`,\n errSchemaPath: `${it.errSchemaPath}/${keyword}`,\n }\n : {\n schema: sch[schemaProp],\n schemaPath: _`${it.schemaPath}${getProperty(keyword)}${getProperty(schemaProp)}`,\n errSchemaPath: `${it.errSchemaPath}/${keyword}/${escapeFragment(schemaProp)}`,\n }\n }\n\n if (schema !== undefined) {\n if (schemaPath === undefined || errSchemaPath === undefined || topSchemaRef === undefined) {\n throw new Error('\"schemaPath\", \"errSchemaPath\" and \"topSchemaRef\" are required with \"schema\"')\n }\n return {\n schema,\n schemaPath,\n topSchemaRef,\n errSchemaPath,\n }\n }\n\n throw new Error('either \"keyword\" or \"schema\" must be passed')\n}\n\nexport function extendSubschemaData(\n subschema: SubschemaContext,\n it: SchemaObjCxt,\n {dataProp, dataPropType: dpType, data, dataTypes, propertyName}: SubschemaArgs\n): void {\n if (data !== undefined && dataProp !== undefined) {\n throw new Error('both \"data\" and \"dataProp\" passed, only one allowed')\n }\n\n const {gen} = it\n\n if (dataProp !== undefined) {\n const {errorPath, dataPathArr, opts} = it\n const nextData = gen.let(\"data\", _`${it.data}${getProperty(dataProp)}`, true)\n dataContextProps(nextData)\n subschema.errorPath = str`${errorPath}${getErrorPath(dataProp, dpType, opts.jsPropertySyntax)}`\n subschema.parentDataProperty = _`${dataProp}`\n subschema.dataPathArr = [...dataPathArr, subschema.parentDataProperty]\n }\n\n if (data !== undefined) {\n const nextData = data instanceof Name ? data : gen.let(\"data\", data, true) // replaceable if used once?\n dataContextProps(nextData)\n if (propertyName !== undefined) subschema.propertyName = propertyName\n // TODO something is possibly wrong here with not changing parentDataProperty and not appending dataPathArr\n }\n\n if (dataTypes) subschema.dataTypes = dataTypes\n\n function dataContextProps(_nextData: Name): void {\n subschema.data = _nextData\n subschema.dataLevel = it.dataLevel + 1\n subschema.dataTypes = []\n it.definedProperties = new Set<string>()\n subschema.parentData = it.data\n subschema.dataNames = [...it.dataNames, _nextData]\n }\n}\n\nexport function extendSubschemaMode(\n subschema: SubschemaContext,\n {jtdDiscriminator, jtdMetadata, compositeRule, createErrors, allErrors}: SubschemaArgs\n): void {\n if (compositeRule !== undefined) subschema.compositeRule = compositeRule\n if (createErrors !== undefined) subschema.createErrors = createErrors\n if (allErrors !== undefined) subschema.allErrors = allErrors\n subschema.jtdDiscriminator = jtdDiscriminator // not inherited\n subschema.jtdMetadata = jtdMetadata // not inherited\n}\n","'use strict';\n\n// do not edit .js files directly - edit src/index.jst\n\n\n\nmodule.exports = function equal(a, b) {\n if (a === b) return true;\n\n if (a && b && typeof a == 'object' && typeof b == 'object') {\n if (a.constructor !== b.constructor) return false;\n\n var length, i, keys;\n if (Array.isArray(a)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (!equal(a[i], b[i])) return false;\n return true;\n }\n\n\n\n if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;\n if (a.valueOf !== Object.prototype.valueOf) return a.valueOf() === b.valueOf();\n if (a.toString !== Object.prototype.toString) return a.toString() === b.toString();\n\n keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length) return false;\n\n for (i = length; i-- !== 0;)\n if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;\n\n for (i = length; i-- !== 0;) {\n var key = keys[i];\n\n if (!equal(a[key], b[key])) return false;\n }\n\n return true;\n }\n\n // true if both NaN, false otherwise\n return a!==a && b!==b;\n};\n","'use strict';\n\nvar traverse = module.exports = function (schema, opts, cb) {\n // Legacy support for v0.3.1 and earlier.\n if (typeof opts == 'function') {\n cb = opts;\n opts = {};\n }\n\n cb = opts.cb || cb;\n var pre = (typeof cb == 'function') ? cb : cb.pre || function() {};\n var post = cb.post || function() {};\n\n _traverse(opts, pre, post, schema, '', schema);\n};\n\n\ntraverse.keywords = {\n additionalItems: true,\n items: true,\n contains: true,\n additionalProperties: true,\n propertyNames: true,\n not: true,\n if: true,\n then: true,\n else: true\n};\n\ntraverse.arrayKeywords = {\n items: true,\n allOf: true,\n anyOf: true,\n oneOf: true\n};\n\ntraverse.propsKeywords = {\n $defs: true,\n definitions: true,\n properties: true,\n patternProperties: true,\n dependencies: true\n};\n\ntraverse.skipKeywords = {\n default: true,\n enum: true,\n const: true,\n required: true,\n maximum: true,\n minimum: true,\n exclusiveMaximum: true,\n exclusiveMinimum: true,\n multipleOf: true,\n maxLength: true,\n minLength: true,\n pattern: true,\n format: true,\n maxItems: true,\n minItems: true,\n uniqueItems: true,\n maxProperties: true,\n minProperties: true\n};\n\n\nfunction _traverse(opts, pre, post, schema, jsonPtr, rootSchema, parentJsonPtr, parentKeyword, parentSchema, keyIndex) {\n if (schema && typeof schema == 'object' && !Array.isArray(schema)) {\n pre(schema, jsonPtr, rootSchema, parentJsonPtr, parentKeyword, parentSchema, keyIndex);\n for (var key in schema) {\n var sch = schema[key];\n if (Array.isArray(sch)) {\n if (key in traverse.arrayKeywords) {\n for (var i=0; i<sch.length; i++)\n _traverse(opts, pre, post, sch[i], jsonPtr + '/' + key + '/' + i, rootSchema, jsonPtr, key, schema, i);\n }\n } else if (key in traverse.propsKeywords) {\n if (sch && typeof sch == 'object') {\n for (var prop in sch)\n _traverse(opts, pre, post, sch[prop], jsonPtr + '/' + key + '/' + escapeJsonPtr(prop), rootSchema, jsonPtr, key, schema, prop);\n }\n } else if (key in traverse.keywords || (opts.allKeys && !(key in traverse.skipKeywords))) {\n _traverse(opts, pre, post, sch, jsonPtr + '/' + key, rootSchema, jsonPtr, key, schema);\n }\n }\n post(schema, jsonPtr, rootSchema, parentJsonPtr, parentKeyword, parentSchema, keyIndex);\n }\n}\n\n\nfunction escapeJsonPtr(str) {\n return str.replace(/~/g, '~0').replace(/\\//g, '~1');\n}\n","import type {AnySchema, AnySchemaObject, UriResolver} from \"../types\"\nimport type Ajv from \"../ajv\"\nimport type {URIComponent} from \"fast-uri\"\nimport {eachItem} from \"./util\"\nimport * as equal from \"fast-deep-equal\"\nimport * as traverse from \"json-schema-traverse\"\n\n// the hash of local references inside the schema (created by getSchemaRefs), used for inline resolution\nexport type LocalRefs = {[Ref in string]?: AnySchemaObject}\n\n// TODO refactor to use keyword definitions\nconst SIMPLE_INLINED = new Set([\n \"type\",\n \"format\",\n \"pattern\",\n \"maxLength\",\n \"minLength\",\n \"maxProperties\",\n \"minProperties\",\n \"maxItems\",\n \"minItems\",\n \"maximum\",\n \"minimum\",\n \"uniqueItems\",\n \"multipleOf\",\n \"required\",\n \"enum\",\n \"const\",\n])\n\nexport function inlineRef(schema: AnySchema, limit: boolean | number = true): boolean {\n if (typeof schema == \"boolean\") return true\n if (limit === true) return !hasRef(schema)\n if (!limit) return false\n return countKeys(schema) <= limit\n}\n\nconst REF_KEYWORDS = new Set([\n \"$ref\",\n \"$recursiveRef\",\n \"$recursiveAnchor\",\n \"$dynamicRef\",\n \"$dynamicAnchor\",\n])\n\nfunction hasRef(schema: AnySchemaObject): boolean {\n for (const key in schema) {\n if (REF_KEYWORDS.has(key)) return true\n const sch = schema[key]\n if (Array.isArray(sch) && sch.some(hasRef)) return true\n if (typeof sch == \"object\" && hasRef(sch)) return true\n }\n return false\n}\n\nfunction countKeys(schema: AnySchemaObject): number {\n let count = 0\n for (const key in schema) {\n if (key === \"$ref\") return Infinity\n count++\n if (SIMPLE_INLINED.has(key)) continue\n if (typeof schema[key] == \"object\") {\n eachItem(schema[key], (sch) => (count += countKeys(sch)))\n }\n if (count === Infinity) return Infinity\n }\n return count\n}\n\nexport function getFullPath(resolver: UriResolver, id = \"\", normalize?: boolean): string {\n if (normalize !== false) id = normalizeId(id)\n const p = resolver.parse(id)\n return _getFullPath(resolver, p)\n}\n\nexport function _getFullPath(resolver: UriResolver, p: URIComponent): string {\n const serialized = resolver.serialize(p)\n return serialized.split(\"#\")[0] + \"#\"\n}\n\nconst TRAILING_SLASH_HASH = /#\\/?$/\nexport function normalizeId(id: string | undefined): string {\n return id ? id.replace(TRAILING_SLASH_HASH, \"\") : \"\"\n}\n\nexport function resolveUrl(resolver: UriResolver, baseId: string, id: string): string {\n id = normalizeId(id)\n return resolver.resolve(baseId, id)\n}\n\nconst ANCHOR = /^[a-z_][-a-z0-9._]*$/i\n\nexport function getSchemaRefs(this: Ajv, schema: AnySchema, baseId: string): LocalRefs {\n if (typeof schema == \"boolean\") return {}\n const {schemaId, uriResolver} = this.opts\n const schId = normalizeId(schema[schemaId] || baseId)\n const baseIds: {[JsonPtr in string]?: string} = {\"\": schId}\n const pathPrefix = getFullPath(uriResolver, schId, false)\n const localRefs: LocalRefs = {}\n const schemaRefs: Set<string> = new Set()\n\n traverse(schema, {allKeys: true}, (sch, jsonPtr, _, parentJsonPtr) => {\n if (parentJsonPtr === undefined) return\n const fullPath = pathPrefix + jsonPtr\n let innerBaseId = baseIds[parentJsonPtr]\n if (typeof sch[schemaId] == \"string\") innerBaseId = addRef.call(this, sch[schemaId])\n addAnchor.call(this, sch.$anchor)\n addAnchor.call(this, sch.$dynamicAnchor)\n baseIds[jsonPtr] = innerBaseId\n\n function addRef(this: Ajv, ref: string): string {\n // eslint-disable-next-line @typescript-eslint/unbound-method\n const _resolve = this.opts.uriResolver.resolve\n ref = normalizeId(innerBaseId ? _resolve(innerBaseId, ref) : ref)\n if (schemaRefs.has(ref)) throw ambiguos(ref)\n schemaRefs.add(ref)\n let schOrRef = this.refs[ref]\n if (typeof schOrRef == \"string\") schOrRef = this.refs[schOrRef]\n if (typeof schOrRef == \"object\") {\n checkAmbiguosRef(sch, schOrRef.schema, ref)\n } else if (ref !== normalizeId(fullPath)) {\n if (ref[0] === \"#\") {\n checkAmbiguosRef(sch, localRefs[ref], ref)\n localRefs[ref] = sch\n } else {\n this.refs[ref] = fullPath\n }\n }\n return ref\n }\n\n function addAnchor(this: Ajv, anchor: unknown): void {\n if (typeof anchor == \"string\") {\n if (!ANCHOR.test(anchor)) throw new Error(`invalid anchor \"${anchor}\"`)\n addRef.call(this, `#${anchor}`)\n }\n }\n })\n\n return localRefs\n\n function checkAmbiguosRef(sch1: AnySchema, sch2: AnySchema | undefined, ref: string): void {\n if (sch2 !== undefined && !equal(sch1, sch2)) throw ambiguos(ref)\n }\n\n function ambiguos(ref: string): Error {\n return new Error(`reference \"${ref}\" resolves to more than one schema`)\n }\n}\n","import type {\n AddedKeywordDefinition,\n AnySchema,\n AnySchemaObject,\n KeywordErrorCxt,\n KeywordCxtParams,\n} from \"../../types\"\nimport type {SchemaCxt, SchemaObjCxt} from \"..\"\nimport type {InstanceOptions} from \"../../core\"\nimport {boolOrEmptySchema, topBoolOrEmptySchema} from \"./boolSchema\"\nimport {coerceAndCheckDataType, getSchemaTypes} from \"./dataType\"\nimport {shouldUseGroup, shouldUseRule} from \"./applicability\"\nimport {checkDataType, checkDataTypes, reportTypeError, DataType} from \"./dataType\"\nimport {assignDefaults} from \"./defaults\"\nimport {funcKeywordCode, macroKeywordCode, validateKeywordUsage, validSchemaType} from \"./keyword\"\nimport {getSubschema, extendSubschemaData, SubschemaArgs, extendSubschemaMode} from \"./subschema\"\nimport {_, nil, str, or, not, getProperty, Block, Code, Name, CodeGen} from \"../codegen\"\nimport N from \"../names\"\nimport {resolveUrl} from \"../resolve\"\nimport {\n schemaRefOrVal,\n schemaHasRulesButRef,\n checkUnknownRules,\n checkStrictMode,\n unescapeJsonPointer,\n mergeEvaluated,\n} from \"../util\"\nimport type {JSONType, Rule, RuleGroup} from \"../rules\"\nimport {\n ErrorPaths,\n reportError,\n reportExtraError,\n resetErrorsCount,\n keyword$DataError,\n} from \"../errors\"\n\n// schema compilation - generates validation function, subschemaCode (below) is used for subschemas\nexport function validateFunctionCode(it: SchemaCxt): void {\n if (isSchemaObj(it)) {\n checkKeywords(it)\n if (schemaCxtHasRules(it)) {\n topSchemaObjCode(it)\n return\n }\n }\n validateFunction(it, () => topBoolOrEmptySchema(it))\n}\n\nfunction validateFunction(\n {gen, validateName, schema, schemaEnv, opts}: SchemaCxt,\n body: Block\n): void {\n if (opts.code.es5) {\n gen.func(validateName, _`${N.data}, ${N.valCxt}`, schemaEnv.$async, () => {\n gen.code(_`\"use strict\"; ${funcSourceUrl(schema, opts)}`)\n destructureValCxtES5(gen, opts)\n gen.code(body)\n })\n } else {\n gen.func(validateName, _`${N.data}, ${destructureValCxt(opts)}`, schemaEnv.$async, () =>\n gen.code(funcSourceUrl(schema, opts)).code(body)\n )\n }\n}\n\nfunction destructureValCxt(opts: InstanceOptions): Code {\n return _`{${N.instancePath}=\"\", ${N.parentData}, ${N.parentDataProperty}, ${N.rootData}=${\n N.data\n }${opts.dynamicRef ? _`, ${N.dynamicAnchors}={}` : nil}}={}`\n}\n\nfunction destructureValCxtES5(gen: CodeGen, opts: InstanceOptions): void {\n gen.if(\n N.valCxt,\n () => {\n gen.var(N.instancePath, _`${N.valCxt}.${N.instancePath}`)\n gen.var(N.parentData, _`${N.valCxt}.${N.parentData}`)\n gen.var(N.parentDataProperty, _`${N.valCxt}.${N.parentDataProperty}`)\n gen.var(N.rootData, _`${N.valCxt}.${N.rootData}`)\n if (opts.dynamicRef) gen.var(N.dynamicAnchors, _`${N.valCxt}.${N.dynamicAnchors}`)\n },\n () => {\n gen.var(N.instancePath, _`\"\"`)\n gen.var(N.parentData, _`undefined`)\n gen.var(N.parentDataProperty, _`undefined`)\n gen.var(N.rootData, N.data)\n if (opts.dynamicRef) gen.var(N.dynamicAnchors, _`{}`)\n }\n )\n}\n\nfunction topSchemaObjCode(it: SchemaObjCxt): void {\n const {schema, opts, gen} = it\n validateFunction(it, () => {\n if (opts.$comment && schema.$comment) commentKeyword(it)\n checkNoDefault(it)\n gen.let(N.vErrors, null)\n gen.let(N.errors, 0)\n if (opts.unevaluated) resetEvaluated(it)\n typeAndKeywords(it)\n returnResults(it)\n })\n return\n}\n\nfunction resetEvaluated(it: SchemaObjCxt): void {\n // TODO maybe some hook to execute it in the end to check whether props/items are Name, as in assignEvaluated\n const {gen, validateName} = it\n it.evaluated = gen.const(\"evaluated\", _`${validateName}.evaluated`)\n gen.if(_`${it.evaluated}.dynamicProps`, () => gen.assign(_`${it.evaluated}.props`, _`undefined`))\n gen.if(_`${it.evaluated}.dynamicItems`, () => gen.assign(_`${it.evaluated}.items`, _`undefined`))\n}\n\nfunction funcSourceUrl(schema: AnySchema, opts: InstanceOptions): Code {\n const schId = typeof schema == \"object\" && schema[opts.schemaId]\n return schId && (opts.code.source || opts.code.process) ? _`/*# sourceURL=${schId} */` : nil\n}\n\n// schema compilation - this function is used recursively to generate code for sub-schemas\nfunction subschemaCode(it: SchemaCxt, valid: Name): void {\n if (isSchemaObj(it)) {\n checkKeywords(it)\n if (schemaCxtHasRules(it)) {\n subSchemaObjCode(it, valid)\n return\n }\n }\n boolOrEmptySchema(it, valid)\n}\n\nfunction schemaCxtHasRules({schema, self}: SchemaCxt): boolean {\n if (typeof schema == \"boolean\") return !schema\n for (const key in schema) if (self.RULES.all[key]) return true\n return false\n}\n\nfunction isSchemaObj(it: SchemaCxt): it is SchemaObjCxt {\n return typeof it.schema != \"boolean\"\n}\n\nfunction subSchemaObjCode(it: SchemaObjCxt, valid: Name): void {\n const {schema, gen, opts} = it\n if (opts.$comment && schema.$comment) commentKeyword(it)\n updateContext(it)\n checkAsyncSchema(it)\n const errsCount = gen.const(\"_errs\", N.errors)\n typeAndKeywords(it, errsCount)\n // TODO var\n gen.var(valid, _`${errsCount} === ${N.errors}`)\n}\n\nfunction checkKeywords(it: SchemaObjCxt): void {\n checkUnknownRules(it)\n checkRefsAndKeywords(it)\n}\n\nfunction typeAndKeywords(it: SchemaObjCxt, errsCount?: Name): void {\n if (it.opts.jtd) return schemaKeywords(it, [], false, errsCount)\n const types = getSchemaTypes(it.schema)\n const checkedTypes = coerceAndCheckDataType(it, types)\n schemaKeywords(it, types, !checkedTypes, errsCount)\n}\n\nfunction checkRefsAndKeywords(it: SchemaObjCxt): void {\n const {schema, errSchemaPath, opts, self} = it\n if (schema.$ref && opts.ignoreKeywordsWithRef && schemaHasRulesButRef(schema, self.RULES)) {\n self.logger.warn(`$ref: keywords ignored in schema at path \"${errSchemaPath}\"`)\n }\n}\n\nfunction checkNoDefault(it: SchemaObjCxt): void {\n const {schema, opts} = it\n if (schema.default !== undefined && opts.useDefaults && opts.strictSchema) {\n checkStrictMode(it, \"default is ignored in the schema root\")\n }\n}\n\nfunction updateContext(it: SchemaObjCxt): void {\n const schId = it.schema[it.opts.schemaId]\n if (schId) it.baseId = resolveUrl(it.opts.uriResolver, it.baseId, schId)\n}\n\nfunction checkAsyncSchema(it: SchemaObjCxt): void {\n if (it.schema.$async && !it.schemaEnv.$async) throw new Error(\"async schema in sync schema\")\n}\n\nfunction commentKeyword({gen, schemaEnv, schema, errSchemaPath, opts}: SchemaObjCxt): void {\n const msg = schema.$comment\n if (opts.$comment === true) {\n gen.code(_`${N.self}.logger.log(${msg})`)\n } else if (typeof opts.$comment == \"function\") {\n const schemaPath = str`${errSchemaPath}/$comment`\n const rootName = gen.scopeValue(\"root\", {ref: schemaEnv.root})\n gen.code(_`${N.self}.opts.$comment(${msg}, ${schemaPath}, ${rootName}.schema)`)\n }\n}\n\nfunction returnResults(it: SchemaCxt): void {\n const {gen, schemaEnv, validateName, ValidationError, opts} = it\n if (schemaEnv.$async) {\n // TODO assign unevaluated\n gen.if(\n _`${N.errors} === 0`,\n () => gen.return(N.data),\n () => gen.throw(_`new ${ValidationError as Name}(${N.vErrors})`)\n )\n } else {\n gen.assign(_`${validateName}.errors`, N.vErrors)\n if (opts.unevaluated) assignEvaluated(it)\n gen.return(_`${N.errors} === 0`)\n }\n}\n\nfunction assignEvaluated({gen, evaluated, props, items}: SchemaCxt): void {\n if (props instanceof Name) gen.assign(_`${evaluated}.props`, props)\n if (items instanceof Name) gen.assign(_`${evaluated}.items`, items)\n}\n\nfunction schemaKeywords(\n it: SchemaObjCxt,\n types: JSONType[],\n typeErrors: boolean,\n errsCount?: Name\n): void {\n const {gen, schema, data, allErrors, opts, self} = it\n const {RULES} = self\n if (schema.$ref && (opts.ignoreKeywordsWithRef || !schemaHasRulesButRef(schema, RULES))) {\n gen.block(() => keywordCode(it, \"$ref\", (RULES.all.$ref as Rule).definition)) // TODO typecast\n return\n }\n if (!opts.jtd) checkStrictTypes(it, types)\n gen.block(() => {\n for (const group of RULES.rules) groupKeywords(group)\n groupKeywords(RULES.post)\n })\n\n function groupKeywords(group: RuleGroup): void {\n if (!shouldUseGroup(schema, group)) return\n if (group.type) {\n gen.if(checkDataType(group.type, data, opts.strictNumbers))\n iterateKeywords(it, group)\n if (types.length === 1 && types[0] === group.type && typeErrors) {\n gen.else()\n reportTypeError(it)\n }\n gen.endIf()\n } else {\n iterateKeywords(it, group)\n }\n // TODO make it \"ok\" call?\n if (!allErrors) gen.if(_`${N.errors} === ${errsCount || 0}`)\n }\n}\n\nfunction iterateKeywords(it: SchemaObjCxt, group: RuleGroup): void {\n const {\n gen,\n schema,\n opts: {useDefaults},\n } = it\n if (useDefaults) assignDefaults(it, group.type)\n gen.block(() => {\n for (const rule of group.rules) {\n if (shouldUseRule(schema, rule)) {\n keywordCode(it, rule.keyword, rule.definition, group.type)\n }\n }\n })\n}\n\nfunction checkStrictTypes(it: SchemaObjCxt, types: JSONType[]): void {\n if (it.schemaEnv.meta || !it.opts.strictTypes) return\n checkContextTypes(it, types)\n if (!it.opts.allowUnionTypes) checkMultipleTypes(it, types)\n checkKeywordTypes(it, it.dataTypes)\n}\n\nfunction checkContextTypes(it: SchemaObjCxt, types: JSONType[]): void {\n if (!types.length) return\n if (!it.dataTypes.length) {\n it.dataTypes = types\n return\n }\n types.forEach((t) => {\n if (!includesType(it.dataTypes, t)) {\n strictTypesError(it, `type \"${t}\" not allowed by context \"${it.dataTypes.join(\",\")}\"`)\n }\n })\n narrowSchemaTypes(it, types)\n}\n\nfunction checkMultipleTypes(it: SchemaObjCxt, ts: JSONType[]): void {\n if (ts.length > 1 && !(ts.length === 2 && ts.includes(\"null\"))) {\n strictTypesError(it, \"use allowUnionTypes to allow union type keyword\")\n }\n}\n\nfunction checkKeywordTypes(it: SchemaObjCxt, ts: JSONType[]): void {\n const rules = it.self.RULES.all\n for (const keyword in rules) {\n const rule = rules[keyword]\n if (typeof rule == \"object\" && shouldUseRule(it.schema, rule)) {\n const {type} = rule.definition\n if (type.length && !type.some((t) => hasApplicableType(ts, t))) {\n strictTypesError(it, `missing type \"${type.join(\",\")}\" for keyword \"${keyword}\"`)\n }\n }\n }\n}\n\nfunction hasApplicableType(schTs: JSONType[], kwdT: JSONType): boolean {\n return schTs.includes(kwdT) || (kwdT === \"number\" && schTs.includes(\"integer\"))\n}\n\nfunction includesType(ts: JSONType[], t: JSONType): boolean {\n return ts.includes(t) || (t === \"integer\" && ts.includes(\"number\"))\n}\n\nfunction narrowSchemaTypes(it: SchemaObjCxt, withTypes: JSONType[]): void {\n const ts: JSONType[] = []\n for (const t of it.dataTypes) {\n if (includesType(withTypes, t)) ts.push(t)\n else if (withTypes.includes(\"integer\") && t === \"number\") ts.push(\"integer\")\n }\n it.dataTypes = ts\n}\n\nfunction strictTypesError(it: SchemaObjCxt, msg: string): void {\n const schemaPath = it.schemaEnv.baseId + it.errSchemaPath\n msg += ` at \"${schemaPath}\" (strictTypes)`\n checkStrictMode(it, msg, it.opts.strictTypes)\n}\n\nexport class KeywordCxt implements KeywordErrorCxt {\n readonly gen: CodeGen\n readonly allErrors?: boolean\n readonly keyword: string\n readonly data: Name // Name referencing the current level of the data instance\n readonly $data?: string | false\n schema: any // keyword value in the schema\n readonly schemaValue: Code | number | boolean // Code reference to keyword schema value or primitive value\n readonly schemaCode: Code | number | boolean // Code reference to resolved schema value (different if schema is $data)\n readonly schemaType: JSONType[] // allowed type(s) of keyword value in the schema\n readonly parentSchema: AnySchemaObject\n readonly errsCount?: Name // Name reference to the number of validation errors collected before this keyword,\n // requires option trackErrors in keyword definition\n params: KeywordCxtParams // object to pass parameters to error messages from keyword code\n readonly it: SchemaObjCxt // schema compilation context (schema is guaranteed to be an object, not boolean)\n readonly def: AddedKeywordDefinition\n\n constructor(it: SchemaObjCxt, def: AddedKeywordDefinition, keyword: string) {\n validateKeywordUsage(it, def, keyword)\n this.gen = it.gen\n this.allErrors = it.allErrors\n this.keyword = keyword\n this.data = it.data\n this.schema = it.schema[keyword]\n this.$data = def.$data && it.opts.$data && this.schema && this.schema.$data\n this.schemaValue = schemaRefOrVal(it, this.schema, keyword, this.$data)\n this.schemaType = def.schemaType\n this.parentSchema = it.schema\n this.params = {}\n this.it = it\n this.def = def\n\n if (this.$data) {\n this.schemaCode = it.gen.const(\"vSchema\", getData(this.$data, it))\n } else {\n this.schemaCode = this.schemaValue\n if (!validSchemaType(this.schema, def.schemaType, def.allowUndefined)) {\n throw new Error(`${keyword} value must be ${JSON.stringify(def.schemaType)}`)\n }\n }\n\n if (\"code\" in def ? def.trackErrors : def.errors !== false) {\n this.errsCount = it.gen.const(\"_errs\", N.errors)\n }\n }\n\n result(condition: Code, successAction?: () => void, failAction?: () => void): void {\n this.failResult(not(condition), successAction, failAction)\n }\n\n failResult(condition: Code, successAction?: () => void, failAction?: () => void): void {\n this.gen.if(condition)\n if (failAction) failAction()\n else this.error()\n if (successAction) {\n this.gen.else()\n successAction()\n if (this.allErrors) this.gen.endIf()\n } else {\n if (this.allErrors) this.gen.endIf()\n else this.gen.else()\n }\n }\n\n pass(condition: Code, failAction?: () => void): void {\n this.failResult(not(condition), undefined, failAction)\n }\n\n fail(condition?: Code): void {\n if (condition === undefined) {\n this.error()\n if (!this.allErrors) this.gen.if(false) // this branch will be removed by gen.optimize\n return\n }\n this.gen.if(condition)\n this.error()\n if (this.allErrors) this.gen.endIf()\n else this.gen.else()\n }\n\n fail$data(condition: Code): void {\n if (!this.$data) return this.fail(condition)\n const {schemaCode} = this\n this.fail(_`${schemaCode} !== undefined && (${or(this.invalid$data(), condition)})`)\n }\n\n error(append?: boolean, errorParams?: KeywordCxtParams, errorPaths?: ErrorPaths): void {\n if (errorParams) {\n this.setParams(errorParams)\n this._error(append, errorPaths)\n this.setParams({})\n return\n }\n this._error(append, errorPaths)\n }\n\n private _error(append?: boolean, errorPaths?: ErrorPaths): void {\n ;(append ? reportExtraError : reportError)(this, this.def.error, errorPaths)\n }\n\n $dataError(): void {\n reportError(this, this.def.$dataError || keyword$DataError)\n }\n\n reset(): void {\n if (this.errsCount === undefined) throw new Error('add \"trackErrors\" to keyword definition')\n resetErrorsCount(this.gen, this.errsCount)\n }\n\n ok(cond: Code | boolean): void {\n if (!this.allErrors) this.gen.if(cond)\n }\n\n setParams(obj: KeywordCxtParams, assign?: true): void {\n if (assign) Object.assign(this.params, obj)\n else this.params = obj\n }\n\n block$data(valid: Name, codeBlock: () => void, $dataValid: Code = nil): void {\n this.gen.block(() => {\n this.check$data(valid, $dataValid)\n codeBlock()\n })\n }\n\n check$data(valid: Name = nil, $dataValid: Code = nil): void {\n if (!this.$data) return\n const {gen, schemaCode, schemaType, def} = this\n gen.if(or(_`${schemaCode} === undefined`, $dataValid))\n if (valid !== nil) gen.assign(valid, true)\n if (schemaType.length || def.validateSchema) {\n gen.elseIf(this.invalid$data())\n this.$dataError()\n if (valid !== nil) gen.assign(valid, false)\n }\n gen.else()\n }\n\n invalid$data(): Code {\n const {gen, schemaCode, schemaType, def, it} = this\n return or(wrong$DataType(), invalid$DataSchema())\n\n function wrong$DataType(): Code {\n if (schemaType.length) {\n /* istanbul ignore if */\n if (!(schemaCode instanceof Name)) throw new Error(\"ajv implementation error\")\n const st = Array.isArray(schemaType) ? schemaType : [schemaType]\n return _`${checkDataTypes(st, schemaCode, it.opts.strictNumbers, DataType.Wrong)}`\n }\n return nil\n }\n\n function invalid$DataSchema(): Code {\n if (def.validateSchema) {\n const validateSchemaRef = gen.scopeValue(\"validate$data\", {ref: def.validateSchema}) // TODO value.code for standalone\n return _`!${validateSchemaRef}(${schemaCode})`\n }\n return nil\n }\n }\n\n subschema(appl: SubschemaArgs, valid: Name): SchemaCxt {\n const subschema = getSubschema(this.it, appl)\n extendSubschemaData(subschema, this.it, appl)\n extendSubschemaMode(subschema, appl)\n const nextContext = {...this.it, ...subschema, items: undefined, props: undefined}\n subschemaCode(nextContext, valid)\n return nextContext\n }\n\n mergeEvaluated(schemaCxt: SchemaCxt, toName?: typeof Name): void {\n const {it, gen} = this\n if (!it.opts.unevaluated) return\n if (it.props !== true && schemaCxt.props !== undefined) {\n it.props = mergeEvaluated.props(gen, schemaCxt.props, it.props, toName)\n }\n if (it.items !== true && schemaCxt.items !== undefined) {\n it.items = mergeEvaluated.items(gen, schemaCxt.items, it.items, toName)\n }\n }\n\n mergeValidEvaluated(schemaCxt: SchemaCxt, valid: Name): boolean | void {\n const {it, gen} = this\n if (it.opts.unevaluated && (it.props !== true || it.items !== true)) {\n gen.if(valid, () => this.mergeEvaluated(schemaCxt, Name))\n return true\n }\n }\n}\n\nfunction keywordCode(\n it: SchemaObjCxt,\n keyword: string,\n def: AddedKeywordDefinition,\n ruleType?: JSONType\n): void {\n const cxt = new KeywordCxt(it, def, keyword)\n if (\"code\" in def) {\n def.code(cxt, ruleType)\n } else if (cxt.$data && def.validate) {\n funcKeywordCode(cxt, def)\n } else if (\"macro\" in def) {\n macroKeywordCode(cxt, def)\n } else if (def.compile || def.validate) {\n funcKeywordCode(cxt, def)\n }\n}\n\nconst JSON_POINTER = /^\\/(?:[^~]|~0|~1)*$/\nconst RELATIVE_JSON_POINTER = /^([0-9]+)(#|\\/(?:[^~]|~0|~1)*)?$/\nexport function getData(\n $data: string,\n {dataLevel, dataNames, dataPathArr}: SchemaCxt\n): Code | number {\n let jsonPointer\n let data: Code\n if ($data === \"\") return N.rootData\n if ($data[0] === \"/\") {\n if (!JSON_POINTER.test($data)) throw new Error(`Invalid JSON-pointer: ${$data}`)\n jsonPointer = $data\n data = N.rootData\n } else {\n const matches = RELATIVE_JSON_POINTER.exec($data)\n if (!matches) throw new Error(`Invalid JSON-pointer: ${$data}`)\n const up: number = +matches[1]\n jsonPointer = matches[2]\n if (jsonPointer === \"#\") {\n if (up >= dataLevel) throw new Error(errorMsg(\"property/index\", up))\n return dataPathArr[dataLevel - up]\n }\n if (up > dataLevel) throw new Error(errorMsg(\"data\", up))\n data = dataNames[dataLevel - up]\n if (!jsonPointer) return data\n }\n\n let expr = data\n const segments = jsonPointer.split(\"/\")\n for (const segment of segments) {\n if (segment) {\n data = _`${data}${getProperty(unescapeJsonPointer(segment))}`\n expr = _`${expr} && ${data}`\n }\n }\n return expr\n\n function errorMsg(pointerType: string, up: number): string {\n return `Cannot access ${pointerType} ${up} levels up, current level is ${dataLevel}`\n }\n}\n","import type {ErrorObject} from \"../types\"\n\nexport default class ValidationError extends Error {\n readonly errors: Partial<ErrorObject>[]\n readonly ajv: true\n readonly validation: true\n\n constructor(errors: Partial<ErrorObject>[]) {\n super(\"validation failed\")\n this.errors = errors\n this.ajv = this.validation = true\n }\n}\n","import {resolveUrl, normalizeId, getFullPath} from \"./resolve\"\nimport type {UriResolver} from \"../types\"\n\nexport default class MissingRefError extends Error {\n readonly missingRef: string\n readonly missingSchema: string\n\n constructor(resolver: UriResolver, baseId: string, ref: string, msg?: string) {\n super(msg || `can't resolve reference ${ref} from id ${baseId}`)\n this.missingRef = resolveUrl(resolver, baseId, ref)\n this.missingSchema = normalizeId(getFullPath(resolver, this.missingRef))\n }\n}\n","import type {\n AnySchema,\n AnySchemaObject,\n AnyValidateFunction,\n AsyncValidateFunction,\n EvaluatedProperties,\n EvaluatedItems,\n} from \"../types\"\nimport type Ajv from \"../core\"\nimport type {InstanceOptions} from \"../core\"\nimport {CodeGen, _, nil, stringify, Name, Code, ValueScopeName} from \"./codegen\"\nimport ValidationError from \"../runtime/validation_error\"\nimport N from \"./names\"\nimport {LocalRefs, getFullPath, _getFullPath, inlineRef, normalizeId, resolveUrl} from \"./resolve\"\nimport {schemaHasRulesButRef, unescapeFragment} from \"./util\"\nimport {validateFunctionCode} from \"./validate\"\nimport {URIComponent} from \"fast-uri\"\nimport {JSONType} from \"./rules\"\n\nexport type SchemaRefs = {\n [Ref in string]?: SchemaEnv | AnySchema\n}\n\nexport interface SchemaCxt {\n readonly gen: CodeGen\n readonly allErrors?: boolean // validation mode - whether to collect all errors or break on error\n readonly data: Name // Name with reference to the current part of data instance\n readonly parentData: Name // should be used in keywords modifying data\n readonly parentDataProperty: Code | number // should be used in keywords modifying data\n readonly dataNames: Name[]\n readonly dataPathArr: (Code | number)[]\n readonly dataLevel: number // the level of the currently validated data,\n // it can be used to access both the property names and the data on all levels from the top.\n dataTypes: JSONType[] // data types applied to the current part of data instance\n definedProperties: Set<string> // set of properties to keep track of for required checks\n readonly topSchemaRef: Code\n readonly validateName: Name\n evaluated?: Name\n readonly ValidationError?: Name\n readonly schema: AnySchema // current schema object - equal to parentSchema passed via KeywordCxt\n readonly schemaEnv: SchemaEnv\n readonly rootId: string\n baseId: string // the current schema base URI that should be used as the base for resolving URIs in references (\\$ref)\n readonly schemaPath: Code // the run-time expression that evaluates to the property name of the current schema\n readonly errSchemaPath: string // this is actual string, should not be changed to Code\n readonly errorPath: Code\n readonly propertyName?: Name\n readonly compositeRule?: boolean // true indicates that the current schema is inside the compound keyword,\n // where failing some rule doesn't mean validation failure (`anyOf`, `oneOf`, `not`, `if`).\n // This flag is used to determine whether you can return validation result immediately after any error in case the option `allErrors` is not `true.\n // You only need to use it if you have many steps in your keywords and potentially can define multiple errors.\n props?: EvaluatedProperties | Name // properties evaluated by this schema - used by parent schema or assigned to validation function\n items?: EvaluatedItems | Name // last item evaluated by this schema - used by parent schema or assigned to validation function\n jtdDiscriminator?: string\n jtdMetadata?: boolean\n readonly createErrors?: boolean\n readonly opts: InstanceOptions // Ajv instance option.\n readonly self: Ajv // current Ajv instance\n}\n\nexport interface SchemaObjCxt extends SchemaCxt {\n readonly schema: AnySchemaObject\n}\ninterface SchemaEnvArgs {\n readonly schema: AnySchema\n readonly schemaId?: \"$id\" | \"id\"\n readonly root?: SchemaEnv\n readonly baseId?: string\n readonly schemaPath?: string\n readonly localRefs?: LocalRefs\n readonly meta?: boolean\n}\n\nexport class SchemaEnv implements SchemaEnvArgs {\n readonly schema: AnySchema\n readonly schemaId?: \"$id\" | \"id\"\n readonly root: SchemaEnv\n baseId: string // TODO possibly, it should be readonly\n schemaPath?: string\n localRefs?: LocalRefs\n readonly meta?: boolean\n readonly $async?: boolean // true if the current schema is asynchronous.\n readonly refs: SchemaRefs = {}\n readonly dynamicAnchors: {[Ref in string]?: true} = {}\n validate?: AnyValidateFunction\n validateName?: ValueScopeName\n serialize?: (data: unknown) => string\n serializeName?: ValueScopeName\n parse?: (data: string) => unknown\n parseName?: ValueScopeName\n\n constructor(env: SchemaEnvArgs) {\n let schema: AnySchemaObject | undefined\n if (typeof env.schema == \"object\") schema = env.schema\n this.schema = env.schema\n this.schemaId = env.schemaId\n this.root = env.root || this\n this.baseId = env.baseId ?? normalizeId(schema?.[env.schemaId || \"$id\"])\n this.schemaPath = env.schemaPath\n this.localRefs = env.localRefs\n this.meta = env.meta\n this.$async = schema?.$async\n this.refs = {}\n }\n}\n\n// let codeSize = 0\n// let nodeCount = 0\n\n// Compiles schema in SchemaEnv\nexport function compileSchema(this: Ajv, sch: SchemaEnv): SchemaEnv {\n // TODO refactor - remove compilations\n const _sch = getCompilingSchema.call(this, sch)\n if (_sch) return _sch\n const rootId = getFullPath(this.opts.uriResolver, sch.root.baseId) // TODO if getFullPath removed 1 tests fails\n const {es5, lines} = this.opts.code\n const {ownProperties} = this.opts\n const gen = new CodeGen(this.scope, {es5, lines, ownProperties})\n let _ValidationError\n if (sch.$async) {\n _ValidationError = gen.scopeValue(\"Error\", {\n ref: ValidationError,\n code: _`require(\"ajv/dist/runtime/validation_error\").default`,\n })\n }\n\n const validateName = gen.scopeName(\"validate\")\n sch.validateName = validateName\n\n const schemaCxt: SchemaCxt = {\n gen,\n allErrors: this.opts.allErrors,\n data: N.data,\n parentData: N.parentData,\n parentDataProperty: N.parentDataProperty,\n dataNames: [N.data],\n dataPathArr: [nil], // TODO can its length be used as dataLevel if nil is removed?\n dataLevel: 0,\n dataTypes: [],\n definedProperties: new Set<string>(),\n topSchemaRef: gen.scopeValue(\n \"schema\",\n this.opts.code.source === true\n ? {ref: sch.schema, code: stringify(sch.schema)}\n : {ref: sch.schema}\n ),\n validateName,\n ValidationError: _ValidationError,\n schema: sch.schema,\n schemaEnv: sch,\n rootId,\n baseId: sch.baseId || rootId,\n schemaPath: nil,\n errSchemaPath: sch.schemaPath || (this.opts.jtd ? \"\" : \"#\"),\n errorPath: _`\"\"`,\n opts: this.opts,\n self: this,\n }\n\n let sourceCode: string | undefined\n try {\n this._compilations.add(sch)\n validateFunctionCode(schemaCxt)\n gen.optimize(this.opts.code.optimize)\n // gen.optimize(1)\n const validateCode = gen.toString()\n sourceCode = `${gen.scopeRefs(N.scope)}return ${validateCode}`\n // console.log((codeSize += sourceCode.length), (nodeCount += gen.nodeCount))\n if (this.opts.code.process) sourceCode = this.opts.code.process(sourceCode, sch)\n // console.log(\"\\n\\n\\n *** \\n\", sourceCode)\n const makeValidate = new Function(`${N.self}`, `${N.scope}`, sourceCode)\n const validate: AnyValidateFunction = makeValidate(this, this.scope.get())\n this.scope.value(validateName, {ref: validate})\n\n validate.errors = null\n validate.schema = sch.schema\n validate.schemaEnv = sch\n if (sch.$async) (validate as AsyncValidateFunction).$async = true\n if (this.opts.code.source === true) {\n validate.source = {validateName, validateCode, scopeValues: gen._values}\n }\n if (this.opts.unevaluated) {\n const {props, items} = schemaCxt\n validate.evaluated = {\n props: props instanceof Name ? undefined : props,\n items: items instanceof Name ? undefined : items,\n dynamicProps: props instanceof Name,\n dynamicItems: items instanceof Name,\n }\n if (validate.source) validate.source.evaluated = stringify(validate.evaluated)\n }\n sch.validate = validate\n return sch\n } catch (e) {\n delete sch.validate\n delete sch.validateName\n if (sourceCode) this.logger.error(\"Error compiling schema, function code:\", sourceCode)\n // console.log(\"\\n\\n\\n *** \\n\", sourceCode, this.opts)\n throw e\n } finally {\n this._compilations.delete(sch)\n }\n}\n\nexport function resolveRef(\n this: Ajv,\n root: SchemaEnv,\n baseId: string,\n ref: string\n): AnySchema | SchemaEnv | undefined {\n ref = resolveUrl(this.opts.uriResolver, baseId, ref)\n const schOrFunc = root.refs[ref]\n if (schOrFunc) return schOrFunc\n\n let _sch = resolve.call(this, root, ref)\n if (_sch === undefined) {\n const schema = root.localRefs?.[ref] // TODO maybe localRefs should hold SchemaEnv\n const {schemaId} = this.opts\n if (schema) _sch = new SchemaEnv({schema, schemaId, root, baseId})\n }\n\n if (_sch === undefined) return\n return (root.refs[ref] = inlineOrCompile.call(this, _sch))\n}\n\nfunction inlineOrCompile(this: Ajv, sch: SchemaEnv): AnySchema | SchemaEnv {\n if (inlineRef(sch.schema, this.opts.inlineRefs)) return sch.schema\n return sch.validate ? sch : compileSchema.call(this, sch)\n}\n\n// Index of schema compilation in the currently compiled list\nexport function getCompilingSchema(this: Ajv, schEnv: SchemaEnv): SchemaEnv | void {\n for (const sch of this._compilations) {\n if (sameSchemaEnv(sch, schEnv)) return sch\n }\n}\n\nfunction sameSchemaEnv(s1: SchemaEnv, s2: SchemaEnv): boolean {\n return s1.schema === s2.schema && s1.root === s2.root && s1.baseId === s2.baseId\n}\n\n// resolve and compile the references ($ref)\n// TODO returns AnySchemaObject (if the schema can be inlined) or validation function\nfunction resolve(\n this: Ajv,\n root: SchemaEnv, // information about the root schema for the current schema\n ref: string // reference to resolve\n): SchemaEnv | undefined {\n let sch\n while (typeof (sch = this.refs[ref]) == \"string\") ref = sch\n return sch || this.schemas[ref] || resolveSchema.call(this, root, ref)\n}\n\n// Resolve schema, its root and baseId\nexport function resolveSchema(\n this: Ajv,\n root: SchemaEnv, // root object with properties schema, refs TODO below SchemaEnv is assigned to it\n ref: string // reference to resolve\n): SchemaEnv | undefined {\n const p = this.opts.uriResolver.parse(ref)\n const refPath = _getFullPath(this.opts.uriResolver, p)\n let baseId = getFullPath(this.opts.uriResolver, root.baseId, undefined)\n // TODO `Object.keys(root.schema).length > 0` should not be needed - but removing breaks 2 tests\n if (Object.keys(root.schema).length > 0 && refPath === baseId) {\n return getJsonPointer.call(this, p, root)\n }\n\n const id = normalizeId(refPath)\n const schOrRef = this.refs[id] || this.schemas[id]\n if (typeof schOrRef == \"string\") {\n const sch = resolveSchema.call(this, root, schOrRef)\n if (typeof sch?.schema !== \"object\") return\n return getJsonPointer.call(this, p, sch)\n }\n\n if (typeof schOrRef?.schema !== \"object\") return\n if (!schOrRef.validate) compileSchema.call(this, schOrRef)\n if (id === normalizeId(ref)) {\n const {schema} = schOrRef\n const {schemaId} = this.opts\n const schId = schema[schemaId]\n if (schId) baseId = resolveUrl(this.opts.uriResolver, baseId, schId)\n return new SchemaEnv({schema, schemaId, root, baseId})\n }\n return getJsonPointer.call(this, p, schOrRef)\n}\n\nconst PREVENT_SCOPE_CHANGE = new Set([\n \"properties\",\n \"patternProperties\",\n \"enum\",\n \"dependencies\",\n \"definitions\",\n])\n\nfunction getJsonPointer(\n this: Ajv,\n parsedRef: URIComponent,\n {baseId, schema, root}: SchemaEnv\n): SchemaEnv | undefined {\n if (parsedRef.fragment?.[0] !== \"/\") return\n for (const part of parsedRef.fragment.slice(1).split(\"/\")) {\n if (typeof schema === \"boolean\") return\n const partSchema = schema[unescapeFragment(part)]\n if (partSchema === undefined) return\n schema = partSchema\n // TODO PREVENT_SCOPE_CHANGE could be defined in keyword def?\n const schId = typeof schema === \"object\" && schema[this.opts.schemaId]\n if (!PREVENT_SCOPE_CHANGE.has(part) && schId) {\n baseId = resolveUrl(this.opts.uriResolver, baseId, schId)\n }\n }\n let env: SchemaEnv | undefined\n if (typeof schema != \"boolean\" && schema.$ref && !schemaHasRulesButRef(schema, this.RULES)) {\n const $ref = resolveUrl(this.opts.uriResolver, baseId, schema.$ref)\n env = resolveSchema.call(this, root, $ref)\n }\n // even though resolution failed we need to return SchemaEnv to throw exception\n // so that compileAsync loads missing schema.\n const {schemaId} = this.opts\n env = env || new SchemaEnv({schema, schemaId, root, baseId})\n if (env.schema !== env.root.schema) return env\n return undefined\n}\n","{\n \"$id\": \"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#\",\n \"description\": \"Meta-schema for $data reference (JSON AnySchema extension proposal)\",\n \"type\": \"object\",\n \"required\": [\"$data\"],\n \"properties\": {\n \"$data\": {\n \"type\": \"string\",\n \"anyOf\": [{\"format\": \"relative-json-pointer\"}, {\"format\": \"json-pointer\"}]\n }\n },\n \"additionalProperties\": false\n}\n","'use strict'\n\nconst HEX = {\n 0: 0,\n 1: 1,\n 2: 2,\n 3: 3,\n 4: 4,\n 5: 5,\n 6: 6,\n 7: 7,\n 8: 8,\n 9: 9,\n a: 10,\n A: 10,\n b: 11,\n B: 11,\n c: 12,\n C: 12,\n d: 13,\n D: 13,\n e: 14,\n E: 14,\n f: 15,\n F: 15\n}\n\nmodule.exports = {\n HEX\n}\n","'use strict'\n\nconst { HEX } = require('./scopedChars')\n\nconst IPV4_REG = /^(?:(?: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\n\nfunction normalizeIPv4 (host) {\n if (findToken(host, '.') < 3) { return { host, isIPV4: false } }\n const matches = host.match(IPV4_REG) || []\n const [address] = matches\n if (address) {\n return { host: stripLeadingZeros(address, '.'), isIPV4: true }\n } else {\n return { host, isIPV4: false }\n }\n}\n\n/**\n * @param {string[]} input\n * @param {boolean} [keepZero=false]\n * @returns {string|undefined}\n */\nfunction stringArrayToHexStripped (input, keepZero = false) {\n let acc = ''\n let strip = true\n for (const c of input) {\n if (HEX[c] === undefined) return undefined\n if (c !== '0' && strip === true) strip = false\n if (!strip) acc += c\n }\n if (keepZero && acc.length === 0) acc = '0'\n return acc\n}\n\nfunction getIPV6 (input) {\n let tokenCount = 0\n const output = { error: false, address: '', zone: '' }\n const address = []\n const buffer = []\n let isZone = false\n let endipv6Encountered = false\n let endIpv6 = false\n\n function consume () {\n if (buffer.length) {\n if (isZone === false) {\n const hex = stringArrayToHexStripped(buffer)\n if (hex !== undefined) {\n address.push(hex)\n } else {\n output.error = true\n return false\n }\n }\n buffer.length = 0\n }\n return true\n }\n\n for (let i = 0; i < input.length; i++) {\n const cursor = input[i]\n if (cursor === '[' || cursor === ']') { continue }\n if (cursor === ':') {\n if (endipv6Encountered === true) {\n endIpv6 = true\n }\n if (!consume()) { break }\n tokenCount++\n address.push(':')\n if (tokenCount > 7) {\n // not valid\n output.error = true\n break\n }\n if (i - 1 >= 0 && input[i - 1] === ':') {\n endipv6Encountered = true\n }\n continue\n } else if (cursor === '%') {\n if (!consume()) { break }\n // switch to zone detection\n isZone = true\n } else {\n buffer.push(cursor)\n continue\n }\n }\n if (buffer.length) {\n if (isZone) {\n output.zone = buffer.join('')\n } else if (endIpv6) {\n address.push(buffer.join(''))\n } else {\n address.push(stringArrayToHexStripped(buffer))\n }\n }\n output.address = address.join('')\n return output\n}\n\nfunction normalizeIPv6 (host) {\n if (findToken(host, ':') < 2) { return { host, isIPV6: false } }\n const ipv6 = getIPV6(host)\n\n if (!ipv6.error) {\n let newHost = ipv6.address\n let escapedHost = ipv6.address\n if (ipv6.zone) {\n newHost += '%' + ipv6.zone\n escapedHost += '%25' + ipv6.zone\n }\n return { host: newHost, escapedHost, isIPV6: true }\n } else {\n return { host, isIPV6: false }\n }\n}\n\nfunction stripLeadingZeros (str, token) {\n let out = ''\n let skip = true\n const l = str.length\n for (let i = 0; i < l; i++) {\n const c = str[i]\n if (c === '0' && skip) {\n if ((i + 1 <= l && str[i + 1] === token) || i + 1 === l) {\n out += c\n skip = false\n }\n } else {\n if (c === token) {\n skip = true\n } else {\n skip = false\n }\n out += c\n }\n }\n return out\n}\n\nfunction findToken (str, token) {\n let ind = 0\n for (let i = 0; i < str.length; i++) {\n if (str[i] === token) ind++\n }\n return ind\n}\n\nconst RDS1 = /^\\.\\.?\\//u\nconst RDS2 = /^\\/\\.(?:\\/|$)/u\nconst RDS3 = /^\\/\\.\\.(?:\\/|$)/u\nconst RDS5 = /^\\/?(?:.|\\n)*?(?=\\/|$)/u\n\nfunction removeDotSegments (input) {\n const output = []\n\n while (input.length) {\n if (input.match(RDS1)) {\n input = input.replace(RDS1, '')\n } else if (input.match(RDS2)) {\n input = input.replace(RDS2, '/')\n } else if (input.match(RDS3)) {\n input = input.replace(RDS3, '/')\n output.pop()\n } else if (input === '.' || input === '..') {\n input = ''\n } else {\n const im = input.match(RDS5)\n if (im) {\n const s = im[0]\n input = input.slice(s.length)\n output.push(s)\n } else {\n throw new Error('Unexpected dot segment condition')\n }\n }\n }\n return output.join('')\n}\n\nfunction normalizeComponentEncoding (components, esc) {\n const func = esc !== true ? escape : unescape\n if (components.scheme !== undefined) {\n components.scheme = func(components.scheme)\n }\n if (components.userinfo !== undefined) {\n components.userinfo = func(components.userinfo)\n }\n if (components.host !== undefined) {\n components.host = func(components.host)\n }\n if (components.path !== undefined) {\n components.path = func(components.path)\n }\n if (components.query !== undefined) {\n components.query = func(components.query)\n }\n if (components.fragment !== undefined) {\n components.fragment = func(components.fragment)\n }\n return components\n}\n\nfunction recomposeAuthority (components) {\n const uriTokens = []\n\n if (components.userinfo !== undefined) {\n uriTokens.push(components.userinfo)\n uriTokens.push('@')\n }\n\n if (components.host !== undefined) {\n let host = unescape(components.host)\n const ipV4res = normalizeIPv4(host)\n\n if (ipV4res.isIPV4) {\n host = ipV4res.host\n } else {\n const ipV6res = normalizeIPv6(ipV4res.host)\n if (ipV6res.isIPV6 === true) {\n host = `[${ipV6res.escapedHost}]`\n } else {\n host = components.host\n }\n }\n uriTokens.push(host)\n }\n\n if (typeof components.port === 'number' || typeof components.port === 'string') {\n uriTokens.push(':')\n uriTokens.push(String(components.port))\n }\n\n return uriTokens.length ? uriTokens.join('') : undefined\n};\n\nmodule.exports = {\n recomposeAuthority,\n normalizeComponentEncoding,\n removeDotSegments,\n normalizeIPv4,\n normalizeIPv6,\n stringArrayToHexStripped\n}\n","'use strict'\n\nconst UUID_REG = /^[\\da-f]{8}-[\\da-f]{4}-[\\da-f]{4}-[\\da-f]{4}-[\\da-f]{12}$/iu\nconst URN_REG = /([\\da-z][\\d\\-a-z]{0,31}):((?:[\\w!$'()*+,\\-.:;=@]|%[\\da-f]{2})+)/iu\n\nfunction isSecure (wsComponents) {\n return typeof wsComponents.secure === 'boolean' ? wsComponents.secure : String(wsComponents.scheme).toLowerCase() === 'wss'\n}\n\nfunction httpParse (components) {\n if (!components.host) {\n components.error = components.error || 'HTTP URIs must have a host.'\n }\n\n return components\n}\n\nfunction httpSerialize (components) {\n const secure = String(components.scheme).toLowerCase() === 'https'\n\n // normalize the default port\n if (components.port === (secure ? 443 : 80) || components.port === '') {\n components.port = undefined\n }\n\n // normalize the empty path\n if (!components.path) {\n components.path = '/'\n }\n\n // NOTE: We do not parse query strings for HTTP URIs\n // as WWW Form Url Encoded query strings are part of the HTML4+ spec,\n // and not the HTTP spec.\n\n return components\n}\n\nfunction wsParse (wsComponents) {\n// indicate if the secure flag is set\n wsComponents.secure = isSecure(wsComponents)\n\n // construct resouce name\n wsComponents.resourceName = (wsComponents.path || '/') + (wsComponents.query ? '?' + wsComponents.query : '')\n wsComponents.path = undefined\n wsComponents.query = undefined\n\n return wsComponents\n}\n\nfunction wsSerialize (wsComponents) {\n// normalize the default port\n if (wsComponents.port === (isSecure(wsComponents) ? 443 : 80) || wsComponents.port === '') {\n wsComponents.port = undefined\n }\n\n // ensure scheme matches secure flag\n if (typeof wsComponents.secure === 'boolean') {\n wsComponents.scheme = (wsComponents.secure ? 'wss' : 'ws')\n wsComponents.secure = undefined\n }\n\n // reconstruct path from resource name\n if (wsComponents.resourceName) {\n const [path, query] = wsComponents.resourceName.split('?')\n wsComponents.path = (path && path !== '/' ? path : undefined)\n wsComponents.query = query\n wsComponents.resourceName = undefined\n }\n\n // forbid fragment component\n wsComponents.fragment = undefined\n\n return wsComponents\n}\n\nfunction urnParse (urnComponents, options) {\n if (!urnComponents.path) {\n urnComponents.error = 'URN can not be parsed'\n return urnComponents\n }\n const matches = urnComponents.path.match(URN_REG)\n if (matches) {\n const scheme = options.scheme || urnComponents.scheme || 'urn'\n urnComponents.nid = matches[1].toLowerCase()\n urnComponents.nss = matches[2]\n const urnScheme = `${scheme}:${options.nid || urnComponents.nid}`\n const schemeHandler = SCHEMES[urnScheme]\n urnComponents.path = undefined\n\n if (schemeHandler) {\n urnComponents = schemeHandler.parse(urnComponents, options)\n }\n } else {\n urnComponents.error = urnComponents.error || 'URN can not be parsed.'\n }\n\n return urnComponents\n}\n\nfunction urnSerialize (urnComponents, options) {\n const scheme = options.scheme || urnComponents.scheme || 'urn'\n const nid = urnComponents.nid.toLowerCase()\n const urnScheme = `${scheme}:${options.nid || nid}`\n const schemeHandler = SCHEMES[urnScheme]\n\n if (schemeHandler) {\n urnComponents = schemeHandler.serialize(urnComponents, options)\n }\n\n const uriComponents = urnComponents\n const nss = urnComponents.nss\n uriComponents.path = `${nid || options.nid}:${nss}`\n\n options.skipEscape = true\n return uriComponents\n}\n\nfunction urnuuidParse (urnComponents, options) {\n const uuidComponents = urnComponents\n uuidComponents.uuid = uuidComponents.nss\n uuidComponents.nss = undefined\n\n if (!options.tolerant && (!uuidComponents.uuid || !UUID_REG.test(uuidComponents.uuid))) {\n uuidComponents.error = uuidComponents.error || 'UUID is not valid.'\n }\n\n return uuidComponents\n}\n\nfunction urnuuidSerialize (uuidComponents) {\n const urnComponents = uuidComponents\n // normalize UUID\n urnComponents.nss = (uuidComponents.uuid || '').toLowerCase()\n return urnComponents\n}\n\nconst http = {\n scheme: 'http',\n domainHost: true,\n parse: httpParse,\n serialize: httpSerialize\n}\n\nconst https = {\n scheme: 'https',\n domainHost: http.domainHost,\n parse: httpParse,\n serialize: httpSerialize\n}\n\nconst ws = {\n scheme: 'ws',\n domainHost: true,\n parse: wsParse,\n serialize: wsSerialize\n}\n\nconst wss = {\n scheme: 'wss',\n domainHost: ws.domainHost,\n parse: ws.parse,\n serialize: ws.serialize\n}\n\nconst urn = {\n scheme: 'urn',\n parse: urnParse,\n serialize: urnSerialize,\n skipNormalize: true\n}\n\nconst urnuuid = {\n scheme: 'urn:uuid',\n parse: urnuuidParse,\n serialize: urnuuidSerialize,\n skipNormalize: true\n}\n\nconst SCHEMES = {\n http,\n https,\n ws,\n wss,\n urn,\n 'urn:uuid': urnuuid\n}\n\nmodule.exports = SCHEMES\n","'use strict'\n\nconst { normalizeIPv6, normalizeIPv4, removeDotSegments, recomposeAuthority, normalizeComponentEncoding } = require('./lib/utils')\nconst SCHEMES = require('./lib/schemes')\n\nfunction normalize (uri, options) {\n if (typeof uri === 'string') {\n uri = serialize(parse(uri, options), options)\n } else if (typeof uri === 'object') {\n uri = parse(serialize(uri, options), options)\n }\n return uri\n}\n\nfunction resolve (baseURI, relativeURI, options) {\n const schemelessOptions = Object.assign({ scheme: 'null' }, options)\n const resolved = resolveComponents(parse(baseURI, schemelessOptions), parse(relativeURI, schemelessOptions), schemelessOptions, true)\n return serialize(resolved, { ...schemelessOptions, skipEscape: true })\n}\n\nfunction resolveComponents (base, relative, options, skipNormalization) {\n const target = {}\n if (!skipNormalization) {\n base = parse(serialize(base, options), options) // normalize base components\n relative = parse(serialize(relative, options), options) // normalize relative components\n }\n options = options || {}\n\n if (!options.tolerant && relative.scheme) {\n target.scheme = relative.scheme\n // target.authority = relative.authority;\n target.userinfo = relative.userinfo\n target.host = relative.host\n target.port = relative.port\n target.path = removeDotSegments(relative.path || '')\n target.query = relative.query\n } else {\n if (relative.userinfo !== undefined || relative.host !== undefined || relative.port !== undefined) {\n // target.authority = relative.authority;\n target.userinfo = relative.userinfo\n target.host = relative.host\n target.port = relative.port\n target.path = removeDotSegments(relative.path || '')\n target.query = relative.query\n } else {\n if (!relative.path) {\n target.path = base.path\n if (relative.query !== undefined) {\n target.query = relative.query\n } else {\n target.query = base.query\n }\n } else {\n if (relative.path.charAt(0) === '/') {\n target.path = removeDotSegments(relative.path)\n } else {\n if ((base.userinfo !== undefined || base.host !== undefined || base.port !== undefined) && !base.path) {\n target.path = '/' + relative.path\n } else if (!base.path) {\n target.path = relative.path\n } else {\n target.path = base.path.slice(0, base.path.lastIndexOf('/') + 1) + relative.path\n }\n target.path = removeDotSegments(target.path)\n }\n target.query = relative.query\n }\n // target.authority = base.authority;\n target.userinfo = base.userinfo\n target.host = base.host\n target.port = base.port\n }\n target.scheme = base.scheme\n }\n\n target.fragment = relative.fragment\n\n return target\n}\n\nfunction equal (uriA, uriB, options) {\n if (typeof uriA === 'string') {\n uriA = unescape(uriA)\n uriA = serialize(normalizeComponentEncoding(parse(uriA, options), true), { ...options, skipEscape: true })\n } else if (typeof uriA === 'object') {\n uriA = serialize(normalizeComponentEncoding(uriA, true), { ...options, skipEscape: true })\n }\n\n if (typeof uriB === 'string') {\n uriB = unescape(uriB)\n uriB = serialize(normalizeComponentEncoding(parse(uriB, options), true), { ...options, skipEscape: true })\n } else if (typeof uriB === 'object') {\n uriB = serialize(normalizeComponentEncoding(uriB, true), { ...options, skipEscape: true })\n }\n\n return uriA.toLowerCase() === uriB.toLowerCase()\n}\n\nfunction serialize (cmpts, opts) {\n const components = {\n host: cmpts.host,\n scheme: cmpts.scheme,\n userinfo: cmpts.userinfo,\n port: cmpts.port,\n path: cmpts.path,\n query: cmpts.query,\n nid: cmpts.nid,\n nss: cmpts.nss,\n uuid: cmpts.uuid,\n fragment: cmpts.fragment,\n reference: cmpts.reference,\n resourceName: cmpts.resourceName,\n secure: cmpts.secure,\n error: ''\n }\n const options = Object.assign({}, opts)\n const uriTokens = []\n\n // find scheme handler\n const schemeHandler = SCHEMES[(options.scheme || components.scheme || '').toLowerCase()]\n\n // perform scheme specific serialization\n if (schemeHandler && schemeHandler.serialize) schemeHandler.serialize(components, options)\n\n if (components.path !== undefined) {\n if (!options.skipEscape) {\n components.path = escape(components.path)\n\n if (components.scheme !== undefined) {\n components.path = components.path.split('%3A').join(':')\n }\n } else {\n components.path = unescape(components.path)\n }\n }\n\n if (options.reference !== 'suffix' && components.scheme) {\n uriTokens.push(components.scheme, ':')\n }\n\n const authority = recomposeAuthority(components)\n if (authority !== undefined) {\n if (options.reference !== 'suffix') {\n uriTokens.push('//')\n }\n\n uriTokens.push(authority)\n\n if (components.path && components.path.charAt(0) !== '/') {\n uriTokens.push('/')\n }\n }\n if (components.path !== undefined) {\n let s = components.path\n\n if (!options.absolutePath && (!schemeHandler || !schemeHandler.absolutePath)) {\n s = removeDotSegments(s)\n }\n\n if (authority === undefined) {\n s = s.replace(/^\\/\\//u, '/%2F') // don't allow the path to start with \"//\"\n }\n\n uriTokens.push(s)\n }\n\n if (components.query !== undefined) {\n uriTokens.push('?', components.query)\n }\n\n if (components.fragment !== undefined) {\n uriTokens.push('#', components.fragment)\n }\n return uriTokens.join('')\n}\n\nconst hexLookUp = Array.from({ length: 127 }, (_v, k) => /[^!\"$&'()*+,\\-.;=_`a-z{}~]/u.test(String.fromCharCode(k)))\n\nfunction nonSimpleDomain (value) {\n let code = 0\n for (let i = 0, len = value.length; i < len; ++i) {\n code = value.charCodeAt(i)\n if (code > 126 || hexLookUp[code]) {\n return true\n }\n }\n return false\n}\n\nconst URI_PARSE = /^(?:([^#/:?]+):)?(?:\\/\\/((?:([^#/?@]*)@)?(\\[[^#/?\\]]+\\]|[^#/:?]*)(?::(\\d*))?))?([^#?]*)(?:\\?([^#]*))?(?:#((?:.|[\\n\\r])*))?/u\n\nfunction parse (uri, opts) {\n const options = Object.assign({}, opts)\n const parsed = {\n scheme: undefined,\n userinfo: undefined,\n host: '',\n port: undefined,\n path: '',\n query: undefined,\n fragment: undefined\n }\n const gotEncoding = uri.indexOf('%') !== -1\n let isIP = false\n if (options.reference === 'suffix') uri = (options.scheme ? options.scheme + ':' : '') + '//' + uri\n\n const matches = uri.match(URI_PARSE)\n\n if (matches) {\n // store each component\n parsed.scheme = matches[1]\n parsed.userinfo = matches[3]\n parsed.host = matches[4]\n parsed.port = parseInt(matches[5], 10)\n parsed.path = matches[6] || ''\n parsed.query = matches[7]\n parsed.fragment = matches[8]\n\n // fix port number\n if (isNaN(parsed.port)) {\n parsed.port = matches[5]\n }\n if (parsed.host) {\n const ipv4result = normalizeIPv4(parsed.host)\n if (ipv4result.isIPV4 === false) {\n const ipv6result = normalizeIPv6(ipv4result.host)\n parsed.host = ipv6result.host.toLowerCase()\n isIP = ipv6result.isIPV6\n } else {\n parsed.host = ipv4result.host\n isIP = true\n }\n }\n if (parsed.scheme === undefined && parsed.userinfo === undefined && parsed.host === undefined && parsed.port === undefined && parsed.query === undefined && !parsed.path) {\n parsed.reference = 'same-document'\n } else if (parsed.scheme === undefined) {\n parsed.reference = 'relative'\n } else if (parsed.fragment === undefined) {\n parsed.reference = 'absolute'\n } else {\n parsed.reference = 'uri'\n }\n\n // check for reference errors\n if (options.reference && options.reference !== 'suffix' && options.reference !== parsed.reference) {\n parsed.error = parsed.error || 'URI is not a ' + options.reference + ' reference.'\n }\n\n // find scheme handler\n const schemeHandler = SCHEMES[(options.scheme || parsed.scheme || '').toLowerCase()]\n\n // check if scheme can't handle IRIs\n if (!options.unicodeSupport && (!schemeHandler || !schemeHandler.unicodeSupport)) {\n // if host component is a domain name\n if (parsed.host && (options.domainHost || (schemeHandler && schemeHandler.domainHost)) && isIP === false && nonSimpleDomain(parsed.host)) {\n // convert Unicode IDN -> ASCII IDN\n try {\n parsed.host = URL.domainToASCII(parsed.host.toLowerCase())\n } catch (e) {\n parsed.error = parsed.error || \"Host's domain name can not be converted to ASCII: \" + e\n }\n }\n // convert IRI -> URI\n }\n\n if (!schemeHandler || (schemeHandler && !schemeHandler.skipNormalize)) {\n if (gotEncoding && parsed.scheme !== undefined) {\n parsed.scheme = unescape(parsed.scheme)\n }\n if (gotEncoding && parsed.host !== undefined) {\n parsed.host = unescape(parsed.host)\n }\n if (parsed.path) {\n parsed.path = escape(unescape(parsed.path))\n }\n if (parsed.fragment) {\n parsed.fragment = encodeURI(decodeURIComponent(parsed.fragment))\n }\n }\n\n // perform scheme specific parsing\n if (schemeHandler && schemeHandler.parse) {\n schemeHandler.parse(parsed, options)\n }\n } else {\n parsed.error = parsed.error || 'URI can not be parsed.'\n }\n return parsed\n}\n\nconst fastUri = {\n SCHEMES,\n normalize,\n resolve,\n resolveComponents,\n equal,\n serialize,\n parse\n}\n\nmodule.exports = fastUri\nmodule.exports.default = fastUri\nmodule.exports.fastUri = fastUri\n","import * as uri from \"fast-uri\"\n\ntype URI = typeof uri & {code: string}\n;(uri as URI).code = 'require(\"ajv/dist/runtime/uri\").default'\n\nexport default uri as URI\n","export {\n Format,\n FormatDefinition,\n AsyncFormatDefinition,\n KeywordDefinition,\n KeywordErrorDefinition,\n CodeKeywordDefinition,\n MacroKeywordDefinition,\n FuncKeywordDefinition,\n Vocabulary,\n Schema,\n SchemaObject,\n AnySchemaObject,\n AsyncSchema,\n AnySchema,\n ValidateFunction,\n AsyncValidateFunction,\n AnyValidateFunction,\n ErrorObject,\n ErrorNoParams,\n} from \"./types\"\n\nexport {SchemaCxt, SchemaObjCxt} from \"./compile\"\nexport interface Plugin<Opts> {\n (ajv: Ajv, options?: Opts): Ajv\n [prop: string]: any\n}\n\nexport {KeywordCxt} from \"./compile/validate\"\nexport {DefinedError} from \"./vocabularies/errors\"\nexport {JSONType} from \"./compile/rules\"\nexport {JSONSchemaType} from \"./types/json-schema\"\nexport {JTDSchemaType, SomeJTDSchemaType, JTDDataType} from \"./types/jtd-schema\"\nexport {_, str, stringify, nil, Name, Code, CodeGen, CodeGenOptions} from \"./compile/codegen\"\n\nimport type {\n Schema,\n AnySchema,\n AnySchemaObject,\n SchemaObject,\n AsyncSchema,\n Vocabulary,\n KeywordDefinition,\n AddedKeywordDefinition,\n AnyValidateFunction,\n ValidateFunction,\n AsyncValidateFunction,\n ErrorObject,\n Format,\n AddedFormat,\n RegExpEngine,\n UriResolver,\n} from \"./types\"\nimport type {JSONSchemaType} from \"./types/json-schema\"\nimport type {JTDSchemaType, SomeJTDSchemaType, JTDDataType} from \"./types/jtd-schema\"\nimport ValidationError from \"./runtime/validation_error\"\nimport MissingRefError from \"./compile/ref_error\"\nimport {getRules, ValidationRules, Rule, RuleGroup, JSONType} from \"./compile/rules\"\nimport {SchemaEnv, compileSchema, resolveSchema} from \"./compile\"\nimport {Code, ValueScope} from \"./compile/codegen\"\nimport {normalizeId, getSchemaRefs} from \"./compile/resolve\"\nimport {getJSONTypes} from \"./compile/validate/dataType\"\nimport {eachItem} from \"./compile/util\"\nimport * as $dataRefSchema from \"./refs/data.json\"\n\nimport DefaultUriResolver from \"./runtime/uri\"\n\nconst defaultRegExp: RegExpEngine = (str, flags) => new RegExp(str, flags)\ndefaultRegExp.code = \"new RegExp\"\n\nconst META_IGNORE_OPTIONS: (keyof Options)[] = [\"removeAdditional\", \"useDefaults\", \"coerceTypes\"]\nconst EXT_SCOPE_NAMES = new Set([\n \"validate\",\n \"serialize\",\n \"parse\",\n \"wrapper\",\n \"root\",\n \"schema\",\n \"keyword\",\n \"pattern\",\n \"formats\",\n \"validate$data\",\n \"func\",\n \"obj\",\n \"Error\",\n])\n\nexport type Options = CurrentOptions & DeprecatedOptions\n\nexport interface CurrentOptions {\n // strict mode options (NEW)\n strict?: boolean | \"log\"\n strictSchema?: boolean | \"log\"\n strictNumbers?: boolean | \"log\"\n strictTypes?: boolean | \"log\"\n strictTuples?: boolean | \"log\"\n strictRequired?: boolean | \"log\"\n allowMatchingProperties?: boolean // disables a strict mode restriction\n allowUnionTypes?: boolean\n validateFormats?: boolean\n // validation and reporting options:\n $data?: boolean\n allErrors?: boolean\n verbose?: boolean\n discriminator?: boolean\n unicodeRegExp?: boolean\n timestamp?: \"string\" | \"date\" // JTD only\n parseDate?: boolean // JTD only\n allowDate?: boolean // JTD only\n $comment?:\n | true\n | ((comment: string, schemaPath?: string, rootSchema?: AnySchemaObject) => unknown)\n formats?: {[Name in string]?: Format}\n keywords?: Vocabulary\n schemas?: AnySchema[] | {[Key in string]?: AnySchema}\n logger?: Logger | false\n loadSchema?: (uri: string) => Promise<AnySchemaObject>\n // options to modify validated data:\n removeAdditional?: boolean | \"all\" | \"failing\"\n useDefaults?: boolean | \"empty\"\n coerceTypes?: boolean | \"array\"\n // advanced options:\n next?: boolean // NEW\n unevaluated?: boolean // NEW\n dynamicRef?: boolean // NEW\n schemaId?: \"id\" | \"$id\"\n jtd?: boolean // NEW\n meta?: SchemaObject | boolean\n defaultMeta?: string | AnySchemaObject\n validateSchema?: boolean | \"log\"\n addUsedSchema?: boolean\n inlineRefs?: boolean | number\n passContext?: boolean\n loopRequired?: number\n loopEnum?: number // NEW\n ownProperties?: boolean\n multipleOfPrecision?: number\n int32range?: boolean // JTD only\n messages?: boolean\n code?: CodeOptions // NEW\n uriResolver?: UriResolver\n}\n\nexport interface CodeOptions {\n es5?: boolean\n esm?: boolean\n lines?: boolean\n optimize?: boolean | number\n formats?: Code // code to require (or construct) map of available formats - for standalone code\n source?: boolean\n process?: (code: string, schema?: SchemaEnv) => string\n regExp?: RegExpEngine\n}\n\ninterface InstanceCodeOptions extends CodeOptions {\n regExp: RegExpEngine\n optimize: number\n}\n\ninterface DeprecatedOptions {\n /** @deprecated */\n ignoreKeywordsWithRef?: boolean\n /** @deprecated */\n jsPropertySyntax?: boolean // added instead of jsonPointers\n /** @deprecated */\n unicode?: boolean\n}\n\ninterface RemovedOptions {\n format?: boolean\n errorDataPath?: \"object\" | \"property\"\n nullable?: boolean // \"nullable\" keyword is supported by default\n jsonPointers?: boolean\n extendRefs?: true | \"ignore\" | \"fail\"\n missingRefs?: true | \"ignore\" | \"fail\"\n processCode?: (code: string, schema?: SchemaEnv) => string\n sourceCode?: boolean\n strictDefaults?: boolean\n strictKeywords?: boolean\n uniqueItems?: boolean\n unknownFormats?: true | string[] | \"ignore\"\n cache?: any\n serialize?: (schema: AnySchema) => unknown\n ajvErrors?: boolean\n}\n\ntype OptionsInfo<T extends RemovedOptions | DeprecatedOptions> = {\n [K in keyof T]-?: string | undefined\n}\n\nconst removedOptions: OptionsInfo<RemovedOptions> = {\n errorDataPath: \"\",\n format: \"`validateFormats: false` can be used instead.\",\n nullable: '\"nullable\" keyword is supported by default.',\n jsonPointers: \"Deprecated jsPropertySyntax can be used instead.\",\n extendRefs: \"Deprecated ignoreKeywordsWithRef can be used instead.\",\n missingRefs: \"Pass empty schema with $id that should be ignored to ajv.addSchema.\",\n processCode: \"Use option `code: {process: (code, schemaEnv: object) => string}`\",\n sourceCode: \"Use option `code: {source: true}`\",\n strictDefaults: \"It is default now, see option `strict`.\",\n strictKeywords: \"It is default now, see option `strict`.\",\n uniqueItems: '\"uniqueItems\" keyword is always validated.',\n unknownFormats: \"Disable strict mode or pass `true` to `ajv.addFormat` (or `formats` option).\",\n cache: \"Map is used as cache, schema object as key.\",\n serialize: \"Map is used as cache, schema object as key.\",\n ajvErrors: \"It is default now.\",\n}\n\nconst deprecatedOptions: OptionsInfo<DeprecatedOptions> = {\n ignoreKeywordsWithRef: \"\",\n jsPropertySyntax: \"\",\n unicode: '\"minLength\"/\"maxLength\" account for unicode characters by default.',\n}\n\ntype RequiredInstanceOptions = {\n [K in\n | \"strictSchema\"\n | \"strictNumbers\"\n | \"strictTypes\"\n | \"strictTuples\"\n | \"strictRequired\"\n | \"inlineRefs\"\n | \"loopRequired\"\n | \"loopEnum\"\n | \"meta\"\n | \"messages\"\n | \"schemaId\"\n | \"addUsedSchema\"\n | \"validateSchema\"\n | \"validateFormats\"\n | \"int32range\"\n | \"unicodeRegExp\"\n | \"uriResolver\"]: NonNullable<Options[K]>\n} & {code: InstanceCodeOptions}\n\nexport type InstanceOptions = Options & RequiredInstanceOptions\n\nconst MAX_EXPRESSION = 200\n\n// eslint-disable-next-line complexity\nfunction requiredOptions(o: Options): RequiredInstanceOptions {\n const s = o.strict\n const _optz = o.code?.optimize\n const optimize = _optz === true || _optz === undefined ? 1 : _optz || 0\n const regExp = o.code?.regExp ?? defaultRegExp\n const uriResolver = o.uriResolver ?? DefaultUriResolver\n return {\n strictSchema: o.strictSchema ?? s ?? true,\n strictNumbers: o.strictNumbers ?? s ?? true,\n strictTypes: o.strictTypes ?? s ?? \"log\",\n strictTuples: o.strictTuples ?? s ?? \"log\",\n strictRequired: o.strictRequired ?? s ?? false,\n code: o.code ? {...o.code, optimize, regExp} : {optimize, regExp},\n loopRequired: o.loopRequired ?? MAX_EXPRESSION,\n loopEnum: o.loopEnum ?? MAX_EXPRESSION,\n meta: o.meta ?? true,\n messages: o.messages ?? true,\n inlineRefs: o.inlineRefs ?? true,\n schemaId: o.schemaId ?? \"$id\",\n addUsedSchema: o.addUsedSchema ?? true,\n validateSchema: o.validateSchema ?? true,\n validateFormats: o.validateFormats ?? true,\n unicodeRegExp: o.unicodeRegExp ?? true,\n int32range: o.int32range ?? true,\n uriResolver: uriResolver,\n }\n}\n\nexport interface Logger {\n log(...args: unknown[]): unknown\n warn(...args: unknown[]): unknown\n error(...args: unknown[]): unknown\n}\n\nexport default class Ajv {\n opts: InstanceOptions\n errors?: ErrorObject[] | null // errors from the last validation\n logger: Logger\n // shared external scope values for compiled functions\n readonly scope: ValueScope\n readonly schemas: {[Key in string]?: SchemaEnv} = {}\n readonly refs: {[Ref in string]?: SchemaEnv | string} = {}\n readonly formats: {[Name in string]?: AddedFormat} = {}\n readonly RULES: ValidationRules\n readonly _compilations: Set<SchemaEnv> = new Set()\n private readonly _loading: {[Ref in string]?: Promise<AnySchemaObject>} = {}\n private readonly _cache: Map<AnySchema, SchemaEnv> = new Map()\n private readonly _metaOpts: InstanceOptions\n\n static ValidationError = ValidationError\n static MissingRefError = MissingRefError\n\n constructor(opts: Options = {}) {\n opts = this.opts = {...opts, ...requiredOptions(opts)}\n const {es5, lines} = this.opts.code\n\n this.scope = new ValueScope({scope: {}, prefixes: EXT_SCOPE_NAMES, es5, lines})\n this.logger = getLogger(opts.logger)\n const formatOpt = opts.validateFormats\n opts.validateFormats = false\n\n this.RULES = getRules()\n checkOptions.call(this, removedOptions, opts, \"NOT SUPPORTED\")\n checkOptions.call(this, deprecatedOptions, opts, \"DEPRECATED\", \"warn\")\n this._metaOpts = getMetaSchemaOptions.call(this)\n\n if (opts.formats) addInitialFormats.call(this)\n this._addVocabularies()\n this._addDefaultMetaSchema()\n if (opts.keywords) addInitialKeywords.call(this, opts.keywords)\n if (typeof opts.meta == \"object\") this.addMetaSchema(opts.meta)\n addInitialSchemas.call(this)\n opts.validateFormats = formatOpt\n }\n\n _addVocabularies(): void {\n this.addKeyword(\"$async\")\n }\n\n _addDefaultMetaSchema(): void {\n const {$data, meta, schemaId} = this.opts\n let _dataRefSchema: SchemaObject = $dataRefSchema\n if (schemaId === \"id\") {\n _dataRefSchema = {...$dataRefSchema}\n _dataRefSchema.id = _dataRefSchema.$id\n delete _dataRefSchema.$id\n }\n if (meta && $data) this.addMetaSchema(_dataRefSchema, _dataRefSchema[schemaId], false)\n }\n\n defaultMeta(): string | AnySchemaObject | undefined {\n const {meta, schemaId} = this.opts\n return (this.opts.defaultMeta = typeof meta == \"object\" ? meta[schemaId] || meta : undefined)\n }\n\n // Validate data using schema\n // AnySchema will be compiled and cached using schema itself as a key for Map\n validate(schema: Schema | string, data: unknown): boolean\n validate(schemaKeyRef: AnySchema | string, data: unknown): boolean | Promise<unknown>\n validate<T>(schema: Schema | JSONSchemaType<T> | string, data: unknown): data is T\n // Separated for type inference to work\n // eslint-disable-next-line @typescript-eslint/unified-signatures\n validate<T>(schema: JTDSchemaType<T>, data: unknown): data is T\n // This overload is only intended for typescript inference, the first\n // argument prevents manual type annotation from matching this overload\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n validate<N extends never, T extends SomeJTDSchemaType>(\n schema: T,\n data: unknown\n ): data is JTDDataType<T>\n // eslint-disable-next-line @typescript-eslint/no-redundant-type-constituents\n validate<T>(schema: AsyncSchema, data: unknown | T): Promise<T>\n validate<T>(schemaKeyRef: AnySchema | string, data: unknown): data is T | Promise<T>\n validate<T>(\n schemaKeyRef: AnySchema | string, // key, ref or schema object\n // eslint-disable-next-line @typescript-eslint/no-redundant-type-constituents\n data: unknown | T // to be validated\n ): boolean | Promise<T> {\n let v: AnyValidateFunction | undefined\n if (typeof schemaKeyRef == \"string\") {\n v = this.getSchema<T>(schemaKeyRef)\n if (!v) throw new Error(`no schema with key or ref \"${schemaKeyRef}\"`)\n } else {\n v = this.compile<T>(schemaKeyRef)\n }\n\n const valid = v(data)\n if (!(\"$async\" in v)) this.errors = v.errors\n return valid\n }\n\n // Create validation function for passed schema\n // _meta: true if schema is a meta-schema. Used internally to compile meta schemas of user-defined keywords.\n compile<T = unknown>(schema: Schema | JSONSchemaType<T>, _meta?: boolean): ValidateFunction<T>\n // Separated for type inference to work\n // eslint-disable-next-line @typescript-eslint/unified-signatures\n compile<T = unknown>(schema: JTDSchemaType<T>, _meta?: boolean): ValidateFunction<T>\n // This overload is only intended for typescript inference, the first\n // argument prevents manual type annotation from matching this overload\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n compile<N extends never, T extends SomeJTDSchemaType>(\n schema: T,\n _meta?: boolean\n ): ValidateFunction<JTDDataType<T>>\n compile<T = unknown>(schema: AsyncSchema, _meta?: boolean): AsyncValidateFunction<T>\n compile<T = unknown>(schema: AnySchema, _meta?: boolean): AnyValidateFunction<T>\n compile<T = unknown>(schema: AnySchema, _meta?: boolean): AnyValidateFunction<T> {\n const sch = this._addSchema(schema, _meta)\n return (sch.validate || this._compileSchemaEnv(sch)) as AnyValidateFunction<T>\n }\n\n // Creates validating function for passed schema with asynchronous loading of missing schemas.\n // `loadSchema` option should be a function that accepts schema uri and returns promise that resolves with the schema.\n // TODO allow passing schema URI\n // meta - optional true to compile meta-schema\n compileAsync<T = unknown>(\n schema: SchemaObject | JSONSchemaType<T>,\n _meta?: boolean\n ): Promise<ValidateFunction<T>>\n // Separated for type inference to work\n // eslint-disable-next-line @typescript-eslint/unified-signatures\n compileAsync<T = unknown>(schema: JTDSchemaType<T>, _meta?: boolean): Promise<ValidateFunction<T>>\n compileAsync<T = unknown>(schema: AsyncSchema, meta?: boolean): Promise<AsyncValidateFunction<T>>\n // eslint-disable-next-line @typescript-eslint/unified-signatures\n compileAsync<T = unknown>(\n schema: AnySchemaObject,\n meta?: boolean\n ): Promise<AnyValidateFunction<T>>\n compileAsync<T = unknown>(\n schema: AnySchemaObject,\n meta?: boolean\n ): Promise<AnyValidateFunction<T>> {\n if (typeof this.opts.loadSchema != \"function\") {\n throw new Error(\"options.loadSchema should be a function\")\n }\n const {loadSchema} = this.opts\n return runCompileAsync.call(this, schema, meta)\n\n async function runCompileAsync(\n this: Ajv,\n _schema: AnySchemaObject,\n _meta?: boolean\n ): Promise<AnyValidateFunction> {\n await loadMetaSchema.call(this, _schema.$schema)\n const sch = this._addSchema(_schema, _meta)\n return sch.validate || _compileAsync.call(this, sch)\n }\n\n async function loadMetaSchema(this: Ajv, $ref?: string): Promise<void> {\n if ($ref && !this.getSchema($ref)) {\n await runCompileAsync.call(this, {$ref}, true)\n }\n }\n\n async function _compileAsync(this: Ajv, sch: SchemaEnv): Promise<AnyValidateFunction> {\n try {\n return this._compileSchemaEnv(sch)\n } catch (e) {\n if (!(e instanceof MissingRefError)) throw e\n checkLoaded.call(this, e)\n await loadMissingSchema.call(this, e.missingSchema)\n return _compileAsync.call(this, sch)\n }\n }\n\n function checkLoaded(this: Ajv, {missingSchema: ref, missingRef}: MissingRefError): void {\n if (this.refs[ref]) {\n throw new Error(`AnySchema ${ref} is loaded but ${missingRef} cannot be resolved`)\n }\n }\n\n async function loadMissingSchema(this: Ajv, ref: string): Promise<void> {\n const _schema = await _loadSchema.call(this, ref)\n if (!this.refs[ref]) await loadMetaSchema.call(this, _schema.$schema)\n if (!this.refs[ref]) this.addSchema(_schema, ref, meta)\n }\n\n async function _loadSchema(this: Ajv, ref: string): Promise<AnySchemaObject> {\n const p = this._loading[ref]\n if (p) return p\n try {\n return await (this._loading[ref] = loadSchema(ref))\n } finally {\n delete this._loading[ref]\n }\n }\n }\n\n // Adds schema to the instance\n addSchema(\n schema: AnySchema | AnySchema[], // If array is passed, `key` will be ignored\n key?: string, // Optional schema key. Can be passed to `validate` method instead of schema object or id/ref. One schema per instance can have empty `id` and `key`.\n _meta?: boolean, // true if schema is a meta-schema. Used internally, addMetaSchema should be used instead.\n _validateSchema = this.opts.validateSchema // false to skip schema validation. Used internally, option validateSchema should be used instead.\n ): Ajv {\n if (Array.isArray(schema)) {\n for (const sch of schema) this.addSchema(sch, undefined, _meta, _validateSchema)\n return this\n }\n let id: string | undefined\n if (typeof schema === \"object\") {\n const {schemaId} = this.opts\n id = schema[schemaId]\n if (id !== undefined && typeof id != \"string\") {\n throw new Error(`schema ${schemaId} must be string`)\n }\n }\n key = normalizeId(key || id)\n this._checkUnique(key)\n this.schemas[key] = this._addSchema(schema, _meta, key, _validateSchema, true)\n return this\n }\n\n // Add schema that will be used to validate other schemas\n // options in META_IGNORE_OPTIONS are alway set to false\n addMetaSchema(\n schema: AnySchemaObject,\n key?: string, // schema key\n _validateSchema = this.opts.validateSchema // false to skip schema validation, can be used to override validateSchema option for meta-schema\n ): Ajv {\n this.addSchema(schema, key, true, _validateSchema)\n return this\n }\n\n // Validate schema against its meta-schema\n validateSchema(schema: AnySchema, throwOrLogError?: boolean): boolean | Promise<unknown> {\n if (typeof schema == \"boolean\") return true\n let $schema: string | AnySchemaObject | undefined\n $schema = schema.$schema\n if ($schema !== undefined && typeof $schema != \"string\") {\n throw new Error(\"$schema must be a string\")\n }\n $schema = $schema || this.opts.defaultMeta || this.defaultMeta()\n if (!$schema) {\n this.logger.warn(\"meta-schema not available\")\n this.errors = null\n return true\n }\n const valid = this.validate($schema, schema)\n if (!valid && throwOrLogError) {\n const message = \"schema is invalid: \" + this.errorsText()\n if (this.opts.validateSchema === \"log\") this.logger.error(message)\n else throw new Error(message)\n }\n return valid\n }\n\n // Get compiled schema by `key` or `ref`.\n // (`key` that was passed to `addSchema` or full schema reference - `schema.$id` or resolved id)\n getSchema<T = unknown>(keyRef: string): AnyValidateFunction<T> | undefined {\n let sch\n while (typeof (sch = getSchEnv.call(this, keyRef)) == \"string\") keyRef = sch\n if (sch === undefined) {\n const {schemaId} = this.opts\n const root = new SchemaEnv({schema: {}, schemaId})\n sch = resolveSchema.call(this, root, keyRef)\n if (!sch) return\n this.refs[keyRef] = sch\n }\n return (sch.validate || this._compileSchemaEnv(sch)) as AnyValidateFunction<T> | undefined\n }\n\n // Remove cached schema(s).\n // If no parameter is passed all schemas but meta-schemas are removed.\n // If RegExp is passed all schemas with key/id matching pattern but meta-schemas are removed.\n // Even if schema is referenced by other schemas it still can be removed as other schemas have local references.\n removeSchema(schemaKeyRef?: AnySchema | string | RegExp): Ajv {\n if (schemaKeyRef instanceof RegExp) {\n this._removeAllSchemas(this.schemas, schemaKeyRef)\n this._removeAllSchemas(this.refs, schemaKeyRef)\n return this\n }\n switch (typeof schemaKeyRef) {\n case \"undefined\":\n this._removeAllSchemas(this.schemas)\n this._removeAllSchemas(this.refs)\n this._cache.clear()\n return this\n case \"string\": {\n const sch = getSchEnv.call(this, schemaKeyRef)\n if (typeof sch == \"object\") this._cache.delete(sch.schema)\n delete this.schemas[schemaKeyRef]\n delete this.refs[schemaKeyRef]\n return this\n }\n case \"object\": {\n const cacheKey = schemaKeyRef\n this._cache.delete(cacheKey)\n let id = schemaKeyRef[this.opts.schemaId]\n if (id) {\n id = normalizeId(id)\n delete this.schemas[id]\n delete this.refs[id]\n }\n return this\n }\n default:\n throw new Error(\"ajv.removeSchema: invalid parameter\")\n }\n }\n\n // add \"vocabulary\" - a collection of keywords\n addVocabulary(definitions: Vocabulary): Ajv {\n for (const def of definitions) this.addKeyword(def)\n return this\n }\n\n addKeyword(\n kwdOrDef: string | KeywordDefinition,\n def?: KeywordDefinition // deprecated\n ): Ajv {\n let keyword: string | string[]\n if (typeof kwdOrDef == \"string\") {\n keyword = kwdOrDef\n if (typeof def == \"object\") {\n this.logger.warn(\"these parameters are deprecated, see docs for addKeyword\")\n def.keyword = keyword\n }\n } else if (typeof kwdOrDef == \"object\" && def === undefined) {\n def = kwdOrDef\n keyword = def.keyword\n if (Array.isArray(keyword) && !keyword.length) {\n throw new Error(\"addKeywords: keyword must be string or non-empty array\")\n }\n } else {\n throw new Error(\"invalid addKeywords parameters\")\n }\n\n checkKeyword.call(this, keyword, def)\n if (!def) {\n eachItem(keyword, (kwd) => addRule.call(this, kwd))\n return this\n }\n keywordMetaschema.call(this, def)\n const definition: AddedKeywordDefinition = {\n ...def,\n type: getJSONTypes(def.type),\n schemaType: getJSONTypes(def.schemaType),\n }\n eachItem(\n keyword,\n definition.type.length === 0\n ? (k) => addRule.call(this, k, definition)\n : (k) => definition.type.forEach((t) => addRule.call(this, k, definition, t))\n )\n return this\n }\n\n getKeyword(keyword: string): AddedKeywordDefinition | boolean {\n const rule = this.RULES.all[keyword]\n return typeof rule == \"object\" ? rule.definition : !!rule\n }\n\n // Remove keyword\n removeKeyword(keyword: string): Ajv {\n // TODO return type should be Ajv\n const {RULES} = this\n delete RULES.keywords[keyword]\n delete RULES.all[keyword]\n for (const group of RULES.rules) {\n const i = group.rules.findIndex((rule) => rule.keyword === keyword)\n if (i >= 0) group.rules.splice(i, 1)\n }\n return this\n }\n\n // Add format\n addFormat(name: string, format: Format): Ajv {\n if (typeof format == \"string\") format = new RegExp(format)\n this.formats[name] = format\n return this\n }\n\n errorsText(\n errors: ErrorObject[] | null | undefined = this.errors, // optional array of validation errors\n {separator = \", \", dataVar = \"data\"}: ErrorsTextOptions = {} // optional options with properties `separator` and `dataVar`\n ): string {\n if (!errors || errors.length === 0) return \"No errors\"\n return errors\n .map((e) => `${dataVar}${e.instancePath} ${e.message}`)\n .reduce((text, msg) => text + separator + msg)\n }\n\n $dataMetaSchema(metaSchema: AnySchemaObject, keywordsJsonPointers: string[]): AnySchemaObject {\n const rules = this.RULES.all\n metaSchema = JSON.parse(JSON.stringify(metaSchema))\n for (const jsonPointer of keywordsJsonPointers) {\n const segments = jsonPointer.split(\"/\").slice(1) // first segment is an empty string\n let keywords = metaSchema\n for (const seg of segments) keywords = keywords[seg] as AnySchemaObject\n\n for (const key in rules) {\n const rule = rules[key]\n if (typeof rule != \"object\") continue\n const {$data} = rule.definition\n const schema = keywords[key] as AnySchemaObject | undefined\n if ($data && schema) keywords[key] = schemaOrData(schema)\n }\n }\n\n return metaSchema\n }\n\n private _removeAllSchemas(schemas: {[Ref in string]?: SchemaEnv | string}, regex?: RegExp): void {\n for (const keyRef in schemas) {\n const sch = schemas[keyRef]\n if (!regex || regex.test(keyRef)) {\n if (typeof sch == \"string\") {\n delete schemas[keyRef]\n } else if (sch && !sch.meta) {\n this._cache.delete(sch.schema)\n delete schemas[keyRef]\n }\n }\n }\n }\n\n _addSchema(\n schema: AnySchema,\n meta?: boolean,\n baseId?: string,\n validateSchema = this.opts.validateSchema,\n addSchema = this.opts.addUsedSchema\n ): SchemaEnv {\n let id: string | undefined\n const {schemaId} = this.opts\n if (typeof schema == \"object\") {\n id = schema[schemaId]\n } else {\n if (this.opts.jtd) throw new Error(\"schema must be object\")\n else if (typeof schema != \"boolean\") throw new Error(\"schema must be object or boolean\")\n }\n let sch = this._cache.get(schema)\n if (sch !== undefined) return sch\n\n baseId = normalizeId(id || baseId)\n const localRefs = getSchemaRefs.call(this, schema, baseId)\n sch = new SchemaEnv({schema, schemaId, meta, baseId, localRefs})\n this._cache.set(sch.schema, sch)\n if (addSchema && !baseId.startsWith(\"#\")) {\n // TODO atm it is allowed to overwrite schemas without id (instead of not adding them)\n if (baseId) this._checkUnique(baseId)\n this.refs[baseId] = sch\n }\n if (validateSchema) this.validateSchema(schema, true)\n return sch\n }\n\n private _checkUnique(id: string): void {\n if (this.schemas[id] || this.refs[id]) {\n throw new Error(`schema with key or id \"${id}\" already exists`)\n }\n }\n\n private _compileSchemaEnv(sch: SchemaEnv): AnyValidateFunction {\n if (sch.meta) this._compileMetaSchema(sch)\n else compileSchema.call(this, sch)\n\n /* istanbul ignore if */\n if (!sch.validate) throw new Error(\"ajv implementation error\")\n return sch.validate\n }\n\n private _compileMetaSchema(sch: SchemaEnv): void {\n const currentOpts = this.opts\n this.opts = this._metaOpts\n try {\n compileSchema.call(this, sch)\n } finally {\n this.opts = currentOpts\n }\n }\n}\n\nexport interface ErrorsTextOptions {\n separator?: string\n dataVar?: string\n}\n\nfunction checkOptions(\n this: Ajv,\n checkOpts: OptionsInfo<RemovedOptions | DeprecatedOptions>,\n options: Options & RemovedOptions,\n msg: string,\n log: \"warn\" | \"error\" = \"error\"\n): void {\n for (const key in checkOpts) {\n const opt = key as keyof typeof checkOpts\n if (opt in options) this.logger[log](`${msg}: option ${key}. ${checkOpts[opt]}`)\n }\n}\n\nfunction getSchEnv(this: Ajv, keyRef: string): SchemaEnv | string | undefined {\n keyRef = normalizeId(keyRef) // TODO tests fail without this line\n return this.schemas[keyRef] || this.refs[keyRef]\n}\n\nfunction addInitialSchemas(this: Ajv): void {\n const optsSchemas = this.opts.schemas\n if (!optsSchemas) return\n if (Array.isArray(optsSchemas)) this.addSchema(optsSchemas)\n else for (const key in optsSchemas) this.addSchema(optsSchemas[key] as AnySchema, key)\n}\n\nfunction addInitialFormats(this: Ajv): void {\n for (const name in this.opts.formats) {\n const format = this.opts.formats[name]\n if (format) this.addFormat(name, format)\n }\n}\n\nfunction addInitialKeywords(\n this: Ajv,\n defs: Vocabulary | {[K in string]?: KeywordDefinition}\n): void {\n if (Array.isArray(defs)) {\n this.addVocabulary(defs)\n return\n }\n this.logger.warn(\"keywords option as map is deprecated, pass array\")\n for (const keyword in defs) {\n const def = defs[keyword] as KeywordDefinition\n if (!def.keyword) def.keyword = keyword\n this.addKeyword(def)\n }\n}\n\nfunction getMetaSchemaOptions(this: Ajv): InstanceOptions {\n const metaOpts = {...this.opts}\n for (const opt of META_IGNORE_OPTIONS) delete metaOpts[opt]\n return metaOpts\n}\n\nconst noLogs = {log() {}, warn() {}, error() {}}\n\nfunction getLogger(logger?: Partial<Logger> | false): Logger {\n if (logger === false) return noLogs\n if (logger === undefined) return console\n if (logger.log && logger.warn && logger.error) return logger as Logger\n throw new Error(\"logger must implement log, warn and error methods\")\n}\n\nconst KEYWORD_NAME = /^[a-z_$][a-z0-9_$:-]*$/i\n\nfunction checkKeyword(this: Ajv, keyword: string | string[], def?: KeywordDefinition): void {\n const {RULES} = this\n eachItem(keyword, (kwd) => {\n if (RULES.keywords[kwd]) throw new Error(`Keyword ${kwd} is already defined`)\n if (!KEYWORD_NAME.test(kwd)) throw new Error(`Keyword ${kwd} has invalid name`)\n })\n if (!def) return\n if (def.$data && !(\"code\" in def || \"validate\" in def)) {\n throw new Error('$data keyword must have \"code\" or \"validate\" function')\n }\n}\n\nfunction addRule(\n this: Ajv,\n keyword: string,\n definition?: AddedKeywordDefinition,\n dataType?: JSONType\n): void {\n const post = definition?.post\n if (dataType && post) throw new Error('keyword with \"post\" flag cannot have \"type\"')\n const {RULES} = this\n let ruleGroup = post ? RULES.post : RULES.rules.find(({type: t}) => t === dataType)\n if (!ruleGroup) {\n ruleGroup = {type: dataType, rules: []}\n RULES.rules.push(ruleGroup)\n }\n RULES.keywords[keyword] = true\n if (!definition) return\n\n const rule: Rule = {\n keyword,\n definition: {\n ...definition,\n type: getJSONTypes(definition.type),\n schemaType: getJSONTypes(definition.schemaType),\n },\n }\n if (definition.before) addBeforeRule.call(this, ruleGroup, rule, definition.before)\n else ruleGroup.rules.push(rule)\n RULES.all[keyword] = rule\n definition.implements?.forEach((kwd) => this.addKeyword(kwd))\n}\n\nfunction addBeforeRule(this: Ajv, ruleGroup: RuleGroup, rule: Rule, before: string): void {\n const i = ruleGroup.rules.findIndex((_rule) => _rule.keyword === before)\n if (i >= 0) {\n ruleGroup.rules.splice(i, 0, rule)\n } else {\n ruleGroup.rules.push(rule)\n this.logger.warn(`rule ${before} is not defined`)\n }\n}\n\nfunction keywordMetaschema(this: Ajv, def: KeywordDefinition): void {\n let {metaSchema} = def\n if (metaSchema === undefined) return\n if (def.$data && this.opts.$data) metaSchema = schemaOrData(metaSchema)\n def.validateSchema = this.compile(metaSchema, true)\n}\n\nconst $dataRef = {\n $ref: \"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#\",\n}\n\nfunction schemaOrData(schema: AnySchema): AnySchemaObject {\n return {anyOf: [schema, $dataRef]}\n}\n","import type {CodeKeywordDefinition} from \"../../types\"\n\nconst def: CodeKeywordDefinition = {\n keyword: \"id\",\n code() {\n throw new Error('NOT SUPPORTED: keyword \"id\", use \"$id\" for schema ID')\n },\n}\n\nexport default def\n","import type {CodeKeywordDefinition, AnySchema} from \"../../types\"\nimport type {KeywordCxt} from \"../../compile/validate\"\nimport MissingRefError from \"../../compile/ref_error\"\nimport {callValidateCode} from \"../code\"\nimport {_, nil, stringify, Code, Name} from \"../../compile/codegen\"\nimport N from \"../../compile/names\"\nimport {SchemaEnv, resolveRef} from \"../../compile\"\nimport {mergeEvaluated} from \"../../compile/util\"\n\nconst def: CodeKeywordDefinition = {\n keyword: \"$ref\",\n schemaType: \"string\",\n code(cxt: KeywordCxt): void {\n const {gen, schema: $ref, it} = cxt\n const {baseId, schemaEnv: env, validateName, opts, self} = it\n const {root} = env\n if (($ref === \"#\" || $ref === \"#/\") && baseId === root.baseId) return callRootRef()\n const schOrEnv = resolveRef.call(self, root, baseId, $ref)\n if (schOrEnv === undefined) throw new MissingRefError(it.opts.uriResolver, baseId, $ref)\n if (schOrEnv instanceof SchemaEnv) return callValidate(schOrEnv)\n return inlineRefSchema(schOrEnv)\n\n function callRootRef(): void {\n if (env === root) return callRef(cxt, validateName, env, env.$async)\n const rootName = gen.scopeValue(\"root\", {ref: root})\n return callRef(cxt, _`${rootName}.validate`, root, root.$async)\n }\n\n function callValidate(sch: SchemaEnv): void {\n const v = getValidate(cxt, sch)\n callRef(cxt, v, sch, sch.$async)\n }\n\n function inlineRefSchema(sch: AnySchema): void {\n const schName = gen.scopeValue(\n \"schema\",\n opts.code.source === true ? {ref: sch, code: stringify(sch)} : {ref: sch}\n )\n const valid = gen.name(\"valid\")\n const schCxt = cxt.subschema(\n {\n schema: sch,\n dataTypes: [],\n schemaPath: nil,\n topSchemaRef: schName,\n errSchemaPath: $ref,\n },\n valid\n )\n cxt.mergeEvaluated(schCxt)\n cxt.ok(valid)\n }\n },\n}\n\nexport function getValidate(cxt: KeywordCxt, sch: SchemaEnv): Code {\n const {gen} = cxt\n return sch.validate\n ? gen.scopeValue(\"validate\", {ref: sch.validate})\n : _`${gen.scopeValue(\"wrapper\", {ref: sch})}.validate`\n}\n\nexport function callRef(cxt: KeywordCxt, v: Code, sch?: SchemaEnv, $async?: boolean): void {\n const {gen, it} = cxt\n const {allErrors, schemaEnv: env, opts} = it\n const passCxt = opts.passContext ? N.this : nil\n if ($async) callAsyncRef()\n else callSyncRef()\n\n function callAsyncRef(): void {\n if (!env.$async) throw new Error(\"async schema referenced by sync schema\")\n const valid = gen.let(\"valid\")\n gen.try(\n () => {\n gen.code(_`await ${callValidateCode(cxt, v, passCxt)}`)\n addEvaluatedFrom(v) // TODO will not work with async, it has to be returned with the result\n if (!allErrors) gen.assign(valid, true)\n },\n (e) => {\n gen.if(_`!(${e} instanceof ${it.ValidationError as Name})`, () => gen.throw(e))\n addErrorsFrom(e)\n if (!allErrors) gen.assign(valid, false)\n }\n )\n cxt.ok(valid)\n }\n\n function callSyncRef(): void {\n cxt.result(\n callValidateCode(cxt, v, passCxt),\n () => addEvaluatedFrom(v),\n () => addErrorsFrom(v)\n )\n }\n\n function addErrorsFrom(source: Code): void {\n const errs = _`${source}.errors`\n gen.assign(N.vErrors, _`${N.vErrors} === null ? ${errs} : ${N.vErrors}.concat(${errs})`) // TODO tagged\n gen.assign(N.errors, _`${N.vErrors}.length`)\n }\n\n function addEvaluatedFrom(source: Code): void {\n if (!it.opts.unevaluated) return\n const schEvaluated = sch?.validate?.evaluated\n // TODO refactor\n if (it.props !== true) {\n if (schEvaluated && !schEvaluated.dynamicProps) {\n if (schEvaluated.props !== undefined) {\n it.props = mergeEvaluated.props(gen, schEvaluated.props, it.props)\n }\n } else {\n const props = gen.var(\"props\", _`${source}.evaluated.props`)\n it.props = mergeEvaluated.props(gen, props, it.props, Name)\n }\n }\n if (it.items !== true) {\n if (schEvaluated && !schEvaluated.dynamicItems) {\n if (schEvaluated.items !== undefined) {\n it.items = mergeEvaluated.items(gen, schEvaluated.items, it.items)\n }\n } else {\n const items = gen.var(\"items\", _`${source}.evaluated.items`)\n it.items = mergeEvaluated.items(gen, items, it.items, Name)\n }\n }\n }\n}\n\nexport default def\n","import type {Vocabulary} from \"../../types\"\nimport idKeyword from \"./id\"\nimport refKeyword from \"./ref\"\n\nconst core: Vocabulary = [\n \"$schema\",\n \"$id\",\n \"$defs\",\n \"$vocabulary\",\n {keyword: \"$comment\"},\n \"definitions\",\n idKeyword,\n refKeyword,\n]\n\nexport default core\n","import type {CodeKeywordDefinition, ErrorObject, KeywordErrorDefinition} from \"../../types\"\nimport type {KeywordCxt} from \"../../compile/validate\"\nimport {_, str, operators, Code} from \"../../compile/codegen\"\n\nconst ops = operators\n\ntype Kwd = \"maximum\" | \"minimum\" | \"exclusiveMaximum\" | \"exclusiveMinimum\"\n\ntype Comparison = \"<=\" | \">=\" | \"<\" | \">\"\n\nconst KWDs: {[K in Kwd]: {okStr: Comparison; ok: Code; fail: Code}} = {\n maximum: {okStr: \"<=\", ok: ops.LTE, fail: ops.GT},\n minimum: {okStr: \">=\", ok: ops.GTE, fail: ops.LT},\n exclusiveMaximum: {okStr: \"<\", ok: ops.LT, fail: ops.GTE},\n exclusiveMinimum: {okStr: \">\", ok: ops.GT, fail: ops.LTE},\n}\n\nexport type LimitNumberError = ErrorObject<\n Kwd,\n {limit: number; comparison: Comparison},\n number | {$data: string}\n>\n\nconst error: KeywordErrorDefinition = {\n message: ({keyword, schemaCode}) => str`must be ${KWDs[keyword as Kwd].okStr} ${schemaCode}`,\n params: ({keyword, schemaCode}) =>\n _`{comparison: ${KWDs[keyword as Kwd].okStr}, limit: ${schemaCode}}`,\n}\n\nconst def: CodeKeywordDefinition = {\n keyword: Object.keys(KWDs),\n type: \"number\",\n schemaType: \"number\",\n $data: true,\n error,\n code(cxt: KeywordCxt) {\n const {keyword, data, schemaCode} = cxt\n cxt.fail$data(_`${data} ${KWDs[keyword as Kwd].fail} ${schemaCode} || isNaN(${data})`)\n },\n}\n\nexport default def\n","import type {CodeKeywordDefinition, ErrorObject, KeywordErrorDefinition} from \"../../types\"\nimport type {KeywordCxt} from \"../../compile/validate\"\nimport {_, str} from \"../../compile/codegen\"\n\nexport type MultipleOfError = ErrorObject<\n \"multipleOf\",\n {multipleOf: number},\n number | {$data: string}\n>\n\nconst error: KeywordErrorDefinition = {\n message: ({schemaCode}) => str`must be multiple of ${schemaCode}`,\n params: ({schemaCode}) => _`{multipleOf: ${schemaCode}}`,\n}\n\nconst def: CodeKeywordDefinition = {\n keyword: \"multipleOf\",\n type: \"number\",\n schemaType: \"number\",\n $data: true,\n error,\n code(cxt: KeywordCxt) {\n const {gen, data, schemaCode, it} = cxt\n // const bdt = bad$DataType(schemaCode, <string>def.schemaType, $data)\n const prec = it.opts.multipleOfPrecision\n const res = gen.let(\"res\")\n const invalid = prec\n ? _`Math.abs(Math.round(${res}) - ${res}) > 1e-${prec}`\n : _`${res} !== parseInt(${res})`\n cxt.fail$data(_`(${schemaCode} === 0 || (${res} = ${data}/${schemaCode}, ${invalid}))`)\n },\n}\n\nexport default def\n","// https://mathiasbynens.be/notes/javascript-encoding\n// https://github.com/bestiejs/punycode.js - punycode.ucs2.decode\nexport default function ucs2length(str: string): number {\n const len = str.length\n let length = 0\n let pos = 0\n let value: number\n while (pos < len) {\n length++\n value = str.charCodeAt(pos++)\n if (value >= 0xd800 && value <= 0xdbff && pos < len) {\n // high surrogate, and there is a next character\n value = str.charCodeAt(pos)\n if ((value & 0xfc00) === 0xdc00) pos++ // low surrogate\n }\n }\n return length\n}\n\nucs2length.code = 'require(\"ajv/dist/runtime/ucs2length\").default'\n","import type {CodeKeywordDefinition, KeywordErrorDefinition} from \"../../types\"\nimport type {KeywordCxt} from \"../../compile/validate\"\nimport {_, str, operators} from \"../../compile/codegen\"\nimport {useFunc} from \"../../compile/util\"\nimport ucs2length from \"../../runtime/ucs2length\"\n\nconst error: KeywordErrorDefinition = {\n message({keyword, schemaCode}) {\n const comp = keyword === \"maxLength\" ? \"more\" : \"fewer\"\n return str`must NOT have ${comp} than ${schemaCode} characters`\n },\n params: ({schemaCode}) => _`{limit: ${schemaCode}}`,\n}\n\nconst def: CodeKeywordDefinition = {\n keyword: [\"maxLength\", \"minLength\"],\n type: \"string\",\n schemaType: \"number\",\n $data: true,\n error,\n code(cxt: KeywordCxt) {\n const {keyword, data, schemaCode, it} = cxt\n const op = keyword === \"maxLength\" ? operators.GT : operators.LT\n const len =\n it.opts.unicode === false ? _`${data}.length` : _`${useFunc(cxt.gen, ucs2length)}(${data})`\n cxt.fail$data(_`${len} ${op} ${schemaCode}`)\n },\n}\n\nexport default def\n","import type {CodeKeywordDefinition, ErrorObject, KeywordErrorDefinition} from \"../../types\"\nimport type {KeywordCxt} from \"../../compile/validate\"\nimport {usePattern} from \"../code\"\nimport {_, str} from \"../../compile/codegen\"\n\nexport type PatternError = ErrorObject<\"pattern\", {pattern: string}, string | {$data: string}>\n\nconst error: KeywordErrorDefinition = {\n message: ({schemaCode}) => str`must match pattern \"${schemaCode}\"`,\n params: ({schemaCode}) => _`{pattern: ${schemaCode}}`,\n}\n\nconst def: CodeKeywordDefinition = {\n keyword: \"pattern\",\n type: \"string\",\n schemaType: \"string\",\n $data: true,\n error,\n code(cxt: KeywordCxt) {\n const {data, $data, schema, schemaCode, it} = cxt\n // TODO regexp should be wrapped in try/catchs\n const u = it.opts.unicodeRegExp ? \"u\" : \"\"\n const regExp = $data ? _`(new RegExp(${schemaCode}, ${u}))` : usePattern(cxt, schema)\n cxt.fail$data(_`!${regExp}.test(${data})`)\n },\n}\n\nexport default def\n","import type {CodeKeywordDefinition, KeywordErrorDefinition} from \"../../types\"\nimport type {KeywordCxt} from \"../../compile/validate\"\nimport {_, str, operators} from \"../../compile/codegen\"\n\nconst error: KeywordErrorDefinition = {\n message({keyword, schemaCode}) {\n const comp = keyword === \"maxProperties\" ? \"more\" : \"fewer\"\n return str`must NOT have ${comp} than ${schemaCode} properties`\n },\n params: ({schemaCode}) => _`{limit: ${schemaCode}}`,\n}\n\nconst def: CodeKeywordDefinition = {\n keyword: [\"maxProperties\", \"minProperties\"],\n type: \"object\",\n schemaType: \"number\",\n $data: true,\n error,\n code(cxt: KeywordCxt) {\n const {keyword, data, schemaCode} = cxt\n const op = keyword === \"maxProperties\" ? operators.GT : operators.LT\n cxt.fail$data(_`Object.keys(${data}).length ${op} ${schemaCode}`)\n },\n}\n\nexport default def\n","import type {CodeKeywordDefinition, ErrorObject, KeywordErrorDefinition} from \"../../types\"\nimport type {KeywordCxt} from \"../../compile/validate\"\nimport {\n checkReportMissingProp,\n checkMissingProp,\n reportMissingProp,\n propertyInData,\n noPropertyInData,\n} from \"../code\"\nimport {_, str, nil, not, Name, Code} from \"../../compile/codegen\"\nimport {checkStrictMode} from \"../../compile/util\"\n\nexport type RequiredError = ErrorObject<\n \"required\",\n {missingProperty: string},\n string[] | {$data: string}\n>\n\nconst error: KeywordErrorDefinition = {\n message: ({params: {missingProperty}}) => str`must have required property '${missingProperty}'`,\n params: ({params: {missingProperty}}) => _`{missingProperty: ${missingProperty}}`,\n}\n\nconst def: CodeKeywordDefinition = {\n keyword: \"required\",\n type: \"object\",\n schemaType: \"array\",\n $data: true,\n error,\n code(cxt: KeywordCxt) {\n const {gen, schema, schemaCode, data, $data, it} = cxt\n const {opts} = it\n if (!$data && schema.length === 0) return\n const useLoop = schema.length >= opts.loopRequired\n if (it.allErrors) allErrorsMode()\n else exitOnErrorMode()\n\n if (opts.strictRequired) {\n const props = cxt.parentSchema.properties\n const {definedProperties} = cxt.it\n for (const requiredKey of schema) {\n if (props?.[requiredKey] === undefined && !definedProperties.has(requiredKey)) {\n const schemaPath = it.schemaEnv.baseId + it.errSchemaPath\n const msg = `required property \"${requiredKey}\" is not defined at \"${schemaPath}\" (strictRequired)`\n checkStrictMode(it, msg, it.opts.strictRequired)\n }\n }\n }\n\n function allErrorsMode(): void {\n if (useLoop || $data) {\n cxt.block$data(nil, loopAllRequired)\n } else {\n for (const prop of schema) {\n checkReportMissingProp(cxt, prop)\n }\n }\n }\n\n function exitOnErrorMode(): void {\n const missing = gen.let(\"missing\")\n if (useLoop || $data) {\n const valid = gen.let(\"valid\", true)\n cxt.block$data(valid, () => loopUntilMissing(missing, valid))\n cxt.ok(valid)\n } else {\n gen.if(checkMissingProp(cxt, schema, missing))\n reportMissingProp(cxt, missing)\n gen.else()\n }\n }\n\n function loopAllRequired(): void {\n gen.forOf(\"prop\", schemaCode as Code, (prop) => {\n cxt.setParams({missingProperty: prop})\n gen.if(noPropertyInData(gen, data, prop, opts.ownProperties), () => cxt.error())\n })\n }\n\n function loopUntilMissing(missing: Name, valid: Name): void {\n cxt.setParams({missingProperty: missing})\n gen.forOf(\n missing,\n schemaCode as Code,\n () => {\n gen.assign(valid, propertyInData(gen, data, missing, opts.ownProperties))\n gen.if(not(valid), () => {\n cxt.error()\n gen.break()\n })\n },\n nil\n )\n }\n },\n}\n\nexport default def\n","import type {CodeKeywordDefinition, KeywordErrorDefinition} from \"../../types\"\nimport type {KeywordCxt} from \"../../compile/validate\"\nimport {_, str, operators} from \"../../compile/codegen\"\n\nconst error: KeywordErrorDefinition = {\n message({keyword, schemaCode}) {\n const comp = keyword === \"maxItems\" ? \"more\" : \"fewer\"\n return str`must NOT have ${comp} than ${schemaCode} items`\n },\n params: ({schemaCode}) => _`{limit: ${schemaCode}}`,\n}\n\nconst def: CodeKeywordDefinition = {\n keyword: [\"maxItems\", \"minItems\"],\n type: \"array\",\n schemaType: \"number\",\n $data: true,\n error,\n code(cxt: KeywordCxt) {\n const {keyword, data, schemaCode} = cxt\n const op = keyword === \"maxItems\" ? operators.GT : operators.LT\n cxt.fail$data(_`${data}.length ${op} ${schemaCode}`)\n },\n}\n\nexport default def\n","// https://github.com/ajv-validator/ajv/issues/889\nimport * as equal from \"fast-deep-equal\"\n\ntype Equal = typeof equal & {code: string}\n;(equal as Equal).code = 'require(\"ajv/dist/runtime/equal\").default'\n\nexport default equal as Equal\n","import type {CodeKeywordDefinition, ErrorObject, KeywordErrorDefinition} from \"../../types\"\nimport type {KeywordCxt} from \"../../compile/validate\"\nimport {checkDataTypes, getSchemaTypes, DataType} from \"../../compile/validate/dataType\"\nimport {_, str, Name} from \"../../compile/codegen\"\nimport {useFunc} from \"../../compile/util\"\nimport equal from \"../../runtime/equal\"\n\nexport type UniqueItemsError = ErrorObject<\n \"uniqueItems\",\n {i: number; j: number},\n boolean | {$data: string}\n>\n\nconst error: KeywordErrorDefinition = {\n message: ({params: {i, j}}) =>\n str`must NOT have duplicate items (items ## ${j} and ${i} are identical)`,\n params: ({params: {i, j}}) => _`{i: ${i}, j: ${j}}`,\n}\n\nconst def: CodeKeywordDefinition = {\n keyword: \"uniqueItems\",\n type: \"array\",\n schemaType: \"boolean\",\n $data: true,\n error,\n code(cxt: KeywordCxt) {\n const {gen, data, $data, schema, parentSchema, schemaCode, it} = cxt\n if (!$data && !schema) return\n const valid = gen.let(\"valid\")\n const itemTypes = parentSchema.items ? getSchemaTypes(parentSchema.items) : []\n cxt.block$data(valid, validateUniqueItems, _`${schemaCode} === false`)\n cxt.ok(valid)\n\n function validateUniqueItems(): void {\n const i = gen.let(\"i\", _`${data}.length`)\n const j = gen.let(\"j\")\n cxt.setParams({i, j})\n gen.assign(valid, true)\n gen.if(_`${i} > 1`, () => (canOptimize() ? loopN : loopN2)(i, j))\n }\n\n function canOptimize(): boolean {\n return itemTypes.length > 0 && !itemTypes.some((t) => t === \"object\" || t === \"array\")\n }\n\n function loopN(i: Name, j: Name): void {\n const item = gen.name(\"item\")\n const wrongType = checkDataTypes(itemTypes, item, it.opts.strictNumbers, DataType.Wrong)\n const indices = gen.const(\"indices\", _`{}`)\n gen.for(_`;${i}--;`, () => {\n gen.let(item, _`${data}[${i}]`)\n gen.if(wrongType, _`continue`)\n if (itemTypes.length > 1) gen.if(_`typeof ${item} == \"string\"`, _`${item} += \"_\"`)\n gen\n .if(_`typeof ${indices}[${item}] == \"number\"`, () => {\n gen.assign(j, _`${indices}[${item}]`)\n cxt.error()\n gen.assign(valid, false).break()\n })\n .code(_`${indices}[${item}] = ${i}`)\n })\n }\n\n function loopN2(i: Name, j: Name): void {\n const eql = useFunc(gen, equal)\n const outer = gen.name(\"outer\")\n gen.label(outer).for(_`;${i}--;`, () =>\n gen.for(_`${j} = ${i}; ${j}--;`, () =>\n gen.if(_`${eql}(${data}[${i}], ${data}[${j}])`, () => {\n cxt.error()\n gen.assign(valid, false).break(outer)\n })\n )\n )\n }\n },\n}\n\nexport default def\n","import type {CodeKeywordDefinition, ErrorObject, KeywordErrorDefinition} from \"../../types\"\nimport type {KeywordCxt} from \"../../compile/validate\"\nimport {_} from \"../../compile/codegen\"\nimport {useFunc} from \"../../compile/util\"\nimport equal from \"../../runtime/equal\"\n\nexport type ConstError = ErrorObject<\"const\", {allowedValue: any}>\n\nconst error: KeywordErrorDefinition = {\n message: \"must be equal to constant\",\n params: ({schemaCode}) => _`{allowedValue: ${schemaCode}}`,\n}\n\nconst def: CodeKeywordDefinition = {\n keyword: \"const\",\n $data: true,\n error,\n code(cxt: KeywordCxt) {\n const {gen, data, $data, schemaCode, schema} = cxt\n if ($data || (schema && typeof schema == \"object\")) {\n cxt.fail$data(_`!${useFunc(gen, equal)}(${data}, ${schemaCode})`)\n } else {\n cxt.fail(_`${schema} !== ${data}`)\n }\n },\n}\n\nexport default def\n","import type {CodeKeywordDefinition, ErrorObject, KeywordErrorDefinition} from \"../../types\"\nimport type {KeywordCxt} from \"../../compile/validate\"\nimport {_, or, Name, Code} from \"../../compile/codegen\"\nimport {useFunc} from \"../../compile/util\"\nimport equal from \"../../runtime/equal\"\n\nexport type EnumError = ErrorObject<\"enum\", {allowedValues: any[]}, any[] | {$data: string}>\n\nconst error: KeywordErrorDefinition = {\n message: \"must be equal to one of the allowed values\",\n params: ({schemaCode}) => _`{allowedValues: ${schemaCode}}`,\n}\n\nconst def: CodeKeywordDefinition = {\n keyword: \"enum\",\n schemaType: \"array\",\n $data: true,\n error,\n code(cxt: KeywordCxt) {\n const {gen, data, $data, schema, schemaCode, it} = cxt\n if (!$data && schema.length === 0) throw new Error(\"enum must have non-empty array\")\n const useLoop = schema.length >= it.opts.loopEnum\n let eql: Name | undefined\n const getEql = (): Name => (eql ??= useFunc(gen, equal))\n\n let valid: Code\n if (useLoop || $data) {\n valid = gen.let(\"valid\")\n cxt.block$data(valid, loopEnum)\n } else {\n /* istanbul ignore if */\n if (!Array.isArray(schema)) throw new Error(\"ajv implementation error\")\n const vSchema = gen.const(\"vSchema\", schemaCode)\n valid = or(...schema.map((_x: unknown, i: number) => equalCode(vSchema, i)))\n }\n cxt.pass(valid)\n\n function loopEnum(): void {\n gen.assign(valid, false)\n gen.forOf(\"v\", schemaCode as Code, (v) =>\n gen.if(_`${getEql()}(${data}, ${v})`, () => gen.assign(valid, true).break())\n )\n }\n\n function equalCode(vSchema: Name, i: number): Code {\n const sch = schema[i]\n return typeof sch === \"object\" && sch !== null\n ? _`${getEql()}(${data}, ${vSchema}[${i}])`\n : _`${data} === ${sch}`\n }\n },\n}\n\nexport default def\n","import type {ErrorObject, Vocabulary} from \"../../types\"\nimport limitNumber, {LimitNumberError} from \"./limitNumber\"\nimport multipleOf, {MultipleOfError} from \"./multipleOf\"\nimport limitLength from \"./limitLength\"\nimport pattern, {PatternError} from \"./pattern\"\nimport limitProperties from \"./limitProperties\"\nimport required, {RequiredError} from \"./required\"\nimport limitItems from \"./limitItems\"\nimport uniqueItems, {UniqueItemsError} from \"./uniqueItems\"\nimport constKeyword, {ConstError} from \"./const\"\nimport enumKeyword, {EnumError} from \"./enum\"\n\nconst validation: Vocabulary = [\n // number\n limitNumber,\n multipleOf,\n // string\n limitLength,\n pattern,\n // object\n limitProperties,\n required,\n // array\n limitItems,\n uniqueItems,\n // any\n {keyword: \"type\", schemaType: [\"string\", \"array\"]},\n {keyword: \"nullable\", schemaType: \"boolean\"},\n constKeyword,\n enumKeyword,\n]\n\nexport default validation\n\ntype LimitError = ErrorObject<\n \"maxItems\" | \"minItems\" | \"minProperties\" | \"maxProperties\" | \"minLength\" | \"maxLength\",\n {limit: number},\n number | {$data: string}\n>\n\nexport type ValidationKeywordError =\n | LimitError\n | LimitNumberError\n | MultipleOfError\n | PatternError\n | RequiredError\n | UniqueItemsError\n | ConstError\n | EnumError\n","import type {\n CodeKeywordDefinition,\n ErrorObject,\n KeywordErrorDefinition,\n AnySchema,\n} from \"../../types\"\nimport type {KeywordCxt} from \"../../compile/validate\"\nimport {_, str, not, Name} from \"../../compile/codegen\"\nimport {alwaysValidSchema, checkStrictMode, Type} from \"../../compile/util\"\n\nexport type AdditionalItemsError = ErrorObject<\"additionalItems\", {limit: number}, AnySchema>\n\nconst error: KeywordErrorDefinition = {\n message: ({params: {len}}) => str`must NOT have more than ${len} items`,\n params: ({params: {len}}) => _`{limit: ${len}}`,\n}\n\nconst def: CodeKeywordDefinition = {\n keyword: \"additionalItems\" as const,\n type: \"array\",\n schemaType: [\"boolean\", \"object\"],\n before: \"uniqueItems\",\n error,\n code(cxt: KeywordCxt) {\n const {parentSchema, it} = cxt\n const {items} = parentSchema\n if (!Array.isArray(items)) {\n checkStrictMode(it, '\"additionalItems\" is ignored when \"items\" is not an array of schemas')\n return\n }\n validateAdditionalItems(cxt, items)\n },\n}\n\nexport function validateAdditionalItems(cxt: KeywordCxt, items: AnySchema[]): void {\n const {gen, schema, data, keyword, it} = cxt\n it.items = true\n const len = gen.const(\"len\", _`${data}.length`)\n if (schema === false) {\n cxt.setParams({len: items.length})\n cxt.pass(_`${len} <= ${items.length}`)\n } else if (typeof schema == \"object\" && !alwaysValidSchema(it, schema)) {\n const valid = gen.var(\"valid\", _`${len} <= ${items.length}`) // TODO var\n gen.if(not(valid), () => validateItems(valid))\n cxt.ok(valid)\n }\n\n function validateItems(valid: Name): void {\n gen.forRange(\"i\", items.length, len, (i) => {\n cxt.subschema({keyword, dataProp: i, dataPropType: Type.Num}, valid)\n if (!it.allErrors) gen.if(not(valid), () => gen.break())\n })\n }\n}\n\nexport default def\n","import type {CodeKeywordDefinition, AnySchema, AnySchemaObject} from \"../../types\"\nimport type {KeywordCxt} from \"../../compile/validate\"\nimport {_} from \"../../compile/codegen\"\nimport {alwaysValidSchema, mergeEvaluated, checkStrictMode} from \"../../compile/util\"\nimport {validateArray} from \"../code\"\n\nconst def: CodeKeywordDefinition = {\n keyword: \"items\",\n type: \"array\",\n schemaType: [\"object\", \"array\", \"boolean\"],\n before: \"uniqueItems\",\n code(cxt: KeywordCxt) {\n const {schema, it} = cxt\n if (Array.isArray(schema)) return validateTuple(cxt, \"additionalItems\", schema)\n it.items = true\n if (alwaysValidSchema(it, schema)) return\n cxt.ok(validateArray(cxt))\n },\n}\n\nexport function validateTuple(\n cxt: KeywordCxt,\n extraItems: string,\n schArr: AnySchema[] = cxt.schema\n): void {\n const {gen, parentSchema, data, keyword, it} = cxt\n checkStrictTuple(parentSchema)\n if (it.opts.unevaluated && schArr.length && it.items !== true) {\n it.items = mergeEvaluated.items(gen, schArr.length, it.items)\n }\n const valid = gen.name(\"valid\")\n const len = gen.const(\"len\", _`${data}.length`)\n schArr.forEach((sch: AnySchema, i: number) => {\n if (alwaysValidSchema(it, sch)) return\n gen.if(_`${len} > ${i}`, () =>\n cxt.subschema(\n {\n keyword,\n schemaProp: i,\n dataProp: i,\n },\n valid\n )\n )\n cxt.ok(valid)\n })\n\n function checkStrictTuple(sch: AnySchemaObject): void {\n const {opts, errSchemaPath} = it\n const l = schArr.length\n const fullTuple = l === sch.minItems && (l === sch.maxItems || sch[extraItems] === false)\n if (opts.strictTuples && !fullTuple) {\n const msg = `\"${keyword}\" is ${l}-tuple, but minItems or maxItems/${extraItems} are not specified or different at path \"${errSchemaPath}\"`\n checkStrictMode(it, msg, opts.strictTuples)\n }\n }\n}\n\nexport default def\n","import type {CodeKeywordDefinition} from \"../../types\"\nimport {validateTuple} from \"./items\"\n\nconst def: CodeKeywordDefinition = {\n keyword: \"prefixItems\",\n type: \"array\",\n schemaType: [\"array\"],\n before: \"uniqueItems\",\n code: (cxt) => validateTuple(cxt, \"items\"),\n}\n\nexport default def\n","import type {\n CodeKeywordDefinition,\n KeywordErrorDefinition,\n ErrorObject,\n AnySchema,\n} from \"../../types\"\nimport type {KeywordCxt} from \"../../compile/validate\"\nimport {_, str} from \"../../compile/codegen\"\nimport {alwaysValidSchema} from \"../../compile/util\"\nimport {validateArray} from \"../code\"\nimport {validateAdditionalItems} from \"./additionalItems\"\n\nexport type ItemsError = ErrorObject<\"items\", {limit: number}, AnySchema>\n\nconst error: KeywordErrorDefinition = {\n message: ({params: {len}}) => str`must NOT have more than ${len} items`,\n params: ({params: {len}}) => _`{limit: ${len}}`,\n}\n\nconst def: CodeKeywordDefinition = {\n keyword: \"items\",\n type: \"array\",\n schemaType: [\"object\", \"boolean\"],\n before: \"uniqueItems\",\n error,\n code(cxt: KeywordCxt) {\n const {schema, parentSchema, it} = cxt\n const {prefixItems} = parentSchema\n it.items = true\n if (alwaysValidSchema(it, schema)) return\n if (prefixItems) validateAdditionalItems(cxt, prefixItems)\n else cxt.ok(validateArray(cxt))\n },\n}\n\nexport default def\n","import type {\n CodeKeywordDefinition,\n KeywordErrorDefinition,\n ErrorObject,\n AnySchema,\n} from \"../../types\"\nimport type {KeywordCxt} from \"../../compile/validate\"\nimport {_, str, Name} from \"../../compile/codegen\"\nimport {alwaysValidSchema, checkStrictMode, Type} from \"../../compile/util\"\n\nexport type ContainsError = ErrorObject<\n \"contains\",\n {minContains: number; maxContains?: number},\n AnySchema\n>\n\nconst error: KeywordErrorDefinition = {\n message: ({params: {min, max}}) =>\n max === undefined\n ? str`must contain at least ${min} valid item(s)`\n : str`must contain at least ${min} and no more than ${max} valid item(s)`,\n params: ({params: {min, max}}) =>\n max === undefined ? _`{minContains: ${min}}` : _`{minContains: ${min}, maxContains: ${max}}`,\n}\n\nconst def: CodeKeywordDefinition = {\n keyword: \"contains\",\n type: \"array\",\n schemaType: [\"object\", \"boolean\"],\n before: \"uniqueItems\",\n trackErrors: true,\n error,\n code(cxt: KeywordCxt) {\n const {gen, schema, parentSchema, data, it} = cxt\n let min: number\n let max: number | undefined\n const {minContains, maxContains} = parentSchema\n if (it.opts.next) {\n min = minContains === undefined ? 1 : minContains\n max = maxContains\n } else {\n min = 1\n }\n const len = gen.const(\"len\", _`${data}.length`)\n cxt.setParams({min, max})\n if (max === undefined && min === 0) {\n checkStrictMode(it, `\"minContains\" == 0 without \"maxContains\": \"contains\" keyword ignored`)\n return\n }\n if (max !== undefined && min > max) {\n checkStrictMode(it, `\"minContains\" > \"maxContains\" is always invalid`)\n cxt.fail()\n return\n }\n if (alwaysValidSchema(it, schema)) {\n let cond = _`${len} >= ${min}`\n if (max !== undefined) cond = _`${cond} && ${len} <= ${max}`\n cxt.pass(cond)\n return\n }\n\n it.items = true\n const valid = gen.name(\"valid\")\n if (max === undefined && min === 1) {\n validateItems(valid, () => gen.if(valid, () => gen.break()))\n } else if (min === 0) {\n gen.let(valid, true)\n if (max !== undefined) gen.if(_`${data}.length > 0`, validateItemsWithCount)\n } else {\n gen.let(valid, false)\n validateItemsWithCount()\n }\n cxt.result(valid, () => cxt.reset())\n\n function validateItemsWithCount(): void {\n const schValid = gen.name(\"_valid\")\n const count = gen.let(\"count\", 0)\n validateItems(schValid, () => gen.if(schValid, () => checkLimits(count)))\n }\n\n function validateItems(_valid: Name, block: () => void): void {\n gen.forRange(\"i\", 0, len, (i) => {\n cxt.subschema(\n {\n keyword: \"contains\",\n dataProp: i,\n dataPropType: Type.Num,\n compositeRule: true,\n },\n _valid\n )\n block()\n })\n }\n\n function checkLimits(count: Name): void {\n gen.code(_`${count}++`)\n if (max === undefined) {\n gen.if(_`${count} >= ${min}`, () => gen.assign(valid, true).break())\n } else {\n gen.if(_`${count} > ${max}`, () => gen.assign(valid, false).break())\n if (min === 1) gen.assign(valid, true)\n else gen.if(_`${count} >= ${min}`, () => gen.assign(valid, true))\n }\n }\n },\n}\n\nexport default def\n","import type {\n CodeKeywordDefinition,\n ErrorObject,\n KeywordErrorDefinition,\n SchemaMap,\n AnySchema,\n} from \"../../types\"\nimport type {KeywordCxt} from \"../../compile/validate\"\nimport {_, str} from \"../../compile/codegen\"\nimport {alwaysValidSchema} from \"../../compile/util\"\nimport {checkReportMissingProp, checkMissingProp, reportMissingProp, propertyInData} from \"../code\"\n\nexport type PropertyDependencies = {[K in string]?: string[]}\n\nexport interface DependenciesErrorParams {\n property: string\n missingProperty: string\n depsCount: number\n deps: string // TODO change to string[]\n}\n\ntype SchemaDependencies = SchemaMap\n\nexport type DependenciesError = ErrorObject<\n \"dependencies\",\n DependenciesErrorParams,\n {[K in string]?: string[] | AnySchema}\n>\n\nexport const error: KeywordErrorDefinition = {\n message: ({params: {property, depsCount, deps}}) => {\n const property_ies = depsCount === 1 ? \"property\" : \"properties\"\n return str`must have ${property_ies} ${deps} when property ${property} is present`\n },\n params: ({params: {property, depsCount, deps, missingProperty}}) =>\n _`{property: ${property},\n missingProperty: ${missingProperty},\n depsCount: ${depsCount},\n deps: ${deps}}`, // TODO change to reference\n}\n\nconst def: CodeKeywordDefinition = {\n keyword: \"dependencies\",\n type: \"object\",\n schemaType: \"object\",\n error,\n code(cxt: KeywordCxt) {\n const [propDeps, schDeps] = splitDependencies(cxt)\n validatePropertyDeps(cxt, propDeps)\n validateSchemaDeps(cxt, schDeps)\n },\n}\n\nfunction splitDependencies({schema}: KeywordCxt): [PropertyDependencies, SchemaDependencies] {\n const propertyDeps: PropertyDependencies = {}\n const schemaDeps: SchemaDependencies = {}\n for (const key in schema) {\n if (key === \"__proto__\") continue\n const deps = Array.isArray(schema[key]) ? propertyDeps : schemaDeps\n deps[key] = schema[key]\n }\n return [propertyDeps, schemaDeps]\n}\n\nexport function validatePropertyDeps(\n cxt: KeywordCxt,\n propertyDeps: {[K in string]?: string[]} = cxt.schema\n): void {\n const {gen, data, it} = cxt\n if (Object.keys(propertyDeps).length === 0) return\n const missing = gen.let(\"missing\")\n for (const prop in propertyDeps) {\n const deps = propertyDeps[prop] as string[]\n if (deps.length === 0) continue\n const hasProperty = propertyInData(gen, data, prop, it.opts.ownProperties)\n cxt.setParams({\n property: prop,\n depsCount: deps.length,\n deps: deps.join(\", \"),\n })\n if (it.allErrors) {\n gen.if(hasProperty, () => {\n for (const depProp of deps) {\n checkReportMissingProp(cxt, depProp)\n }\n })\n } else {\n gen.if(_`${hasProperty} && (${checkMissingProp(cxt, deps, missing)})`)\n reportMissingProp(cxt, missing)\n gen.else()\n }\n }\n}\n\nexport function validateSchemaDeps(cxt: KeywordCxt, schemaDeps: SchemaMap = cxt.schema): void {\n const {gen, data, keyword, it} = cxt\n const valid = gen.name(\"valid\")\n for (const prop in schemaDeps) {\n if (alwaysValidSchema(it, schemaDeps[prop] as AnySchema)) continue\n gen.if(\n propertyInData(gen, data, prop, it.opts.ownProperties),\n () => {\n const schCxt = cxt.subschema({keyword, schemaProp: prop}, valid)\n cxt.mergeValidEvaluated(schCxt, valid)\n },\n () => gen.var(valid, true) // TODO var\n )\n cxt.ok(valid)\n }\n}\n\nexport default def\n","import type {\n CodeKeywordDefinition,\n ErrorObject,\n KeywordErrorDefinition,\n AnySchema,\n} from \"../../types\"\nimport type {KeywordCxt} from \"../../compile/validate\"\nimport {_, not} from \"../../compile/codegen\"\nimport {alwaysValidSchema} from \"../../compile/util\"\n\nexport type PropertyNamesError = ErrorObject<\"propertyNames\", {propertyName: string}, AnySchema>\n\nconst error: KeywordErrorDefinition = {\n message: \"property name must be valid\",\n params: ({params}) => _`{propertyName: ${params.propertyName}}`,\n}\n\nconst def: CodeKeywordDefinition = {\n keyword: \"propertyNames\",\n type: \"object\",\n schemaType: [\"object\", \"boolean\"],\n error,\n code(cxt: KeywordCxt) {\n const {gen, schema, data, it} = cxt\n if (alwaysValidSchema(it, schema)) return\n const valid = gen.name(\"valid\")\n\n gen.forIn(\"key\", data, (key) => {\n cxt.setParams({propertyName: key})\n cxt.subschema(\n {\n keyword: \"propertyNames\",\n data: key,\n dataTypes: [\"string\"],\n propertyName: key,\n compositeRule: true,\n },\n valid\n )\n gen.if(not(valid), () => {\n cxt.error(true)\n if (!it.allErrors) gen.break()\n })\n })\n\n cxt.ok(valid)\n },\n}\n\nexport default def\n","import type {\n CodeKeywordDefinition,\n AddedKeywordDefinition,\n ErrorObject,\n KeywordErrorDefinition,\n AnySchema,\n} from \"../../types\"\nimport {allSchemaProperties, usePattern, isOwnProperty} from \"../code\"\nimport {_, nil, or, not, Code, Name} from \"../../compile/codegen\"\nimport N from \"../../compile/names\"\nimport type {SubschemaArgs} from \"../../compile/validate/subschema\"\nimport {alwaysValidSchema, schemaRefOrVal, Type} from \"../../compile/util\"\n\nexport type AdditionalPropertiesError = ErrorObject<\n \"additionalProperties\",\n {additionalProperty: string},\n AnySchema\n>\n\nconst error: KeywordErrorDefinition = {\n message: \"must NOT have additional properties\",\n params: ({params}) => _`{additionalProperty: ${params.additionalProperty}}`,\n}\n\nconst def: CodeKeywordDefinition & AddedKeywordDefinition = {\n keyword: \"additionalProperties\",\n type: [\"object\"],\n schemaType: [\"boolean\", \"object\"],\n allowUndefined: true,\n trackErrors: true,\n error,\n code(cxt) {\n const {gen, schema, parentSchema, data, errsCount, it} = cxt\n /* istanbul ignore if */\n if (!errsCount) throw new Error(\"ajv implementation error\")\n const {allErrors, opts} = it\n it.props = true\n if (opts.removeAdditional !== \"all\" && alwaysValidSchema(it, schema)) return\n const props = allSchemaProperties(parentSchema.properties)\n const patProps = allSchemaProperties(parentSchema.patternProperties)\n checkAdditionalProperties()\n cxt.ok(_`${errsCount} === ${N.errors}`)\n\n function checkAdditionalProperties(): void {\n gen.forIn(\"key\", data, (key: Name) => {\n if (!props.length && !patProps.length) additionalPropertyCode(key)\n else gen.if(isAdditional(key), () => additionalPropertyCode(key))\n })\n }\n\n function isAdditional(key: Name): Code {\n let definedProp: Code\n if (props.length > 8) {\n // TODO maybe an option instead of hard-coded 8?\n const propsSchema = schemaRefOrVal(it, parentSchema.properties, \"properties\")\n definedProp = isOwnProperty(gen, propsSchema as Code, key)\n } else if (props.length) {\n definedProp = or(...props.map((p) => _`${key} === ${p}`))\n } else {\n definedProp = nil\n }\n if (patProps.length) {\n definedProp = or(definedProp, ...patProps.map((p) => _`${usePattern(cxt, p)}.test(${key})`))\n }\n return not(definedProp)\n }\n\n function deleteAdditional(key: Name): void {\n gen.code(_`delete ${data}[${key}]`)\n }\n\n function additionalPropertyCode(key: Name): void {\n if (opts.removeAdditional === \"all\" || (opts.removeAdditional && schema === false)) {\n deleteAdditional(key)\n return\n }\n\n if (schema === false) {\n cxt.setParams({additionalProperty: key})\n cxt.error()\n if (!allErrors) gen.break()\n return\n }\n\n if (typeof schema == \"object\" && !alwaysValidSchema(it, schema)) {\n const valid = gen.name(\"valid\")\n if (opts.removeAdditional === \"failing\") {\n applyAdditionalSchema(key, valid, false)\n gen.if(not(valid), () => {\n cxt.reset()\n deleteAdditional(key)\n })\n } else {\n applyAdditionalSchema(key, valid)\n if (!allErrors) gen.if(not(valid), () => gen.break())\n }\n }\n }\n\n function applyAdditionalSchema(key: Name, valid: Name, errors?: false): void {\n const subschema: SubschemaArgs = {\n keyword: \"additionalProperties\",\n dataProp: key,\n dataPropType: Type.Str,\n }\n if (errors === false) {\n Object.assign(subschema, {\n compositeRule: true,\n createErrors: false,\n allErrors: false,\n })\n }\n cxt.subschema(subschema, valid)\n }\n },\n}\n\nexport default def\n","import type {CodeKeywordDefinition} from \"../../types\"\nimport {KeywordCxt} from \"../../compile/validate\"\nimport {propertyInData, allSchemaProperties} from \"../code\"\nimport {alwaysValidSchema, toHash, mergeEvaluated} from \"../../compile/util\"\nimport apDef from \"./additionalProperties\"\n\nconst def: CodeKeywordDefinition = {\n keyword: \"properties\",\n type: \"object\",\n schemaType: \"object\",\n code(cxt: KeywordCxt) {\n const {gen, schema, parentSchema, data, it} = cxt\n if (it.opts.removeAdditional === \"all\" && parentSchema.additionalProperties === undefined) {\n apDef.code(new KeywordCxt(it, apDef, \"additionalProperties\"))\n }\n const allProps = allSchemaProperties(schema)\n for (const prop of allProps) {\n it.definedProperties.add(prop)\n }\n if (it.opts.unevaluated && allProps.length && it.props !== true) {\n it.props = mergeEvaluated.props(gen, toHash(allProps), it.props)\n }\n const properties = allProps.filter((p) => !alwaysValidSchema(it, schema[p]))\n if (properties.length === 0) return\n const valid = gen.name(\"valid\")\n\n for (const prop of properties) {\n if (hasDefault(prop)) {\n applyPropertySchema(prop)\n } else {\n gen.if(propertyInData(gen, data, prop, it.opts.ownProperties))\n applyPropertySchema(prop)\n if (!it.allErrors) gen.else().var(valid, true)\n gen.endIf()\n }\n cxt.it.definedProperties.add(prop)\n cxt.ok(valid)\n }\n\n function hasDefault(prop: string): boolean | undefined {\n return it.opts.useDefaults && !it.compositeRule && schema[prop].default !== undefined\n }\n\n function applyPropertySchema(prop: string): void {\n cxt.subschema(\n {\n keyword: \"properties\",\n schemaProp: prop,\n dataProp: prop,\n },\n valid\n )\n }\n },\n}\n\nexport default def\n","import type {CodeKeywordDefinition} from \"../../types\"\nimport type {KeywordCxt} from \"../../compile/validate\"\nimport {allSchemaProperties, usePattern} from \"../code\"\nimport {_, not, Name} from \"../../compile/codegen\"\nimport {alwaysValidSchema, checkStrictMode} from \"../../compile/util\"\nimport {evaluatedPropsToName, Type} from \"../../compile/util\"\nimport {AnySchema} from \"../../types\"\n\nconst def: CodeKeywordDefinition = {\n keyword: \"patternProperties\",\n type: \"object\",\n schemaType: \"object\",\n code(cxt: KeywordCxt) {\n const {gen, schema, data, parentSchema, it} = cxt\n const {opts} = it\n const patterns = allSchemaProperties(schema)\n const alwaysValidPatterns = patterns.filter((p) =>\n alwaysValidSchema(it, schema[p] as AnySchema)\n )\n\n if (\n patterns.length === 0 ||\n (alwaysValidPatterns.length === patterns.length &&\n (!it.opts.unevaluated || it.props === true))\n ) {\n return\n }\n\n const checkProperties =\n opts.strictSchema && !opts.allowMatchingProperties && parentSchema.properties\n const valid = gen.name(\"valid\")\n if (it.props !== true && !(it.props instanceof Name)) {\n it.props = evaluatedPropsToName(gen, it.props)\n }\n const {props} = it\n validatePatternProperties()\n\n function validatePatternProperties(): void {\n for (const pat of patterns) {\n if (checkProperties) checkMatchingProperties(pat)\n if (it.allErrors) {\n validateProperties(pat)\n } else {\n gen.var(valid, true) // TODO var\n validateProperties(pat)\n gen.if(valid)\n }\n }\n }\n\n function checkMatchingProperties(pat: string): void {\n for (const prop in checkProperties) {\n if (new RegExp(pat).test(prop)) {\n checkStrictMode(\n it,\n `property ${prop} matches pattern ${pat} (use allowMatchingProperties)`\n )\n }\n }\n }\n\n function validateProperties(pat: string): void {\n gen.forIn(\"key\", data, (key) => {\n gen.if(_`${usePattern(cxt, pat)}.test(${key})`, () => {\n const alwaysValid = alwaysValidPatterns.includes(pat)\n if (!alwaysValid) {\n cxt.subschema(\n {\n keyword: \"patternProperties\",\n schemaProp: pat,\n dataProp: key,\n dataPropType: Type.Str,\n },\n valid\n )\n }\n\n if (it.opts.unevaluated && props !== true) {\n gen.assign(_`${props}[${key}]`, true)\n } else if (!alwaysValid && !it.allErrors) {\n // can short-circuit if `unevaluatedProperties` is not supported (opts.next === false)\n // or if all properties were evaluated (props === true)\n gen.if(not(valid), () => gen.break())\n }\n })\n })\n }\n },\n}\n\nexport default def\n","import type {CodeKeywordDefinition, ErrorNoParams, AnySchema} from \"../../types\"\nimport type {KeywordCxt} from \"../../compile/validate\"\nimport {alwaysValidSchema} from \"../../compile/util\"\n\nexport type NotKeywordError = ErrorNoParams<\"not\", AnySchema>\n\nconst def: CodeKeywordDefinition = {\n keyword: \"not\",\n schemaType: [\"object\", \"boolean\"],\n trackErrors: true,\n code(cxt: KeywordCxt) {\n const {gen, schema, it} = cxt\n if (alwaysValidSchema(it, schema)) {\n cxt.fail()\n return\n }\n\n const valid = gen.name(\"valid\")\n cxt.subschema(\n {\n keyword: \"not\",\n compositeRule: true,\n createErrors: false,\n allErrors: false,\n },\n valid\n )\n\n cxt.failResult(\n valid,\n () => cxt.reset(),\n () => cxt.error()\n )\n },\n error: {message: \"must NOT be valid\"},\n}\n\nexport default def\n","import type {CodeKeywordDefinition, ErrorNoParams, AnySchema} from \"../../types\"\nimport {validateUnion} from \"../code\"\n\nexport type AnyOfError = ErrorNoParams<\"anyOf\", AnySchema[]>\n\nconst def: CodeKeywordDefinition = {\n keyword: \"anyOf\",\n schemaType: \"array\",\n trackErrors: true,\n code: validateUnion,\n error: {message: \"must match a schema in anyOf\"},\n}\n\nexport default def\n","import type {\n CodeKeywordDefinition,\n ErrorObject,\n KeywordErrorDefinition,\n AnySchema,\n} from \"../../types\"\nimport type {KeywordCxt} from \"../../compile/validate\"\nimport {_, Name} from \"../../compile/codegen\"\nimport {alwaysValidSchema} from \"../../compile/util\"\nimport {SchemaCxt} from \"../../compile\"\n\nexport type OneOfError = ErrorObject<\n \"oneOf\",\n {passingSchemas: [number, number] | null},\n AnySchema[]\n>\n\nconst error: KeywordErrorDefinition = {\n message: \"must match exactly one schema in oneOf\",\n params: ({params}) => _`{passingSchemas: ${params.passing}}`,\n}\n\nconst def: CodeKeywordDefinition = {\n keyword: \"oneOf\",\n schemaType: \"array\",\n trackErrors: true,\n error,\n code(cxt: KeywordCxt) {\n const {gen, schema, parentSchema, it} = cxt\n /* istanbul ignore if */\n if (!Array.isArray(schema)) throw new Error(\"ajv implementation error\")\n if (it.opts.discriminator && parentSchema.discriminator) return\n const schArr: AnySchema[] = schema\n const valid = gen.let(\"valid\", false)\n const passing = gen.let(\"passing\", null)\n const schValid = gen.name(\"_valid\")\n cxt.setParams({passing})\n // TODO possibly fail straight away (with warning or exception) if there are two empty always valid schemas\n\n gen.block(validateOneOf)\n\n cxt.result(\n valid,\n () => cxt.reset(),\n () => cxt.error(true)\n )\n\n function validateOneOf(): void {\n schArr.forEach((sch: AnySchema, i: number) => {\n let schCxt: SchemaCxt | undefined\n if (alwaysValidSchema(it, sch)) {\n gen.var(schValid, true)\n } else {\n schCxt = cxt.subschema(\n {\n keyword: \"oneOf\",\n schemaProp: i,\n compositeRule: true,\n },\n schValid\n )\n }\n\n if (i > 0) {\n gen\n .if(_`${schValid} && ${valid}`)\n .assign(valid, false)\n .assign(passing, _`[${passing}, ${i}]`)\n .else()\n }\n\n gen.if(schValid, () => {\n gen.assign(valid, true)\n gen.assign(passing, i)\n if (schCxt) cxt.mergeEvaluated(schCxt, Name)\n })\n })\n }\n },\n}\n\nexport default def\n","import type {CodeKeywordDefinition, AnySchema} from \"../../types\"\nimport type {KeywordCxt} from \"../../compile/validate\"\nimport {alwaysValidSchema} from \"../../compile/util\"\n\nconst def: CodeKeywordDefinition = {\n keyword: \"allOf\",\n schemaType: \"array\",\n code(cxt: KeywordCxt) {\n const {gen, schema, it} = cxt\n /* istanbul ignore if */\n if (!Array.isArray(schema)) throw new Error(\"ajv implementation error\")\n const valid = gen.name(\"valid\")\n schema.forEach((sch: AnySchema, i: number) => {\n if (alwaysValidSchema(it, sch)) return\n const schCxt = cxt.subschema({keyword: \"allOf\", schemaProp: i}, valid)\n cxt.ok(valid)\n cxt.mergeEvaluated(schCxt)\n })\n },\n}\n\nexport default def\n","import type {\n CodeKeywordDefinition,\n ErrorObject,\n KeywordErrorDefinition,\n AnySchema,\n} from \"../../types\"\nimport type {SchemaObjCxt} from \"../../compile\"\nimport type {KeywordCxt} from \"../../compile/validate\"\nimport {_, str, not, Name} from \"../../compile/codegen\"\nimport {alwaysValidSchema, checkStrictMode} from \"../../compile/util\"\n\nexport type IfKeywordError = ErrorObject<\"if\", {failingKeyword: string}, AnySchema>\n\nconst error: KeywordErrorDefinition = {\n message: ({params}) => str`must match \"${params.ifClause}\" schema`,\n params: ({params}) => _`{failingKeyword: ${params.ifClause}}`,\n}\n\nconst def: CodeKeywordDefinition = {\n keyword: \"if\",\n schemaType: [\"object\", \"boolean\"],\n trackErrors: true,\n error,\n code(cxt: KeywordCxt) {\n const {gen, parentSchema, it} = cxt\n if (parentSchema.then === undefined && parentSchema.else === undefined) {\n checkStrictMode(it, '\"if\" without \"then\" and \"else\" is ignored')\n }\n const hasThen = hasSchema(it, \"then\")\n const hasElse = hasSchema(it, \"else\")\n if (!hasThen && !hasElse) return\n\n const valid = gen.let(\"valid\", true)\n const schValid = gen.name(\"_valid\")\n validateIf()\n cxt.reset()\n\n if (hasThen && hasElse) {\n const ifClause = gen.let(\"ifClause\")\n cxt.setParams({ifClause})\n gen.if(schValid, validateClause(\"then\", ifClause), validateClause(\"else\", ifClause))\n } else if (hasThen) {\n gen.if(schValid, validateClause(\"then\"))\n } else {\n gen.if(not(schValid), validateClause(\"else\"))\n }\n\n cxt.pass(valid, () => cxt.error(true))\n\n function validateIf(): void {\n const schCxt = cxt.subschema(\n {\n keyword: \"if\",\n compositeRule: true,\n createErrors: false,\n allErrors: false,\n },\n schValid\n )\n cxt.mergeEvaluated(schCxt)\n }\n\n function validateClause(keyword: string, ifClause?: Name): () => void {\n return () => {\n const schCxt = cxt.subschema({keyword}, schValid)\n gen.assign(valid, schValid)\n cxt.mergeValidEvaluated(schCxt, valid)\n if (ifClause) gen.assign(ifClause, _`${keyword}`)\n else cxt.setParams({ifClause: keyword})\n }\n }\n },\n}\n\nfunction hasSchema(it: SchemaObjCxt, keyword: string): boolean {\n const schema = it.schema[keyword]\n return schema !== undefined && !alwaysValidSchema(it, schema)\n}\n\nexport default def\n","import type {CodeKeywordDefinition} from \"../../types\"\nimport type {KeywordCxt} from \"../../compile/validate\"\nimport {checkStrictMode} from \"../../compile/util\"\n\nconst def: CodeKeywordDefinition = {\n keyword: [\"then\", \"else\"],\n schemaType: [\"object\", \"boolean\"],\n code({keyword, parentSchema, it}: KeywordCxt) {\n if (parentSchema.if === undefined) checkStrictMode(it, `\"${keyword}\" without \"if\" is ignored`)\n },\n}\n\nexport default def\n","import type {ErrorNoParams, Vocabulary} from \"../../types\"\nimport additionalItems, {AdditionalItemsError} from \"./additionalItems\"\nimport prefixItems from \"./prefixItems\"\nimport items from \"./items\"\nimport items2020, {ItemsError} from \"./items2020\"\nimport contains, {ContainsError} from \"./contains\"\nimport dependencies, {DependenciesError} from \"./dependencies\"\nimport propertyNames, {PropertyNamesError} from \"./propertyNames\"\nimport additionalProperties, {AdditionalPropertiesError} from \"./additionalProperties\"\nimport properties from \"./properties\"\nimport patternProperties from \"./patternProperties\"\nimport notKeyword, {NotKeywordError} from \"./not\"\nimport anyOf, {AnyOfError} from \"./anyOf\"\nimport oneOf, {OneOfError} from \"./oneOf\"\nimport allOf from \"./allOf\"\nimport ifKeyword, {IfKeywordError} from \"./if\"\nimport thenElse from \"./thenElse\"\n\nexport default function getApplicator(draft2020 = false): Vocabulary {\n const applicator = [\n // any\n notKeyword,\n anyOf,\n oneOf,\n allOf,\n ifKeyword,\n thenElse,\n // object\n propertyNames,\n additionalProperties,\n dependencies,\n properties,\n patternProperties,\n ]\n // array\n if (draft2020) applicator.push(prefixItems, items2020)\n else applicator.push(additionalItems, items)\n applicator.push(contains)\n return applicator\n}\n\nexport type ApplicatorKeywordError =\n | ErrorNoParams<\"false schema\">\n | AdditionalItemsError\n | ItemsError\n | ContainsError\n | AdditionalPropertiesError\n | DependenciesError\n | IfKeywordError\n | AnyOfError\n | OneOfError\n | NotKeywordError\n | PropertyNamesError\n","import type {\n AddedFormat,\n FormatValidator,\n AsyncFormatValidator,\n CodeKeywordDefinition,\n KeywordErrorDefinition,\n ErrorObject,\n} from \"../../types\"\nimport type {KeywordCxt} from \"../../compile/validate\"\nimport {_, str, nil, or, Code, getProperty, regexpCode} from \"../../compile/codegen\"\n\ntype FormatValidate =\n | FormatValidator<string>\n | FormatValidator<number>\n | AsyncFormatValidator<string>\n | AsyncFormatValidator<number>\n | RegExp\n | string\n | true\n\nexport type FormatError = ErrorObject<\"format\", {format: string}, string | {$data: string}>\n\nconst error: KeywordErrorDefinition = {\n message: ({schemaCode}) => str`must match format \"${schemaCode}\"`,\n params: ({schemaCode}) => _`{format: ${schemaCode}}`,\n}\n\nconst def: CodeKeywordDefinition = {\n keyword: \"format\",\n type: [\"number\", \"string\"],\n schemaType: \"string\",\n $data: true,\n error,\n code(cxt: KeywordCxt, ruleType?: string) {\n const {gen, data, $data, schema, schemaCode, it} = cxt\n const {opts, errSchemaPath, schemaEnv, self} = it\n if (!opts.validateFormats) return\n\n if ($data) validate$DataFormat()\n else validateFormat()\n\n function validate$DataFormat(): void {\n const fmts = gen.scopeValue(\"formats\", {\n ref: self.formats,\n code: opts.code.formats,\n })\n const fDef = gen.const(\"fDef\", _`${fmts}[${schemaCode}]`)\n const fType = gen.let(\"fType\")\n const format = gen.let(\"format\")\n // TODO simplify\n gen.if(\n _`typeof ${fDef} == \"object\" && !(${fDef} instanceof RegExp)`,\n () => gen.assign(fType, _`${fDef}.type || \"string\"`).assign(format, _`${fDef}.validate`),\n () => gen.assign(fType, _`\"string\"`).assign(format, fDef)\n )\n cxt.fail$data(or(unknownFmt(), invalidFmt()))\n\n function unknownFmt(): Code {\n if (opts.strictSchema === false) return nil\n return _`${schemaCode} && !${format}`\n }\n\n function invalidFmt(): Code {\n const callFormat = schemaEnv.$async\n ? _`(${fDef}.async ? await ${format}(${data}) : ${format}(${data}))`\n : _`${format}(${data})`\n const validData = _`(typeof ${format} == \"function\" ? ${callFormat} : ${format}.test(${data}))`\n return _`${format} && ${format} !== true && ${fType} === ${ruleType} && !${validData}`\n }\n }\n\n function validateFormat(): void {\n const formatDef: AddedFormat | undefined = self.formats[schema]\n if (!formatDef) {\n unknownFormat()\n return\n }\n if (formatDef === true) return\n const [fmtType, format, fmtRef] = getFormat(formatDef)\n if (fmtType === ruleType) cxt.pass(validCondition())\n\n function unknownFormat(): void {\n if (opts.strictSchema === false) {\n self.logger.warn(unknownMsg())\n return\n }\n throw new Error(unknownMsg())\n\n function unknownMsg(): string {\n return `unknown format \"${schema as string}\" ignored in schema at path \"${errSchemaPath}\"`\n }\n }\n\n function getFormat(fmtDef: AddedFormat): [string, FormatValidate, Code] {\n const code =\n fmtDef instanceof RegExp\n ? regexpCode(fmtDef)\n : opts.code.formats\n ? _`${opts.code.formats}${getProperty(schema)}`\n : undefined\n const fmt = gen.scopeValue(\"formats\", {key: schema, ref: fmtDef, code})\n if (typeof fmtDef == \"object\" && !(fmtDef instanceof RegExp)) {\n return [fmtDef.type || \"string\", fmtDef.validate, _`${fmt}.validate`]\n }\n\n return [\"string\", fmtDef, fmt]\n }\n\n function validCondition(): Code {\n if (typeof formatDef == \"object\" && !(formatDef instanceof RegExp) && formatDef.async) {\n if (!schemaEnv.$async) throw new Error(\"async format in sync schema\")\n return _`await ${fmtRef}(${data})`\n }\n return typeof format == \"function\" ? _`${fmtRef}(${data})` : _`${fmtRef}.test(${data})`\n }\n }\n },\n}\n\nexport default def\n","import type {Vocabulary} from \"../../types\"\nimport formatKeyword from \"./format\"\n\nconst format: Vocabulary = [formatKeyword]\n\nexport default format\n","import type {Vocabulary} from \"../types\"\n\nexport const metadataVocabulary: Vocabulary = [\n \"title\",\n \"description\",\n \"default\",\n \"deprecated\",\n \"readOnly\",\n \"writeOnly\",\n \"examples\",\n]\n\nexport const contentVocabulary: Vocabulary = [\n \"contentMediaType\",\n \"contentEncoding\",\n \"contentSchema\",\n]\n","import type {Vocabulary} from \"../types\"\nimport coreVocabulary from \"./core\"\nimport validationVocabulary from \"./validation\"\nimport getApplicatorVocabulary from \"./applicator\"\nimport formatVocabulary from \"./format\"\nimport {metadataVocabulary, contentVocabulary} from \"./metadata\"\n\nconst draft7Vocabularies: Vocabulary[] = [\n coreVocabulary,\n validationVocabulary,\n getApplicatorVocabulary(),\n formatVocabulary,\n metadataVocabulary,\n contentVocabulary,\n]\n\nexport default draft7Vocabularies\n","import type {ErrorObject} from \"../../types\"\n\nexport enum DiscrError {\n Tag = \"tag\",\n Mapping = \"mapping\",\n}\n\nexport type DiscrErrorObj<E extends DiscrError> = ErrorObject<\n \"discriminator\",\n {error: E; tag: string; tagValue: unknown},\n string\n>\n","import type {CodeKeywordDefinition, AnySchemaObject, KeywordErrorDefinition} from \"../../types\"\nimport type {KeywordCxt} from \"../../compile/validate\"\nimport {_, getProperty, Name} from \"../../compile/codegen\"\nimport {DiscrError, DiscrErrorObj} from \"../discriminator/types\"\nimport {resolveRef, SchemaEnv} from \"../../compile\"\nimport MissingRefError from \"../../compile/ref_error\"\nimport {schemaHasRulesButRef} from \"../../compile/util\"\n\nexport type DiscriminatorError = DiscrErrorObj<DiscrError.Tag> | DiscrErrorObj<DiscrError.Mapping>\n\nconst error: KeywordErrorDefinition = {\n message: ({params: {discrError, tagName}}) =>\n discrError === DiscrError.Tag\n ? `tag \"${tagName}\" must be string`\n : `value of tag \"${tagName}\" must be in oneOf`,\n params: ({params: {discrError, tag, tagName}}) =>\n _`{error: ${discrError}, tag: ${tagName}, tagValue: ${tag}}`,\n}\n\nconst def: CodeKeywordDefinition = {\n keyword: \"discriminator\",\n type: \"object\",\n schemaType: \"object\",\n error,\n code(cxt: KeywordCxt) {\n const {gen, data, schema, parentSchema, it} = cxt\n const {oneOf} = parentSchema\n if (!it.opts.discriminator) {\n throw new Error(\"discriminator: requires discriminator option\")\n }\n const tagName = schema.propertyName\n if (typeof tagName != \"string\") throw new Error(\"discriminator: requires propertyName\")\n if (schema.mapping) throw new Error(\"discriminator: mapping is not supported\")\n if (!oneOf) throw new Error(\"discriminator: requires oneOf keyword\")\n const valid = gen.let(\"valid\", false)\n const tag = gen.const(\"tag\", _`${data}${getProperty(tagName)}`)\n gen.if(\n _`typeof ${tag} == \"string\"`,\n () => validateMapping(),\n () => cxt.error(false, {discrError: DiscrError.Tag, tag, tagName})\n )\n cxt.ok(valid)\n\n function validateMapping(): void {\n const mapping = getMapping()\n gen.if(false)\n for (const tagValue in mapping) {\n gen.elseIf(_`${tag} === ${tagValue}`)\n gen.assign(valid, applyTagSchema(mapping[tagValue]))\n }\n gen.else()\n cxt.error(false, {discrError: DiscrError.Mapping, tag, tagName})\n gen.endIf()\n }\n\n function applyTagSchema(schemaProp?: number): Name {\n const _valid = gen.name(\"valid\")\n const schCxt = cxt.subschema({keyword: \"oneOf\", schemaProp}, _valid)\n cxt.mergeEvaluated(schCxt, Name)\n return _valid\n }\n\n function getMapping(): {[T in string]?: number} {\n const oneOfMapping: {[T in string]?: number} = {}\n const topRequired = hasRequired(parentSchema)\n let tagRequired = true\n for (let i = 0; i < oneOf.length; i++) {\n let sch = oneOf[i]\n if (sch?.$ref && !schemaHasRulesButRef(sch, it.self.RULES)) {\n const ref = sch.$ref\n sch = resolveRef.call(it.self, it.schemaEnv.root, it.baseId, ref)\n if (sch instanceof SchemaEnv) sch = sch.schema\n if (sch === undefined) throw new MissingRefError(it.opts.uriResolver, it.baseId, ref)\n }\n const propSch = sch?.properties?.[tagName]\n if (typeof propSch != \"object\") {\n throw new Error(\n `discriminator: oneOf subschemas (or referenced schemas) must have \"properties/${tagName}\"`\n )\n }\n tagRequired = tagRequired && (topRequired || hasRequired(sch))\n addMappings(propSch, i)\n }\n if (!tagRequired) throw new Error(`discriminator: \"${tagName}\" must be required`)\n return oneOfMapping\n\n function hasRequired({required}: AnySchemaObject): boolean {\n return Array.isArray(required) && required.includes(tagName)\n }\n\n function addMappings(sch: AnySchemaObject, i: number): void {\n if (sch.const) {\n addMapping(sch.const, i)\n } else if (sch.enum) {\n for (const tagValue of sch.enum) {\n addMapping(tagValue, i)\n }\n } else {\n throw new Error(`discriminator: \"properties/${tagName}\" must have \"const\" or \"enum\"`)\n }\n }\n\n function addMapping(tagValue: unknown, i: number): void {\n if (typeof tagValue != \"string\" || tagValue in oneOfMapping) {\n throw new Error(`discriminator: \"${tagName}\" values must be unique strings`)\n }\n oneOfMapping[tagValue] = i\n }\n }\n },\n}\n\nexport default def\n","{\n \"$schema\": \"http://json-schema.org/draft-07/schema#\",\n \"$id\": \"http://json-schema.org/draft-07/schema#\",\n \"title\": \"Core schema meta-schema\",\n \"definitions\": {\n \"schemaArray\": {\n \"type\": \"array\",\n \"minItems\": 1,\n \"items\": {\"$ref\": \"#\"}\n },\n \"nonNegativeInteger\": {\n \"type\": \"integer\",\n \"minimum\": 0\n },\n \"nonNegativeIntegerDefault0\": {\n \"allOf\": [{\"$ref\": \"#/definitions/nonNegativeInteger\"}, {\"default\": 0}]\n },\n \"simpleTypes\": {\n \"enum\": [\"array\", \"boolean\", \"integer\", \"null\", \"number\", \"object\", \"string\"]\n },\n \"stringArray\": {\n \"type\": \"array\",\n \"items\": {\"type\": \"string\"},\n \"uniqueItems\": true,\n \"default\": []\n }\n },\n \"type\": [\"object\", \"boolean\"],\n \"properties\": {\n \"$id\": {\n \"type\": \"string\",\n \"format\": \"uri-reference\"\n },\n \"$schema\": {\n \"type\": \"string\",\n \"format\": \"uri\"\n },\n \"$ref\": {\n \"type\": \"string\",\n \"format\": \"uri-reference\"\n },\n \"$comment\": {\n \"type\": \"string\"\n },\n \"title\": {\n \"type\": \"string\"\n },\n \"description\": {\n \"type\": \"string\"\n },\n \"default\": true,\n \"readOnly\": {\n \"type\": \"boolean\",\n \"default\": false\n },\n \"examples\": {\n \"type\": \"array\",\n \"items\": true\n },\n \"multipleOf\": {\n \"type\": \"number\",\n \"exclusiveMinimum\": 0\n },\n \"maximum\": {\n \"type\": \"number\"\n },\n \"exclusiveMaximum\": {\n \"type\": \"number\"\n },\n \"minimum\": {\n \"type\": \"number\"\n },\n \"exclusiveMinimum\": {\n \"type\": \"number\"\n },\n \"maxLength\": {\"$ref\": \"#/definitions/nonNegativeInteger\"},\n \"minLength\": {\"$ref\": \"#/definitions/nonNegativeIntegerDefault0\"},\n \"pattern\": {\n \"type\": \"string\",\n \"format\": \"regex\"\n },\n \"additionalItems\": {\"$ref\": \"#\"},\n \"items\": {\n \"anyOf\": [{\"$ref\": \"#\"}, {\"$ref\": \"#/definitions/schemaArray\"}],\n \"default\": true\n },\n \"maxItems\": {\"$ref\": \"#/definitions/nonNegativeInteger\"},\n \"minItems\": {\"$ref\": \"#/definitions/nonNegativeIntegerDefault0\"},\n \"uniqueItems\": {\n \"type\": \"boolean\",\n \"default\": false\n },\n \"contains\": {\"$ref\": \"#\"},\n \"maxProperties\": {\"$ref\": \"#/definitions/nonNegativeInteger\"},\n \"minProperties\": {\"$ref\": \"#/definitions/nonNegativeIntegerDefault0\"},\n \"required\": {\"$ref\": \"#/definitions/stringArray\"},\n \"additionalProperties\": {\"$ref\": \"#\"},\n \"definitions\": {\n \"type\": \"object\",\n \"additionalProperties\": {\"$ref\": \"#\"},\n \"default\": {}\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\"$ref\": \"#\"},\n \"default\": {}\n },\n \"patternProperties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\"$ref\": \"#\"},\n \"propertyNames\": {\"format\": \"regex\"},\n \"default\": {}\n },\n \"dependencies\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"anyOf\": [{\"$ref\": \"#\"}, {\"$ref\": \"#/definitions/stringArray\"}]\n }\n },\n \"propertyNames\": {\"$ref\": \"#\"},\n \"const\": true,\n \"enum\": {\n \"type\": \"array\",\n \"items\": true,\n \"minItems\": 1,\n \"uniqueItems\": true\n },\n \"type\": {\n \"anyOf\": [\n {\"$ref\": \"#/definitions/simpleTypes\"},\n {\n \"type\": \"array\",\n \"items\": {\"$ref\": \"#/definitions/simpleTypes\"},\n \"minItems\": 1,\n \"uniqueItems\": true\n }\n ]\n },\n \"format\": {\"type\": \"string\"},\n \"contentMediaType\": {\"type\": \"string\"},\n \"contentEncoding\": {\"type\": \"string\"},\n \"if\": {\"$ref\": \"#\"},\n \"then\": {\"$ref\": \"#\"},\n \"else\": {\"$ref\": \"#\"},\n \"allOf\": {\"$ref\": \"#/definitions/schemaArray\"},\n \"anyOf\": {\"$ref\": \"#/definitions/schemaArray\"},\n \"oneOf\": {\"$ref\": \"#/definitions/schemaArray\"},\n \"not\": {\"$ref\": \"#\"}\n },\n \"default\": true\n}\n","import type {AnySchemaObject} from \"./types\"\nimport AjvCore from \"./core\"\nimport draft7Vocabularies from \"./vocabularies/draft7\"\nimport discriminator from \"./vocabularies/discriminator\"\nimport * as draft7MetaSchema from \"./refs/json-schema-draft-07.json\"\n\nconst META_SUPPORT_DATA = [\"/properties\"]\n\nconst META_SCHEMA_ID = \"http://json-schema.org/draft-07/schema\"\n\nexport class Ajv extends AjvCore {\n _addVocabularies(): void {\n super._addVocabularies()\n draft7Vocabularies.forEach((v) => this.addVocabulary(v))\n if (this.opts.discriminator) this.addKeyword(discriminator)\n }\n\n _addDefaultMetaSchema(): void {\n super._addDefaultMetaSchema()\n if (!this.opts.meta) return\n const metaSchema = this.opts.$data\n ? this.$dataMetaSchema(draft7MetaSchema, META_SUPPORT_DATA)\n : draft7MetaSchema\n this.addMetaSchema(metaSchema, META_SCHEMA_ID, false)\n this.refs[\"http://json-schema.org/schema\"] = META_SCHEMA_ID\n }\n\n defaultMeta(): string | AnySchemaObject | undefined {\n return (this.opts.defaultMeta =\n super.defaultMeta() || (this.getSchema(META_SCHEMA_ID) ? META_SCHEMA_ID : undefined))\n }\n}\n\nmodule.exports = exports = Ajv\nmodule.exports.Ajv = Ajv\nObject.defineProperty(exports, \"__esModule\", {value: true})\n\nexport default Ajv\n\nexport {\n Format,\n FormatDefinition,\n AsyncFormatDefinition,\n KeywordDefinition,\n KeywordErrorDefinition,\n CodeKeywordDefinition,\n MacroKeywordDefinition,\n FuncKeywordDefinition,\n Vocabulary,\n Schema,\n SchemaObject,\n AnySchemaObject,\n AsyncSchema,\n AnySchema,\n ValidateFunction,\n AsyncValidateFunction,\n SchemaValidateFunction,\n ErrorObject,\n ErrorNoParams,\n} from \"./types\"\n\nexport {Plugin, Options, CodeOptions, InstanceOptions, Logger, ErrorsTextOptions} from \"./core\"\nexport {SchemaCxt, SchemaObjCxt} from \"./compile\"\nexport {KeywordCxt} from \"./compile/validate\"\nexport {DefinedError} from \"./vocabularies/errors\"\nexport {JSONType} from \"./compile/rules\"\nexport {JSONSchemaType} from \"./types/json-schema\"\nexport {_, str, stringify, nil, Name, Code, CodeGen, CodeGenOptions} from \"./compile/codegen\"\nexport {default as ValidationError} from \"./runtime/validation_error\"\nexport {default as MissingRefError} from \"./compile/ref_error\"\n","export * as core from \"../core/index.js\";\nexport * from \"./schemas.js\";\nexport * from \"./checks.js\";\nexport * from \"./errors.js\";\nexport * from \"./parse.js\";\nexport * from \"./compat.js\";\n// zod-specified\nimport { config } from \"../core/index.js\";\nimport en from \"../locales/en.js\";\nconfig(en());\nexport { globalRegistry, registry, config, function, $output, $input, $brand, clone, regexes, treeifyError, prettifyError, formatError, flattenError, toJSONSchema, TimePrecision, NEVER, } from \"../core/index.js\";\nexport * as locales from \"../locales/index.js\";\n// iso\n// must be exported from top-level\n// https://github.com/colinhacks/zod/issues/4491\nexport { ZodISODateTime, ZodISODate, ZodISOTime, ZodISODuration } from \"./iso.js\";\nexport * as iso from \"./iso.js\";\nexport * as coerce from \"./coerce.js\";\n","export * from \"./core.js\";\nexport * from \"./parse.js\";\nexport * from \"./errors.js\";\nexport * from \"./schemas.js\";\nexport * from \"./checks.js\";\nexport * from \"./versions.js\";\nexport * as util from \"./util.js\";\nexport * as regexes from \"./regexes.js\";\nexport * as locales from \"../locales/index.js\";\nexport * from \"./registries.js\";\nexport * from \"./doc.js\";\nexport * from \"./function.js\";\nexport * from \"./api.js\";\nexport * from \"./to-json-schema.js\";\nexport * as JSONSchema from \"./json-schema.js\";\n","/** A special constant with type `never` */\nexport const NEVER = Object.freeze({\n status: \"aborted\",\n});\nexport /*@__NO_SIDE_EFFECTS__*/ function $constructor(name, initializer, params) {\n function init(inst, def) {\n var _a;\n Object.defineProperty(inst, \"_zod\", {\n value: inst._zod ?? {},\n enumerable: false,\n });\n (_a = inst._zod).traits ?? (_a.traits = new Set());\n inst._zod.traits.add(name);\n initializer(inst, def);\n // support prototype modifications\n for (const k in _.prototype) {\n if (!(k in inst))\n Object.defineProperty(inst, k, { value: _.prototype[k].bind(inst) });\n }\n inst._zod.constr = _;\n inst._zod.def = def;\n }\n // doesn't work if Parent has a constructor with arguments\n const Parent = params?.Parent ?? Object;\n class Definition extends Parent {\n }\n Object.defineProperty(Definition, \"name\", { value: name });\n function _(def) {\n var _a;\n const inst = params?.Parent ? new Definition() : this;\n init(inst, def);\n (_a = inst._zod).deferred ?? (_a.deferred = []);\n for (const fn of inst._zod.deferred) {\n fn();\n }\n return inst;\n }\n Object.defineProperty(_, \"init\", { value: init });\n Object.defineProperty(_, Symbol.hasInstance, {\n value: (inst) => {\n if (params?.Parent && inst instanceof params.Parent)\n return true;\n return inst?._zod?.traits?.has(name);\n },\n });\n Object.defineProperty(_, \"name\", { value: name });\n return _;\n}\n////////////////////////////// UTILITIES ///////////////////////////////////////\nexport const $brand = Symbol(\"zod_brand\");\nexport class $ZodAsyncError extends Error {\n constructor() {\n super(`Encountered Promise during synchronous parse. Use .parseAsync() instead.`);\n }\n}\nexport const globalConfig = {};\nexport function config(newConfig) {\n if (newConfig)\n Object.assign(globalConfig, newConfig);\n return globalConfig;\n}\n","// functions\nexport function assertEqual(val) {\n return val;\n}\nexport function assertNotEqual(val) {\n return val;\n}\nexport function assertIs(_arg) { }\nexport function assertNever(_x) {\n throw new Error();\n}\nexport function assert(_) { }\nexport function getEnumValues(entries) {\n const numericValues = Object.values(entries).filter((v) => typeof v === \"number\");\n const values = Object.entries(entries)\n .filter(([k, _]) => numericValues.indexOf(+k) === -1)\n .map(([_, v]) => v);\n return values;\n}\nexport function joinValues(array, separator = \"|\") {\n return array.map((val) => stringifyPrimitive(val)).join(separator);\n}\nexport function jsonStringifyReplacer(_, value) {\n if (typeof value === \"bigint\")\n return value.toString();\n return value;\n}\nexport function cached(getter) {\n const set = false;\n return {\n get value() {\n if (!set) {\n const value = getter();\n Object.defineProperty(this, \"value\", { value });\n return value;\n }\n throw new Error(\"cached value already set\");\n },\n };\n}\nexport function nullish(input) {\n return input === null || input === undefined;\n}\nexport function cleanRegex(source) {\n const start = source.startsWith(\"^\") ? 1 : 0;\n const end = source.endsWith(\"$\") ? source.length - 1 : source.length;\n return source.slice(start, end);\n}\nexport function floatSafeRemainder(val, step) {\n const valDecCount = (val.toString().split(\".\")[1] || \"\").length;\n const stepDecCount = (step.toString().split(\".\")[1] || \"\").length;\n const decCount = valDecCount > stepDecCount ? valDecCount : stepDecCount;\n const valInt = Number.parseInt(val.toFixed(decCount).replace(\".\", \"\"));\n const stepInt = Number.parseInt(step.toFixed(decCount).replace(\".\", \"\"));\n return (valInt % stepInt) / 10 ** decCount;\n}\nexport function defineLazy(object, key, getter) {\n const set = false;\n Object.defineProperty(object, key, {\n get() {\n if (!set) {\n const value = getter();\n object[key] = value;\n return value;\n }\n throw new Error(\"cached value already set\");\n },\n set(v) {\n Object.defineProperty(object, key, {\n value: v,\n // configurable: true,\n });\n // object[key] = v;\n },\n configurable: true,\n });\n}\nexport function assignProp(target, prop, value) {\n Object.defineProperty(target, prop, {\n value,\n writable: true,\n enumerable: true,\n configurable: true,\n });\n}\nexport function getElementAtPath(obj, path) {\n if (!path)\n return obj;\n return path.reduce((acc, key) => acc?.[key], obj);\n}\nexport function promiseAllObject(promisesObj) {\n const keys = Object.keys(promisesObj);\n const promises = keys.map((key) => promisesObj[key]);\n return Promise.all(promises).then((results) => {\n const resolvedObj = {};\n for (let i = 0; i < keys.length; i++) {\n resolvedObj[keys[i]] = results[i];\n }\n return resolvedObj;\n });\n}\nexport function randomString(length = 10) {\n const chars = \"abcdefghijklmnopqrstuvwxyz\";\n let str = \"\";\n for (let i = 0; i < length; i++) {\n str += chars[Math.floor(Math.random() * chars.length)];\n }\n return str;\n}\nexport function esc(str) {\n return JSON.stringify(str);\n}\nexport const captureStackTrace = Error.captureStackTrace\n ? Error.captureStackTrace\n : (..._args) => { };\nexport function isObject(data) {\n return typeof data === \"object\" && data !== null && !Array.isArray(data);\n}\nexport const allowsEval = cached(() => {\n if (typeof navigator !== \"undefined\" && navigator?.userAgent?.includes(\"Cloudflare\")) {\n return false;\n }\n try {\n const F = Function;\n new F(\"\");\n return true;\n }\n catch (_) {\n return false;\n }\n});\nexport function isPlainObject(o) {\n if (isObject(o) === false)\n return false;\n // modified constructor\n const ctor = o.constructor;\n if (ctor === undefined)\n return true;\n // modified prototype\n const prot = ctor.prototype;\n if (isObject(prot) === false)\n return false;\n // ctor doesn't have static `isPrototypeOf`\n if (Object.prototype.hasOwnProperty.call(prot, \"isPrototypeOf\") === false) {\n return false;\n }\n return true;\n}\nexport function numKeys(data) {\n let keyCount = 0;\n for (const key in data) {\n if (Object.prototype.hasOwnProperty.call(data, key)) {\n keyCount++;\n }\n }\n return keyCount;\n}\nexport const getParsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"undefined\":\n return \"undefined\";\n case \"string\":\n return \"string\";\n case \"number\":\n return Number.isNaN(data) ? \"nan\" : \"number\";\n case \"boolean\":\n return \"boolean\";\n case \"function\":\n return \"function\";\n case \"bigint\":\n return \"bigint\";\n case \"symbol\":\n return \"symbol\";\n case \"object\":\n if (Array.isArray(data)) {\n return \"array\";\n }\n if (data === null) {\n return \"null\";\n }\n if (data.then && typeof data.then === \"function\" && data.catch && typeof data.catch === \"function\") {\n return \"promise\";\n }\n if (typeof Map !== \"undefined\" && data instanceof Map) {\n return \"map\";\n }\n if (typeof Set !== \"undefined\" && data instanceof Set) {\n return \"set\";\n }\n if (typeof Date !== \"undefined\" && data instanceof Date) {\n return \"date\";\n }\n if (typeof File !== \"undefined\" && data instanceof File) {\n return \"file\";\n }\n return \"object\";\n default:\n throw new Error(`Unknown data type: ${t}`);\n }\n};\nexport const propertyKeyTypes = new Set([\"string\", \"number\", \"symbol\"]);\nexport const primitiveTypes = new Set([\"string\", \"number\", \"bigint\", \"boolean\", \"symbol\", \"undefined\"]);\nexport function escapeRegex(str) {\n return str.replace(/[.*+?^${}()|[\\]\\\\]/g, \"\\\\$&\");\n}\n// zod-specific utils\nexport function clone(inst, def, params) {\n const cl = new inst._zod.constr(def ?? inst._zod.def);\n if (!def || params?.parent)\n cl._zod.parent = inst;\n return cl;\n}\nexport function normalizeParams(_params) {\n const params = _params;\n if (!params)\n return {};\n if (typeof params === \"string\")\n return { error: () => params };\n if (params?.message !== undefined) {\n if (params?.error !== undefined)\n throw new Error(\"Cannot specify both `message` and `error` params\");\n params.error = params.message;\n }\n delete params.message;\n if (typeof params.error === \"string\")\n return { ...params, error: () => params.error };\n return params;\n}\nexport function createTransparentProxy(getter) {\n let target;\n return new Proxy({}, {\n get(_, prop, receiver) {\n target ?? (target = getter());\n return Reflect.get(target, prop, receiver);\n },\n set(_, prop, value, receiver) {\n target ?? (target = getter());\n return Reflect.set(target, prop, value, receiver);\n },\n has(_, prop) {\n target ?? (target = getter());\n return Reflect.has(target, prop);\n },\n deleteProperty(_, prop) {\n target ?? (target = getter());\n return Reflect.deleteProperty(target, prop);\n },\n ownKeys(_) {\n target ?? (target = getter());\n return Reflect.ownKeys(target);\n },\n getOwnPropertyDescriptor(_, prop) {\n target ?? (target = getter());\n return Reflect.getOwnPropertyDescriptor(target, prop);\n },\n defineProperty(_, prop, descriptor) {\n target ?? (target = getter());\n return Reflect.defineProperty(target, prop, descriptor);\n },\n });\n}\nexport function stringifyPrimitive(value) {\n if (typeof value === \"bigint\")\n return value.toString() + \"n\";\n if (typeof value === \"string\")\n return `\"${value}\"`;\n return `${value}`;\n}\nexport function optionalKeys(shape) {\n return Object.keys(shape).filter((k) => {\n return shape[k]._zod.optin === \"optional\" && shape[k]._zod.optout === \"optional\";\n });\n}\nexport const NUMBER_FORMAT_RANGES = {\n safeint: [Number.MIN_SAFE_INTEGER, Number.MAX_SAFE_INTEGER],\n int32: [-2147483648, 2147483647],\n uint32: [0, 4294967295],\n float32: [-3.4028234663852886e38, 3.4028234663852886e38],\n float64: [-Number.MAX_VALUE, Number.MAX_VALUE],\n};\nexport const BIGINT_FORMAT_RANGES = {\n int64: [/* @__PURE__*/ BigInt(\"-9223372036854775808\"), /* @__PURE__*/ BigInt(\"9223372036854775807\")],\n uint64: [/* @__PURE__*/ BigInt(0), /* @__PURE__*/ BigInt(\"18446744073709551615\")],\n};\nexport function pick(schema, mask) {\n const newShape = {};\n const currDef = schema._zod.def; //.shape;\n for (const key in mask) {\n if (!(key in currDef.shape)) {\n throw new Error(`Unrecognized key: \"${key}\"`);\n }\n if (!mask[key])\n continue;\n // pick key\n newShape[key] = currDef.shape[key];\n }\n return clone(schema, {\n ...schema._zod.def,\n shape: newShape,\n checks: [],\n });\n}\nexport function omit(schema, mask) {\n const newShape = { ...schema._zod.def.shape };\n const currDef = schema._zod.def; //.shape;\n for (const key in mask) {\n if (!(key in currDef.shape)) {\n throw new Error(`Unrecognized key: \"${key}\"`);\n }\n if (!mask[key])\n continue;\n delete newShape[key];\n }\n return clone(schema, {\n ...schema._zod.def,\n shape: newShape,\n checks: [],\n });\n}\nexport function extend(schema, shape) {\n if (!isPlainObject(shape)) {\n throw new Error(\"Invalid input to extend: expected a plain object\");\n }\n const def = {\n ...schema._zod.def,\n get shape() {\n const _shape = { ...schema._zod.def.shape, ...shape };\n assignProp(this, \"shape\", _shape); // self-caching\n return _shape;\n },\n checks: [], // delete existing checks\n };\n return clone(schema, def);\n}\nexport function merge(a, b) {\n return clone(a, {\n ...a._zod.def,\n get shape() {\n const _shape = { ...a._zod.def.shape, ...b._zod.def.shape };\n assignProp(this, \"shape\", _shape); // self-caching\n return _shape;\n },\n catchall: b._zod.def.catchall,\n checks: [], // delete existing checks\n });\n}\nexport function partial(Class, schema, mask) {\n const oldShape = schema._zod.def.shape;\n const shape = { ...oldShape };\n if (mask) {\n for (const key in mask) {\n if (!(key in oldShape)) {\n throw new Error(`Unrecognized key: \"${key}\"`);\n }\n if (!mask[key])\n continue;\n // if (oldShape[key]!._zod.optin === \"optional\") continue;\n shape[key] = Class\n ? new Class({\n type: \"optional\",\n innerType: oldShape[key],\n })\n : oldShape[key];\n }\n }\n else {\n for (const key in oldShape) {\n // if (oldShape[key]!._zod.optin === \"optional\") continue;\n shape[key] = Class\n ? new Class({\n type: \"optional\",\n innerType: oldShape[key],\n })\n : oldShape[key];\n }\n }\n return clone(schema, {\n ...schema._zod.def,\n shape,\n checks: [],\n });\n}\nexport function required(Class, schema, mask) {\n const oldShape = schema._zod.def.shape;\n const shape = { ...oldShape };\n if (mask) {\n for (const key in mask) {\n if (!(key in shape)) {\n throw new Error(`Unrecognized key: \"${key}\"`);\n }\n if (!mask[key])\n continue;\n // overwrite with non-optional\n shape[key] = new Class({\n type: \"nonoptional\",\n innerType: oldShape[key],\n });\n }\n }\n else {\n for (const key in oldShape) {\n // overwrite with non-optional\n shape[key] = new Class({\n type: \"nonoptional\",\n innerType: oldShape[key],\n });\n }\n }\n return clone(schema, {\n ...schema._zod.def,\n shape,\n // optional: [],\n checks: [],\n });\n}\nexport function aborted(x, startIndex = 0) {\n for (let i = startIndex; i < x.issues.length; i++) {\n if (x.issues[i]?.continue !== true)\n return true;\n }\n return false;\n}\nexport function prefixIssues(path, issues) {\n return issues.map((iss) => {\n var _a;\n (_a = iss).path ?? (_a.path = []);\n iss.path.unshift(path);\n return iss;\n });\n}\nexport function unwrapMessage(message) {\n return typeof message === \"string\" ? message : message?.message;\n}\nexport function finalizeIssue(iss, ctx, config) {\n const full = { ...iss, path: iss.path ?? [] };\n // for backwards compatibility\n if (!iss.message) {\n const message = unwrapMessage(iss.inst?._zod.def?.error?.(iss)) ??\n unwrapMessage(ctx?.error?.(iss)) ??\n unwrapMessage(config.customError?.(iss)) ??\n unwrapMessage(config.localeError?.(iss)) ??\n \"Invalid input\";\n full.message = message;\n }\n // delete (full as any).def;\n delete full.inst;\n delete full.continue;\n if (!ctx?.reportInput) {\n delete full.input;\n }\n return full;\n}\nexport function getSizableOrigin(input) {\n if (input instanceof Set)\n return \"set\";\n if (input instanceof Map)\n return \"map\";\n if (input instanceof File)\n return \"file\";\n return \"unknown\";\n}\nexport function getLengthableOrigin(input) {\n if (Array.isArray(input))\n return \"array\";\n if (typeof input === \"string\")\n return \"string\";\n return \"unknown\";\n}\nexport function issue(...args) {\n const [iss, input, inst] = args;\n if (typeof iss === \"string\") {\n return {\n message: iss,\n code: \"custom\",\n input,\n inst,\n };\n }\n return { ...iss };\n}\nexport function cleanEnum(obj) {\n return Object.entries(obj)\n .filter(([k, _]) => {\n // return true if NaN, meaning it's not a number, thus a string key\n return Number.isNaN(Number.parseInt(k, 10));\n })\n .map((el) => el[1]);\n}\n// instanceof\nexport class Class {\n constructor(..._args) { }\n}\n","import { $constructor } from \"./core.js\";\nimport * as util from \"./util.js\";\nconst initializer = (inst, def) => {\n inst.name = \"$ZodError\";\n Object.defineProperty(inst, \"_zod\", {\n value: inst._zod,\n enumerable: false,\n });\n Object.defineProperty(inst, \"issues\", {\n value: def,\n enumerable: false,\n });\n Object.defineProperty(inst, \"message\", {\n get() {\n return JSON.stringify(def, util.jsonStringifyReplacer, 2);\n },\n enumerable: true,\n // configurable: false,\n });\n Object.defineProperty(inst, \"toString\", {\n value: () => inst.message,\n enumerable: false,\n });\n};\nexport const $ZodError = $constructor(\"$ZodError\", initializer);\nexport const $ZodRealError = $constructor(\"$ZodError\", initializer, { Parent: Error });\nexport function flattenError(error, mapper = (issue) => issue.message) {\n const fieldErrors = {};\n const formErrors = [];\n for (const sub of error.issues) {\n if (sub.path.length > 0) {\n fieldErrors[sub.path[0]] = fieldErrors[sub.path[0]] || [];\n fieldErrors[sub.path[0]].push(mapper(sub));\n }\n else {\n formErrors.push(mapper(sub));\n }\n }\n return { formErrors, fieldErrors };\n}\nexport function formatError(error, _mapper) {\n const mapper = _mapper ||\n function (issue) {\n return issue.message;\n };\n const fieldErrors = { _errors: [] };\n const processError = (error) => {\n for (const issue of error.issues) {\n if (issue.code === \"invalid_union\" && issue.errors.length) {\n issue.errors.map((issues) => processError({ issues }));\n }\n else if (issue.code === \"invalid_key\") {\n processError({ issues: issue.issues });\n }\n else if (issue.code === \"invalid_element\") {\n processError({ issues: issue.issues });\n }\n else if (issue.path.length === 0) {\n fieldErrors._errors.push(mapper(issue));\n }\n else {\n let curr = fieldErrors;\n let i = 0;\n while (i < issue.path.length) {\n const el = issue.path[i];\n const terminal = i === issue.path.length - 1;\n if (!terminal) {\n curr[el] = curr[el] || { _errors: [] };\n }\n else {\n curr[el] = curr[el] || { _errors: [] };\n curr[el]._errors.push(mapper(issue));\n }\n curr = curr[el];\n i++;\n }\n }\n }\n };\n processError(error);\n return fieldErrors;\n}\nexport function treeifyError(error, _mapper) {\n const mapper = _mapper ||\n function (issue) {\n return issue.message;\n };\n const result = { errors: [] };\n const processError = (error, path = []) => {\n var _a, _b;\n for (const issue of error.issues) {\n if (issue.code === \"invalid_union\" && issue.errors.length) {\n // regular union error\n issue.errors.map((issues) => processError({ issues }, issue.path));\n }\n else if (issue.code === \"invalid_key\") {\n processError({ issues: issue.issues }, issue.path);\n }\n else if (issue.code === \"invalid_element\") {\n processError({ issues: issue.issues }, issue.path);\n }\n else {\n const fullpath = [...path, ...issue.path];\n if (fullpath.length === 0) {\n result.errors.push(mapper(issue));\n continue;\n }\n let curr = result;\n let i = 0;\n while (i < fullpath.length) {\n const el = fullpath[i];\n const terminal = i === fullpath.length - 1;\n if (typeof el === \"string\") {\n curr.properties ?? (curr.properties = {});\n (_a = curr.properties)[el] ?? (_a[el] = { errors: [] });\n curr = curr.properties[el];\n }\n else {\n curr.items ?? (curr.items = []);\n (_b = curr.items)[el] ?? (_b[el] = { errors: [] });\n curr = curr.items[el];\n }\n if (terminal) {\n curr.errors.push(mapper(issue));\n }\n i++;\n }\n }\n }\n };\n processError(error);\n return result;\n}\n/** Format a ZodError as a human-readable string in the following form.\n *\n * From\n *\n * ```ts\n * ZodError {\n * issues: [\n * {\n * expected: 'string',\n * code: 'invalid_type',\n * path: [ 'username' ],\n * message: 'Invalid input: expected string'\n * },\n * {\n * expected: 'number',\n * code: 'invalid_type',\n * path: [ 'favoriteNumbers', 1 ],\n * message: 'Invalid input: expected number'\n * }\n * ];\n * }\n * ```\n *\n * to\n *\n * ```\n * username\n * ✖ Expected number, received string at \"username\n * favoriteNumbers[0]\n * ✖ Invalid input: expected number\n * ```\n */\nexport function toDotPath(path) {\n const segs = [];\n for (const seg of path) {\n if (typeof seg === \"number\")\n segs.push(`[${seg}]`);\n else if (typeof seg === \"symbol\")\n segs.push(`[${JSON.stringify(String(seg))}]`);\n else if (/[^\\w$]/.test(seg))\n segs.push(`[${JSON.stringify(seg)}]`);\n else {\n if (segs.length)\n segs.push(\".\");\n segs.push(seg);\n }\n }\n return segs.join(\"\");\n}\nexport function prettifyError(error) {\n const lines = [];\n // sort by path length\n const issues = [...error.issues].sort((a, b) => a.path.length - b.path.length);\n // Process each issue\n for (const issue of issues) {\n lines.push(`✖ ${issue.message}`);\n if (issue.path?.length)\n lines.push(` → at ${toDotPath(issue.path)}`);\n }\n // Convert Map to formatted string\n return lines.join(\"\\n\");\n}\n","import * as core from \"./core.js\";\nimport * as errors from \"./errors.js\";\nimport * as util from \"./util.js\";\nexport const _parse = (_Err) => (schema, value, _ctx, _params) => {\n const ctx = _ctx ? Object.assign(_ctx, { async: false }) : { async: false };\n const result = schema._zod.run({ value, issues: [] }, ctx);\n if (result instanceof Promise) {\n throw new core.$ZodAsyncError();\n }\n if (result.issues.length) {\n const e = new (_params?.Err ?? _Err)(result.issues.map((iss) => util.finalizeIssue(iss, ctx, core.config())));\n util.captureStackTrace(e, _params?.callee);\n throw e;\n }\n return result.value;\n};\nexport const parse = /* @__PURE__*/ _parse(errors.$ZodRealError);\nexport const _parseAsync = (_Err) => async (schema, value, _ctx, params) => {\n const ctx = _ctx ? Object.assign(_ctx, { async: true }) : { async: true };\n let result = schema._zod.run({ value, issues: [] }, ctx);\n if (result instanceof Promise)\n result = await result;\n if (result.issues.length) {\n const e = new (params?.Err ?? _Err)(result.issues.map((iss) => util.finalizeIssue(iss, ctx, core.config())));\n util.captureStackTrace(e, params?.callee);\n throw e;\n }\n return result.value;\n};\nexport const parseAsync = /* @__PURE__*/ _parseAsync(errors.$ZodRealError);\nexport const _safeParse = (_Err) => (schema, value, _ctx) => {\n const ctx = _ctx ? { ..._ctx, async: false } : { async: false };\n const result = schema._zod.run({ value, issues: [] }, ctx);\n if (result instanceof Promise) {\n throw new core.$ZodAsyncError();\n }\n return result.issues.length\n ? {\n success: false,\n error: new (_Err ?? errors.$ZodError)(result.issues.map((iss) => util.finalizeIssue(iss, ctx, core.config()))),\n }\n : { success: true, data: result.value };\n};\nexport const safeParse = /* @__PURE__*/ _safeParse(errors.$ZodRealError);\nexport const _safeParseAsync = (_Err) => async (schema, value, _ctx) => {\n const ctx = _ctx ? Object.assign(_ctx, { async: true }) : { async: true };\n let result = schema._zod.run({ value, issues: [] }, ctx);\n if (result instanceof Promise)\n result = await result;\n return result.issues.length\n ? {\n success: false,\n error: new _Err(result.issues.map((iss) => util.finalizeIssue(iss, ctx, core.config()))),\n }\n : { success: true, data: result.value };\n};\nexport const safeParseAsync = /* @__PURE__*/ _safeParseAsync(errors.$ZodRealError);\n","export const cuid = /^[cC][^\\s-]{8,}$/;\nexport const cuid2 = /^[0-9a-z]+$/;\nexport const ulid = /^[0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{26}$/;\nexport const xid = /^[0-9a-vA-V]{20}$/;\nexport const ksuid = /^[A-Za-z0-9]{27}$/;\nexport const nanoid = /^[a-zA-Z0-9_-]{21}$/;\n/** ISO 8601-1 duration regex. Does not support the 8601-2 extensions like negative durations or fractional/negative components. */\nexport const duration = /^P(?:(\\d+W)|(?!.*W)(?=\\d|T\\d)(\\d+Y)?(\\d+M)?(\\d+D)?(T(?=\\d)(\\d+H)?(\\d+M)?(\\d+([.,]\\d+)?S)?)?)$/;\n/** Implements ISO 8601-2 extensions like explicit +- prefixes, mixing weeks with other units, and fractional/negative components. */\nexport const extendedDuration = /^[-+]?P(?!$)(?:(?:[-+]?\\d+Y)|(?:[-+]?\\d+[.,]\\d+Y$))?(?:(?:[-+]?\\d+M)|(?:[-+]?\\d+[.,]\\d+M$))?(?:(?:[-+]?\\d+W)|(?:[-+]?\\d+[.,]\\d+W$))?(?:(?:[-+]?\\d+D)|(?:[-+]?\\d+[.,]\\d+D$))?(?:T(?=[\\d+-])(?:(?:[-+]?\\d+H)|(?:[-+]?\\d+[.,]\\d+H$))?(?:(?:[-+]?\\d+M)|(?:[-+]?\\d+[.,]\\d+M$))?(?:[-+]?\\d+(?:[.,]\\d+)?S)?)??$/;\n/** A regex for any UUID-like identifier: 8-4-4-4-12 hex pattern */\nexport const guid = /^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$/;\n/** Returns a regex for validating an RFC 4122 UUID.\n *\n * @param version Optionally specify a version 1-8. If no version is specified, all versions are supported. */\nexport const uuid = (version) => {\n if (!version)\n return /^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$/;\n return new RegExp(`^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-${version}[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$`);\n};\nexport const uuid4 = /*@__PURE__*/ uuid(4);\nexport const uuid6 = /*@__PURE__*/ uuid(6);\nexport const uuid7 = /*@__PURE__*/ uuid(7);\n/** Practical email validation */\nexport const email = /^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$/;\n/** Equivalent to the HTML5 input[type=email] validation implemented by browsers. Source: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/email */\nexport const html5Email = /^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/;\n/** The classic emailregex.com regex for RFC 5322-compliant emails */\nexport const rfc5322Email = /^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/;\n/** A loose regex that allows Unicode characters, enforces length limits, and that's about it. */\nexport const unicodeEmail = /^[^\\s@\"]{1,64}@[^\\s@]{1,255}$/u;\nexport const browserEmail = /^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/;\n// from https://thekevinscott.com/emojis-in-javascript/#writing-a-regular-expression\nconst _emoji = `^(\\\\p{Extended_Pictographic}|\\\\p{Emoji_Component})+$`;\nexport function emoji() {\n return new RegExp(_emoji, \"u\");\n}\nexport const ipv4 = /^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/;\nexport const ipv6 = /^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|::|([0-9a-fA-F]{1,4})?::([0-9a-fA-F]{1,4}:?){0,6})$/;\nexport const cidrv4 = /^((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\\.){3}(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\\/([0-9]|[1-2][0-9]|3[0-2])$/;\nexport const cidrv6 = /^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|::|([0-9a-fA-F]{1,4})?::([0-9a-fA-F]{1,4}:?){0,6})\\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/;\n// https://stackoverflow.com/questions/7860392/determine-if-string-is-in-base64-using-javascript\nexport const base64 = /^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$/;\nexport const base64url = /^[A-Za-z0-9_-]*$/;\n// based on https://stackoverflow.com/questions/106179/regular-expression-to-match-dns-hostname-or-ip-address\n// export const hostname: RegExp =\n// /^(([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9\\-]*[a-zA-Z0-9])\\.)+([A-Za-z0-9]|[A-Za-z0-9][A-Za-z0-9\\-]*[A-Za-z0-9])$/;\nexport const hostname = /^([a-zA-Z0-9-]+\\.)*[a-zA-Z0-9-]+$/;\nexport const domain = /^([a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?\\.)+[a-zA-Z]{2,}$/;\n// https://blog.stevenlevithan.com/archives/validate-phone-number#r4-3 (regex sans spaces)\nexport const e164 = /^\\+(?:[0-9]){6,14}[0-9]$/;\n// const dateSource = `((\\\\d\\\\d[2468][048]|\\\\d\\\\d[13579][26]|\\\\d\\\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\\\d{4}-((0[13578]|1[02])-(0[1-9]|[12]\\\\d|3[01])|(0[469]|11)-(0[1-9]|[12]\\\\d|30)|(02)-(0[1-9]|1\\\\d|2[0-8])))`;\nconst dateSource = `(?:(?:\\\\d\\\\d[2468][048]|\\\\d\\\\d[13579][26]|\\\\d\\\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\\\d|30)|(?:02)-(?:0[1-9]|1\\\\d|2[0-8])))`;\nexport const date = /*@__PURE__*/ new RegExp(`^${dateSource}$`);\nfunction timeSource(args) {\n const hhmm = `(?:[01]\\\\d|2[0-3]):[0-5]\\\\d`;\n const regex = typeof args.precision === \"number\"\n ? args.precision === -1\n ? `${hhmm}`\n : args.precision === 0\n ? `${hhmm}:[0-5]\\\\d`\n : `${hhmm}:[0-5]\\\\d\\\\.\\\\d{${args.precision}}`\n : `${hhmm}(?::[0-5]\\\\d(?:\\\\.\\\\d+)?)?`;\n return regex;\n}\nexport function time(args) {\n return new RegExp(`^${timeSource(args)}$`);\n}\n// Adapted from https://stackoverflow.com/a/3143231\nexport function datetime(args) {\n const time = timeSource({ precision: args.precision });\n const opts = [\"Z\"];\n if (args.local)\n opts.push(\"\");\n if (args.offset)\n opts.push(`([+-]\\\\d{2}:\\\\d{2})`);\n const timeRegex = `${time}(?:${opts.join(\"|\")})`;\n return new RegExp(`^${dateSource}T(?:${timeRegex})$`);\n}\nexport const string = (params) => {\n const regex = params ? `[\\\\s\\\\S]{${params?.minimum ?? 0},${params?.maximum ?? \"\"}}` : `[\\\\s\\\\S]*`;\n return new RegExp(`^${regex}$`);\n};\nexport const bigint = /^\\d+n?$/;\nexport const integer = /^\\d+$/;\nexport const number = /^-?\\d+(?:\\.\\d+)?/i;\nexport const boolean = /true|false/i;\nconst _null = /null/i;\nexport { _null as null };\nconst _undefined = /undefined/i;\nexport { _undefined as undefined };\n// regex for string with no uppercase letters\nexport const lowercase = /^[^A-Z]*$/;\n// regex for string with no lowercase letters\nexport const uppercase = /^[^a-z]*$/;\n","// import { $ZodType } from \"./schemas.js\";\nimport * as core from \"./core.js\";\nimport * as regexes from \"./regexes.js\";\nimport * as util from \"./util.js\";\nexport const $ZodCheck = /*@__PURE__*/ core.$constructor(\"$ZodCheck\", (inst, def) => {\n var _a;\n inst._zod ?? (inst._zod = {});\n inst._zod.def = def;\n (_a = inst._zod).onattach ?? (_a.onattach = []);\n});\nconst numericOriginMap = {\n number: \"number\",\n bigint: \"bigint\",\n object: \"date\",\n};\nexport const $ZodCheckLessThan = /*@__PURE__*/ core.$constructor(\"$ZodCheckLessThan\", (inst, def) => {\n $ZodCheck.init(inst, def);\n const origin = numericOriginMap[typeof def.value];\n inst._zod.onattach.push((inst) => {\n const bag = inst._zod.bag;\n const curr = (def.inclusive ? bag.maximum : bag.exclusiveMaximum) ?? Number.POSITIVE_INFINITY;\n if (def.value < curr) {\n if (def.inclusive)\n bag.maximum = def.value;\n else\n bag.exclusiveMaximum = def.value;\n }\n });\n inst._zod.check = (payload) => {\n if (def.inclusive ? payload.value <= def.value : payload.value < def.value) {\n return;\n }\n payload.issues.push({\n origin,\n code: \"too_big\",\n maximum: def.value,\n input: payload.value,\n inclusive: def.inclusive,\n inst,\n continue: !def.abort,\n });\n };\n});\nexport const $ZodCheckGreaterThan = /*@__PURE__*/ core.$constructor(\"$ZodCheckGreaterThan\", (inst, def) => {\n $ZodCheck.init(inst, def);\n const origin = numericOriginMap[typeof def.value];\n inst._zod.onattach.push((inst) => {\n const bag = inst._zod.bag;\n const curr = (def.inclusive ? bag.minimum : bag.exclusiveMinimum) ?? Number.NEGATIVE_INFINITY;\n if (def.value > curr) {\n if (def.inclusive)\n bag.minimum = def.value;\n else\n bag.exclusiveMinimum = def.value;\n }\n });\n inst._zod.check = (payload) => {\n if (def.inclusive ? payload.value >= def.value : payload.value > def.value) {\n return;\n }\n payload.issues.push({\n origin,\n code: \"too_small\",\n minimum: def.value,\n input: payload.value,\n inclusive: def.inclusive,\n inst,\n continue: !def.abort,\n });\n };\n});\nexport const $ZodCheckMultipleOf = \n/*@__PURE__*/ core.$constructor(\"$ZodCheckMultipleOf\", (inst, def) => {\n $ZodCheck.init(inst, def);\n inst._zod.onattach.push((inst) => {\n var _a;\n (_a = inst._zod.bag).multipleOf ?? (_a.multipleOf = def.value);\n });\n inst._zod.check = (payload) => {\n if (typeof payload.value !== typeof def.value)\n throw new Error(\"Cannot mix number and bigint in multiple_of check.\");\n const isMultiple = typeof payload.value === \"bigint\"\n ? payload.value % def.value === BigInt(0)\n : util.floatSafeRemainder(payload.value, def.value) === 0;\n if (isMultiple)\n return;\n payload.issues.push({\n origin: typeof payload.value,\n code: \"not_multiple_of\",\n divisor: def.value,\n input: payload.value,\n inst,\n continue: !def.abort,\n });\n };\n});\nexport const $ZodCheckNumberFormat = /*@__PURE__*/ core.$constructor(\"$ZodCheckNumberFormat\", (inst, def) => {\n $ZodCheck.init(inst, def); // no format checks\n def.format = def.format || \"float64\";\n const isInt = def.format?.includes(\"int\");\n const origin = isInt ? \"int\" : \"number\";\n const [minimum, maximum] = util.NUMBER_FORMAT_RANGES[def.format];\n inst._zod.onattach.push((inst) => {\n const bag = inst._zod.bag;\n bag.format = def.format;\n bag.minimum = minimum;\n bag.maximum = maximum;\n if (isInt)\n bag.pattern = regexes.integer;\n });\n inst._zod.check = (payload) => {\n const input = payload.value;\n if (isInt) {\n if (!Number.isInteger(input)) {\n // invalid_format issue\n // payload.issues.push({\n // expected: def.format,\n // format: def.format,\n // code: \"invalid_format\",\n // input,\n // inst,\n // });\n // invalid_type issue\n payload.issues.push({\n expected: origin,\n format: def.format,\n code: \"invalid_type\",\n input,\n inst,\n });\n return;\n // not_multiple_of issue\n // payload.issues.push({\n // code: \"not_multiple_of\",\n // origin: \"number\",\n // input,\n // inst,\n // divisor: 1,\n // });\n }\n if (!Number.isSafeInteger(input)) {\n if (input > 0) {\n // too_big\n payload.issues.push({\n input,\n code: \"too_big\",\n maximum: Number.MAX_SAFE_INTEGER,\n note: \"Integers must be within the safe integer range.\",\n inst,\n origin,\n continue: !def.abort,\n });\n }\n else {\n // too_small\n payload.issues.push({\n input,\n code: \"too_small\",\n minimum: Number.MIN_SAFE_INTEGER,\n note: \"Integers must be within the safe integer range.\",\n inst,\n origin,\n continue: !def.abort,\n });\n }\n return;\n }\n }\n if (input < minimum) {\n payload.issues.push({\n origin: \"number\",\n input,\n code: \"too_small\",\n minimum,\n inclusive: true,\n inst,\n continue: !def.abort,\n });\n }\n if (input > maximum) {\n payload.issues.push({\n origin: \"number\",\n input,\n code: \"too_big\",\n maximum,\n inst,\n });\n }\n };\n});\nexport const $ZodCheckBigIntFormat = /*@__PURE__*/ core.$constructor(\"$ZodCheckBigIntFormat\", (inst, def) => {\n $ZodCheck.init(inst, def); // no format checks\n const [minimum, maximum] = util.BIGINT_FORMAT_RANGES[def.format];\n inst._zod.onattach.push((inst) => {\n const bag = inst._zod.bag;\n bag.format = def.format;\n bag.minimum = minimum;\n bag.maximum = maximum;\n });\n inst._zod.check = (payload) => {\n const input = payload.value;\n if (input < minimum) {\n payload.issues.push({\n origin: \"bigint\",\n input,\n code: \"too_small\",\n minimum: minimum,\n inclusive: true,\n inst,\n continue: !def.abort,\n });\n }\n if (input > maximum) {\n payload.issues.push({\n origin: \"bigint\",\n input,\n code: \"too_big\",\n maximum,\n inst,\n });\n }\n };\n});\nexport const $ZodCheckMaxSize = /*@__PURE__*/ core.$constructor(\"$ZodCheckMaxSize\", (inst, def) => {\n var _a;\n $ZodCheck.init(inst, def);\n (_a = inst._zod.def).when ?? (_a.when = (payload) => {\n const val = payload.value;\n return !util.nullish(val) && val.size !== undefined;\n });\n inst._zod.onattach.push((inst) => {\n const curr = (inst._zod.bag.maximum ?? Number.POSITIVE_INFINITY);\n if (def.maximum < curr)\n inst._zod.bag.maximum = def.maximum;\n });\n inst._zod.check = (payload) => {\n const input = payload.value;\n const size = input.size;\n if (size <= def.maximum)\n return;\n payload.issues.push({\n origin: util.getSizableOrigin(input),\n code: \"too_big\",\n maximum: def.maximum,\n input,\n inst,\n continue: !def.abort,\n });\n };\n});\nexport const $ZodCheckMinSize = /*@__PURE__*/ core.$constructor(\"$ZodCheckMinSize\", (inst, def) => {\n var _a;\n $ZodCheck.init(inst, def);\n (_a = inst._zod.def).when ?? (_a.when = (payload) => {\n const val = payload.value;\n return !util.nullish(val) && val.size !== undefined;\n });\n inst._zod.onattach.push((inst) => {\n const curr = (inst._zod.bag.minimum ?? Number.NEGATIVE_INFINITY);\n if (def.minimum > curr)\n inst._zod.bag.minimum = def.minimum;\n });\n inst._zod.check = (payload) => {\n const input = payload.value;\n const size = input.size;\n if (size >= def.minimum)\n return;\n payload.issues.push({\n origin: util.getSizableOrigin(input),\n code: \"too_small\",\n minimum: def.minimum,\n input,\n inst,\n continue: !def.abort,\n });\n };\n});\nexport const $ZodCheckSizeEquals = /*@__PURE__*/ core.$constructor(\"$ZodCheckSizeEquals\", (inst, def) => {\n var _a;\n $ZodCheck.init(inst, def);\n (_a = inst._zod.def).when ?? (_a.when = (payload) => {\n const val = payload.value;\n return !util.nullish(val) && val.size !== undefined;\n });\n inst._zod.onattach.push((inst) => {\n const bag = inst._zod.bag;\n bag.minimum = def.size;\n bag.maximum = def.size;\n bag.size = def.size;\n });\n inst._zod.check = (payload) => {\n const input = payload.value;\n const size = input.size;\n if (size === def.size)\n return;\n const tooBig = size > def.size;\n payload.issues.push({\n origin: util.getSizableOrigin(input),\n ...(tooBig ? { code: \"too_big\", maximum: def.size } : { code: \"too_small\", minimum: def.size }),\n inclusive: true,\n exact: true,\n input: payload.value,\n inst,\n continue: !def.abort,\n });\n };\n});\nexport const $ZodCheckMaxLength = /*@__PURE__*/ core.$constructor(\"$ZodCheckMaxLength\", (inst, def) => {\n var _a;\n $ZodCheck.init(inst, def);\n (_a = inst._zod.def).when ?? (_a.when = (payload) => {\n const val = payload.value;\n return !util.nullish(val) && val.length !== undefined;\n });\n inst._zod.onattach.push((inst) => {\n const curr = (inst._zod.bag.maximum ?? Number.POSITIVE_INFINITY);\n if (def.maximum < curr)\n inst._zod.bag.maximum = def.maximum;\n });\n inst._zod.check = (payload) => {\n const input = payload.value;\n const length = input.length;\n if (length <= def.maximum)\n return;\n const origin = util.getLengthableOrigin(input);\n payload.issues.push({\n origin,\n code: \"too_big\",\n maximum: def.maximum,\n inclusive: true,\n input,\n inst,\n continue: !def.abort,\n });\n };\n});\nexport const $ZodCheckMinLength = /*@__PURE__*/ core.$constructor(\"$ZodCheckMinLength\", (inst, def) => {\n var _a;\n $ZodCheck.init(inst, def);\n (_a = inst._zod.def).when ?? (_a.when = (payload) => {\n const val = payload.value;\n return !util.nullish(val) && val.length !== undefined;\n });\n inst._zod.onattach.push((inst) => {\n const curr = (inst._zod.bag.minimum ?? Number.NEGATIVE_INFINITY);\n if (def.minimum > curr)\n inst._zod.bag.minimum = def.minimum;\n });\n inst._zod.check = (payload) => {\n const input = payload.value;\n const length = input.length;\n if (length >= def.minimum)\n return;\n const origin = util.getLengthableOrigin(input);\n payload.issues.push({\n origin,\n code: \"too_small\",\n minimum: def.minimum,\n inclusive: true,\n input,\n inst,\n continue: !def.abort,\n });\n };\n});\nexport const $ZodCheckLengthEquals = /*@__PURE__*/ core.$constructor(\"$ZodCheckLengthEquals\", (inst, def) => {\n var _a;\n $ZodCheck.init(inst, def);\n (_a = inst._zod.def).when ?? (_a.when = (payload) => {\n const val = payload.value;\n return !util.nullish(val) && val.length !== undefined;\n });\n inst._zod.onattach.push((inst) => {\n const bag = inst._zod.bag;\n bag.minimum = def.length;\n bag.maximum = def.length;\n bag.length = def.length;\n });\n inst._zod.check = (payload) => {\n const input = payload.value;\n const length = input.length;\n if (length === def.length)\n return;\n const origin = util.getLengthableOrigin(input);\n const tooBig = length > def.length;\n payload.issues.push({\n origin,\n ...(tooBig ? { code: \"too_big\", maximum: def.length } : { code: \"too_small\", minimum: def.length }),\n inclusive: true,\n exact: true,\n input: payload.value,\n inst,\n continue: !def.abort,\n });\n };\n});\nexport const $ZodCheckStringFormat = /*@__PURE__*/ core.$constructor(\"$ZodCheckStringFormat\", (inst, def) => {\n var _a, _b;\n $ZodCheck.init(inst, def);\n inst._zod.onattach.push((inst) => {\n const bag = inst._zod.bag;\n bag.format = def.format;\n if (def.pattern) {\n bag.patterns ?? (bag.patterns = new Set());\n bag.patterns.add(def.pattern);\n }\n });\n if (def.pattern)\n (_a = inst._zod).check ?? (_a.check = (payload) => {\n def.pattern.lastIndex = 0;\n if (def.pattern.test(payload.value))\n return;\n payload.issues.push({\n origin: \"string\",\n code: \"invalid_format\",\n format: def.format,\n input: payload.value,\n ...(def.pattern ? { pattern: def.pattern.toString() } : {}),\n inst,\n continue: !def.abort,\n });\n });\n else\n (_b = inst._zod).check ?? (_b.check = () => { });\n});\nexport const $ZodCheckRegex = /*@__PURE__*/ core.$constructor(\"$ZodCheckRegex\", (inst, def) => {\n $ZodCheckStringFormat.init(inst, def);\n inst._zod.check = (payload) => {\n def.pattern.lastIndex = 0;\n if (def.pattern.test(payload.value))\n return;\n payload.issues.push({\n origin: \"string\",\n code: \"invalid_format\",\n format: \"regex\",\n input: payload.value,\n pattern: def.pattern.toString(),\n inst,\n continue: !def.abort,\n });\n };\n});\nexport const $ZodCheckLowerCase = /*@__PURE__*/ core.$constructor(\"$ZodCheckLowerCase\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.lowercase);\n $ZodCheckStringFormat.init(inst, def);\n});\nexport const $ZodCheckUpperCase = /*@__PURE__*/ core.$constructor(\"$ZodCheckUpperCase\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.uppercase);\n $ZodCheckStringFormat.init(inst, def);\n});\nexport const $ZodCheckIncludes = /*@__PURE__*/ core.$constructor(\"$ZodCheckIncludes\", (inst, def) => {\n $ZodCheck.init(inst, def);\n const escapedRegex = util.escapeRegex(def.includes);\n const pattern = new RegExp(typeof def.position === \"number\" ? `^.{${def.position}}${escapedRegex}` : escapedRegex);\n def.pattern = pattern;\n inst._zod.onattach.push((inst) => {\n const bag = inst._zod.bag;\n bag.patterns ?? (bag.patterns = new Set());\n bag.patterns.add(pattern);\n });\n inst._zod.check = (payload) => {\n if (payload.value.includes(def.includes, def.position))\n return;\n payload.issues.push({\n origin: \"string\",\n code: \"invalid_format\",\n format: \"includes\",\n includes: def.includes,\n input: payload.value,\n inst,\n continue: !def.abort,\n });\n };\n});\nexport const $ZodCheckStartsWith = /*@__PURE__*/ core.$constructor(\"$ZodCheckStartsWith\", (inst, def) => {\n $ZodCheck.init(inst, def);\n const pattern = new RegExp(`^${util.escapeRegex(def.prefix)}.*`);\n def.pattern ?? (def.pattern = pattern);\n inst._zod.onattach.push((inst) => {\n const bag = inst._zod.bag;\n bag.patterns ?? (bag.patterns = new Set());\n bag.patterns.add(pattern);\n });\n inst._zod.check = (payload) => {\n if (payload.value.startsWith(def.prefix))\n return;\n payload.issues.push({\n origin: \"string\",\n code: \"invalid_format\",\n format: \"starts_with\",\n prefix: def.prefix,\n input: payload.value,\n inst,\n continue: !def.abort,\n });\n };\n});\nexport const $ZodCheckEndsWith = /*@__PURE__*/ core.$constructor(\"$ZodCheckEndsWith\", (inst, def) => {\n $ZodCheck.init(inst, def);\n const pattern = new RegExp(`.*${util.escapeRegex(def.suffix)}$`);\n def.pattern ?? (def.pattern = pattern);\n inst._zod.onattach.push((inst) => {\n const bag = inst._zod.bag;\n bag.patterns ?? (bag.patterns = new Set());\n bag.patterns.add(pattern);\n });\n inst._zod.check = (payload) => {\n if (payload.value.endsWith(def.suffix))\n return;\n payload.issues.push({\n origin: \"string\",\n code: \"invalid_format\",\n format: \"ends_with\",\n suffix: def.suffix,\n input: payload.value,\n inst,\n continue: !def.abort,\n });\n };\n});\n///////////////////////////////////\n///// $ZodCheckProperty /////\n///////////////////////////////////\nfunction handleCheckPropertyResult(result, payload, property) {\n if (result.issues.length) {\n payload.issues.push(...util.prefixIssues(property, result.issues));\n }\n}\nexport const $ZodCheckProperty = /*@__PURE__*/ core.$constructor(\"$ZodCheckProperty\", (inst, def) => {\n $ZodCheck.init(inst, def);\n inst._zod.check = (payload) => {\n const result = def.schema._zod.run({\n value: payload.value[def.property],\n issues: [],\n }, {});\n if (result instanceof Promise) {\n return result.then((result) => handleCheckPropertyResult(result, payload, def.property));\n }\n handleCheckPropertyResult(result, payload, def.property);\n return;\n };\n});\nexport const $ZodCheckMimeType = /*@__PURE__*/ core.$constructor(\"$ZodCheckMimeType\", (inst, def) => {\n $ZodCheck.init(inst, def);\n const mimeSet = new Set(def.mime);\n inst._zod.onattach.push((inst) => {\n inst._zod.bag.mime = def.mime;\n });\n inst._zod.check = (payload) => {\n if (mimeSet.has(payload.value.type))\n return;\n payload.issues.push({\n code: \"invalid_value\",\n values: def.mime,\n input: payload.value.type,\n inst,\n });\n };\n});\nexport const $ZodCheckOverwrite = /*@__PURE__*/ core.$constructor(\"$ZodCheckOverwrite\", (inst, def) => {\n $ZodCheck.init(inst, def);\n inst._zod.check = (payload) => {\n payload.value = def.tx(payload.value);\n };\n});\n","export class Doc {\n constructor(args = []) {\n this.content = [];\n this.indent = 0;\n if (this)\n this.args = args;\n }\n indented(fn) {\n this.indent += 1;\n fn(this);\n this.indent -= 1;\n }\n write(arg) {\n if (typeof arg === \"function\") {\n arg(this, { execution: \"sync\" });\n arg(this, { execution: \"async\" });\n return;\n }\n const content = arg;\n const lines = content.split(\"\\n\").filter((x) => x);\n const minIndent = Math.min(...lines.map((x) => x.length - x.trimStart().length));\n const dedented = lines.map((x) => x.slice(minIndent)).map((x) => \" \".repeat(this.indent * 2) + x);\n for (const line of dedented) {\n this.content.push(line);\n }\n }\n compile() {\n const F = Function;\n const args = this?.args;\n const content = this?.content ?? [``];\n const lines = [...content.map((x) => ` ${x}`)];\n // console.log(lines.join(\"\\n\"));\n return new F(...args, lines.join(\"\\n\"));\n }\n}\n","export const version = {\n major: 4,\n minor: 0,\n patch: 5,\n};\n","import * as checks from \"./checks.js\";\nimport * as core from \"./core.js\";\nimport { Doc } from \"./doc.js\";\nimport { safeParse, safeParseAsync } from \"./parse.js\";\nimport * as regexes from \"./regexes.js\";\nimport * as util from \"./util.js\";\nimport { version } from \"./versions.js\";\nexport const $ZodType = /*@__PURE__*/ core.$constructor(\"$ZodType\", (inst, def) => {\n var _a;\n inst ?? (inst = {});\n inst._zod.def = def; // set _def property\n inst._zod.bag = inst._zod.bag || {}; // initialize _bag object\n inst._zod.version = version;\n const checks = [...(inst._zod.def.checks ?? [])];\n // if inst is itself a checks.$ZodCheck, run it as a check\n if (inst._zod.traits.has(\"$ZodCheck\")) {\n checks.unshift(inst);\n }\n //\n for (const ch of checks) {\n for (const fn of ch._zod.onattach) {\n fn(inst);\n }\n }\n if (checks.length === 0) {\n // deferred initializer\n // inst._zod.parse is not yet defined\n (_a = inst._zod).deferred ?? (_a.deferred = []);\n inst._zod.deferred?.push(() => {\n inst._zod.run = inst._zod.parse;\n });\n }\n else {\n const runChecks = (payload, checks, ctx) => {\n let isAborted = util.aborted(payload);\n let asyncResult;\n for (const ch of checks) {\n if (ch._zod.def.when) {\n const shouldRun = ch._zod.def.when(payload);\n if (!shouldRun)\n continue;\n }\n else if (isAborted) {\n continue;\n }\n const currLen = payload.issues.length;\n const _ = ch._zod.check(payload);\n if (_ instanceof Promise && ctx?.async === false) {\n throw new core.$ZodAsyncError();\n }\n if (asyncResult || _ instanceof Promise) {\n asyncResult = (asyncResult ?? Promise.resolve()).then(async () => {\n await _;\n const nextLen = payload.issues.length;\n if (nextLen === currLen)\n return;\n if (!isAborted)\n isAborted = util.aborted(payload, currLen);\n });\n }\n else {\n const nextLen = payload.issues.length;\n if (nextLen === currLen)\n continue;\n if (!isAborted)\n isAborted = util.aborted(payload, currLen);\n }\n }\n if (asyncResult) {\n return asyncResult.then(() => {\n return payload;\n });\n }\n return payload;\n };\n inst._zod.run = (payload, ctx) => {\n const result = inst._zod.parse(payload, ctx);\n if (result instanceof Promise) {\n if (ctx.async === false)\n throw new core.$ZodAsyncError();\n return result.then((result) => runChecks(result, checks, ctx));\n }\n return runChecks(result, checks, ctx);\n };\n }\n inst[\"~standard\"] = {\n validate: (value) => {\n try {\n const r = safeParse(inst, value);\n return r.success ? { value: r.data } : { issues: r.error?.issues };\n }\n catch (_) {\n return safeParseAsync(inst, value).then((r) => (r.success ? { value: r.data } : { issues: r.error?.issues }));\n }\n },\n vendor: \"zod\",\n version: 1,\n };\n});\nexport { clone } from \"./util.js\";\nexport const $ZodString = /*@__PURE__*/ core.$constructor(\"$ZodString\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.pattern = [...(inst?._zod.bag?.patterns ?? [])].pop() ?? regexes.string(inst._zod.bag);\n inst._zod.parse = (payload, _) => {\n if (def.coerce)\n try {\n payload.value = String(payload.value);\n }\n catch (_) { }\n if (typeof payload.value === \"string\")\n return payload;\n payload.issues.push({\n expected: \"string\",\n code: \"invalid_type\",\n input: payload.value,\n inst,\n });\n return payload;\n };\n});\nexport const $ZodStringFormat = /*@__PURE__*/ core.$constructor(\"$ZodStringFormat\", (inst, def) => {\n // check initialization must come first\n checks.$ZodCheckStringFormat.init(inst, def);\n $ZodString.init(inst, def);\n});\nexport const $ZodGUID = /*@__PURE__*/ core.$constructor(\"$ZodGUID\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.guid);\n $ZodStringFormat.init(inst, def);\n});\nexport const $ZodUUID = /*@__PURE__*/ core.$constructor(\"$ZodUUID\", (inst, def) => {\n if (def.version) {\n const versionMap = {\n v1: 1,\n v2: 2,\n v3: 3,\n v4: 4,\n v5: 5,\n v6: 6,\n v7: 7,\n v8: 8,\n };\n const v = versionMap[def.version];\n if (v === undefined)\n throw new Error(`Invalid UUID version: \"${def.version}\"`);\n def.pattern ?? (def.pattern = regexes.uuid(v));\n }\n else\n def.pattern ?? (def.pattern = regexes.uuid());\n $ZodStringFormat.init(inst, def);\n});\nexport const $ZodEmail = /*@__PURE__*/ core.$constructor(\"$ZodEmail\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.email);\n $ZodStringFormat.init(inst, def);\n});\nexport const $ZodURL = /*@__PURE__*/ core.$constructor(\"$ZodURL\", (inst, def) => {\n $ZodStringFormat.init(inst, def);\n inst._zod.check = (payload) => {\n try {\n const orig = payload.value;\n const url = new URL(orig);\n const href = url.href;\n if (def.hostname) {\n def.hostname.lastIndex = 0;\n if (!def.hostname.test(url.hostname)) {\n payload.issues.push({\n code: \"invalid_format\",\n format: \"url\",\n note: \"Invalid hostname\",\n pattern: regexes.hostname.source,\n input: payload.value,\n inst,\n continue: !def.abort,\n });\n }\n }\n if (def.protocol) {\n def.protocol.lastIndex = 0;\n if (!def.protocol.test(url.protocol.endsWith(\":\") ? url.protocol.slice(0, -1) : url.protocol)) {\n payload.issues.push({\n code: \"invalid_format\",\n format: \"url\",\n note: \"Invalid protocol\",\n pattern: def.protocol.source,\n input: payload.value,\n inst,\n continue: !def.abort,\n });\n }\n }\n // payload.value = url.href;\n if (!orig.endsWith(\"/\") && href.endsWith(\"/\")) {\n payload.value = href.slice(0, -1);\n }\n else {\n payload.value = href;\n }\n return;\n }\n catch (_) {\n payload.issues.push({\n code: \"invalid_format\",\n format: \"url\",\n input: payload.value,\n inst,\n continue: !def.abort,\n });\n }\n };\n});\nexport const $ZodEmoji = /*@__PURE__*/ core.$constructor(\"$ZodEmoji\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.emoji());\n $ZodStringFormat.init(inst, def);\n});\nexport const $ZodNanoID = /*@__PURE__*/ core.$constructor(\"$ZodNanoID\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.nanoid);\n $ZodStringFormat.init(inst, def);\n});\nexport const $ZodCUID = /*@__PURE__*/ core.$constructor(\"$ZodCUID\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.cuid);\n $ZodStringFormat.init(inst, def);\n});\nexport const $ZodCUID2 = /*@__PURE__*/ core.$constructor(\"$ZodCUID2\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.cuid2);\n $ZodStringFormat.init(inst, def);\n});\nexport const $ZodULID = /*@__PURE__*/ core.$constructor(\"$ZodULID\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.ulid);\n $ZodStringFormat.init(inst, def);\n});\nexport const $ZodXID = /*@__PURE__*/ core.$constructor(\"$ZodXID\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.xid);\n $ZodStringFormat.init(inst, def);\n});\nexport const $ZodKSUID = /*@__PURE__*/ core.$constructor(\"$ZodKSUID\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.ksuid);\n $ZodStringFormat.init(inst, def);\n});\nexport const $ZodISODateTime = /*@__PURE__*/ core.$constructor(\"$ZodISODateTime\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.datetime(def));\n $ZodStringFormat.init(inst, def);\n});\nexport const $ZodISODate = /*@__PURE__*/ core.$constructor(\"$ZodISODate\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.date);\n $ZodStringFormat.init(inst, def);\n});\nexport const $ZodISOTime = /*@__PURE__*/ core.$constructor(\"$ZodISOTime\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.time(def));\n $ZodStringFormat.init(inst, def);\n});\nexport const $ZodISODuration = /*@__PURE__*/ core.$constructor(\"$ZodISODuration\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.duration);\n $ZodStringFormat.init(inst, def);\n});\nexport const $ZodIPv4 = /*@__PURE__*/ core.$constructor(\"$ZodIPv4\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.ipv4);\n $ZodStringFormat.init(inst, def);\n inst._zod.onattach.push((inst) => {\n const bag = inst._zod.bag;\n bag.format = `ipv4`;\n });\n});\nexport const $ZodIPv6 = /*@__PURE__*/ core.$constructor(\"$ZodIPv6\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.ipv6);\n $ZodStringFormat.init(inst, def);\n inst._zod.onattach.push((inst) => {\n const bag = inst._zod.bag;\n bag.format = `ipv6`;\n });\n inst._zod.check = (payload) => {\n try {\n new URL(`http://[${payload.value}]`);\n // return;\n }\n catch {\n payload.issues.push({\n code: \"invalid_format\",\n format: \"ipv6\",\n input: payload.value,\n inst,\n continue: !def.abort,\n });\n }\n };\n});\nexport const $ZodCIDRv4 = /*@__PURE__*/ core.$constructor(\"$ZodCIDRv4\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.cidrv4);\n $ZodStringFormat.init(inst, def);\n});\nexport const $ZodCIDRv6 = /*@__PURE__*/ core.$constructor(\"$ZodCIDRv6\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.cidrv6); // not used for validation\n $ZodStringFormat.init(inst, def);\n inst._zod.check = (payload) => {\n const [address, prefix] = payload.value.split(\"/\");\n try {\n if (!prefix)\n throw new Error();\n const prefixNum = Number(prefix);\n if (`${prefixNum}` !== prefix)\n throw new Error();\n if (prefixNum < 0 || prefixNum > 128)\n throw new Error();\n new URL(`http://[${address}]`);\n }\n catch {\n payload.issues.push({\n code: \"invalid_format\",\n format: \"cidrv6\",\n input: payload.value,\n inst,\n continue: !def.abort,\n });\n }\n };\n});\n////////////////////////////// ZodBase64 //////////////////////////////\nexport function isValidBase64(data) {\n if (data === \"\")\n return true;\n if (data.length % 4 !== 0)\n return false;\n try {\n atob(data);\n return true;\n }\n catch {\n return false;\n }\n}\nexport const $ZodBase64 = /*@__PURE__*/ core.$constructor(\"$ZodBase64\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.base64);\n $ZodStringFormat.init(inst, def);\n inst._zod.onattach.push((inst) => {\n inst._zod.bag.contentEncoding = \"base64\";\n });\n inst._zod.check = (payload) => {\n if (isValidBase64(payload.value))\n return;\n payload.issues.push({\n code: \"invalid_format\",\n format: \"base64\",\n input: payload.value,\n inst,\n continue: !def.abort,\n });\n };\n});\n////////////////////////////// ZodBase64 //////////////////////////////\nexport function isValidBase64URL(data) {\n if (!regexes.base64url.test(data))\n return false;\n const base64 = data.replace(/[-_]/g, (c) => (c === \"-\" ? \"+\" : \"/\"));\n const padded = base64.padEnd(Math.ceil(base64.length / 4) * 4, \"=\");\n return isValidBase64(padded);\n}\nexport const $ZodBase64URL = /*@__PURE__*/ core.$constructor(\"$ZodBase64URL\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.base64url);\n $ZodStringFormat.init(inst, def);\n inst._zod.onattach.push((inst) => {\n inst._zod.bag.contentEncoding = \"base64url\";\n });\n inst._zod.check = (payload) => {\n if (isValidBase64URL(payload.value))\n return;\n payload.issues.push({\n code: \"invalid_format\",\n format: \"base64url\",\n input: payload.value,\n inst,\n continue: !def.abort,\n });\n };\n});\nexport const $ZodE164 = /*@__PURE__*/ core.$constructor(\"$ZodE164\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.e164);\n $ZodStringFormat.init(inst, def);\n});\n////////////////////////////// ZodJWT //////////////////////////////\nexport function isValidJWT(token, algorithm = null) {\n try {\n const tokensParts = token.split(\".\");\n if (tokensParts.length !== 3)\n return false;\n const [header] = tokensParts;\n if (!header)\n return false;\n const parsedHeader = JSON.parse(atob(header));\n if (\"typ\" in parsedHeader && parsedHeader?.typ !== \"JWT\")\n return false;\n if (!parsedHeader.alg)\n return false;\n if (algorithm && (!(\"alg\" in parsedHeader) || parsedHeader.alg !== algorithm))\n return false;\n return true;\n }\n catch {\n return false;\n }\n}\nexport const $ZodJWT = /*@__PURE__*/ core.$constructor(\"$ZodJWT\", (inst, def) => {\n $ZodStringFormat.init(inst, def);\n inst._zod.check = (payload) => {\n if (isValidJWT(payload.value, def.alg))\n return;\n payload.issues.push({\n code: \"invalid_format\",\n format: \"jwt\",\n input: payload.value,\n inst,\n continue: !def.abort,\n });\n };\n});\nexport const $ZodCustomStringFormat = /*@__PURE__*/ core.$constructor(\"$ZodCustomStringFormat\", (inst, def) => {\n $ZodStringFormat.init(inst, def);\n inst._zod.check = (payload) => {\n if (def.fn(payload.value))\n return;\n payload.issues.push({\n code: \"invalid_format\",\n format: def.format,\n input: payload.value,\n inst,\n continue: !def.abort,\n });\n };\n});\nexport const $ZodNumber = /*@__PURE__*/ core.$constructor(\"$ZodNumber\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.pattern = inst._zod.bag.pattern ?? regexes.number;\n inst._zod.parse = (payload, _ctx) => {\n if (def.coerce)\n try {\n payload.value = Number(payload.value);\n }\n catch (_) { }\n const input = payload.value;\n if (typeof input === \"number\" && !Number.isNaN(input) && Number.isFinite(input)) {\n return payload;\n }\n const received = typeof input === \"number\"\n ? Number.isNaN(input)\n ? \"NaN\"\n : !Number.isFinite(input)\n ? \"Infinity\"\n : undefined\n : undefined;\n payload.issues.push({\n expected: \"number\",\n code: \"invalid_type\",\n input,\n inst,\n ...(received ? { received } : {}),\n });\n return payload;\n };\n});\nexport const $ZodNumberFormat = /*@__PURE__*/ core.$constructor(\"$ZodNumber\", (inst, def) => {\n checks.$ZodCheckNumberFormat.init(inst, def);\n $ZodNumber.init(inst, def); // no format checksp\n});\nexport const $ZodBoolean = /*@__PURE__*/ core.$constructor(\"$ZodBoolean\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.pattern = regexes.boolean;\n inst._zod.parse = (payload, _ctx) => {\n if (def.coerce)\n try {\n payload.value = Boolean(payload.value);\n }\n catch (_) { }\n const input = payload.value;\n if (typeof input === \"boolean\")\n return payload;\n payload.issues.push({\n expected: \"boolean\",\n code: \"invalid_type\",\n input,\n inst,\n });\n return payload;\n };\n});\nexport const $ZodBigInt = /*@__PURE__*/ core.$constructor(\"$ZodBigInt\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.pattern = regexes.bigint;\n inst._zod.parse = (payload, _ctx) => {\n if (def.coerce)\n try {\n payload.value = BigInt(payload.value);\n }\n catch (_) { }\n if (typeof payload.value === \"bigint\")\n return payload;\n payload.issues.push({\n expected: \"bigint\",\n code: \"invalid_type\",\n input: payload.value,\n inst,\n });\n return payload;\n };\n});\nexport const $ZodBigIntFormat = /*@__PURE__*/ core.$constructor(\"$ZodBigInt\", (inst, def) => {\n checks.$ZodCheckBigIntFormat.init(inst, def);\n $ZodBigInt.init(inst, def); // no format checks\n});\nexport const $ZodSymbol = /*@__PURE__*/ core.$constructor(\"$ZodSymbol\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.parse = (payload, _ctx) => {\n const input = payload.value;\n if (typeof input === \"symbol\")\n return payload;\n payload.issues.push({\n expected: \"symbol\",\n code: \"invalid_type\",\n input,\n inst,\n });\n return payload;\n };\n});\nexport const $ZodUndefined = /*@__PURE__*/ core.$constructor(\"$ZodUndefined\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.pattern = regexes.undefined;\n inst._zod.values = new Set([undefined]);\n inst._zod.optin = \"optional\";\n inst._zod.optout = \"optional\";\n inst._zod.parse = (payload, _ctx) => {\n const input = payload.value;\n if (typeof input === \"undefined\")\n return payload;\n payload.issues.push({\n expected: \"undefined\",\n code: \"invalid_type\",\n input,\n inst,\n });\n return payload;\n };\n});\nexport const $ZodNull = /*@__PURE__*/ core.$constructor(\"$ZodNull\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.pattern = regexes.null;\n inst._zod.values = new Set([null]);\n inst._zod.parse = (payload, _ctx) => {\n const input = payload.value;\n if (input === null)\n return payload;\n payload.issues.push({\n expected: \"null\",\n code: \"invalid_type\",\n input,\n inst,\n });\n return payload;\n };\n});\nexport const $ZodAny = /*@__PURE__*/ core.$constructor(\"$ZodAny\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.parse = (payload) => payload;\n});\nexport const $ZodUnknown = /*@__PURE__*/ core.$constructor(\"$ZodUnknown\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.parse = (payload) => payload;\n});\nexport const $ZodNever = /*@__PURE__*/ core.$constructor(\"$ZodNever\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.parse = (payload, _ctx) => {\n payload.issues.push({\n expected: \"never\",\n code: \"invalid_type\",\n input: payload.value,\n inst,\n });\n return payload;\n };\n});\nexport const $ZodVoid = /*@__PURE__*/ core.$constructor(\"$ZodVoid\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.parse = (payload, _ctx) => {\n const input = payload.value;\n if (typeof input === \"undefined\")\n return payload;\n payload.issues.push({\n expected: \"void\",\n code: \"invalid_type\",\n input,\n inst,\n });\n return payload;\n };\n});\nexport const $ZodDate = /*@__PURE__*/ core.$constructor(\"$ZodDate\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.parse = (payload, _ctx) => {\n if (def.coerce) {\n try {\n payload.value = new Date(payload.value);\n }\n catch (_err) { }\n }\n const input = payload.value;\n const isDate = input instanceof Date;\n const isValidDate = isDate && !Number.isNaN(input.getTime());\n if (isValidDate)\n return payload;\n payload.issues.push({\n expected: \"date\",\n code: \"invalid_type\",\n input,\n ...(isDate ? { received: \"Invalid Date\" } : {}),\n inst,\n });\n return payload;\n };\n});\nfunction handleArrayResult(result, final, index) {\n if (result.issues.length) {\n final.issues.push(...util.prefixIssues(index, result.issues));\n }\n final.value[index] = result.value;\n}\nexport const $ZodArray = /*@__PURE__*/ core.$constructor(\"$ZodArray\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.parse = (payload, ctx) => {\n const input = payload.value;\n if (!Array.isArray(input)) {\n payload.issues.push({\n expected: \"array\",\n code: \"invalid_type\",\n input,\n inst,\n });\n return payload;\n }\n payload.value = Array(input.length);\n const proms = [];\n for (let i = 0; i < input.length; i++) {\n const item = input[i];\n const result = def.element._zod.run({\n value: item,\n issues: [],\n }, ctx);\n if (result instanceof Promise) {\n proms.push(result.then((result) => handleArrayResult(result, payload, i)));\n }\n else {\n handleArrayResult(result, payload, i);\n }\n }\n if (proms.length) {\n return Promise.all(proms).then(() => payload);\n }\n return payload; //handleArrayResultsAsync(parseResults, final);\n };\n});\nfunction handleObjectResult(result, final, key) {\n // if(isOptional)\n if (result.issues.length) {\n final.issues.push(...util.prefixIssues(key, result.issues));\n }\n final.value[key] = result.value;\n}\nfunction handleOptionalObjectResult(result, final, key, input) {\n if (result.issues.length) {\n // validation failed against value schema\n if (input[key] === undefined) {\n // if input was undefined, ignore the error\n if (key in input) {\n final.value[key] = undefined;\n }\n else {\n final.value[key] = result.value;\n }\n }\n else {\n final.issues.push(...util.prefixIssues(key, result.issues));\n }\n }\n else if (result.value === undefined) {\n // validation returned `undefined`\n if (key in input)\n final.value[key] = undefined;\n }\n else {\n // non-undefined value\n final.value[key] = result.value;\n }\n}\nexport const $ZodObject = /*@__PURE__*/ core.$constructor(\"$ZodObject\", (inst, def) => {\n // requires cast because technically $ZodObject doesn't extend\n $ZodType.init(inst, def);\n const _normalized = util.cached(() => {\n const keys = Object.keys(def.shape);\n for (const k of keys) {\n if (!(def.shape[k] instanceof $ZodType)) {\n throw new Error(`Invalid element at key \"${k}\": expected a Zod schema`);\n }\n }\n const okeys = util.optionalKeys(def.shape);\n return {\n shape: def.shape,\n keys,\n keySet: new Set(keys),\n numKeys: keys.length,\n optionalKeys: new Set(okeys),\n };\n });\n util.defineLazy(inst._zod, \"propValues\", () => {\n const shape = def.shape;\n const propValues = {};\n for (const key in shape) {\n const field = shape[key]._zod;\n if (field.values) {\n propValues[key] ?? (propValues[key] = new Set());\n for (const v of field.values)\n propValues[key].add(v);\n }\n }\n return propValues;\n });\n const generateFastpass = (shape) => {\n const doc = new Doc([\"shape\", \"payload\", \"ctx\"]);\n const normalized = _normalized.value;\n const parseStr = (key) => {\n const k = util.esc(key);\n return `shape[${k}]._zod.run({ value: input[${k}], issues: [] }, ctx)`;\n };\n doc.write(`const input = payload.value;`);\n const ids = Object.create(null);\n let counter = 0;\n for (const key of normalized.keys) {\n ids[key] = `key_${counter++}`;\n }\n // A: preserve key order {\n doc.write(`const newResult = {}`);\n for (const key of normalized.keys) {\n if (normalized.optionalKeys.has(key)) {\n const id = ids[key];\n doc.write(`const ${id} = ${parseStr(key)};`);\n const k = util.esc(key);\n doc.write(`\n if (${id}.issues.length) {\n if (input[${k}] === undefined) {\n if (${k} in input) {\n newResult[${k}] = undefined;\n }\n } else {\n payload.issues = payload.issues.concat(\n ${id}.issues.map((iss) => ({\n ...iss,\n path: iss.path ? [${k}, ...iss.path] : [${k}],\n }))\n );\n }\n } else if (${id}.value === undefined) {\n if (${k} in input) newResult[${k}] = undefined;\n } else {\n newResult[${k}] = ${id}.value;\n }\n `);\n }\n else {\n const id = ids[key];\n // const id = ids[key];\n doc.write(`const ${id} = ${parseStr(key)};`);\n doc.write(`\n if (${id}.issues.length) payload.issues = payload.issues.concat(${id}.issues.map(iss => ({\n ...iss,\n path: iss.path ? [${util.esc(key)}, ...iss.path] : [${util.esc(key)}]\n })));`);\n doc.write(`newResult[${util.esc(key)}] = ${id}.value`);\n }\n }\n doc.write(`payload.value = newResult;`);\n doc.write(`return payload;`);\n const fn = doc.compile();\n return (payload, ctx) => fn(shape, payload, ctx);\n };\n let fastpass;\n const isObject = util.isObject;\n const jit = !core.globalConfig.jitless;\n const allowsEval = util.allowsEval;\n const fastEnabled = jit && allowsEval.value; // && !def.catchall;\n const catchall = def.catchall;\n let value;\n inst._zod.parse = (payload, ctx) => {\n value ?? (value = _normalized.value);\n const input = payload.value;\n if (!isObject(input)) {\n payload.issues.push({\n expected: \"object\",\n code: \"invalid_type\",\n input,\n inst,\n });\n return payload;\n }\n const proms = [];\n if (jit && fastEnabled && ctx?.async === false && ctx.jitless !== true) {\n // always synchronous\n if (!fastpass)\n fastpass = generateFastpass(def.shape);\n payload = fastpass(payload, ctx);\n }\n else {\n payload.value = {};\n const shape = value.shape;\n for (const key of value.keys) {\n const el = shape[key];\n // do not add omitted optional keys\n // if (!(key in input)) {\n // if (optionalKeys.has(key)) continue;\n // payload.issues.push({\n // code: \"invalid_type\",\n // path: [key],\n // expected: \"nonoptional\",\n // note: `Missing required key: \"${key}\"`,\n // input,\n // inst,\n // });\n // }\n const r = el._zod.run({ value: input[key], issues: [] }, ctx);\n const isOptional = el._zod.optin === \"optional\" && el._zod.optout === \"optional\";\n if (r instanceof Promise) {\n proms.push(r.then((r) => isOptional ? handleOptionalObjectResult(r, payload, key, input) : handleObjectResult(r, payload, key)));\n }\n else if (isOptional) {\n handleOptionalObjectResult(r, payload, key, input);\n }\n else {\n handleObjectResult(r, payload, key);\n }\n }\n }\n if (!catchall) {\n // return payload;\n return proms.length ? Promise.all(proms).then(() => payload) : payload;\n }\n const unrecognized = [];\n // iterate over input keys\n const keySet = value.keySet;\n const _catchall = catchall._zod;\n const t = _catchall.def.type;\n for (const key of Object.keys(input)) {\n if (keySet.has(key))\n continue;\n if (t === \"never\") {\n unrecognized.push(key);\n continue;\n }\n const r = _catchall.run({ value: input[key], issues: [] }, ctx);\n if (r instanceof Promise) {\n proms.push(r.then((r) => handleObjectResult(r, payload, key)));\n }\n else {\n handleObjectResult(r, payload, key);\n }\n }\n if (unrecognized.length) {\n payload.issues.push({\n code: \"unrecognized_keys\",\n keys: unrecognized,\n input,\n inst,\n });\n }\n if (!proms.length)\n return payload;\n return Promise.all(proms).then(() => {\n return payload;\n });\n };\n});\nfunction handleUnionResults(results, final, inst, ctx) {\n for (const result of results) {\n if (result.issues.length === 0) {\n final.value = result.value;\n return final;\n }\n }\n final.issues.push({\n code: \"invalid_union\",\n input: final.value,\n inst,\n errors: results.map((result) => result.issues.map((iss) => util.finalizeIssue(iss, ctx, core.config()))),\n });\n return final;\n}\nexport const $ZodUnion = /*@__PURE__*/ core.$constructor(\"$ZodUnion\", (inst, def) => {\n $ZodType.init(inst, def);\n util.defineLazy(inst._zod, \"optin\", () => def.options.some((o) => o._zod.optin === \"optional\") ? \"optional\" : undefined);\n util.defineLazy(inst._zod, \"optout\", () => def.options.some((o) => o._zod.optout === \"optional\") ? \"optional\" : undefined);\n util.defineLazy(inst._zod, \"values\", () => {\n if (def.options.every((o) => o._zod.values)) {\n return new Set(def.options.flatMap((option) => Array.from(option._zod.values)));\n }\n return undefined;\n });\n util.defineLazy(inst._zod, \"pattern\", () => {\n if (def.options.every((o) => o._zod.pattern)) {\n const patterns = def.options.map((o) => o._zod.pattern);\n return new RegExp(`^(${patterns.map((p) => util.cleanRegex(p.source)).join(\"|\")})$`);\n }\n return undefined;\n });\n inst._zod.parse = (payload, ctx) => {\n let async = false;\n const results = [];\n for (const option of def.options) {\n const result = option._zod.run({\n value: payload.value,\n issues: [],\n }, ctx);\n if (result instanceof Promise) {\n results.push(result);\n async = true;\n }\n else {\n if (result.issues.length === 0)\n return result;\n results.push(result);\n }\n }\n if (!async)\n return handleUnionResults(results, payload, inst, ctx);\n return Promise.all(results).then((results) => {\n return handleUnionResults(results, payload, inst, ctx);\n });\n };\n});\nexport const $ZodDiscriminatedUnion = \n/*@__PURE__*/\ncore.$constructor(\"$ZodDiscriminatedUnion\", (inst, def) => {\n $ZodUnion.init(inst, def);\n const _super = inst._zod.parse;\n util.defineLazy(inst._zod, \"propValues\", () => {\n const propValues = {};\n for (const option of def.options) {\n const pv = option._zod.propValues;\n if (!pv || Object.keys(pv).length === 0)\n throw new Error(`Invalid discriminated union option at index \"${def.options.indexOf(option)}\"`);\n for (const [k, v] of Object.entries(pv)) {\n if (!propValues[k])\n propValues[k] = new Set();\n for (const val of v) {\n propValues[k].add(val);\n }\n }\n }\n return propValues;\n });\n const disc = util.cached(() => {\n const opts = def.options;\n const map = new Map();\n for (const o of opts) {\n const values = o._zod.propValues?.[def.discriminator];\n if (!values || values.size === 0)\n throw new Error(`Invalid discriminated union option at index \"${def.options.indexOf(o)}\"`);\n for (const v of values) {\n if (map.has(v)) {\n throw new Error(`Duplicate discriminator value \"${String(v)}\"`);\n }\n map.set(v, o);\n }\n }\n return map;\n });\n inst._zod.parse = (payload, ctx) => {\n const input = payload.value;\n if (!util.isObject(input)) {\n payload.issues.push({\n code: \"invalid_type\",\n expected: \"object\",\n input,\n inst,\n });\n return payload;\n }\n const opt = disc.value.get(input?.[def.discriminator]);\n if (opt) {\n return opt._zod.run(payload, ctx);\n }\n if (def.unionFallback) {\n return _super(payload, ctx);\n }\n // no matching discriminator\n payload.issues.push({\n code: \"invalid_union\",\n errors: [],\n note: \"No matching discriminator\",\n input,\n path: [def.discriminator],\n inst,\n });\n return payload;\n };\n});\nexport const $ZodIntersection = /*@__PURE__*/ core.$constructor(\"$ZodIntersection\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.parse = (payload, ctx) => {\n const input = payload.value;\n const left = def.left._zod.run({ value: input, issues: [] }, ctx);\n const right = def.right._zod.run({ value: input, issues: [] }, ctx);\n const async = left instanceof Promise || right instanceof Promise;\n if (async) {\n return Promise.all([left, right]).then(([left, right]) => {\n return handleIntersectionResults(payload, left, right);\n });\n }\n return handleIntersectionResults(payload, left, right);\n };\n});\nfunction mergeValues(a, b) {\n // const aType = parse.t(a);\n // const bType = parse.t(b);\n if (a === b) {\n return { valid: true, data: a };\n }\n if (a instanceof Date && b instanceof Date && +a === +b) {\n return { valid: true, data: a };\n }\n if (util.isPlainObject(a) && util.isPlainObject(b)) {\n const bKeys = Object.keys(b);\n const sharedKeys = Object.keys(a).filter((key) => bKeys.indexOf(key) !== -1);\n const newObj = { ...a, ...b };\n for (const key of sharedKeys) {\n const sharedValue = mergeValues(a[key], b[key]);\n if (!sharedValue.valid) {\n return {\n valid: false,\n mergeErrorPath: [key, ...sharedValue.mergeErrorPath],\n };\n }\n newObj[key] = sharedValue.data;\n }\n return { valid: true, data: newObj };\n }\n if (Array.isArray(a) && Array.isArray(b)) {\n if (a.length !== b.length) {\n return { valid: false, mergeErrorPath: [] };\n }\n const newArray = [];\n for (let index = 0; index < a.length; index++) {\n const itemA = a[index];\n const itemB = b[index];\n const sharedValue = mergeValues(itemA, itemB);\n if (!sharedValue.valid) {\n return {\n valid: false,\n mergeErrorPath: [index, ...sharedValue.mergeErrorPath],\n };\n }\n newArray.push(sharedValue.data);\n }\n return { valid: true, data: newArray };\n }\n return { valid: false, mergeErrorPath: [] };\n}\nfunction handleIntersectionResults(result, left, right) {\n if (left.issues.length) {\n result.issues.push(...left.issues);\n }\n if (right.issues.length) {\n result.issues.push(...right.issues);\n }\n if (util.aborted(result))\n return result;\n const merged = mergeValues(left.value, right.value);\n if (!merged.valid) {\n throw new Error(`Unmergable intersection. Error path: ` + `${JSON.stringify(merged.mergeErrorPath)}`);\n }\n result.value = merged.data;\n return result;\n}\nexport const $ZodTuple = /*@__PURE__*/ core.$constructor(\"$ZodTuple\", (inst, def) => {\n $ZodType.init(inst, def);\n const items = def.items;\n const optStart = items.length - [...items].reverse().findIndex((item) => item._zod.optin !== \"optional\");\n inst._zod.parse = (payload, ctx) => {\n const input = payload.value;\n if (!Array.isArray(input)) {\n payload.issues.push({\n input,\n inst,\n expected: \"tuple\",\n code: \"invalid_type\",\n });\n return payload;\n }\n payload.value = [];\n const proms = [];\n if (!def.rest) {\n const tooBig = input.length > items.length;\n const tooSmall = input.length < optStart - 1;\n if (tooBig || tooSmall) {\n payload.issues.push({\n input,\n inst,\n origin: \"array\",\n ...(tooBig ? { code: \"too_big\", maximum: items.length } : { code: \"too_small\", minimum: items.length }),\n });\n return payload;\n }\n }\n let i = -1;\n for (const item of items) {\n i++;\n if (i >= input.length)\n if (i >= optStart)\n continue;\n const result = item._zod.run({\n value: input[i],\n issues: [],\n }, ctx);\n if (result instanceof Promise) {\n proms.push(result.then((result) => handleTupleResult(result, payload, i)));\n }\n else {\n handleTupleResult(result, payload, i);\n }\n }\n if (def.rest) {\n const rest = input.slice(items.length);\n for (const el of rest) {\n i++;\n const result = def.rest._zod.run({\n value: el,\n issues: [],\n }, ctx);\n if (result instanceof Promise) {\n proms.push(result.then((result) => handleTupleResult(result, payload, i)));\n }\n else {\n handleTupleResult(result, payload, i);\n }\n }\n }\n if (proms.length)\n return Promise.all(proms).then(() => payload);\n return payload;\n };\n});\nfunction handleTupleResult(result, final, index) {\n if (result.issues.length) {\n final.issues.push(...util.prefixIssues(index, result.issues));\n }\n final.value[index] = result.value;\n}\nexport const $ZodRecord = /*@__PURE__*/ core.$constructor(\"$ZodRecord\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.parse = (payload, ctx) => {\n const input = payload.value;\n if (!util.isPlainObject(input)) {\n payload.issues.push({\n expected: \"record\",\n code: \"invalid_type\",\n input,\n inst,\n });\n return payload;\n }\n const proms = [];\n if (def.keyType._zod.values) {\n const values = def.keyType._zod.values;\n payload.value = {};\n for (const key of values) {\n if (typeof key === \"string\" || typeof key === \"number\" || typeof key === \"symbol\") {\n const result = def.valueType._zod.run({ value: input[key], issues: [] }, ctx);\n if (result instanceof Promise) {\n proms.push(result.then((result) => {\n if (result.issues.length) {\n payload.issues.push(...util.prefixIssues(key, result.issues));\n }\n payload.value[key] = result.value;\n }));\n }\n else {\n if (result.issues.length) {\n payload.issues.push(...util.prefixIssues(key, result.issues));\n }\n payload.value[key] = result.value;\n }\n }\n }\n let unrecognized;\n for (const key in input) {\n if (!values.has(key)) {\n unrecognized = unrecognized ?? [];\n unrecognized.push(key);\n }\n }\n if (unrecognized && unrecognized.length > 0) {\n payload.issues.push({\n code: \"unrecognized_keys\",\n input,\n inst,\n keys: unrecognized,\n });\n }\n }\n else {\n payload.value = {};\n for (const key of Reflect.ownKeys(input)) {\n if (key === \"__proto__\")\n continue;\n const keyResult = def.keyType._zod.run({ value: key, issues: [] }, ctx);\n if (keyResult instanceof Promise) {\n throw new Error(\"Async schemas not supported in object keys currently\");\n }\n if (keyResult.issues.length) {\n payload.issues.push({\n origin: \"record\",\n code: \"invalid_key\",\n issues: keyResult.issues.map((iss) => util.finalizeIssue(iss, ctx, core.config())),\n input: key,\n path: [key],\n inst,\n });\n payload.value[keyResult.value] = keyResult.value;\n continue;\n }\n const result = def.valueType._zod.run({ value: input[key], issues: [] }, ctx);\n if (result instanceof Promise) {\n proms.push(result.then((result) => {\n if (result.issues.length) {\n payload.issues.push(...util.prefixIssues(key, result.issues));\n }\n payload.value[keyResult.value] = result.value;\n }));\n }\n else {\n if (result.issues.length) {\n payload.issues.push(...util.prefixIssues(key, result.issues));\n }\n payload.value[keyResult.value] = result.value;\n }\n }\n }\n if (proms.length) {\n return Promise.all(proms).then(() => payload);\n }\n return payload;\n };\n});\nexport const $ZodMap = /*@__PURE__*/ core.$constructor(\"$ZodMap\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.parse = (payload, ctx) => {\n const input = payload.value;\n if (!(input instanceof Map)) {\n payload.issues.push({\n expected: \"map\",\n code: \"invalid_type\",\n input,\n inst,\n });\n return payload;\n }\n const proms = [];\n payload.value = new Map();\n for (const [key, value] of input) {\n const keyResult = def.keyType._zod.run({ value: key, issues: [] }, ctx);\n const valueResult = def.valueType._zod.run({ value: value, issues: [] }, ctx);\n if (keyResult instanceof Promise || valueResult instanceof Promise) {\n proms.push(Promise.all([keyResult, valueResult]).then(([keyResult, valueResult]) => {\n handleMapResult(keyResult, valueResult, payload, key, input, inst, ctx);\n }));\n }\n else {\n handleMapResult(keyResult, valueResult, payload, key, input, inst, ctx);\n }\n }\n if (proms.length)\n return Promise.all(proms).then(() => payload);\n return payload;\n };\n});\nfunction handleMapResult(keyResult, valueResult, final, key, input, inst, ctx) {\n if (keyResult.issues.length) {\n if (util.propertyKeyTypes.has(typeof key)) {\n final.issues.push(...util.prefixIssues(key, keyResult.issues));\n }\n else {\n final.issues.push({\n origin: \"map\",\n code: \"invalid_key\",\n input,\n inst,\n issues: keyResult.issues.map((iss) => util.finalizeIssue(iss, ctx, core.config())),\n });\n }\n }\n if (valueResult.issues.length) {\n if (util.propertyKeyTypes.has(typeof key)) {\n final.issues.push(...util.prefixIssues(key, valueResult.issues));\n }\n else {\n final.issues.push({\n origin: \"map\",\n code: \"invalid_element\",\n input,\n inst,\n key: key,\n issues: valueResult.issues.map((iss) => util.finalizeIssue(iss, ctx, core.config())),\n });\n }\n }\n final.value.set(keyResult.value, valueResult.value);\n}\nexport const $ZodSet = /*@__PURE__*/ core.$constructor(\"$ZodSet\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.parse = (payload, ctx) => {\n const input = payload.value;\n if (!(input instanceof Set)) {\n payload.issues.push({\n input,\n inst,\n expected: \"set\",\n code: \"invalid_type\",\n });\n return payload;\n }\n const proms = [];\n payload.value = new Set();\n for (const item of input) {\n const result = def.valueType._zod.run({ value: item, issues: [] }, ctx);\n if (result instanceof Promise) {\n proms.push(result.then((result) => handleSetResult(result, payload)));\n }\n else\n handleSetResult(result, payload);\n }\n if (proms.length)\n return Promise.all(proms).then(() => payload);\n return payload;\n };\n});\nfunction handleSetResult(result, final) {\n if (result.issues.length) {\n final.issues.push(...result.issues);\n }\n final.value.add(result.value);\n}\nexport const $ZodEnum = /*@__PURE__*/ core.$constructor(\"$ZodEnum\", (inst, def) => {\n $ZodType.init(inst, def);\n const values = util.getEnumValues(def.entries);\n inst._zod.values = new Set(values);\n inst._zod.pattern = new RegExp(`^(${values\n .filter((k) => util.propertyKeyTypes.has(typeof k))\n .map((o) => (typeof o === \"string\" ? util.escapeRegex(o) : o.toString()))\n .join(\"|\")})$`);\n inst._zod.parse = (payload, _ctx) => {\n const input = payload.value;\n if (inst._zod.values.has(input)) {\n return payload;\n }\n payload.issues.push({\n code: \"invalid_value\",\n values,\n input,\n inst,\n });\n return payload;\n };\n});\nexport const $ZodLiteral = /*@__PURE__*/ core.$constructor(\"$ZodLiteral\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.values = new Set(def.values);\n inst._zod.pattern = new RegExp(`^(${def.values\n .map((o) => (typeof o === \"string\" ? util.escapeRegex(o) : o ? o.toString() : String(o)))\n .join(\"|\")})$`);\n inst._zod.parse = (payload, _ctx) => {\n const input = payload.value;\n if (inst._zod.values.has(input)) {\n return payload;\n }\n payload.issues.push({\n code: \"invalid_value\",\n values: def.values,\n input,\n inst,\n });\n return payload;\n };\n});\nexport const $ZodFile = /*@__PURE__*/ core.$constructor(\"$ZodFile\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.parse = (payload, _ctx) => {\n const input = payload.value;\n if (input instanceof File)\n return payload;\n payload.issues.push({\n expected: \"file\",\n code: \"invalid_type\",\n input,\n inst,\n });\n return payload;\n };\n});\nexport const $ZodTransform = /*@__PURE__*/ core.$constructor(\"$ZodTransform\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.parse = (payload, _ctx) => {\n const _out = def.transform(payload.value, payload);\n if (_ctx.async) {\n const output = _out instanceof Promise ? _out : Promise.resolve(_out);\n return output.then((output) => {\n payload.value = output;\n return payload;\n });\n }\n if (_out instanceof Promise) {\n throw new core.$ZodAsyncError();\n }\n payload.value = _out;\n return payload;\n };\n});\nexport const $ZodOptional = /*@__PURE__*/ core.$constructor(\"$ZodOptional\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.optin = \"optional\";\n inst._zod.optout = \"optional\";\n util.defineLazy(inst._zod, \"values\", () => {\n return def.innerType._zod.values ? new Set([...def.innerType._zod.values, undefined]) : undefined;\n });\n util.defineLazy(inst._zod, \"pattern\", () => {\n const pattern = def.innerType._zod.pattern;\n return pattern ? new RegExp(`^(${util.cleanRegex(pattern.source)})?$`) : undefined;\n });\n inst._zod.parse = (payload, ctx) => {\n if (def.innerType._zod.optin === \"optional\") {\n return def.innerType._zod.run(payload, ctx);\n }\n if (payload.value === undefined) {\n return payload;\n }\n return def.innerType._zod.run(payload, ctx);\n };\n});\nexport const $ZodNullable = /*@__PURE__*/ core.$constructor(\"$ZodNullable\", (inst, def) => {\n $ZodType.init(inst, def);\n util.defineLazy(inst._zod, \"optin\", () => def.innerType._zod.optin);\n util.defineLazy(inst._zod, \"optout\", () => def.innerType._zod.optout);\n util.defineLazy(inst._zod, \"pattern\", () => {\n const pattern = def.innerType._zod.pattern;\n return pattern ? new RegExp(`^(${util.cleanRegex(pattern.source)}|null)$`) : undefined;\n });\n util.defineLazy(inst._zod, \"values\", () => {\n return def.innerType._zod.values ? new Set([...def.innerType._zod.values, null]) : undefined;\n });\n inst._zod.parse = (payload, ctx) => {\n if (payload.value === null)\n return payload;\n return def.innerType._zod.run(payload, ctx);\n };\n});\nexport const $ZodDefault = /*@__PURE__*/ core.$constructor(\"$ZodDefault\", (inst, def) => {\n $ZodType.init(inst, def);\n // inst._zod.qin = \"true\";\n inst._zod.optin = \"optional\";\n util.defineLazy(inst._zod, \"values\", () => def.innerType._zod.values);\n inst._zod.parse = (payload, ctx) => {\n if (payload.value === undefined) {\n payload.value = def.defaultValue;\n /**\n * $ZodDefault always returns the default value immediately.\n * It doesn't pass the default value into the validator (\"prefault\"). There's no reason to pass the default value through validation. The validity of the default is enforced by TypeScript statically. Otherwise, it's the responsibility of the user to ensure the default is valid. In the case of pipes with divergent in/out types, you can specify the default on the `in` schema of your ZodPipe to set a \"prefault\" for the pipe. */\n return payload;\n }\n const result = def.innerType._zod.run(payload, ctx);\n if (result instanceof Promise) {\n return result.then((result) => handleDefaultResult(result, def));\n }\n return handleDefaultResult(result, def);\n };\n});\nfunction handleDefaultResult(payload, def) {\n if (payload.value === undefined) {\n payload.value = def.defaultValue;\n }\n return payload;\n}\nexport const $ZodPrefault = /*@__PURE__*/ core.$constructor(\"$ZodPrefault\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.optin = \"optional\";\n util.defineLazy(inst._zod, \"values\", () => def.innerType._zod.values);\n inst._zod.parse = (payload, ctx) => {\n if (payload.value === undefined) {\n payload.value = def.defaultValue;\n }\n return def.innerType._zod.run(payload, ctx);\n };\n});\nexport const $ZodNonOptional = /*@__PURE__*/ core.$constructor(\"$ZodNonOptional\", (inst, def) => {\n $ZodType.init(inst, def);\n util.defineLazy(inst._zod, \"values\", () => {\n const v = def.innerType._zod.values;\n return v ? new Set([...v].filter((x) => x !== undefined)) : undefined;\n });\n inst._zod.parse = (payload, ctx) => {\n const result = def.innerType._zod.run(payload, ctx);\n if (result instanceof Promise) {\n return result.then((result) => handleNonOptionalResult(result, inst));\n }\n return handleNonOptionalResult(result, inst);\n };\n});\nfunction handleNonOptionalResult(payload, inst) {\n if (!payload.issues.length && payload.value === undefined) {\n payload.issues.push({\n code: \"invalid_type\",\n expected: \"nonoptional\",\n input: payload.value,\n inst,\n });\n }\n return payload;\n}\nexport const $ZodSuccess = /*@__PURE__*/ core.$constructor(\"$ZodSuccess\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.parse = (payload, ctx) => {\n const result = def.innerType._zod.run(payload, ctx);\n if (result instanceof Promise) {\n return result.then((result) => {\n payload.value = result.issues.length === 0;\n return payload;\n });\n }\n payload.value = result.issues.length === 0;\n return payload;\n };\n});\nexport const $ZodCatch = /*@__PURE__*/ core.$constructor(\"$ZodCatch\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.optin = \"optional\";\n util.defineLazy(inst._zod, \"optout\", () => def.innerType._zod.optout);\n util.defineLazy(inst._zod, \"values\", () => def.innerType._zod.values);\n inst._zod.parse = (payload, ctx) => {\n const result = def.innerType._zod.run(payload, ctx);\n if (result instanceof Promise) {\n return result.then((result) => {\n payload.value = result.value;\n if (result.issues.length) {\n payload.value = def.catchValue({\n ...payload,\n error: {\n issues: result.issues.map((iss) => util.finalizeIssue(iss, ctx, core.config())),\n },\n input: payload.value,\n });\n payload.issues = [];\n }\n return payload;\n });\n }\n payload.value = result.value;\n if (result.issues.length) {\n payload.value = def.catchValue({\n ...payload,\n error: {\n issues: result.issues.map((iss) => util.finalizeIssue(iss, ctx, core.config())),\n },\n input: payload.value,\n });\n payload.issues = [];\n }\n return payload;\n };\n});\nexport const $ZodNaN = /*@__PURE__*/ core.$constructor(\"$ZodNaN\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.parse = (payload, _ctx) => {\n if (typeof payload.value !== \"number\" || !Number.isNaN(payload.value)) {\n payload.issues.push({\n input: payload.value,\n inst,\n expected: \"nan\",\n code: \"invalid_type\",\n });\n return payload;\n }\n return payload;\n };\n});\nexport const $ZodPipe = /*@__PURE__*/ core.$constructor(\"$ZodPipe\", (inst, def) => {\n $ZodType.init(inst, def);\n util.defineLazy(inst._zod, \"values\", () => def.in._zod.values);\n util.defineLazy(inst._zod, \"optin\", () => def.in._zod.optin);\n util.defineLazy(inst._zod, \"optout\", () => def.out._zod.optout);\n util.defineLazy(inst._zod, \"propValues\", () => def.in._zod.propValues);\n inst._zod.parse = (payload, ctx) => {\n const left = def.in._zod.run(payload, ctx);\n if (left instanceof Promise) {\n return left.then((left) => handlePipeResult(left, def, ctx));\n }\n return handlePipeResult(left, def, ctx);\n };\n});\nfunction handlePipeResult(left, def, ctx) {\n if (util.aborted(left)) {\n return left;\n }\n return def.out._zod.run({ value: left.value, issues: left.issues }, ctx);\n}\nexport const $ZodReadonly = /*@__PURE__*/ core.$constructor(\"$ZodReadonly\", (inst, def) => {\n $ZodType.init(inst, def);\n util.defineLazy(inst._zod, \"propValues\", () => def.innerType._zod.propValues);\n util.defineLazy(inst._zod, \"values\", () => def.innerType._zod.values);\n util.defineLazy(inst._zod, \"optin\", () => def.innerType._zod.optin);\n util.defineLazy(inst._zod, \"optout\", () => def.innerType._zod.optout);\n inst._zod.parse = (payload, ctx) => {\n const result = def.innerType._zod.run(payload, ctx);\n if (result instanceof Promise) {\n return result.then(handleReadonlyResult);\n }\n return handleReadonlyResult(result);\n };\n});\nfunction handleReadonlyResult(payload) {\n payload.value = Object.freeze(payload.value);\n return payload;\n}\nexport const $ZodTemplateLiteral = /*@__PURE__*/ core.$constructor(\"$ZodTemplateLiteral\", (inst, def) => {\n $ZodType.init(inst, def);\n const regexParts = [];\n for (const part of def.parts) {\n if (part instanceof $ZodType) {\n if (!part._zod.pattern) {\n // if (!source)\n throw new Error(`Invalid template literal part, no pattern found: ${[...part._zod.traits].shift()}`);\n }\n const source = part._zod.pattern instanceof RegExp ? part._zod.pattern.source : part._zod.pattern;\n if (!source)\n throw new Error(`Invalid template literal part: ${part._zod.traits}`);\n const start = source.startsWith(\"^\") ? 1 : 0;\n const end = source.endsWith(\"$\") ? source.length - 1 : source.length;\n regexParts.push(source.slice(start, end));\n }\n else if (part === null || util.primitiveTypes.has(typeof part)) {\n regexParts.push(util.escapeRegex(`${part}`));\n }\n else {\n throw new Error(`Invalid template literal part: ${part}`);\n }\n }\n inst._zod.pattern = new RegExp(`^${regexParts.join(\"\")}$`);\n inst._zod.parse = (payload, _ctx) => {\n if (typeof payload.value !== \"string\") {\n payload.issues.push({\n input: payload.value,\n inst,\n expected: \"template_literal\",\n code: \"invalid_type\",\n });\n return payload;\n }\n inst._zod.pattern.lastIndex = 0;\n if (!inst._zod.pattern.test(payload.value)) {\n payload.issues.push({\n input: payload.value,\n inst,\n code: \"invalid_format\",\n format: def.format ?? \"template_literal\",\n pattern: inst._zod.pattern.source,\n });\n return payload;\n }\n return payload;\n };\n});\nexport const $ZodPromise = /*@__PURE__*/ core.$constructor(\"$ZodPromise\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.parse = (payload, ctx) => {\n return Promise.resolve(payload.value).then((inner) => def.innerType._zod.run({ value: inner, issues: [] }, ctx));\n };\n});\nexport const $ZodLazy = /*@__PURE__*/ core.$constructor(\"$ZodLazy\", (inst, def) => {\n $ZodType.init(inst, def);\n util.defineLazy(inst._zod, \"innerType\", () => def.getter());\n util.defineLazy(inst._zod, \"pattern\", () => inst._zod.innerType._zod.pattern);\n util.defineLazy(inst._zod, \"propValues\", () => inst._zod.innerType._zod.propValues);\n util.defineLazy(inst._zod, \"optin\", () => inst._zod.innerType._zod.optin);\n util.defineLazy(inst._zod, \"optout\", () => inst._zod.innerType._zod.optout);\n inst._zod.parse = (payload, ctx) => {\n const inner = inst._zod.innerType;\n return inner._zod.run(payload, ctx);\n };\n});\nexport const $ZodCustom = /*@__PURE__*/ core.$constructor(\"$ZodCustom\", (inst, def) => {\n checks.$ZodCheck.init(inst, def);\n $ZodType.init(inst, def);\n inst._zod.parse = (payload, _) => {\n return payload;\n };\n inst._zod.check = (payload) => {\n const input = payload.value;\n const r = def.fn(input);\n if (r instanceof Promise) {\n return r.then((r) => handleRefineResult(r, payload, input, inst));\n }\n handleRefineResult(r, payload, input, inst);\n return;\n };\n});\nfunction handleRefineResult(result, payload, input, inst) {\n if (!result) {\n const _iss = {\n code: \"custom\",\n input,\n inst, // incorporates params.error into issue reporting\n path: [...(inst._zod.def.path ?? [])], // incorporates params.error into issue reporting\n continue: !inst._zod.def.abort,\n // params: inst._zod.def.params,\n };\n if (inst._zod.def.params)\n _iss.params = inst._zod.def.params;\n payload.issues.push(util.issue(_iss));\n }\n}\n","export { default as ar } from \"./ar.js\";\nexport { default as az } from \"./az.js\";\nexport { default as be } from \"./be.js\";\nexport { default as ca } from \"./ca.js\";\nexport { default as cs } from \"./cs.js\";\nexport { default as de } from \"./de.js\";\nexport { default as en } from \"./en.js\";\nexport { default as eo } from \"./eo.js\";\nexport { default as es } from \"./es.js\";\nexport { default as fa } from \"./fa.js\";\nexport { default as fi } from \"./fi.js\";\nexport { default as fr } from \"./fr.js\";\nexport { default as frCA } from \"./fr-CA.js\";\nexport { default as he } from \"./he.js\";\nexport { default as hu } from \"./hu.js\";\nexport { default as id } from \"./id.js\";\nexport { default as it } from \"./it.js\";\nexport { default as ja } from \"./ja.js\";\nexport { default as kh } from \"./kh.js\";\nexport { default as ko } from \"./ko.js\";\nexport { default as mk } from \"./mk.js\";\nexport { default as ms } from \"./ms.js\";\nexport { default as nl } from \"./nl.js\";\nexport { default as no } from \"./no.js\";\nexport { default as ota } from \"./ota.js\";\nexport { default as ps } from \"./ps.js\";\nexport { default as pl } from \"./pl.js\";\nexport { default as pt } from \"./pt.js\";\nexport { default as ru } from \"./ru.js\";\nexport { default as sl } from \"./sl.js\";\nexport { default as sv } from \"./sv.js\";\nexport { default as ta } from \"./ta.js\";\nexport { default as th } from \"./th.js\";\nexport { default as tr } from \"./tr.js\";\nexport { default as ua } from \"./ua.js\";\nexport { default as ur } from \"./ur.js\";\nexport { default as vi } from \"./vi.js\";\nexport { default as zhCN } from \"./zh-CN.js\";\nexport { default as zhTW } from \"./zh-TW.js\";\n","import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"حرف\", verb: \"أن يحوي\" },\n file: { unit: \"بايت\", verb: \"أن يحوي\" },\n array: { unit: \"عنصر\", verb: \"أن يحوي\" },\n set: { unit: \"عنصر\", verb: \"أن يحوي\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const parsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"number\": {\n return Number.isNaN(data) ? \"NaN\" : \"number\";\n }\n case \"object\": {\n if (Array.isArray(data)) {\n return \"array\";\n }\n if (data === null) {\n return \"null\";\n }\n if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {\n return data.constructor.name;\n }\n }\n }\n return t;\n };\n const Nouns = {\n regex: \"مدخل\",\n email: \"بريد إلكتروني\",\n url: \"رابط\",\n emoji: \"إيموجي\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"تاريخ ووقت بمعيار ISO\",\n date: \"تاريخ بمعيار ISO\",\n time: \"وقت بمعيار ISO\",\n duration: \"مدة بمعيار ISO\",\n ipv4: \"عنوان IPv4\",\n ipv6: \"عنوان IPv6\",\n cidrv4: \"مدى عناوين بصيغة IPv4\",\n cidrv6: \"مدى عناوين بصيغة IPv6\",\n base64: \"نَص بترميز base64-encoded\",\n base64url: \"نَص بترميز base64url-encoded\",\n json_string: \"نَص على هيئة JSON\",\n e164: \"رقم هاتف بمعيار E.164\",\n jwt: \"JWT\",\n template_literal: \"مدخل\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\":\n return `مدخلات غير مقبولة: يفترض إدخال ${issue.expected}، ولكن تم إدخال ${parsedType(issue.input)}`;\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `مدخلات غير مقبولة: يفترض إدخال ${util.stringifyPrimitive(issue.values[0])}`;\n return `اختيار غير مقبول: يتوقع انتقاء أحد هذه الخيارات: ${util.joinValues(issue.values, \"|\")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing)\n return ` أكبر من اللازم: يفترض أن تكون ${issue.origin ?? \"القيمة\"} ${adj} ${issue.maximum.toString()} ${sizing.unit ?? \"عنصر\"}`;\n return `أكبر من اللازم: يفترض أن تكون ${issue.origin ?? \"القيمة\"} ${adj} ${issue.maximum.toString()}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `أصغر من اللازم: يفترض لـ ${issue.origin} أن يكون ${adj} ${issue.minimum.toString()} ${sizing.unit}`;\n }\n return `أصغر من اللازم: يفترض لـ ${issue.origin} أن يكون ${adj} ${issue.minimum.toString()}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\")\n return `نَص غير مقبول: يجب أن يبدأ بـ \"${issue.prefix}\"`;\n if (_issue.format === \"ends_with\")\n return `نَص غير مقبول: يجب أن ينتهي بـ \"${_issue.suffix}\"`;\n if (_issue.format === \"includes\")\n return `نَص غير مقبول: يجب أن يتضمَّن \"${_issue.includes}\"`;\n if (_issue.format === \"regex\")\n return `نَص غير مقبول: يجب أن يطابق النمط ${_issue.pattern}`;\n return `${Nouns[_issue.format] ?? issue.format} غير مقبول`;\n }\n case \"not_multiple_of\":\n return `رقم غير مقبول: يجب أن يكون من مضاعفات ${issue.divisor}`;\n case \"unrecognized_keys\":\n return `معرف${issue.keys.length > 1 ? \"ات\" : \"\"} غريب${issue.keys.length > 1 ? \"ة\" : \"\"}: ${util.joinValues(issue.keys, \"، \")}`;\n case \"invalid_key\":\n return `معرف غير مقبول في ${issue.origin}`;\n case \"invalid_union\":\n return \"مدخل غير مقبول\";\n case \"invalid_element\":\n return `مدخل غير مقبول في ${issue.origin}`;\n default:\n return \"مدخل غير مقبول\";\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n","import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"simvol\", verb: \"olmalıdır\" },\n file: { unit: \"bayt\", verb: \"olmalıdır\" },\n array: { unit: \"element\", verb: \"olmalıdır\" },\n set: { unit: \"element\", verb: \"olmalıdır\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const parsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"number\": {\n return Number.isNaN(data) ? \"NaN\" : \"number\";\n }\n case \"object\": {\n if (Array.isArray(data)) {\n return \"array\";\n }\n if (data === null) {\n return \"null\";\n }\n if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {\n return data.constructor.name;\n }\n }\n }\n return t;\n };\n const Nouns = {\n regex: \"input\",\n email: \"email address\",\n url: \"URL\",\n emoji: \"emoji\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"ISO datetime\",\n date: \"ISO date\",\n time: \"ISO time\",\n duration: \"ISO duration\",\n ipv4: \"IPv4 address\",\n ipv6: \"IPv6 address\",\n cidrv4: \"IPv4 range\",\n cidrv6: \"IPv6 range\",\n base64: \"base64-encoded string\",\n base64url: \"base64url-encoded string\",\n json_string: \"JSON string\",\n e164: \"E.164 number\",\n jwt: \"JWT\",\n template_literal: \"input\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\":\n return `Yanlış dəyər: gözlənilən ${issue.expected}, daxil olan ${parsedType(issue.input)}`;\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `Yanlış dəyər: gözlənilən ${util.stringifyPrimitive(issue.values[0])}`;\n return `Yanlış seçim: aşağıdakılardan biri olmalıdır: ${util.joinValues(issue.values, \"|\")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing)\n return `Çox böyük: gözlənilən ${issue.origin ?? \"dəyər\"} ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"element\"}`;\n return `Çox böyük: gözlənilən ${issue.origin ?? \"dəyər\"} ${adj}${issue.maximum.toString()}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing)\n return `Çox kiçik: gözlənilən ${issue.origin} ${adj}${issue.minimum.toString()} ${sizing.unit}`;\n return `Çox kiçik: gözlənilən ${issue.origin} ${adj}${issue.minimum.toString()}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\")\n return `Yanlış mətn: \"${_issue.prefix}\" ilə başlamalıdır`;\n if (_issue.format === \"ends_with\")\n return `Yanlış mətn: \"${_issue.suffix}\" ilə bitməlidir`;\n if (_issue.format === \"includes\")\n return `Yanlış mətn: \"${_issue.includes}\" daxil olmalıdır`;\n if (_issue.format === \"regex\")\n return `Yanlış mətn: ${_issue.pattern} şablonuna uyğun olmalıdır`;\n return `Yanlış ${Nouns[_issue.format] ?? issue.format}`;\n }\n case \"not_multiple_of\":\n return `Yanlış ədəd: ${issue.divisor} ilə bölünə bilən olmalıdır`;\n case \"unrecognized_keys\":\n return `Tanınmayan açar${issue.keys.length > 1 ? \"lar\" : \"\"}: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `${issue.origin} daxilində yanlış açar`;\n case \"invalid_union\":\n return \"Yanlış dəyər\";\n case \"invalid_element\":\n return `${issue.origin} daxilində yanlış dəyər`;\n default:\n return `Yanlış dəyər`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n","import * as util from \"../core/util.js\";\nfunction getBelarusianPlural(count, one, few, many) {\n const absCount = Math.abs(count);\n const lastDigit = absCount % 10;\n const lastTwoDigits = absCount % 100;\n if (lastTwoDigits >= 11 && lastTwoDigits <= 19) {\n return many;\n }\n if (lastDigit === 1) {\n return one;\n }\n if (lastDigit >= 2 && lastDigit <= 4) {\n return few;\n }\n return many;\n}\nconst error = () => {\n const Sizable = {\n string: {\n unit: {\n one: \"сімвал\",\n few: \"сімвалы\",\n many: \"сімвалаў\",\n },\n verb: \"мець\",\n },\n array: {\n unit: {\n one: \"элемент\",\n few: \"элементы\",\n many: \"элементаў\",\n },\n verb: \"мець\",\n },\n set: {\n unit: {\n one: \"элемент\",\n few: \"элементы\",\n many: \"элементаў\",\n },\n verb: \"мець\",\n },\n file: {\n unit: {\n one: \"байт\",\n few: \"байты\",\n many: \"байтаў\",\n },\n verb: \"мець\",\n },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const parsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"number\": {\n return Number.isNaN(data) ? \"NaN\" : \"лік\";\n }\n case \"object\": {\n if (Array.isArray(data)) {\n return \"масіў\";\n }\n if (data === null) {\n return \"null\";\n }\n if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {\n return data.constructor.name;\n }\n }\n }\n return t;\n };\n const Nouns = {\n regex: \"увод\",\n email: \"email адрас\",\n url: \"URL\",\n emoji: \"эмодзі\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"ISO дата і час\",\n date: \"ISO дата\",\n time: \"ISO час\",\n duration: \"ISO працягласць\",\n ipv4: \"IPv4 адрас\",\n ipv6: \"IPv6 адрас\",\n cidrv4: \"IPv4 дыяпазон\",\n cidrv6: \"IPv6 дыяпазон\",\n base64: \"радок у фармаце base64\",\n base64url: \"радок у фармаце base64url\",\n json_string: \"JSON радок\",\n e164: \"нумар E.164\",\n jwt: \"JWT\",\n template_literal: \"увод\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\":\n return `Няправільны ўвод: чакаўся ${issue.expected}, атрымана ${parsedType(issue.input)}`;\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `Няправільны ўвод: чакалася ${util.stringifyPrimitive(issue.values[0])}`;\n return `Няправільны варыянт: чакаўся адзін з ${util.joinValues(issue.values, \"|\")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n const maxValue = Number(issue.maximum);\n const unit = getBelarusianPlural(maxValue, sizing.unit.one, sizing.unit.few, sizing.unit.many);\n return `Занадта вялікі: чакалася, што ${issue.origin ?? \"значэнне\"} павінна ${sizing.verb} ${adj}${issue.maximum.toString()} ${unit}`;\n }\n return `Занадта вялікі: чакалася, што ${issue.origin ?? \"значэнне\"} павінна быць ${adj}${issue.maximum.toString()}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n const minValue = Number(issue.minimum);\n const unit = getBelarusianPlural(minValue, sizing.unit.one, sizing.unit.few, sizing.unit.many);\n return `Занадта малы: чакалася, што ${issue.origin} павінна ${sizing.verb} ${adj}${issue.minimum.toString()} ${unit}`;\n }\n return `Занадта малы: чакалася, што ${issue.origin} павінна быць ${adj}${issue.minimum.toString()}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\")\n return `Няправільны радок: павінен пачынацца з \"${_issue.prefix}\"`;\n if (_issue.format === \"ends_with\")\n return `Няправільны радок: павінен заканчвацца на \"${_issue.suffix}\"`;\n if (_issue.format === \"includes\")\n return `Няправільны радок: павінен змяшчаць \"${_issue.includes}\"`;\n if (_issue.format === \"regex\")\n return `Няправільны радок: павінен адпавядаць шаблону ${_issue.pattern}`;\n return `Няправільны ${Nouns[_issue.format] ?? issue.format}`;\n }\n case \"not_multiple_of\":\n return `Няправільны лік: павінен быць кратным ${issue.divisor}`;\n case \"unrecognized_keys\":\n return `Нераспазнаны ${issue.keys.length > 1 ? \"ключы\" : \"ключ\"}: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `Няправільны ключ у ${issue.origin}`;\n case \"invalid_union\":\n return \"Няправільны ўвод\";\n case \"invalid_element\":\n return `Няправільнае значэнне ў ${issue.origin}`;\n default:\n return `Няправільны ўвод`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n","import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"caràcters\", verb: \"contenir\" },\n file: { unit: \"bytes\", verb: \"contenir\" },\n array: { unit: \"elements\", verb: \"contenir\" },\n set: { unit: \"elements\", verb: \"contenir\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const parsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"number\": {\n return Number.isNaN(data) ? \"NaN\" : \"number\";\n }\n case \"object\": {\n if (Array.isArray(data)) {\n return \"array\";\n }\n if (data === null) {\n return \"null\";\n }\n if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {\n return data.constructor.name;\n }\n }\n }\n return t;\n };\n const Nouns = {\n regex: \"entrada\",\n email: \"adreça electrònica\",\n url: \"URL\",\n emoji: \"emoji\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"data i hora ISO\",\n date: \"data ISO\",\n time: \"hora ISO\",\n duration: \"durada ISO\",\n ipv4: \"adreça IPv4\",\n ipv6: \"adreça IPv6\",\n cidrv4: \"rang IPv4\",\n cidrv6: \"rang IPv6\",\n base64: \"cadena codificada en base64\",\n base64url: \"cadena codificada en base64url\",\n json_string: \"cadena JSON\",\n e164: \"número E.164\",\n jwt: \"JWT\",\n template_literal: \"entrada\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\":\n return `Tipus invàlid: s'esperava ${issue.expected}, s'ha rebut ${parsedType(issue.input)}`;\n // return `Tipus invàlid: s'esperava ${issue.expected}, s'ha rebut ${util.getParsedType(issue.input)}`;\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `Valor invàlid: s'esperava ${util.stringifyPrimitive(issue.values[0])}`;\n return `Opció invàlida: s'esperava una de ${util.joinValues(issue.values, \" o \")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"com a màxim\" : \"menys de\";\n const sizing = getSizing(issue.origin);\n if (sizing)\n return `Massa gran: s'esperava que ${issue.origin ?? \"el valor\"} contingués ${adj} ${issue.maximum.toString()} ${sizing.unit ?? \"elements\"}`;\n return `Massa gran: s'esperava que ${issue.origin ?? \"el valor\"} fos ${adj} ${issue.maximum.toString()}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \"com a mínim\" : \"més de\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `Massa petit: s'esperava que ${issue.origin} contingués ${adj} ${issue.minimum.toString()} ${sizing.unit}`;\n }\n return `Massa petit: s'esperava que ${issue.origin} fos ${adj} ${issue.minimum.toString()}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\") {\n return `Format invàlid: ha de començar amb \"${_issue.prefix}\"`;\n }\n if (_issue.format === \"ends_with\")\n return `Format invàlid: ha d'acabar amb \"${_issue.suffix}\"`;\n if (_issue.format === \"includes\")\n return `Format invàlid: ha d'incloure \"${_issue.includes}\"`;\n if (_issue.format === \"regex\")\n return `Format invàlid: ha de coincidir amb el patró ${_issue.pattern}`;\n return `Format invàlid per a ${Nouns[_issue.format] ?? issue.format}`;\n }\n case \"not_multiple_of\":\n return `Número invàlid: ha de ser múltiple de ${issue.divisor}`;\n case \"unrecognized_keys\":\n return `Clau${issue.keys.length > 1 ? \"s\" : \"\"} no reconeguda${issue.keys.length > 1 ? \"s\" : \"\"}: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `Clau invàlida a ${issue.origin}`;\n case \"invalid_union\":\n return \"Entrada invàlida\"; // Could also be \"Tipus d'unió invàlid\" but \"Entrada invàlida\" is more general\n case \"invalid_element\":\n return `Element invàlid a ${issue.origin}`;\n default:\n return `Entrada invàlida`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n","import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"znaků\", verb: \"mít\" },\n file: { unit: \"bajtů\", verb: \"mít\" },\n array: { unit: \"prvků\", verb: \"mít\" },\n set: { unit: \"prvků\", verb: \"mít\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const parsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"number\": {\n return Number.isNaN(data) ? \"NaN\" : \"číslo\";\n }\n case \"string\": {\n return \"řetězec\";\n }\n case \"boolean\": {\n return \"boolean\";\n }\n case \"bigint\": {\n return \"bigint\";\n }\n case \"function\": {\n return \"funkce\";\n }\n case \"symbol\": {\n return \"symbol\";\n }\n case \"undefined\": {\n return \"undefined\";\n }\n case \"object\": {\n if (Array.isArray(data)) {\n return \"pole\";\n }\n if (data === null) {\n return \"null\";\n }\n if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {\n return data.constructor.name;\n }\n }\n }\n return t;\n };\n const Nouns = {\n regex: \"regulární výraz\",\n email: \"e-mailová adresa\",\n url: \"URL\",\n emoji: \"emoji\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"datum a čas ve formátu ISO\",\n date: \"datum ve formátu ISO\",\n time: \"čas ve formátu ISO\",\n duration: \"doba trvání ISO\",\n ipv4: \"IPv4 adresa\",\n ipv6: \"IPv6 adresa\",\n cidrv4: \"rozsah IPv4\",\n cidrv6: \"rozsah IPv6\",\n base64: \"řetězec zakódovaný ve formátu base64\",\n base64url: \"řetězec zakódovaný ve formátu base64url\",\n json_string: \"řetězec ve formátu JSON\",\n e164: \"číslo E.164\",\n jwt: \"JWT\",\n template_literal: \"vstup\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\":\n return `Neplatný vstup: očekáváno ${issue.expected}, obdrženo ${parsedType(issue.input)}`;\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `Neplatný vstup: očekáváno ${util.stringifyPrimitive(issue.values[0])}`;\n return `Neplatná možnost: očekávána jedna z hodnot ${util.joinValues(issue.values, \"|\")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `Hodnota je příliš velká: ${issue.origin ?? \"hodnota\"} musí mít ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"prvků\"}`;\n }\n return `Hodnota je příliš velká: ${issue.origin ?? \"hodnota\"} musí být ${adj}${issue.maximum.toString()}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `Hodnota je příliš malá: ${issue.origin ?? \"hodnota\"} musí mít ${adj}${issue.minimum.toString()} ${sizing.unit ?? \"prvků\"}`;\n }\n return `Hodnota je příliš malá: ${issue.origin ?? \"hodnota\"} musí být ${adj}${issue.minimum.toString()}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\")\n return `Neplatný řetězec: musí začínat na \"${_issue.prefix}\"`;\n if (_issue.format === \"ends_with\")\n return `Neplatný řetězec: musí končit na \"${_issue.suffix}\"`;\n if (_issue.format === \"includes\")\n return `Neplatný řetězec: musí obsahovat \"${_issue.includes}\"`;\n if (_issue.format === \"regex\")\n return `Neplatný řetězec: musí odpovídat vzoru ${_issue.pattern}`;\n return `Neplatný formát ${Nouns[_issue.format] ?? issue.format}`;\n }\n case \"not_multiple_of\":\n return `Neplatné číslo: musí být násobkem ${issue.divisor}`;\n case \"unrecognized_keys\":\n return `Neznámé klíče: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `Neplatný klíč v ${issue.origin}`;\n case \"invalid_union\":\n return \"Neplatný vstup\";\n case \"invalid_element\":\n return `Neplatná hodnota v ${issue.origin}`;\n default:\n return `Neplatný vstup`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n","import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"Zeichen\", verb: \"zu haben\" },\n file: { unit: \"Bytes\", verb: \"zu haben\" },\n array: { unit: \"Elemente\", verb: \"zu haben\" },\n set: { unit: \"Elemente\", verb: \"zu haben\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const parsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"number\": {\n return Number.isNaN(data) ? \"NaN\" : \"Zahl\";\n }\n case \"object\": {\n if (Array.isArray(data)) {\n return \"Array\";\n }\n if (data === null) {\n return \"null\";\n }\n if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {\n return data.constructor.name;\n }\n }\n }\n return t;\n };\n const Nouns = {\n regex: \"Eingabe\",\n email: \"E-Mail-Adresse\",\n url: \"URL\",\n emoji: \"Emoji\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"ISO-Datum und -Uhrzeit\",\n date: \"ISO-Datum\",\n time: \"ISO-Uhrzeit\",\n duration: \"ISO-Dauer\",\n ipv4: \"IPv4-Adresse\",\n ipv6: \"IPv6-Adresse\",\n cidrv4: \"IPv4-Bereich\",\n cidrv6: \"IPv6-Bereich\",\n base64: \"Base64-codierter String\",\n base64url: \"Base64-URL-codierter String\",\n json_string: \"JSON-String\",\n e164: \"E.164-Nummer\",\n jwt: \"JWT\",\n template_literal: \"Eingabe\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\":\n return `Ungültige Eingabe: erwartet ${issue.expected}, erhalten ${parsedType(issue.input)}`;\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `Ungültige Eingabe: erwartet ${util.stringifyPrimitive(issue.values[0])}`;\n return `Ungültige Option: erwartet eine von ${util.joinValues(issue.values, \"|\")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing)\n return `Zu groß: erwartet, dass ${issue.origin ?? \"Wert\"} ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"Elemente\"} hat`;\n return `Zu groß: erwartet, dass ${issue.origin ?? \"Wert\"} ${adj}${issue.maximum.toString()} ist`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `Zu klein: erwartet, dass ${issue.origin} ${adj}${issue.minimum.toString()} ${sizing.unit} hat`;\n }\n return `Zu klein: erwartet, dass ${issue.origin} ${adj}${issue.minimum.toString()} ist`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\")\n return `Ungültiger String: muss mit \"${_issue.prefix}\" beginnen`;\n if (_issue.format === \"ends_with\")\n return `Ungültiger String: muss mit \"${_issue.suffix}\" enden`;\n if (_issue.format === \"includes\")\n return `Ungültiger String: muss \"${_issue.includes}\" enthalten`;\n if (_issue.format === \"regex\")\n return `Ungültiger String: muss dem Muster ${_issue.pattern} entsprechen`;\n return `Ungültig: ${Nouns[_issue.format] ?? issue.format}`;\n }\n case \"not_multiple_of\":\n return `Ungültige Zahl: muss ein Vielfaches von ${issue.divisor} sein`;\n case \"unrecognized_keys\":\n return `${issue.keys.length > 1 ? \"Unbekannte Schlüssel\" : \"Unbekannter Schlüssel\"}: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `Ungültiger Schlüssel in ${issue.origin}`;\n case \"invalid_union\":\n return \"Ungültige Eingabe\";\n case \"invalid_element\":\n return `Ungültiger Wert in ${issue.origin}`;\n default:\n return `Ungültige Eingabe`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n","import * as util from \"../core/util.js\";\nexport const parsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"number\": {\n return Number.isNaN(data) ? \"NaN\" : \"number\";\n }\n case \"object\": {\n if (Array.isArray(data)) {\n return \"array\";\n }\n if (data === null) {\n return \"null\";\n }\n if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {\n return data.constructor.name;\n }\n }\n }\n return t;\n};\nconst error = () => {\n const Sizable = {\n string: { unit: \"characters\", verb: \"to have\" },\n file: { unit: \"bytes\", verb: \"to have\" },\n array: { unit: \"items\", verb: \"to have\" },\n set: { unit: \"items\", verb: \"to have\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const Nouns = {\n regex: \"input\",\n email: \"email address\",\n url: \"URL\",\n emoji: \"emoji\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"ISO datetime\",\n date: \"ISO date\",\n time: \"ISO time\",\n duration: \"ISO duration\",\n ipv4: \"IPv4 address\",\n ipv6: \"IPv6 address\",\n cidrv4: \"IPv4 range\",\n cidrv6: \"IPv6 range\",\n base64: \"base64-encoded string\",\n base64url: \"base64url-encoded string\",\n json_string: \"JSON string\",\n e164: \"E.164 number\",\n jwt: \"JWT\",\n template_literal: \"input\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\":\n return `Invalid input: expected ${issue.expected}, received ${parsedType(issue.input)}`;\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `Invalid input: expected ${util.stringifyPrimitive(issue.values[0])}`;\n return `Invalid option: expected one of ${util.joinValues(issue.values, \"|\")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing)\n return `Too big: expected ${issue.origin ?? \"value\"} to have ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"elements\"}`;\n return `Too big: expected ${issue.origin ?? \"value\"} to be ${adj}${issue.maximum.toString()}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `Too small: expected ${issue.origin} to have ${adj}${issue.minimum.toString()} ${sizing.unit}`;\n }\n return `Too small: expected ${issue.origin} to be ${adj}${issue.minimum.toString()}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\") {\n return `Invalid string: must start with \"${_issue.prefix}\"`;\n }\n if (_issue.format === \"ends_with\")\n return `Invalid string: must end with \"${_issue.suffix}\"`;\n if (_issue.format === \"includes\")\n return `Invalid string: must include \"${_issue.includes}\"`;\n if (_issue.format === \"regex\")\n return `Invalid string: must match pattern ${_issue.pattern}`;\n return `Invalid ${Nouns[_issue.format] ?? issue.format}`;\n }\n case \"not_multiple_of\":\n return `Invalid number: must be a multiple of ${issue.divisor}`;\n case \"unrecognized_keys\":\n return `Unrecognized key${issue.keys.length > 1 ? \"s\" : \"\"}: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `Invalid key in ${issue.origin}`;\n case \"invalid_union\":\n return \"Invalid input\";\n case \"invalid_element\":\n return `Invalid value in ${issue.origin}`;\n default:\n return `Invalid input`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n","import * as util from \"../core/util.js\";\nexport const parsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"number\": {\n return Number.isNaN(data) ? \"NaN\" : \"nombro\";\n }\n case \"object\": {\n if (Array.isArray(data)) {\n return \"tabelo\";\n }\n if (data === null) {\n return \"senvalora\";\n }\n if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {\n return data.constructor.name;\n }\n }\n }\n return t;\n};\nconst error = () => {\n const Sizable = {\n string: { unit: \"karaktrojn\", verb: \"havi\" },\n file: { unit: \"bajtojn\", verb: \"havi\" },\n array: { unit: \"elementojn\", verb: \"havi\" },\n set: { unit: \"elementojn\", verb: \"havi\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const Nouns = {\n regex: \"enigo\",\n email: \"retadreso\",\n url: \"URL\",\n emoji: \"emoĝio\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"ISO-datotempo\",\n date: \"ISO-dato\",\n time: \"ISO-tempo\",\n duration: \"ISO-daŭro\",\n ipv4: \"IPv4-adreso\",\n ipv6: \"IPv6-adreso\",\n cidrv4: \"IPv4-rango\",\n cidrv6: \"IPv6-rango\",\n base64: \"64-ume kodita karaktraro\",\n base64url: \"URL-64-ume kodita karaktraro\",\n json_string: \"JSON-karaktraro\",\n e164: \"E.164-nombro\",\n jwt: \"JWT\",\n template_literal: \"enigo\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\":\n return `Nevalida enigo: atendiĝis ${issue.expected}, riceviĝis ${parsedType(issue.input)}`;\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `Nevalida enigo: atendiĝis ${util.stringifyPrimitive(issue.values[0])}`;\n return `Nevalida opcio: atendiĝis unu el ${util.joinValues(issue.values, \"|\")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing)\n return `Tro granda: atendiĝis ke ${issue.origin ?? \"valoro\"} havu ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"elementojn\"}`;\n return `Tro granda: atendiĝis ke ${issue.origin ?? \"valoro\"} havu ${adj}${issue.maximum.toString()}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `Tro malgranda: atendiĝis ke ${issue.origin} havu ${adj}${issue.minimum.toString()} ${sizing.unit}`;\n }\n return `Tro malgranda: atendiĝis ke ${issue.origin} estu ${adj}${issue.minimum.toString()}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\")\n return `Nevalida karaktraro: devas komenciĝi per \"${_issue.prefix}\"`;\n if (_issue.format === \"ends_with\")\n return `Nevalida karaktraro: devas finiĝi per \"${_issue.suffix}\"`;\n if (_issue.format === \"includes\")\n return `Nevalida karaktraro: devas inkluzivi \"${_issue.includes}\"`;\n if (_issue.format === \"regex\")\n return `Nevalida karaktraro: devas kongrui kun la modelo ${_issue.pattern}`;\n return `Nevalida ${Nouns[_issue.format] ?? issue.format}`;\n }\n case \"not_multiple_of\":\n return `Nevalida nombro: devas esti oblo de ${issue.divisor}`;\n case \"unrecognized_keys\":\n return `Nekonata${issue.keys.length > 1 ? \"j\" : \"\"} ŝlosilo${issue.keys.length > 1 ? \"j\" : \"\"}: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `Nevalida ŝlosilo en ${issue.origin}`;\n case \"invalid_union\":\n return \"Nevalida enigo\";\n case \"invalid_element\":\n return `Nevalida valoro en ${issue.origin}`;\n default:\n return `Nevalida enigo`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n","import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"caracteres\", verb: \"tener\" },\n file: { unit: \"bytes\", verb: \"tener\" },\n array: { unit: \"elementos\", verb: \"tener\" },\n set: { unit: \"elementos\", verb: \"tener\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const parsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"number\": {\n return Number.isNaN(data) ? \"NaN\" : \"número\";\n }\n case \"object\": {\n if (Array.isArray(data)) {\n return \"arreglo\";\n }\n if (data === null) {\n return \"nulo\";\n }\n if (Object.getPrototypeOf(data) !== Object.prototype) {\n return data.constructor.name;\n }\n }\n }\n return t;\n };\n const Nouns = {\n regex: \"entrada\",\n email: \"dirección de correo electrónico\",\n url: \"URL\",\n emoji: \"emoji\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"fecha y hora ISO\",\n date: \"fecha ISO\",\n time: \"hora ISO\",\n duration: \"duración ISO\",\n ipv4: \"dirección IPv4\",\n ipv6: \"dirección IPv6\",\n cidrv4: \"rango IPv4\",\n cidrv6: \"rango IPv6\",\n base64: \"cadena codificada en base64\",\n base64url: \"URL codificada en base64\",\n json_string: \"cadena JSON\",\n e164: \"número E.164\",\n jwt: \"JWT\",\n template_literal: \"entrada\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\":\n return `Entrada inválida: se esperaba ${issue.expected}, recibido ${parsedType(issue.input)}`;\n // return `Entrada inválida: se esperaba ${issue.expected}, recibido ${util.getParsedType(issue.input)}`;\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `Entrada inválida: se esperaba ${util.stringifyPrimitive(issue.values[0])}`;\n return `Opción inválida: se esperaba una de ${util.joinValues(issue.values, \"|\")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing)\n return `Demasiado grande: se esperaba que ${issue.origin ?? \"valor\"} tuviera ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"elementos\"}`;\n return `Demasiado grande: se esperaba que ${issue.origin ?? \"valor\"} fuera ${adj}${issue.maximum.toString()}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `Demasiado pequeño: se esperaba que ${issue.origin} tuviera ${adj}${issue.minimum.toString()} ${sizing.unit}`;\n }\n return `Demasiado pequeño: se esperaba que ${issue.origin} fuera ${adj}${issue.minimum.toString()}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\")\n return `Cadena inválida: debe comenzar con \"${_issue.prefix}\"`;\n if (_issue.format === \"ends_with\")\n return `Cadena inválida: debe terminar en \"${_issue.suffix}\"`;\n if (_issue.format === \"includes\")\n return `Cadena inválida: debe incluir \"${_issue.includes}\"`;\n if (_issue.format === \"regex\")\n return `Cadena inválida: debe coincidir con el patrón ${_issue.pattern}`;\n return `Inválido ${Nouns[_issue.format] ?? issue.format}`;\n }\n case \"not_multiple_of\":\n return `Número inválido: debe ser múltiplo de ${issue.divisor}`;\n case \"unrecognized_keys\":\n return `Llave${issue.keys.length > 1 ? \"s\" : \"\"} desconocida${issue.keys.length > 1 ? \"s\" : \"\"}: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `Llave inválida en ${issue.origin}`;\n case \"invalid_union\":\n return \"Entrada inválida\";\n case \"invalid_element\":\n return `Valor inválido en ${issue.origin}`;\n default:\n return `Entrada inválida`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n","import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"کاراکتر\", verb: \"داشته باشد\" },\n file: { unit: \"بایت\", verb: \"داشته باشد\" },\n array: { unit: \"آیتم\", verb: \"داشته باشد\" },\n set: { unit: \"آیتم\", verb: \"داشته باشد\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const parsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"number\": {\n return Number.isNaN(data) ? \"NaN\" : \"عدد\";\n }\n case \"object\": {\n if (Array.isArray(data)) {\n return \"آرایه\";\n }\n if (data === null) {\n return \"null\";\n }\n if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {\n return data.constructor.name;\n }\n }\n }\n return t;\n };\n const Nouns = {\n regex: \"ورودی\",\n email: \"آدرس ایمیل\",\n url: \"URL\",\n emoji: \"ایموجی\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"تاریخ و زمان ایزو\",\n date: \"تاریخ ایزو\",\n time: \"زمان ایزو\",\n duration: \"مدت زمان ایزو\",\n ipv4: \"IPv4 آدرس\",\n ipv6: \"IPv6 آدرس\",\n cidrv4: \"IPv4 دامنه\",\n cidrv6: \"IPv6 دامنه\",\n base64: \"base64-encoded رشته\",\n base64url: \"base64url-encoded رشته\",\n json_string: \"JSON رشته\",\n e164: \"E.164 عدد\",\n jwt: \"JWT\",\n template_literal: \"ورودی\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\":\n return `ورودی نامعتبر: می‌بایست ${issue.expected} می‌بود، ${parsedType(issue.input)} دریافت شد`;\n case \"invalid_value\":\n if (issue.values.length === 1) {\n return `ورودی نامعتبر: می‌بایست ${util.stringifyPrimitive(issue.values[0])} می‌بود`;\n }\n return `گزینه نامعتبر: می‌بایست یکی از ${util.joinValues(issue.values, \"|\")} می‌بود`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `خیلی بزرگ: ${issue.origin ?? \"مقدار\"} باید ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"عنصر\"} باشد`;\n }\n return `خیلی بزرگ: ${issue.origin ?? \"مقدار\"} باید ${adj}${issue.maximum.toString()} باشد`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `خیلی کوچک: ${issue.origin} باید ${adj}${issue.minimum.toString()} ${sizing.unit} باشد`;\n }\n return `خیلی کوچک: ${issue.origin} باید ${adj}${issue.minimum.toString()} باشد`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\") {\n return `رشته نامعتبر: باید با \"${_issue.prefix}\" شروع شود`;\n }\n if (_issue.format === \"ends_with\") {\n return `رشته نامعتبر: باید با \"${_issue.suffix}\" تمام شود`;\n }\n if (_issue.format === \"includes\") {\n return `رشته نامعتبر: باید شامل \"${_issue.includes}\" باشد`;\n }\n if (_issue.format === \"regex\") {\n return `رشته نامعتبر: باید با الگوی ${_issue.pattern} مطابقت داشته باشد`;\n }\n return `${Nouns[_issue.format] ?? issue.format} نامعتبر`;\n }\n case \"not_multiple_of\":\n return `عدد نامعتبر: باید مضرب ${issue.divisor} باشد`;\n case \"unrecognized_keys\":\n return `کلید${issue.keys.length > 1 ? \"های\" : \"\"} ناشناس: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `کلید ناشناس در ${issue.origin}`;\n case \"invalid_union\":\n return `ورودی نامعتبر`;\n case \"invalid_element\":\n return `مقدار نامعتبر در ${issue.origin}`;\n default:\n return `ورودی نامعتبر`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n","import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"merkkiä\", subject: \"merkkijonon\" },\n file: { unit: \"tavua\", subject: \"tiedoston\" },\n array: { unit: \"alkiota\", subject: \"listan\" },\n set: { unit: \"alkiota\", subject: \"joukon\" },\n number: { unit: \"\", subject: \"luvun\" },\n bigint: { unit: \"\", subject: \"suuren kokonaisluvun\" },\n int: { unit: \"\", subject: \"kokonaisluvun\" },\n date: { unit: \"\", subject: \"päivämäärän\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const parsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"number\": {\n return Number.isNaN(data) ? \"NaN\" : \"number\";\n }\n case \"object\": {\n if (Array.isArray(data)) {\n return \"array\";\n }\n if (data === null) {\n return \"null\";\n }\n if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {\n return data.constructor.name;\n }\n }\n }\n return t;\n };\n const Nouns = {\n regex: \"säännöllinen lauseke\",\n email: \"sähköpostiosoite\",\n url: \"URL-osoite\",\n emoji: \"emoji\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"ISO-aikaleima\",\n date: \"ISO-päivämäärä\",\n time: \"ISO-aika\",\n duration: \"ISO-kesto\",\n ipv4: \"IPv4-osoite\",\n ipv6: \"IPv6-osoite\",\n cidrv4: \"IPv4-alue\",\n cidrv6: \"IPv6-alue\",\n base64: \"base64-koodattu merkkijono\",\n base64url: \"base64url-koodattu merkkijono\",\n json_string: \"JSON-merkkijono\",\n e164: \"E.164-luku\",\n jwt: \"JWT\",\n template_literal: \"templaattimerkkijono\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\":\n return `Virheellinen tyyppi: odotettiin ${issue.expected}, oli ${parsedType(issue.input)}`;\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `Virheellinen syöte: täytyy olla ${util.stringifyPrimitive(issue.values[0])}`;\n return `Virheellinen valinta: täytyy olla yksi seuraavista: ${util.joinValues(issue.values, \"|\")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `Liian suuri: ${sizing.subject} täytyy olla ${adj}${issue.maximum.toString()} ${sizing.unit}`.trim();\n }\n return `Liian suuri: arvon täytyy olla ${adj}${issue.maximum.toString()}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `Liian pieni: ${sizing.subject} täytyy olla ${adj}${issue.minimum.toString()} ${sizing.unit}`.trim();\n }\n return `Liian pieni: arvon täytyy olla ${adj}${issue.minimum.toString()}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\")\n return `Virheellinen syöte: täytyy alkaa \"${_issue.prefix}\"`;\n if (_issue.format === \"ends_with\")\n return `Virheellinen syöte: täytyy loppua \"${_issue.suffix}\"`;\n if (_issue.format === \"includes\")\n return `Virheellinen syöte: täytyy sisältää \"${_issue.includes}\"`;\n if (_issue.format === \"regex\") {\n return `Virheellinen syöte: täytyy vastata säännöllistä lauseketta ${_issue.pattern}`;\n }\n return `Virheellinen ${Nouns[_issue.format] ?? issue.format}`;\n }\n case \"not_multiple_of\":\n return `Virheellinen luku: täytyy olla luvun ${issue.divisor} monikerta`;\n case \"unrecognized_keys\":\n return `${issue.keys.length > 1 ? \"Tuntemattomat avaimet\" : \"Tuntematon avain\"}: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return \"Virheellinen avain tietueessa\";\n case \"invalid_union\":\n return \"Virheellinen unioni\";\n case \"invalid_element\":\n return \"Virheellinen arvo joukossa\";\n default:\n return `Virheellinen syöte`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n","import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"caractères\", verb: \"avoir\" },\n file: { unit: \"octets\", verb: \"avoir\" },\n array: { unit: \"éléments\", verb: \"avoir\" },\n set: { unit: \"éléments\", verb: \"avoir\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const parsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"number\": {\n return Number.isNaN(data) ? \"NaN\" : \"nombre\";\n }\n case \"object\": {\n if (Array.isArray(data)) {\n return \"tableau\";\n }\n if (data === null) {\n return \"null\";\n }\n if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {\n return data.constructor.name;\n }\n }\n }\n return t;\n };\n const Nouns = {\n regex: \"entrée\",\n email: \"adresse e-mail\",\n url: \"URL\",\n emoji: \"emoji\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"date et heure ISO\",\n date: \"date ISO\",\n time: \"heure ISO\",\n duration: \"durée ISO\",\n ipv4: \"adresse IPv4\",\n ipv6: \"adresse IPv6\",\n cidrv4: \"plage IPv4\",\n cidrv6: \"plage IPv6\",\n base64: \"chaîne encodée en base64\",\n base64url: \"chaîne encodée en base64url\",\n json_string: \"chaîne JSON\",\n e164: \"numéro E.164\",\n jwt: \"JWT\",\n template_literal: \"entrée\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\":\n return `Entrée invalide : ${issue.expected} attendu, ${parsedType(issue.input)} reçu`;\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `Entrée invalide : ${util.stringifyPrimitive(issue.values[0])} attendu`;\n return `Option invalide : une valeur parmi ${util.joinValues(issue.values, \"|\")} attendue`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing)\n return `Trop grand : ${issue.origin ?? \"valeur\"} doit ${sizing.verb} ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"élément(s)\"}`;\n return `Trop grand : ${issue.origin ?? \"valeur\"} doit être ${adj}${issue.maximum.toString()}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `Trop petit : ${issue.origin} doit ${sizing.verb} ${adj}${issue.minimum.toString()} ${sizing.unit}`;\n }\n return `Trop petit : ${issue.origin} doit être ${adj}${issue.minimum.toString()}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\")\n return `Chaîne invalide : doit commencer par \"${_issue.prefix}\"`;\n if (_issue.format === \"ends_with\")\n return `Chaîne invalide : doit se terminer par \"${_issue.suffix}\"`;\n if (_issue.format === \"includes\")\n return `Chaîne invalide : doit inclure \"${_issue.includes}\"`;\n if (_issue.format === \"regex\")\n return `Chaîne invalide : doit correspondre au modèle ${_issue.pattern}`;\n return `${Nouns[_issue.format] ?? issue.format} invalide`;\n }\n case \"not_multiple_of\":\n return `Nombre invalide : doit être un multiple de ${issue.divisor}`;\n case \"unrecognized_keys\":\n return `Clé${issue.keys.length > 1 ? \"s\" : \"\"} non reconnue${issue.keys.length > 1 ? \"s\" : \"\"} : ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `Clé invalide dans ${issue.origin}`;\n case \"invalid_union\":\n return \"Entrée invalide\";\n case \"invalid_element\":\n return `Valeur invalide dans ${issue.origin}`;\n default:\n return `Entrée invalide`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n","import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"caractères\", verb: \"avoir\" },\n file: { unit: \"octets\", verb: \"avoir\" },\n array: { unit: \"éléments\", verb: \"avoir\" },\n set: { unit: \"éléments\", verb: \"avoir\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const parsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"number\": {\n return Number.isNaN(data) ? \"NaN\" : \"number\";\n }\n case \"object\": {\n if (Array.isArray(data)) {\n return \"array\";\n }\n if (data === null) {\n return \"null\";\n }\n if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {\n return data.constructor.name;\n }\n }\n }\n return t;\n };\n const Nouns = {\n regex: \"entrée\",\n email: \"adresse courriel\",\n url: \"URL\",\n emoji: \"emoji\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"date-heure ISO\",\n date: \"date ISO\",\n time: \"heure ISO\",\n duration: \"durée ISO\",\n ipv4: \"adresse IPv4\",\n ipv6: \"adresse IPv6\",\n cidrv4: \"plage IPv4\",\n cidrv6: \"plage IPv6\",\n base64: \"chaîne encodée en base64\",\n base64url: \"chaîne encodée en base64url\",\n json_string: \"chaîne JSON\",\n e164: \"numéro E.164\",\n jwt: \"JWT\",\n template_literal: \"entrée\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\":\n return `Entrée invalide : attendu ${issue.expected}, reçu ${parsedType(issue.input)}`;\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `Entrée invalide : attendu ${util.stringifyPrimitive(issue.values[0])}`;\n return `Option invalide : attendu l'une des valeurs suivantes ${util.joinValues(issue.values, \"|\")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"≤\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing)\n return `Trop grand : attendu que ${issue.origin ?? \"la valeur\"} ait ${adj}${issue.maximum.toString()} ${sizing.unit}`;\n return `Trop grand : attendu que ${issue.origin ?? \"la valeur\"} soit ${adj}${issue.maximum.toString()}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \"≥\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `Trop petit : attendu que ${issue.origin} ait ${adj}${issue.minimum.toString()} ${sizing.unit}`;\n }\n return `Trop petit : attendu que ${issue.origin} soit ${adj}${issue.minimum.toString()}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\") {\n return `Chaîne invalide : doit commencer par \"${_issue.prefix}\"`;\n }\n if (_issue.format === \"ends_with\")\n return `Chaîne invalide : doit se terminer par \"${_issue.suffix}\"`;\n if (_issue.format === \"includes\")\n return `Chaîne invalide : doit inclure \"${_issue.includes}\"`;\n if (_issue.format === \"regex\")\n return `Chaîne invalide : doit correspondre au motif ${_issue.pattern}`;\n return `${Nouns[_issue.format] ?? issue.format} invalide`;\n }\n case \"not_multiple_of\":\n return `Nombre invalide : doit être un multiple de ${issue.divisor}`;\n case \"unrecognized_keys\":\n return `Clé${issue.keys.length > 1 ? \"s\" : \"\"} non reconnue${issue.keys.length > 1 ? \"s\" : \"\"} : ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `Clé invalide dans ${issue.origin}`;\n case \"invalid_union\":\n return \"Entrée invalide\";\n case \"invalid_element\":\n return `Valeur invalide dans ${issue.origin}`;\n default:\n return `Entrée invalide`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n","import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"אותיות\", verb: \"לכלול\" },\n file: { unit: \"בייטים\", verb: \"לכלול\" },\n array: { unit: \"פריטים\", verb: \"לכלול\" },\n set: { unit: \"פריטים\", verb: \"לכלול\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const parsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"number\": {\n return Number.isNaN(data) ? \"NaN\" : \"number\";\n }\n case \"object\": {\n if (Array.isArray(data)) {\n return \"array\";\n }\n if (data === null) {\n return \"null\";\n }\n if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {\n return data.constructor.name;\n }\n }\n }\n return t;\n };\n const Nouns = {\n regex: \"קלט\",\n email: \"כתובת אימייל\",\n url: \"כתובת רשת\",\n emoji: \"אימוג'י\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"תאריך וזמן ISO\",\n date: \"תאריך ISO\",\n time: \"זמן ISO\",\n duration: \"משך זמן ISO\",\n ipv4: \"כתובת IPv4\",\n ipv6: \"כתובת IPv6\",\n cidrv4: \"טווח IPv4\",\n cidrv6: \"טווח IPv6\",\n base64: \"מחרוזת בבסיס 64\",\n base64url: \"מחרוזת בבסיס 64 לכתובות רשת\",\n json_string: \"מחרוזת JSON\",\n e164: \"מספר E.164\",\n jwt: \"JWT\",\n template_literal: \"קלט\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\":\n return `קלט לא תקין: צריך ${issue.expected}, התקבל ${parsedType(issue.input)}`;\n // return `Invalid input: expected ${issue.expected}, received ${util.getParsedType(issue.input)}`;\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `קלט לא תקין: צריך ${util.stringifyPrimitive(issue.values[0])}`;\n return `קלט לא תקין: צריך אחת מהאפשרויות ${util.joinValues(issue.values, \"|\")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing)\n return `גדול מדי: ${issue.origin ?? \"value\"} צריך להיות ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"elements\"}`;\n return `גדול מדי: ${issue.origin ?? \"value\"} צריך להיות ${adj}${issue.maximum.toString()}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `קטן מדי: ${issue.origin} צריך להיות ${adj}${issue.minimum.toString()} ${sizing.unit}`;\n }\n return `קטן מדי: ${issue.origin} צריך להיות ${adj}${issue.minimum.toString()}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\")\n return `מחרוזת לא תקינה: חייבת להתחיל ב\"${_issue.prefix}\"`;\n if (_issue.format === \"ends_with\")\n return `מחרוזת לא תקינה: חייבת להסתיים ב \"${_issue.suffix}\"`;\n if (_issue.format === \"includes\")\n return `מחרוזת לא תקינה: חייבת לכלול \"${_issue.includes}\"`;\n if (_issue.format === \"regex\")\n return `מחרוזת לא תקינה: חייבת להתאים לתבנית ${_issue.pattern}`;\n return `${Nouns[_issue.format] ?? issue.format} לא תקין`;\n }\n case \"not_multiple_of\":\n return `מספר לא תקין: חייב להיות מכפלה של ${issue.divisor}`;\n case \"unrecognized_keys\":\n return `מפתח${issue.keys.length > 1 ? \"ות\" : \"\"} לא מזוה${issue.keys.length > 1 ? \"ים\" : \"ה\"}: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `מפתח לא תקין ב${issue.origin}`;\n case \"invalid_union\":\n return \"קלט לא תקין\";\n case \"invalid_element\":\n return `ערך לא תקין ב${issue.origin}`;\n default:\n return `קלט לא תקין`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n","import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"karakter\", verb: \"legyen\" },\n file: { unit: \"byte\", verb: \"legyen\" },\n array: { unit: \"elem\", verb: \"legyen\" },\n set: { unit: \"elem\", verb: \"legyen\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const parsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"number\": {\n return Number.isNaN(data) ? \"NaN\" : \"szám\";\n }\n case \"object\": {\n if (Array.isArray(data)) {\n return \"tömb\";\n }\n if (data === null) {\n return \"null\";\n }\n if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {\n return data.constructor.name;\n }\n }\n }\n return t;\n };\n const Nouns = {\n regex: \"bemenet\",\n email: \"email cím\",\n url: \"URL\",\n emoji: \"emoji\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"ISO időbélyeg\",\n date: \"ISO dátum\",\n time: \"ISO idő\",\n duration: \"ISO időintervallum\",\n ipv4: \"IPv4 cím\",\n ipv6: \"IPv6 cím\",\n cidrv4: \"IPv4 tartomány\",\n cidrv6: \"IPv6 tartomány\",\n base64: \"base64-kódolt string\",\n base64url: \"base64url-kódolt string\",\n json_string: \"JSON string\",\n e164: \"E.164 szám\",\n jwt: \"JWT\",\n template_literal: \"bemenet\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\":\n return `Érvénytelen bemenet: a várt érték ${issue.expected}, a kapott érték ${parsedType(issue.input)}`;\n // return `Invalid input: expected ${issue.expected}, received ${util.getParsedType(issue.input)}`;\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `Érvénytelen bemenet: a várt érték ${util.stringifyPrimitive(issue.values[0])}`;\n return `Érvénytelen opció: valamelyik érték várt ${util.joinValues(issue.values, \"|\")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing)\n return `Túl nagy: ${issue.origin ?? \"érték\"} mérete túl nagy ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"elem\"}`;\n return `Túl nagy: a bemeneti érték ${issue.origin ?? \"érték\"} túl nagy: ${adj}${issue.maximum.toString()}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `Túl kicsi: a bemeneti érték ${issue.origin} mérete túl kicsi ${adj}${issue.minimum.toString()} ${sizing.unit}`;\n }\n return `Túl kicsi: a bemeneti érték ${issue.origin} túl kicsi ${adj}${issue.minimum.toString()}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\")\n return `Érvénytelen string: \"${_issue.prefix}\" értékkel kell kezdődnie`;\n if (_issue.format === \"ends_with\")\n return `Érvénytelen string: \"${_issue.suffix}\" értékkel kell végződnie`;\n if (_issue.format === \"includes\")\n return `Érvénytelen string: \"${_issue.includes}\" értéket kell tartalmaznia`;\n if (_issue.format === \"regex\")\n return `Érvénytelen string: ${_issue.pattern} mintának kell megfelelnie`;\n return `Érvénytelen ${Nouns[_issue.format] ?? issue.format}`;\n }\n case \"not_multiple_of\":\n return `Érvénytelen szám: ${issue.divisor} többszörösének kell lennie`;\n case \"unrecognized_keys\":\n return `Ismeretlen kulcs${issue.keys.length > 1 ? \"s\" : \"\"}: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `Érvénytelen kulcs ${issue.origin}`;\n case \"invalid_union\":\n return \"Érvénytelen bemenet\";\n case \"invalid_element\":\n return `Érvénytelen érték: ${issue.origin}`;\n default:\n return `Érvénytelen bemenet`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n","import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"karakter\", verb: \"memiliki\" },\n file: { unit: \"byte\", verb: \"memiliki\" },\n array: { unit: \"item\", verb: \"memiliki\" },\n set: { unit: \"item\", verb: \"memiliki\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const parsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"number\": {\n return Number.isNaN(data) ? \"NaN\" : \"number\";\n }\n case \"object\": {\n if (Array.isArray(data)) {\n return \"array\";\n }\n if (data === null) {\n return \"null\";\n }\n if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {\n return data.constructor.name;\n }\n }\n }\n return t;\n };\n const Nouns = {\n regex: \"input\",\n email: \"alamat email\",\n url: \"URL\",\n emoji: \"emoji\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"tanggal dan waktu format ISO\",\n date: \"tanggal format ISO\",\n time: \"jam format ISO\",\n duration: \"durasi format ISO\",\n ipv4: \"alamat IPv4\",\n ipv6: \"alamat IPv6\",\n cidrv4: \"rentang alamat IPv4\",\n cidrv6: \"rentang alamat IPv6\",\n base64: \"string dengan enkode base64\",\n base64url: \"string dengan enkode base64url\",\n json_string: \"string JSON\",\n e164: \"angka E.164\",\n jwt: \"JWT\",\n template_literal: \"input\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\":\n return `Input tidak valid: diharapkan ${issue.expected}, diterima ${parsedType(issue.input)}`;\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `Input tidak valid: diharapkan ${util.stringifyPrimitive(issue.values[0])}`;\n return `Pilihan tidak valid: diharapkan salah satu dari ${util.joinValues(issue.values, \"|\")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing)\n return `Terlalu besar: diharapkan ${issue.origin ?? \"value\"} memiliki ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"elemen\"}`;\n return `Terlalu besar: diharapkan ${issue.origin ?? \"value\"} menjadi ${adj}${issue.maximum.toString()}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `Terlalu kecil: diharapkan ${issue.origin} memiliki ${adj}${issue.minimum.toString()} ${sizing.unit}`;\n }\n return `Terlalu kecil: diharapkan ${issue.origin} menjadi ${adj}${issue.minimum.toString()}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\")\n return `String tidak valid: harus dimulai dengan \"${_issue.prefix}\"`;\n if (_issue.format === \"ends_with\")\n return `String tidak valid: harus berakhir dengan \"${_issue.suffix}\"`;\n if (_issue.format === \"includes\")\n return `String tidak valid: harus menyertakan \"${_issue.includes}\"`;\n if (_issue.format === \"regex\")\n return `String tidak valid: harus sesuai pola ${_issue.pattern}`;\n return `${Nouns[_issue.format] ?? issue.format} tidak valid`;\n }\n case \"not_multiple_of\":\n return `Angka tidak valid: harus kelipatan dari ${issue.divisor}`;\n case \"unrecognized_keys\":\n return `Kunci tidak dikenali ${issue.keys.length > 1 ? \"s\" : \"\"}: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `Kunci tidak valid di ${issue.origin}`;\n case \"invalid_union\":\n return \"Input tidak valid\";\n case \"invalid_element\":\n return `Nilai tidak valid di ${issue.origin}`;\n default:\n return `Input tidak valid`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n","import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"caratteri\", verb: \"avere\" },\n file: { unit: \"byte\", verb: \"avere\" },\n array: { unit: \"elementi\", verb: \"avere\" },\n set: { unit: \"elementi\", verb: \"avere\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const parsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"number\": {\n return Number.isNaN(data) ? \"NaN\" : \"numero\";\n }\n case \"object\": {\n if (Array.isArray(data)) {\n return \"vettore\";\n }\n if (data === null) {\n return \"null\";\n }\n if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {\n return data.constructor.name;\n }\n }\n }\n return t;\n };\n const Nouns = {\n regex: \"input\",\n email: \"indirizzo email\",\n url: \"URL\",\n emoji: \"emoji\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"data e ora ISO\",\n date: \"data ISO\",\n time: \"ora ISO\",\n duration: \"durata ISO\",\n ipv4: \"indirizzo IPv4\",\n ipv6: \"indirizzo IPv6\",\n cidrv4: \"intervallo IPv4\",\n cidrv6: \"intervallo IPv6\",\n base64: \"stringa codificata in base64\",\n base64url: \"URL codificata in base64\",\n json_string: \"stringa JSON\",\n e164: \"numero E.164\",\n jwt: \"JWT\",\n template_literal: \"input\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\":\n return `Input non valido: atteso ${issue.expected}, ricevuto ${parsedType(issue.input)}`;\n // return `Input non valido: atteso ${issue.expected}, ricevuto ${util.getParsedType(issue.input)}`;\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `Input non valido: atteso ${util.stringifyPrimitive(issue.values[0])}`;\n return `Opzione non valida: atteso uno tra ${util.joinValues(issue.values, \"|\")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing)\n return `Troppo grande: ${issue.origin ?? \"valore\"} deve avere ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"elementi\"}`;\n return `Troppo grande: ${issue.origin ?? \"valore\"} deve essere ${adj}${issue.maximum.toString()}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `Troppo piccolo: ${issue.origin} deve avere ${adj}${issue.minimum.toString()} ${sizing.unit}`;\n }\n return `Troppo piccolo: ${issue.origin} deve essere ${adj}${issue.minimum.toString()}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\")\n return `Stringa non valida: deve iniziare con \"${_issue.prefix}\"`;\n if (_issue.format === \"ends_with\")\n return `Stringa non valida: deve terminare con \"${_issue.suffix}\"`;\n if (_issue.format === \"includes\")\n return `Stringa non valida: deve includere \"${_issue.includes}\"`;\n if (_issue.format === \"regex\")\n return `Stringa non valida: deve corrispondere al pattern ${_issue.pattern}`;\n return `Invalid ${Nouns[_issue.format] ?? issue.format}`;\n }\n case \"not_multiple_of\":\n return `Numero non valido: deve essere un multiplo di ${issue.divisor}`;\n case \"unrecognized_keys\":\n return `Chiav${issue.keys.length > 1 ? \"i\" : \"e\"} non riconosciut${issue.keys.length > 1 ? \"e\" : \"a\"}: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `Chiave non valida in ${issue.origin}`;\n case \"invalid_union\":\n return \"Input non valido\";\n case \"invalid_element\":\n return `Valore non valido in ${issue.origin}`;\n default:\n return `Input non valido`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n","import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"文字\", verb: \"である\" },\n file: { unit: \"バイト\", verb: \"である\" },\n array: { unit: \"要素\", verb: \"である\" },\n set: { unit: \"要素\", verb: \"である\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const parsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"number\": {\n return Number.isNaN(data) ? \"NaN\" : \"数値\";\n }\n case \"object\": {\n if (Array.isArray(data)) {\n return \"配列\";\n }\n if (data === null) {\n return \"null\";\n }\n if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {\n return data.constructor.name;\n }\n }\n }\n return t;\n };\n const Nouns = {\n regex: \"入力値\",\n email: \"メールアドレス\",\n url: \"URL\",\n emoji: \"絵文字\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"ISO日時\",\n date: \"ISO日付\",\n time: \"ISO時刻\",\n duration: \"ISO期間\",\n ipv4: \"IPv4アドレス\",\n ipv6: \"IPv6アドレス\",\n cidrv4: \"IPv4範囲\",\n cidrv6: \"IPv6範囲\",\n base64: \"base64エンコード文字列\",\n base64url: \"base64urlエンコード文字列\",\n json_string: \"JSON文字列\",\n e164: \"E.164番号\",\n jwt: \"JWT\",\n template_literal: \"入力値\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\":\n return `無効な入力: ${issue.expected}が期待されましたが、${parsedType(issue.input)}が入力されました`;\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `無効な入力: ${util.stringifyPrimitive(issue.values[0])}が期待されました`;\n return `無効な選択: ${util.joinValues(issue.values, \"、\")}のいずれかである必要があります`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"以下である\" : \"より小さい\";\n const sizing = getSizing(issue.origin);\n if (sizing)\n return `大きすぎる値: ${issue.origin ?? \"値\"}は${issue.maximum.toString()}${sizing.unit ?? \"要素\"}${adj}必要があります`;\n return `大きすぎる値: ${issue.origin ?? \"値\"}は${issue.maximum.toString()}${adj}必要があります`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \"以上である\" : \"より大きい\";\n const sizing = getSizing(issue.origin);\n if (sizing)\n return `小さすぎる値: ${issue.origin}は${issue.minimum.toString()}${sizing.unit}${adj}必要があります`;\n return `小さすぎる値: ${issue.origin}は${issue.minimum.toString()}${adj}必要があります`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\")\n return `無効な文字列: \"${_issue.prefix}\"で始まる必要があります`;\n if (_issue.format === \"ends_with\")\n return `無効な文字列: \"${_issue.suffix}\"で終わる必要があります`;\n if (_issue.format === \"includes\")\n return `無効な文字列: \"${_issue.includes}\"を含む必要があります`;\n if (_issue.format === \"regex\")\n return `無効な文字列: パターン${_issue.pattern}に一致する必要があります`;\n return `無効な${Nouns[_issue.format] ?? issue.format}`;\n }\n case \"not_multiple_of\":\n return `無効な数値: ${issue.divisor}の倍数である必要があります`;\n case \"unrecognized_keys\":\n return `認識されていないキー${issue.keys.length > 1 ? \"群\" : \"\"}: ${util.joinValues(issue.keys, \"、\")}`;\n case \"invalid_key\":\n return `${issue.origin}内の無効なキー`;\n case \"invalid_union\":\n return \"無効な入力\";\n case \"invalid_element\":\n return `${issue.origin}内の無効な値`;\n default:\n return `無効な入力`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n","import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"តួអក្សរ\", verb: \"គួរមាន\" },\n file: { unit: \"បៃ\", verb: \"គួរមាន\" },\n array: { unit: \"ធាតុ\", verb: \"គួរមាន\" },\n set: { unit: \"ធាតុ\", verb: \"គួរមាន\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const parsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"number\": {\n return Number.isNaN(data) ? \"មិនមែនជាលេខ (NaN)\" : \"លេខ\";\n }\n case \"object\": {\n if (Array.isArray(data)) {\n return \"អារេ (Array)\";\n }\n if (data === null) {\n return \"គ្មានតម្លៃ (null)\";\n }\n if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {\n return data.constructor.name;\n }\n }\n }\n return t;\n };\n const Nouns = {\n regex: \"ទិន្នន័យបញ្ចូល\",\n email: \"អាសយដ្ឋានអ៊ីមែល\",\n url: \"URL\",\n emoji: \"សញ្ញាអារម្មណ៍\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"កាលបរិច្ឆេទ និងម៉ោង ISO\",\n date: \"កាលបរិច្ឆេទ ISO\",\n time: \"ម៉ោង ISO\",\n duration: \"រយៈពេល ISO\",\n ipv4: \"អាសយដ្ឋាន IPv4\",\n ipv6: \"អាសយដ្ឋាន IPv6\",\n cidrv4: \"ដែនអាសយដ្ឋាន IPv4\",\n cidrv6: \"ដែនអាសយដ្ឋាន IPv6\",\n base64: \"ខ្សែអក្សរអ៊ិកូដ base64\",\n base64url: \"ខ្សែអក្សរអ៊ិកូដ base64url\",\n json_string: \"ខ្សែអក្សរ JSON\",\n e164: \"លេខ E.164\",\n jwt: \"JWT\",\n template_literal: \"ទិន្នន័យបញ្ចូល\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\":\n return `ទិន្នន័យបញ្ចូលមិនត្រឹមត្រូវ៖ ត្រូវការ ${issue.expected} ប៉ុន្តែទទួលបាន ${parsedType(issue.input)}`;\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `ទិន្នន័យបញ្ចូលមិនត្រឹមត្រូវ៖ ត្រូវការ ${util.stringifyPrimitive(issue.values[0])}`;\n return `ជម្រើសមិនត្រឹមត្រូវ៖ ត្រូវជាមួយក្នុងចំណោម ${util.joinValues(issue.values, \"|\")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing)\n return `ធំពេក៖ ត្រូវការ ${issue.origin ?? \"តម្លៃ\"} ${adj} ${issue.maximum.toString()} ${sizing.unit ?? \"ធាតុ\"}`;\n return `ធំពេក៖ ត្រូវការ ${issue.origin ?? \"តម្លៃ\"} ${adj} ${issue.maximum.toString()}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `តូចពេក៖ ត្រូវការ ${issue.origin} ${adj} ${issue.minimum.toString()} ${sizing.unit}`;\n }\n return `តូចពេក៖ ត្រូវការ ${issue.origin} ${adj} ${issue.minimum.toString()}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\") {\n return `ខ្សែអក្សរមិនត្រឹមត្រូវ៖ ត្រូវចាប់ផ្តើមដោយ \"${_issue.prefix}\"`;\n }\n if (_issue.format === \"ends_with\")\n return `ខ្សែអក្សរមិនត្រឹមត្រូវ៖ ត្រូវបញ្ចប់ដោយ \"${_issue.suffix}\"`;\n if (_issue.format === \"includes\")\n return `ខ្សែអក្សរមិនត្រឹមត្រូវ៖ ត្រូវមាន \"${_issue.includes}\"`;\n if (_issue.format === \"regex\")\n return `ខ្សែអក្សរមិនត្រឹមត្រូវ៖ ត្រូវតែផ្គូផ្គងនឹងទម្រង់ដែលបានកំណត់ ${_issue.pattern}`;\n return `មិនត្រឹមត្រូវ៖ ${Nouns[_issue.format] ?? issue.format}`;\n }\n case \"not_multiple_of\":\n return `លេខមិនត្រឹមត្រូវ៖ ត្រូវតែជាពហុគុណនៃ ${issue.divisor}`;\n case \"unrecognized_keys\":\n return `រកឃើញសោមិនស្គាល់៖ ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `សោមិនត្រឹមត្រូវនៅក្នុង ${issue.origin}`;\n case \"invalid_union\":\n return `ទិន្នន័យមិនត្រឹមត្រូវ`;\n case \"invalid_element\":\n return `ទិន្នន័យមិនត្រឹមត្រូវនៅក្នុង ${issue.origin}`;\n default:\n return `ទិន្នន័យមិនត្រឹមត្រូវ`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n","import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"문자\", verb: \"to have\" },\n file: { unit: \"바이트\", verb: \"to have\" },\n array: { unit: \"개\", verb: \"to have\" },\n set: { unit: \"개\", verb: \"to have\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const parsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"number\": {\n return Number.isNaN(data) ? \"NaN\" : \"number\";\n }\n case \"object\": {\n if (Array.isArray(data)) {\n return \"array\";\n }\n if (data === null) {\n return \"null\";\n }\n if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {\n return data.constructor.name;\n }\n }\n }\n return t;\n };\n const Nouns = {\n regex: \"입력\",\n email: \"이메일 주소\",\n url: \"URL\",\n emoji: \"이모지\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"ISO 날짜시간\",\n date: \"ISO 날짜\",\n time: \"ISO 시간\",\n duration: \"ISO 기간\",\n ipv4: \"IPv4 주소\",\n ipv6: \"IPv6 주소\",\n cidrv4: \"IPv4 범위\",\n cidrv6: \"IPv6 범위\",\n base64: \"base64 인코딩 문자열\",\n base64url: \"base64url 인코딩 문자열\",\n json_string: \"JSON 문자열\",\n e164: \"E.164 번호\",\n jwt: \"JWT\",\n template_literal: \"입력\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\":\n return `잘못된 입력: 예상 타입은 ${issue.expected}, 받은 타입은 ${parsedType(issue.input)}입니다`;\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `잘못된 입력: 값은 ${util.stringifyPrimitive(issue.values[0])} 이어야 합니다`;\n return `잘못된 옵션: ${util.joinValues(issue.values, \"또는 \")} 중 하나여야 합니다`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"이하\" : \"미만\";\n const suffix = adj === \"미만\" ? \"이어야 합니다\" : \"여야 합니다\";\n const sizing = getSizing(issue.origin);\n const unit = sizing?.unit ?? \"요소\";\n if (sizing)\n return `${issue.origin ?? \"값\"}이 너무 큽니다: ${issue.maximum.toString()}${unit} ${adj}${suffix}`;\n return `${issue.origin ?? \"값\"}이 너무 큽니다: ${issue.maximum.toString()} ${adj}${suffix}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \"이상\" : \"초과\";\n const suffix = adj === \"이상\" ? \"이어야 합니다\" : \"여야 합니다\";\n const sizing = getSizing(issue.origin);\n const unit = sizing?.unit ?? \"요소\";\n if (sizing) {\n return `${issue.origin ?? \"값\"}이 너무 작습니다: ${issue.minimum.toString()}${unit} ${adj}${suffix}`;\n }\n return `${issue.origin ?? \"값\"}이 너무 작습니다: ${issue.minimum.toString()} ${adj}${suffix}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\") {\n return `잘못된 문자열: \"${_issue.prefix}\"(으)로 시작해야 합니다`;\n }\n if (_issue.format === \"ends_with\")\n return `잘못된 문자열: \"${_issue.suffix}\"(으)로 끝나야 합니다`;\n if (_issue.format === \"includes\")\n return `잘못된 문자열: \"${_issue.includes}\"을(를) 포함해야 합니다`;\n if (_issue.format === \"regex\")\n return `잘못된 문자열: 정규식 ${_issue.pattern} 패턴과 일치해야 합니다`;\n return `잘못된 ${Nouns[_issue.format] ?? issue.format}`;\n }\n case \"not_multiple_of\":\n return `잘못된 숫자: ${issue.divisor}의 배수여야 합니다`;\n case \"unrecognized_keys\":\n return `인식할 수 없는 키: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `잘못된 키: ${issue.origin}`;\n case \"invalid_union\":\n return `잘못된 입력`;\n case \"invalid_element\":\n return `잘못된 값: ${issue.origin}`;\n default:\n return `잘못된 입력`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n","import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"знаци\", verb: \"да имаат\" },\n file: { unit: \"бајти\", verb: \"да имаат\" },\n array: { unit: \"ставки\", verb: \"да имаат\" },\n set: { unit: \"ставки\", verb: \"да имаат\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const parsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"number\": {\n return Number.isNaN(data) ? \"NaN\" : \"број\";\n }\n case \"object\": {\n if (Array.isArray(data)) {\n return \"низа\";\n }\n if (data === null) {\n return \"null\";\n }\n if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {\n return data.constructor.name;\n }\n }\n }\n return t;\n };\n const Nouns = {\n regex: \"внес\",\n email: \"адреса на е-пошта\",\n url: \"URL\",\n emoji: \"емоџи\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"ISO датум и време\",\n date: \"ISO датум\",\n time: \"ISO време\",\n duration: \"ISO времетраење\",\n ipv4: \"IPv4 адреса\",\n ipv6: \"IPv6 адреса\",\n cidrv4: \"IPv4 опсег\",\n cidrv6: \"IPv6 опсег\",\n base64: \"base64-енкодирана низа\",\n base64url: \"base64url-енкодирана низа\",\n json_string: \"JSON низа\",\n e164: \"E.164 број\",\n jwt: \"JWT\",\n template_literal: \"внес\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\":\n return `Грешен внес: се очекува ${issue.expected}, примено ${parsedType(issue.input)}`;\n // return `Invalid input: expected ${issue.expected}, received ${util.getParsedType(issue.input)}`;\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `Invalid input: expected ${util.stringifyPrimitive(issue.values[0])}`;\n return `Грешана опција: се очекува една ${util.joinValues(issue.values, \"|\")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing)\n return `Премногу голем: се очекува ${issue.origin ?? \"вредноста\"} да има ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"елементи\"}`;\n return `Премногу голем: се очекува ${issue.origin ?? \"вредноста\"} да биде ${adj}${issue.maximum.toString()}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `Премногу мал: се очекува ${issue.origin} да има ${adj}${issue.minimum.toString()} ${sizing.unit}`;\n }\n return `Премногу мал: се очекува ${issue.origin} да биде ${adj}${issue.minimum.toString()}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\") {\n return `Неважечка низа: мора да започнува со \"${_issue.prefix}\"`;\n }\n if (_issue.format === \"ends_with\")\n return `Неважечка низа: мора да завршува со \"${_issue.suffix}\"`;\n if (_issue.format === \"includes\")\n return `Неважечка низа: мора да вклучува \"${_issue.includes}\"`;\n if (_issue.format === \"regex\")\n return `Неважечка низа: мора да одгоара на патернот ${_issue.pattern}`;\n return `Invalid ${Nouns[_issue.format] ?? issue.format}`;\n }\n case \"not_multiple_of\":\n return `Грешен број: мора да биде делив со ${issue.divisor}`;\n case \"unrecognized_keys\":\n return `${issue.keys.length > 1 ? \"Непрепознаени клучеви\" : \"Непрепознаен клуч\"}: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `Грешен клуч во ${issue.origin}`;\n case \"invalid_union\":\n return \"Грешен внес\";\n case \"invalid_element\":\n return `Грешна вредност во ${issue.origin}`;\n default:\n return `Грешен внес`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n","import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"aksara\", verb: \"mempunyai\" },\n file: { unit: \"bait\", verb: \"mempunyai\" },\n array: { unit: \"elemen\", verb: \"mempunyai\" },\n set: { unit: \"elemen\", verb: \"mempunyai\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const parsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"number\": {\n return Number.isNaN(data) ? \"NaN\" : \"nombor\";\n }\n case \"object\": {\n if (Array.isArray(data)) {\n return \"array\";\n }\n if (data === null) {\n return \"null\";\n }\n if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {\n return data.constructor.name;\n }\n }\n }\n return t;\n };\n const Nouns = {\n regex: \"input\",\n email: \"alamat e-mel\",\n url: \"URL\",\n emoji: \"emoji\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"tarikh masa ISO\",\n date: \"tarikh ISO\",\n time: \"masa ISO\",\n duration: \"tempoh ISO\",\n ipv4: \"alamat IPv4\",\n ipv6: \"alamat IPv6\",\n cidrv4: \"julat IPv4\",\n cidrv6: \"julat IPv6\",\n base64: \"string dikodkan base64\",\n base64url: \"string dikodkan base64url\",\n json_string: \"string JSON\",\n e164: \"nombor E.164\",\n jwt: \"JWT\",\n template_literal: \"input\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\":\n return `Input tidak sah: dijangka ${issue.expected}, diterima ${parsedType(issue.input)}`;\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `Input tidak sah: dijangka ${util.stringifyPrimitive(issue.values[0])}`;\n return `Pilihan tidak sah: dijangka salah satu daripada ${util.joinValues(issue.values, \"|\")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing)\n return `Terlalu besar: dijangka ${issue.origin ?? \"nilai\"} ${sizing.verb} ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"elemen\"}`;\n return `Terlalu besar: dijangka ${issue.origin ?? \"nilai\"} adalah ${adj}${issue.maximum.toString()}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `Terlalu kecil: dijangka ${issue.origin} ${sizing.verb} ${adj}${issue.minimum.toString()} ${sizing.unit}`;\n }\n return `Terlalu kecil: dijangka ${issue.origin} adalah ${adj}${issue.minimum.toString()}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\")\n return `String tidak sah: mesti bermula dengan \"${_issue.prefix}\"`;\n if (_issue.format === \"ends_with\")\n return `String tidak sah: mesti berakhir dengan \"${_issue.suffix}\"`;\n if (_issue.format === \"includes\")\n return `String tidak sah: mesti mengandungi \"${_issue.includes}\"`;\n if (_issue.format === \"regex\")\n return `String tidak sah: mesti sepadan dengan corak ${_issue.pattern}`;\n return `${Nouns[_issue.format] ?? issue.format} tidak sah`;\n }\n case \"not_multiple_of\":\n return `Nombor tidak sah: perlu gandaan ${issue.divisor}`;\n case \"unrecognized_keys\":\n return `Kunci tidak dikenali: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `Kunci tidak sah dalam ${issue.origin}`;\n case \"invalid_union\":\n return \"Input tidak sah\";\n case \"invalid_element\":\n return `Nilai tidak sah dalam ${issue.origin}`;\n default:\n return `Input tidak sah`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n","import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"tekens\" },\n file: { unit: \"bytes\" },\n array: { unit: \"elementen\" },\n set: { unit: \"elementen\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const parsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"number\": {\n return Number.isNaN(data) ? \"NaN\" : \"getal\";\n }\n case \"object\": {\n if (Array.isArray(data)) {\n return \"array\";\n }\n if (data === null) {\n return \"null\";\n }\n if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {\n return data.constructor.name;\n }\n }\n }\n return t;\n };\n const Nouns = {\n regex: \"invoer\",\n email: \"emailadres\",\n url: \"URL\",\n emoji: \"emoji\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"ISO datum en tijd\",\n date: \"ISO datum\",\n time: \"ISO tijd\",\n duration: \"ISO duur\",\n ipv4: \"IPv4-adres\",\n ipv6: \"IPv6-adres\",\n cidrv4: \"IPv4-bereik\",\n cidrv6: \"IPv6-bereik\",\n base64: \"base64-gecodeerde tekst\",\n base64url: \"base64 URL-gecodeerde tekst\",\n json_string: \"JSON string\",\n e164: \"E.164-nummer\",\n jwt: \"JWT\",\n template_literal: \"invoer\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\":\n return `Ongeldige invoer: verwacht ${issue.expected}, ontving ${parsedType(issue.input)}`;\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `Ongeldige invoer: verwacht ${util.stringifyPrimitive(issue.values[0])}`;\n return `Ongeldige optie: verwacht één van ${util.joinValues(issue.values, \"|\")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing)\n return `Te lang: verwacht dat ${issue.origin ?? \"waarde\"} ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"elementen\"} bevat`;\n return `Te lang: verwacht dat ${issue.origin ?? \"waarde\"} ${adj}${issue.maximum.toString()} is`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `Te kort: verwacht dat ${issue.origin} ${adj}${issue.minimum.toString()} ${sizing.unit} bevat`;\n }\n return `Te kort: verwacht dat ${issue.origin} ${adj}${issue.minimum.toString()} is`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\") {\n return `Ongeldige tekst: moet met \"${_issue.prefix}\" beginnen`;\n }\n if (_issue.format === \"ends_with\")\n return `Ongeldige tekst: moet op \"${_issue.suffix}\" eindigen`;\n if (_issue.format === \"includes\")\n return `Ongeldige tekst: moet \"${_issue.includes}\" bevatten`;\n if (_issue.format === \"regex\")\n return `Ongeldige tekst: moet overeenkomen met patroon ${_issue.pattern}`;\n return `Ongeldig: ${Nouns[_issue.format] ?? issue.format}`;\n }\n case \"not_multiple_of\":\n return `Ongeldig getal: moet een veelvoud van ${issue.divisor} zijn`;\n case \"unrecognized_keys\":\n return `Onbekende key${issue.keys.length > 1 ? \"s\" : \"\"}: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `Ongeldige key in ${issue.origin}`;\n case \"invalid_union\":\n return \"Ongeldige invoer\";\n case \"invalid_element\":\n return `Ongeldige waarde in ${issue.origin}`;\n default:\n return `Ongeldige invoer`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n","import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"tegn\", verb: \"å ha\" },\n file: { unit: \"bytes\", verb: \"å ha\" },\n array: { unit: \"elementer\", verb: \"å inneholde\" },\n set: { unit: \"elementer\", verb: \"å inneholde\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const parsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"number\": {\n return Number.isNaN(data) ? \"NaN\" : \"tall\";\n }\n case \"object\": {\n if (Array.isArray(data)) {\n return \"liste\";\n }\n if (data === null) {\n return \"null\";\n }\n if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {\n return data.constructor.name;\n }\n }\n }\n return t;\n };\n const Nouns = {\n regex: \"input\",\n email: \"e-postadresse\",\n url: \"URL\",\n emoji: \"emoji\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"ISO dato- og klokkeslett\",\n date: \"ISO-dato\",\n time: \"ISO-klokkeslett\",\n duration: \"ISO-varighet\",\n ipv4: \"IPv4-område\",\n ipv6: \"IPv6-område\",\n cidrv4: \"IPv4-spekter\",\n cidrv6: \"IPv6-spekter\",\n base64: \"base64-enkodet streng\",\n base64url: \"base64url-enkodet streng\",\n json_string: \"JSON-streng\",\n e164: \"E.164-nummer\",\n jwt: \"JWT\",\n template_literal: \"input\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\":\n return `Ugyldig input: forventet ${issue.expected}, fikk ${parsedType(issue.input)}`;\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `Ugyldig verdi: forventet ${util.stringifyPrimitive(issue.values[0])}`;\n return `Ugyldig valg: forventet en av ${util.joinValues(issue.values, \"|\")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing)\n return `For stor(t): forventet ${issue.origin ?? \"value\"} til å ha ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"elementer\"}`;\n return `For stor(t): forventet ${issue.origin ?? \"value\"} til å ha ${adj}${issue.maximum.toString()}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `For lite(n): forventet ${issue.origin} til å ha ${adj}${issue.minimum.toString()} ${sizing.unit}`;\n }\n return `For lite(n): forventet ${issue.origin} til å ha ${adj}${issue.minimum.toString()}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\")\n return `Ugyldig streng: må starte med \"${_issue.prefix}\"`;\n if (_issue.format === \"ends_with\")\n return `Ugyldig streng: må ende med \"${_issue.suffix}\"`;\n if (_issue.format === \"includes\")\n return `Ugyldig streng: må inneholde \"${_issue.includes}\"`;\n if (_issue.format === \"regex\")\n return `Ugyldig streng: må matche mønsteret ${_issue.pattern}`;\n return `Ugyldig ${Nouns[_issue.format] ?? issue.format}`;\n }\n case \"not_multiple_of\":\n return `Ugyldig tall: må være et multiplum av ${issue.divisor}`;\n case \"unrecognized_keys\":\n return `${issue.keys.length > 1 ? \"Ukjente nøkler\" : \"Ukjent nøkkel\"}: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `Ugyldig nøkkel i ${issue.origin}`;\n case \"invalid_union\":\n return \"Ugyldig input\";\n case \"invalid_element\":\n return `Ugyldig verdi i ${issue.origin}`;\n default:\n return `Ugyldig input`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n","import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"harf\", verb: \"olmalıdır\" },\n file: { unit: \"bayt\", verb: \"olmalıdır\" },\n array: { unit: \"unsur\", verb: \"olmalıdır\" },\n set: { unit: \"unsur\", verb: \"olmalıdır\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const parsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"number\": {\n return Number.isNaN(data) ? \"NaN\" : \"numara\";\n }\n case \"object\": {\n if (Array.isArray(data)) {\n return \"saf\";\n }\n if (data === null) {\n return \"gayb\";\n }\n if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {\n return data.constructor.name;\n }\n }\n }\n return t;\n };\n const Nouns = {\n regex: \"giren\",\n email: \"epostagâh\",\n url: \"URL\",\n emoji: \"emoji\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"ISO hengâmı\",\n date: \"ISO tarihi\",\n time: \"ISO zamanı\",\n duration: \"ISO müddeti\",\n ipv4: \"IPv4 nişânı\",\n ipv6: \"IPv6 nişânı\",\n cidrv4: \"IPv4 menzili\",\n cidrv6: \"IPv6 menzili\",\n base64: \"base64-şifreli metin\",\n base64url: \"base64url-şifreli metin\",\n json_string: \"JSON metin\",\n e164: \"E.164 sayısı\",\n jwt: \"JWT\",\n template_literal: \"giren\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\":\n return `Fâsit giren: umulan ${issue.expected}, alınan ${parsedType(issue.input)}`;\n // return `Fâsit giren: umulan ${issue.expected}, alınan ${util.getParsedType(issue.input)}`;\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `Fâsit giren: umulan ${util.stringifyPrimitive(issue.values[0])}`;\n return `Fâsit tercih: mûteberler ${util.joinValues(issue.values, \"|\")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing)\n return `Fazla büyük: ${issue.origin ?? \"value\"}, ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"elements\"} sahip olmalıydı.`;\n return `Fazla büyük: ${issue.origin ?? \"value\"}, ${adj}${issue.maximum.toString()} olmalıydı.`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `Fazla küçük: ${issue.origin}, ${adj}${issue.minimum.toString()} ${sizing.unit} sahip olmalıydı.`;\n }\n return `Fazla küçük: ${issue.origin}, ${adj}${issue.minimum.toString()} olmalıydı.`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\")\n return `Fâsit metin: \"${_issue.prefix}\" ile başlamalı.`;\n if (_issue.format === \"ends_with\")\n return `Fâsit metin: \"${_issue.suffix}\" ile bitmeli.`;\n if (_issue.format === \"includes\")\n return `Fâsit metin: \"${_issue.includes}\" ihtivâ etmeli.`;\n if (_issue.format === \"regex\")\n return `Fâsit metin: ${_issue.pattern} nakşına uymalı.`;\n return `Fâsit ${Nouns[_issue.format] ?? issue.format}`;\n }\n case \"not_multiple_of\":\n return `Fâsit sayı: ${issue.divisor} katı olmalıydı.`;\n case \"unrecognized_keys\":\n return `Tanınmayan anahtar ${issue.keys.length > 1 ? \"s\" : \"\"}: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `${issue.origin} için tanınmayan anahtar var.`;\n case \"invalid_union\":\n return \"Giren tanınamadı.\";\n case \"invalid_element\":\n return `${issue.origin} için tanınmayan kıymet var.`;\n default:\n return `Kıymet tanınamadı.`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n","import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"توکي\", verb: \"ولري\" },\n file: { unit: \"بایټس\", verb: \"ولري\" },\n array: { unit: \"توکي\", verb: \"ولري\" },\n set: { unit: \"توکي\", verb: \"ولري\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const parsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"number\": {\n return Number.isNaN(data) ? \"NaN\" : \"عدد\";\n }\n case \"object\": {\n if (Array.isArray(data)) {\n return \"ارې\";\n }\n if (data === null) {\n return \"null\";\n }\n if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {\n return data.constructor.name;\n }\n }\n }\n return t;\n };\n const Nouns = {\n regex: \"ورودي\",\n email: \"بریښنالیک\",\n url: \"یو آر ال\",\n emoji: \"ایموجي\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"نیټه او وخت\",\n date: \"نېټه\",\n time: \"وخت\",\n duration: \"موده\",\n ipv4: \"د IPv4 پته\",\n ipv6: \"د IPv6 پته\",\n cidrv4: \"د IPv4 ساحه\",\n cidrv6: \"د IPv6 ساحه\",\n base64: \"base64-encoded متن\",\n base64url: \"base64url-encoded متن\",\n json_string: \"JSON متن\",\n e164: \"د E.164 شمېره\",\n jwt: \"JWT\",\n template_literal: \"ورودي\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\":\n return `ناسم ورودي: باید ${issue.expected} وای, مګر ${parsedType(issue.input)} ترلاسه شو`;\n case \"invalid_value\":\n if (issue.values.length === 1) {\n return `ناسم ورودي: باید ${util.stringifyPrimitive(issue.values[0])} وای`;\n }\n return `ناسم انتخاب: باید یو له ${util.joinValues(issue.values, \"|\")} څخه وای`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `ډیر لوی: ${issue.origin ?? \"ارزښت\"} باید ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"عنصرونه\"} ولري`;\n }\n return `ډیر لوی: ${issue.origin ?? \"ارزښت\"} باید ${adj}${issue.maximum.toString()} وي`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `ډیر کوچنی: ${issue.origin} باید ${adj}${issue.minimum.toString()} ${sizing.unit} ولري`;\n }\n return `ډیر کوچنی: ${issue.origin} باید ${adj}${issue.minimum.toString()} وي`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\") {\n return `ناسم متن: باید د \"${_issue.prefix}\" سره پیل شي`;\n }\n if (_issue.format === \"ends_with\") {\n return `ناسم متن: باید د \"${_issue.suffix}\" سره پای ته ورسيږي`;\n }\n if (_issue.format === \"includes\") {\n return `ناسم متن: باید \"${_issue.includes}\" ولري`;\n }\n if (_issue.format === \"regex\") {\n return `ناسم متن: باید د ${_issue.pattern} سره مطابقت ولري`;\n }\n return `${Nouns[_issue.format] ?? issue.format} ناسم دی`;\n }\n case \"not_multiple_of\":\n return `ناسم عدد: باید د ${issue.divisor} مضرب وي`;\n case \"unrecognized_keys\":\n return `ناسم ${issue.keys.length > 1 ? \"کلیډونه\" : \"کلیډ\"}: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `ناسم کلیډ په ${issue.origin} کې`;\n case \"invalid_union\":\n return `ناسمه ورودي`;\n case \"invalid_element\":\n return `ناسم عنصر په ${issue.origin} کې`;\n default:\n return `ناسمه ورودي`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n","import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"znaków\", verb: \"mieć\" },\n file: { unit: \"bajtów\", verb: \"mieć\" },\n array: { unit: \"elementów\", verb: \"mieć\" },\n set: { unit: \"elementów\", verb: \"mieć\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const parsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"number\": {\n return Number.isNaN(data) ? \"NaN\" : \"liczba\";\n }\n case \"object\": {\n if (Array.isArray(data)) {\n return \"tablica\";\n }\n if (data === null) {\n return \"null\";\n }\n if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {\n return data.constructor.name;\n }\n }\n }\n return t;\n };\n const Nouns = {\n regex: \"wyrażenie\",\n email: \"adres email\",\n url: \"URL\",\n emoji: \"emoji\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"data i godzina w formacie ISO\",\n date: \"data w formacie ISO\",\n time: \"godzina w formacie ISO\",\n duration: \"czas trwania ISO\",\n ipv4: \"adres IPv4\",\n ipv6: \"adres IPv6\",\n cidrv4: \"zakres IPv4\",\n cidrv6: \"zakres IPv6\",\n base64: \"ciąg znaków zakodowany w formacie base64\",\n base64url: \"ciąg znaków zakodowany w formacie base64url\",\n json_string: \"ciąg znaków w formacie JSON\",\n e164: \"liczba E.164\",\n jwt: \"JWT\",\n template_literal: \"wejście\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\":\n return `Nieprawidłowe dane wejściowe: oczekiwano ${issue.expected}, otrzymano ${parsedType(issue.input)}`;\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `Nieprawidłowe dane wejściowe: oczekiwano ${util.stringifyPrimitive(issue.values[0])}`;\n return `Nieprawidłowa opcja: oczekiwano jednej z wartości ${util.joinValues(issue.values, \"|\")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `Za duża wartość: oczekiwano, że ${issue.origin ?? \"wartość\"} będzie mieć ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"elementów\"}`;\n }\n return `Zbyt duż(y/a/e): oczekiwano, że ${issue.origin ?? \"wartość\"} będzie wynosić ${adj}${issue.maximum.toString()}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `Za mała wartość: oczekiwano, że ${issue.origin ?? \"wartość\"} będzie mieć ${adj}${issue.minimum.toString()} ${sizing.unit ?? \"elementów\"}`;\n }\n return `Zbyt mał(y/a/e): oczekiwano, że ${issue.origin ?? \"wartość\"} będzie wynosić ${adj}${issue.minimum.toString()}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\")\n return `Nieprawidłowy ciąg znaków: musi zaczynać się od \"${_issue.prefix}\"`;\n if (_issue.format === \"ends_with\")\n return `Nieprawidłowy ciąg znaków: musi kończyć się na \"${_issue.suffix}\"`;\n if (_issue.format === \"includes\")\n return `Nieprawidłowy ciąg znaków: musi zawierać \"${_issue.includes}\"`;\n if (_issue.format === \"regex\")\n return `Nieprawidłowy ciąg znaków: musi odpowiadać wzorcowi ${_issue.pattern}`;\n return `Nieprawidłow(y/a/e) ${Nouns[_issue.format] ?? issue.format}`;\n }\n case \"not_multiple_of\":\n return `Nieprawidłowa liczba: musi być wielokrotnością ${issue.divisor}`;\n case \"unrecognized_keys\":\n return `Nierozpoznane klucze${issue.keys.length > 1 ? \"s\" : \"\"}: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `Nieprawidłowy klucz w ${issue.origin}`;\n case \"invalid_union\":\n return \"Nieprawidłowe dane wejściowe\";\n case \"invalid_element\":\n return `Nieprawidłowa wartość w ${issue.origin}`;\n default:\n return `Nieprawidłowe dane wejściowe`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n","import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"caracteres\", verb: \"ter\" },\n file: { unit: \"bytes\", verb: \"ter\" },\n array: { unit: \"itens\", verb: \"ter\" },\n set: { unit: \"itens\", verb: \"ter\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const parsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"number\": {\n return Number.isNaN(data) ? \"NaN\" : \"número\";\n }\n case \"object\": {\n if (Array.isArray(data)) {\n return \"array\";\n }\n if (data === null) {\n return \"nulo\";\n }\n if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {\n return data.constructor.name;\n }\n }\n }\n return t;\n };\n const Nouns = {\n regex: \"padrão\",\n email: \"endereço de e-mail\",\n url: \"URL\",\n emoji: \"emoji\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"data e hora ISO\",\n date: \"data ISO\",\n time: \"hora ISO\",\n duration: \"duração ISO\",\n ipv4: \"endereço IPv4\",\n ipv6: \"endereço IPv6\",\n cidrv4: \"faixa de IPv4\",\n cidrv6: \"faixa de IPv6\",\n base64: \"texto codificado em base64\",\n base64url: \"URL codificada em base64\",\n json_string: \"texto JSON\",\n e164: \"número E.164\",\n jwt: \"JWT\",\n template_literal: \"entrada\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\":\n return `Tipo inválido: esperado ${issue.expected}, recebido ${parsedType(issue.input)}`;\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `Entrada inválida: esperado ${util.stringifyPrimitive(issue.values[0])}`;\n return `Opção inválida: esperada uma das ${util.joinValues(issue.values, \"|\")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing)\n return `Muito grande: esperado que ${issue.origin ?? \"valor\"} tivesse ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"elementos\"}`;\n return `Muito grande: esperado que ${issue.origin ?? \"valor\"} fosse ${adj}${issue.maximum.toString()}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `Muito pequeno: esperado que ${issue.origin} tivesse ${adj}${issue.minimum.toString()} ${sizing.unit}`;\n }\n return `Muito pequeno: esperado que ${issue.origin} fosse ${adj}${issue.minimum.toString()}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\")\n return `Texto inválido: deve começar com \"${_issue.prefix}\"`;\n if (_issue.format === \"ends_with\")\n return `Texto inválido: deve terminar com \"${_issue.suffix}\"`;\n if (_issue.format === \"includes\")\n return `Texto inválido: deve incluir \"${_issue.includes}\"`;\n if (_issue.format === \"regex\")\n return `Texto inválido: deve corresponder ao padrão ${_issue.pattern}`;\n return `${Nouns[_issue.format] ?? issue.format} inválido`;\n }\n case \"not_multiple_of\":\n return `Número inválido: deve ser múltiplo de ${issue.divisor}`;\n case \"unrecognized_keys\":\n return `Chave${issue.keys.length > 1 ? \"s\" : \"\"} desconhecida${issue.keys.length > 1 ? \"s\" : \"\"}: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `Chave inválida em ${issue.origin}`;\n case \"invalid_union\":\n return \"Entrada inválida\";\n case \"invalid_element\":\n return `Valor inválido em ${issue.origin}`;\n default:\n return `Campo inválido`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n","import * as util from \"../core/util.js\";\nfunction getRussianPlural(count, one, few, many) {\n const absCount = Math.abs(count);\n const lastDigit = absCount % 10;\n const lastTwoDigits = absCount % 100;\n if (lastTwoDigits >= 11 && lastTwoDigits <= 19) {\n return many;\n }\n if (lastDigit === 1) {\n return one;\n }\n if (lastDigit >= 2 && lastDigit <= 4) {\n return few;\n }\n return many;\n}\nconst error = () => {\n const Sizable = {\n string: {\n unit: {\n one: \"символ\",\n few: \"символа\",\n many: \"символов\",\n },\n verb: \"иметь\",\n },\n file: {\n unit: {\n one: \"байт\",\n few: \"байта\",\n many: \"байт\",\n },\n verb: \"иметь\",\n },\n array: {\n unit: {\n one: \"элемент\",\n few: \"элемента\",\n many: \"элементов\",\n },\n verb: \"иметь\",\n },\n set: {\n unit: {\n one: \"элемент\",\n few: \"элемента\",\n many: \"элементов\",\n },\n verb: \"иметь\",\n },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const parsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"number\": {\n return Number.isNaN(data) ? \"NaN\" : \"число\";\n }\n case \"object\": {\n if (Array.isArray(data)) {\n return \"массив\";\n }\n if (data === null) {\n return \"null\";\n }\n if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {\n return data.constructor.name;\n }\n }\n }\n return t;\n };\n const Nouns = {\n regex: \"ввод\",\n email: \"email адрес\",\n url: \"URL\",\n emoji: \"эмодзи\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"ISO дата и время\",\n date: \"ISO дата\",\n time: \"ISO время\",\n duration: \"ISO длительность\",\n ipv4: \"IPv4 адрес\",\n ipv6: \"IPv6 адрес\",\n cidrv4: \"IPv4 диапазон\",\n cidrv6: \"IPv6 диапазон\",\n base64: \"строка в формате base64\",\n base64url: \"строка в формате base64url\",\n json_string: \"JSON строка\",\n e164: \"номер E.164\",\n jwt: \"JWT\",\n template_literal: \"ввод\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\":\n return `Неверный ввод: ожидалось ${issue.expected}, получено ${parsedType(issue.input)}`;\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `Неверный ввод: ожидалось ${util.stringifyPrimitive(issue.values[0])}`;\n return `Неверный вариант: ожидалось одно из ${util.joinValues(issue.values, \"|\")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n const maxValue = Number(issue.maximum);\n const unit = getRussianPlural(maxValue, sizing.unit.one, sizing.unit.few, sizing.unit.many);\n return `Слишком большое значение: ожидалось, что ${issue.origin ?? \"значение\"} будет иметь ${adj}${issue.maximum.toString()} ${unit}`;\n }\n return `Слишком большое значение: ожидалось, что ${issue.origin ?? \"значение\"} будет ${adj}${issue.maximum.toString()}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n const minValue = Number(issue.minimum);\n const unit = getRussianPlural(minValue, sizing.unit.one, sizing.unit.few, sizing.unit.many);\n return `Слишком маленькое значение: ожидалось, что ${issue.origin} будет иметь ${adj}${issue.minimum.toString()} ${unit}`;\n }\n return `Слишком маленькое значение: ожидалось, что ${issue.origin} будет ${adj}${issue.minimum.toString()}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\")\n return `Неверная строка: должна начинаться с \"${_issue.prefix}\"`;\n if (_issue.format === \"ends_with\")\n return `Неверная строка: должна заканчиваться на \"${_issue.suffix}\"`;\n if (_issue.format === \"includes\")\n return `Неверная строка: должна содержать \"${_issue.includes}\"`;\n if (_issue.format === \"regex\")\n return `Неверная строка: должна соответствовать шаблону ${_issue.pattern}`;\n return `Неверный ${Nouns[_issue.format] ?? issue.format}`;\n }\n case \"not_multiple_of\":\n return `Неверное число: должно быть кратным ${issue.divisor}`;\n case \"unrecognized_keys\":\n return `Нераспознанн${issue.keys.length > 1 ? \"ые\" : \"ый\"} ключ${issue.keys.length > 1 ? \"и\" : \"\"}: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `Неверный ключ в ${issue.origin}`;\n case \"invalid_union\":\n return \"Неверные входные данные\";\n case \"invalid_element\":\n return `Неверное значение в ${issue.origin}`;\n default:\n return `Неверные входные данные`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n","import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"znakov\", verb: \"imeti\" },\n file: { unit: \"bajtov\", verb: \"imeti\" },\n array: { unit: \"elementov\", verb: \"imeti\" },\n set: { unit: \"elementov\", verb: \"imeti\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const parsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"number\": {\n return Number.isNaN(data) ? \"NaN\" : \"število\";\n }\n case \"object\": {\n if (Array.isArray(data)) {\n return \"tabela\";\n }\n if (data === null) {\n return \"null\";\n }\n if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {\n return data.constructor.name;\n }\n }\n }\n return t;\n };\n const Nouns = {\n regex: \"vnos\",\n email: \"e-poštni naslov\",\n url: \"URL\",\n emoji: \"emoji\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"ISO datum in čas\",\n date: \"ISO datum\",\n time: \"ISO čas\",\n duration: \"ISO trajanje\",\n ipv4: \"IPv4 naslov\",\n ipv6: \"IPv6 naslov\",\n cidrv4: \"obseg IPv4\",\n cidrv6: \"obseg IPv6\",\n base64: \"base64 kodiran niz\",\n base64url: \"base64url kodiran niz\",\n json_string: \"JSON niz\",\n e164: \"E.164 številka\",\n jwt: \"JWT\",\n template_literal: \"vnos\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\":\n return `Neveljaven vnos: pričakovano ${issue.expected}, prejeto ${parsedType(issue.input)}`;\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `Neveljaven vnos: pričakovano ${util.stringifyPrimitive(issue.values[0])}`;\n return `Neveljavna možnost: pričakovano eno izmed ${util.joinValues(issue.values, \"|\")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing)\n return `Preveliko: pričakovano, da bo ${issue.origin ?? \"vrednost\"} imelo ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"elementov\"}`;\n return `Preveliko: pričakovano, da bo ${issue.origin ?? \"vrednost\"} ${adj}${issue.maximum.toString()}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `Premajhno: pričakovano, da bo ${issue.origin} imelo ${adj}${issue.minimum.toString()} ${sizing.unit}`;\n }\n return `Premajhno: pričakovano, da bo ${issue.origin} ${adj}${issue.minimum.toString()}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\") {\n return `Neveljaven niz: mora se začeti z \"${_issue.prefix}\"`;\n }\n if (_issue.format === \"ends_with\")\n return `Neveljaven niz: mora se končati z \"${_issue.suffix}\"`;\n if (_issue.format === \"includes\")\n return `Neveljaven niz: mora vsebovati \"${_issue.includes}\"`;\n if (_issue.format === \"regex\")\n return `Neveljaven niz: mora ustrezati vzorcu ${_issue.pattern}`;\n return `Neveljaven ${Nouns[_issue.format] ?? issue.format}`;\n }\n case \"not_multiple_of\":\n return `Neveljavno število: mora biti večkratnik ${issue.divisor}`;\n case \"unrecognized_keys\":\n return `Neprepoznan${issue.keys.length > 1 ? \"i ključi\" : \" ključ\"}: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `Neveljaven ključ v ${issue.origin}`;\n case \"invalid_union\":\n return \"Neveljaven vnos\";\n case \"invalid_element\":\n return `Neveljavna vrednost v ${issue.origin}`;\n default:\n return \"Neveljaven vnos\";\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n","import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"tecken\", verb: \"att ha\" },\n file: { unit: \"bytes\", verb: \"att ha\" },\n array: { unit: \"objekt\", verb: \"att innehålla\" },\n set: { unit: \"objekt\", verb: \"att innehålla\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const parsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"number\": {\n return Number.isNaN(data) ? \"NaN\" : \"antal\";\n }\n case \"object\": {\n if (Array.isArray(data)) {\n return \"lista\";\n }\n if (data === null) {\n return \"null\";\n }\n if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {\n return data.constructor.name;\n }\n }\n }\n return t;\n };\n const Nouns = {\n regex: \"reguljärt uttryck\",\n email: \"e-postadress\",\n url: \"URL\",\n emoji: \"emoji\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"ISO-datum och tid\",\n date: \"ISO-datum\",\n time: \"ISO-tid\",\n duration: \"ISO-varaktighet\",\n ipv4: \"IPv4-intervall\",\n ipv6: \"IPv6-intervall\",\n cidrv4: \"IPv4-spektrum\",\n cidrv6: \"IPv6-spektrum\",\n base64: \"base64-kodad sträng\",\n base64url: \"base64url-kodad sträng\",\n json_string: \"JSON-sträng\",\n e164: \"E.164-nummer\",\n jwt: \"JWT\",\n template_literal: \"mall-literal\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\":\n return `Ogiltig inmatning: förväntat ${issue.expected}, fick ${parsedType(issue.input)}`;\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `Ogiltig inmatning: förväntat ${util.stringifyPrimitive(issue.values[0])}`;\n return `Ogiltigt val: förväntade en av ${util.joinValues(issue.values, \"|\")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `För stor(t): förväntade ${issue.origin ?? \"värdet\"} att ha ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"element\"}`;\n }\n return `För stor(t): förväntat ${issue.origin ?? \"värdet\"} att ha ${adj}${issue.maximum.toString()}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `För lite(t): förväntade ${issue.origin ?? \"värdet\"} att ha ${adj}${issue.minimum.toString()} ${sizing.unit}`;\n }\n return `För lite(t): förväntade ${issue.origin ?? \"värdet\"} att ha ${adj}${issue.minimum.toString()}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\") {\n return `Ogiltig sträng: måste börja med \"${_issue.prefix}\"`;\n }\n if (_issue.format === \"ends_with\")\n return `Ogiltig sträng: måste sluta med \"${_issue.suffix}\"`;\n if (_issue.format === \"includes\")\n return `Ogiltig sträng: måste innehålla \"${_issue.includes}\"`;\n if (_issue.format === \"regex\")\n return `Ogiltig sträng: måste matcha mönstret \"${_issue.pattern}\"`;\n return `Ogiltig(t) ${Nouns[_issue.format] ?? issue.format}`;\n }\n case \"not_multiple_of\":\n return `Ogiltigt tal: måste vara en multipel av ${issue.divisor}`;\n case \"unrecognized_keys\":\n return `${issue.keys.length > 1 ? \"Okända nycklar\" : \"Okänd nyckel\"}: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `Ogiltig nyckel i ${issue.origin ?? \"värdet\"}`;\n case \"invalid_union\":\n return \"Ogiltig input\";\n case \"invalid_element\":\n return `Ogiltigt värde i ${issue.origin ?? \"värdet\"}`;\n default:\n return `Ogiltig input`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n","import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"எழுத்துக்கள்\", verb: \"கொண்டிருக்க வேண்டும்\" },\n file: { unit: \"பைட்டுகள்\", verb: \"கொண்டிருக்க வேண்டும்\" },\n array: { unit: \"உறுப்புகள்\", verb: \"கொண்டிருக்க வேண்டும்\" },\n set: { unit: \"உறுப்புகள்\", verb: \"கொண்டிருக்க வேண்டும்\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const parsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"number\": {\n return Number.isNaN(data) ? \"எண் அல்லாதது\" : \"எண்\";\n }\n case \"object\": {\n if (Array.isArray(data)) {\n return \"அணி\";\n }\n if (data === null) {\n return \"வெறுமை\";\n }\n if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {\n return data.constructor.name;\n }\n }\n }\n return t;\n };\n const Nouns = {\n regex: \"உள்ளீடு\",\n email: \"மின்னஞ்சல் முகவரி\",\n url: \"URL\",\n emoji: \"emoji\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"ISO தேதி நேரம்\",\n date: \"ISO தேதி\",\n time: \"ISO நேரம்\",\n duration: \"ISO கால அளவு\",\n ipv4: \"IPv4 முகவரி\",\n ipv6: \"IPv6 முகவரி\",\n cidrv4: \"IPv4 வரம்பு\",\n cidrv6: \"IPv6 வரம்பு\",\n base64: \"base64-encoded சரம்\",\n base64url: \"base64url-encoded சரம்\",\n json_string: \"JSON சரம்\",\n e164: \"E.164 எண்\",\n jwt: \"JWT\",\n template_literal: \"input\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\":\n return `தவறான உள்ளீடு: எதிர்பார்க்கப்பட்டது ${issue.expected}, பெறப்பட்டது ${parsedType(issue.input)}`;\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `தவறான உள்ளீடு: எதிர்பார்க்கப்பட்டது ${util.stringifyPrimitive(issue.values[0])}`;\n return `தவறான விருப்பம்: எதிர்பார்க்கப்பட்டது ${util.joinValues(issue.values, \"|\")} இல் ஒன்று`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `மிக பெரியது: எதிர்பார்க்கப்பட்டது ${issue.origin ?? \"மதிப்பு\"} ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"உறுப்புகள்\"} ஆக இருக்க வேண்டும்`;\n }\n return `மிக பெரியது: எதிர்பார்க்கப்பட்டது ${issue.origin ?? \"மதிப்பு\"} ${adj}${issue.maximum.toString()} ஆக இருக்க வேண்டும்`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `மிகச் சிறியது: எதிர்பார்க்கப்பட்டது ${issue.origin} ${adj}${issue.minimum.toString()} ${sizing.unit} ஆக இருக்க வேண்டும்`; //\n }\n return `மிகச் சிறியது: எதிர்பார்க்கப்பட்டது ${issue.origin} ${adj}${issue.minimum.toString()} ஆக இருக்க வேண்டும்`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\")\n return `தவறான சரம்: \"${_issue.prefix}\" இல் தொடங்க வேண்டும்`;\n if (_issue.format === \"ends_with\")\n return `தவறான சரம்: \"${_issue.suffix}\" இல் முடிவடைய வேண்டும்`;\n if (_issue.format === \"includes\")\n return `தவறான சரம்: \"${_issue.includes}\" ஐ உள்ளடக்க வேண்டும்`;\n if (_issue.format === \"regex\")\n return `தவறான சரம்: ${_issue.pattern} முறைபாட்டுடன் பொருந்த வேண்டும்`;\n return `தவறான ${Nouns[_issue.format] ?? issue.format}`;\n }\n case \"not_multiple_of\":\n return `தவறான எண்: ${issue.divisor} இன் பலமாக இருக்க வேண்டும்`;\n case \"unrecognized_keys\":\n return `அடையாளம் தெரியாத விசை${issue.keys.length > 1 ? \"கள்\" : \"\"}: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `${issue.origin} இல் தவறான விசை`;\n case \"invalid_union\":\n return \"தவறான உள்ளீடு\";\n case \"invalid_element\":\n return `${issue.origin} இல் தவறான மதிப்பு`;\n default:\n return `தவறான உள்ளீடு`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n","import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"ตัวอักษร\", verb: \"ควรมี\" },\n file: { unit: \"ไบต์\", verb: \"ควรมี\" },\n array: { unit: \"รายการ\", verb: \"ควรมี\" },\n set: { unit: \"รายการ\", verb: \"ควรมี\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const parsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"number\": {\n return Number.isNaN(data) ? \"ไม่ใช่ตัวเลข (NaN)\" : \"ตัวเลข\";\n }\n case \"object\": {\n if (Array.isArray(data)) {\n return \"อาร์เรย์ (Array)\";\n }\n if (data === null) {\n return \"ไม่มีค่า (null)\";\n }\n if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {\n return data.constructor.name;\n }\n }\n }\n return t;\n };\n const Nouns = {\n regex: \"ข้อมูลที่ป้อน\",\n email: \"ที่อยู่อีเมล\",\n url: \"URL\",\n emoji: \"อิโมจิ\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"วันที่เวลาแบบ ISO\",\n date: \"วันที่แบบ ISO\",\n time: \"เวลาแบบ ISO\",\n duration: \"ช่วงเวลาแบบ ISO\",\n ipv4: \"ที่อยู่ IPv4\",\n ipv6: \"ที่อยู่ IPv6\",\n cidrv4: \"ช่วง IP แบบ IPv4\",\n cidrv6: \"ช่วง IP แบบ IPv6\",\n base64: \"ข้อความแบบ Base64\",\n base64url: \"ข้อความแบบ Base64 สำหรับ URL\",\n json_string: \"ข้อความแบบ JSON\",\n e164: \"เบอร์โทรศัพท์ระหว่างประเทศ (E.164)\",\n jwt: \"โทเคน JWT\",\n template_literal: \"ข้อมูลที่ป้อน\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\":\n return `ประเภทข้อมูลไม่ถูกต้อง: ควรเป็น ${issue.expected} แต่ได้รับ ${parsedType(issue.input)}`;\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `ค่าไม่ถูกต้อง: ควรเป็น ${util.stringifyPrimitive(issue.values[0])}`;\n return `ตัวเลือกไม่ถูกต้อง: ควรเป็นหนึ่งใน ${util.joinValues(issue.values, \"|\")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"ไม่เกิน\" : \"น้อยกว่า\";\n const sizing = getSizing(issue.origin);\n if (sizing)\n return `เกินกำหนด: ${issue.origin ?? \"ค่า\"} ควรมี${adj} ${issue.maximum.toString()} ${sizing.unit ?? \"รายการ\"}`;\n return `เกินกำหนด: ${issue.origin ?? \"ค่า\"} ควรมี${adj} ${issue.maximum.toString()}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \"อย่างน้อย\" : \"มากกว่า\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `น้อยกว่ากำหนด: ${issue.origin} ควรมี${adj} ${issue.minimum.toString()} ${sizing.unit}`;\n }\n return `น้อยกว่ากำหนด: ${issue.origin} ควรมี${adj} ${issue.minimum.toString()}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\") {\n return `รูปแบบไม่ถูกต้อง: ข้อความต้องขึ้นต้นด้วย \"${_issue.prefix}\"`;\n }\n if (_issue.format === \"ends_with\")\n return `รูปแบบไม่ถูกต้อง: ข้อความต้องลงท้ายด้วย \"${_issue.suffix}\"`;\n if (_issue.format === \"includes\")\n return `รูปแบบไม่ถูกต้อง: ข้อความต้องมี \"${_issue.includes}\" อยู่ในข้อความ`;\n if (_issue.format === \"regex\")\n return `รูปแบบไม่ถูกต้อง: ต้องตรงกับรูปแบบที่กำหนด ${_issue.pattern}`;\n return `รูปแบบไม่ถูกต้อง: ${Nouns[_issue.format] ?? issue.format}`;\n }\n case \"not_multiple_of\":\n return `ตัวเลขไม่ถูกต้อง: ต้องเป็นจำนวนที่หารด้วย ${issue.divisor} ได้ลงตัว`;\n case \"unrecognized_keys\":\n return `พบคีย์ที่ไม่รู้จัก: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `คีย์ไม่ถูกต้องใน ${issue.origin}`;\n case \"invalid_union\":\n return \"ข้อมูลไม่ถูกต้อง: ไม่ตรงกับรูปแบบยูเนียนที่กำหนดไว้\";\n case \"invalid_element\":\n return `ข้อมูลไม่ถูกต้องใน ${issue.origin}`;\n default:\n return `ข้อมูลไม่ถูกต้อง`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n","import * as util from \"../core/util.js\";\nexport const parsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"number\": {\n return Number.isNaN(data) ? \"NaN\" : \"number\";\n }\n case \"object\": {\n if (Array.isArray(data)) {\n return \"array\";\n }\n if (data === null) {\n return \"null\";\n }\n if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {\n return data.constructor.name;\n }\n }\n }\n return t;\n};\nconst error = () => {\n const Sizable = {\n string: { unit: \"karakter\", verb: \"olmalı\" },\n file: { unit: \"bayt\", verb: \"olmalı\" },\n array: { unit: \"öğe\", verb: \"olmalı\" },\n set: { unit: \"öğe\", verb: \"olmalı\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const Nouns = {\n regex: \"girdi\",\n email: \"e-posta adresi\",\n url: \"URL\",\n emoji: \"emoji\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"ISO tarih ve saat\",\n date: \"ISO tarih\",\n time: \"ISO saat\",\n duration: \"ISO süre\",\n ipv4: \"IPv4 adresi\",\n ipv6: \"IPv6 adresi\",\n cidrv4: \"IPv4 aralığı\",\n cidrv6: \"IPv6 aralığı\",\n base64: \"base64 ile şifrelenmiş metin\",\n base64url: \"base64url ile şifrelenmiş metin\",\n json_string: \"JSON dizesi\",\n e164: \"E.164 sayısı\",\n jwt: \"JWT\",\n template_literal: \"Şablon dizesi\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\":\n return `Geçersiz değer: beklenen ${issue.expected}, alınan ${parsedType(issue.input)}`;\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `Geçersiz değer: beklenen ${util.stringifyPrimitive(issue.values[0])}`;\n return `Geçersiz seçenek: aşağıdakilerden biri olmalı: ${util.joinValues(issue.values, \"|\")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing)\n return `Çok büyük: beklenen ${issue.origin ?? \"değer\"} ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"öğe\"}`;\n return `Çok büyük: beklenen ${issue.origin ?? \"değer\"} ${adj}${issue.maximum.toString()}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing)\n return `Çok küçük: beklenen ${issue.origin} ${adj}${issue.minimum.toString()} ${sizing.unit}`;\n return `Çok küçük: beklenen ${issue.origin} ${adj}${issue.minimum.toString()}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\")\n return `Geçersiz metin: \"${_issue.prefix}\" ile başlamalı`;\n if (_issue.format === \"ends_with\")\n return `Geçersiz metin: \"${_issue.suffix}\" ile bitmeli`;\n if (_issue.format === \"includes\")\n return `Geçersiz metin: \"${_issue.includes}\" içermeli`;\n if (_issue.format === \"regex\")\n return `Geçersiz metin: ${_issue.pattern} desenine uymalı`;\n return `Geçersiz ${Nouns[_issue.format] ?? issue.format}`;\n }\n case \"not_multiple_of\":\n return `Geçersiz sayı: ${issue.divisor} ile tam bölünebilmeli`;\n case \"unrecognized_keys\":\n return `Tanınmayan anahtar${issue.keys.length > 1 ? \"lar\" : \"\"}: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `${issue.origin} içinde geçersiz anahtar`;\n case \"invalid_union\":\n return \"Geçersiz değer\";\n case \"invalid_element\":\n return `${issue.origin} içinde geçersiz değer`;\n default:\n return `Geçersiz değer`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n","import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"символів\", verb: \"матиме\" },\n file: { unit: \"байтів\", verb: \"матиме\" },\n array: { unit: \"елементів\", verb: \"матиме\" },\n set: { unit: \"елементів\", verb: \"матиме\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const parsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"number\": {\n return Number.isNaN(data) ? \"NaN\" : \"число\";\n }\n case \"object\": {\n if (Array.isArray(data)) {\n return \"масив\";\n }\n if (data === null) {\n return \"null\";\n }\n if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {\n return data.constructor.name;\n }\n }\n }\n return t;\n };\n const Nouns = {\n regex: \"вхідні дані\",\n email: \"адреса електронної пошти\",\n url: \"URL\",\n emoji: \"емодзі\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"дата та час ISO\",\n date: \"дата ISO\",\n time: \"час ISO\",\n duration: \"тривалість ISO\",\n ipv4: \"адреса IPv4\",\n ipv6: \"адреса IPv6\",\n cidrv4: \"діапазон IPv4\",\n cidrv6: \"діапазон IPv6\",\n base64: \"рядок у кодуванні base64\",\n base64url: \"рядок у кодуванні base64url\",\n json_string: \"рядок JSON\",\n e164: \"номер E.164\",\n jwt: \"JWT\",\n template_literal: \"вхідні дані\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\":\n return `Неправильні вхідні дані: очікується ${issue.expected}, отримано ${parsedType(issue.input)}`;\n // return `Неправильні вхідні дані: очікується ${issue.expected}, отримано ${util.getParsedType(issue.input)}`;\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `Неправильні вхідні дані: очікується ${util.stringifyPrimitive(issue.values[0])}`;\n return `Неправильна опція: очікується одне з ${util.joinValues(issue.values, \"|\")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing)\n return `Занадто велике: очікується, що ${issue.origin ?? \"значення\"} ${sizing.verb} ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"елементів\"}`;\n return `Занадто велике: очікується, що ${issue.origin ?? \"значення\"} буде ${adj}${issue.maximum.toString()}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `Занадто мале: очікується, що ${issue.origin} ${sizing.verb} ${adj}${issue.minimum.toString()} ${sizing.unit}`;\n }\n return `Занадто мале: очікується, що ${issue.origin} буде ${adj}${issue.minimum.toString()}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\")\n return `Неправильний рядок: повинен починатися з \"${_issue.prefix}\"`;\n if (_issue.format === \"ends_with\")\n return `Неправильний рядок: повинен закінчуватися на \"${_issue.suffix}\"`;\n if (_issue.format === \"includes\")\n return `Неправильний рядок: повинен містити \"${_issue.includes}\"`;\n if (_issue.format === \"regex\")\n return `Неправильний рядок: повинен відповідати шаблону ${_issue.pattern}`;\n return `Неправильний ${Nouns[_issue.format] ?? issue.format}`;\n }\n case \"not_multiple_of\":\n return `Неправильне число: повинно бути кратним ${issue.divisor}`;\n case \"unrecognized_keys\":\n return `Нерозпізнаний ключ${issue.keys.length > 1 ? \"і\" : \"\"}: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `Неправильний ключ у ${issue.origin}`;\n case \"invalid_union\":\n return \"Неправильні вхідні дані\";\n case \"invalid_element\":\n return `Неправильне значення у ${issue.origin}`;\n default:\n return `Неправильні вхідні дані`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n","import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"حروف\", verb: \"ہونا\" },\n file: { unit: \"بائٹس\", verb: \"ہونا\" },\n array: { unit: \"آئٹمز\", verb: \"ہونا\" },\n set: { unit: \"آئٹمز\", verb: \"ہونا\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const parsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"number\": {\n return Number.isNaN(data) ? \"NaN\" : \"نمبر\";\n }\n case \"object\": {\n if (Array.isArray(data)) {\n return \"آرے\";\n }\n if (data === null) {\n return \"نل\";\n }\n if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {\n return data.constructor.name;\n }\n }\n }\n return t;\n };\n const Nouns = {\n regex: \"ان پٹ\",\n email: \"ای میل ایڈریس\",\n url: \"یو آر ایل\",\n emoji: \"ایموجی\",\n uuid: \"یو یو آئی ڈی\",\n uuidv4: \"یو یو آئی ڈی وی 4\",\n uuidv6: \"یو یو آئی ڈی وی 6\",\n nanoid: \"نینو آئی ڈی\",\n guid: \"جی یو آئی ڈی\",\n cuid: \"سی یو آئی ڈی\",\n cuid2: \"سی یو آئی ڈی 2\",\n ulid: \"یو ایل آئی ڈی\",\n xid: \"ایکس آئی ڈی\",\n ksuid: \"کے ایس یو آئی ڈی\",\n datetime: \"آئی ایس او ڈیٹ ٹائم\",\n date: \"آئی ایس او تاریخ\",\n time: \"آئی ایس او وقت\",\n duration: \"آئی ایس او مدت\",\n ipv4: \"آئی پی وی 4 ایڈریس\",\n ipv6: \"آئی پی وی 6 ایڈریس\",\n cidrv4: \"آئی پی وی 4 رینج\",\n cidrv6: \"آئی پی وی 6 رینج\",\n base64: \"بیس 64 ان کوڈڈ سٹرنگ\",\n base64url: \"بیس 64 یو آر ایل ان کوڈڈ سٹرنگ\",\n json_string: \"جے ایس او این سٹرنگ\",\n e164: \"ای 164 نمبر\",\n jwt: \"جے ڈبلیو ٹی\",\n template_literal: \"ان پٹ\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\":\n return `غلط ان پٹ: ${issue.expected} متوقع تھا، ${parsedType(issue.input)} موصول ہوا`;\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `غلط ان پٹ: ${util.stringifyPrimitive(issue.values[0])} متوقع تھا`;\n return `غلط آپشن: ${util.joinValues(issue.values, \"|\")} میں سے ایک متوقع تھا`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing)\n return `بہت بڑا: ${issue.origin ?? \"ویلیو\"} کے ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"عناصر\"} ہونے متوقع تھے`;\n return `بہت بڑا: ${issue.origin ?? \"ویلیو\"} کا ${adj}${issue.maximum.toString()} ہونا متوقع تھا`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `بہت چھوٹا: ${issue.origin} کے ${adj}${issue.minimum.toString()} ${sizing.unit} ہونے متوقع تھے`;\n }\n return `بہت چھوٹا: ${issue.origin} کا ${adj}${issue.minimum.toString()} ہونا متوقع تھا`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\") {\n return `غلط سٹرنگ: \"${_issue.prefix}\" سے شروع ہونا چاہیے`;\n }\n if (_issue.format === \"ends_with\")\n return `غلط سٹرنگ: \"${_issue.suffix}\" پر ختم ہونا چاہیے`;\n if (_issue.format === \"includes\")\n return `غلط سٹرنگ: \"${_issue.includes}\" شامل ہونا چاہیے`;\n if (_issue.format === \"regex\")\n return `غلط سٹرنگ: پیٹرن ${_issue.pattern} سے میچ ہونا چاہیے`;\n return `غلط ${Nouns[_issue.format] ?? issue.format}`;\n }\n case \"not_multiple_of\":\n return `غلط نمبر: ${issue.divisor} کا مضاعف ہونا چاہیے`;\n case \"unrecognized_keys\":\n return `غیر تسلیم شدہ کی${issue.keys.length > 1 ? \"ز\" : \"\"}: ${util.joinValues(issue.keys, \"، \")}`;\n case \"invalid_key\":\n return `${issue.origin} میں غلط کی`;\n case \"invalid_union\":\n return \"غلط ان پٹ\";\n case \"invalid_element\":\n return `${issue.origin} میں غلط ویلیو`;\n default:\n return `غلط ان پٹ`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n","import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"ký tự\", verb: \"có\" },\n file: { unit: \"byte\", verb: \"có\" },\n array: { unit: \"phần tử\", verb: \"có\" },\n set: { unit: \"phần tử\", verb: \"có\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const parsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"number\": {\n return Number.isNaN(data) ? \"NaN\" : \"số\";\n }\n case \"object\": {\n if (Array.isArray(data)) {\n return \"mảng\";\n }\n if (data === null) {\n return \"null\";\n }\n if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {\n return data.constructor.name;\n }\n }\n }\n return t;\n };\n const Nouns = {\n regex: \"đầu vào\",\n email: \"địa chỉ email\",\n url: \"URL\",\n emoji: \"emoji\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"ngày giờ ISO\",\n date: \"ngày ISO\",\n time: \"giờ ISO\",\n duration: \"khoảng thời gian ISO\",\n ipv4: \"địa chỉ IPv4\",\n ipv6: \"địa chỉ IPv6\",\n cidrv4: \"dải IPv4\",\n cidrv6: \"dải IPv6\",\n base64: \"chuỗi mã hóa base64\",\n base64url: \"chuỗi mã hóa base64url\",\n json_string: \"chuỗi JSON\",\n e164: \"số E.164\",\n jwt: \"JWT\",\n template_literal: \"đầu vào\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\":\n return `Đầu vào không hợp lệ: mong đợi ${issue.expected}, nhận được ${parsedType(issue.input)}`;\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `Đầu vào không hợp lệ: mong đợi ${util.stringifyPrimitive(issue.values[0])}`;\n return `Tùy chọn không hợp lệ: mong đợi một trong các giá trị ${util.joinValues(issue.values, \"|\")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing)\n return `Quá lớn: mong đợi ${issue.origin ?? \"giá trị\"} ${sizing.verb} ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"phần tử\"}`;\n return `Quá lớn: mong đợi ${issue.origin ?? \"giá trị\"} ${adj}${issue.maximum.toString()}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `Quá nhỏ: mong đợi ${issue.origin} ${sizing.verb} ${adj}${issue.minimum.toString()} ${sizing.unit}`;\n }\n return `Quá nhỏ: mong đợi ${issue.origin} ${adj}${issue.minimum.toString()}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\")\n return `Chuỗi không hợp lệ: phải bắt đầu bằng \"${_issue.prefix}\"`;\n if (_issue.format === \"ends_with\")\n return `Chuỗi không hợp lệ: phải kết thúc bằng \"${_issue.suffix}\"`;\n if (_issue.format === \"includes\")\n return `Chuỗi không hợp lệ: phải bao gồm \"${_issue.includes}\"`;\n if (_issue.format === \"regex\")\n return `Chuỗi không hợp lệ: phải khớp với mẫu ${_issue.pattern}`;\n return `${Nouns[_issue.format] ?? issue.format} không hợp lệ`;\n }\n case \"not_multiple_of\":\n return `Số không hợp lệ: phải là bội số của ${issue.divisor}`;\n case \"unrecognized_keys\":\n return `Khóa không được nhận dạng: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `Khóa không hợp lệ trong ${issue.origin}`;\n case \"invalid_union\":\n return \"Đầu vào không hợp lệ\";\n case \"invalid_element\":\n return `Giá trị không hợp lệ trong ${issue.origin}`;\n default:\n return `Đầu vào không hợp lệ`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n","import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"字符\", verb: \"包含\" },\n file: { unit: \"字节\", verb: \"包含\" },\n array: { unit: \"项\", verb: \"包含\" },\n set: { unit: \"项\", verb: \"包含\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const parsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"number\": {\n return Number.isNaN(data) ? \"非数字(NaN)\" : \"数字\";\n }\n case \"object\": {\n if (Array.isArray(data)) {\n return \"数组\";\n }\n if (data === null) {\n return \"空值(null)\";\n }\n if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {\n return data.constructor.name;\n }\n }\n }\n return t;\n };\n const Nouns = {\n regex: \"输入\",\n email: \"电子邮件\",\n url: \"URL\",\n emoji: \"表情符号\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"ISO日期时间\",\n date: \"ISO日期\",\n time: \"ISO时间\",\n duration: \"ISO时长\",\n ipv4: \"IPv4地址\",\n ipv6: \"IPv6地址\",\n cidrv4: \"IPv4网段\",\n cidrv6: \"IPv6网段\",\n base64: \"base64编码字符串\",\n base64url: \"base64url编码字符串\",\n json_string: \"JSON字符串\",\n e164: \"E.164号码\",\n jwt: \"JWT\",\n template_literal: \"输入\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\":\n return `无效输入:期望 ${issue.expected},实际接收 ${parsedType(issue.input)}`;\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `无效输入:期望 ${util.stringifyPrimitive(issue.values[0])}`;\n return `无效选项:期望以下之一 ${util.joinValues(issue.values, \"|\")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing)\n return `数值过大:期望 ${issue.origin ?? \"值\"} ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"个元素\"}`;\n return `数值过大:期望 ${issue.origin ?? \"值\"} ${adj}${issue.maximum.toString()}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `数值过小:期望 ${issue.origin} ${adj}${issue.minimum.toString()} ${sizing.unit}`;\n }\n return `数值过小:期望 ${issue.origin} ${adj}${issue.minimum.toString()}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\")\n return `无效字符串:必须以 \"${_issue.prefix}\" 开头`;\n if (_issue.format === \"ends_with\")\n return `无效字符串:必须以 \"${_issue.suffix}\" 结尾`;\n if (_issue.format === \"includes\")\n return `无效字符串:必须包含 \"${_issue.includes}\"`;\n if (_issue.format === \"regex\")\n return `无效字符串:必须满足正则表达式 ${_issue.pattern}`;\n return `无效${Nouns[_issue.format] ?? issue.format}`;\n }\n case \"not_multiple_of\":\n return `无效数字:必须是 ${issue.divisor} 的倍数`;\n case \"unrecognized_keys\":\n return `出现未知的键(key): ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `${issue.origin} 中的键(key)无效`;\n case \"invalid_union\":\n return \"无效输入\";\n case \"invalid_element\":\n return `${issue.origin} 中包含无效值(value)`;\n default:\n return `无效输入`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n","import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"字元\", verb: \"擁有\" },\n file: { unit: \"位元組\", verb: \"擁有\" },\n array: { unit: \"項目\", verb: \"擁有\" },\n set: { unit: \"項目\", verb: \"擁有\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const parsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"number\": {\n return Number.isNaN(data) ? \"NaN\" : \"number\";\n }\n case \"object\": {\n if (Array.isArray(data)) {\n return \"array\";\n }\n if (data === null) {\n return \"null\";\n }\n if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {\n return data.constructor.name;\n }\n }\n }\n return t;\n };\n const Nouns = {\n regex: \"輸入\",\n email: \"郵件地址\",\n url: \"URL\",\n emoji: \"emoji\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"ISO 日期時間\",\n date: \"ISO 日期\",\n time: \"ISO 時間\",\n duration: \"ISO 期間\",\n ipv4: \"IPv4 位址\",\n ipv6: \"IPv6 位址\",\n cidrv4: \"IPv4 範圍\",\n cidrv6: \"IPv6 範圍\",\n base64: \"base64 編碼字串\",\n base64url: \"base64url 編碼字串\",\n json_string: \"JSON 字串\",\n e164: \"E.164 數值\",\n jwt: \"JWT\",\n template_literal: \"輸入\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\":\n return `無效的輸入值:預期為 ${issue.expected},但收到 ${parsedType(issue.input)}`;\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `無效的輸入值:預期為 ${util.stringifyPrimitive(issue.values[0])}`;\n return `無效的選項:預期為以下其中之一 ${util.joinValues(issue.values, \"|\")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing)\n return `數值過大:預期 ${issue.origin ?? \"值\"} 應為 ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"個元素\"}`;\n return `數值過大:預期 ${issue.origin ?? \"值\"} 應為 ${adj}${issue.maximum.toString()}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `數值過小:預期 ${issue.origin} 應為 ${adj}${issue.minimum.toString()} ${sizing.unit}`;\n }\n return `數值過小:預期 ${issue.origin} 應為 ${adj}${issue.minimum.toString()}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\") {\n return `無效的字串:必須以 \"${_issue.prefix}\" 開頭`;\n }\n if (_issue.format === \"ends_with\")\n return `無效的字串:必須以 \"${_issue.suffix}\" 結尾`;\n if (_issue.format === \"includes\")\n return `無效的字串:必須包含 \"${_issue.includes}\"`;\n if (_issue.format === \"regex\")\n return `無效的字串:必須符合格式 ${_issue.pattern}`;\n return `無效的 ${Nouns[_issue.format] ?? issue.format}`;\n }\n case \"not_multiple_of\":\n return `無效的數字:必須為 ${issue.divisor} 的倍數`;\n case \"unrecognized_keys\":\n return `無法識別的鍵值${issue.keys.length > 1 ? \"們\" : \"\"}:${util.joinValues(issue.keys, \"、\")}`;\n case \"invalid_key\":\n return `${issue.origin} 中有無效的鍵值`;\n case \"invalid_union\":\n return \"無效的輸入值\";\n case \"invalid_element\":\n return `${issue.origin} 中有無效的值`;\n default:\n return `無效的輸入值`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n","export const $output = Symbol(\"ZodOutput\");\nexport const $input = Symbol(\"ZodInput\");\nexport class $ZodRegistry {\n constructor() {\n this._map = new Map();\n this._idmap = new Map();\n }\n add(schema, ..._meta) {\n const meta = _meta[0];\n this._map.set(schema, meta);\n if (meta && typeof meta === \"object\" && \"id\" in meta) {\n if (this._idmap.has(meta.id)) {\n throw new Error(`ID ${meta.id} already exists in the registry`);\n }\n this._idmap.set(meta.id, schema);\n }\n return this;\n }\n clear() {\n this._map = new Map();\n this._idmap = new Map();\n return this;\n }\n remove(schema) {\n const meta = this._map.get(schema);\n if (meta && typeof meta === \"object\" && \"id\" in meta) {\n this._idmap.delete(meta.id);\n }\n this._map.delete(schema);\n return this;\n }\n get(schema) {\n // return this._map.get(schema) as any;\n // inherit metadata\n const p = schema._zod.parent;\n if (p) {\n const pm = { ...(this.get(p) ?? {}) };\n delete pm.id; // do not inherit id\n return { ...pm, ...this._map.get(schema) };\n }\n return this._map.get(schema);\n }\n has(schema) {\n return this._map.has(schema);\n }\n}\n// registries\nexport function registry() {\n return new $ZodRegistry();\n}\nexport const globalRegistry = /*@__PURE__*/ registry();\n","import * as checks from \"./checks.js\";\nimport * as schemas from \"./schemas.js\";\nimport * as util from \"./util.js\";\nexport function _string(Class, params) {\n return new Class({\n type: \"string\",\n ...util.normalizeParams(params),\n });\n}\nexport function _coercedString(Class, params) {\n return new Class({\n type: \"string\",\n coerce: true,\n ...util.normalizeParams(params),\n });\n}\nexport function _email(Class, params) {\n return new Class({\n type: \"string\",\n format: \"email\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\nexport function _guid(Class, params) {\n return new Class({\n type: \"string\",\n format: \"guid\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\nexport function _uuid(Class, params) {\n return new Class({\n type: \"string\",\n format: \"uuid\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\nexport function _uuidv4(Class, params) {\n return new Class({\n type: \"string\",\n format: \"uuid\",\n check: \"string_format\",\n abort: false,\n version: \"v4\",\n ...util.normalizeParams(params),\n });\n}\nexport function _uuidv6(Class, params) {\n return new Class({\n type: \"string\",\n format: \"uuid\",\n check: \"string_format\",\n abort: false,\n version: \"v6\",\n ...util.normalizeParams(params),\n });\n}\nexport function _uuidv7(Class, params) {\n return new Class({\n type: \"string\",\n format: \"uuid\",\n check: \"string_format\",\n abort: false,\n version: \"v7\",\n ...util.normalizeParams(params),\n });\n}\nexport function _url(Class, params) {\n return new Class({\n type: \"string\",\n format: \"url\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\nexport function _emoji(Class, params) {\n return new Class({\n type: \"string\",\n format: \"emoji\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\nexport function _nanoid(Class, params) {\n return new Class({\n type: \"string\",\n format: \"nanoid\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\nexport function _cuid(Class, params) {\n return new Class({\n type: \"string\",\n format: \"cuid\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\nexport function _cuid2(Class, params) {\n return new Class({\n type: \"string\",\n format: \"cuid2\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\nexport function _ulid(Class, params) {\n return new Class({\n type: \"string\",\n format: \"ulid\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\nexport function _xid(Class, params) {\n return new Class({\n type: \"string\",\n format: \"xid\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\nexport function _ksuid(Class, params) {\n return new Class({\n type: \"string\",\n format: \"ksuid\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\nexport function _ipv4(Class, params) {\n return new Class({\n type: \"string\",\n format: \"ipv4\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\nexport function _ipv6(Class, params) {\n return new Class({\n type: \"string\",\n format: \"ipv6\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\nexport function _cidrv4(Class, params) {\n return new Class({\n type: \"string\",\n format: \"cidrv4\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\nexport function _cidrv6(Class, params) {\n return new Class({\n type: \"string\",\n format: \"cidrv6\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\nexport function _base64(Class, params) {\n return new Class({\n type: \"string\",\n format: \"base64\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\nexport function _base64url(Class, params) {\n return new Class({\n type: \"string\",\n format: \"base64url\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\nexport function _e164(Class, params) {\n return new Class({\n type: \"string\",\n format: \"e164\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\nexport function _jwt(Class, params) {\n return new Class({\n type: \"string\",\n format: \"jwt\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\nexport const TimePrecision = {\n Any: null,\n Minute: -1,\n Second: 0,\n Millisecond: 3,\n Microsecond: 6,\n};\nexport function _isoDateTime(Class, params) {\n return new Class({\n type: \"string\",\n format: \"datetime\",\n check: \"string_format\",\n offset: false,\n local: false,\n precision: null,\n ...util.normalizeParams(params),\n });\n}\nexport function _isoDate(Class, params) {\n return new Class({\n type: \"string\",\n format: \"date\",\n check: \"string_format\",\n ...util.normalizeParams(params),\n });\n}\nexport function _isoTime(Class, params) {\n return new Class({\n type: \"string\",\n format: \"time\",\n check: \"string_format\",\n precision: null,\n ...util.normalizeParams(params),\n });\n}\nexport function _isoDuration(Class, params) {\n return new Class({\n type: \"string\",\n format: \"duration\",\n check: \"string_format\",\n ...util.normalizeParams(params),\n });\n}\nexport function _number(Class, params) {\n return new Class({\n type: \"number\",\n checks: [],\n ...util.normalizeParams(params),\n });\n}\nexport function _coercedNumber(Class, params) {\n return new Class({\n type: \"number\",\n coerce: true,\n checks: [],\n ...util.normalizeParams(params),\n });\n}\nexport function _int(Class, params) {\n return new Class({\n type: \"number\",\n check: \"number_format\",\n abort: false,\n format: \"safeint\",\n ...util.normalizeParams(params),\n });\n}\nexport function _float32(Class, params) {\n return new Class({\n type: \"number\",\n check: \"number_format\",\n abort: false,\n format: \"float32\",\n ...util.normalizeParams(params),\n });\n}\nexport function _float64(Class, params) {\n return new Class({\n type: \"number\",\n check: \"number_format\",\n abort: false,\n format: \"float64\",\n ...util.normalizeParams(params),\n });\n}\nexport function _int32(Class, params) {\n return new Class({\n type: \"number\",\n check: \"number_format\",\n abort: false,\n format: \"int32\",\n ...util.normalizeParams(params),\n });\n}\nexport function _uint32(Class, params) {\n return new Class({\n type: \"number\",\n check: \"number_format\",\n abort: false,\n format: \"uint32\",\n ...util.normalizeParams(params),\n });\n}\nexport function _boolean(Class, params) {\n return new Class({\n type: \"boolean\",\n ...util.normalizeParams(params),\n });\n}\nexport function _coercedBoolean(Class, params) {\n return new Class({\n type: \"boolean\",\n coerce: true,\n ...util.normalizeParams(params),\n });\n}\nexport function _bigint(Class, params) {\n return new Class({\n type: \"bigint\",\n ...util.normalizeParams(params),\n });\n}\nexport function _coercedBigint(Class, params) {\n return new Class({\n type: \"bigint\",\n coerce: true,\n ...util.normalizeParams(params),\n });\n}\nexport function _int64(Class, params) {\n return new Class({\n type: \"bigint\",\n check: \"bigint_format\",\n abort: false,\n format: \"int64\",\n ...util.normalizeParams(params),\n });\n}\nexport function _uint64(Class, params) {\n return new Class({\n type: \"bigint\",\n check: \"bigint_format\",\n abort: false,\n format: \"uint64\",\n ...util.normalizeParams(params),\n });\n}\nexport function _symbol(Class, params) {\n return new Class({\n type: \"symbol\",\n ...util.normalizeParams(params),\n });\n}\nexport function _undefined(Class, params) {\n return new Class({\n type: \"undefined\",\n ...util.normalizeParams(params),\n });\n}\nexport function _null(Class, params) {\n return new Class({\n type: \"null\",\n ...util.normalizeParams(params),\n });\n}\nexport function _any(Class) {\n return new Class({\n type: \"any\",\n });\n}\nexport function _unknown(Class) {\n return new Class({\n type: \"unknown\",\n });\n}\nexport function _never(Class, params) {\n return new Class({\n type: \"never\",\n ...util.normalizeParams(params),\n });\n}\nexport function _void(Class, params) {\n return new Class({\n type: \"void\",\n ...util.normalizeParams(params),\n });\n}\nexport function _date(Class, params) {\n return new Class({\n type: \"date\",\n ...util.normalizeParams(params),\n });\n}\nexport function _coercedDate(Class, params) {\n return new Class({\n type: \"date\",\n coerce: true,\n ...util.normalizeParams(params),\n });\n}\nexport function _nan(Class, params) {\n return new Class({\n type: \"nan\",\n ...util.normalizeParams(params),\n });\n}\nexport function _lt(value, params) {\n return new checks.$ZodCheckLessThan({\n check: \"less_than\",\n ...util.normalizeParams(params),\n value,\n inclusive: false,\n });\n}\nexport function _lte(value, params) {\n return new checks.$ZodCheckLessThan({\n check: \"less_than\",\n ...util.normalizeParams(params),\n value,\n inclusive: true,\n });\n}\nexport { \n/** @deprecated Use `z.lte()` instead. */\n_lte as _max, };\nexport function _gt(value, params) {\n return new checks.$ZodCheckGreaterThan({\n check: \"greater_than\",\n ...util.normalizeParams(params),\n value,\n inclusive: false,\n });\n}\nexport function _gte(value, params) {\n return new checks.$ZodCheckGreaterThan({\n check: \"greater_than\",\n ...util.normalizeParams(params),\n value,\n inclusive: true,\n });\n}\nexport { \n/** @deprecated Use `z.gte()` instead. */\n_gte as _min, };\nexport function _positive(params) {\n return _gt(0, params);\n}\n// negative\nexport function _negative(params) {\n return _lt(0, params);\n}\n// nonpositive\nexport function _nonpositive(params) {\n return _lte(0, params);\n}\n// nonnegative\nexport function _nonnegative(params) {\n return _gte(0, params);\n}\nexport function _multipleOf(value, params) {\n return new checks.$ZodCheckMultipleOf({\n check: \"multiple_of\",\n ...util.normalizeParams(params),\n value,\n });\n}\nexport function _maxSize(maximum, params) {\n return new checks.$ZodCheckMaxSize({\n check: \"max_size\",\n ...util.normalizeParams(params),\n maximum,\n });\n}\nexport function _minSize(minimum, params) {\n return new checks.$ZodCheckMinSize({\n check: \"min_size\",\n ...util.normalizeParams(params),\n minimum,\n });\n}\nexport function _size(size, params) {\n return new checks.$ZodCheckSizeEquals({\n check: \"size_equals\",\n ...util.normalizeParams(params),\n size,\n });\n}\nexport function _maxLength(maximum, params) {\n const ch = new checks.$ZodCheckMaxLength({\n check: \"max_length\",\n ...util.normalizeParams(params),\n maximum,\n });\n return ch;\n}\nexport function _minLength(minimum, params) {\n return new checks.$ZodCheckMinLength({\n check: \"min_length\",\n ...util.normalizeParams(params),\n minimum,\n });\n}\nexport function _length(length, params) {\n return new checks.$ZodCheckLengthEquals({\n check: \"length_equals\",\n ...util.normalizeParams(params),\n length,\n });\n}\nexport function _regex(pattern, params) {\n return new checks.$ZodCheckRegex({\n check: \"string_format\",\n format: \"regex\",\n ...util.normalizeParams(params),\n pattern,\n });\n}\nexport function _lowercase(params) {\n return new checks.$ZodCheckLowerCase({\n check: \"string_format\",\n format: \"lowercase\",\n ...util.normalizeParams(params),\n });\n}\nexport function _uppercase(params) {\n return new checks.$ZodCheckUpperCase({\n check: \"string_format\",\n format: \"uppercase\",\n ...util.normalizeParams(params),\n });\n}\nexport function _includes(includes, params) {\n return new checks.$ZodCheckIncludes({\n check: \"string_format\",\n format: \"includes\",\n ...util.normalizeParams(params),\n includes,\n });\n}\nexport function _startsWith(prefix, params) {\n return new checks.$ZodCheckStartsWith({\n check: \"string_format\",\n format: \"starts_with\",\n ...util.normalizeParams(params),\n prefix,\n });\n}\nexport function _endsWith(suffix, params) {\n return new checks.$ZodCheckEndsWith({\n check: \"string_format\",\n format: \"ends_with\",\n ...util.normalizeParams(params),\n suffix,\n });\n}\nexport function _property(property, schema, params) {\n return new checks.$ZodCheckProperty({\n check: \"property\",\n property,\n schema,\n ...util.normalizeParams(params),\n });\n}\nexport function _mime(types, params) {\n return new checks.$ZodCheckMimeType({\n check: \"mime_type\",\n mime: types,\n ...util.normalizeParams(params),\n });\n}\nexport function _overwrite(tx) {\n return new checks.$ZodCheckOverwrite({\n check: \"overwrite\",\n tx,\n });\n}\n// normalize\nexport function _normalize(form) {\n return _overwrite((input) => input.normalize(form));\n}\n// trim\nexport function _trim() {\n return _overwrite((input) => input.trim());\n}\n// toLowerCase\nexport function _toLowerCase() {\n return _overwrite((input) => input.toLowerCase());\n}\n// toUpperCase\nexport function _toUpperCase() {\n return _overwrite((input) => input.toUpperCase());\n}\nexport function _array(Class, element, params) {\n return new Class({\n type: \"array\",\n element,\n // get element() {\n // return element;\n // },\n ...util.normalizeParams(params),\n });\n}\nexport function _union(Class, options, params) {\n return new Class({\n type: \"union\",\n options,\n ...util.normalizeParams(params),\n });\n}\nexport function _discriminatedUnion(Class, discriminator, options, params) {\n return new Class({\n type: \"union\",\n options,\n discriminator,\n ...util.normalizeParams(params),\n });\n}\nexport function _intersection(Class, left, right) {\n return new Class({\n type: \"intersection\",\n left,\n right,\n });\n}\n// export function _tuple(\n// Class: util.SchemaClass<schemas.$ZodTuple>,\n// items: [],\n// params?: string | $ZodTupleParams\n// ): schemas.$ZodTuple<[], null>;\nexport function _tuple(Class, items, _paramsOrRest, _params) {\n const hasRest = _paramsOrRest instanceof schemas.$ZodType;\n const params = hasRest ? _params : _paramsOrRest;\n const rest = hasRest ? _paramsOrRest : null;\n return new Class({\n type: \"tuple\",\n items,\n rest,\n ...util.normalizeParams(params),\n });\n}\nexport function _record(Class, keyType, valueType, params) {\n return new Class({\n type: \"record\",\n keyType,\n valueType,\n ...util.normalizeParams(params),\n });\n}\nexport function _map(Class, keyType, valueType, params) {\n return new Class({\n type: \"map\",\n keyType,\n valueType,\n ...util.normalizeParams(params),\n });\n}\nexport function _set(Class, valueType, params) {\n return new Class({\n type: \"set\",\n valueType,\n ...util.normalizeParams(params),\n });\n}\nexport function _enum(Class, values, params) {\n const entries = Array.isArray(values) ? Object.fromEntries(values.map((v) => [v, v])) : values;\n // if (Array.isArray(values)) {\n // for (const value of values) {\n // entries[value] = value;\n // }\n // } else {\n // Object.assign(entries, values);\n // }\n // const entries: util.EnumLike = {};\n // for (const val of values) {\n // entries[val] = val;\n // }\n return new Class({\n type: \"enum\",\n entries,\n ...util.normalizeParams(params),\n });\n}\n/** @deprecated This API has been merged into `z.enum()`. Use `z.enum()` instead.\n *\n * ```ts\n * enum Colors { red, green, blue }\n * z.enum(Colors);\n * ```\n */\nexport function _nativeEnum(Class, entries, params) {\n return new Class({\n type: \"enum\",\n entries,\n ...util.normalizeParams(params),\n });\n}\nexport function _literal(Class, value, params) {\n return new Class({\n type: \"literal\",\n values: Array.isArray(value) ? value : [value],\n ...util.normalizeParams(params),\n });\n}\nexport function _file(Class, params) {\n return new Class({\n type: \"file\",\n ...util.normalizeParams(params),\n });\n}\nexport function _transform(Class, fn) {\n return new Class({\n type: \"transform\",\n transform: fn,\n });\n}\nexport function _optional(Class, innerType) {\n return new Class({\n type: \"optional\",\n innerType,\n });\n}\nexport function _nullable(Class, innerType) {\n return new Class({\n type: \"nullable\",\n innerType,\n });\n}\nexport function _default(Class, innerType, defaultValue) {\n return new Class({\n type: \"default\",\n innerType,\n get defaultValue() {\n return typeof defaultValue === \"function\" ? defaultValue() : defaultValue;\n },\n });\n}\nexport function _nonoptional(Class, innerType, params) {\n return new Class({\n type: \"nonoptional\",\n innerType,\n ...util.normalizeParams(params),\n });\n}\nexport function _success(Class, innerType) {\n return new Class({\n type: \"success\",\n innerType,\n });\n}\nexport function _catch(Class, innerType, catchValue) {\n return new Class({\n type: \"catch\",\n innerType,\n catchValue: (typeof catchValue === \"function\" ? catchValue : () => catchValue),\n });\n}\nexport function _pipe(Class, in_, out) {\n return new Class({\n type: \"pipe\",\n in: in_,\n out,\n });\n}\nexport function _readonly(Class, innerType) {\n return new Class({\n type: \"readonly\",\n innerType,\n });\n}\nexport function _templateLiteral(Class, parts, params) {\n return new Class({\n type: \"template_literal\",\n parts,\n ...util.normalizeParams(params),\n });\n}\nexport function _lazy(Class, getter) {\n return new Class({\n type: \"lazy\",\n getter,\n });\n}\nexport function _promise(Class, innerType) {\n return new Class({\n type: \"promise\",\n innerType,\n });\n}\nexport function _custom(Class, fn, _params) {\n const norm = util.normalizeParams(_params);\n norm.abort ?? (norm.abort = true); // default to abort:false\n const schema = new Class({\n type: \"custom\",\n check: \"custom\",\n fn: fn,\n ...norm,\n });\n return schema;\n}\n// export function _refine<T>(\n// Class: util.SchemaClass<schemas.$ZodCustom>,\n// fn: (arg: NoInfer<T>) => util.MaybeAsync<unknown>,\n// _params: string | $ZodCustomParams = {}\n// ): checks.$ZodCheck<T> {\n// return _custom(Class, fn, _params);\n// }\n// same as _custom but defaults to abort:false\nexport function _refine(Class, fn, _params) {\n const schema = new Class({\n type: \"custom\",\n check: \"custom\",\n fn: fn,\n ...util.normalizeParams(_params),\n });\n return schema;\n}\nexport function _stringbool(Classes, _params) {\n const params = util.normalizeParams(_params);\n let truthyArray = params.truthy ?? [\"true\", \"1\", \"yes\", \"on\", \"y\", \"enabled\"];\n let falsyArray = params.falsy ?? [\"false\", \"0\", \"no\", \"off\", \"n\", \"disabled\"];\n if (params.case !== \"sensitive\") {\n truthyArray = truthyArray.map((v) => (typeof v === \"string\" ? v.toLowerCase() : v));\n falsyArray = falsyArray.map((v) => (typeof v === \"string\" ? v.toLowerCase() : v));\n }\n const truthySet = new Set(truthyArray);\n const falsySet = new Set(falsyArray);\n const _Pipe = Classes.Pipe ?? schemas.$ZodPipe;\n const _Boolean = Classes.Boolean ?? schemas.$ZodBoolean;\n const _String = Classes.String ?? schemas.$ZodString;\n const _Transform = Classes.Transform ?? schemas.$ZodTransform;\n const tx = new _Transform({\n type: \"transform\",\n transform: (input, payload) => {\n let data = input;\n if (params.case !== \"sensitive\")\n data = data.toLowerCase();\n if (truthySet.has(data)) {\n return true;\n }\n else if (falsySet.has(data)) {\n return false;\n }\n else {\n payload.issues.push({\n code: \"invalid_value\",\n expected: \"stringbool\",\n values: [...truthySet, ...falsySet],\n input: payload.value,\n inst: tx,\n });\n return {};\n }\n },\n error: params.error,\n });\n // params.error;\n const innerPipe = new _Pipe({\n type: \"pipe\",\n in: new _String({ type: \"string\", error: params.error }),\n out: tx,\n error: params.error,\n });\n const outerPipe = new _Pipe({\n type: \"pipe\",\n in: innerPipe,\n out: new _Boolean({\n type: \"boolean\",\n error: params.error,\n }),\n error: params.error,\n });\n return outerPipe;\n}\nexport function _stringFormat(Class, format, fnOrRegex, _params = {}) {\n const params = util.normalizeParams(_params);\n const def = {\n ...util.normalizeParams(_params),\n check: \"string_format\",\n type: \"string\",\n format,\n fn: typeof fnOrRegex === \"function\" ? fnOrRegex : (val) => fnOrRegex.test(val),\n ...params,\n };\n if (fnOrRegex instanceof RegExp) {\n def.pattern = fnOrRegex;\n }\n const inst = new Class(def);\n return inst;\n}\n","import { _array, _tuple, _unknown } from \"./api.js\";\nimport { parse, parseAsync } from \"./parse.js\";\nimport * as schemas from \"./schemas.js\";\nimport { $ZodTuple } from \"./schemas.js\";\nexport class $ZodFunction {\n constructor(def) {\n this._def = def;\n this.def = def;\n }\n implement(func) {\n if (typeof func !== \"function\") {\n throw new Error(\"implement() must be called with a function\");\n }\n const impl = ((...args) => {\n const parsedArgs = this._def.input ? parse(this._def.input, args, undefined, { callee: impl }) : args;\n if (!Array.isArray(parsedArgs)) {\n throw new Error(\"Invalid arguments schema: not an array or tuple schema.\");\n }\n const output = func(...parsedArgs);\n return this._def.output ? parse(this._def.output, output, undefined, { callee: impl }) : output;\n });\n return impl;\n }\n implementAsync(func) {\n if (typeof func !== \"function\") {\n throw new Error(\"implement() must be called with a function\");\n }\n const impl = (async (...args) => {\n const parsedArgs = this._def.input ? await parseAsync(this._def.input, args, undefined, { callee: impl }) : args;\n if (!Array.isArray(parsedArgs)) {\n throw new Error(\"Invalid arguments schema: not an array or tuple schema.\");\n }\n const output = await func(...parsedArgs);\n return this._def.output ? parseAsync(this._def.output, output, undefined, { callee: impl }) : output;\n });\n return impl;\n }\n input(...args) {\n const F = this.constructor;\n if (Array.isArray(args[0])) {\n return new F({\n type: \"function\",\n input: new $ZodTuple({\n type: \"tuple\",\n items: args[0],\n rest: args[1],\n }),\n output: this._def.output,\n });\n }\n return new F({\n type: \"function\",\n input: args[0],\n output: this._def.output,\n });\n }\n output(output) {\n const F = this.constructor;\n return new F({\n type: \"function\",\n input: this._def.input,\n output,\n });\n }\n}\nfunction _function(params) {\n return new $ZodFunction({\n type: \"function\",\n input: Array.isArray(params?.input)\n ? _tuple(schemas.$ZodTuple, params?.input)\n : (params?.input ?? _array(schemas.$ZodArray, _unknown(schemas.$ZodUnknown))),\n output: params?.output ?? _unknown(schemas.$ZodUnknown),\n });\n}\nexport { _function as function };\n","import { $ZodRegistry, globalRegistry } from \"./registries.js\";\nimport { getEnumValues } from \"./util.js\";\nexport class JSONSchemaGenerator {\n constructor(params) {\n this.counter = 0;\n this.metadataRegistry = params?.metadata ?? globalRegistry;\n this.target = params?.target ?? \"draft-2020-12\";\n this.unrepresentable = params?.unrepresentable ?? \"throw\";\n this.override = params?.override ?? (() => { });\n this.io = params?.io ?? \"output\";\n this.seen = new Map();\n }\n process(schema, _params = { path: [], schemaPath: [] }) {\n var _a;\n const def = schema._zod.def;\n const formatMap = {\n guid: \"uuid\",\n url: \"uri\",\n datetime: \"date-time\",\n json_string: \"json-string\",\n regex: \"\", // do not set\n };\n // check for schema in seens\n const seen = this.seen.get(schema);\n if (seen) {\n seen.count++;\n // check if cycle\n const isCycle = _params.schemaPath.includes(schema);\n if (isCycle) {\n seen.cycle = _params.path;\n }\n return seen.schema;\n }\n // initialize\n const result = { schema: {}, count: 1, cycle: undefined, path: _params.path };\n this.seen.set(schema, result);\n // custom method overrides default behavior\n const overrideSchema = schema._zod.toJSONSchema?.();\n if (overrideSchema) {\n result.schema = overrideSchema;\n }\n else {\n const params = {\n ..._params,\n schemaPath: [..._params.schemaPath, schema],\n path: _params.path,\n };\n const parent = schema._zod.parent;\n if (parent) {\n // schema was cloned from another schema\n result.ref = parent;\n this.process(parent, params);\n this.seen.get(parent).isParent = true;\n }\n else {\n const _json = result.schema;\n switch (def.type) {\n case \"string\": {\n const json = _json;\n json.type = \"string\";\n const { minimum, maximum, format, patterns, contentEncoding } = schema._zod\n .bag;\n if (typeof minimum === \"number\")\n json.minLength = minimum;\n if (typeof maximum === \"number\")\n json.maxLength = maximum;\n // custom pattern overrides format\n if (format) {\n json.format = formatMap[format] ?? format;\n if (json.format === \"\")\n delete json.format; // empty format is not valid\n }\n if (contentEncoding)\n json.contentEncoding = contentEncoding;\n if (patterns && patterns.size > 0) {\n const regexes = [...patterns];\n if (regexes.length === 1)\n json.pattern = regexes[0].source;\n else if (regexes.length > 1) {\n result.schema.allOf = [\n ...regexes.map((regex) => ({\n ...(this.target === \"draft-7\" ? { type: \"string\" } : {}),\n pattern: regex.source,\n })),\n ];\n }\n }\n break;\n }\n case \"number\": {\n const json = _json;\n const { minimum, maximum, format, multipleOf, exclusiveMaximum, exclusiveMinimum } = schema._zod.bag;\n if (typeof format === \"string\" && format.includes(\"int\"))\n json.type = \"integer\";\n else\n json.type = \"number\";\n if (typeof exclusiveMinimum === \"number\")\n json.exclusiveMinimum = exclusiveMinimum;\n if (typeof minimum === \"number\") {\n json.minimum = minimum;\n if (typeof exclusiveMinimum === \"number\") {\n if (exclusiveMinimum >= minimum)\n delete json.minimum;\n else\n delete json.exclusiveMinimum;\n }\n }\n if (typeof exclusiveMaximum === \"number\")\n json.exclusiveMaximum = exclusiveMaximum;\n if (typeof maximum === \"number\") {\n json.maximum = maximum;\n if (typeof exclusiveMaximum === \"number\") {\n if (exclusiveMaximum <= maximum)\n delete json.maximum;\n else\n delete json.exclusiveMaximum;\n }\n }\n if (typeof multipleOf === \"number\")\n json.multipleOf = multipleOf;\n break;\n }\n case \"boolean\": {\n const json = _json;\n json.type = \"boolean\";\n break;\n }\n case \"bigint\": {\n if (this.unrepresentable === \"throw\") {\n throw new Error(\"BigInt cannot be represented in JSON Schema\");\n }\n break;\n }\n case \"symbol\": {\n if (this.unrepresentable === \"throw\") {\n throw new Error(\"Symbols cannot be represented in JSON Schema\");\n }\n break;\n }\n case \"null\": {\n _json.type = \"null\";\n break;\n }\n case \"any\": {\n break;\n }\n case \"unknown\": {\n break;\n }\n case \"undefined\": {\n if (this.unrepresentable === \"throw\") {\n throw new Error(\"Undefined cannot be represented in JSON Schema\");\n }\n break;\n }\n case \"void\": {\n if (this.unrepresentable === \"throw\") {\n throw new Error(\"Void cannot be represented in JSON Schema\");\n }\n break;\n }\n case \"never\": {\n _json.not = {};\n break;\n }\n case \"date\": {\n if (this.unrepresentable === \"throw\") {\n throw new Error(\"Date cannot be represented in JSON Schema\");\n }\n break;\n }\n case \"array\": {\n const json = _json;\n const { minimum, maximum } = schema._zod.bag;\n if (typeof minimum === \"number\")\n json.minItems = minimum;\n if (typeof maximum === \"number\")\n json.maxItems = maximum;\n json.type = \"array\";\n json.items = this.process(def.element, { ...params, path: [...params.path, \"items\"] });\n break;\n }\n case \"object\": {\n const json = _json;\n json.type = \"object\";\n json.properties = {};\n const shape = def.shape; // params.shapeCache.get(schema)!;\n for (const key in shape) {\n json.properties[key] = this.process(shape[key], {\n ...params,\n path: [...params.path, \"properties\", key],\n });\n }\n // required keys\n const allKeys = new Set(Object.keys(shape));\n // const optionalKeys = new Set(def.optional);\n const requiredKeys = new Set([...allKeys].filter((key) => {\n const v = def.shape[key]._zod;\n if (this.io === \"input\") {\n return v.optin === undefined;\n }\n else {\n return v.optout === undefined;\n }\n }));\n if (requiredKeys.size > 0) {\n json.required = Array.from(requiredKeys);\n }\n // catchall\n if (def.catchall?._zod.def.type === \"never\") {\n // strict\n json.additionalProperties = false;\n }\n else if (!def.catchall) {\n // regular\n if (this.io === \"output\")\n json.additionalProperties = false;\n }\n else if (def.catchall) {\n json.additionalProperties = this.process(def.catchall, {\n ...params,\n path: [...params.path, \"additionalProperties\"],\n });\n }\n break;\n }\n case \"union\": {\n const json = _json;\n json.anyOf = def.options.map((x, i) => this.process(x, {\n ...params,\n path: [...params.path, \"anyOf\", i],\n }));\n break;\n }\n case \"intersection\": {\n const json = _json;\n const a = this.process(def.left, {\n ...params,\n path: [...params.path, \"allOf\", 0],\n });\n const b = this.process(def.right, {\n ...params,\n path: [...params.path, \"allOf\", 1],\n });\n const isSimpleIntersection = (val) => \"allOf\" in val && Object.keys(val).length === 1;\n const allOf = [\n ...(isSimpleIntersection(a) ? a.allOf : [a]),\n ...(isSimpleIntersection(b) ? b.allOf : [b]),\n ];\n json.allOf = allOf;\n break;\n }\n case \"tuple\": {\n const json = _json;\n json.type = \"array\";\n const prefixItems = def.items.map((x, i) => this.process(x, { ...params, path: [...params.path, \"prefixItems\", i] }));\n if (this.target === \"draft-2020-12\") {\n json.prefixItems = prefixItems;\n }\n else {\n json.items = prefixItems;\n }\n if (def.rest) {\n const rest = this.process(def.rest, {\n ...params,\n path: [...params.path, \"items\"],\n });\n if (this.target === \"draft-2020-12\") {\n json.items = rest;\n }\n else {\n json.additionalItems = rest;\n }\n }\n // additionalItems\n if (def.rest) {\n json.items = this.process(def.rest, {\n ...params,\n path: [...params.path, \"items\"],\n });\n }\n // length\n const { minimum, maximum } = schema._zod.bag;\n if (typeof minimum === \"number\")\n json.minItems = minimum;\n if (typeof maximum === \"number\")\n json.maxItems = maximum;\n break;\n }\n case \"record\": {\n const json = _json;\n json.type = \"object\";\n json.propertyNames = this.process(def.keyType, { ...params, path: [...params.path, \"propertyNames\"] });\n json.additionalProperties = this.process(def.valueType, {\n ...params,\n path: [...params.path, \"additionalProperties\"],\n });\n break;\n }\n case \"map\": {\n if (this.unrepresentable === \"throw\") {\n throw new Error(\"Map cannot be represented in JSON Schema\");\n }\n break;\n }\n case \"set\": {\n if (this.unrepresentable === \"throw\") {\n throw new Error(\"Set cannot be represented in JSON Schema\");\n }\n break;\n }\n case \"enum\": {\n const json = _json;\n const values = getEnumValues(def.entries);\n // Number enums can have both string and number values\n if (values.every((v) => typeof v === \"number\"))\n json.type = \"number\";\n if (values.every((v) => typeof v === \"string\"))\n json.type = \"string\";\n json.enum = values;\n break;\n }\n case \"literal\": {\n const json = _json;\n const vals = [];\n for (const val of def.values) {\n if (val === undefined) {\n if (this.unrepresentable === \"throw\") {\n throw new Error(\"Literal `undefined` cannot be represented in JSON Schema\");\n }\n else {\n // do not add to vals\n }\n }\n else if (typeof val === \"bigint\") {\n if (this.unrepresentable === \"throw\") {\n throw new Error(\"BigInt literals cannot be represented in JSON Schema\");\n }\n else {\n vals.push(Number(val));\n }\n }\n else {\n vals.push(val);\n }\n }\n if (vals.length === 0) {\n // do nothing (an undefined literal was stripped)\n }\n else if (vals.length === 1) {\n const val = vals[0];\n json.type = val === null ? \"null\" : typeof val;\n json.const = val;\n }\n else {\n if (vals.every((v) => typeof v === \"number\"))\n json.type = \"number\";\n if (vals.every((v) => typeof v === \"string\"))\n json.type = \"string\";\n if (vals.every((v) => typeof v === \"boolean\"))\n json.type = \"string\";\n if (vals.every((v) => v === null))\n json.type = \"null\";\n json.enum = vals;\n }\n break;\n }\n case \"file\": {\n const json = _json;\n const file = {\n type: \"string\",\n format: \"binary\",\n contentEncoding: \"binary\",\n };\n const { minimum, maximum, mime } = schema._zod.bag;\n if (minimum !== undefined)\n file.minLength = minimum;\n if (maximum !== undefined)\n file.maxLength = maximum;\n if (mime) {\n if (mime.length === 1) {\n file.contentMediaType = mime[0];\n Object.assign(json, file);\n }\n else {\n json.anyOf = mime.map((m) => {\n const mFile = { ...file, contentMediaType: m };\n return mFile;\n });\n }\n }\n else {\n Object.assign(json, file);\n }\n // if (this.unrepresentable === \"throw\") {\n // throw new Error(\"File cannot be represented in JSON Schema\");\n // }\n break;\n }\n case \"transform\": {\n if (this.unrepresentable === \"throw\") {\n throw new Error(\"Transforms cannot be represented in JSON Schema\");\n }\n break;\n }\n case \"nullable\": {\n const inner = this.process(def.innerType, params);\n _json.anyOf = [inner, { type: \"null\" }];\n break;\n }\n case \"nonoptional\": {\n this.process(def.innerType, params);\n result.ref = def.innerType;\n break;\n }\n case \"success\": {\n const json = _json;\n json.type = \"boolean\";\n break;\n }\n case \"default\": {\n this.process(def.innerType, params);\n result.ref = def.innerType;\n _json.default = JSON.parse(JSON.stringify(def.defaultValue));\n break;\n }\n case \"prefault\": {\n this.process(def.innerType, params);\n result.ref = def.innerType;\n if (this.io === \"input\")\n _json._prefault = JSON.parse(JSON.stringify(def.defaultValue));\n break;\n }\n case \"catch\": {\n // use conditionals\n this.process(def.innerType, params);\n result.ref = def.innerType;\n let catchValue;\n try {\n catchValue = def.catchValue(undefined);\n }\n catch {\n throw new Error(\"Dynamic catch values are not supported in JSON Schema\");\n }\n _json.default = catchValue;\n break;\n }\n case \"nan\": {\n if (this.unrepresentable === \"throw\") {\n throw new Error(\"NaN cannot be represented in JSON Schema\");\n }\n break;\n }\n case \"template_literal\": {\n const json = _json;\n const pattern = schema._zod.pattern;\n if (!pattern)\n throw new Error(\"Pattern not found in template literal\");\n json.type = \"string\";\n json.pattern = pattern.source;\n break;\n }\n case \"pipe\": {\n const innerType = this.io === \"input\" ? (def.in._zod.def.type === \"transform\" ? def.out : def.in) : def.out;\n this.process(innerType, params);\n result.ref = innerType;\n break;\n }\n case \"readonly\": {\n this.process(def.innerType, params);\n result.ref = def.innerType;\n _json.readOnly = true;\n break;\n }\n // passthrough types\n case \"promise\": {\n this.process(def.innerType, params);\n result.ref = def.innerType;\n break;\n }\n case \"optional\": {\n this.process(def.innerType, params);\n result.ref = def.innerType;\n break;\n }\n case \"lazy\": {\n const innerType = schema._zod.innerType;\n this.process(innerType, params);\n result.ref = innerType;\n break;\n }\n case \"custom\": {\n if (this.unrepresentable === \"throw\") {\n throw new Error(\"Custom types cannot be represented in JSON Schema\");\n }\n break;\n }\n default: {\n def;\n }\n }\n }\n }\n // metadata\n const meta = this.metadataRegistry.get(schema);\n if (meta)\n Object.assign(result.schema, meta);\n if (this.io === \"input\" && isTransforming(schema)) {\n // examples/defaults only apply to output type of pipe\n delete result.schema.examples;\n delete result.schema.default;\n }\n // set prefault as default\n if (this.io === \"input\" && result.schema._prefault)\n (_a = result.schema).default ?? (_a.default = result.schema._prefault);\n delete result.schema._prefault;\n // pulling fresh from this.seen in case it was overwritten\n const _result = this.seen.get(schema);\n return _result.schema;\n }\n emit(schema, _params) {\n const params = {\n cycles: _params?.cycles ?? \"ref\",\n reused: _params?.reused ?? \"inline\",\n // unrepresentable: _params?.unrepresentable ?? \"throw\",\n // uri: _params?.uri ?? ((id) => `${id}`),\n external: _params?.external ?? undefined,\n };\n // iterate over seen map;\n const root = this.seen.get(schema);\n if (!root)\n throw new Error(\"Unprocessed schema. This is a bug in Zod.\");\n // initialize result with root schema fields\n // Object.assign(result, seen.cached);\n // returns a ref to the schema\n // defId will be empty if the ref points to an external schema (or #)\n const makeURI = (entry) => {\n // comparing the seen objects because sometimes\n // multiple schemas map to the same seen object.\n // e.g. lazy\n // external is configured\n const defsSegment = this.target === \"draft-2020-12\" ? \"$defs\" : \"definitions\";\n if (params.external) {\n const externalId = params.external.registry.get(entry[0])?.id; // ?? \"__shared\";// `__schema${this.counter++}`;\n // check if schema is in the external registry\n const uriGenerator = params.external.uri ?? ((id) => id);\n if (externalId) {\n return { ref: uriGenerator(externalId) };\n }\n // otherwise, add to __shared\n const id = entry[1].defId ?? entry[1].schema.id ?? `schema${this.counter++}`;\n entry[1].defId = id; // set defId so it will be reused if needed\n return { defId: id, ref: `${uriGenerator(\"__shared\")}#/${defsSegment}/${id}` };\n }\n if (entry[1] === root) {\n return { ref: \"#\" };\n }\n // self-contained schema\n const uriPrefix = `#`;\n const defUriPrefix = `${uriPrefix}/${defsSegment}/`;\n const defId = entry[1].schema.id ?? `__schema${this.counter++}`;\n return { defId, ref: defUriPrefix + defId };\n };\n // stored cached version in `def` property\n // remove all properties, set $ref\n const extractToDef = (entry) => {\n // if the schema is already a reference, do not extract it\n if (entry[1].schema.$ref) {\n return;\n }\n const seen = entry[1];\n const { ref, defId } = makeURI(entry);\n seen.def = { ...seen.schema };\n // defId won't be set if the schema is a reference to an external schema\n if (defId)\n seen.defId = defId;\n // wipe away all properties except $ref\n const schema = seen.schema;\n for (const key in schema) {\n delete schema[key];\n }\n schema.$ref = ref;\n };\n // throw on cycles\n // break cycles\n if (params.cycles === \"throw\") {\n for (const entry of this.seen.entries()) {\n const seen = entry[1];\n if (seen.cycle) {\n throw new Error(\"Cycle detected: \" +\n `#/${seen.cycle?.join(\"/\")}/<root>` +\n '\\n\\nSet the `cycles` parameter to `\"ref\"` to resolve cyclical schemas with defs.');\n }\n }\n }\n // extract schemas into $defs\n for (const entry of this.seen.entries()) {\n const seen = entry[1];\n // convert root schema to # $ref\n if (schema === entry[0]) {\n extractToDef(entry); // this has special handling for the root schema\n continue;\n }\n // extract schemas that are in the external registry\n if (params.external) {\n const ext = params.external.registry.get(entry[0])?.id;\n if (schema !== entry[0] && ext) {\n extractToDef(entry);\n continue;\n }\n }\n // extract schemas with `id` meta\n const id = this.metadataRegistry.get(entry[0])?.id;\n if (id) {\n extractToDef(entry);\n continue;\n }\n // break cycles\n if (seen.cycle) {\n // any\n extractToDef(entry);\n continue;\n }\n // extract reused schemas\n if (seen.count > 1) {\n if (params.reused === \"ref\") {\n extractToDef(entry);\n // biome-ignore lint:\n continue;\n }\n }\n }\n // flatten _refs\n const flattenRef = (zodSchema, params) => {\n const seen = this.seen.get(zodSchema);\n const schema = seen.def ?? seen.schema;\n const _cached = { ...schema };\n // already seen\n if (seen.ref === null) {\n return;\n }\n // flatten ref if defined\n const ref = seen.ref;\n seen.ref = null; // prevent recursion\n if (ref) {\n flattenRef(ref, params);\n // merge referenced schema into current\n const refSchema = this.seen.get(ref).schema;\n if (refSchema.$ref && params.target === \"draft-7\") {\n schema.allOf = schema.allOf ?? [];\n schema.allOf.push(refSchema);\n }\n else {\n Object.assign(schema, refSchema);\n Object.assign(schema, _cached); // prevent overwriting any fields in the original schema\n }\n }\n // execute overrides\n if (!seen.isParent)\n this.override({\n zodSchema: zodSchema,\n jsonSchema: schema,\n path: seen.path ?? [],\n });\n };\n for (const entry of [...this.seen.entries()].reverse()) {\n flattenRef(entry[0], { target: this.target });\n }\n const result = {};\n if (this.target === \"draft-2020-12\") {\n result.$schema = \"https://json-schema.org/draft/2020-12/schema\";\n }\n else if (this.target === \"draft-7\") {\n result.$schema = \"http://json-schema.org/draft-07/schema#\";\n }\n else {\n console.warn(`Invalid target: ${this.target}`);\n }\n if (params.external?.uri) {\n const id = params.external.registry.get(schema)?.id;\n if (!id)\n throw new Error(\"Schema is missing an `id` property\");\n result.$id = params.external.uri(id);\n }\n Object.assign(result, root.def);\n // build defs object\n const defs = params.external?.defs ?? {};\n for (const entry of this.seen.entries()) {\n const seen = entry[1];\n if (seen.def && seen.defId) {\n defs[seen.defId] = seen.def;\n }\n }\n // set definitions in result\n if (params.external) {\n }\n else {\n if (Object.keys(defs).length > 0) {\n if (this.target === \"draft-2020-12\") {\n result.$defs = defs;\n }\n else {\n result.definitions = defs;\n }\n }\n }\n try {\n // this \"finalizes\" this schema and ensures all cycles are removed\n // each call to .emit() is functionally independent\n // though the seen map is shared\n return JSON.parse(JSON.stringify(result));\n }\n catch (_err) {\n throw new Error(\"Error converting schema to JSON.\");\n }\n }\n}\nexport function toJSONSchema(input, _params) {\n if (input instanceof $ZodRegistry) {\n const gen = new JSONSchemaGenerator(_params);\n const defs = {};\n for (const entry of input._idmap.entries()) {\n const [_, schema] = entry;\n gen.process(schema);\n }\n const schemas = {};\n const external = {\n registry: input,\n uri: _params?.uri,\n defs,\n };\n for (const entry of input._idmap.entries()) {\n const [key, schema] = entry;\n schemas[key] = gen.emit(schema, {\n ..._params,\n external,\n });\n }\n if (Object.keys(defs).length > 0) {\n const defsSegment = gen.target === \"draft-2020-12\" ? \"$defs\" : \"definitions\";\n schemas.__shared = {\n [defsSegment]: defs,\n };\n }\n return { schemas };\n }\n const gen = new JSONSchemaGenerator(_params);\n gen.process(input);\n return gen.emit(input, _params);\n}\nfunction isTransforming(_schema, _ctx) {\n const ctx = _ctx ?? { seen: new Set() };\n if (ctx.seen.has(_schema))\n return false;\n ctx.seen.add(_schema);\n const schema = _schema;\n const def = schema._zod.def;\n switch (def.type) {\n case \"string\":\n case \"number\":\n case \"bigint\":\n case \"boolean\":\n case \"date\":\n case \"symbol\":\n case \"undefined\":\n case \"null\":\n case \"any\":\n case \"unknown\":\n case \"never\":\n case \"void\":\n case \"literal\":\n case \"enum\":\n case \"nan\":\n case \"file\":\n case \"template_literal\":\n return false;\n case \"array\": {\n return isTransforming(def.element, ctx);\n }\n case \"object\": {\n for (const key in def.shape) {\n if (isTransforming(def.shape[key], ctx))\n return true;\n }\n return false;\n }\n case \"union\": {\n for (const option of def.options) {\n if (isTransforming(option, ctx))\n return true;\n }\n return false;\n }\n case \"intersection\": {\n return isTransforming(def.left, ctx) || isTransforming(def.right, ctx);\n }\n case \"tuple\": {\n for (const item of def.items) {\n if (isTransforming(item, ctx))\n return true;\n }\n if (def.rest && isTransforming(def.rest, ctx))\n return true;\n return false;\n }\n case \"record\": {\n return isTransforming(def.keyType, ctx) || isTransforming(def.valueType, ctx);\n }\n case \"map\": {\n return isTransforming(def.keyType, ctx) || isTransforming(def.valueType, ctx);\n }\n case \"set\": {\n return isTransforming(def.valueType, ctx);\n }\n // inner types\n case \"promise\":\n case \"optional\":\n case \"nonoptional\":\n case \"nullable\":\n case \"readonly\":\n return isTransforming(def.innerType, ctx);\n case \"lazy\":\n return isTransforming(def.getter(), ctx);\n case \"default\": {\n return isTransforming(def.innerType, ctx);\n }\n case \"prefault\": {\n return isTransforming(def.innerType, ctx);\n }\n case \"custom\": {\n return false;\n }\n case \"transform\": {\n return true;\n }\n case \"pipe\": {\n return isTransforming(def.in, ctx) || isTransforming(def.out, ctx);\n }\n case \"success\": {\n return false;\n }\n case \"catch\": {\n return false;\n }\n default:\n def;\n }\n throw new Error(`Unknown schema type: ${def.type}`);\n}\n","export {};\n","import * as core from \"../core/index.js\";\nimport * as schemas from \"./schemas.js\";\nexport const ZodISODateTime = /*@__PURE__*/ core.$constructor(\"ZodISODateTime\", (inst, def) => {\n core.$ZodISODateTime.init(inst, def);\n schemas.ZodStringFormat.init(inst, def);\n});\nexport function datetime(params) {\n return core._isoDateTime(ZodISODateTime, params);\n}\nexport const ZodISODate = /*@__PURE__*/ core.$constructor(\"ZodISODate\", (inst, def) => {\n core.$ZodISODate.init(inst, def);\n schemas.ZodStringFormat.init(inst, def);\n});\nexport function date(params) {\n return core._isoDate(ZodISODate, params);\n}\nexport const ZodISOTime = /*@__PURE__*/ core.$constructor(\"ZodISOTime\", (inst, def) => {\n core.$ZodISOTime.init(inst, def);\n schemas.ZodStringFormat.init(inst, def);\n});\nexport function time(params) {\n return core._isoTime(ZodISOTime, params);\n}\nexport const ZodISODuration = /*@__PURE__*/ core.$constructor(\"ZodISODuration\", (inst, def) => {\n core.$ZodISODuration.init(inst, def);\n schemas.ZodStringFormat.init(inst, def);\n});\nexport function duration(params) {\n return core._isoDuration(ZodISODuration, params);\n}\n","import * as core from \"../core/index.js\";\nimport { $ZodError } from \"../core/index.js\";\nconst initializer = (inst, issues) => {\n $ZodError.init(inst, issues);\n inst.name = \"ZodError\";\n Object.defineProperties(inst, {\n format: {\n value: (mapper) => core.formatError(inst, mapper),\n // enumerable: false,\n },\n flatten: {\n value: (mapper) => core.flattenError(inst, mapper),\n // enumerable: false,\n },\n addIssue: {\n value: (issue) => inst.issues.push(issue),\n // enumerable: false,\n },\n addIssues: {\n value: (issues) => inst.issues.push(...issues),\n // enumerable: false,\n },\n isEmpty: {\n get() {\n return inst.issues.length === 0;\n },\n // enumerable: false,\n },\n });\n // Object.defineProperty(inst, \"isEmpty\", {\n // get() {\n // return inst.issues.length === 0;\n // },\n // });\n};\nexport const ZodError = core.$constructor(\"ZodError\", initializer);\nexport const ZodRealError = core.$constructor(\"ZodError\", initializer, {\n Parent: Error,\n});\n// /** @deprecated Use `z.core.$ZodErrorMapCtx` instead. */\n// export type ErrorMapCtx = core.$ZodErrorMapCtx;\n","import * as core from \"../core/index.js\";\nimport { ZodRealError } from \"./errors.js\";\nexport const parse = /* @__PURE__ */ core._parse(ZodRealError);\nexport const parseAsync = /* @__PURE__ */ core._parseAsync(ZodRealError);\nexport const safeParse = /* @__PURE__ */ core._safeParse(ZodRealError);\nexport const safeParseAsync = /* @__PURE__ */ core._safeParseAsync(ZodRealError);\n","import * as core from \"../core/index.js\";\nimport { util } from \"../core/index.js\";\nimport * as checks from \"./checks.js\";\nimport * as iso from \"./iso.js\";\nimport * as parse from \"./parse.js\";\nexport const ZodType = /*@__PURE__*/ core.$constructor(\"ZodType\", (inst, def) => {\n core.$ZodType.init(inst, def);\n inst.def = def;\n Object.defineProperty(inst, \"_def\", { value: def });\n // base methods\n inst.check = (...checks) => {\n return inst.clone({\n ...def,\n checks: [\n ...(def.checks ?? []),\n ...checks.map((ch) => typeof ch === \"function\" ? { _zod: { check: ch, def: { check: \"custom\" }, onattach: [] } } : ch),\n ],\n }\n // { parent: true }\n );\n };\n inst.clone = (def, params) => core.clone(inst, def, params);\n inst.brand = () => inst;\n inst.register = ((reg, meta) => {\n reg.add(inst, meta);\n return inst;\n });\n // parsing\n inst.parse = (data, params) => parse.parse(inst, data, params, { callee: inst.parse });\n inst.safeParse = (data, params) => parse.safeParse(inst, data, params);\n inst.parseAsync = async (data, params) => parse.parseAsync(inst, data, params, { callee: inst.parseAsync });\n inst.safeParseAsync = async (data, params) => parse.safeParseAsync(inst, data, params);\n inst.spa = inst.safeParseAsync;\n // refinements\n inst.refine = (check, params) => inst.check(refine(check, params));\n inst.superRefine = (refinement) => inst.check(superRefine(refinement));\n inst.overwrite = (fn) => inst.check(checks.overwrite(fn));\n // wrappers\n inst.optional = () => optional(inst);\n inst.nullable = () => nullable(inst);\n inst.nullish = () => optional(nullable(inst));\n inst.nonoptional = (params) => nonoptional(inst, params);\n inst.array = () => array(inst);\n inst.or = (arg) => union([inst, arg]);\n inst.and = (arg) => intersection(inst, arg);\n inst.transform = (tx) => pipe(inst, transform(tx));\n inst.default = (def) => _default(inst, def);\n inst.prefault = (def) => prefault(inst, def);\n // inst.coalesce = (def, params) => coalesce(inst, def, params);\n inst.catch = (params) => _catch(inst, params);\n inst.pipe = (target) => pipe(inst, target);\n inst.readonly = () => readonly(inst);\n // meta\n inst.describe = (description) => {\n const cl = inst.clone();\n core.globalRegistry.add(cl, { description });\n return cl;\n };\n Object.defineProperty(inst, \"description\", {\n get() {\n return core.globalRegistry.get(inst)?.description;\n },\n configurable: true,\n });\n inst.meta = (...args) => {\n if (args.length === 0) {\n return core.globalRegistry.get(inst);\n }\n const cl = inst.clone();\n core.globalRegistry.add(cl, args[0]);\n return cl;\n };\n // helpers\n inst.isOptional = () => inst.safeParse(undefined).success;\n inst.isNullable = () => inst.safeParse(null).success;\n return inst;\n});\n/** @internal */\nexport const _ZodString = /*@__PURE__*/ core.$constructor(\"_ZodString\", (inst, def) => {\n core.$ZodString.init(inst, def);\n ZodType.init(inst, def);\n const bag = inst._zod.bag;\n inst.format = bag.format ?? null;\n inst.minLength = bag.minimum ?? null;\n inst.maxLength = bag.maximum ?? null;\n // validations\n inst.regex = (...args) => inst.check(checks.regex(...args));\n inst.includes = (...args) => inst.check(checks.includes(...args));\n inst.startsWith = (...args) => inst.check(checks.startsWith(...args));\n inst.endsWith = (...args) => inst.check(checks.endsWith(...args));\n inst.min = (...args) => inst.check(checks.minLength(...args));\n inst.max = (...args) => inst.check(checks.maxLength(...args));\n inst.length = (...args) => inst.check(checks.length(...args));\n inst.nonempty = (...args) => inst.check(checks.minLength(1, ...args));\n inst.lowercase = (params) => inst.check(checks.lowercase(params));\n inst.uppercase = (params) => inst.check(checks.uppercase(params));\n // transforms\n inst.trim = () => inst.check(checks.trim());\n inst.normalize = (...args) => inst.check(checks.normalize(...args));\n inst.toLowerCase = () => inst.check(checks.toLowerCase());\n inst.toUpperCase = () => inst.check(checks.toUpperCase());\n});\nexport const ZodString = /*@__PURE__*/ core.$constructor(\"ZodString\", (inst, def) => {\n core.$ZodString.init(inst, def);\n _ZodString.init(inst, def);\n inst.email = (params) => inst.check(core._email(ZodEmail, params));\n inst.url = (params) => inst.check(core._url(ZodURL, params));\n inst.jwt = (params) => inst.check(core._jwt(ZodJWT, params));\n inst.emoji = (params) => inst.check(core._emoji(ZodEmoji, params));\n inst.guid = (params) => inst.check(core._guid(ZodGUID, params));\n inst.uuid = (params) => inst.check(core._uuid(ZodUUID, params));\n inst.uuidv4 = (params) => inst.check(core._uuidv4(ZodUUID, params));\n inst.uuidv6 = (params) => inst.check(core._uuidv6(ZodUUID, params));\n inst.uuidv7 = (params) => inst.check(core._uuidv7(ZodUUID, params));\n inst.nanoid = (params) => inst.check(core._nanoid(ZodNanoID, params));\n inst.guid = (params) => inst.check(core._guid(ZodGUID, params));\n inst.cuid = (params) => inst.check(core._cuid(ZodCUID, params));\n inst.cuid2 = (params) => inst.check(core._cuid2(ZodCUID2, params));\n inst.ulid = (params) => inst.check(core._ulid(ZodULID, params));\n inst.base64 = (params) => inst.check(core._base64(ZodBase64, params));\n inst.base64url = (params) => inst.check(core._base64url(ZodBase64URL, params));\n inst.xid = (params) => inst.check(core._xid(ZodXID, params));\n inst.ksuid = (params) => inst.check(core._ksuid(ZodKSUID, params));\n inst.ipv4 = (params) => inst.check(core._ipv4(ZodIPv4, params));\n inst.ipv6 = (params) => inst.check(core._ipv6(ZodIPv6, params));\n inst.cidrv4 = (params) => inst.check(core._cidrv4(ZodCIDRv4, params));\n inst.cidrv6 = (params) => inst.check(core._cidrv6(ZodCIDRv6, params));\n inst.e164 = (params) => inst.check(core._e164(ZodE164, params));\n // iso\n inst.datetime = (params) => inst.check(iso.datetime(params));\n inst.date = (params) => inst.check(iso.date(params));\n inst.time = (params) => inst.check(iso.time(params));\n inst.duration = (params) => inst.check(iso.duration(params));\n});\nexport function string(params) {\n return core._string(ZodString, params);\n}\nexport const ZodStringFormat = /*@__PURE__*/ core.$constructor(\"ZodStringFormat\", (inst, def) => {\n core.$ZodStringFormat.init(inst, def);\n _ZodString.init(inst, def);\n});\nexport const ZodEmail = /*@__PURE__*/ core.$constructor(\"ZodEmail\", (inst, def) => {\n // ZodStringFormat.init(inst, def);\n core.$ZodEmail.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function email(params) {\n return core._email(ZodEmail, params);\n}\nexport const ZodGUID = /*@__PURE__*/ core.$constructor(\"ZodGUID\", (inst, def) => {\n // ZodStringFormat.init(inst, def);\n core.$ZodGUID.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function guid(params) {\n return core._guid(ZodGUID, params);\n}\nexport const ZodUUID = /*@__PURE__*/ core.$constructor(\"ZodUUID\", (inst, def) => {\n // ZodStringFormat.init(inst, def);\n core.$ZodUUID.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function uuid(params) {\n return core._uuid(ZodUUID, params);\n}\nexport function uuidv4(params) {\n return core._uuidv4(ZodUUID, params);\n}\n// ZodUUIDv6\nexport function uuidv6(params) {\n return core._uuidv6(ZodUUID, params);\n}\n// ZodUUIDv7\nexport function uuidv7(params) {\n return core._uuidv7(ZodUUID, params);\n}\nexport const ZodURL = /*@__PURE__*/ core.$constructor(\"ZodURL\", (inst, def) => {\n // ZodStringFormat.init(inst, def);\n core.$ZodURL.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function url(params) {\n return core._url(ZodURL, params);\n}\nexport const ZodEmoji = /*@__PURE__*/ core.$constructor(\"ZodEmoji\", (inst, def) => {\n // ZodStringFormat.init(inst, def);\n core.$ZodEmoji.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function emoji(params) {\n return core._emoji(ZodEmoji, params);\n}\nexport const ZodNanoID = /*@__PURE__*/ core.$constructor(\"ZodNanoID\", (inst, def) => {\n // ZodStringFormat.init(inst, def);\n core.$ZodNanoID.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function nanoid(params) {\n return core._nanoid(ZodNanoID, params);\n}\nexport const ZodCUID = /*@__PURE__*/ core.$constructor(\"ZodCUID\", (inst, def) => {\n // ZodStringFormat.init(inst, def);\n core.$ZodCUID.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function cuid(params) {\n return core._cuid(ZodCUID, params);\n}\nexport const ZodCUID2 = /*@__PURE__*/ core.$constructor(\"ZodCUID2\", (inst, def) => {\n // ZodStringFormat.init(inst, def);\n core.$ZodCUID2.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function cuid2(params) {\n return core._cuid2(ZodCUID2, params);\n}\nexport const ZodULID = /*@__PURE__*/ core.$constructor(\"ZodULID\", (inst, def) => {\n // ZodStringFormat.init(inst, def);\n core.$ZodULID.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function ulid(params) {\n return core._ulid(ZodULID, params);\n}\nexport const ZodXID = /*@__PURE__*/ core.$constructor(\"ZodXID\", (inst, def) => {\n // ZodStringFormat.init(inst, def);\n core.$ZodXID.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function xid(params) {\n return core._xid(ZodXID, params);\n}\nexport const ZodKSUID = /*@__PURE__*/ core.$constructor(\"ZodKSUID\", (inst, def) => {\n // ZodStringFormat.init(inst, def);\n core.$ZodKSUID.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function ksuid(params) {\n return core._ksuid(ZodKSUID, params);\n}\nexport const ZodIPv4 = /*@__PURE__*/ core.$constructor(\"ZodIPv4\", (inst, def) => {\n // ZodStringFormat.init(inst, def);\n core.$ZodIPv4.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function ipv4(params) {\n return core._ipv4(ZodIPv4, params);\n}\nexport const ZodIPv6 = /*@__PURE__*/ core.$constructor(\"ZodIPv6\", (inst, def) => {\n // ZodStringFormat.init(inst, def);\n core.$ZodIPv6.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function ipv6(params) {\n return core._ipv6(ZodIPv6, params);\n}\nexport const ZodCIDRv4 = /*@__PURE__*/ core.$constructor(\"ZodCIDRv4\", (inst, def) => {\n core.$ZodCIDRv4.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function cidrv4(params) {\n return core._cidrv4(ZodCIDRv4, params);\n}\nexport const ZodCIDRv6 = /*@__PURE__*/ core.$constructor(\"ZodCIDRv6\", (inst, def) => {\n core.$ZodCIDRv6.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function cidrv6(params) {\n return core._cidrv6(ZodCIDRv6, params);\n}\nexport const ZodBase64 = /*@__PURE__*/ core.$constructor(\"ZodBase64\", (inst, def) => {\n // ZodStringFormat.init(inst, def);\n core.$ZodBase64.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function base64(params) {\n return core._base64(ZodBase64, params);\n}\nexport const ZodBase64URL = /*@__PURE__*/ core.$constructor(\"ZodBase64URL\", (inst, def) => {\n // ZodStringFormat.init(inst, def);\n core.$ZodBase64URL.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function base64url(params) {\n return core._base64url(ZodBase64URL, params);\n}\nexport const ZodE164 = /*@__PURE__*/ core.$constructor(\"ZodE164\", (inst, def) => {\n // ZodStringFormat.init(inst, def);\n core.$ZodE164.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function e164(params) {\n return core._e164(ZodE164, params);\n}\nexport const ZodJWT = /*@__PURE__*/ core.$constructor(\"ZodJWT\", (inst, def) => {\n // ZodStringFormat.init(inst, def);\n core.$ZodJWT.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function jwt(params) {\n return core._jwt(ZodJWT, params);\n}\nexport const ZodCustomStringFormat = /*@__PURE__*/ core.$constructor(\"ZodCustomStringFormat\", (inst, def) => {\n // ZodStringFormat.init(inst, def);\n core.$ZodCustomStringFormat.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function stringFormat(format, fnOrRegex, _params = {}) {\n return core._stringFormat(ZodCustomStringFormat, format, fnOrRegex, _params);\n}\nexport const ZodNumber = /*@__PURE__*/ core.$constructor(\"ZodNumber\", (inst, def) => {\n core.$ZodNumber.init(inst, def);\n ZodType.init(inst, def);\n inst.gt = (value, params) => inst.check(checks.gt(value, params));\n inst.gte = (value, params) => inst.check(checks.gte(value, params));\n inst.min = (value, params) => inst.check(checks.gte(value, params));\n inst.lt = (value, params) => inst.check(checks.lt(value, params));\n inst.lte = (value, params) => inst.check(checks.lte(value, params));\n inst.max = (value, params) => inst.check(checks.lte(value, params));\n inst.int = (params) => inst.check(int(params));\n inst.safe = (params) => inst.check(int(params));\n inst.positive = (params) => inst.check(checks.gt(0, params));\n inst.nonnegative = (params) => inst.check(checks.gte(0, params));\n inst.negative = (params) => inst.check(checks.lt(0, params));\n inst.nonpositive = (params) => inst.check(checks.lte(0, params));\n inst.multipleOf = (value, params) => inst.check(checks.multipleOf(value, params));\n inst.step = (value, params) => inst.check(checks.multipleOf(value, params));\n // inst.finite = (params) => inst.check(core.finite(params));\n inst.finite = () => inst;\n const bag = inst._zod.bag;\n inst.minValue =\n Math.max(bag.minimum ?? Number.NEGATIVE_INFINITY, bag.exclusiveMinimum ?? Number.NEGATIVE_INFINITY) ?? null;\n inst.maxValue =\n Math.min(bag.maximum ?? Number.POSITIVE_INFINITY, bag.exclusiveMaximum ?? Number.POSITIVE_INFINITY) ?? null;\n inst.isInt = (bag.format ?? \"\").includes(\"int\") || Number.isSafeInteger(bag.multipleOf ?? 0.5);\n inst.isFinite = true;\n inst.format = bag.format ?? null;\n});\nexport function number(params) {\n return core._number(ZodNumber, params);\n}\nexport const ZodNumberFormat = /*@__PURE__*/ core.$constructor(\"ZodNumberFormat\", (inst, def) => {\n core.$ZodNumberFormat.init(inst, def);\n ZodNumber.init(inst, def);\n});\nexport function int(params) {\n return core._int(ZodNumberFormat, params);\n}\nexport function float32(params) {\n return core._float32(ZodNumberFormat, params);\n}\nexport function float64(params) {\n return core._float64(ZodNumberFormat, params);\n}\nexport function int32(params) {\n return core._int32(ZodNumberFormat, params);\n}\nexport function uint32(params) {\n return core._uint32(ZodNumberFormat, params);\n}\nexport const ZodBoolean = /*@__PURE__*/ core.$constructor(\"ZodBoolean\", (inst, def) => {\n core.$ZodBoolean.init(inst, def);\n ZodType.init(inst, def);\n});\nexport function boolean(params) {\n return core._boolean(ZodBoolean, params);\n}\nexport const ZodBigInt = /*@__PURE__*/ core.$constructor(\"ZodBigInt\", (inst, def) => {\n core.$ZodBigInt.init(inst, def);\n ZodType.init(inst, def);\n inst.gte = (value, params) => inst.check(checks.gte(value, params));\n inst.min = (value, params) => inst.check(checks.gte(value, params));\n inst.gt = (value, params) => inst.check(checks.gt(value, params));\n inst.gte = (value, params) => inst.check(checks.gte(value, params));\n inst.min = (value, params) => inst.check(checks.gte(value, params));\n inst.lt = (value, params) => inst.check(checks.lt(value, params));\n inst.lte = (value, params) => inst.check(checks.lte(value, params));\n inst.max = (value, params) => inst.check(checks.lte(value, params));\n inst.positive = (params) => inst.check(checks.gt(BigInt(0), params));\n inst.negative = (params) => inst.check(checks.lt(BigInt(0), params));\n inst.nonpositive = (params) => inst.check(checks.lte(BigInt(0), params));\n inst.nonnegative = (params) => inst.check(checks.gte(BigInt(0), params));\n inst.multipleOf = (value, params) => inst.check(checks.multipleOf(value, params));\n const bag = inst._zod.bag;\n inst.minValue = bag.minimum ?? null;\n inst.maxValue = bag.maximum ?? null;\n inst.format = bag.format ?? null;\n});\nexport function bigint(params) {\n return core._bigint(ZodBigInt, params);\n}\nexport const ZodBigIntFormat = /*@__PURE__*/ core.$constructor(\"ZodBigIntFormat\", (inst, def) => {\n core.$ZodBigIntFormat.init(inst, def);\n ZodBigInt.init(inst, def);\n});\n// int64\nexport function int64(params) {\n return core._int64(ZodBigIntFormat, params);\n}\n// uint64\nexport function uint64(params) {\n return core._uint64(ZodBigIntFormat, params);\n}\nexport const ZodSymbol = /*@__PURE__*/ core.$constructor(\"ZodSymbol\", (inst, def) => {\n core.$ZodSymbol.init(inst, def);\n ZodType.init(inst, def);\n});\nexport function symbol(params) {\n return core._symbol(ZodSymbol, params);\n}\nexport const ZodUndefined = /*@__PURE__*/ core.$constructor(\"ZodUndefined\", (inst, def) => {\n core.$ZodUndefined.init(inst, def);\n ZodType.init(inst, def);\n});\nfunction _undefined(params) {\n return core._undefined(ZodUndefined, params);\n}\nexport { _undefined as undefined };\nexport const ZodNull = /*@__PURE__*/ core.$constructor(\"ZodNull\", (inst, def) => {\n core.$ZodNull.init(inst, def);\n ZodType.init(inst, def);\n});\nfunction _null(params) {\n return core._null(ZodNull, params);\n}\nexport { _null as null };\nexport const ZodAny = /*@__PURE__*/ core.$constructor(\"ZodAny\", (inst, def) => {\n core.$ZodAny.init(inst, def);\n ZodType.init(inst, def);\n});\nexport function any() {\n return core._any(ZodAny);\n}\nexport const ZodUnknown = /*@__PURE__*/ core.$constructor(\"ZodUnknown\", (inst, def) => {\n core.$ZodUnknown.init(inst, def);\n ZodType.init(inst, def);\n});\nexport function unknown() {\n return core._unknown(ZodUnknown);\n}\nexport const ZodNever = /*@__PURE__*/ core.$constructor(\"ZodNever\", (inst, def) => {\n core.$ZodNever.init(inst, def);\n ZodType.init(inst, def);\n});\nexport function never(params) {\n return core._never(ZodNever, params);\n}\nexport const ZodVoid = /*@__PURE__*/ core.$constructor(\"ZodVoid\", (inst, def) => {\n core.$ZodVoid.init(inst, def);\n ZodType.init(inst, def);\n});\nfunction _void(params) {\n return core._void(ZodVoid, params);\n}\nexport { _void as void };\nexport const ZodDate = /*@__PURE__*/ core.$constructor(\"ZodDate\", (inst, def) => {\n core.$ZodDate.init(inst, def);\n ZodType.init(inst, def);\n inst.min = (value, params) => inst.check(checks.gte(value, params));\n inst.max = (value, params) => inst.check(checks.lte(value, params));\n const c = inst._zod.bag;\n inst.minDate = c.minimum ? new Date(c.minimum) : null;\n inst.maxDate = c.maximum ? new Date(c.maximum) : null;\n});\nexport function date(params) {\n return core._date(ZodDate, params);\n}\nexport const ZodArray = /*@__PURE__*/ core.$constructor(\"ZodArray\", (inst, def) => {\n core.$ZodArray.init(inst, def);\n ZodType.init(inst, def);\n inst.element = def.element;\n inst.min = (minLength, params) => inst.check(checks.minLength(minLength, params));\n inst.nonempty = (params) => inst.check(checks.minLength(1, params));\n inst.max = (maxLength, params) => inst.check(checks.maxLength(maxLength, params));\n inst.length = (len, params) => inst.check(checks.length(len, params));\n inst.unwrap = () => inst.element;\n});\nexport function array(element, params) {\n return core._array(ZodArray, element, params);\n}\n// .keyof\nexport function keyof(schema) {\n const shape = schema._zod.def.shape;\n return literal(Object.keys(shape));\n}\nexport const ZodObject = /*@__PURE__*/ core.$constructor(\"ZodObject\", (inst, def) => {\n core.$ZodObject.init(inst, def);\n ZodType.init(inst, def);\n util.defineLazy(inst, \"shape\", () => def.shape);\n inst.keyof = () => _enum(Object.keys(inst._zod.def.shape));\n inst.catchall = (catchall) => inst.clone({ ...inst._zod.def, catchall: catchall });\n inst.passthrough = () => inst.clone({ ...inst._zod.def, catchall: unknown() });\n // inst.nonstrict = () => inst.clone({ ...inst._zod.def, catchall: api.unknown() });\n inst.loose = () => inst.clone({ ...inst._zod.def, catchall: unknown() });\n inst.strict = () => inst.clone({ ...inst._zod.def, catchall: never() });\n inst.strip = () => inst.clone({ ...inst._zod.def, catchall: undefined });\n inst.extend = (incoming) => {\n return util.extend(inst, incoming);\n };\n inst.merge = (other) => util.merge(inst, other);\n inst.pick = (mask) => util.pick(inst, mask);\n inst.omit = (mask) => util.omit(inst, mask);\n inst.partial = (...args) => util.partial(ZodOptional, inst, args[0]);\n inst.required = (...args) => util.required(ZodNonOptional, inst, args[0]);\n});\nexport function object(shape, params) {\n const def = {\n type: \"object\",\n get shape() {\n util.assignProp(this, \"shape\", { ...shape });\n return this.shape;\n },\n ...util.normalizeParams(params),\n };\n return new ZodObject(def);\n}\n// strictObject\nexport function strictObject(shape, params) {\n return new ZodObject({\n type: \"object\",\n get shape() {\n util.assignProp(this, \"shape\", { ...shape });\n return this.shape;\n },\n catchall: never(),\n ...util.normalizeParams(params),\n });\n}\n// looseObject\nexport function looseObject(shape, params) {\n return new ZodObject({\n type: \"object\",\n get shape() {\n util.assignProp(this, \"shape\", { ...shape });\n return this.shape;\n },\n catchall: unknown(),\n ...util.normalizeParams(params),\n });\n}\nexport const ZodUnion = /*@__PURE__*/ core.$constructor(\"ZodUnion\", (inst, def) => {\n core.$ZodUnion.init(inst, def);\n ZodType.init(inst, def);\n inst.options = def.options;\n});\nexport function union(options, params) {\n return new ZodUnion({\n type: \"union\",\n options: options,\n ...util.normalizeParams(params),\n });\n}\nexport const ZodDiscriminatedUnion = /*@__PURE__*/ core.$constructor(\"ZodDiscriminatedUnion\", (inst, def) => {\n ZodUnion.init(inst, def);\n core.$ZodDiscriminatedUnion.init(inst, def);\n});\nexport function discriminatedUnion(discriminator, options, params) {\n // const [options, params] = args;\n return new ZodDiscriminatedUnion({\n type: \"union\",\n options,\n discriminator,\n ...util.normalizeParams(params),\n });\n}\nexport const ZodIntersection = /*@__PURE__*/ core.$constructor(\"ZodIntersection\", (inst, def) => {\n core.$ZodIntersection.init(inst, def);\n ZodType.init(inst, def);\n});\nexport function intersection(left, right) {\n return new ZodIntersection({\n type: \"intersection\",\n left: left,\n right: right,\n });\n}\nexport const ZodTuple = /*@__PURE__*/ core.$constructor(\"ZodTuple\", (inst, def) => {\n core.$ZodTuple.init(inst, def);\n ZodType.init(inst, def);\n inst.rest = (rest) => inst.clone({\n ...inst._zod.def,\n rest: rest,\n });\n});\nexport function tuple(items, _paramsOrRest, _params) {\n const hasRest = _paramsOrRest instanceof core.$ZodType;\n const params = hasRest ? _params : _paramsOrRest;\n const rest = hasRest ? _paramsOrRest : null;\n return new ZodTuple({\n type: \"tuple\",\n items: items,\n rest,\n ...util.normalizeParams(params),\n });\n}\nexport const ZodRecord = /*@__PURE__*/ core.$constructor(\"ZodRecord\", (inst, def) => {\n core.$ZodRecord.init(inst, def);\n ZodType.init(inst, def);\n inst.keyType = def.keyType;\n inst.valueType = def.valueType;\n});\nexport function record(keyType, valueType, params) {\n return new ZodRecord({\n type: \"record\",\n keyType,\n valueType: valueType,\n ...util.normalizeParams(params),\n });\n}\n// type alksjf = core.output<core.$ZodRecordKey>;\nexport function partialRecord(keyType, valueType, params) {\n return new ZodRecord({\n type: \"record\",\n keyType: union([keyType, never()]),\n valueType: valueType,\n ...util.normalizeParams(params),\n });\n}\nexport const ZodMap = /*@__PURE__*/ core.$constructor(\"ZodMap\", (inst, def) => {\n core.$ZodMap.init(inst, def);\n ZodType.init(inst, def);\n inst.keyType = def.keyType;\n inst.valueType = def.valueType;\n});\nexport function map(keyType, valueType, params) {\n return new ZodMap({\n type: \"map\",\n keyType: keyType,\n valueType: valueType,\n ...util.normalizeParams(params),\n });\n}\nexport const ZodSet = /*@__PURE__*/ core.$constructor(\"ZodSet\", (inst, def) => {\n core.$ZodSet.init(inst, def);\n ZodType.init(inst, def);\n inst.min = (...args) => inst.check(core._minSize(...args));\n inst.nonempty = (params) => inst.check(core._minSize(1, params));\n inst.max = (...args) => inst.check(core._maxSize(...args));\n inst.size = (...args) => inst.check(core._size(...args));\n});\nexport function set(valueType, params) {\n return new ZodSet({\n type: \"set\",\n valueType: valueType,\n ...util.normalizeParams(params),\n });\n}\nexport const ZodEnum = /*@__PURE__*/ core.$constructor(\"ZodEnum\", (inst, def) => {\n core.$ZodEnum.init(inst, def);\n ZodType.init(inst, def);\n inst.enum = def.entries;\n inst.options = Object.values(def.entries);\n const keys = new Set(Object.keys(def.entries));\n inst.extract = (values, params) => {\n const newEntries = {};\n for (const value of values) {\n if (keys.has(value)) {\n newEntries[value] = def.entries[value];\n }\n else\n throw new Error(`Key ${value} not found in enum`);\n }\n return new ZodEnum({\n ...def,\n checks: [],\n ...util.normalizeParams(params),\n entries: newEntries,\n });\n };\n inst.exclude = (values, params) => {\n const newEntries = { ...def.entries };\n for (const value of values) {\n if (keys.has(value)) {\n delete newEntries[value];\n }\n else\n throw new Error(`Key ${value} not found in enum`);\n }\n return new ZodEnum({\n ...def,\n checks: [],\n ...util.normalizeParams(params),\n entries: newEntries,\n });\n };\n});\nfunction _enum(values, params) {\n const entries = Array.isArray(values) ? Object.fromEntries(values.map((v) => [v, v])) : values;\n return new ZodEnum({\n type: \"enum\",\n entries,\n ...util.normalizeParams(params),\n });\n}\nexport { _enum as enum };\n/** @deprecated This API has been merged into `z.enum()`. Use `z.enum()` instead.\n *\n * ```ts\n * enum Colors { red, green, blue }\n * z.enum(Colors);\n * ```\n */\nexport function nativeEnum(entries, params) {\n return new ZodEnum({\n type: \"enum\",\n entries,\n ...util.normalizeParams(params),\n });\n}\nexport const ZodLiteral = /*@__PURE__*/ core.$constructor(\"ZodLiteral\", (inst, def) => {\n core.$ZodLiteral.init(inst, def);\n ZodType.init(inst, def);\n inst.values = new Set(def.values);\n Object.defineProperty(inst, \"value\", {\n get() {\n if (def.values.length > 1) {\n throw new Error(\"This schema contains multiple valid literal values. Use `.values` instead.\");\n }\n return def.values[0];\n },\n });\n});\nexport function literal(value, params) {\n return new ZodLiteral({\n type: \"literal\",\n values: Array.isArray(value) ? value : [value],\n ...util.normalizeParams(params),\n });\n}\nexport const ZodFile = /*@__PURE__*/ core.$constructor(\"ZodFile\", (inst, def) => {\n core.$ZodFile.init(inst, def);\n ZodType.init(inst, def);\n inst.min = (size, params) => inst.check(core._minSize(size, params));\n inst.max = (size, params) => inst.check(core._maxSize(size, params));\n inst.mime = (types, params) => inst.check(core._mime(Array.isArray(types) ? types : [types], params));\n});\nexport function file(params) {\n return core._file(ZodFile, params);\n}\nexport const ZodTransform = /*@__PURE__*/ core.$constructor(\"ZodTransform\", (inst, def) => {\n core.$ZodTransform.init(inst, def);\n ZodType.init(inst, def);\n inst._zod.parse = (payload, _ctx) => {\n payload.addIssue = (issue) => {\n if (typeof issue === \"string\") {\n payload.issues.push(util.issue(issue, payload.value, def));\n }\n else {\n // for Zod 3 backwards compatibility\n const _issue = issue;\n if (_issue.fatal)\n _issue.continue = false;\n _issue.code ?? (_issue.code = \"custom\");\n _issue.input ?? (_issue.input = payload.value);\n _issue.inst ?? (_issue.inst = inst);\n _issue.continue ?? (_issue.continue = true);\n payload.issues.push(util.issue(_issue));\n }\n };\n const output = def.transform(payload.value, payload);\n if (output instanceof Promise) {\n return output.then((output) => {\n payload.value = output;\n return payload;\n });\n }\n payload.value = output;\n return payload;\n };\n});\nexport function transform(fn) {\n return new ZodTransform({\n type: \"transform\",\n transform: fn,\n });\n}\nexport const ZodOptional = /*@__PURE__*/ core.$constructor(\"ZodOptional\", (inst, def) => {\n core.$ZodOptional.init(inst, def);\n ZodType.init(inst, def);\n inst.unwrap = () => inst._zod.def.innerType;\n});\nexport function optional(innerType) {\n return new ZodOptional({\n type: \"optional\",\n innerType: innerType,\n });\n}\nexport const ZodNullable = /*@__PURE__*/ core.$constructor(\"ZodNullable\", (inst, def) => {\n core.$ZodNullable.init(inst, def);\n ZodType.init(inst, def);\n inst.unwrap = () => inst._zod.def.innerType;\n});\nexport function nullable(innerType) {\n return new ZodNullable({\n type: \"nullable\",\n innerType: innerType,\n });\n}\n// nullish\nexport function nullish(innerType) {\n return optional(nullable(innerType));\n}\nexport const ZodDefault = /*@__PURE__*/ core.$constructor(\"ZodDefault\", (inst, def) => {\n core.$ZodDefault.init(inst, def);\n ZodType.init(inst, def);\n inst.unwrap = () => inst._zod.def.innerType;\n inst.removeDefault = inst.unwrap;\n});\nexport function _default(innerType, defaultValue) {\n return new ZodDefault({\n type: \"default\",\n innerType: innerType,\n get defaultValue() {\n return typeof defaultValue === \"function\" ? defaultValue() : defaultValue;\n },\n });\n}\nexport const ZodPrefault = /*@__PURE__*/ core.$constructor(\"ZodPrefault\", (inst, def) => {\n core.$ZodPrefault.init(inst, def);\n ZodType.init(inst, def);\n inst.unwrap = () => inst._zod.def.innerType;\n});\nexport function prefault(innerType, defaultValue) {\n return new ZodPrefault({\n type: \"prefault\",\n innerType: innerType,\n get defaultValue() {\n return typeof defaultValue === \"function\" ? defaultValue() : defaultValue;\n },\n });\n}\nexport const ZodNonOptional = /*@__PURE__*/ core.$constructor(\"ZodNonOptional\", (inst, def) => {\n core.$ZodNonOptional.init(inst, def);\n ZodType.init(inst, def);\n inst.unwrap = () => inst._zod.def.innerType;\n});\nexport function nonoptional(innerType, params) {\n return new ZodNonOptional({\n type: \"nonoptional\",\n innerType: innerType,\n ...util.normalizeParams(params),\n });\n}\nexport const ZodSuccess = /*@__PURE__*/ core.$constructor(\"ZodSuccess\", (inst, def) => {\n core.$ZodSuccess.init(inst, def);\n ZodType.init(inst, def);\n inst.unwrap = () => inst._zod.def.innerType;\n});\nexport function success(innerType) {\n return new ZodSuccess({\n type: \"success\",\n innerType: innerType,\n });\n}\nexport const ZodCatch = /*@__PURE__*/ core.$constructor(\"ZodCatch\", (inst, def) => {\n core.$ZodCatch.init(inst, def);\n ZodType.init(inst, def);\n inst.unwrap = () => inst._zod.def.innerType;\n inst.removeCatch = inst.unwrap;\n});\nfunction _catch(innerType, catchValue) {\n return new ZodCatch({\n type: \"catch\",\n innerType: innerType,\n catchValue: (typeof catchValue === \"function\" ? catchValue : () => catchValue),\n });\n}\nexport { _catch as catch };\nexport const ZodNaN = /*@__PURE__*/ core.$constructor(\"ZodNaN\", (inst, def) => {\n core.$ZodNaN.init(inst, def);\n ZodType.init(inst, def);\n});\nexport function nan(params) {\n return core._nan(ZodNaN, params);\n}\nexport const ZodPipe = /*@__PURE__*/ core.$constructor(\"ZodPipe\", (inst, def) => {\n core.$ZodPipe.init(inst, def);\n ZodType.init(inst, def);\n inst.in = def.in;\n inst.out = def.out;\n});\nexport function pipe(in_, out) {\n return new ZodPipe({\n type: \"pipe\",\n in: in_,\n out: out,\n // ...util.normalizeParams(params),\n });\n}\nexport const ZodReadonly = /*@__PURE__*/ core.$constructor(\"ZodReadonly\", (inst, def) => {\n core.$ZodReadonly.init(inst, def);\n ZodType.init(inst, def);\n});\nexport function readonly(innerType) {\n return new ZodReadonly({\n type: \"readonly\",\n innerType: innerType,\n });\n}\nexport const ZodTemplateLiteral = /*@__PURE__*/ core.$constructor(\"ZodTemplateLiteral\", (inst, def) => {\n core.$ZodTemplateLiteral.init(inst, def);\n ZodType.init(inst, def);\n});\nexport function templateLiteral(parts, params) {\n return new ZodTemplateLiteral({\n type: \"template_literal\",\n parts,\n ...util.normalizeParams(params),\n });\n}\nexport const ZodLazy = /*@__PURE__*/ core.$constructor(\"ZodLazy\", (inst, def) => {\n core.$ZodLazy.init(inst, def);\n ZodType.init(inst, def);\n inst.unwrap = () => inst._zod.def.getter();\n});\nexport function lazy(getter) {\n return new ZodLazy({\n type: \"lazy\",\n getter: getter,\n });\n}\nexport const ZodPromise = /*@__PURE__*/ core.$constructor(\"ZodPromise\", (inst, def) => {\n core.$ZodPromise.init(inst, def);\n ZodType.init(inst, def);\n inst.unwrap = () => inst._zod.def.innerType;\n});\nexport function promise(innerType) {\n return new ZodPromise({\n type: \"promise\",\n innerType: innerType,\n });\n}\nexport const ZodCustom = /*@__PURE__*/ core.$constructor(\"ZodCustom\", (inst, def) => {\n core.$ZodCustom.init(inst, def);\n ZodType.init(inst, def);\n});\n// custom checks\nexport function check(fn) {\n const ch = new core.$ZodCheck({\n check: \"custom\",\n // ...util.normalizeParams(params),\n });\n ch._zod.check = fn;\n return ch;\n}\nexport function custom(fn, _params) {\n return core._custom(ZodCustom, fn ?? (() => true), _params);\n}\nexport function refine(fn, _params = {}) {\n return core._refine(ZodCustom, fn, _params);\n}\n// superRefine\nexport function superRefine(fn) {\n const ch = check((payload) => {\n payload.addIssue = (issue) => {\n if (typeof issue === \"string\") {\n payload.issues.push(util.issue(issue, payload.value, ch._zod.def));\n }\n else {\n // for Zod 3 backwards compatibility\n const _issue = issue;\n if (_issue.fatal)\n _issue.continue = false;\n _issue.code ?? (_issue.code = \"custom\");\n _issue.input ?? (_issue.input = payload.value);\n _issue.inst ?? (_issue.inst = ch);\n _issue.continue ?? (_issue.continue = !ch._zod.def.abort);\n payload.issues.push(util.issue(_issue));\n }\n };\n return fn(payload.value, payload);\n });\n return ch;\n}\nfunction _instanceof(cls, params = {\n error: `Input not instance of ${cls.name}`,\n}) {\n const inst = new ZodCustom({\n type: \"custom\",\n check: \"custom\",\n fn: (data) => data instanceof cls,\n abort: true,\n ...util.normalizeParams(params),\n });\n inst._zod.bag.Class = cls;\n return inst;\n}\nexport { _instanceof as instanceof };\n// stringbool\nexport const stringbool = (...args) => core._stringbool({\n Pipe: ZodPipe,\n Boolean: ZodBoolean,\n String: ZodString,\n Transform: ZodTransform,\n}, ...args);\nexport function json(params) {\n const jsonSchema = lazy(() => {\n return union([string(params), number(), boolean(), _null(), array(jsonSchema), record(string(), jsonSchema)]);\n });\n return jsonSchema;\n}\n// preprocess\n// /** @deprecated Use `z.pipe()` and `z.transform()` instead. */\nexport function preprocess(fn, schema) {\n return pipe(transform(fn), schema);\n}\n","// Zod 3 compat layer\nimport * as core from \"../core/index.js\";\n/** @deprecated Use the raw string literal codes instead, e.g. \"invalid_type\". */\nexport const ZodIssueCode = {\n invalid_type: \"invalid_type\",\n too_big: \"too_big\",\n too_small: \"too_small\",\n invalid_format: \"invalid_format\",\n not_multiple_of: \"not_multiple_of\",\n unrecognized_keys: \"unrecognized_keys\",\n invalid_union: \"invalid_union\",\n invalid_key: \"invalid_key\",\n invalid_element: \"invalid_element\",\n invalid_value: \"invalid_value\",\n custom: \"custom\",\n};\nexport { $brand, config } from \"../core/index.js\";\n/** @deprecated Use `z.config(params)` instead. */\nexport function setErrorMap(map) {\n core.config({\n customError: map,\n });\n}\n/** @deprecated Use `z.config()` instead. */\nexport function getErrorMap() {\n return core.config().customError;\n}\n/** @deprecated Do not use. Stub definition, only included for zod-to-json-schema compatibility. */\nexport var ZodFirstPartyTypeKind;\n(function (ZodFirstPartyTypeKind) {\n})(ZodFirstPartyTypeKind || (ZodFirstPartyTypeKind = {}));\n","import * as core from \"../core/index.js\";\nimport * as schemas from \"./schemas.js\";\nexport function string(params) {\n return core._coercedString(schemas.ZodString, params);\n}\nexport function number(params) {\n return core._coercedNumber(schemas.ZodNumber, params);\n}\nexport function boolean(params) {\n return core._coercedBoolean(schemas.ZodBoolean, params);\n}\nexport function bigint(params) {\n return core._coercedBigint(schemas.ZodBigInt, params);\n}\nexport function date(params) {\n return core._coercedDate(schemas.ZodDate, params);\n}\n","import * as z from \"./v4/classic/external.js\";\nexport * from \"./v4/classic/external.js\";\nexport { z };\nexport default z;\n","import { z } from \"zod\"\n\nexport const userObjectMetaSchema = z.object({\n /**\n * Human-readable name of the object.\n *\n * Used in UI components for better user experience.\n */\n title: z.string().optional(),\n\n /**\n * The title used globally for the object.\n *\n * For example, the title of an instance secret is \"Password\" which is okay\n * to display in the instance secret list, but when the secret is displayed in a\n * global secret list the name should be more descriptive, like \"Proxmox Password\".\n */\n globalTitle: z.string().optional(),\n\n /**\n * Description of the object.\n *\n * Provides additional context for users and developers.\n */\n description: z.string().optional(),\n\n /**\n * The color of the object.\n *\n * Used in UI components to visually distinguish objects.\n */\n color: z.string().optional(),\n\n /**\n * Primary icon identifier.\n *\n * Should reference a iconify icon name, like \"mdi:server\" or \"gg:remote\".\n */\n icon: z.string().optional(),\n\n /**\n * The color of the primary icon.\n */\n iconColor: z.string().optional(),\n\n /**\n * The secondary icon identifier.\n *\n * Used to provide additional context or actions related to the object.\n *\n * Should reference a iconify icon name, like \"mdi:edit\" or \"mdi:delete\".\n */\n secondaryIcon: z.string().optional(),\n\n /**\n * The color of the secondary icon.\n */\n secondaryIconColor: z.string().optional(),\n})\n\nexport const objectMetaSchema = userObjectMetaSchema.extend({\n /**\n * Creation timestamp in milliseconds.\n *\n * Managed automatically by the system.\n */\n createdAt: z.number().optional(),\n\n /**\n * Last update timestamp in milliseconds.\n *\n * Managed automatically by the system.\n */\n updatedAt: z.number().optional(),\n\n /**\n * The optional version of the document to support optimistic concurrency control.\n *\n * Managed automatically by the system.\n */\n version: z.number().optional(),\n})\n\nexport type UserObjectMeta = z.infer<typeof userObjectMetaSchema>\nexport type ObjectMeta = z.infer<typeof objectMetaSchema>\n\n/**\n * The schema for strings that represent names in Highstate.\n *\n * The name:\n * - must be alphanumeric;\n * - can include dashes (`-`) as word separators and dots (`.`) as namespace separators;\n * - must begin with a letter;\n * - must be lowercase;\n * - must include from 2 to 64 characters.\n */\nexport const genericNameSchema = z\n .string()\n .regex(/^[a-z][a-z0-9-_.]+$/)\n .min(2)\n .max(64)\n\nexport type GenericName = z.infer<typeof genericNameSchema>\n\n/**\n * The schema for field names in Highstate.\n *\n * The field name:\n * - must be alphanumeric;\n * - must be in camelCase;\n * - must begin with a letter;\n * - must include from 2 to 64 characters.\n */\nexport const fieldNameSchema = z\n .string()\n .regex(/^[a-z][a-zA-Z0-9]+$/)\n .min(2)\n .max(64)\n\nexport type FieldName = z.infer<typeof fieldNameSchema>\n","import type { PartialKeys } from \"./utils\"\nimport { z } from \"zod\"\nimport { objectMetaSchema } from \"./meta\"\nimport { camelCaseToHumanReadable } from \"./i18n\"\n\n/**\n * The entity is some abstract object which can be passed from one component to another through their inputs and outputs.\n * Every entity must have a type.\n * Every component inputs and outputs will reference such types and only entities of the same type can be passed.\n */\nexport const entityModelSchema = z.object({\n /**\n * The static type of the entity.\n */\n type: z.string(),\n\n /**\n * The JSON schema of the entity value.\n */\n schema: z.custom<z.core.JSONSchema.BaseSchema>(),\n\n /**\n * The extra metadata of the entity.\n */\n meta: objectMetaSchema.required({ title: true }).pick({\n title: true,\n description: true,\n color: true,\n icon: true,\n iconColor: true,\n }),\n\n /**\n * The CRC32 of the entity definition.\n */\n definitionHash: z.number(),\n})\n\nexport type EntityModel = z.infer<typeof entityModelSchema>\n\nexport type Entity<TType extends string = string, TSchema extends z.ZodType = z.ZodType> = {\n /**\n * The static type of the entity.\n */\n type: TType\n\n /**\n * The zod schema of the entity value.\n */\n schema: TSchema\n\n /**\n * The model of the entity.\n */\n model: EntityModel\n}\n\ntype EntityOptions<TType extends string, TSchema extends z.ZodType> = {\n /**\n * The static type of the entity.\n */\n type: TType\n\n /**\n * The JSON schema of the entity value.\n */\n schema: TSchema\n\n /**\n * The extra metadata of the entity.\n */\n meta?: PartialKeys<z.infer<typeof objectMetaSchema>, \"title\">\n}\n\nexport function defineEntity<TType extends string, TSchema extends z.ZodType>(\n options: EntityOptions<TType, TSchema>,\n): Entity<TType, TSchema> {\n if (!options.type) {\n throw new Error(\"Entity type is required\")\n }\n\n if (!options.schema) {\n throw new Error(\"Entity schema is required\")\n }\n\n try {\n return {\n type: options.type,\n schema: options.schema,\n model: {\n type: options.type,\n schema: z.toJSONSchema(options.schema, { target: \"draft-7\" }),\n meta: {\n ...options.meta,\n title: options.meta?.title ?? camelCaseToHumanReadable(options.type),\n },\n // will be calculated by the library loader\n definitionHash: null!,\n },\n }\n } catch (error) {\n throw new Error(`Failed to define entity \"${options.type}\"`, { cause: error })\n }\n}\n\nexport function isEntity(value: unknown): value is Entity {\n return typeof value === \"object\" && value !== null && \"model\" in value\n}\n","import type { boundaryInput } from \"./component\"\nimport { z } from \"zod\"\nimport { genericNameSchema } from \"./meta\"\n\ndeclare const type: unique symbol\n\nexport type InstanceInput<TType extends string = string> = {\n [type]?: TType\n [boundaryInput]?: InstanceInput\n instanceId: InstanceId\n output: string\n}\n\nexport const positionSchema = z.object({\n x: z.number(),\n y: z.number(),\n})\n\nexport type Position = z.infer<typeof positionSchema>\n\nexport const instanceIdSchema = z.templateLiteral([genericNameSchema, \":\", genericNameSchema])\n\nexport type InstanceId = z.infer<typeof instanceIdSchema>\n\nexport const instanceInputSchema = z.object({\n instanceId: instanceIdSchema,\n output: z.string(),\n})\n\nexport const hubInputSchema = z.object({\n hubId: z.string(),\n})\n\nexport type HubInput = z.infer<typeof hubInputSchema>\n\nexport const instanceModelPatchSchema = z.object({\n /**\n * The static arguments passed to the instance.\n */\n args: z.record(z.string(), z.unknown()).optional(),\n\n /**\n * The direct instances passed as inputs to the instance.\n */\n inputs: z.record(z.string(), z.array(instanceInputSchema)).optional(),\n\n /**\n * The resolved unit inputs for the instance.\n *\n * Only for computed composite instances.\n */\n hubInputs: z.record(z.string(), z.array(hubInputSchema)).optional(),\n\n /**\n * The inputs injected to the instance from the hubs.\n *\n * While `hubInputs` allows to pass hubs to distinct inputs,\n * `injectionInputs` allows to pass hubs to the instance as a whole filling all inputs with matching types.\n *\n * Only for designer-first instances.\n */\n injectionInputs: z.array(hubInputSchema).optional(),\n\n /**\n * The position of the instance on the canvas.\n *\n * Only for designer-first instances.\n */\n position: positionSchema.optional(),\n})\n\nexport const instanceModelSchema = z.object({\n /**\n * The id of the instance unique within the project.\n *\n * The format is `${instanceType}:${instanceName}`.\n */\n id: instanceIdSchema,\n\n /**\n * The type of the instance.\n */\n type: genericNameSchema,\n\n /**\n * The name of the instance.\n *\n * Must be unique within instances of the same type in the project.\n */\n name: genericNameSchema,\n\n ...instanceModelPatchSchema.shape,\n\n /**\n * The id of the top level parent instance.\n *\n * Only for child instances of the composite instances.\n */\n resolvedInputs: z.record(z.string(), z.array(instanceInputSchema)).optional(),\n\n /**\n * The position of the instance on the canvas.\n *\n * Only for designer-first instances.\n */\n parentId: z.string().optional(),\n\n /**\n * The direct instance outputs returned by the instance as outputs.\n *\n * Only for computed composite instances.\n */\n outputs: z.record(z.string(), z.array(instanceInputSchema)).optional(),\n\n /**\n * The resolved unit outputs for the instance.\n *\n * Only for computed composite instances.\n */\n resolvedOutputs: z.record(z.string(), z.array(instanceInputSchema)).optional(),\n})\n\nexport type InstanceModel = z.infer<typeof instanceModelSchema>\n\nexport const hubModelPatchSchema = z.object({\n /**\n * The position of the hub on the canvas.\n */\n position: positionSchema.optional(),\n\n /**\n * The inputs of the hub.\n */\n inputs: z.array(instanceInputSchema).optional(),\n\n /**\n * The inputs injected to the hub from the hubs.\n *\n * While `inputs` allows to pass hubs to distinct inputs,\n * `injectionInputs` allows to pass hubs to the hub as a whole filling all inputs with matching types.\n */\n injectionInputs: z.array(hubInputSchema).optional(),\n})\n\nexport const hubModelSchema = z.object({\n /**\n * The id of the hub unique within the project.\n */\n id: z.nanoid(),\n\n ...hubModelPatchSchema.shape,\n})\n\nexport type InstanceModelPatch = z.infer<typeof instanceModelPatchSchema>\nexport type HubModel = z.infer<typeof hubModelSchema>\nexport type HubModelPatch = z.infer<typeof hubModelPatchSchema>\n\n/**\n * Formats the instance id from the instance type and instance name.\n *\n * @param instanceType The type of the instance.\n * @param instanceName The name of the instance.\n *\n * @returns The formatted instance id.\n */\nexport function getInstanceId(instanceType: string, instanceName: string): InstanceId {\n return `${instanceType}:${instanceName}`\n}\n\n/**\n * Parses the instance id into the instance type and instance name.\n *\n * @param instanceId The instance id to parse.\n *\n * @returns The instance type and instance name.\n */\nexport function parseInstanceId(instanceId: string): [instanceType: string, instanceName: string] {\n const parts = instanceId.split(\":\")\n\n if (parts.length !== 2) {\n throw new Error(`Invalid instance ID: ${instanceId}`)\n }\n\n return parts as [string, string]\n}\n\nexport function findInput<T extends string>(\n inputs: InstanceInput<T>[],\n name: string,\n): InstanceInput<T> | null {\n const matchedInputs = inputs.filter(\n input => parseInstanceId(input.instanceId)[1] === name || input.instanceId === name,\n )\n\n if (matchedInputs.length === 0) {\n return null\n }\n\n if (matchedInputs.length > 1) {\n throw new Error(\n `Multiple inputs found for \"${name}\": ${matchedInputs.map(input => input.instanceId).join(\", \")}. Specify the full instance id to disambiguate.`,\n )\n }\n\n return matchedInputs[0]\n}\n\nexport function findRequiredInput<T extends string>(\n inputs: InstanceInput<T>[],\n name: string,\n): InstanceInput<T> {\n const input = findInput(inputs, name)\n\n if (input === null) {\n throw new Error(`Required input \"${name}\" not found.`)\n }\n\n return input\n}\n\nexport function findInputs<T extends string>(\n inputs: InstanceInput<T>[],\n names: string[],\n): InstanceInput<T>[] {\n return names.map(name => findInput(inputs, name)).filter(Boolean) as InstanceInput<T>[]\n}\n\nexport function findRequiredInputs<T extends string>(\n inputs: InstanceInput<T>[],\n names: string[],\n): InstanceInput<T>[] {\n return names.map(name => findRequiredInput(inputs, name))\n}\n\n/**\n * The field names that indicate special objects which Highstate understands regardless of the context.\n *\n * UUIDs are used to prevent conflicts with user-defined fields.\n */\nexport enum HighstateSignature {\n Artifact = \"d55c63ac-3174-4756-808f-f778e99af0d1\",\n Secret = \"56ebf97b-57de-4985-8c86-bc1bc5871e6e\",\n Yaml = \"c857cac5-caa6-4421-b82c-e561fbce6367\",\n}\n\nexport const yamlValueSchema = z.object({\n [HighstateSignature.Yaml]: z.literal(true),\n value: z.string(),\n})\n\nexport type YamlValue = z.infer<typeof yamlValueSchema>\n\nexport const fileMetaSchema = z.object({\n name: z.string(),\n contentType: z.string().optional(),\n size: z.number().optional(),\n mode: z.number().optional(),\n isBinary: z.boolean().optional(),\n})\n\nexport const unitObjectMetaSchema = z.object({\n displayName: z.string().optional(),\n description: z.string().optional(),\n primaryIcon: z.string().optional(),\n})\n\nexport const unitSecretSchema = z.object({\n [HighstateSignature.Secret]: z.literal(true),\n id: z.uuidv7(),\n value: z.unknown(),\n})\n\nexport const unitArtifactSchema = z.object({\n [HighstateSignature.Artifact]: z.literal(true),\n hash: z.string(),\n meta: unitObjectMetaSchema.optional(),\n})\n\nexport const fileContentSchema = z.union([\n z.object({\n type: z.literal(\"embedded\"),\n value: z.string(),\n }),\n z.object({\n type: z.literal(\"artifact\"),\n ...unitArtifactSchema.shape,\n }),\n])\n\nexport const fileSchema = z.object({\n meta: fileMetaSchema,\n content: fileContentSchema,\n})\n\nexport type FileMeta = z.infer<typeof fileMetaSchema>\nexport type FileContent = z.infer<typeof fileContentSchema>\nexport type UnitObjectMeta = z.infer<typeof unitObjectMetaSchema>\nexport type UnitArtifact = z.infer<typeof unitArtifactSchema>\nexport type File = z.infer<typeof fileSchema>\nexport type UnitSecretModel = z.infer<typeof unitSecretSchema>\n","// TODO: refactor this shit\n\ntype PickUndefinedKeys<T extends Record<string, unknown>> =\n T extends Record<string, never>\n ? never\n : Exclude<\n {\n [K in keyof T]: undefined extends T[K] ? K : never\n }[keyof T],\n undefined\n >\n\ntype AllOptionalKeys<T extends Record<string, unknown>> =\n T extends Record<string, never>\n ? never\n : Exclude<\n {\n [K in keyof T]: undefined extends T[K] ? K : never\n }[keyof T],\n undefined\n >\n\ntype HasRequired<T extends Record<string, unknown>> =\n T extends Record<string, never> ? false : [keyof T] extends [AllOptionalKeys<T>] ? false : true\n\ntype PickRecordsWithAnyRequired<T extends Record<string, Record<string, unknown>>> =\n T extends Record<string, never>\n ? never\n : Exclude<\n {\n [K in keyof T]: HasRequired<T[K]> extends true ? K : never\n }[keyof T],\n undefined\n >\n\nexport type OptionalEmptyRecords<T extends Record<string, Record<string, unknown>>> = {\n [K in Exclude<keyof T, PickRecordsWithAnyRequired<T>>]?: OptionalUndefinedFields<T[K]>\n} & {\n [K in PickRecordsWithAnyRequired<T>]: OptionalUndefinedFields<T[K]>\n}\n\nexport type OptionalUndefinedFields<T extends Record<string, unknown>> = {\n [K in PickUndefinedKeys<T>]?: T[K]\n} & {\n [K in Exclude<keyof T, PickUndefinedKeys<T>>]: T[K]\n}\n\n/**\n * Marks specific keys in a type as optional.\n *\n * @template T The type to modify.\n * @template K The keys to make optional.\n */\nexport type PartialKeys<T, K extends keyof T> = Omit<T, K> & Partial<Pick<T, K>>\n\n/**\n * Marks specific keys in a type as required.\n *\n * @template T The type to modify.\n * @template K The keys to make required.\n */\nexport type RequiredKeys<T, K extends keyof T> = Omit<T, K> & Required<Pick<T, K>>\n\n/**\n * Formats a multiline string and trims the indentation.\n *\n * @param str The string to trim.\n * @returns The trimmed string.\n */\nexport function text(strings: TemplateStringsArray, ...values: unknown[]): string {\n // Convert all values to strings\n const stringValues = values.map(String)\n\n // Build full string with values interpolated\n let result = \"\"\n for (let i = 0; i < strings.length; i++) {\n result += strings[i]\n if (i < stringValues.length) {\n const value = stringValues[i]\n const lines = value.split(\"\\n\")\n const lastLineIndentMatch = strings[i].match(/(?:^|\\n)([ \\t]*)$/)\n const indent = lastLineIndentMatch ? lastLineIndentMatch[1] : \"\"\n\n result += lines.map((line, j) => (j === 0 ? line : indent + line)).join(\"\\n\")\n }\n }\n\n return trimIndentation(result)\n}\n\n/**\n * Removes the indentation from a multiline string.\n *\n * @param text The text to trim.\n * @returns The trimmed text.\n */\nexport function trimIndentation(text: string): string {\n const lines = text.split(\"\\n\")\n const indent = lines\n .filter(line => line.trim() !== \"\")\n .map(line => line.match(/^\\s*/)?.[0].length ?? 0)\n .reduce((min, indent) => Math.min(min, indent), Infinity)\n\n return lines\n .map(line => line.slice(indent))\n .join(\"\\n\")\n .trim()\n}\n\n/**\n * Converts bytes to a human-readable format.\n *\n * @param bytes The number of bytes.\n * @returns The human-readable string representation of the bytes.\n */\nexport function bytesToHumanReadable(bytes: number): string {\n const sizes = [\"Bytes\", \"KB\", \"MB\", \"GB\", \"TB\"]\n if (bytes === 0) return \"0 Bytes\"\n\n const i = Math.floor(Math.log(bytes) / Math.log(1024))\n return parseFloat((bytes / Math.pow(1024, i)).toFixed(2)) + \" \" + sizes[i]\n}\n","/* eslint-disable @typescript-eslint/no-unsafe-member-access */\n/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable @typescript-eslint/no-unsafe-assignment */\n/* eslint-disable @typescript-eslint/no-unsafe-return */\n\nimport type { Entity } from \"./entity\"\nimport type { UnitModel } from \"./unit\"\nimport { z } from \"zod\"\nimport { isNonNullish, mapValues, pickBy } from \"remeda\"\nimport { Ajv } from \"ajv\"\nimport { getInstanceId, type InstanceId, type InstanceInput } from \"./instance\"\nimport { type OptionalUndefinedFields, type OptionalEmptyRecords, type PartialKeys } from \"./utils\"\nimport { registerInstance } from \"./evaluation\"\nimport { camelCaseToHumanReadable } from \"./i18n\"\nimport { objectMetaSchema, genericNameSchema, fieldNameSchema } from \"./meta\"\n\nexport const boundaryInput = Symbol(\"boundaryInput\")\n\nconst ajv = new Ajv({ strict: false })\n\nlet validationEnabled = true\n\nexport function setValidationEnabled(enabled: boolean): void {\n validationEnabled = enabled\n}\n\n// Argument\nexport const componentArgumentSchema = z.object({\n /**\n * The JSON schema of the argument value.\n */\n schema: z.custom<z.core.JSONSchema.BaseSchema>(),\n\n /**\n * Whether the argument is required.\n */\n required: z.boolean(),\n\n /**\n * The extra metadata of the argument.\n */\n meta: objectMetaSchema.required({ title: true }).pick({\n title: true,\n globalTitle: true,\n description: true,\n color: true,\n icon: true,\n iconColor: true,\n }),\n})\n\nexport type ComponentArgument = z.infer<typeof componentArgumentSchema>\n\nexport type ComponentArgumentFullOptions = {\n schema: z.ZodType\n required?: boolean\n meta?: ComponentArgument[\"meta\"]\n}\n\nfunction isSchemaOptional(schema: z.ZodType): boolean {\n return schema.safeParse(undefined).success\n}\n\nexport type ComponentArgumentOptions = z.ZodType | ComponentArgumentFullOptions\n\nexport type ComponentArgumentSpec = [schema: z.ZodType, hasDefault: boolean]\n\nexport type ComponentArgumentOptionsToSpec<T extends ComponentArgumentOptions> = T extends z.ZodType\n ? [T, T extends z.ZodDefault ? true : false]\n : T extends ComponentArgumentFullOptions\n ? T[\"schema\"] extends z.ZodType\n ? [T[\"schema\"], T[\"schema\"] extends z.ZodDefault ? true : false]\n : [\n T[\"required\"] extends false ? z.ZodOptional<T[\"schema\"]> : T[\"schema\"],\n T[\"schema\"] extends z.ZodDefault ? true : false,\n ]\n : never\n\nexport type ComponentArgumentOptionsMapToSpecMap<\n T extends Record<string, ComponentArgumentOptions>,\n> =\n T extends Record<string, never>\n ? Record<string, never>\n : { [K in keyof T]: ComponentArgumentOptionsToSpec<T[K]> }\n\nexport type ComponentArgumentSpecMapToInputStatic<T extends Record<string, ComponentArgumentSpec>> =\n T extends Record<string, never>\n ? Record<string, never>\n : z.infer<\n z.ZodObject<{ [K in keyof T]: T[K][1] extends false ? T[K][0] : z.ZodOptional<T[K][0]> }>\n >\n\nexport type ComponentArgumentSpecToStatic<T extends Record<string, ComponentArgumentSpec>> =\n T extends Record<string, never>\n ? Record<string, never>\n : z.infer<z.ZodObject<{ [K in keyof T]: T[K][0] }>>\n\nexport type ComponentArgumentOptionsToSchema<T extends ComponentArgumentOptions> =\n T extends ComponentArgumentFullOptions\n ? T[\"required\"] extends false\n ? z.ZodOptional<T[\"schema\"]>\n : T[\"schema\"]\n : T\n\ntype ComponentArgumentMapToValue<T extends Record<string, ComponentArgumentOptions>> = {\n [K in keyof T]: z.infer<ComponentArgumentOptionsToSchema<T[K]>>\n}\n\n// Input\nexport const componentInputSchema = z.object({\n /**\n * The type of the input.\n */\n type: genericNameSchema,\n\n /**\n * Whether the input is required.\n */\n required: z.boolean(),\n\n /**\n * Whether the input can have multiple values.\n */\n multiple: z.boolean(),\n\n /**\n * The extra metadata of the input.\n */\n meta: objectMetaSchema.required({ title: true }).pick({\n title: true,\n description: true,\n }),\n})\n\nexport type ComponentInput = z.infer<typeof componentInputSchema>\n\ntype ComponentInputFullOptions = {\n entity: Entity\n required?: boolean\n multiple?: boolean\n meta?: ComponentInput[\"meta\"]\n}\n\nexport type ComponentInputOptions = Entity | ComponentInputFullOptions\n\ntype ComponentInputOptionsToOutputRef<T extends ComponentInputOptions> = T extends Entity\n ? InstanceInput<T[\"type\"]>\n : T extends ComponentInputFullOptions\n ? T[\"required\"] extends false\n ? T[\"multiple\"] extends true\n ? InstanceInput<T[\"entity\"][\"type\"]>[] | undefined\n : InstanceInput<T[\"entity\"][\"type\"]> | undefined\n : T[\"multiple\"] extends true\n ? InstanceInput<T[\"entity\"][\"type\"]>[]\n : InstanceInput<T[\"entity\"][\"type\"]>\n : never\n\nexport type ComponentInputSpec = [entity: Entity, required: boolean, multiple: boolean]\n\nexport type ComponentInputOptionsToSpec<T extends ComponentInputOptions> = T extends Entity\n ? [T, true, false] // [Entity, required, multiple]\n : T extends ComponentInputFullOptions\n ? T[\"required\"] extends false\n ? T[\"multiple\"] extends true\n ? [T[\"entity\"], false, true]\n : [T[\"entity\"], false, false]\n : T[\"multiple\"] extends true\n ? [T[\"entity\"], true, true]\n : [T[\"entity\"], true, false]\n : never\n\nexport type ComponentInputOptionsMapToSpecMap<T extends Record<string, ComponentInputOptions>> =\n T extends Record<string, never>\n ? Record<string, never>\n : { [K in keyof T]: ComponentInputOptionsToSpec<T[K]> }\n\ntype ComponentInputMapToValue<T extends Record<string, ComponentInputOptions>> =\n OptionalUndefinedFields<{\n [K in keyof T]: ComponentInputOptionsToOutputRef<T[K]>\n }>\n\ntype ComponentInputMapToReturnType<T extends Record<string, ComponentInputOptions>> =\n T extends Record<string, never> ? void : ComponentInputMapToValue<T>\n\n// Params & Options\nexport type ComponentParams<\n TArgs extends Record<string, ComponentArgumentOptions>,\n TInputs extends Record<string, ComponentInputOptions>,\n> = {\n id: InstanceId\n name: string\n args: ComponentArgumentMapToValue<TArgs>\n inputs: ComponentInputMapToValue<TInputs>\n}\n\nexport type InputComponentParams<\n TArgs extends Record<string, unknown>,\n TInputs extends Record<string, unknown>,\n> = {\n name: string\n} & OptionalEmptyRecords<{\n args: TArgs\n inputs: TInputs\n}>\n\nexport type ComponentOptions<\n TArgs extends Record<string, ComponentArgumentOptions>,\n TInputs extends Record<string, ComponentInputOptions>,\n TOutputs extends Record<string, ComponentInputOptions>,\n> = {\n type: string\n meta?: PartialKeys<ComponentModel[\"meta\"], \"title\">\n\n args?: TArgs\n inputs?: TInputs\n outputs?: TOutputs\n\n create: (params: ComponentParams<TArgs, TInputs>) => ComponentInputMapToReturnType<TOutputs>\n}\n\n// Models\nexport const componentModelSchema = z.object({\n /**\n * The type of the component.\n */\n type: genericNameSchema,\n\n /**\n * The record of the argument schemas.\n */\n args: z.record(fieldNameSchema, componentArgumentSchema),\n\n /**\n * The record of the input schemas.\n */\n inputs: z.record(fieldNameSchema, componentInputSchema),\n\n /**\n * The record of the output schemas.\n */\n outputs: z.record(fieldNameSchema, componentInputSchema),\n\n /**\n * The extra metadata of the component.\n */\n meta: objectMetaSchema\n .required({ title: true })\n .pick({\n title: true,\n description: true,\n color: true,\n icon: true,\n iconColor: true,\n secondaryIcon: true,\n secondaryIconColor: true,\n })\n .extend({\n /**\n * The category of the component.\n *\n * Used to group components in the UI.\n */\n category: z.string().optional(),\n\n /**\n * The default name prefix for the component instances.\n *\n * Used to generate default names for the instances.\n */\n defaultNamePrefix: z.string().optional(),\n }),\n\n /**\n * The CRC32 of the component definition.\n */\n definitionHash: z.number(),\n})\n\nexport type ComponentModel = z.infer<typeof componentModelSchema>\n\ntype InputSpecToInputRef<T extends ComponentInputSpec> = T[1] extends true\n ? T[2] extends true\n ? InstanceInput<T[0][\"type\"]>[]\n : InstanceInput<T[0][\"type\"]>\n : T[2] extends true\n ? InstanceInput<T[0][\"type\"]>[] | undefined\n : InstanceInput<T[0][\"type\"]> | undefined\n\ntype InputSpecToOutputRef<T extends ComponentInputSpec> = T[2] extends true\n ? InstanceInput<T[0][\"type\"]>[]\n : InstanceInput<T[0][\"type\"]>\n\nexport type InputRefMap<TInputs extends Record<string, ComponentInputSpec>> =\n TInputs extends Record<string, [string, never, never]>\n ? Record<string, never>\n : { [K in keyof TInputs]: InputSpecToInputRef<TInputs[K]> }\n\nexport type OutputRefMap<TInputs extends Record<string, ComponentInputSpec>> =\n TInputs extends Record<string, [string, never, never]>\n ? Record<string, never>\n : { [K in keyof TInputs]: InputSpecToOutputRef<TInputs[K]> }\n\nexport const originalCreate = Symbol(\"originalCreate\")\n\nexport type Component<\n TArgs extends Record<string, ComponentArgumentSpec> = Record<string, never>,\n TInputs extends Record<string, ComponentInputSpec> = Record<string, never>,\n TOutputs extends Record<string, ComponentInputSpec> = Record<string, never>,\n> = {\n /**\n * The non-generic model of the component.\n */\n model: ComponentModel\n\n /**\n * The entities used in the inputs or outputs of the component.\n */\n entities: Map<string, Entity>\n\n /**\n * Creates the component at the evaluation time.\n */\n (\n context: InputComponentParams<\n ComponentArgumentSpecMapToInputStatic<TArgs>,\n InputRefMap<TInputs>\n >,\n ): OutputRefMap<TOutputs>\n\n /**\n * The original create function.\n *\n * Used to calculate the definition hash.\n */\n [originalCreate]: (params: InputComponentParams<any, any>) => any\n}\n\nexport function defineComponent<\n TArgs extends Record<string, ComponentArgumentOptions> = Record<string, never>,\n TInputs extends Record<string, ComponentInputOptions> = Record<string, never>,\n TOutputs extends Record<string, ComponentInputOptions> = Record<string, never>,\n>(\n options: ComponentOptions<TArgs, TInputs, TOutputs>,\n): Component<\n ComponentArgumentOptionsMapToSpecMap<TArgs>,\n ComponentInputOptionsMapToSpecMap<TInputs>,\n ComponentInputOptionsMapToSpecMap<TOutputs>\n> {\n if (!options.type) {\n throw new Error(\"Component type is required\")\n }\n\n if (!options.create) {\n throw new Error(\"Component create function is required\")\n }\n\n function create(params: InputComponentParams<any, any>): any {\n const { name, args, inputs } = params\n const instanceId = getInstanceId(options.type, name)\n\n const flatInputs = mapValues(pickBy(inputs ?? {}, isNonNullish), inputs => [inputs].flat(2))\n\n return registerInstance(\n create as unknown as Component,\n {\n id: instanceId,\n type: options.type,\n name,\n args: args ?? {},\n inputs: mapValues(flatInputs, inputs => inputs.map(input => input[boundaryInput] ?? input)),\n resolvedInputs: flatInputs,\n },\n () => {\n const componentInputs = (create.model as ComponentModel).inputs\n\n const markedInputs = mapValues(componentInputs, (componentInput, key) => {\n const inputs = flatInputs[key]\n if (!inputs || inputs.length === 0) {\n // pass boundary input directly if no real input is provided\n return (create.model as ComponentModel).inputs[key].multiple\n ? [{ instanceId, output: key }]\n : { instanceId, output: key }\n }\n\n const result = inputs.map(input => ({\n ...input,\n [boundaryInput]: { instanceId: instanceId, output: key },\n }))\n\n return (create.model as ComponentModel).inputs?.[key]?.multiple === false\n ? result[0]\n : result\n })\n\n const outputs: Record<string, InstanceInput[]> =\n options.create({\n id: instanceId,\n name,\n args: validateArgsAndFillDefaults(\n instanceId,\n create.model as ComponentModel,\n args ? { ...args } : {},\n ) as any,\n inputs: markedInputs as any,\n }) ?? {}\n\n return mapValues(pickBy(outputs, isNonNullish), outputs => [outputs].flat(2))\n },\n )\n }\n\n try {\n create.entities = new Map<string, Entity>()\n const mapInput = createInputMapper(create.entities)\n\n create.model = {\n type: options.type,\n args: mapValues(options.args ?? {}, mapArgument),\n inputs: mapValues(options.inputs ?? {}, mapInput),\n outputs: mapValues(options.outputs ?? {}, mapInput),\n meta: {\n ...options.meta,\n title: options.meta?.title ?? camelCaseToHumanReadable(options.type),\n },\n definitionHash: null!, // will be calculated by library loader\n }\n\n create[originalCreate] = options.create\n\n return create as any\n } catch (error) {\n throw new Error(`Failed to define component \"${options.type}\"`, { cause: error })\n }\n}\n\nexport function isComponent(value: unknown): value is Component {\n return typeof value === \"function\" && \"model\" in value\n}\n\nexport function mapArgument(value: ComponentArgumentOptions, key: string): ComponentArgument {\n if (\"schema\" in value) {\n return {\n schema: z.toJSONSchema(value.schema, { target: \"draft-7\" }),\n required: value.required ?? !isSchemaOptional(value.schema),\n meta: {\n ...value.meta,\n title: value.meta?.title ?? camelCaseToHumanReadable(key),\n },\n }\n }\n\n return {\n schema: z.toJSONSchema(value, { target: \"draft-7\" }),\n required: !isSchemaOptional(value),\n meta: {\n title: camelCaseToHumanReadable(key),\n },\n }\n}\n\nexport function createInputMapper(entities: Map<string, Entity>) {\n return (value: ComponentInputOptions, key: string): ComponentInput => {\n if (!value) {\n throw new Error(`Input/output \"${key}\" is undefined in the component model.`)\n }\n\n if (\"entity\" in value) {\n entities.set(value.entity.type, value.entity)\n\n return {\n type: value.entity.type,\n required: value.required ?? true,\n multiple: value.multiple ?? false,\n meta: {\n ...value.meta,\n title: value.meta?.title ?? camelCaseToHumanReadable(key),\n },\n }\n }\n\n entities.set(value.type, value)\n\n return {\n type: value.type,\n required: true,\n multiple: false,\n meta: {\n title: camelCaseToHumanReadable(key),\n },\n }\n }\n}\n\nfunction validateArgsAndFillDefaults(\n instanceId: string,\n model: ComponentModel,\n args: Record<string, unknown>,\n) {\n for (const [key, argModel] of Object.entries(model.args)) {\n let value = args[key]\n if (!value) {\n if (argModel.required && validationEnabled) {\n throw new Error(`Missing required argument \"${key}\" for instance \"${instanceId}\"`)\n }\n\n value = argModel.schema.default\n args[key] = value\n }\n\n if (validationEnabled && value && !ajv.validate(argModel.schema, value)) {\n throw new Error(`Invalid argument \"${key}\" for instance \"${instanceId}\": ${ajv.errorsText()}`)\n }\n }\n\n return args\n}\n\nexport function isUnitModel(model: ComponentModel): model is UnitModel {\n return \"source\" in model\n}\n\n/**\n * The helper marker for component arguments.\n *\n * Helps validating arguments types and gives the compiler a hint for generating `meta` fields.\n */\nexport function $args<T extends Record<string, ComponentArgumentOptions>>(args: T): T {\n return args\n}\n\n/**\n * The helper marker for component inputs.\n *\n * Helps validating inputs types and gives the compiler a hint for generating `meta` fields.\n */\nexport function $inputs<T extends Record<string, ComponentInputOptions>>(inputs: T): T {\n return inputs\n}\n\n/**\n * The helper marker for component outputs.\n *\n * Helps validating outputs types and gives the compiler a hint for generating `meta` fields.\n */\nexport function $outputs<T extends Record<string, ComponentInputOptions>>(outputs: T): T {\n return outputs\n}\n","/* eslint-disable @typescript-eslint/no-unsafe-return */\n/* eslint-disable @typescript-eslint/no-unsafe-member-access */\n/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable @typescript-eslint/no-unsafe-assignment */\n\nimport type { InstanceInput } from \"./instance\"\nimport { mapValues } from \"remeda\"\nimport z from \"zod\"\nimport {\n type ComponentArgumentSpec,\n type Component,\n type ComponentArgumentOptions,\n type ComponentInputOptions,\n type ComponentInputOptionsMapToSpecMap,\n type ComponentInputSpec,\n type ComponentModel,\n type ComponentOptions,\n defineComponent,\n mapArgument,\n type ComponentArgumentOptionsMapToSpecMap,\n type ComponentArgumentFullOptions,\n componentArgumentSchema,\n} from \"./component\"\n\nexport const componentSecretSchema = componentArgumentSchema.extend({\n /**\n * The secret cannot be modified by the user, but can be modified by the unit.\n */\n readonly: z.boolean(),\n\n /**\n * The secret value is computed by the unit and should not be passed to it when invoked.\n */\n computed: z.boolean(),\n})\n\nexport type ComponentSecret = z.infer<typeof componentSecretSchema>\n\ntype ComponentSecretFullOptions = ComponentArgumentFullOptions & {\n readonly?: boolean\n computed?: boolean\n}\n\ntype ComponentSecretOptions = z.ZodType | ComponentSecretFullOptions\n\ntype UnitOptions<\n TArgs extends Record<string, ComponentArgumentOptions>,\n TInputs extends Record<string, ComponentInputOptions>,\n TOutputs extends Record<string, ComponentInputOptions>,\n TSecrets extends Record<string, ComponentSecretOptions>,\n> = Omit<ComponentOptions<TArgs, TInputs, TOutputs>, \"create\"> & {\n source: UnitSource\n\n secrets?: TSecrets\n}\n\nexport type UnitSource = {\n package: string\n path?: string\n version?: string\n}\n\nexport type UnitModel = ComponentModel & {\n /**\n * The source of the unit.\n */\n source: UnitSource\n\n /**\n * The record of the secret argument schemas.\n */\n secrets: Record<string, ComponentSecret>\n}\n\nexport type Unit<\n TArgs extends Record<string, ComponentArgumentSpec> = Record<string, never>,\n TInputs extends Record<string, ComponentInputSpec> = Record<string, never>,\n TOutputs extends Record<string, ComponentInputSpec> = Record<string, never>,\n TSecrets extends Record<string, unknown> = Record<string, never>,\n> = Component<TArgs, TInputs, TOutputs> & {\n __secrets: TSecrets\n\n model: UnitModel\n}\n\nexport function defineUnit<\n TArgs extends Record<string, ComponentArgumentOptions> = Record<string, never>,\n TInputs extends Record<string, ComponentInputOptions> = Record<string, never>,\n TOutputs extends Record<string, ComponentInputOptions> = Record<string, never>,\n TSecrets extends Record<string, ComponentSecretOptions> = Record<string, never>,\n>(\n options: UnitOptions<TArgs, TInputs, TOutputs, TSecrets>,\n): Unit<\n ComponentArgumentOptionsMapToSpecMap<TArgs>,\n ComponentInputOptionsMapToSpecMap<TInputs>,\n ComponentInputOptionsMapToSpecMap<TOutputs>,\n ComponentArgumentOptionsMapToSpecMap<TSecrets>\n> {\n if (!options.source) {\n throw new Error(\"Unit source is required\")\n }\n\n const component = defineComponent<TArgs, TInputs, TOutputs>({\n ...options,\n\n create({ id }) {\n const outputs: Record<string, InstanceInput[]> = {}\n for (const key in options.outputs ?? {}) {\n outputs[key] = [\n {\n instanceId: id,\n output: key,\n },\n ]\n }\n\n return outputs as any\n },\n }) as any\n\n component.model.source = options.source ?? {}\n component.model.secrets = mapValues(options.secrets ?? {}, mapSecret)\n\n return component\n}\n\n/**\n * The helper marker for component secrets.\n *\n * Helps validating secrets types and gives the compiler a hint for generating `meta` fields.\n */\nexport function $secrets<T extends Record<string, ComponentSecretOptions>>(secrets: T): T {\n return secrets\n}\n\nfunction mapSecret(value: ComponentSecretOptions, key: string): ComponentSecret {\n if (\"schema\" in value) {\n return {\n ...mapArgument(value, key),\n readonly: value.readonly ?? false,\n computed: value.computed ?? false,\n }\n }\n\n return {\n ...mapArgument(value, key),\n readonly: false,\n computed: false,\n }\n}\n","{\n \"terminal-restic\": {\n \"name\": \"ghcr.io/exeteres/highstate/terminal-restic\",\n \"tag\": \"latest\",\n \"image\": \"ghcr.io/exeteres/highstate/terminal-restic:latest@sha256:10ff1f65bbc5d5f84e0accc388c28ddb97f8a1a824bd7a90d2d5674506f5dee3\"\n }\n}\n","import type { ScriptEnvironment } from \"@highstate/k8s\"\nimport { text } from \"@highstate/contract\"\n\nexport const backupEnvironment: ScriptEnvironment = {\n alpine: {\n packages: [\"restic\"],\n },\n\n ubuntu: {\n packages: [\"restic\"],\n },\n\n files: {\n \"backup.sh\": text`\n #!/bin/sh\n set -e\n\n # Init the repo if it doesn't exist\n echo \"| Checking the repository\"\n if restic snapshots > /dev/null 2>&1; then\n echo \"| Repository is ready\"\n else\n echo \"| Initializing new repository\"\n restic init\n fi\n\n # Execute lock script if it exists\n if [ -f /scripts/lock.sh ]; then\n /scripts/lock.sh || (echo \"| error: lock script failed\" && exit 1)\n fi\n\n # Unlock the data source on exit\n if [ -f /scripts/unlock.sh ]; then\n trap \"echo '/scripts/unlock.sh || (echo '| error: unlock script failed' && exit 1)\" EXIT\n fi\n\n # Perform online backup if the corresponding script exists\n if [ -f /scripts/online-backup.sh ]; then\n /scripts/online-backup.sh || (echo \"| error: online backup script failed\" && exit 1)\n fi\n\n # Backup the volume\n echo \"| Backing up /data\"\n restic backup -H \"$RESTIC_HOSTNAME\" /data $EXTRA_BACKUP_OPTIONS\n\n # Forget old snapshots\n echo \"| Forgetting old snapshots\"\n restic forget --host \"$RESTIC_HOSTNAME\" --keep-daily 7 --keep-weekly 4 --keep-monthly 6\n echo \"| Backup complete\"\n `,\n\n \"restore.sh\": text`\n #!/bin/sh\n set -e\n\n # Check if /data is empty\n echo \"| Checking if volume is empty\"\n if [ \"$(find /data -type f -print -quit 2>/dev/null)\" ]; then\n echo \"| Volume is not empty. Skipping restore.\"\n exit 0\n fi\n\n # Check if at least one snapshot exists\n echo \"| Checking for snapshots\"\n if ! result=$(restic list snapshots); then\n echo \"| No snapshots found. Skipping restore.\"\n exit 0\n fi\n\n if [ -z \"$result\" ]; then\n echo \"| No snapshots found. Skipping restore.\"\n exit 0\n fi\n\n # Restore the volume\n echo \"| Restoring /data\"\n restic restore -H \"$RESTIC_HOSTNAME\" latest --target /\n echo \"| Volume restored.\"\n\n # Post-restore script\n if [ -f /scripts/post-restore.sh ]; then\n /scripts/post-restore.sh || (echo \"| error: post-restore script failed\" && exit 1)\n fi\n `,\n },\n}\n","import type { k8s, restic } from \"@highstate/library\"\nimport type { InputL34Endpoint } from \"@highstate/common\"\nimport { batch } from \"@pulumi/kubernetes\"\nimport {\n createScriptContainer,\n CronJob,\n getProvider,\n Job,\n ScriptBundle,\n Secret,\n type CommonArgs,\n type Container,\n type ScriptDistribution,\n type ScriptEnvironment,\n type WorkloadVolume,\n} from \"@highstate/k8s\"\nimport {\n ComponentResource,\n getUnitInstanceName,\n normalize,\n output,\n Output,\n type ComponentResourceOptions,\n type Input,\n type InputArray,\n type InstanceTerminal,\n type InstanceTrigger,\n type InstanceTriggerInvocation,\n} from \"@highstate/pulumi\"\nimport { text } from \"@highstate/contract\"\nimport * as images from \"../assets/images.json\"\nimport { backupEnvironment } from \"./scripts\"\n\nexport type BackupJobPairArgs = CommonArgs & {\n /**\n * The k8s cluster to calculate the repository path.\n */\n cluster: Input<k8s.Cluster>\n\n /**\n * The repository to backup/restore to/from.\n */\n resticRepo: Input<restic.Repository>\n\n /**\n * The password used to encrypt the backups.\n */\n backupPassword: Input<string>\n\n /**\n * The extra script environment to pass to the backup and restore scripts.\n */\n environment?: Input<ScriptEnvironment>\n\n /**\n * The extra script environments to pass to the backup and restore scripts.\n */\n environments?: InputArray<ScriptEnvironment>\n\n /**\n * The volume to backup.\n */\n volume?: Input<WorkloadVolume>\n\n /**\n * The sup path of the volume to restore/backup.\n */\n subPath?: Input<string>\n\n /**\n * The schedule for the backup job.\n *\n * By default, the backup job runs every day at midnight.\n */\n schedule?: Input<string>\n\n /**\n * The extra options to pass to the backup script.\n */\n backupOptions?: InputArray<string>\n\n /**\n * The extra options for the backup container.\n */\n backupContainer?: Input<Container>\n\n /**\n * The extra options for the restore container.\n */\n restoreContainer?: Input<Container>\n\n /**\n * The distribution to use for the scripts.\n *\n * By default, the distribution is `alpine`.\n *\n * You can also use `ubuntu` if you need to install packages that are not available (or working) in Alpine.\n */\n distribution?: ScriptDistribution\n\n /**\n * Extra allowed endpoints for the backup and restore jobs.\n */\n allowedEndpoints?: InputArray<InputL34Endpoint>\n}\n\nexport class BackupJobPair extends ComponentResource {\n /**\n * The credentials used to access the repository and encrypt the backups.\n */\n readonly credentials: Output<Secret>\n\n /**\n * The script bundle used by the backup and restore jobs.\n */\n readonly scriptBundle: Output<ScriptBundle>\n\n /**\n * The job resource which restores the volume from the backup before creating an application.\n */\n readonly restoreJob: Output<Job>\n\n /**\n * The cron job resource which backups the volume regularly.\n */\n readonly backupJob: Output<CronJob>\n\n /**\n * The full name of the Restic repository.\n */\n readonly resticRepoPath: Output<string>\n\n constructor(\n private readonly name: string,\n private readonly args: BackupJobPairArgs,\n private readonly opts?: ComponentResourceOptions,\n ) {\n super(\"highstate:restic:BackupJobPair\", name, args, opts)\n\n this.credentials = output(args).apply(args => {\n return Secret.create(\n `${name}-backup-credentials`,\n {\n namespace: args.namespace,\n cluster: args.cluster,\n\n stringData: {\n password: args.backupPassword,\n \"rclone.conf\": args.resticRepo.rcloneConfig,\n },\n },\n { ...opts, parent: this },\n )\n })\n\n this.resticRepoPath = output(args).apply(args => {\n const relativePath = args.resticRepo.pathPattern\n .replace(/\\$clusterName/g, args.cluster.name)\n .replace(/\\$appName/g, name)\n .replace(/\\$unitName/g, getUnitInstanceName())\n\n return `rclone:${args.resticRepo.remoteName}:${relativePath}`\n })\n\n const environment = output({ args, repoPath: this.resticRepoPath }).apply(\n ({ args, repoPath }) => {\n return {\n alpine: {\n packages: [\"rclone\"],\n },\n\n ubuntu: {\n preInstallPackages: [\"curl\", \"unzip\"],\n\n preInstallScripts: {\n \"rclone.sh\": text`\n #!/bin/sh\n set -e\n\n curl https://rclone.org/install.sh | bash\n `,\n },\n\n allowedEndpoints: [\"rclone.org:443\", \"downloads.rclone.org:443\"],\n },\n\n allowedEndpoints: [\n ...(args.allowedEndpoints ?? []),\n ...(args.resticRepo.remoteEndpoints ?? []),\n ],\n\n environment: {\n RESTIC_REPOSITORY: repoPath,\n RESTIC_PASSWORD_FILE: \"/credentials/password\",\n RESTIC_HOSTNAME: \"default\",\n RCLONE_CONFIG: \"/credentials/rclone.conf\",\n EXTRA_BACKUP_OPTIONS: args.backupOptions?.join(\" \"),\n },\n\n volumes: [this.credentials, ...(args.volume ? [args.volume] : [])],\n\n volumeMounts: [\n {\n volume: this.credentials,\n mountPath: \"/credentials\",\n readOnly: true,\n },\n ...(args.volume\n ? [\n {\n volume: args.volume,\n mountPath: \"/data\",\n subPath: args.subPath,\n },\n ]\n : []),\n ],\n } satisfies ScriptEnvironment\n },\n )\n\n this.scriptBundle = output(args).apply(args => {\n return new ScriptBundle(\n `${name}-backup-scripts`,\n {\n cluster: args.cluster,\n namespace: args.namespace,\n distribution: args.distribution ?? \"alpine\",\n\n environments: [\n backupEnvironment,\n environment,\n ...normalize(args.environment, args.environments),\n ],\n },\n { ...opts, parent: this },\n )\n })\n\n this.restoreJob = output(args).apply(args => {\n return new Job(\n `${name}-restore`,\n {\n cluster: args.cluster,\n namespace: args.namespace,\n\n container: createScriptContainer({\n ...args.restoreContainer,\n\n main: \"restore.sh\",\n bundle: this.scriptBundle,\n }),\n\n backoffLimit: 2,\n },\n { ...opts, parent: this },\n )\n })\n\n this.backupJob = output(args).apply(args => {\n return new CronJob(\n `${name}-backup`,\n {\n namespace: args.namespace,\n cluster: args.cluster,\n\n container: createScriptContainer({\n ...args.backupContainer,\n\n main: \"backup.sh\",\n bundle: this.scriptBundle,\n }),\n\n schedule: args.schedule ?? \"0 0 * * *\",\n concurrencyPolicy: \"Forbid\",\n\n jobTemplate: {\n spec: {\n backoffLimit: 2,\n },\n },\n },\n { ...opts, parent: this },\n )\n })\n }\n\n handleTrigger(triggers: InstanceTriggerInvocation[]): InstanceTrigger | undefined {\n const triggerName = `restic.backup-on-destroy.${this.name}`\n const invokedTrigger = triggers.find(trigger => trigger.name === triggerName)\n\n if (invokedTrigger) {\n void this.createBackupOnDestroyJob()\n return\n }\n\n return {\n name: triggerName,\n title: \"Backup on Destroy\",\n description: `Backup the \"${this.name}\" before destroying.`,\n spec: {\n type: \"before-destroy\",\n },\n }\n }\n\n createTerminal(): InstanceTerminal {\n return {\n name: \"restic\",\n\n meta: {\n title: \"Restic\",\n description: \"Manage Restic repository\",\n icon: \"material-symbols:backup\",\n },\n\n image: images[\"terminal-restic\"].image,\n command: [\"bash\", \"/welcome.sh\"],\n\n files: {\n \"/welcome.sh\": text`\n echo \"Use 'restic' to manage the repository.\"\n echo\n\n exec bash\n `,\n\n \"/credentials/password\": output(this.args).backupPassword,\n \"/root/.config/rclone/rclone.conf\": output(this.args).resticRepo.rcloneConfig,\n },\n\n env: {\n RESTIC_REPOSITORY: this.resticRepoPath,\n RESTIC_PASSWORD_FILE: \"/credentials/password\",\n },\n }\n }\n\n private async createBackupOnDestroyJob(): Promise<void> {\n new batch.v1.Job(\n `${this.name}-backup-on-destroy`,\n {\n metadata: {\n name: `${this.name}-backup-on-destroy`,\n namespace: this.backupJob.cronJob.metadata.namespace,\n },\n spec: this.backupJob.cronJob.spec.jobTemplate.spec,\n },\n { ...this.opts, parent: this, provider: await getProvider(this.args.cluster) },\n )\n }\n}\n"]}
1
+ {"version":3,"sources":["../assets/images.json","../src/scripts.ts","../src/job-pair.ts"],"names":["terminal-restic","cluster","text"],"mappings":"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","file":"index.js","sourcesContent":["{\n \"terminal-restic\": {\n \"name\": \"ghcr.io/exeteres/highstate/terminal-restic\",\n \"tag\": \"latest\",\n \"image\": \"ghcr.io/exeteres/highstate/terminal-restic:latest@sha256:10ff1f65bbc5d5f84e0accc388c28ddb97f8a1a824bd7a90d2d5674506f5dee3\"\n }\n}\n","import type { ScriptEnvironment } from \"@highstate/k8s\"\nimport { text } from \"@highstate/contract\"\n\nexport const backupEnvironment: ScriptEnvironment = {\n alpine: {\n packages: [\"restic\"],\n },\n\n ubuntu: {\n packages: [\"restic\"],\n },\n\n files: {\n \"backup.sh\": text`\n #!/bin/sh\n set -e\n\n # Init the repo if it doesn't exist\n echo \"| Checking the repository\"\n if restic snapshots > /dev/null 2>&1; then\n echo \"| Repository is ready\"\n else\n echo \"| Initializing new repository\"\n restic init\n fi\n\n # Execute lock script if it exists\n if [ -f /scripts/lock.sh ]; then\n /scripts/lock.sh || (echo \"| error: lock script failed\" && exit 1)\n fi\n\n # Unlock the data source on exit\n if [ -f /scripts/unlock.sh ]; then\n trap \"echo '/scripts/unlock.sh || (echo '| error: unlock script failed' && exit 1)\" EXIT\n fi\n\n # Perform online backup if the corresponding script exists\n if [ -f /scripts/online-backup.sh ]; then\n /scripts/online-backup.sh || (echo \"| error: online backup script failed\" && exit 1)\n fi\n\n # Backup the volume\n echo \"| Backing up /data\"\n restic backup -H \"$RESTIC_HOSTNAME\" /data $EXTRA_BACKUP_OPTIONS\n\n # Forget old snapshots\n echo \"| Forgetting old snapshots\"\n restic forget --host \"$RESTIC_HOSTNAME\" --keep-daily 7 --keep-weekly 4 --keep-monthly 6\n echo \"| Backup complete\"\n `,\n\n \"restore.sh\": text`\n #!/bin/sh\n set -e\n\n # Check if /data is empty\n echo \"| Checking if volume is empty\"\n if [ \"$(find /data -type f -print -quit 2>/dev/null)\" ]; then\n echo \"| Volume is not empty. Skipping restore.\"\n exit 0\n fi\n\n # Check if at least one snapshot exists\n echo \"| Checking for snapshots\"\n if ! result=$(restic list snapshots); then\n echo \"| No snapshots found. Skipping restore.\"\n exit 0\n fi\n\n if [ -z \"$result\" ]; then\n echo \"| No snapshots found. Skipping restore.\"\n exit 0\n fi\n\n # Restore the volume\n echo \"| Restoring /data\"\n restic restore -H \"$RESTIC_HOSTNAME\" latest --target /\n echo \"| Volume restored.\"\n\n # Post-restore script\n if [ -f /scripts/post-restore.sh ]; then\n /scripts/post-restore.sh || (echo \"| error: post-restore script failed\" && exit 1)\n fi\n `,\n },\n}\n","import type { restic } from \"@highstate/library\"\nimport type { InputL34Endpoint } from \"@highstate/common\"\nimport { batch } from \"@pulumi/kubernetes\"\nimport {\n createScriptContainer,\n CronJob,\n getProvider,\n Job,\n ScriptBundle,\n Secret,\n type Container,\n type ScriptDistribution,\n type ScriptEnvironment,\n type ScopedResourceArgs,\n type WorkloadVolume,\n} from \"@highstate/k8s\"\nimport {\n ComponentResource,\n getUnitInstanceName,\n normalize,\n output,\n type Output,\n toPromise,\n type ComponentResourceOptions,\n type Input,\n type InputArray,\n} from \"@highstate/pulumi\"\nimport {\n text,\n type UnitTerminal,\n type UnitTrigger,\n type TriggerInvocation,\n} from \"@highstate/contract\"\nimport * as images from \"../assets/images.json\"\nimport { backupEnvironment } from \"./scripts\"\n\nexport type BackupJobPairArgs = ScopedResourceArgs & {\n /**\n * The repository to backup/restore to/from.\n */\n resticRepo: Input<restic.Repository>\n\n /**\n * The password used to encrypt the backups.\n */\n backupPassword: Input<string>\n\n /**\n * The extra script environment to pass to the backup and restore scripts.\n */\n environment?: Input<ScriptEnvironment>\n\n /**\n * The extra script environments to pass to the backup and restore scripts.\n */\n environments?: InputArray<ScriptEnvironment>\n\n /**\n * The volume to backup.\n */\n volume?: Input<WorkloadVolume>\n\n /**\n * The sup path of the volume to restore/backup.\n */\n subPath?: Input<string>\n\n /**\n * The schedule for the backup job.\n *\n * By default, the backup job runs every day at midnight.\n */\n schedule?: Input<string>\n\n /**\n * The extra options to pass to the backup script.\n */\n backupOptions?: InputArray<string>\n\n /**\n * The extra options for the backup container.\n */\n backupContainer?: Input<Container>\n\n /**\n * The extra options for the restore container.\n */\n restoreContainer?: Input<Container>\n\n /**\n * The distribution to use for the scripts.\n *\n * By default, the distribution is `alpine`.\n *\n * You can also use `ubuntu` if you need to install packages that are not available (or working) in Alpine.\n */\n distribution?: ScriptDistribution\n\n /**\n * Extra allowed endpoints for the backup and restore jobs.\n */\n allowedEndpoints?: InputArray<InputL34Endpoint>\n}\n\nexport class BackupJobPair extends ComponentResource {\n /**\n * The credentials used to access the repository and encrypt the backups.\n */\n readonly credentials: Secret\n\n /**\n * The script bundle used by the backup and restore jobs.\n */\n readonly scriptBundle: ScriptBundle\n\n /**\n * The job resource which restores the volume from the backup before creating an application.\n */\n readonly restoreJob: Job\n\n /**\n * The cron job resource which backups the volume regularly.\n */\n readonly backupJob: CronJob\n\n /**\n * The full name of the Restic repository.\n */\n readonly resticRepoPath: Output<string>\n\n constructor(\n private readonly name: string,\n private readonly args: BackupJobPairArgs,\n private readonly opts?: ComponentResourceOptions,\n ) {\n super(\"highstate:restic:BackupJobPair\", name, args, opts)\n\n const cluster = output(args.namespace).cluster\n\n this.credentials = Secret.create(\n `${name}-backup-credentials`,\n {\n namespace: args.namespace,\n\n stringData: {\n password: args.backupPassword,\n \"rclone.conf\": output(args.resticRepo).rcloneConfig,\n },\n },\n { ...opts, parent: this },\n )\n\n this.resticRepoPath = output({\n cluster,\n resticRepo: args.resticRepo,\n }).apply(({ cluster, resticRepo }) => {\n const relativePath = resticRepo.pathPattern\n .replace(/\\$clusterName/g, cluster.name)\n .replace(/\\$appName/g, name)\n .replace(/\\$unitName/g, getUnitInstanceName())\n\n return `rclone:${resticRepo.remoteName}:${relativePath}`\n })\n\n this.scriptBundle = new ScriptBundle(\n `${name}-backup-scripts`,\n {\n namespace: args.namespace,\n distribution: args.distribution ?? \"alpine\",\n\n environments: output({\n environment: args.environment,\n environments: args.environments,\n }).apply(({ environment, environments }) => [\n backupEnvironment,\n {\n alpine: {\n packages: [\"rclone\"],\n },\n\n ubuntu: {\n preInstallPackages: [\"curl\", \"unzip\"],\n\n preInstallScripts: {\n \"rclone.sh\": text`\n #!/bin/sh\n set -e\n\n curl https://rclone.org/install.sh | bash\n `,\n },\n\n allowedEndpoints: [\"rclone.org:443\", \"downloads.rclone.org:443\"],\n },\n\n allowedEndpoints: output({\n allowedEndpoints: args.allowedEndpoints,\n resticRepo: args.resticRepo,\n }).apply(({ allowedEndpoints, resticRepo }) => [\n ...(allowedEndpoints ?? []),\n ...(resticRepo.remoteEndpoints ?? []),\n ]),\n\n environment: {\n RESTIC_REPOSITORY: this.resticRepoPath,\n RESTIC_PASSWORD_FILE: \"/credentials/password\",\n RESTIC_HOSTNAME: \"default\",\n RCLONE_CONFIG: \"/credentials/rclone.conf\",\n EXTRA_BACKUP_OPTIONS: output(args.backupOptions).apply(options => options?.join(\" \")),\n },\n\n volumes: [this.credentials, ...(args.volume ? [args.volume] : [])],\n\n volumeMounts: [\n {\n volume: this.credentials,\n mountPath: \"/credentials\",\n readOnly: true,\n },\n ...(args.volume\n ? [\n {\n volume: args.volume,\n mountPath: \"/data\",\n subPath: args.subPath,\n },\n ]\n : []),\n ],\n } satisfies ScriptEnvironment,\n ...normalize(environment, environments),\n ]),\n },\n { ...opts, parent: this },\n )\n\n this.restoreJob = Job.create(\n `${name}-restore`,\n {\n namespace: args.namespace,\n\n container: output(args.restoreContainer).apply(restoreContainer =>\n createScriptContainer({\n ...restoreContainer,\n main: \"restore.sh\",\n bundle: this.scriptBundle,\n }),\n ),\n\n backoffLimit: 2,\n },\n { ...opts, parent: this },\n )\n\n this.backupJob = CronJob.create(\n `${name}-backup`,\n {\n namespace: args.namespace,\n\n container: output(args.backupContainer).apply(backupContainer =>\n createScriptContainer({\n ...backupContainer,\n main: \"backup.sh\",\n bundle: this.scriptBundle,\n }),\n ),\n\n schedule: args.schedule ?? \"0 0 * * *\",\n concurrencyPolicy: \"Forbid\",\n\n jobTemplate: {\n spec: {\n backoffLimit: 2,\n },\n },\n },\n { ...opts, parent: this },\n )\n }\n\n handleTrigger(triggers: TriggerInvocation[]): UnitTrigger | undefined {\n const triggerName = `restic.backup-on-destroy.${this.name}`\n const invokedTrigger = triggers.find(trigger => trigger.name === triggerName)\n\n if (invokedTrigger) {\n void this.createBackupOnDestroyJob()\n return\n }\n\n return {\n name: triggerName,\n meta: {\n title: \"Backup on Destroy\",\n description: `Backup the \"${this.name}\" before destroying.`,\n icon: \"material-symbols:backup\",\n },\n spec: {\n type: \"before-destroy\",\n },\n }\n }\n\n createTerminal(): Output<UnitTerminal> {\n return output({\n backupPassword: this.args.backupPassword,\n resticRepo: this.args.resticRepo,\n resticRepoPath: this.resticRepoPath,\n }).apply(({ backupPassword, resticRepo, resticRepoPath }) => ({\n name: \"restic\",\n\n meta: {\n title: \"Restic\",\n description: \"Manage Restic repository\",\n icon: \"material-symbols:backup\",\n },\n\n spec: {\n image: images[\"terminal-restic\"].image,\n command: [\"bash\", \"/welcome.sh\"],\n\n files: {\n \"/welcome.sh\": {\n meta: { name: \"/welcome.sh\" },\n content: {\n type: \"embedded\" as const,\n value: text`\n echo \"Use 'restic' to manage the repository.\"\n echo\n\n exec bash\n `,\n },\n },\n\n \"/credentials/password\": {\n meta: { name: \"/credentials/password\" },\n content: {\n type: \"embedded\" as const,\n value: backupPassword,\n },\n },\n\n \"/root/.config/rclone/rclone.conf\": {\n meta: { name: \"/root/.config/rclone/rclone.conf\" },\n content: {\n type: \"embedded\" as const,\n value: resticRepo.rcloneConfig,\n },\n },\n },\n\n env: {\n RESTIC_REPOSITORY: resticRepoPath,\n RESTIC_PASSWORD_FILE: \"/credentials/password\",\n },\n },\n }))\n }\n\n private async createBackupOnDestroyJob(): Promise<void> {\n const cluster = await toPromise(output(this.args.namespace).cluster)\n\n new batch.v1.Job(\n `${this.name}-backup-on-destroy`,\n {\n metadata: {\n name: `${this.name}-backup-on-destroy`,\n namespace: this.backupJob.metadata.namespace,\n },\n spec: this.backupJob.spec.jobTemplate.spec,\n },\n { ...this.opts, parent: this, provider: getProvider(cluster) },\n )\n }\n}\n"]}