{"version":3,"file":"ajvProvider-Birb50r-.mjs","names":["_a","Ajv","_addFormats"],"sources":["../../../node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/compile/codegen/code.js","../../../node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/compile/codegen/scope.js","../../../node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/compile/codegen/index.js","../../../node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/compile/util.js","../../../node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/compile/names.js","../../../node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/compile/errors.js","../../../node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/compile/validate/boolSchema.js","../../../node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/compile/rules.js","../../../node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/compile/validate/applicability.js","../../../node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/compile/validate/dataType.js","../../../node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/compile/validate/defaults.js","../../../node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/vocabularies/code.js","../../../node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/compile/validate/keyword.js","../../../node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/compile/validate/subschema.js","../../../node_modules/.pnpm/fast-deep-equal@3.1.3/node_modules/fast-deep-equal/index.js","../../../node_modules/.pnpm/json-schema-traverse@1.0.0/node_modules/json-schema-traverse/index.js","../../../node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/compile/resolve.js","../../../node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/compile/validate/index.js","../../../node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/runtime/validation_error.js","../../../node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/compile/ref_error.js","../../../node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/compile/index.js","../../../node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/refs/data.json","../../../node_modules/.pnpm/fast-uri@3.1.0/node_modules/fast-uri/lib/utils.js","../../../node_modules/.pnpm/fast-uri@3.1.0/node_modules/fast-uri/lib/schemes.js","../../../node_modules/.pnpm/fast-uri@3.1.0/node_modules/fast-uri/index.js","../../../node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/runtime/uri.js","../../../node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/core.js","../../../node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/vocabularies/core/id.js","../../../node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/vocabularies/core/ref.js","../../../node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/vocabularies/core/index.js","../../../node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/vocabularies/validation/limitNumber.js","../../../node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/vocabularies/validation/multipleOf.js","../../../node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/runtime/ucs2length.js","../../../node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/vocabularies/validation/limitLength.js","../../../node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/vocabularies/validation/pattern.js","../../../node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/vocabularies/validation/limitProperties.js","../../../node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/vocabularies/validation/required.js","../../../node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/vocabularies/validation/limitItems.js","../../../node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/runtime/equal.js","../../../node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/vocabularies/validation/uniqueItems.js","../../../node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/vocabularies/validation/const.js","../../../node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/vocabularies/validation/enum.js","../../../node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/vocabularies/validation/index.js","../../../node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/vocabularies/applicator/additionalItems.js","../../../node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/vocabularies/applicator/items.js","../../../node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/vocabularies/applicator/prefixItems.js","../../../node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/vocabularies/applicator/items2020.js","../../../node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/vocabularies/applicator/contains.js","../../../node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/vocabularies/applicator/dependencies.js","../../../node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/vocabularies/applicator/propertyNames.js","../../../node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/vocabularies/applicator/additionalProperties.js","../../../node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/vocabularies/applicator/properties.js","../../../node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/vocabularies/applicator/patternProperties.js","../../../node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/vocabularies/applicator/not.js","../../../node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/vocabularies/applicator/anyOf.js","../../../node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/vocabularies/applicator/oneOf.js","../../../node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/vocabularies/applicator/allOf.js","../../../node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/vocabularies/applicator/if.js","../../../node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/vocabularies/applicator/thenElse.js","../../../node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/vocabularies/applicator/index.js","../../../node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/vocabularies/format/format.js","../../../node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/vocabularies/format/index.js","../../../node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/vocabularies/metadata.js","../../../node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/vocabularies/draft7.js","../../../node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/vocabularies/discriminator/types.js","../../../node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/vocabularies/discriminator/index.js","../../../node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/refs/json-schema-draft-07.json","../../../node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/ajv.js","../../../node_modules/.pnpm/ajv-formats@3.0.1_ajv@8.18.0/node_modules/ajv-formats/dist/formats.js","../../../node_modules/.pnpm/ajv-formats@3.0.1_ajv@8.18.0/node_modules/ajv-formats/dist/limit.js","../../../node_modules/.pnpm/ajv-formats@3.0.1_ajv@8.18.0/node_modules/ajv-formats/dist/index.js","../../core-internal/src/validators/ajvProvider.ts"],"sourcesContent":["\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.regexpCode = exports.getEsmExportName = exports.getProperty = exports.safeStringify = exports.stringify = exports.strConcat = exports.addCodeArg = exports.str = exports._ = exports.nil = exports._Code = exports.Name = exports.IDENTIFIER = exports._CodeOrName = void 0;\n// eslint-disable-next-line @typescript-eslint/no-extraneous-class\nclass _CodeOrName {\n}\nexports._CodeOrName = _CodeOrName;\nexports.IDENTIFIER = /^[a-z$_][a-z$_0-9]*$/i;\nclass Name extends _CodeOrName {\n    constructor(s) {\n        super();\n        if (!exports.IDENTIFIER.test(s))\n            throw new Error(\"CodeGen: name must be a valid identifier\");\n        this.str = s;\n    }\n    toString() {\n        return this.str;\n    }\n    emptyStr() {\n        return false;\n    }\n    get names() {\n        return { [this.str]: 1 };\n    }\n}\nexports.Name = Name;\nclass _Code extends _CodeOrName {\n    constructor(code) {\n        super();\n        this._items = typeof code === \"string\" ? [code] : code;\n    }\n    toString() {\n        return this.str;\n    }\n    emptyStr() {\n        if (this._items.length > 1)\n            return false;\n        const item = this._items[0];\n        return item === \"\" || item === '\"\"';\n    }\n    get str() {\n        var _a;\n        return ((_a = this._str) !== null && _a !== void 0 ? _a : (this._str = this._items.reduce((s, c) => `${s}${c}`, \"\")));\n    }\n    get names() {\n        var _a;\n        return ((_a = this._names) !== null && _a !== void 0 ? _a : (this._names = this._items.reduce((names, c) => {\n            if (c instanceof Name)\n                names[c.str] = (names[c.str] || 0) + 1;\n            return names;\n        }, {})));\n    }\n}\nexports._Code = _Code;\nexports.nil = new _Code(\"\");\nfunction _(strs, ...args) {\n    const code = [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}\nexports._ = _;\nconst plus = new _Code(\"+\");\nfunction str(strs, ...args) {\n    const expr = [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}\nexports.str = str;\nfunction addCodeArg(code, arg) {\n    if (arg instanceof _Code)\n        code.push(...arg._items);\n    else if (arg instanceof Name)\n        code.push(arg);\n    else\n        code.push(interpolate(arg));\n}\nexports.addCodeArg = addCodeArg;\nfunction optimize(expr) {\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}\nfunction mergeExprItems(a, b) {\n    if (b === '\"\"')\n        return a;\n    if (a === '\"\"')\n        return b;\n    if (typeof a == \"string\") {\n        if (b instanceof Name || a[a.length - 1] !== '\"')\n            return;\n        if (typeof b != \"string\")\n            return `${a.slice(0, -1)}${b}\"`;\n        if (b[0] === '\"')\n            return a.slice(0, -1) + b.slice(1);\n        return;\n    }\n    if (typeof b == \"string\" && b[0] === '\"' && !(a instanceof Name))\n        return `\"${a}${b.slice(1)}`;\n    return;\n}\nfunction strConcat(c1, c2) {\n    return c2.emptyStr() ? c1 : c1.emptyStr() ? c2 : str `${c1}${c2}`;\n}\nexports.strConcat = strConcat;\n// TODO do not allow arrays here\nfunction interpolate(x) {\n    return typeof x == \"number\" || typeof x == \"boolean\" || x === null\n        ? x\n        : safeStringify(Array.isArray(x) ? x.join(\",\") : x);\n}\nfunction stringify(x) {\n    return new _Code(safeStringify(x));\n}\nexports.stringify = stringify;\nfunction safeStringify(x) {\n    return JSON.stringify(x)\n        .replace(/\\u2028/g, \"\\\\u2028\")\n        .replace(/\\u2029/g, \"\\\\u2029\");\n}\nexports.safeStringify = safeStringify;\nfunction getProperty(key) {\n    return typeof key == \"string\" && exports.IDENTIFIER.test(key) ? new _Code(`.${key}`) : _ `[${key}]`;\n}\nexports.getProperty = getProperty;\n//Does best effort to format the name properly\nfunction getEsmExportName(key) {\n    if (typeof key == \"string\" && exports.IDENTIFIER.test(key)) {\n        return new _Code(`${key}`);\n    }\n    throw new Error(`CodeGen: invalid export name: ${key}, use explicit $id name mapping`);\n}\nexports.getEsmExportName = getEsmExportName;\nfunction regexpCode(rx) {\n    return new _Code(rx.toString());\n}\nexports.regexpCode = regexpCode;\n//# sourceMappingURL=code.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ValueScope = exports.ValueScopeName = exports.Scope = exports.varKinds = exports.UsedValueState = void 0;\nconst code_1 = require(\"./code\");\nclass ValueError extends Error {\n    constructor(name) {\n        super(`CodeGen: \"code\" for ${name} not defined`);\n        this.value = name.value;\n    }\n}\nvar UsedValueState;\n(function (UsedValueState) {\n    UsedValueState[UsedValueState[\"Started\"] = 0] = \"Started\";\n    UsedValueState[UsedValueState[\"Completed\"] = 1] = \"Completed\";\n})(UsedValueState || (exports.UsedValueState = UsedValueState = {}));\nexports.varKinds = {\n    const: new code_1.Name(\"const\"),\n    let: new code_1.Name(\"let\"),\n    var: new code_1.Name(\"var\"),\n};\nclass Scope {\n    constructor({ prefixes, parent } = {}) {\n        this._names = {};\n        this._prefixes = prefixes;\n        this._parent = parent;\n    }\n    toName(nameOrPrefix) {\n        return nameOrPrefix instanceof code_1.Name ? nameOrPrefix : this.name(nameOrPrefix);\n    }\n    name(prefix) {\n        return new code_1.Name(this._newName(prefix));\n    }\n    _newName(prefix) {\n        const ng = this._names[prefix] || this._nameGroup(prefix);\n        return `${prefix}${ng.index++}`;\n    }\n    _nameGroup(prefix) {\n        var _a, _b;\n        if (((_b = (_a = this._parent) === null || _a === void 0 ? void 0 : _a._prefixes) === null || _b === void 0 ? void 0 : _b.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}\nexports.Scope = Scope;\nclass ValueScopeName extends code_1.Name {\n    constructor(prefix, nameStr) {\n        super(nameStr);\n        this.prefix = prefix;\n    }\n    setValue(value, { property, itemIndex }) {\n        this.value = value;\n        this.scopePath = (0, code_1._) `.${new code_1.Name(property)}[${itemIndex}]`;\n    }\n}\nexports.ValueScopeName = ValueScopeName;\nconst line = (0, code_1._) `\\n`;\nclass ValueScope extends Scope {\n    constructor(opts) {\n        super(opts);\n        this._values = {};\n        this._scope = opts.scope;\n        this.opts = { ...opts, _n: opts.lines ? line : code_1.nil };\n    }\n    get() {\n        return this._scope;\n    }\n    name(prefix) {\n        return new ValueScopeName(prefix, this._newName(prefix));\n    }\n    value(nameOrPrefix, value) {\n        var _a;\n        if (value.ref === undefined)\n            throw new Error(\"CodeGen: ref must be passed in value\");\n        const name = this.toName(nameOrPrefix);\n        const { prefix } = name;\n        const valueKey = (_a = value.key) !== null && _a !== void 0 ? _a : value.ref;\n        let vs = this._values[prefix];\n        if (vs) {\n            const _name = vs.get(valueKey);\n            if (_name)\n                return _name;\n        }\n        else {\n            vs = this._values[prefix] = new Map();\n        }\n        vs.set(valueKey, name);\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    getValue(prefix, keyOrRef) {\n        const vs = this._values[prefix];\n        if (!vs)\n            return;\n        return vs.get(keyOrRef);\n    }\n    scopeRefs(scopeName, values = this._values) {\n        return this._reduceValues(values, (name) => {\n            if (name.scopePath === undefined)\n                throw new Error(`CodeGen: name \"${name}\" has no value`);\n            return (0, code_1._) `${scopeName}${name.scopePath}`;\n        });\n    }\n    scopeCode(values = this._values, usedValues, getCode) {\n        return this._reduceValues(values, (name) => {\n            if (name.value === undefined)\n                throw new Error(`CodeGen: name \"${name}\" has no value`);\n            return name.value.code;\n        }, usedValues, getCode);\n    }\n    _reduceValues(values, valueCode, usedValues = {}, getCode) {\n        let code = code_1.nil;\n        for (const prefix in values) {\n            const vs = values[prefix];\n            if (!vs)\n                continue;\n            const nameSet = (usedValues[prefix] = usedValues[prefix] || new Map());\n            vs.forEach((name) => {\n                if (nameSet.has(name))\n                    return;\n                nameSet.set(name, UsedValueState.Started);\n                let c = valueCode(name);\n                if (c) {\n                    const def = this.opts.es5 ? exports.varKinds.var : exports.varKinds.const;\n                    code = (0, code_1._) `${code}${def} ${name} = ${c};${this.opts._n}`;\n                }\n                else if ((c = getCode === null || getCode === void 0 ? void 0 : getCode(name))) {\n                    code = (0, code_1._) `${code}${c}${this.opts._n}`;\n                }\n                else {\n                    throw new ValueError(name);\n                }\n                nameSet.set(name, UsedValueState.Completed);\n            });\n        }\n        return code;\n    }\n}\nexports.ValueScope = ValueScope;\n//# sourceMappingURL=scope.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.or = exports.and = exports.not = exports.CodeGen = exports.operators = exports.varKinds = exports.ValueScopeName = exports.ValueScope = exports.Scope = exports.Name = exports.regexpCode = exports.stringify = exports.getProperty = exports.nil = exports.strConcat = exports.str = exports._ = void 0;\nconst code_1 = require(\"./code\");\nconst scope_1 = require(\"./scope\");\nvar code_2 = require(\"./code\");\nObject.defineProperty(exports, \"_\", { enumerable: true, get: function () { return code_2._; } });\nObject.defineProperty(exports, \"str\", { enumerable: true, get: function () { return code_2.str; } });\nObject.defineProperty(exports, \"strConcat\", { enumerable: true, get: function () { return code_2.strConcat; } });\nObject.defineProperty(exports, \"nil\", { enumerable: true, get: function () { return code_2.nil; } });\nObject.defineProperty(exports, \"getProperty\", { enumerable: true, get: function () { return code_2.getProperty; } });\nObject.defineProperty(exports, \"stringify\", { enumerable: true, get: function () { return code_2.stringify; } });\nObject.defineProperty(exports, \"regexpCode\", { enumerable: true, get: function () { return code_2.regexpCode; } });\nObject.defineProperty(exports, \"Name\", { enumerable: true, get: function () { return code_2.Name; } });\nvar scope_2 = require(\"./scope\");\nObject.defineProperty(exports, \"Scope\", { enumerable: true, get: function () { return scope_2.Scope; } });\nObject.defineProperty(exports, \"ValueScope\", { enumerable: true, get: function () { return scope_2.ValueScope; } });\nObject.defineProperty(exports, \"ValueScopeName\", { enumerable: true, get: function () { return scope_2.ValueScopeName; } });\nObject.defineProperty(exports, \"varKinds\", { enumerable: true, get: function () { return scope_2.varKinds; } });\nexports.operators = {\n    GT: new code_1._Code(\">\"),\n    GTE: new code_1._Code(\">=\"),\n    LT: new code_1._Code(\"<\"),\n    LTE: new code_1._Code(\"<=\"),\n    EQ: new code_1._Code(\"===\"),\n    NEQ: new code_1._Code(\"!==\"),\n    NOT: new code_1._Code(\"!\"),\n    OR: new code_1._Code(\"||\"),\n    AND: new code_1._Code(\"&&\"),\n    ADD: new code_1._Code(\"+\"),\n};\nclass Node {\n    optimizeNodes() {\n        return this;\n    }\n    optimizeNames(_names, _constants) {\n        return this;\n    }\n}\nclass Def extends Node {\n    constructor(varKind, name, rhs) {\n        super();\n        this.varKind = varKind;\n        this.name = name;\n        this.rhs = rhs;\n    }\n    render({ es5, _n }) {\n        const varKind = es5 ? scope_1.varKinds.var : this.varKind;\n        const rhs = this.rhs === undefined ? \"\" : ` = ${this.rhs}`;\n        return `${varKind} ${this.name}${rhs};` + _n;\n    }\n    optimizeNames(names, constants) {\n        if (!names[this.name.str])\n            return;\n        if (this.rhs)\n            this.rhs = optimizeExpr(this.rhs, names, constants);\n        return this;\n    }\n    get names() {\n        return this.rhs instanceof code_1._CodeOrName ? this.rhs.names : {};\n    }\n}\nclass Assign extends Node {\n    constructor(lhs, rhs, sideEffects) {\n        super();\n        this.lhs = lhs;\n        this.rhs = rhs;\n        this.sideEffects = sideEffects;\n    }\n    render({ _n }) {\n        return `${this.lhs} = ${this.rhs};` + _n;\n    }\n    optimizeNames(names, constants) {\n        if (this.lhs instanceof code_1.Name && !names[this.lhs.str] && !this.sideEffects)\n            return;\n        this.rhs = optimizeExpr(this.rhs, names, constants);\n        return this;\n    }\n    get names() {\n        const names = this.lhs instanceof code_1.Name ? {} : { ...this.lhs.names };\n        return addExprNames(names, this.rhs);\n    }\n}\nclass AssignOp extends Assign {\n    constructor(lhs, op, rhs, sideEffects) {\n        super(lhs, rhs, sideEffects);\n        this.op = op;\n    }\n    render({ _n }) {\n        return `${this.lhs} ${this.op}= ${this.rhs};` + _n;\n    }\n}\nclass Label extends Node {\n    constructor(label) {\n        super();\n        this.label = label;\n        this.names = {};\n    }\n    render({ _n }) {\n        return `${this.label}:` + _n;\n    }\n}\nclass Break extends Node {\n    constructor(label) {\n        super();\n        this.label = label;\n        this.names = {};\n    }\n    render({ _n }) {\n        const label = this.label ? ` ${this.label}` : \"\";\n        return `break${label};` + _n;\n    }\n}\nclass Throw extends Node {\n    constructor(error) {\n        super();\n        this.error = error;\n    }\n    render({ _n }) {\n        return `throw ${this.error};` + _n;\n    }\n    get names() {\n        return this.error.names;\n    }\n}\nclass AnyCode extends Node {\n    constructor(code) {\n        super();\n        this.code = code;\n    }\n    render({ _n }) {\n        return `${this.code};` + _n;\n    }\n    optimizeNodes() {\n        return `${this.code}` ? this : undefined;\n    }\n    optimizeNames(names, constants) {\n        this.code = optimizeExpr(this.code, names, constants);\n        return this;\n    }\n    get names() {\n        return this.code instanceof code_1._CodeOrName ? this.code.names : {};\n    }\n}\nclass ParentNode extends Node {\n    constructor(nodes = []) {\n        super();\n        this.nodes = nodes;\n    }\n    render(opts) {\n        return this.nodes.reduce((code, n) => code + n.render(opts), \"\");\n    }\n    optimizeNodes() {\n        const { nodes } = this;\n        let i = nodes.length;\n        while (i--) {\n            const n = nodes[i].optimizeNodes();\n            if (Array.isArray(n))\n                nodes.splice(i, 1, ...n);\n            else if (n)\n                nodes[i] = n;\n            else\n                nodes.splice(i, 1);\n        }\n        return nodes.length > 0 ? this : undefined;\n    }\n    optimizeNames(names, constants) {\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))\n                continue;\n            subtractNames(names, n.names);\n            nodes.splice(i, 1);\n        }\n        return nodes.length > 0 ? this : undefined;\n    }\n    get names() {\n        return this.nodes.reduce((names, n) => addNames(names, n.names), {});\n    }\n}\nclass BlockNode extends ParentNode {\n    render(opts) {\n        return \"{\" + opts._n + super.render(opts) + \"}\" + opts._n;\n    }\n}\nclass Root extends ParentNode {\n}\nclass Else extends BlockNode {\n}\nElse.kind = \"else\";\nclass If extends BlockNode {\n    constructor(condition, nodes) {\n        super(nodes);\n        this.condition = condition;\n    }\n    render(opts) {\n        let code = `if(${this.condition})` + super.render(opts);\n        if (this.else)\n            code += \"else \" + this.else.render(opts);\n        return code;\n    }\n    optimizeNodes() {\n        super.optimizeNodes();\n        const cond = this.condition;\n        if (cond === true)\n            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;\n        }\n        if (e) {\n            if (cond === false)\n                return e instanceof If ? e : e.nodes;\n            if (this.nodes.length)\n                return this;\n            return new If(not(cond), e instanceof If ? [e] : e.nodes);\n        }\n        if (cond === false || !this.nodes.length)\n            return undefined;\n        return this;\n    }\n    optimizeNames(names, constants) {\n        var _a;\n        this.else = (_a = this.else) === null || _a === void 0 ? void 0 : _a.optimizeNames(names, constants);\n        if (!(super.optimizeNames(names, constants) || this.else))\n            return;\n        this.condition = optimizeExpr(this.condition, names, constants);\n        return this;\n    }\n    get names() {\n        const names = super.names;\n        addExprNames(names, this.condition);\n        if (this.else)\n            addNames(names, this.else.names);\n        return names;\n    }\n}\nIf.kind = \"if\";\nclass For extends BlockNode {\n}\nFor.kind = \"for\";\nclass ForLoop extends For {\n    constructor(iteration) {\n        super();\n        this.iteration = iteration;\n    }\n    render(opts) {\n        return `for(${this.iteration})` + super.render(opts);\n    }\n    optimizeNames(names, constants) {\n        if (!super.optimizeNames(names, constants))\n            return;\n        this.iteration = optimizeExpr(this.iteration, names, constants);\n        return this;\n    }\n    get names() {\n        return addNames(super.names, this.iteration.names);\n    }\n}\nclass ForRange extends For {\n    constructor(varKind, name, from, to) {\n        super();\n        this.varKind = varKind;\n        this.name = name;\n        this.from = from;\n        this.to = to;\n    }\n    render(opts) {\n        const varKind = opts.es5 ? scope_1.varKinds.var : this.varKind;\n        const { name, from, to } = this;\n        return `for(${varKind} ${name}=${from}; ${name}<${to}; ${name}++)` + super.render(opts);\n    }\n    get names() {\n        const names = addExprNames(super.names, this.from);\n        return addExprNames(names, this.to);\n    }\n}\nclass ForIter extends For {\n    constructor(loop, varKind, name, iterable) {\n        super();\n        this.loop = loop;\n        this.varKind = varKind;\n        this.name = name;\n        this.iterable = iterable;\n    }\n    render(opts) {\n        return `for(${this.varKind} ${this.name} ${this.loop} ${this.iterable})` + super.render(opts);\n    }\n    optimizeNames(names, constants) {\n        if (!super.optimizeNames(names, constants))\n            return;\n        this.iterable = optimizeExpr(this.iterable, names, constants);\n        return this;\n    }\n    get names() {\n        return addNames(super.names, this.iterable.names);\n    }\n}\nclass Func extends BlockNode {\n    constructor(name, args, async) {\n        super();\n        this.name = name;\n        this.args = args;\n        this.async = async;\n    }\n    render(opts) {\n        const _async = this.async ? \"async \" : \"\";\n        return `${_async}function ${this.name}(${this.args})` + super.render(opts);\n    }\n}\nFunc.kind = \"func\";\nclass Return extends ParentNode {\n    render(opts) {\n        return \"return \" + super.render(opts);\n    }\n}\nReturn.kind = \"return\";\nclass Try extends BlockNode {\n    render(opts) {\n        let code = \"try\" + super.render(opts);\n        if (this.catch)\n            code += this.catch.render(opts);\n        if (this.finally)\n            code += this.finally.render(opts);\n        return code;\n    }\n    optimizeNodes() {\n        var _a, _b;\n        super.optimizeNodes();\n        (_a = this.catch) === null || _a === void 0 ? void 0 : _a.optimizeNodes();\n        (_b = this.finally) === null || _b === void 0 ? void 0 : _b.optimizeNodes();\n        return this;\n    }\n    optimizeNames(names, constants) {\n        var _a, _b;\n        super.optimizeNames(names, constants);\n        (_a = this.catch) === null || _a === void 0 ? void 0 : _a.optimizeNames(names, constants);\n        (_b = this.finally) === null || _b === void 0 ? void 0 : _b.optimizeNames(names, constants);\n        return this;\n    }\n    get names() {\n        const names = super.names;\n        if (this.catch)\n            addNames(names, this.catch.names);\n        if (this.finally)\n            addNames(names, this.finally.names);\n        return names;\n    }\n}\nclass Catch extends BlockNode {\n    constructor(error) {\n        super();\n        this.error = error;\n    }\n    render(opts) {\n        return `catch(${this.error})` + super.render(opts);\n    }\n}\nCatch.kind = \"catch\";\nclass Finally extends BlockNode {\n    render(opts) {\n        return \"finally\" + super.render(opts);\n    }\n}\nFinally.kind = \"finally\";\nclass CodeGen {\n    constructor(extScope, opts = {}) {\n        this._values = {};\n        this._blockStarts = [];\n        this._constants = {};\n        this.opts = { ...opts, _n: opts.lines ? \"\\n\" : \"\" };\n        this._extScope = extScope;\n        this._scope = new scope_1.Scope({ parent: extScope });\n        this._nodes = [new Root()];\n    }\n    toString() {\n        return this._root.render(this.opts);\n    }\n    // returns unique name in the internal scope\n    name(prefix) {\n        return this._scope.name(prefix);\n    }\n    // reserves unique name in the external scope\n    scopeName(prefix) {\n        return this._extScope.name(prefix);\n    }\n    // reserves unique name in the external scope and assigns value to it\n    scopeValue(prefixOrName, value) {\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    getScopeValue(prefix, keyOrRef) {\n        return this._extScope.getValue(prefix, keyOrRef);\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) {\n        return this._extScope.scopeRefs(scopeName, this._values);\n    }\n    scopeCode() {\n        return this._extScope.scopeCode(this._values);\n    }\n    _def(varKind, nameOrPrefix, rhs, constant) {\n        const name = this._scope.toName(nameOrPrefix);\n        if (rhs !== undefined && constant)\n            this._constants[name.str] = rhs;\n        this._leafNode(new Def(varKind, name, rhs));\n        return name;\n    }\n    // `const` declaration (`var` in es5 mode)\n    const(nameOrPrefix, rhs, _constant) {\n        return this._def(scope_1.varKinds.const, nameOrPrefix, rhs, _constant);\n    }\n    // `let` declaration with optional assignment (`var` in es5 mode)\n    let(nameOrPrefix, rhs, _constant) {\n        return this._def(scope_1.varKinds.let, nameOrPrefix, rhs, _constant);\n    }\n    // `var` declaration with optional assignment\n    var(nameOrPrefix, rhs, _constant) {\n        return this._def(scope_1.varKinds.var, nameOrPrefix, rhs, _constant);\n    }\n    // assignment code\n    assign(lhs, rhs, sideEffects) {\n        return this._leafNode(new Assign(lhs, rhs, sideEffects));\n    }\n    // `+=` code\n    add(lhs, rhs) {\n        return this._leafNode(new AssignOp(lhs, exports.operators.ADD, rhs));\n    }\n    // appends passed SafeExpr to code or executes Block\n    code(c) {\n        if (typeof c == \"function\")\n            c();\n        else if (c !== code_1.nil)\n            this._leafNode(new AnyCode(c));\n        return this;\n    }\n    // returns code for object literal for the passed argument list of key-value pairs\n    object(...keyValues) {\n        const code = [\"{\"];\n        for (const [key, value] of keyValues) {\n            if (code.length > 1)\n                code.push(\",\");\n            code.push(key);\n            if (key !== value || this.opts.es5) {\n                code.push(\":\");\n                (0, code_1.addCodeArg)(code, value);\n            }\n        }\n        code.push(\"}\");\n        return new code_1._Code(code);\n    }\n    // `if` clause (or statement if `thenBody` and, optionally, `elseBody` are passed)\n    if(condition, thenBody, elseBody) {\n        this._blockNode(new If(condition));\n        if (thenBody && elseBody) {\n            this.code(thenBody).else().code(elseBody).endIf();\n        }\n        else if (thenBody) {\n            this.code(thenBody).endIf();\n        }\n        else if (elseBody) {\n            throw new Error('CodeGen: \"else\" body without \"then\" body');\n        }\n        return this;\n    }\n    // `else if` clause - invalid without `if` or after `else` clauses\n    elseIf(condition) {\n        return this._elseNode(new If(condition));\n    }\n    // `else` clause - only valid after `if` or `else if` clauses\n    else() {\n        return this._elseNode(new Else());\n    }\n    // end `if` statement (needed if gen.if was used only with condition)\n    endIf() {\n        return this._endBlockNode(If, Else);\n    }\n    _for(node, forBody) {\n        this._blockNode(node);\n        if (forBody)\n            this.code(forBody).endFor();\n        return this;\n    }\n    // a generic `for` clause (or statement if `forBody` is passed)\n    for(iteration, forBody) {\n        return this._for(new ForLoop(iteration), forBody);\n    }\n    // `for` statement for a range of values\n    forRange(nameOrPrefix, from, to, forBody, varKind = this.opts.es5 ? scope_1.varKinds.var : scope_1.varKinds.let) {\n        const name = this._scope.toName(nameOrPrefix);\n        return this._for(new ForRange(varKind, name, from, to), () => forBody(name));\n    }\n    // `for-of` statement (in es5 mode replace with a normal for loop)\n    forOf(nameOrPrefix, iterable, forBody, varKind = scope_1.varKinds.const) {\n        const name = this._scope.toName(nameOrPrefix);\n        if (this.opts.es5) {\n            const arr = iterable instanceof code_1.Name ? iterable : this.var(\"_arr\", iterable);\n            return this.forRange(\"_i\", 0, (0, code_1._) `${arr}.length`, (i) => {\n                this.var(name, (0, code_1._) `${arr}[${i}]`);\n                forBody(name);\n            });\n        }\n        return this._for(new ForIter(\"of\", varKind, name, iterable), () => forBody(name));\n    }\n    // `for-in` statement.\n    // With option `ownProperties` replaced with a `for-of` loop for object keys\n    forIn(nameOrPrefix, obj, forBody, varKind = this.opts.es5 ? scope_1.varKinds.var : scope_1.varKinds.const) {\n        if (this.opts.ownProperties) {\n            return this.forOf(nameOrPrefix, (0, code_1._) `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    // end `for` loop\n    endFor() {\n        return this._endBlockNode(For);\n    }\n    // `label` statement\n    label(label) {\n        return this._leafNode(new Label(label));\n    }\n    // `break` statement\n    break(label) {\n        return this._leafNode(new Break(label));\n    }\n    // `return` statement\n    return(value) {\n        const node = new Return();\n        this._blockNode(node);\n        this.code(value);\n        if (node.nodes.length !== 1)\n            throw new Error('CodeGen: \"return\" should have one node');\n        return this._endBlockNode(Return);\n    }\n    // `try` statement\n    try(tryBody, catchCode, finallyCode) {\n        if (!catchCode && !finallyCode)\n            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    // `throw` statement\n    throw(error) {\n        return this._leafNode(new Throw(error));\n    }\n    // start self-balancing block\n    block(body, nodeCount) {\n        this._blockStarts.push(this._nodes.length);\n        if (body)\n            this.code(body).endBlock(nodeCount);\n        return this;\n    }\n    // end the current self-balancing block\n    endBlock(nodeCount) {\n        const len = this._blockStarts.pop();\n        if (len === undefined)\n            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    // `function` heading (or definition if funcBody is passed)\n    func(name, args = code_1.nil, async, funcBody) {\n        this._blockNode(new Func(name, args, async));\n        if (funcBody)\n            this.code(funcBody).endFunc();\n        return this;\n    }\n    // end function definition\n    endFunc() {\n        return this._endBlockNode(Func);\n    }\n    optimize(n = 1) {\n        while (n-- > 0) {\n            this._root.optimizeNodes();\n            this._root.optimizeNames(this._root.names, this._constants);\n        }\n    }\n    _leafNode(node) {\n        this._currNode.nodes.push(node);\n        return this;\n    }\n    _blockNode(node) {\n        this._currNode.nodes.push(node);\n        this._nodes.push(node);\n    }\n    _endBlockNode(N1, N2) {\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    _elseNode(node) {\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    get _root() {\n        return this._nodes[0];\n    }\n    get _currNode() {\n        const ns = this._nodes;\n        return ns[ns.length - 1];\n    }\n    set _currNode(node) {\n        const ns = this._nodes;\n        ns[ns.length - 1] = node;\n    }\n}\nexports.CodeGen = CodeGen;\nfunction addNames(names, from) {\n    for (const n in from)\n        names[n] = (names[n] || 0) + (from[n] || 0);\n    return names;\n}\nfunction addExprNames(names, from) {\n    return from instanceof code_1._CodeOrName ? addNames(names, from.names) : names;\n}\nfunction optimizeExpr(expr, names, constants) {\n    if (expr instanceof code_1.Name)\n        return replaceName(expr);\n    if (!canOptimize(expr))\n        return expr;\n    return new code_1._Code(expr._items.reduce((items, c) => {\n        if (c instanceof code_1.Name)\n            c = replaceName(c);\n        if (c instanceof code_1._Code)\n            items.push(...c._items);\n        else\n            items.push(c);\n        return items;\n    }, []));\n    function replaceName(n) {\n        const c = constants[n.str];\n        if (c === undefined || names[n.str] !== 1)\n            return n;\n        delete names[n.str];\n        return c;\n    }\n    function canOptimize(e) {\n        return (e instanceof code_1._Code &&\n            e._items.some((c) => c instanceof code_1.Name && names[c.str] === 1 && constants[c.str] !== undefined));\n    }\n}\nfunction subtractNames(names, from) {\n    for (const n in from)\n        names[n] = (names[n] || 0) - (from[n] || 0);\n}\nfunction not(x) {\n    return typeof x == \"boolean\" || typeof x == \"number\" || x === null ? !x : (0, code_1._) `!${par(x)}`;\n}\nexports.not = not;\nconst andCode = mappend(exports.operators.AND);\n// boolean AND (&&) expression with the passed arguments\nfunction and(...args) {\n    return args.reduce(andCode);\n}\nexports.and = and;\nconst orCode = mappend(exports.operators.OR);\n// boolean OR (||) expression with the passed arguments\nfunction or(...args) {\n    return args.reduce(orCode);\n}\nexports.or = or;\nfunction mappend(op) {\n    return (x, y) => (x === code_1.nil ? y : y === code_1.nil ? x : (0, code_1._) `${par(x)} ${op} ${par(y)}`);\n}\nfunction par(x) {\n    return x instanceof code_1.Name ? x : (0, code_1._) `(${x})`;\n}\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.checkStrictMode = exports.getErrorPath = exports.Type = exports.useFunc = exports.setEvaluated = exports.evaluatedPropsToName = exports.mergeEvaluated = exports.eachItem = exports.unescapeJsonPointer = exports.escapeJsonPointer = exports.escapeFragment = exports.unescapeFragment = exports.schemaRefOrVal = exports.schemaHasRulesButRef = exports.schemaHasRules = exports.checkUnknownRules = exports.alwaysValidSchema = exports.toHash = void 0;\nconst codegen_1 = require(\"./codegen\");\nconst code_1 = require(\"./codegen/code\");\n// TODO refactor to use Set\nfunction toHash(arr) {\n    const hash = {};\n    for (const item of arr)\n        hash[item] = true;\n    return hash;\n}\nexports.toHash = toHash;\nfunction alwaysValidSchema(it, schema) {\n    if (typeof schema == \"boolean\")\n        return schema;\n    if (Object.keys(schema).length === 0)\n        return true;\n    checkUnknownRules(it, schema);\n    return !schemaHasRules(schema, it.self.RULES.all);\n}\nexports.alwaysValidSchema = alwaysValidSchema;\nfunction checkUnknownRules(it, schema = it.schema) {\n    const { opts, self } = it;\n    if (!opts.strictSchema)\n        return;\n    if (typeof schema === \"boolean\")\n        return;\n    const rules = self.RULES.keywords;\n    for (const key in schema) {\n        if (!rules[key])\n            checkStrictMode(it, `unknown keyword: \"${key}\"`);\n    }\n}\nexports.checkUnknownRules = checkUnknownRules;\nfunction schemaHasRules(schema, rules) {\n    if (typeof schema == \"boolean\")\n        return !schema;\n    for (const key in schema)\n        if (rules[key])\n            return true;\n    return false;\n}\nexports.schemaHasRules = schemaHasRules;\nfunction schemaHasRulesButRef(schema, RULES) {\n    if (typeof schema == \"boolean\")\n        return !schema;\n    for (const key in schema)\n        if (key !== \"$ref\" && RULES.all[key])\n            return true;\n    return false;\n}\nexports.schemaHasRulesButRef = schemaHasRulesButRef;\nfunction schemaRefOrVal({ topSchemaRef, schemaPath }, schema, keyword, $data) {\n    if (!$data) {\n        if (typeof schema == \"number\" || typeof schema == \"boolean\")\n            return schema;\n        if (typeof schema == \"string\")\n            return (0, codegen_1._) `${schema}`;\n    }\n    return (0, codegen_1._) `${topSchemaRef}${schemaPath}${(0, codegen_1.getProperty)(keyword)}`;\n}\nexports.schemaRefOrVal = schemaRefOrVal;\nfunction unescapeFragment(str) {\n    return unescapeJsonPointer(decodeURIComponent(str));\n}\nexports.unescapeFragment = unescapeFragment;\nfunction escapeFragment(str) {\n    return encodeURIComponent(escapeJsonPointer(str));\n}\nexports.escapeFragment = escapeFragment;\nfunction escapeJsonPointer(str) {\n    if (typeof str == \"number\")\n        return `${str}`;\n    return str.replace(/~/g, \"~0\").replace(/\\//g, \"~1\");\n}\nexports.escapeJsonPointer = escapeJsonPointer;\nfunction unescapeJsonPointer(str) {\n    return str.replace(/~1/g, \"/\").replace(/~0/g, \"~\");\n}\nexports.unescapeJsonPointer = unescapeJsonPointer;\nfunction eachItem(xs, f) {\n    if (Array.isArray(xs)) {\n        for (const x of xs)\n            f(x);\n    }\n    else {\n        f(xs);\n    }\n}\nexports.eachItem = eachItem;\nfunction makeMergeEvaluated({ mergeNames, mergeToName, mergeValues, resultToName, }) {\n    return (gen, from, to, toName) => {\n        const res = to === undefined\n            ? from\n            : to instanceof codegen_1.Name\n                ? (from instanceof codegen_1.Name ? mergeNames(gen, from, to) : mergeToName(gen, from, to), to)\n                : from instanceof codegen_1.Name\n                    ? (mergeToName(gen, to, from), from)\n                    : mergeValues(from, to);\n        return toName === codegen_1.Name && !(res instanceof codegen_1.Name) ? resultToName(gen, res) : res;\n    };\n}\nexports.mergeEvaluated = {\n    props: makeMergeEvaluated({\n        mergeNames: (gen, from, to) => gen.if((0, codegen_1._) `${to} !== true && ${from} !== undefined`, () => {\n            gen.if((0, codegen_1._) `${from} === true`, () => gen.assign(to, true), () => gen.assign(to, (0, codegen_1._) `${to} || {}`).code((0, codegen_1._) `Object.assign(${to}, ${from})`));\n        }),\n        mergeToName: (gen, from, to) => gen.if((0, codegen_1._) `${to} !== true`, () => {\n            if (from === true) {\n                gen.assign(to, true);\n            }\n            else {\n                gen.assign(to, (0, codegen_1._) `${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) => gen.if((0, codegen_1._) `${to} !== true && ${from} !== undefined`, () => gen.assign(to, (0, codegen_1._) `${from} === true ? true : ${to} > ${from} ? ${to} : ${from}`)),\n        mergeToName: (gen, from, to) => gen.if((0, codegen_1._) `${to} !== true`, () => gen.assign(to, from === true ? true : (0, codegen_1._) `${to} > ${from} ? ${to} : ${from}`)),\n        mergeValues: (from, to) => (from === true ? true : Math.max(from, to)),\n        resultToName: (gen, items) => gen.var(\"items\", items),\n    }),\n};\nfunction evaluatedPropsToName(gen, ps) {\n    if (ps === true)\n        return gen.var(\"props\", true);\n    const props = gen.var(\"props\", (0, codegen_1._) `{}`);\n    if (ps !== undefined)\n        setEvaluated(gen, props, ps);\n    return props;\n}\nexports.evaluatedPropsToName = evaluatedPropsToName;\nfunction setEvaluated(gen, props, ps) {\n    Object.keys(ps).forEach((p) => gen.assign((0, codegen_1._) `${props}${(0, codegen_1.getProperty)(p)}`, true));\n}\nexports.setEvaluated = setEvaluated;\nconst snippets = {};\nfunction useFunc(gen, f) {\n    return gen.scopeValue(\"func\", {\n        ref: f,\n        code: snippets[f.code] || (snippets[f.code] = new code_1._Code(f.code)),\n    });\n}\nexports.useFunc = useFunc;\nvar Type;\n(function (Type) {\n    Type[Type[\"Num\"] = 0] = \"Num\";\n    Type[Type[\"Str\"] = 1] = \"Str\";\n})(Type || (exports.Type = Type = {}));\nfunction getErrorPath(dataProp, dataPropType, jsPropertySyntax) {\n    // let path\n    if (dataProp instanceof codegen_1.Name) {\n        const isNumber = dataPropType === Type.Num;\n        return jsPropertySyntax\n            ? isNumber\n                ? (0, codegen_1._) `\"[\" + ${dataProp} + \"]\"`\n                : (0, codegen_1._) `\"['\" + ${dataProp} + \"']\"`\n            : isNumber\n                ? (0, codegen_1._) `\"/\" + ${dataProp}`\n                : (0, codegen_1._) `\"/\" + ${dataProp}.replace(/~/g, \"~0\").replace(/\\\\//g, \"~1\")`; // TODO maybe use global escapePointer\n    }\n    return jsPropertySyntax ? (0, codegen_1.getProperty)(dataProp).toString() : \"/\" + escapeJsonPointer(dataProp);\n}\nexports.getErrorPath = getErrorPath;\nfunction checkStrictMode(it, msg, mode = it.opts.strictSchema) {\n    if (!mode)\n        return;\n    msg = `strict mode: ${msg}`;\n    if (mode === true)\n        throw new Error(msg);\n    it.self.logger.warn(msg);\n}\nexports.checkStrictMode = checkStrictMode;\n//# sourceMappingURL=util.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"./codegen\");\nconst names = {\n    // validation function arguments\n    data: new codegen_1.Name(\"data\"), // data passed to validation function\n    // args passed from referencing schema\n    valCxt: new codegen_1.Name(\"valCxt\"), // validation/data context - should not be used directly, it is destructured to the names below\n    instancePath: new codegen_1.Name(\"instancePath\"),\n    parentData: new codegen_1.Name(\"parentData\"),\n    parentDataProperty: new codegen_1.Name(\"parentDataProperty\"),\n    rootData: new codegen_1.Name(\"rootData\"), // root data - same as the data passed to the first/top validation function\n    dynamicAnchors: new codegen_1.Name(\"dynamicAnchors\"), // used to support recursiveRef and dynamicRef\n    // function scoped variables\n    vErrors: new codegen_1.Name(\"vErrors\"), // null or array of validation errors\n    errors: new codegen_1.Name(\"errors\"), // counter of validation errors\n    this: new codegen_1.Name(\"this\"),\n    // \"globals\"\n    self: new codegen_1.Name(\"self\"),\n    scope: new codegen_1.Name(\"scope\"),\n    // JTD serialize/parse name for JSON string and position\n    json: new codegen_1.Name(\"json\"),\n    jsonPos: new codegen_1.Name(\"jsonPos\"),\n    jsonLen: new codegen_1.Name(\"jsonLen\"),\n    jsonPart: new codegen_1.Name(\"jsonPart\"),\n};\nexports.default = names;\n//# sourceMappingURL=names.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.extendErrors = exports.resetErrorsCount = exports.reportExtraError = exports.reportError = exports.keyword$DataError = exports.keywordError = void 0;\nconst codegen_1 = require(\"./codegen\");\nconst util_1 = require(\"./util\");\nconst names_1 = require(\"./names\");\nexports.keywordError = {\n    message: ({ keyword }) => (0, codegen_1.str) `must pass \"${keyword}\" keyword validation`,\n};\nexports.keyword$DataError = {\n    message: ({ keyword, schemaType }) => schemaType\n        ? (0, codegen_1.str) `\"${keyword}\" keyword must be ${schemaType} ($data)`\n        : (0, codegen_1.str) `\"${keyword}\" keyword is invalid ($data)`,\n};\nfunction reportError(cxt, error = exports.keywordError, errorPaths, overrideAllErrors) {\n    const { it } = cxt;\n    const { gen, compositeRule, allErrors } = it;\n    const errObj = errorObjectCode(cxt, error, errorPaths);\n    if (overrideAllErrors !== null && overrideAllErrors !== void 0 ? overrideAllErrors : (compositeRule || allErrors)) {\n        addError(gen, errObj);\n    }\n    else {\n        returnErrors(it, (0, codegen_1._) `[${errObj}]`);\n    }\n}\nexports.reportError = reportError;\nfunction reportExtraError(cxt, error = exports.keywordError, errorPaths) {\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, names_1.default.vErrors);\n    }\n}\nexports.reportExtraError = reportExtraError;\nfunction resetErrorsCount(gen, errsCount) {\n    gen.assign(names_1.default.errors, errsCount);\n    gen.if((0, codegen_1._) `${names_1.default.vErrors} !== null`, () => gen.if(errsCount, () => gen.assign((0, codegen_1._) `${names_1.default.vErrors}.length`, errsCount), () => gen.assign(names_1.default.vErrors, null)));\n}\nexports.resetErrorsCount = resetErrorsCount;\nfunction extendErrors({ gen, keyword, schemaValue, data, errsCount, it, }) {\n    /* istanbul ignore if */\n    if (errsCount === undefined)\n        throw new Error(\"ajv implementation error\");\n    const err = gen.name(\"err\");\n    gen.forRange(\"i\", errsCount, names_1.default.errors, (i) => {\n        gen.const(err, (0, codegen_1._) `${names_1.default.vErrors}[${i}]`);\n        gen.if((0, codegen_1._) `${err}.instancePath === undefined`, () => gen.assign((0, codegen_1._) `${err}.instancePath`, (0, codegen_1.strConcat)(names_1.default.instancePath, it.errorPath)));\n        gen.assign((0, codegen_1._) `${err}.schemaPath`, (0, codegen_1.str) `${it.errSchemaPath}/${keyword}`);\n        if (it.opts.verbose) {\n            gen.assign((0, codegen_1._) `${err}.schema`, schemaValue);\n            gen.assign((0, codegen_1._) `${err}.data`, data);\n        }\n    });\n}\nexports.extendErrors = extendErrors;\nfunction addError(gen, errObj) {\n    const err = gen.const(\"err\", errObj);\n    gen.if((0, codegen_1._) `${names_1.default.vErrors} === null`, () => gen.assign(names_1.default.vErrors, (0, codegen_1._) `[${err}]`), (0, codegen_1._) `${names_1.default.vErrors}.push(${err})`);\n    gen.code((0, codegen_1._) `${names_1.default.errors}++`);\n}\nfunction returnErrors(it, errs) {\n    const { gen, validateName, schemaEnv } = it;\n    if (schemaEnv.$async) {\n        gen.throw((0, codegen_1._) `new ${it.ValidationError}(${errs})`);\n    }\n    else {\n        gen.assign((0, codegen_1._) `${validateName}.errors`, errs);\n        gen.return(false);\n    }\n}\nconst E = {\n    keyword: new codegen_1.Name(\"keyword\"),\n    schemaPath: new codegen_1.Name(\"schemaPath\"), // also used in JTD errors\n    params: new codegen_1.Name(\"params\"),\n    propertyName: new codegen_1.Name(\"propertyName\"),\n    message: new codegen_1.Name(\"message\"),\n    schema: new codegen_1.Name(\"schema\"),\n    parentSchema: new codegen_1.Name(\"parentSchema\"),\n};\nfunction errorObjectCode(cxt, error, errorPaths) {\n    const { createErrors } = cxt.it;\n    if (createErrors === false)\n        return (0, codegen_1._) `{}`;\n    return errorObject(cxt, error, errorPaths);\n}\nfunction errorObject(cxt, error, errorPaths = {}) {\n    const { gen, it } = cxt;\n    const keyValues = [\n        errorInstancePath(it, errorPaths),\n        errorSchemaPath(cxt, errorPaths),\n    ];\n    extraErrorProps(cxt, error, keyValues);\n    return gen.object(...keyValues);\n}\nfunction errorInstancePath({ errorPath }, { instancePath }) {\n    const instPath = instancePath\n        ? (0, codegen_1.str) `${errorPath}${(0, util_1.getErrorPath)(instancePath, util_1.Type.Str)}`\n        : errorPath;\n    return [names_1.default.instancePath, (0, codegen_1.strConcat)(names_1.default.instancePath, instPath)];\n}\nfunction errorSchemaPath({ keyword, it: { errSchemaPath } }, { schemaPath, parentSchema }) {\n    let schPath = parentSchema ? errSchemaPath : (0, codegen_1.str) `${errSchemaPath}/${keyword}`;\n    if (schemaPath) {\n        schPath = (0, codegen_1.str) `${schPath}${(0, util_1.getErrorPath)(schemaPath, util_1.Type.Str)}`;\n    }\n    return [E.schemaPath, schPath];\n}\nfunction extraErrorProps(cxt, { params, message }, keyValues) {\n    const { keyword, data, schemaValue, it } = cxt;\n    const { opts, propertyName, topSchemaRef, schemaPath } = it;\n    keyValues.push([E.keyword, keyword], [E.params, typeof params == \"function\" ? params(cxt) : params || (0, codegen_1._) `{}`]);\n    if (opts.messages) {\n        keyValues.push([E.message, typeof message == \"function\" ? message(cxt) : message]);\n    }\n    if (opts.verbose) {\n        keyValues.push([E.schema, schemaValue], [E.parentSchema, (0, codegen_1._) `${topSchemaRef}${schemaPath}`], [names_1.default.data, data]);\n    }\n    if (propertyName)\n        keyValues.push([E.propertyName, propertyName]);\n}\n//# sourceMappingURL=errors.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.boolOrEmptySchema = exports.topBoolOrEmptySchema = void 0;\nconst errors_1 = require(\"../errors\");\nconst codegen_1 = require(\"../codegen\");\nconst names_1 = require(\"../names\");\nconst boolError = {\n    message: \"boolean schema is false\",\n};\nfunction topBoolOrEmptySchema(it) {\n    const { gen, schema, validateName } = it;\n    if (schema === false) {\n        falseSchemaError(it, false);\n    }\n    else if (typeof schema == \"object\" && schema.$async === true) {\n        gen.return(names_1.default.data);\n    }\n    else {\n        gen.assign((0, codegen_1._) `${validateName}.errors`, null);\n        gen.return(true);\n    }\n}\nexports.topBoolOrEmptySchema = topBoolOrEmptySchema;\nfunction boolOrEmptySchema(it, valid) {\n    const { gen, schema } = it;\n    if (schema === false) {\n        gen.var(valid, false); // TODO var\n        falseSchemaError(it);\n    }\n    else {\n        gen.var(valid, true); // TODO var\n    }\n}\nexports.boolOrEmptySchema = boolOrEmptySchema;\nfunction falseSchemaError(it, overrideAllErrors) {\n    const { gen, data } = it;\n    // TODO maybe some other interface should be used for non-keyword validation errors...\n    const cxt = {\n        gen,\n        keyword: \"false schema\",\n        data,\n        schema: false,\n        schemaCode: false,\n        schemaValue: false,\n        params: {},\n        it,\n    };\n    (0, errors_1.reportError)(cxt, boolError, undefined, overrideAllErrors);\n}\n//# sourceMappingURL=boolSchema.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getRules = exports.isJSONType = void 0;\nconst _jsonTypes = [\"string\", \"number\", \"integer\", \"boolean\", \"null\", \"object\", \"array\"];\nconst jsonTypes = new Set(_jsonTypes);\nfunction isJSONType(x) {\n    return typeof x == \"string\" && jsonTypes.has(x);\n}\nexports.isJSONType = isJSONType;\nfunction getRules() {\n    const groups = {\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}\nexports.getRules = getRules;\n//# sourceMappingURL=rules.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.shouldUseRule = exports.shouldUseGroup = exports.schemaHasRulesForType = void 0;\nfunction schemaHasRulesForType({ schema, self }, type) {\n    const group = self.RULES.types[type];\n    return group && group !== true && shouldUseGroup(schema, group);\n}\nexports.schemaHasRulesForType = schemaHasRulesForType;\nfunction shouldUseGroup(schema, group) {\n    return group.rules.some((rule) => shouldUseRule(schema, rule));\n}\nexports.shouldUseGroup = shouldUseGroup;\nfunction shouldUseRule(schema, rule) {\n    var _a;\n    return (schema[rule.keyword] !== undefined ||\n        ((_a = rule.definition.implements) === null || _a === void 0 ? void 0 : _a.some((kwd) => schema[kwd] !== undefined)));\n}\nexports.shouldUseRule = shouldUseRule;\n//# sourceMappingURL=applicability.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.reportTypeError = exports.checkDataTypes = exports.checkDataType = exports.coerceAndCheckDataType = exports.getJSONTypes = exports.getSchemaTypes = exports.DataType = void 0;\nconst rules_1 = require(\"../rules\");\nconst applicability_1 = require(\"./applicability\");\nconst errors_1 = require(\"../errors\");\nconst codegen_1 = require(\"../codegen\");\nconst util_1 = require(\"../util\");\nvar DataType;\n(function (DataType) {\n    DataType[DataType[\"Correct\"] = 0] = \"Correct\";\n    DataType[DataType[\"Wrong\"] = 1] = \"Wrong\";\n})(DataType || (exports.DataType = DataType = {}));\nfunction getSchemaTypes(schema) {\n    const types = getJSONTypes(schema.type);\n    const hasNull = types.includes(\"null\");\n    if (hasNull) {\n        if (schema.nullable === false)\n            throw new Error(\"type: null contradicts nullable: false\");\n    }\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)\n            types.push(\"null\");\n    }\n    return types;\n}\nexports.getSchemaTypes = getSchemaTypes;\n// eslint-disable-next-line @typescript-eslint/no-redundant-type-constituents\nfunction getJSONTypes(ts) {\n    const types = Array.isArray(ts) ? ts : ts ? [ts] : [];\n    if (types.every(rules_1.isJSONType))\n        return types;\n    throw new Error(\"type must be JSONType or JSONType[]: \" + types.join(\",\"));\n}\nexports.getJSONTypes = getJSONTypes;\nfunction coerceAndCheckDataType(it, types) {\n    const { gen, data, opts } = it;\n    const coerceTo = coerceToTypes(types, opts.coerceTypes);\n    const checkTypes = types.length > 0 &&\n        !(coerceTo.length === 0 && types.length === 1 && (0, applicability_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)\n                coerceData(it, types, coerceTo);\n            else\n                reportTypeError(it);\n        });\n    }\n    return checkTypes;\n}\nexports.coerceAndCheckDataType = coerceAndCheckDataType;\nconst COERCIBLE = new Set([\"string\", \"number\", \"integer\", \"boolean\", \"null\"]);\nfunction coerceToTypes(types, coerceTypes) {\n    return coerceTypes\n        ? types.filter((t) => COERCIBLE.has(t) || (coerceTypes === \"array\" && t === \"array\"))\n        : [];\n}\nfunction coerceData(it, types, coerceTo) {\n    const { gen, data, opts } = it;\n    const dataType = gen.let(\"dataType\", (0, codegen_1._) `typeof ${data}`);\n    const coerced = gen.let(\"coerced\", (0, codegen_1._) `undefined`);\n    if (opts.coerceTypes === \"array\") {\n        gen.if((0, codegen_1._) `${dataType} == 'object' && Array.isArray(${data}) && ${data}.length == 1`, () => gen\n            .assign(data, (0, codegen_1._) `${data}[0]`)\n            .assign(dataType, (0, codegen_1._) `typeof ${data}`)\n            .if(checkDataTypes(types, data, opts.strictNumbers), () => gen.assign(coerced, data)));\n    }\n    gen.if((0, codegen_1._) `${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    gen.if((0, codegen_1._) `${coerced} !== undefined`, () => {\n        gen.assign(data, coerced);\n        assignParentData(it, coerced);\n    });\n    function coerceSpecificType(t) {\n        switch (t) {\n            case \"string\":\n                gen\n                    .elseIf((0, codegen_1._) `${dataType} == \"number\" || ${dataType} == \"boolean\"`)\n                    .assign(coerced, (0, codegen_1._) `\"\" + ${data}`)\n                    .elseIf((0, codegen_1._) `${data} === null`)\n                    .assign(coerced, (0, codegen_1._) `\"\"`);\n                return;\n            case \"number\":\n                gen\n                    .elseIf((0, codegen_1._) `${dataType} == \"boolean\" || ${data} === null\n              || (${dataType} == \"string\" && ${data} && ${data} == +${data})`)\n                    .assign(coerced, (0, codegen_1._) `+${data}`);\n                return;\n            case \"integer\":\n                gen\n                    .elseIf((0, codegen_1._) `${dataType} === \"boolean\" || ${data} === null\n              || (${dataType} === \"string\" && ${data} && ${data} == +${data} && !(${data} % 1))`)\n                    .assign(coerced, (0, codegen_1._) `+${data}`);\n                return;\n            case \"boolean\":\n                gen\n                    .elseIf((0, codegen_1._) `${data} === \"false\" || ${data} === 0 || ${data} === null`)\n                    .assign(coerced, false)\n                    .elseIf((0, codegen_1._) `${data} === \"true\" || ${data} === 1`)\n                    .assign(coerced, true);\n                return;\n            case \"null\":\n                gen.elseIf((0, codegen_1._) `${data} === \"\" || ${data} === 0 || ${data} === false`);\n                gen.assign(coerced, null);\n                return;\n            case \"array\":\n                gen\n                    .elseIf((0, codegen_1._) `${dataType} === \"string\" || ${dataType} === \"number\"\n              || ${dataType} === \"boolean\" || ${data} === null`)\n                    .assign(coerced, (0, codegen_1._) `[${data}]`);\n        }\n    }\n}\nfunction assignParentData({ gen, parentData, parentDataProperty }, expr) {\n    // TODO use gen.property\n    gen.if((0, codegen_1._) `${parentData} !== undefined`, () => gen.assign((0, codegen_1._) `${parentData}[${parentDataProperty}]`, expr));\n}\nfunction checkDataType(dataType, data, strictNums, correct = DataType.Correct) {\n    const EQ = correct === DataType.Correct ? codegen_1.operators.EQ : codegen_1.operators.NEQ;\n    let cond;\n    switch (dataType) {\n        case \"null\":\n            return (0, codegen_1._) `${data} ${EQ} null`;\n        case \"array\":\n            cond = (0, codegen_1._) `Array.isArray(${data})`;\n            break;\n        case \"object\":\n            cond = (0, codegen_1._) `${data} && typeof ${data} == \"object\" && !Array.isArray(${data})`;\n            break;\n        case \"integer\":\n            cond = numCond((0, codegen_1._) `!(${data} % 1) && !isNaN(${data})`);\n            break;\n        case \"number\":\n            cond = numCond();\n            break;\n        default:\n            return (0, codegen_1._) `typeof ${data} ${EQ} ${dataType}`;\n    }\n    return correct === DataType.Correct ? cond : (0, codegen_1.not)(cond);\n    function numCond(_cond = codegen_1.nil) {\n        return (0, codegen_1.and)((0, codegen_1._) `typeof ${data} == \"number\"`, _cond, strictNums ? (0, codegen_1._) `isFinite(${data})` : codegen_1.nil);\n    }\n}\nexports.checkDataType = checkDataType;\nfunction checkDataTypes(dataTypes, data, strictNums, correct) {\n    if (dataTypes.length === 1) {\n        return checkDataType(dataTypes[0], data, strictNums, correct);\n    }\n    let cond;\n    const types = (0, util_1.toHash)(dataTypes);\n    if (types.array && types.object) {\n        const notObj = (0, codegen_1._) `typeof ${data} != \"object\"`;\n        cond = types.null ? notObj : (0, codegen_1._) `!${data} || ${notObj}`;\n        delete types.null;\n        delete types.array;\n        delete types.object;\n    }\n    else {\n        cond = codegen_1.nil;\n    }\n    if (types.number)\n        delete types.integer;\n    for (const t in types)\n        cond = (0, codegen_1.and)(cond, checkDataType(t, data, strictNums, correct));\n    return cond;\n}\nexports.checkDataTypes = checkDataTypes;\nconst typeError = {\n    message: ({ schema }) => `must be ${schema}`,\n    params: ({ schema, schemaValue }) => typeof schema == \"string\" ? (0, codegen_1._) `{type: ${schema}}` : (0, codegen_1._) `{type: ${schemaValue}}`,\n};\nfunction reportTypeError(it) {\n    const cxt = getTypeErrorContext(it);\n    (0, errors_1.reportError)(cxt, typeError);\n}\nexports.reportTypeError = reportTypeError;\nfunction getTypeErrorContext(it) {\n    const { gen, data, schema } = it;\n    const schemaCode = (0, util_1.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//# sourceMappingURL=dataType.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.assignDefaults = void 0;\nconst codegen_1 = require(\"../codegen\");\nconst util_1 = require(\"../util\");\nfunction assignDefaults(it, ty) {\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    }\n    else if (ty === \"array\" && Array.isArray(items)) {\n        items.forEach((sch, i) => assignDefault(it, i, sch.default));\n    }\n}\nexports.assignDefaults = assignDefaults;\nfunction assignDefault(it, prop, defaultValue) {\n    const { gen, compositeRule, data, opts } = it;\n    if (defaultValue === undefined)\n        return;\n    const childData = (0, codegen_1._) `${data}${(0, codegen_1.getProperty)(prop)}`;\n    if (compositeRule) {\n        (0, util_1.checkStrictMode)(it, `default is ignored for: ${childData}`);\n        return;\n    }\n    let condition = (0, codegen_1._) `${childData} === undefined`;\n    if (opts.useDefaults === \"empty\") {\n        condition = (0, codegen_1._) `${condition} || ${childData} === null || ${childData} === \"\"`;\n    }\n    // `${childData} === undefined` +\n    // (opts.useDefaults === \"empty\" ? ` || ${childData} === null || ${childData} === \"\"` : \"\")\n    gen.if(condition, (0, codegen_1._) `${childData} = ${(0, codegen_1.stringify)(defaultValue)}`);\n}\n//# sourceMappingURL=defaults.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.validateUnion = exports.validateArray = exports.usePattern = exports.callValidateCode = exports.schemaProperties = exports.allSchemaProperties = exports.noPropertyInData = exports.propertyInData = exports.isOwnProperty = exports.hasPropFunc = exports.reportMissingProp = exports.checkMissingProp = exports.checkReportMissingProp = void 0;\nconst codegen_1 = require(\"../compile/codegen\");\nconst util_1 = require(\"../compile/util\");\nconst names_1 = require(\"../compile/names\");\nconst util_2 = require(\"../compile/util\");\nfunction checkReportMissingProp(cxt, prop) {\n    const { gen, data, it } = cxt;\n    gen.if(noPropertyInData(gen, data, prop, it.opts.ownProperties), () => {\n        cxt.setParams({ missingProperty: (0, codegen_1._) `${prop}` }, true);\n        cxt.error();\n    });\n}\nexports.checkReportMissingProp = checkReportMissingProp;\nfunction checkMissingProp({ gen, data, it: { opts } }, properties, missing) {\n    return (0, codegen_1.or)(...properties.map((prop) => (0, codegen_1.and)(noPropertyInData(gen, data, prop, opts.ownProperties), (0, codegen_1._) `${missing} = ${prop}`)));\n}\nexports.checkMissingProp = checkMissingProp;\nfunction reportMissingProp(cxt, missing) {\n    cxt.setParams({ missingProperty: missing }, true);\n    cxt.error();\n}\nexports.reportMissingProp = reportMissingProp;\nfunction hasPropFunc(gen) {\n    return gen.scopeValue(\"func\", {\n        // eslint-disable-next-line @typescript-eslint/unbound-method\n        ref: Object.prototype.hasOwnProperty,\n        code: (0, codegen_1._) `Object.prototype.hasOwnProperty`,\n    });\n}\nexports.hasPropFunc = hasPropFunc;\nfunction isOwnProperty(gen, data, property) {\n    return (0, codegen_1._) `${hasPropFunc(gen)}.call(${data}, ${property})`;\n}\nexports.isOwnProperty = isOwnProperty;\nfunction propertyInData(gen, data, property, ownProperties) {\n    const cond = (0, codegen_1._) `${data}${(0, codegen_1.getProperty)(property)} !== undefined`;\n    return ownProperties ? (0, codegen_1._) `${cond} && ${isOwnProperty(gen, data, property)}` : cond;\n}\nexports.propertyInData = propertyInData;\nfunction noPropertyInData(gen, data, property, ownProperties) {\n    const cond = (0, codegen_1._) `${data}${(0, codegen_1.getProperty)(property)} === undefined`;\n    return ownProperties ? (0, codegen_1.or)(cond, (0, codegen_1.not)(isOwnProperty(gen, data, property))) : cond;\n}\nexports.noPropertyInData = noPropertyInData;\nfunction allSchemaProperties(schemaMap) {\n    return schemaMap ? Object.keys(schemaMap).filter((p) => p !== \"__proto__\") : [];\n}\nexports.allSchemaProperties = allSchemaProperties;\nfunction schemaProperties(it, schemaMap) {\n    return allSchemaProperties(schemaMap).filter((p) => !(0, util_1.alwaysValidSchema)(it, schemaMap[p]));\n}\nexports.schemaProperties = schemaProperties;\nfunction callValidateCode({ schemaCode, data, it: { gen, topSchemaRef, schemaPath, errorPath }, it }, func, context, passSchema) {\n    const dataAndSchema = passSchema ? (0, codegen_1._) `${schemaCode}, ${data}, ${topSchemaRef}${schemaPath}` : data;\n    const valCxt = [\n        [names_1.default.instancePath, (0, codegen_1.strConcat)(names_1.default.instancePath, errorPath)],\n        [names_1.default.parentData, it.parentData],\n        [names_1.default.parentDataProperty, it.parentDataProperty],\n        [names_1.default.rootData, names_1.default.rootData],\n    ];\n    if (it.opts.dynamicRef)\n        valCxt.push([names_1.default.dynamicAnchors, names_1.default.dynamicAnchors]);\n    const args = (0, codegen_1._) `${dataAndSchema}, ${gen.object(...valCxt)}`;\n    return context !== codegen_1.nil ? (0, codegen_1._) `${func}.call(${context}, ${args})` : (0, codegen_1._) `${func}(${args})`;\n}\nexports.callValidateCode = callValidateCode;\nconst newRegExp = (0, codegen_1._) `new RegExp`;\nfunction usePattern({ gen, it: { opts } }, pattern) {\n    const u = opts.unicodeRegExp ? \"u\" : \"\";\n    const { regExp } = opts.code;\n    const rx = regExp(pattern, u);\n    return gen.scopeValue(\"pattern\", {\n        key: rx.toString(),\n        ref: rx,\n        code: (0, codegen_1._) `${regExp.code === \"new RegExp\" ? newRegExp : (0, util_2.useFunc)(gen, regExp)}(${pattern}, ${u})`,\n    });\n}\nexports.usePattern = usePattern;\nfunction validateArray(cxt) {\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    function validateItems(notValid) {\n        const len = gen.const(\"len\", (0, codegen_1._) `${data}.length`);\n        gen.forRange(\"i\", 0, len, (i) => {\n            cxt.subschema({\n                keyword,\n                dataProp: i,\n                dataPropType: util_1.Type.Num,\n            }, valid);\n            gen.if((0, codegen_1.not)(valid), notValid);\n        });\n    }\n}\nexports.validateArray = validateArray;\nfunction validateUnion(cxt) {\n    const { gen, schema, keyword, it } = cxt;\n    /* istanbul ignore if */\n    if (!Array.isArray(schema))\n        throw new Error(\"ajv implementation error\");\n    const alwaysValid = schema.some((sch) => (0, util_1.alwaysValidSchema)(it, sch));\n    if (alwaysValid && !it.opts.unevaluated)\n        return;\n    const valid = gen.let(\"valid\", false);\n    const schValid = gen.name(\"_valid\");\n    gen.block(() => schema.forEach((_sch, i) => {\n        const schCxt = cxt.subschema({\n            keyword,\n            schemaProp: i,\n            compositeRule: true,\n        }, schValid);\n        gen.assign(valid, (0, codegen_1._) `${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)\n            gen.if((0, codegen_1.not)(valid));\n    }));\n    cxt.result(valid, () => cxt.reset(), () => cxt.error(true));\n}\nexports.validateUnion = validateUnion;\n//# sourceMappingURL=code.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.validateKeywordUsage = exports.validSchemaType = exports.funcKeywordCode = exports.macroKeywordCode = void 0;\nconst codegen_1 = require(\"../codegen\");\nconst names_1 = require(\"../names\");\nconst code_1 = require(\"../../vocabularies/code\");\nconst errors_1 = require(\"../errors\");\nfunction macroKeywordCode(cxt, def) {\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)\n        it.self.validateSchema(macroSchema, true);\n    const valid = gen.name(\"valid\");\n    cxt.subschema({\n        schema: macroSchema,\n        schemaPath: codegen_1.nil,\n        errSchemaPath: `${it.errSchemaPath}/${keyword}`,\n        topSchemaRef: schemaRef,\n        compositeRule: true,\n    }, valid);\n    cxt.pass(valid, () => cxt.error(true));\n}\nexports.macroKeywordCode = macroKeywordCode;\nfunction funcKeywordCode(cxt, def) {\n    var _a;\n    const { gen, keyword, schema, parentSchema, $data, it } = cxt;\n    checkAsyncKeyword(it, def);\n    const validate = !$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((_a = def.valid) !== null && _a !== void 0 ? _a : valid);\n    function validateKeyword() {\n        if (def.errors === false) {\n            assignValid();\n            if (def.modifying)\n                modifyData(cxt);\n            reportErrs(() => cxt.error());\n        }\n        else {\n            const ruleErrs = def.async ? validateAsync() : validateSync();\n            if (def.modifying)\n                modifyData(cxt);\n            reportErrs(() => addErrs(cxt, ruleErrs));\n        }\n    }\n    function validateAsync() {\n        const ruleErrs = gen.let(\"ruleErrs\", null);\n        gen.try(() => assignValid((0, codegen_1._) `await `), (e) => gen.assign(valid, false).if((0, codegen_1._) `${e} instanceof ${it.ValidationError}`, () => gen.assign(ruleErrs, (0, codegen_1._) `${e}.errors`), () => gen.throw(e)));\n        return ruleErrs;\n    }\n    function validateSync() {\n        const validateErrs = (0, codegen_1._) `${validateRef}.errors`;\n        gen.assign(validateErrs, null);\n        assignValid(codegen_1.nil);\n        return validateErrs;\n    }\n    function assignValid(_await = def.async ? (0, codegen_1._) `await ` : codegen_1.nil) {\n        const passCxt = it.opts.passContext ? names_1.default.this : names_1.default.self;\n        const passSchema = !((\"compile\" in def && !$data) || def.schema === false);\n        gen.assign(valid, (0, codegen_1._) `${_await}${(0, code_1.callValidateCode)(cxt, validateRef, passCxt, passSchema)}`, def.modifying);\n    }\n    function reportErrs(errors) {\n        var _a;\n        gen.if((0, codegen_1.not)((_a = def.valid) !== null && _a !== void 0 ? _a : valid), errors);\n    }\n}\nexports.funcKeywordCode = funcKeywordCode;\nfunction modifyData(cxt) {\n    const { gen, data, it } = cxt;\n    gen.if(it.parentData, () => gen.assign(data, (0, codegen_1._) `${it.parentData}[${it.parentDataProperty}]`));\n}\nfunction addErrs(cxt, errs) {\n    const { gen } = cxt;\n    gen.if((0, codegen_1._) `Array.isArray(${errs})`, () => {\n        gen\n            .assign(names_1.default.vErrors, (0, codegen_1._) `${names_1.default.vErrors} === null ? ${errs} : ${names_1.default.vErrors}.concat(${errs})`)\n            .assign(names_1.default.errors, (0, codegen_1._) `${names_1.default.vErrors}.length`);\n        (0, errors_1.extendErrors)(cxt);\n    }, () => cxt.error());\n}\nfunction checkAsyncKeyword({ schemaEnv }, def) {\n    if (def.async && !schemaEnv.$async)\n        throw new Error(\"async keyword in sync schema\");\n}\nfunction useKeyword(gen, keyword, result) {\n    if (result === undefined)\n        throw new Error(`keyword \"${keyword}\" failed to compile`);\n    return gen.scopeValue(\"keyword\", typeof result == \"function\" ? { ref: result } : { ref: result, code: (0, codegen_1.stringify)(result) });\n}\nfunction validSchemaType(schema, schemaType, allowUndefined = false) {\n    // TODO add tests\n    return (!schemaType.length ||\n        schemaType.some((st) => 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}\nexports.validSchemaType = validSchemaType;\nfunction validateKeywordUsage({ schema, opts, self, errSchemaPath }, def, keyword) {\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    const deps = def.dependencies;\n    if (deps === null || deps === void 0 ? void 0 : deps.some((kwd) => !Object.prototype.hasOwnProperty.call(schema, kwd))) {\n        throw new Error(`parent schema must have dependencies of ${keyword}: ${deps.join(\",\")}`);\n    }\n    if (def.validateSchema) {\n        const valid = def.validateSchema(schema[keyword]);\n        if (!valid) {\n            const msg = `keyword \"${keyword}\" value is invalid at path \"${errSchemaPath}\": ` +\n                self.errorsText(def.validateSchema.errors);\n            if (opts.validateSchema === \"log\")\n                self.logger.error(msg);\n            else\n                throw new Error(msg);\n        }\n    }\n}\nexports.validateKeywordUsage = validateKeywordUsage;\n//# sourceMappingURL=keyword.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.extendSubschemaMode = exports.extendSubschemaData = exports.getSubschema = void 0;\nconst codegen_1 = require(\"../codegen\");\nconst util_1 = require(\"../util\");\nfunction getSubschema(it, { keyword, schemaProp, schema, schemaPath, errSchemaPath, topSchemaRef }) {\n    if (keyword !== undefined && schema !== undefined) {\n        throw new Error('both \"keyword\" and \"schema\" passed, only one allowed');\n    }\n    if (keyword !== undefined) {\n        const sch = it.schema[keyword];\n        return schemaProp === undefined\n            ? {\n                schema: sch,\n                schemaPath: (0, codegen_1._) `${it.schemaPath}${(0, codegen_1.getProperty)(keyword)}`,\n                errSchemaPath: `${it.errSchemaPath}/${keyword}`,\n            }\n            : {\n                schema: sch[schemaProp],\n                schemaPath: (0, codegen_1._) `${it.schemaPath}${(0, codegen_1.getProperty)(keyword)}${(0, codegen_1.getProperty)(schemaProp)}`,\n                errSchemaPath: `${it.errSchemaPath}/${keyword}/${(0, util_1.escapeFragment)(schemaProp)}`,\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    throw new Error('either \"keyword\" or \"schema\" must be passed');\n}\nexports.getSubschema = getSubschema;\nfunction extendSubschemaData(subschema, it, { dataProp, dataPropType: dpType, data, dataTypes, propertyName }) {\n    if (data !== undefined && dataProp !== undefined) {\n        throw new Error('both \"data\" and \"dataProp\" passed, only one allowed');\n    }\n    const { gen } = it;\n    if (dataProp !== undefined) {\n        const { errorPath, dataPathArr, opts } = it;\n        const nextData = gen.let(\"data\", (0, codegen_1._) `${it.data}${(0, codegen_1.getProperty)(dataProp)}`, true);\n        dataContextProps(nextData);\n        subschema.errorPath = (0, codegen_1.str) `${errorPath}${(0, util_1.getErrorPath)(dataProp, dpType, opts.jsPropertySyntax)}`;\n        subschema.parentDataProperty = (0, codegen_1._) `${dataProp}`;\n        subschema.dataPathArr = [...dataPathArr, subschema.parentDataProperty];\n    }\n    if (data !== undefined) {\n        const nextData = data instanceof codegen_1.Name ? data : gen.let(\"data\", data, true); // replaceable if used once?\n        dataContextProps(nextData);\n        if (propertyName !== undefined)\n            subschema.propertyName = propertyName;\n        // TODO something is possibly wrong here with not changing parentDataProperty and not appending dataPathArr\n    }\n    if (dataTypes)\n        subschema.dataTypes = dataTypes;\n    function dataContextProps(_nextData) {\n        subschema.data = _nextData;\n        subschema.dataLevel = it.dataLevel + 1;\n        subschema.dataTypes = [];\n        it.definedProperties = new Set();\n        subschema.parentData = it.data;\n        subschema.dataNames = [...it.dataNames, _nextData];\n    }\n}\nexports.extendSubschemaData = extendSubschemaData;\nfunction extendSubschemaMode(subschema, { jtdDiscriminator, jtdMetadata, compositeRule, createErrors, allErrors }) {\n    if (compositeRule !== undefined)\n        subschema.compositeRule = compositeRule;\n    if (createErrors !== undefined)\n        subschema.createErrors = createErrors;\n    if (allErrors !== undefined)\n        subschema.allErrors = allErrors;\n    subschema.jtdDiscriminator = jtdDiscriminator; // not inherited\n    subschema.jtdMetadata = jtdMetadata; // not inherited\n}\nexports.extendSubschemaMode = extendSubschemaMode;\n//# sourceMappingURL=subschema.js.map","'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","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getSchemaRefs = exports.resolveUrl = exports.normalizeId = exports._getFullPath = exports.getFullPath = exports.inlineRef = void 0;\nconst util_1 = require(\"./util\");\nconst equal = require(\"fast-deep-equal\");\nconst traverse = require(\"json-schema-traverse\");\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]);\nfunction inlineRef(schema, limit = true) {\n    if (typeof schema == \"boolean\")\n        return true;\n    if (limit === true)\n        return !hasRef(schema);\n    if (!limit)\n        return false;\n    return countKeys(schema) <= limit;\n}\nexports.inlineRef = inlineRef;\nconst REF_KEYWORDS = new Set([\n    \"$ref\",\n    \"$recursiveRef\",\n    \"$recursiveAnchor\",\n    \"$dynamicRef\",\n    \"$dynamicAnchor\",\n]);\nfunction hasRef(schema) {\n    for (const key in schema) {\n        if (REF_KEYWORDS.has(key))\n            return true;\n        const sch = schema[key];\n        if (Array.isArray(sch) && sch.some(hasRef))\n            return true;\n        if (typeof sch == \"object\" && hasRef(sch))\n            return true;\n    }\n    return false;\n}\nfunction countKeys(schema) {\n    let count = 0;\n    for (const key in schema) {\n        if (key === \"$ref\")\n            return Infinity;\n        count++;\n        if (SIMPLE_INLINED.has(key))\n            continue;\n        if (typeof schema[key] == \"object\") {\n            (0, util_1.eachItem)(schema[key], (sch) => (count += countKeys(sch)));\n        }\n        if (count === Infinity)\n            return Infinity;\n    }\n    return count;\n}\nfunction getFullPath(resolver, id = \"\", normalize) {\n    if (normalize !== false)\n        id = normalizeId(id);\n    const p = resolver.parse(id);\n    return _getFullPath(resolver, p);\n}\nexports.getFullPath = getFullPath;\nfunction _getFullPath(resolver, p) {\n    const serialized = resolver.serialize(p);\n    return serialized.split(\"#\")[0] + \"#\";\n}\nexports._getFullPath = _getFullPath;\nconst TRAILING_SLASH_HASH = /#\\/?$/;\nfunction normalizeId(id) {\n    return id ? id.replace(TRAILING_SLASH_HASH, \"\") : \"\";\n}\nexports.normalizeId = normalizeId;\nfunction resolveUrl(resolver, baseId, id) {\n    id = normalizeId(id);\n    return resolver.resolve(baseId, id);\n}\nexports.resolveUrl = resolveUrl;\nconst ANCHOR = /^[a-z_][-a-z0-9._]*$/i;\nfunction getSchemaRefs(schema, baseId) {\n    if (typeof schema == \"boolean\")\n        return {};\n    const { schemaId, uriResolver } = this.opts;\n    const schId = normalizeId(schema[schemaId] || baseId);\n    const baseIds = { \"\": schId };\n    const pathPrefix = getFullPath(uriResolver, schId, false);\n    const localRefs = {};\n    const schemaRefs = new Set();\n    traverse(schema, { allKeys: true }, (sch, jsonPtr, _, parentJsonPtr) => {\n        if (parentJsonPtr === undefined)\n            return;\n        const fullPath = pathPrefix + jsonPtr;\n        let innerBaseId = baseIds[parentJsonPtr];\n        if (typeof sch[schemaId] == \"string\")\n            innerBaseId = addRef.call(this, sch[schemaId]);\n        addAnchor.call(this, sch.$anchor);\n        addAnchor.call(this, sch.$dynamicAnchor);\n        baseIds[jsonPtr] = innerBaseId;\n        function addRef(ref) {\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))\n                throw ambiguos(ref);\n            schemaRefs.add(ref);\n            let schOrRef = this.refs[ref];\n            if (typeof schOrRef == \"string\")\n                schOrRef = this.refs[schOrRef];\n            if (typeof schOrRef == \"object\") {\n                checkAmbiguosRef(sch, schOrRef.schema, ref);\n            }\n            else if (ref !== normalizeId(fullPath)) {\n                if (ref[0] === \"#\") {\n                    checkAmbiguosRef(sch, localRefs[ref], ref);\n                    localRefs[ref] = sch;\n                }\n                else {\n                    this.refs[ref] = fullPath;\n                }\n            }\n            return ref;\n        }\n        function addAnchor(anchor) {\n            if (typeof anchor == \"string\") {\n                if (!ANCHOR.test(anchor))\n                    throw new Error(`invalid anchor \"${anchor}\"`);\n                addRef.call(this, `#${anchor}`);\n            }\n        }\n    });\n    return localRefs;\n    function checkAmbiguosRef(sch1, sch2, ref) {\n        if (sch2 !== undefined && !equal(sch1, sch2))\n            throw ambiguos(ref);\n    }\n    function ambiguos(ref) {\n        return new Error(`reference \"${ref}\" resolves to more than one schema`);\n    }\n}\nexports.getSchemaRefs = getSchemaRefs;\n//# sourceMappingURL=resolve.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getData = exports.KeywordCxt = exports.validateFunctionCode = void 0;\nconst boolSchema_1 = require(\"./boolSchema\");\nconst dataType_1 = require(\"./dataType\");\nconst applicability_1 = require(\"./applicability\");\nconst dataType_2 = require(\"./dataType\");\nconst defaults_1 = require(\"./defaults\");\nconst keyword_1 = require(\"./keyword\");\nconst subschema_1 = require(\"./subschema\");\nconst codegen_1 = require(\"../codegen\");\nconst names_1 = require(\"../names\");\nconst resolve_1 = require(\"../resolve\");\nconst util_1 = require(\"../util\");\nconst errors_1 = require(\"../errors\");\n// schema compilation - generates validation function, subschemaCode (below) is used for subschemas\nfunction validateFunctionCode(it) {\n    if (isSchemaObj(it)) {\n        checkKeywords(it);\n        if (schemaCxtHasRules(it)) {\n            topSchemaObjCode(it);\n            return;\n        }\n    }\n    validateFunction(it, () => (0, boolSchema_1.topBoolOrEmptySchema)(it));\n}\nexports.validateFunctionCode = validateFunctionCode;\nfunction validateFunction({ gen, validateName, schema, schemaEnv, opts }, body) {\n    if (opts.code.es5) {\n        gen.func(validateName, (0, codegen_1._) `${names_1.default.data}, ${names_1.default.valCxt}`, schemaEnv.$async, () => {\n            gen.code((0, codegen_1._) `\"use strict\"; ${funcSourceUrl(schema, opts)}`);\n            destructureValCxtES5(gen, opts);\n            gen.code(body);\n        });\n    }\n    else {\n        gen.func(validateName, (0, codegen_1._) `${names_1.default.data}, ${destructureValCxt(opts)}`, schemaEnv.$async, () => gen.code(funcSourceUrl(schema, opts)).code(body));\n    }\n}\nfunction destructureValCxt(opts) {\n    return (0, codegen_1._) `{${names_1.default.instancePath}=\"\", ${names_1.default.parentData}, ${names_1.default.parentDataProperty}, ${names_1.default.rootData}=${names_1.default.data}${opts.dynamicRef ? (0, codegen_1._) `, ${names_1.default.dynamicAnchors}={}` : codegen_1.nil}}={}`;\n}\nfunction destructureValCxtES5(gen, opts) {\n    gen.if(names_1.default.valCxt, () => {\n        gen.var(names_1.default.instancePath, (0, codegen_1._) `${names_1.default.valCxt}.${names_1.default.instancePath}`);\n        gen.var(names_1.default.parentData, (0, codegen_1._) `${names_1.default.valCxt}.${names_1.default.parentData}`);\n        gen.var(names_1.default.parentDataProperty, (0, codegen_1._) `${names_1.default.valCxt}.${names_1.default.parentDataProperty}`);\n        gen.var(names_1.default.rootData, (0, codegen_1._) `${names_1.default.valCxt}.${names_1.default.rootData}`);\n        if (opts.dynamicRef)\n            gen.var(names_1.default.dynamicAnchors, (0, codegen_1._) `${names_1.default.valCxt}.${names_1.default.dynamicAnchors}`);\n    }, () => {\n        gen.var(names_1.default.instancePath, (0, codegen_1._) `\"\"`);\n        gen.var(names_1.default.parentData, (0, codegen_1._) `undefined`);\n        gen.var(names_1.default.parentDataProperty, (0, codegen_1._) `undefined`);\n        gen.var(names_1.default.rootData, names_1.default.data);\n        if (opts.dynamicRef)\n            gen.var(names_1.default.dynamicAnchors, (0, codegen_1._) `{}`);\n    });\n}\nfunction topSchemaObjCode(it) {\n    const { schema, opts, gen } = it;\n    validateFunction(it, () => {\n        if (opts.$comment && schema.$comment)\n            commentKeyword(it);\n        checkNoDefault(it);\n        gen.let(names_1.default.vErrors, null);\n        gen.let(names_1.default.errors, 0);\n        if (opts.unevaluated)\n            resetEvaluated(it);\n        typeAndKeywords(it);\n        returnResults(it);\n    });\n    return;\n}\nfunction resetEvaluated(it) {\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\", (0, codegen_1._) `${validateName}.evaluated`);\n    gen.if((0, codegen_1._) `${it.evaluated}.dynamicProps`, () => gen.assign((0, codegen_1._) `${it.evaluated}.props`, (0, codegen_1._) `undefined`));\n    gen.if((0, codegen_1._) `${it.evaluated}.dynamicItems`, () => gen.assign((0, codegen_1._) `${it.evaluated}.items`, (0, codegen_1._) `undefined`));\n}\nfunction funcSourceUrl(schema, opts) {\n    const schId = typeof schema == \"object\" && schema[opts.schemaId];\n    return schId && (opts.code.source || opts.code.process) ? (0, codegen_1._) `/*# sourceURL=${schId} */` : codegen_1.nil;\n}\n// schema compilation - this function is used recursively to generate code for sub-schemas\nfunction subschemaCode(it, valid) {\n    if (isSchemaObj(it)) {\n        checkKeywords(it);\n        if (schemaCxtHasRules(it)) {\n            subSchemaObjCode(it, valid);\n            return;\n        }\n    }\n    (0, boolSchema_1.boolOrEmptySchema)(it, valid);\n}\nfunction schemaCxtHasRules({ schema, self }) {\n    if (typeof schema == \"boolean\")\n        return !schema;\n    for (const key in schema)\n        if (self.RULES.all[key])\n            return true;\n    return false;\n}\nfunction isSchemaObj(it) {\n    return typeof it.schema != \"boolean\";\n}\nfunction subSchemaObjCode(it, valid) {\n    const { schema, gen, opts } = it;\n    if (opts.$comment && schema.$comment)\n        commentKeyword(it);\n    updateContext(it);\n    checkAsyncSchema(it);\n    const errsCount = gen.const(\"_errs\", names_1.default.errors);\n    typeAndKeywords(it, errsCount);\n    // TODO var\n    gen.var(valid, (0, codegen_1._) `${errsCount} === ${names_1.default.errors}`);\n}\nfunction checkKeywords(it) {\n    (0, util_1.checkUnknownRules)(it);\n    checkRefsAndKeywords(it);\n}\nfunction typeAndKeywords(it, errsCount) {\n    if (it.opts.jtd)\n        return schemaKeywords(it, [], false, errsCount);\n    const types = (0, dataType_1.getSchemaTypes)(it.schema);\n    const checkedTypes = (0, dataType_1.coerceAndCheckDataType)(it, types);\n    schemaKeywords(it, types, !checkedTypes, errsCount);\n}\nfunction checkRefsAndKeywords(it) {\n    const { schema, errSchemaPath, opts, self } = it;\n    if (schema.$ref && opts.ignoreKeywordsWithRef && (0, util_1.schemaHasRulesButRef)(schema, self.RULES)) {\n        self.logger.warn(`$ref: keywords ignored in schema at path \"${errSchemaPath}\"`);\n    }\n}\nfunction checkNoDefault(it) {\n    const { schema, opts } = it;\n    if (schema.default !== undefined && opts.useDefaults && opts.strictSchema) {\n        (0, util_1.checkStrictMode)(it, \"default is ignored in the schema root\");\n    }\n}\nfunction updateContext(it) {\n    const schId = it.schema[it.opts.schemaId];\n    if (schId)\n        it.baseId = (0, resolve_1.resolveUrl)(it.opts.uriResolver, it.baseId, schId);\n}\nfunction checkAsyncSchema(it) {\n    if (it.schema.$async && !it.schemaEnv.$async)\n        throw new Error(\"async schema in sync schema\");\n}\nfunction commentKeyword({ gen, schemaEnv, schema, errSchemaPath, opts }) {\n    const msg = schema.$comment;\n    if (opts.$comment === true) {\n        gen.code((0, codegen_1._) `${names_1.default.self}.logger.log(${msg})`);\n    }\n    else if (typeof opts.$comment == \"function\") {\n        const schemaPath = (0, codegen_1.str) `${errSchemaPath}/$comment`;\n        const rootName = gen.scopeValue(\"root\", { ref: schemaEnv.root });\n        gen.code((0, codegen_1._) `${names_1.default.self}.opts.$comment(${msg}, ${schemaPath}, ${rootName}.schema)`);\n    }\n}\nfunction returnResults(it) {\n    const { gen, schemaEnv, validateName, ValidationError, opts } = it;\n    if (schemaEnv.$async) {\n        // TODO assign unevaluated\n        gen.if((0, codegen_1._) `${names_1.default.errors} === 0`, () => gen.return(names_1.default.data), () => gen.throw((0, codegen_1._) `new ${ValidationError}(${names_1.default.vErrors})`));\n    }\n    else {\n        gen.assign((0, codegen_1._) `${validateName}.errors`, names_1.default.vErrors);\n        if (opts.unevaluated)\n            assignEvaluated(it);\n        gen.return((0, codegen_1._) `${names_1.default.errors} === 0`);\n    }\n}\nfunction assignEvaluated({ gen, evaluated, props, items }) {\n    if (props instanceof codegen_1.Name)\n        gen.assign((0, codegen_1._) `${evaluated}.props`, props);\n    if (items instanceof codegen_1.Name)\n        gen.assign((0, codegen_1._) `${evaluated}.items`, items);\n}\nfunction schemaKeywords(it, types, typeErrors, errsCount) {\n    const { gen, schema, data, allErrors, opts, self } = it;\n    const { RULES } = self;\n    if (schema.$ref && (opts.ignoreKeywordsWithRef || !(0, util_1.schemaHasRulesButRef)(schema, RULES))) {\n        gen.block(() => keywordCode(it, \"$ref\", RULES.all.$ref.definition)); // TODO typecast\n        return;\n    }\n    if (!opts.jtd)\n        checkStrictTypes(it, types);\n    gen.block(() => {\n        for (const group of RULES.rules)\n            groupKeywords(group);\n        groupKeywords(RULES.post);\n    });\n    function groupKeywords(group) {\n        if (!(0, applicability_1.shouldUseGroup)(schema, group))\n            return;\n        if (group.type) {\n            gen.if((0, dataType_2.checkDataType)(group.type, data, opts.strictNumbers));\n            iterateKeywords(it, group);\n            if (types.length === 1 && types[0] === group.type && typeErrors) {\n                gen.else();\n                (0, dataType_2.reportTypeError)(it);\n            }\n            gen.endIf();\n        }\n        else {\n            iterateKeywords(it, group);\n        }\n        // TODO make it \"ok\" call?\n        if (!allErrors)\n            gen.if((0, codegen_1._) `${names_1.default.errors} === ${errsCount || 0}`);\n    }\n}\nfunction iterateKeywords(it, group) {\n    const { gen, schema, opts: { useDefaults }, } = it;\n    if (useDefaults)\n        (0, defaults_1.assignDefaults)(it, group.type);\n    gen.block(() => {\n        for (const rule of group.rules) {\n            if ((0, applicability_1.shouldUseRule)(schema, rule)) {\n                keywordCode(it, rule.keyword, rule.definition, group.type);\n            }\n        }\n    });\n}\nfunction checkStrictTypes(it, types) {\n    if (it.schemaEnv.meta || !it.opts.strictTypes)\n        return;\n    checkContextTypes(it, types);\n    if (!it.opts.allowUnionTypes)\n        checkMultipleTypes(it, types);\n    checkKeywordTypes(it, it.dataTypes);\n}\nfunction checkContextTypes(it, types) {\n    if (!types.length)\n        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}\nfunction checkMultipleTypes(it, ts) {\n    if (ts.length > 1 && !(ts.length === 2 && ts.includes(\"null\"))) {\n        strictTypesError(it, \"use allowUnionTypes to allow union type keyword\");\n    }\n}\nfunction checkKeywordTypes(it, ts) {\n    const rules = it.self.RULES.all;\n    for (const keyword in rules) {\n        const rule = rules[keyword];\n        if (typeof rule == \"object\" && (0, applicability_1.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}\nfunction hasApplicableType(schTs, kwdT) {\n    return schTs.includes(kwdT) || (kwdT === \"number\" && schTs.includes(\"integer\"));\n}\nfunction includesType(ts, t) {\n    return ts.includes(t) || (t === \"integer\" && ts.includes(\"number\"));\n}\nfunction narrowSchemaTypes(it, withTypes) {\n    const ts = [];\n    for (const t of it.dataTypes) {\n        if (includesType(withTypes, t))\n            ts.push(t);\n        else if (withTypes.includes(\"integer\") && t === \"number\")\n            ts.push(\"integer\");\n    }\n    it.dataTypes = ts;\n}\nfunction strictTypesError(it, msg) {\n    const schemaPath = it.schemaEnv.baseId + it.errSchemaPath;\n    msg += ` at \"${schemaPath}\" (strictTypes)`;\n    (0, util_1.checkStrictMode)(it, msg, it.opts.strictTypes);\n}\nclass KeywordCxt {\n    constructor(it, def, keyword) {\n        (0, keyword_1.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 = (0, util_1.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        if (this.$data) {\n            this.schemaCode = it.gen.const(\"vSchema\", getData(this.$data, it));\n        }\n        else {\n            this.schemaCode = this.schemaValue;\n            if (!(0, keyword_1.validSchemaType)(this.schema, def.schemaType, def.allowUndefined)) {\n                throw new Error(`${keyword} value must be ${JSON.stringify(def.schemaType)}`);\n            }\n        }\n        if (\"code\" in def ? def.trackErrors : def.errors !== false) {\n            this.errsCount = it.gen.const(\"_errs\", names_1.default.errors);\n        }\n    }\n    result(condition, successAction, failAction) {\n        this.failResult((0, codegen_1.not)(condition), successAction, failAction);\n    }\n    failResult(condition, successAction, failAction) {\n        this.gen.if(condition);\n        if (failAction)\n            failAction();\n        else\n            this.error();\n        if (successAction) {\n            this.gen.else();\n            successAction();\n            if (this.allErrors)\n                this.gen.endIf();\n        }\n        else {\n            if (this.allErrors)\n                this.gen.endIf();\n            else\n                this.gen.else();\n        }\n    }\n    pass(condition, failAction) {\n        this.failResult((0, codegen_1.not)(condition), undefined, failAction);\n    }\n    fail(condition) {\n        if (condition === undefined) {\n            this.error();\n            if (!this.allErrors)\n                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)\n            this.gen.endIf();\n        else\n            this.gen.else();\n    }\n    fail$data(condition) {\n        if (!this.$data)\n            return this.fail(condition);\n        const { schemaCode } = this;\n        this.fail((0, codegen_1._) `${schemaCode} !== undefined && (${(0, codegen_1.or)(this.invalid$data(), condition)})`);\n    }\n    error(append, errorParams, errorPaths) {\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    _error(append, errorPaths) {\n        ;\n        (append ? errors_1.reportExtraError : errors_1.reportError)(this, this.def.error, errorPaths);\n    }\n    $dataError() {\n        (0, errors_1.reportError)(this, this.def.$dataError || errors_1.keyword$DataError);\n    }\n    reset() {\n        if (this.errsCount === undefined)\n            throw new Error('add \"trackErrors\" to keyword definition');\n        (0, errors_1.resetErrorsCount)(this.gen, this.errsCount);\n    }\n    ok(cond) {\n        if (!this.allErrors)\n            this.gen.if(cond);\n    }\n    setParams(obj, assign) {\n        if (assign)\n            Object.assign(this.params, obj);\n        else\n            this.params = obj;\n    }\n    block$data(valid, codeBlock, $dataValid = codegen_1.nil) {\n        this.gen.block(() => {\n            this.check$data(valid, $dataValid);\n            codeBlock();\n        });\n    }\n    check$data(valid = codegen_1.nil, $dataValid = codegen_1.nil) {\n        if (!this.$data)\n            return;\n        const { gen, schemaCode, schemaType, def } = this;\n        gen.if((0, codegen_1.or)((0, codegen_1._) `${schemaCode} === undefined`, $dataValid));\n        if (valid !== codegen_1.nil)\n            gen.assign(valid, true);\n        if (schemaType.length || def.validateSchema) {\n            gen.elseIf(this.invalid$data());\n            this.$dataError();\n            if (valid !== codegen_1.nil)\n                gen.assign(valid, false);\n        }\n        gen.else();\n    }\n    invalid$data() {\n        const { gen, schemaCode, schemaType, def, it } = this;\n        return (0, codegen_1.or)(wrong$DataType(), invalid$DataSchema());\n        function wrong$DataType() {\n            if (schemaType.length) {\n                /* istanbul ignore if */\n                if (!(schemaCode instanceof codegen_1.Name))\n                    throw new Error(\"ajv implementation error\");\n                const st = Array.isArray(schemaType) ? schemaType : [schemaType];\n                return (0, codegen_1._) `${(0, dataType_2.checkDataTypes)(st, schemaCode, it.opts.strictNumbers, dataType_2.DataType.Wrong)}`;\n            }\n            return codegen_1.nil;\n        }\n        function invalid$DataSchema() {\n            if (def.validateSchema) {\n                const validateSchemaRef = gen.scopeValue(\"validate$data\", { ref: def.validateSchema }); // TODO value.code for standalone\n                return (0, codegen_1._) `!${validateSchemaRef}(${schemaCode})`;\n            }\n            return codegen_1.nil;\n        }\n    }\n    subschema(appl, valid) {\n        const subschema = (0, subschema_1.getSubschema)(this.it, appl);\n        (0, subschema_1.extendSubschemaData)(subschema, this.it, appl);\n        (0, subschema_1.extendSubschemaMode)(subschema, appl);\n        const nextContext = { ...this.it, ...subschema, items: undefined, props: undefined };\n        subschemaCode(nextContext, valid);\n        return nextContext;\n    }\n    mergeEvaluated(schemaCxt, toName) {\n        const { it, gen } = this;\n        if (!it.opts.unevaluated)\n            return;\n        if (it.props !== true && schemaCxt.props !== undefined) {\n            it.props = util_1.mergeEvaluated.props(gen, schemaCxt.props, it.props, toName);\n        }\n        if (it.items !== true && schemaCxt.items !== undefined) {\n            it.items = util_1.mergeEvaluated.items(gen, schemaCxt.items, it.items, toName);\n        }\n    }\n    mergeValidEvaluated(schemaCxt, valid) {\n        const { it, gen } = this;\n        if (it.opts.unevaluated && (it.props !== true || it.items !== true)) {\n            gen.if(valid, () => this.mergeEvaluated(schemaCxt, codegen_1.Name));\n            return true;\n        }\n    }\n}\nexports.KeywordCxt = KeywordCxt;\nfunction keywordCode(it, keyword, def, ruleType) {\n    const cxt = new KeywordCxt(it, def, keyword);\n    if (\"code\" in def) {\n        def.code(cxt, ruleType);\n    }\n    else if (cxt.$data && def.validate) {\n        (0, keyword_1.funcKeywordCode)(cxt, def);\n    }\n    else if (\"macro\" in def) {\n        (0, keyword_1.macroKeywordCode)(cxt, def);\n    }\n    else if (def.compile || def.validate) {\n        (0, keyword_1.funcKeywordCode)(cxt, def);\n    }\n}\nconst JSON_POINTER = /^\\/(?:[^~]|~0|~1)*$/;\nconst RELATIVE_JSON_POINTER = /^([0-9]+)(#|\\/(?:[^~]|~0|~1)*)?$/;\nfunction getData($data, { dataLevel, dataNames, dataPathArr }) {\n    let jsonPointer;\n    let data;\n    if ($data === \"\")\n        return names_1.default.rootData;\n    if ($data[0] === \"/\") {\n        if (!JSON_POINTER.test($data))\n            throw new Error(`Invalid JSON-pointer: ${$data}`);\n        jsonPointer = $data;\n        data = names_1.default.rootData;\n    }\n    else {\n        const matches = RELATIVE_JSON_POINTER.exec($data);\n        if (!matches)\n            throw new Error(`Invalid JSON-pointer: ${$data}`);\n        const up = +matches[1];\n        jsonPointer = matches[2];\n        if (jsonPointer === \"#\") {\n            if (up >= dataLevel)\n                throw new Error(errorMsg(\"property/index\", up));\n            return dataPathArr[dataLevel - up];\n        }\n        if (up > dataLevel)\n            throw new Error(errorMsg(\"data\", up));\n        data = dataNames[dataLevel - up];\n        if (!jsonPointer)\n            return data;\n    }\n    let expr = data;\n    const segments = jsonPointer.split(\"/\");\n    for (const segment of segments) {\n        if (segment) {\n            data = (0, codegen_1._) `${data}${(0, codegen_1.getProperty)((0, util_1.unescapeJsonPointer)(segment))}`;\n            expr = (0, codegen_1._) `${expr} && ${data}`;\n        }\n    }\n    return expr;\n    function errorMsg(pointerType, up) {\n        return `Cannot access ${pointerType} ${up} levels up, current level is ${dataLevel}`;\n    }\n}\nexports.getData = getData;\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nclass ValidationError extends Error {\n    constructor(errors) {\n        super(\"validation failed\");\n        this.errors = errors;\n        this.ajv = this.validation = true;\n    }\n}\nexports.default = ValidationError;\n//# sourceMappingURL=validation_error.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst resolve_1 = require(\"./resolve\");\nclass MissingRefError extends Error {\n    constructor(resolver, baseId, ref, msg) {\n        super(msg || `can't resolve reference ${ref} from id ${baseId}`);\n        this.missingRef = (0, resolve_1.resolveUrl)(resolver, baseId, ref);\n        this.missingSchema = (0, resolve_1.normalizeId)((0, resolve_1.getFullPath)(resolver, this.missingRef));\n    }\n}\nexports.default = MissingRefError;\n//# sourceMappingURL=ref_error.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.resolveSchema = exports.getCompilingSchema = exports.resolveRef = exports.compileSchema = exports.SchemaEnv = void 0;\nconst codegen_1 = require(\"./codegen\");\nconst validation_error_1 = require(\"../runtime/validation_error\");\nconst names_1 = require(\"./names\");\nconst resolve_1 = require(\"./resolve\");\nconst util_1 = require(\"./util\");\nconst validate_1 = require(\"./validate\");\nclass SchemaEnv {\n    constructor(env) {\n        var _a;\n        this.refs = {};\n        this.dynamicAnchors = {};\n        let schema;\n        if (typeof env.schema == \"object\")\n            schema = env.schema;\n        this.schema = env.schema;\n        this.schemaId = env.schemaId;\n        this.root = env.root || this;\n        this.baseId = (_a = env.baseId) !== null && _a !== void 0 ? _a : (0, resolve_1.normalizeId)(schema === null || schema === void 0 ? void 0 : schema[env.schemaId || \"$id\"]);\n        this.schemaPath = env.schemaPath;\n        this.localRefs = env.localRefs;\n        this.meta = env.meta;\n        this.$async = schema === null || schema === void 0 ? void 0 : schema.$async;\n        this.refs = {};\n    }\n}\nexports.SchemaEnv = SchemaEnv;\n// let codeSize = 0\n// let nodeCount = 0\n// Compiles schema in SchemaEnv\nfunction compileSchema(sch) {\n    // TODO refactor - remove compilations\n    const _sch = getCompilingSchema.call(this, sch);\n    if (_sch)\n        return _sch;\n    const rootId = (0, resolve_1.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_1.CodeGen(this.scope, { es5, lines, ownProperties });\n    let _ValidationError;\n    if (sch.$async) {\n        _ValidationError = gen.scopeValue(\"Error\", {\n            ref: validation_error_1.default,\n            code: (0, codegen_1._) `require(\"ajv/dist/runtime/validation_error\").default`,\n        });\n    }\n    const validateName = gen.scopeName(\"validate\");\n    sch.validateName = validateName;\n    const schemaCxt = {\n        gen,\n        allErrors: this.opts.allErrors,\n        data: names_1.default.data,\n        parentData: names_1.default.parentData,\n        parentDataProperty: names_1.default.parentDataProperty,\n        dataNames: [names_1.default.data],\n        dataPathArr: [codegen_1.nil], // TODO can its length be used as dataLevel if nil is removed?\n        dataLevel: 0,\n        dataTypes: [],\n        definedProperties: new Set(),\n        topSchemaRef: gen.scopeValue(\"schema\", this.opts.code.source === true\n            ? { ref: sch.schema, code: (0, codegen_1.stringify)(sch.schema) }\n            : { ref: sch.schema }),\n        validateName,\n        ValidationError: _ValidationError,\n        schema: sch.schema,\n        schemaEnv: sch,\n        rootId,\n        baseId: sch.baseId || rootId,\n        schemaPath: codegen_1.nil,\n        errSchemaPath: sch.schemaPath || (this.opts.jtd ? \"\" : \"#\"),\n        errorPath: (0, codegen_1._) `\"\"`,\n        opts: this.opts,\n        self: this,\n    };\n    let sourceCode;\n    try {\n        this._compilations.add(sch);\n        (0, validate_1.validateFunctionCode)(schemaCxt);\n        gen.optimize(this.opts.code.optimize);\n        // gen.optimize(1)\n        const validateCode = gen.toString();\n        sourceCode = `${gen.scopeRefs(names_1.default.scope)}return ${validateCode}`;\n        // console.log((codeSize += sourceCode.length), (nodeCount += gen.nodeCount))\n        if (this.opts.code.process)\n            sourceCode = this.opts.code.process(sourceCode, sch);\n        // console.log(\"\\n\\n\\n *** \\n\", sourceCode)\n        const makeValidate = new Function(`${names_1.default.self}`, `${names_1.default.scope}`, sourceCode);\n        const validate = makeValidate(this, this.scope.get());\n        this.scope.value(validateName, { ref: validate });\n        validate.errors = null;\n        validate.schema = sch.schema;\n        validate.schemaEnv = sch;\n        if (sch.$async)\n            validate.$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 codegen_1.Name ? undefined : props,\n                items: items instanceof codegen_1.Name ? undefined : items,\n                dynamicProps: props instanceof codegen_1.Name,\n                dynamicItems: items instanceof codegen_1.Name,\n            };\n            if (validate.source)\n                validate.source.evaluated = (0, codegen_1.stringify)(validate.evaluated);\n        }\n        sch.validate = validate;\n        return sch;\n    }\n    catch (e) {\n        delete sch.validate;\n        delete sch.validateName;\n        if (sourceCode)\n            this.logger.error(\"Error compiling schema, function code:\", sourceCode);\n        // console.log(\"\\n\\n\\n *** \\n\", sourceCode, this.opts)\n        throw e;\n    }\n    finally {\n        this._compilations.delete(sch);\n    }\n}\nexports.compileSchema = compileSchema;\nfunction resolveRef(root, baseId, ref) {\n    var _a;\n    ref = (0, resolve_1.resolveUrl)(this.opts.uriResolver, baseId, ref);\n    const schOrFunc = root.refs[ref];\n    if (schOrFunc)\n        return schOrFunc;\n    let _sch = resolve.call(this, root, ref);\n    if (_sch === undefined) {\n        const schema = (_a = root.localRefs) === null || _a === void 0 ? void 0 : _a[ref]; // TODO maybe localRefs should hold SchemaEnv\n        const { schemaId } = this.opts;\n        if (schema)\n            _sch = new SchemaEnv({ schema, schemaId, root, baseId });\n    }\n    if (_sch === undefined)\n        return;\n    return (root.refs[ref] = inlineOrCompile.call(this, _sch));\n}\nexports.resolveRef = resolveRef;\nfunction inlineOrCompile(sch) {\n    if ((0, resolve_1.inlineRef)(sch.schema, this.opts.inlineRefs))\n        return sch.schema;\n    return sch.validate ? sch : compileSchema.call(this, sch);\n}\n// Index of schema compilation in the currently compiled list\nfunction getCompilingSchema(schEnv) {\n    for (const sch of this._compilations) {\n        if (sameSchemaEnv(sch, schEnv))\n            return sch;\n    }\n}\nexports.getCompilingSchema = getCompilingSchema;\nfunction sameSchemaEnv(s1, s2) {\n    return s1.schema === s2.schema && s1.root === s2.root && s1.baseId === s2.baseId;\n}\n// resolve and compile the references ($ref)\n// TODO returns AnySchemaObject (if the schema can be inlined) or validation function\nfunction resolve(root, // information about the root schema for the current schema\nref // reference to resolve\n) {\n    let sch;\n    while (typeof (sch = this.refs[ref]) == \"string\")\n        ref = sch;\n    return sch || this.schemas[ref] || resolveSchema.call(this, root, ref);\n}\n// Resolve schema, its root and baseId\nfunction resolveSchema(root, // root object with properties schema, refs TODO below SchemaEnv is assigned to it\nref // reference to resolve\n) {\n    const p = this.opts.uriResolver.parse(ref);\n    const refPath = (0, resolve_1._getFullPath)(this.opts.uriResolver, p);\n    let baseId = (0, resolve_1.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    const id = (0, resolve_1.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 === null || sch === void 0 ? void 0 : sch.schema) !== \"object\")\n            return;\n        return getJsonPointer.call(this, p, sch);\n    }\n    if (typeof (schOrRef === null || schOrRef === void 0 ? void 0 : schOrRef.schema) !== \"object\")\n        return;\n    if (!schOrRef.validate)\n        compileSchema.call(this, schOrRef);\n    if (id === (0, resolve_1.normalizeId)(ref)) {\n        const { schema } = schOrRef;\n        const { schemaId } = this.opts;\n        const schId = schema[schemaId];\n        if (schId)\n            baseId = (0, resolve_1.resolveUrl)(this.opts.uriResolver, baseId, schId);\n        return new SchemaEnv({ schema, schemaId, root, baseId });\n    }\n    return getJsonPointer.call(this, p, schOrRef);\n}\nexports.resolveSchema = resolveSchema;\nconst PREVENT_SCOPE_CHANGE = new Set([\n    \"properties\",\n    \"patternProperties\",\n    \"enum\",\n    \"dependencies\",\n    \"definitions\",\n]);\nfunction getJsonPointer(parsedRef, { baseId, schema, root }) {\n    var _a;\n    if (((_a = parsedRef.fragment) === null || _a === void 0 ? void 0 : _a[0]) !== \"/\")\n        return;\n    for (const part of parsedRef.fragment.slice(1).split(\"/\")) {\n        if (typeof schema === \"boolean\")\n            return;\n        const partSchema = schema[(0, util_1.unescapeFragment)(part)];\n        if (partSchema === undefined)\n            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 = (0, resolve_1.resolveUrl)(this.opts.uriResolver, baseId, schId);\n        }\n    }\n    let env;\n    if (typeof schema != \"boolean\" && schema.$ref && !(0, util_1.schemaHasRulesButRef)(schema, this.RULES)) {\n        const $ref = (0, resolve_1.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)\n        return env;\n    return undefined;\n}\n//# sourceMappingURL=index.js.map","","'use strict'\n\n/** @type {(value: string) => boolean} */\nconst isUUID = RegExp.prototype.test.bind(/^[\\da-f]{8}-[\\da-f]{4}-[\\da-f]{4}-[\\da-f]{4}-[\\da-f]{12}$/iu)\n\n/** @type {(value: string) => boolean} */\nconst isIPv4 = RegExp.prototype.test.bind(/^(?:(?:25[0-5]|2[0-4]\\d|1\\d{2}|[1-9]\\d|\\d)\\.){3}(?:25[0-5]|2[0-4]\\d|1\\d{2}|[1-9]\\d|\\d)$/u)\n\n/**\n * @param {Array<string>} input\n * @returns {string}\n */\nfunction stringArrayToHexStripped (input) {\n  let acc = ''\n  let code = 0\n  let i = 0\n\n  for (i = 0; i < input.length; i++) {\n    code = input[i].charCodeAt(0)\n    if (code === 48) {\n      continue\n    }\n    if (!((code >= 48 && code <= 57) || (code >= 65 && code <= 70) || (code >= 97 && code <= 102))) {\n      return ''\n    }\n    acc += input[i]\n    break\n  }\n\n  for (i += 1; i < input.length; i++) {\n    code = input[i].charCodeAt(0)\n    if (!((code >= 48 && code <= 57) || (code >= 65 && code <= 70) || (code >= 97 && code <= 102))) {\n      return ''\n    }\n    acc += input[i]\n  }\n  return acc\n}\n\n/**\n * @typedef {Object} GetIPV6Result\n * @property {boolean} error - Indicates if there was an error parsing the IPv6 address.\n * @property {string} address - The parsed IPv6 address.\n * @property {string} [zone] - The zone identifier, if present.\n */\n\n/**\n * @param {string} value\n * @returns {boolean}\n */\nconst nonSimpleDomain = RegExp.prototype.test.bind(/[^!\"$&'()*+,\\-.;=_`a-z{}~]/u)\n\n/**\n * @param {Array<string>} buffer\n * @returns {boolean}\n */\nfunction consumeIsZone (buffer) {\n  buffer.length = 0\n  return true\n}\n\n/**\n * @param {Array<string>} buffer\n * @param {Array<string>} address\n * @param {GetIPV6Result} output\n * @returns {boolean}\n */\nfunction consumeHextets (buffer, address, output) {\n  if (buffer.length) {\n    const hex = stringArrayToHexStripped(buffer)\n    if (hex !== '') {\n      address.push(hex)\n    } else {\n      output.error = true\n      return false\n    }\n    buffer.length = 0\n  }\n  return true\n}\n\n/**\n * @param {string} input\n * @returns {GetIPV6Result}\n */\nfunction getIPV6 (input) {\n  let tokenCount = 0\n  const output = { error: false, address: '', zone: '' }\n  /** @type {Array<string>} */\n  const address = []\n  /** @type {Array<string>} */\n  const buffer = []\n  let endipv6Encountered = false\n  let endIpv6 = false\n\n  let consume = consumeHextets\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(buffer, address, output)) { break }\n      if (++tokenCount > 7) {\n        // not valid\n        output.error = true\n        break\n      }\n      if (i > 0 && input[i - 1] === ':') {\n        endipv6Encountered = true\n      }\n      address.push(':')\n      continue\n    } else if (cursor === '%') {\n      if (!consume(buffer, address, output)) { break }\n      // switch to zone detection\n      consume = consumeIsZone\n    } else {\n      buffer.push(cursor)\n      continue\n    }\n  }\n  if (buffer.length) {\n    if (consume === consumeIsZone) {\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\n/**\n * @typedef {Object} NormalizeIPv6Result\n * @property {string} host - The normalized host.\n * @property {string} [escapedHost] - The escaped host.\n * @property {boolean} isIPV6 - Indicates if the host is an IPv6 address.\n */\n\n/**\n * @param {string} host\n * @returns {NormalizeIPv6Result}\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, isIPV6: true, escapedHost }\n  } else {\n    return { host, isIPV6: false }\n  }\n}\n\n/**\n * @param {string} str\n * @param {string} token\n * @returns {number}\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\n/**\n * @param {string} path\n * @returns {string}\n *\n * @see https://datatracker.ietf.org/doc/html/rfc3986#section-5.2.4\n */\nfunction removeDotSegments (path) {\n  let input = path\n  const output = []\n  let nextSlash = -1\n  let len = 0\n\n  // eslint-disable-next-line no-cond-assign\n  while (len = input.length) {\n    if (len === 1) {\n      if (input === '.') {\n        break\n      } else if (input === '/') {\n        output.push('/')\n        break\n      } else {\n        output.push(input)\n        break\n      }\n    } else if (len === 2) {\n      if (input[0] === '.') {\n        if (input[1] === '.') {\n          break\n        } else if (input[1] === '/') {\n          input = input.slice(2)\n          continue\n        }\n      } else if (input[0] === '/') {\n        if (input[1] === '.' || input[1] === '/') {\n          output.push('/')\n          break\n        }\n      }\n    } else if (len === 3) {\n      if (input === '/..') {\n        if (output.length !== 0) {\n          output.pop()\n        }\n        output.push('/')\n        break\n      }\n    }\n    if (input[0] === '.') {\n      if (input[1] === '.') {\n        if (input[2] === '/') {\n          input = input.slice(3)\n          continue\n        }\n      } else if (input[1] === '/') {\n        input = input.slice(2)\n        continue\n      }\n    } else if (input[0] === '/') {\n      if (input[1] === '.') {\n        if (input[2] === '/') {\n          input = input.slice(2)\n          continue\n        } else if (input[2] === '.') {\n          if (input[3] === '/') {\n            input = input.slice(3)\n            if (output.length !== 0) {\n              output.pop()\n            }\n            continue\n          }\n        }\n      }\n    }\n\n    // Rule 2E: Move normal path segment to output\n    if ((nextSlash = input.indexOf('/', 1)) === -1) {\n      output.push(input)\n      break\n    } else {\n      output.push(input.slice(0, nextSlash))\n      input = input.slice(nextSlash)\n    }\n  }\n\n  return output.join('')\n}\n\n/**\n * @param {import('../types/index').URIComponent} component\n * @param {boolean} esc\n * @returns {import('../types/index').URIComponent}\n */\nfunction normalizeComponentEncoding (component, esc) {\n  const func = esc !== true ? escape : unescape\n  if (component.scheme !== undefined) {\n    component.scheme = func(component.scheme)\n  }\n  if (component.userinfo !== undefined) {\n    component.userinfo = func(component.userinfo)\n  }\n  if (component.host !== undefined) {\n    component.host = func(component.host)\n  }\n  if (component.path !== undefined) {\n    component.path = func(component.path)\n  }\n  if (component.query !== undefined) {\n    component.query = func(component.query)\n  }\n  if (component.fragment !== undefined) {\n    component.fragment = func(component.fragment)\n  }\n  return component\n}\n\n/**\n * @param {import('../types/index').URIComponent} component\n * @returns {string|undefined}\n */\nfunction recomposeAuthority (component) {\n  const uriTokens = []\n\n  if (component.userinfo !== undefined) {\n    uriTokens.push(component.userinfo)\n    uriTokens.push('@')\n  }\n\n  if (component.host !== undefined) {\n    let host = unescape(component.host)\n    if (!isIPv4(host)) {\n      const ipV6res = normalizeIPv6(host)\n      if (ipV6res.isIPV6 === true) {\n        host = `[${ipV6res.escapedHost}]`\n      } else {\n        host = component.host\n      }\n    }\n    uriTokens.push(host)\n  }\n\n  if (typeof component.port === 'number' || typeof component.port === 'string') {\n    uriTokens.push(':')\n    uriTokens.push(String(component.port))\n  }\n\n  return uriTokens.length ? uriTokens.join('') : undefined\n};\n\nmodule.exports = {\n  nonSimpleDomain,\n  recomposeAuthority,\n  normalizeComponentEncoding,\n  removeDotSegments,\n  isIPv4,\n  isUUID,\n  normalizeIPv6,\n  stringArrayToHexStripped\n}\n","'use strict'\n\nconst { isUUID } = require('./utils')\nconst URN_REG = /([\\da-z][\\d\\-a-z]{0,31}):((?:[\\w!$'()*+,\\-.:;=@]|%[\\da-f]{2})+)/iu\n\nconst supportedSchemeNames = /** @type {const} */ (['http', 'https', 'ws',\n  'wss', 'urn', 'urn:uuid'])\n\n/** @typedef {supportedSchemeNames[number]} SchemeName */\n\n/**\n * @param {string} name\n * @returns {name is SchemeName}\n */\nfunction isValidSchemeName (name) {\n  return supportedSchemeNames.indexOf(/** @type {*} */ (name)) !== -1\n}\n\n/**\n * @callback SchemeFn\n * @param {import('../types/index').URIComponent} component\n * @param {import('../types/index').Options} options\n * @returns {import('../types/index').URIComponent}\n */\n\n/**\n * @typedef {Object} SchemeHandler\n * @property {SchemeName} scheme - The scheme name.\n * @property {boolean} [domainHost] - Indicates if the scheme supports domain hosts.\n * @property {SchemeFn} parse - Function to parse the URI component for this scheme.\n * @property {SchemeFn} serialize - Function to serialize the URI component for this scheme.\n * @property {boolean} [skipNormalize] - Indicates if normalization should be skipped for this scheme.\n * @property {boolean} [absolutePath] - Indicates if the scheme uses absolute paths.\n * @property {boolean} [unicodeSupport] - Indicates if the scheme supports Unicode.\n */\n\n/**\n * @param {import('../types/index').URIComponent} wsComponent\n * @returns {boolean}\n */\nfunction wsIsSecure (wsComponent) {\n  if (wsComponent.secure === true) {\n    return true\n  } else if (wsComponent.secure === false) {\n    return false\n  } else if (wsComponent.scheme) {\n    return (\n      wsComponent.scheme.length === 3 &&\n      (wsComponent.scheme[0] === 'w' || wsComponent.scheme[0] === 'W') &&\n      (wsComponent.scheme[1] === 's' || wsComponent.scheme[1] === 'S') &&\n      (wsComponent.scheme[2] === 's' || wsComponent.scheme[2] === 'S')\n    )\n  } else {\n    return false\n  }\n}\n\n/** @type {SchemeFn} */\nfunction httpParse (component) {\n  if (!component.host) {\n    component.error = component.error || 'HTTP URIs must have a host.'\n  }\n\n  return component\n}\n\n/** @type {SchemeFn} */\nfunction httpSerialize (component) {\n  const secure = String(component.scheme).toLowerCase() === 'https'\n\n  // normalize the default port\n  if (component.port === (secure ? 443 : 80) || component.port === '') {\n    component.port = undefined\n  }\n\n  // normalize the empty path\n  if (!component.path) {\n    component.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 component\n}\n\n/** @type {SchemeFn} */\nfunction wsParse (wsComponent) {\n// indicate if the secure flag is set\n  wsComponent.secure = wsIsSecure(wsComponent)\n\n  // construct resouce name\n  wsComponent.resourceName = (wsComponent.path || '/') + (wsComponent.query ? '?' + wsComponent.query : '')\n  wsComponent.path = undefined\n  wsComponent.query = undefined\n\n  return wsComponent\n}\n\n/** @type {SchemeFn} */\nfunction wsSerialize (wsComponent) {\n// normalize the default port\n  if (wsComponent.port === (wsIsSecure(wsComponent) ? 443 : 80) || wsComponent.port === '') {\n    wsComponent.port = undefined\n  }\n\n  // ensure scheme matches secure flag\n  if (typeof wsComponent.secure === 'boolean') {\n    wsComponent.scheme = (wsComponent.secure ? 'wss' : 'ws')\n    wsComponent.secure = undefined\n  }\n\n  // reconstruct path from resource name\n  if (wsComponent.resourceName) {\n    const [path, query] = wsComponent.resourceName.split('?')\n    wsComponent.path = (path && path !== '/' ? path : undefined)\n    wsComponent.query = query\n    wsComponent.resourceName = undefined\n  }\n\n  // forbid fragment component\n  wsComponent.fragment = undefined\n\n  return wsComponent\n}\n\n/** @type {SchemeFn} */\nfunction urnParse (urnComponent, options) {\n  if (!urnComponent.path) {\n    urnComponent.error = 'URN can not be parsed'\n    return urnComponent\n  }\n  const matches = urnComponent.path.match(URN_REG)\n  if (matches) {\n    const scheme = options.scheme || urnComponent.scheme || 'urn'\n    urnComponent.nid = matches[1].toLowerCase()\n    urnComponent.nss = matches[2]\n    const urnScheme = `${scheme}:${options.nid || urnComponent.nid}`\n    const schemeHandler = getSchemeHandler(urnScheme)\n    urnComponent.path = undefined\n\n    if (schemeHandler) {\n      urnComponent = schemeHandler.parse(urnComponent, options)\n    }\n  } else {\n    urnComponent.error = urnComponent.error || 'URN can not be parsed.'\n  }\n\n  return urnComponent\n}\n\n/** @type {SchemeFn} */\nfunction urnSerialize (urnComponent, options) {\n  if (urnComponent.nid === undefined) {\n    throw new Error('URN without nid cannot be serialized')\n  }\n  const scheme = options.scheme || urnComponent.scheme || 'urn'\n  const nid = urnComponent.nid.toLowerCase()\n  const urnScheme = `${scheme}:${options.nid || nid}`\n  const schemeHandler = getSchemeHandler(urnScheme)\n\n  if (schemeHandler) {\n    urnComponent = schemeHandler.serialize(urnComponent, options)\n  }\n\n  const uriComponent = urnComponent\n  const nss = urnComponent.nss\n  uriComponent.path = `${nid || options.nid}:${nss}`\n\n  options.skipEscape = true\n  return uriComponent\n}\n\n/** @type {SchemeFn} */\nfunction urnuuidParse (urnComponent, options) {\n  const uuidComponent = urnComponent\n  uuidComponent.uuid = uuidComponent.nss\n  uuidComponent.nss = undefined\n\n  if (!options.tolerant && (!uuidComponent.uuid || !isUUID(uuidComponent.uuid))) {\n    uuidComponent.error = uuidComponent.error || 'UUID is not valid.'\n  }\n\n  return uuidComponent\n}\n\n/** @type {SchemeFn} */\nfunction urnuuidSerialize (uuidComponent) {\n  const urnComponent = uuidComponent\n  // normalize UUID\n  urnComponent.nss = (uuidComponent.uuid || '').toLowerCase()\n  return urnComponent\n}\n\nconst http = /** @type {SchemeHandler} */ ({\n  scheme: 'http',\n  domainHost: true,\n  parse: httpParse,\n  serialize: httpSerialize\n})\n\nconst https = /** @type {SchemeHandler} */ ({\n  scheme: 'https',\n  domainHost: http.domainHost,\n  parse: httpParse,\n  serialize: httpSerialize\n})\n\nconst ws = /** @type {SchemeHandler} */ ({\n  scheme: 'ws',\n  domainHost: true,\n  parse: wsParse,\n  serialize: wsSerialize\n})\n\nconst wss = /** @type {SchemeHandler} */ ({\n  scheme: 'wss',\n  domainHost: ws.domainHost,\n  parse: ws.parse,\n  serialize: ws.serialize\n})\n\nconst urn = /** @type {SchemeHandler} */ ({\n  scheme: 'urn',\n  parse: urnParse,\n  serialize: urnSerialize,\n  skipNormalize: true\n})\n\nconst urnuuid = /** @type {SchemeHandler} */ ({\n  scheme: 'urn:uuid',\n  parse: urnuuidParse,\n  serialize: urnuuidSerialize,\n  skipNormalize: true\n})\n\nconst SCHEMES = /** @type {Record<SchemeName, SchemeHandler>} */ ({\n  http,\n  https,\n  ws,\n  wss,\n  urn,\n  'urn:uuid': urnuuid\n})\n\nObject.setPrototypeOf(SCHEMES, null)\n\n/**\n * @param {string|undefined} scheme\n * @returns {SchemeHandler|undefined}\n */\nfunction getSchemeHandler (scheme) {\n  return (\n    scheme && (\n      SCHEMES[/** @type {SchemeName} */ (scheme)] ||\n      SCHEMES[/** @type {SchemeName} */(scheme.toLowerCase())])\n  ) ||\n    undefined\n}\n\nmodule.exports = {\n  wsIsSecure,\n  SCHEMES,\n  isValidSchemeName,\n  getSchemeHandler,\n}\n","'use strict'\n\nconst { normalizeIPv6, removeDotSegments, recomposeAuthority, normalizeComponentEncoding, isIPv4, nonSimpleDomain } = require('./lib/utils')\nconst { SCHEMES, getSchemeHandler } = require('./lib/schemes')\n\n/**\n * @template {import('./types/index').URIComponent|string} T\n * @param {T} uri\n * @param {import('./types/index').Options} [options]\n * @returns {T}\n */\nfunction normalize (uri, options) {\n  if (typeof uri === 'string') {\n    uri = /** @type {T} */ (serialize(parse(uri, options), options))\n  } else if (typeof uri === 'object') {\n    uri = /** @type {T} */ (parse(serialize(uri, options), options))\n  }\n  return uri\n}\n\n/**\n * @param {string} baseURI\n * @param {string} relativeURI\n * @param {import('./types/index').Options} [options]\n * @returns {string}\n */\nfunction resolve (baseURI, relativeURI, options) {\n  const schemelessOptions = options ? Object.assign({ scheme: 'null' }, options) : { scheme: 'null' }\n  const resolved = resolveComponent(parse(baseURI, schemelessOptions), parse(relativeURI, schemelessOptions), schemelessOptions, true)\n  schemelessOptions.skipEscape = true\n  return serialize(resolved, schemelessOptions)\n}\n\n/**\n * @param {import ('./types/index').URIComponent} base\n * @param {import ('./types/index').URIComponent} relative\n * @param {import('./types/index').Options} [options]\n * @param {boolean} [skipNormalization=false]\n * @returns {import ('./types/index').URIComponent}\n */\nfunction resolveComponent (base, relative, options, skipNormalization) {\n  /** @type {import('./types/index').URIComponent} */\n  const target = {}\n  if (!skipNormalization) {\n    base = parse(serialize(base, options), options) // normalize base component\n    relative = parse(serialize(relative, options), options) // normalize relative component\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[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\n/**\n * @param {import ('./types/index').URIComponent|string} uriA\n * @param {import ('./types/index').URIComponent|string} uriB\n * @param {import ('./types/index').Options} options\n * @returns {boolean}\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\n/**\n * @param {Readonly<import('./types/index').URIComponent>} cmpts\n * @param {import('./types/index').Options} [opts]\n * @returns {string}\n */\nfunction serialize (cmpts, opts) {\n  const component = {\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 = getSchemeHandler(options.scheme || component.scheme)\n\n  // perform scheme specific serialization\n  if (schemeHandler && schemeHandler.serialize) schemeHandler.serialize(component, options)\n\n  if (component.path !== undefined) {\n    if (!options.skipEscape) {\n      component.path = escape(component.path)\n\n      if (component.scheme !== undefined) {\n        component.path = component.path.split('%3A').join(':')\n      }\n    } else {\n      component.path = unescape(component.path)\n    }\n  }\n\n  if (options.reference !== 'suffix' && component.scheme) {\n    uriTokens.push(component.scheme, ':')\n  }\n\n  const authority = recomposeAuthority(component)\n  if (authority !== undefined) {\n    if (options.reference !== 'suffix') {\n      uriTokens.push('//')\n    }\n\n    uriTokens.push(authority)\n\n    if (component.path && component.path[0] !== '/') {\n      uriTokens.push('/')\n    }\n  }\n  if (component.path !== undefined) {\n    let s = component.path\n\n    if (!options.absolutePath && (!schemeHandler || !schemeHandler.absolutePath)) {\n      s = removeDotSegments(s)\n    }\n\n    if (\n      authority === undefined &&\n      s[0] === '/' &&\n      s[1] === '/'\n    ) {\n      // don't allow the path to start with \"//\"\n      s = '/%2F' + s.slice(2)\n    }\n\n    uriTokens.push(s)\n  }\n\n  if (component.query !== undefined) {\n    uriTokens.push('?', component.query)\n  }\n\n  if (component.fragment !== undefined) {\n    uriTokens.push('#', component.fragment)\n  }\n  return uriTokens.join('')\n}\n\nconst URI_PARSE = /^(?:([^#/:?]+):)?(?:\\/\\/((?:([^#/?@]*)@)?(\\[[^#/?\\]]+\\]|[^#/:?]*)(?::(\\d*))?))?([^#?]*)(?:\\?([^#]*))?(?:#((?:.|[\\n\\r])*))?/u\n\n/**\n * @param {string} uri\n * @param {import('./types/index').Options} [opts]\n * @returns\n */\nfunction parse (uri, opts) {\n  const options = Object.assign({}, opts)\n  /** @type {import('./types/index').URIComponent} */\n  const parsed = {\n    scheme: undefined,\n    userinfo: undefined,\n    host: '',\n    port: undefined,\n    path: '',\n    query: undefined,\n    fragment: undefined\n  }\n\n  let isIP = false\n  if (options.reference === 'suffix') {\n    if (options.scheme) {\n      uri = options.scheme + ':' + uri\n    } else {\n      uri = '//' + uri\n    }\n  }\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 = isIPv4(parsed.host)\n      if (ipv4result === false) {\n        const ipv6result = normalizeIPv6(parsed.host)\n        parsed.host = ipv6result.host.toLowerCase()\n        isIP = ipv6result.isIPV6\n      } else {\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 = getSchemeHandler(options.scheme || parsed.scheme)\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 (uri.indexOf('%') !== -1) {\n        if (parsed.scheme !== undefined) {\n          parsed.scheme = unescape(parsed.scheme)\n        }\n        if (parsed.host !== undefined) {\n          parsed.host = unescape(parsed.host)\n        }\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  resolveComponent,\n  equal,\n  serialize,\n  parse\n}\n\nmodule.exports = fastUri\nmodule.exports.default = fastUri\nmodule.exports.fastUri = fastUri\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst uri = require(\"fast-uri\");\nuri.code = 'require(\"ajv/dist/runtime/uri\").default';\nexports.default = uri;\n//# sourceMappingURL=uri.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CodeGen = exports.Name = exports.nil = exports.stringify = exports.str = exports._ = exports.KeywordCxt = void 0;\nvar validate_1 = require(\"./compile/validate\");\nObject.defineProperty(exports, \"KeywordCxt\", { enumerable: true, get: function () { return validate_1.KeywordCxt; } });\nvar codegen_1 = require(\"./compile/codegen\");\nObject.defineProperty(exports, \"_\", { enumerable: true, get: function () { return codegen_1._; } });\nObject.defineProperty(exports, \"str\", { enumerable: true, get: function () { return codegen_1.str; } });\nObject.defineProperty(exports, \"stringify\", { enumerable: true, get: function () { return codegen_1.stringify; } });\nObject.defineProperty(exports, \"nil\", { enumerable: true, get: function () { return codegen_1.nil; } });\nObject.defineProperty(exports, \"Name\", { enumerable: true, get: function () { return codegen_1.Name; } });\nObject.defineProperty(exports, \"CodeGen\", { enumerable: true, get: function () { return codegen_1.CodeGen; } });\nconst validation_error_1 = require(\"./runtime/validation_error\");\nconst ref_error_1 = require(\"./compile/ref_error\");\nconst rules_1 = require(\"./compile/rules\");\nconst compile_1 = require(\"./compile\");\nconst codegen_2 = require(\"./compile/codegen\");\nconst resolve_1 = require(\"./compile/resolve\");\nconst dataType_1 = require(\"./compile/validate/dataType\");\nconst util_1 = require(\"./compile/util\");\nconst $dataRefSchema = require(\"./refs/data.json\");\nconst uri_1 = require(\"./runtime/uri\");\nconst defaultRegExp = (str, flags) => new RegExp(str, flags);\ndefaultRegExp.code = \"new RegExp\";\nconst META_IGNORE_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]);\nconst 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};\nconst deprecatedOptions = {\n    ignoreKeywordsWithRef: \"\",\n    jsPropertySyntax: \"\",\n    unicode: '\"minLength\"/\"maxLength\" account for unicode characters by default.',\n};\nconst MAX_EXPRESSION = 200;\n// eslint-disable-next-line complexity\nfunction requiredOptions(o) {\n    var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _0;\n    const s = o.strict;\n    const _optz = (_a = o.code) === null || _a === void 0 ? void 0 : _a.optimize;\n    const optimize = _optz === true || _optz === undefined ? 1 : _optz || 0;\n    const regExp = (_c = (_b = o.code) === null || _b === void 0 ? void 0 : _b.regExp) !== null && _c !== void 0 ? _c : defaultRegExp;\n    const uriResolver = (_d = o.uriResolver) !== null && _d !== void 0 ? _d : uri_1.default;\n    return {\n        strictSchema: (_f = (_e = o.strictSchema) !== null && _e !== void 0 ? _e : s) !== null && _f !== void 0 ? _f : true,\n        strictNumbers: (_h = (_g = o.strictNumbers) !== null && _g !== void 0 ? _g : s) !== null && _h !== void 0 ? _h : true,\n        strictTypes: (_k = (_j = o.strictTypes) !== null && _j !== void 0 ? _j : s) !== null && _k !== void 0 ? _k : \"log\",\n        strictTuples: (_m = (_l = o.strictTuples) !== null && _l !== void 0 ? _l : s) !== null && _m !== void 0 ? _m : \"log\",\n        strictRequired: (_p = (_o = o.strictRequired) !== null && _o !== void 0 ? _o : s) !== null && _p !== void 0 ? _p : false,\n        code: o.code ? { ...o.code, optimize, regExp } : { optimize, regExp },\n        loopRequired: (_q = o.loopRequired) !== null && _q !== void 0 ? _q : MAX_EXPRESSION,\n        loopEnum: (_r = o.loopEnum) !== null && _r !== void 0 ? _r : MAX_EXPRESSION,\n        meta: (_s = o.meta) !== null && _s !== void 0 ? _s : true,\n        messages: (_t = o.messages) !== null && _t !== void 0 ? _t : true,\n        inlineRefs: (_u = o.inlineRefs) !== null && _u !== void 0 ? _u : true,\n        schemaId: (_v = o.schemaId) !== null && _v !== void 0 ? _v : \"$id\",\n        addUsedSchema: (_w = o.addUsedSchema) !== null && _w !== void 0 ? _w : true,\n        validateSchema: (_x = o.validateSchema) !== null && _x !== void 0 ? _x : true,\n        validateFormats: (_y = o.validateFormats) !== null && _y !== void 0 ? _y : true,\n        unicodeRegExp: (_z = o.unicodeRegExp) !== null && _z !== void 0 ? _z : true,\n        int32range: (_0 = o.int32range) !== null && _0 !== void 0 ? _0 : true,\n        uriResolver: uriResolver,\n    };\n}\nclass Ajv {\n    constructor(opts = {}) {\n        this.schemas = {};\n        this.refs = {};\n        this.formats = {};\n        this._compilations = new Set();\n        this._loading = {};\n        this._cache = new Map();\n        opts = this.opts = { ...opts, ...requiredOptions(opts) };\n        const { es5, lines } = this.opts.code;\n        this.scope = new codegen_2.ValueScope({ scope: {}, prefixes: EXT_SCOPE_NAMES, es5, lines });\n        this.logger = getLogger(opts.logger);\n        const formatOpt = opts.validateFormats;\n        opts.validateFormats = false;\n        this.RULES = (0, rules_1.getRules)();\n        checkOptions.call(this, removedOptions, opts, \"NOT SUPPORTED\");\n        checkOptions.call(this, deprecatedOptions, opts, \"DEPRECATED\", \"warn\");\n        this._metaOpts = getMetaSchemaOptions.call(this);\n        if (opts.formats)\n            addInitialFormats.call(this);\n        this._addVocabularies();\n        this._addDefaultMetaSchema();\n        if (opts.keywords)\n            addInitialKeywords.call(this, opts.keywords);\n        if (typeof opts.meta == \"object\")\n            this.addMetaSchema(opts.meta);\n        addInitialSchemas.call(this);\n        opts.validateFormats = formatOpt;\n    }\n    _addVocabularies() {\n        this.addKeyword(\"$async\");\n    }\n    _addDefaultMetaSchema() {\n        const { $data, meta, schemaId } = this.opts;\n        let _dataRefSchema = $dataRefSchema;\n        if (schemaId === \"id\") {\n            _dataRefSchema = { ...$dataRefSchema };\n            _dataRefSchema.id = _dataRefSchema.$id;\n            delete _dataRefSchema.$id;\n        }\n        if (meta && $data)\n            this.addMetaSchema(_dataRefSchema, _dataRefSchema[schemaId], false);\n    }\n    defaultMeta() {\n        const { meta, schemaId } = this.opts;\n        return (this.opts.defaultMeta = typeof meta == \"object\" ? meta[schemaId] || meta : undefined);\n    }\n    validate(schemaKeyRef, // key, ref or schema object\n    // eslint-disable-next-line @typescript-eslint/no-redundant-type-constituents\n    data // to be validated\n    ) {\n        let v;\n        if (typeof schemaKeyRef == \"string\") {\n            v = this.getSchema(schemaKeyRef);\n            if (!v)\n                throw new Error(`no schema with key or ref \"${schemaKeyRef}\"`);\n        }\n        else {\n            v = this.compile(schemaKeyRef);\n        }\n        const valid = v(data);\n        if (!(\"$async\" in v))\n            this.errors = v.errors;\n        return valid;\n    }\n    compile(schema, _meta) {\n        const sch = this._addSchema(schema, _meta);\n        return (sch.validate || this._compileSchemaEnv(sch));\n    }\n    compileAsync(schema, meta) {\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        async function runCompileAsync(_schema, _meta) {\n            await loadMetaSchema.call(this, _schema.$schema);\n            const sch = this._addSchema(_schema, _meta);\n            return sch.validate || _compileAsync.call(this, sch);\n        }\n        async function loadMetaSchema($ref) {\n            if ($ref && !this.getSchema($ref)) {\n                await runCompileAsync.call(this, { $ref }, true);\n            }\n        }\n        async function _compileAsync(sch) {\n            try {\n                return this._compileSchemaEnv(sch);\n            }\n            catch (e) {\n                if (!(e instanceof ref_error_1.default))\n                    throw e;\n                checkLoaded.call(this, e);\n                await loadMissingSchema.call(this, e.missingSchema);\n                return _compileAsync.call(this, sch);\n            }\n        }\n        function checkLoaded({ missingSchema: ref, missingRef }) {\n            if (this.refs[ref]) {\n                throw new Error(`AnySchema ${ref} is loaded but ${missingRef} cannot be resolved`);\n            }\n        }\n        async function loadMissingSchema(ref) {\n            const _schema = await _loadSchema.call(this, ref);\n            if (!this.refs[ref])\n                await loadMetaSchema.call(this, _schema.$schema);\n            if (!this.refs[ref])\n                this.addSchema(_schema, ref, meta);\n        }\n        async function _loadSchema(ref) {\n            const p = this._loading[ref];\n            if (p)\n                return p;\n            try {\n                return await (this._loading[ref] = loadSchema(ref));\n            }\n            finally {\n                delete this._loading[ref];\n            }\n        }\n    }\n    // Adds schema to the instance\n    addSchema(schema, // If array is passed, `key` will be ignored\n    key, // 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, // 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    ) {\n        if (Array.isArray(schema)) {\n            for (const sch of schema)\n                this.addSchema(sch, undefined, _meta, _validateSchema);\n            return this;\n        }\n        let id;\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 = (0, resolve_1.normalizeId)(key || id);\n        this._checkUnique(key);\n        this.schemas[key] = this._addSchema(schema, _meta, key, _validateSchema, true);\n        return this;\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(schema, key, // schema key\n    _validateSchema = this.opts.validateSchema // false to skip schema validation, can be used to override validateSchema option for meta-schema\n    ) {\n        this.addSchema(schema, key, true, _validateSchema);\n        return this;\n    }\n    //  Validate schema against its meta-schema\n    validateSchema(schema, throwOrLogError) {\n        if (typeof schema == \"boolean\")\n            return true;\n        let $schema;\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\")\n                this.logger.error(message);\n            else\n                throw new Error(message);\n        }\n        return valid;\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(keyRef) {\n        let sch;\n        while (typeof (sch = getSchEnv.call(this, keyRef)) == \"string\")\n            keyRef = sch;\n        if (sch === undefined) {\n            const { schemaId } = this.opts;\n            const root = new compile_1.SchemaEnv({ schema: {}, schemaId });\n            sch = compile_1.resolveSchema.call(this, root, keyRef);\n            if (!sch)\n                return;\n            this.refs[keyRef] = sch;\n        }\n        return (sch.validate || this._compileSchemaEnv(sch));\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) {\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\")\n                    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 = (0, resolve_1.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    // add \"vocabulary\" - a collection of keywords\n    addVocabulary(definitions) {\n        for (const def of definitions)\n            this.addKeyword(def);\n        return this;\n    }\n    addKeyword(kwdOrDef, def // deprecated\n    ) {\n        let keyword;\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        }\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        }\n        else {\n            throw new Error(\"invalid addKeywords parameters\");\n        }\n        checkKeyword.call(this, keyword, def);\n        if (!def) {\n            (0, util_1.eachItem)(keyword, (kwd) => addRule.call(this, kwd));\n            return this;\n        }\n        keywordMetaschema.call(this, def);\n        const definition = {\n            ...def,\n            type: (0, dataType_1.getJSONTypes)(def.type),\n            schemaType: (0, dataType_1.getJSONTypes)(def.schemaType),\n        };\n        (0, util_1.eachItem)(keyword, definition.type.length === 0\n            ? (k) => addRule.call(this, k, definition)\n            : (k) => definition.type.forEach((t) => addRule.call(this, k, definition, t)));\n        return this;\n    }\n    getKeyword(keyword) {\n        const rule = this.RULES.all[keyword];\n        return typeof rule == \"object\" ? rule.definition : !!rule;\n    }\n    // Remove keyword\n    removeKeyword(keyword) {\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)\n                group.rules.splice(i, 1);\n        }\n        return this;\n    }\n    // Add format\n    addFormat(name, format) {\n        if (typeof format == \"string\")\n            format = new RegExp(format);\n        this.formats[name] = format;\n        return this;\n    }\n    errorsText(errors = this.errors, // optional array of validation errors\n    { separator = \", \", dataVar = \"data\" } = {} // optional options with properties `separator` and `dataVar`\n    ) {\n        if (!errors || errors.length === 0)\n            return \"No errors\";\n        return errors\n            .map((e) => `${dataVar}${e.instancePath} ${e.message}`)\n            .reduce((text, msg) => text + separator + msg);\n    }\n    $dataMetaSchema(metaSchema, keywordsJsonPointers) {\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)\n                keywords = keywords[seg];\n            for (const key in rules) {\n                const rule = rules[key];\n                if (typeof rule != \"object\")\n                    continue;\n                const { $data } = rule.definition;\n                const schema = keywords[key];\n                if ($data && schema)\n                    keywords[key] = schemaOrData(schema);\n            }\n        }\n        return metaSchema;\n    }\n    _removeAllSchemas(schemas, regex) {\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                }\n                else if (sch && !sch.meta) {\n                    this._cache.delete(sch.schema);\n                    delete schemas[keyRef];\n                }\n            }\n        }\n    }\n    _addSchema(schema, meta, baseId, validateSchema = this.opts.validateSchema, addSchema = this.opts.addUsedSchema) {\n        let id;\n        const { schemaId } = this.opts;\n        if (typeof schema == \"object\") {\n            id = schema[schemaId];\n        }\n        else {\n            if (this.opts.jtd)\n                throw new Error(\"schema must be object\");\n            else if (typeof schema != \"boolean\")\n                throw new Error(\"schema must be object or boolean\");\n        }\n        let sch = this._cache.get(schema);\n        if (sch !== undefined)\n            return sch;\n        baseId = (0, resolve_1.normalizeId)(id || baseId);\n        const localRefs = resolve_1.getSchemaRefs.call(this, schema, baseId);\n        sch = new compile_1.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)\n                this._checkUnique(baseId);\n            this.refs[baseId] = sch;\n        }\n        if (validateSchema)\n            this.validateSchema(schema, true);\n        return sch;\n    }\n    _checkUnique(id) {\n        if (this.schemas[id] || this.refs[id]) {\n            throw new Error(`schema with key or id \"${id}\" already exists`);\n        }\n    }\n    _compileSchemaEnv(sch) {\n        if (sch.meta)\n            this._compileMetaSchema(sch);\n        else\n            compile_1.compileSchema.call(this, sch);\n        /* istanbul ignore if */\n        if (!sch.validate)\n            throw new Error(\"ajv implementation error\");\n        return sch.validate;\n    }\n    _compileMetaSchema(sch) {\n        const currentOpts = this.opts;\n        this.opts = this._metaOpts;\n        try {\n            compile_1.compileSchema.call(this, sch);\n        }\n        finally {\n            this.opts = currentOpts;\n        }\n    }\n}\nAjv.ValidationError = validation_error_1.default;\nAjv.MissingRefError = ref_error_1.default;\nexports.default = Ajv;\nfunction checkOptions(checkOpts, options, msg, log = \"error\") {\n    for (const key in checkOpts) {\n        const opt = key;\n        if (opt in options)\n            this.logger[log](`${msg}: option ${key}. ${checkOpts[opt]}`);\n    }\n}\nfunction getSchEnv(keyRef) {\n    keyRef = (0, resolve_1.normalizeId)(keyRef); // TODO tests fail without this line\n    return this.schemas[keyRef] || this.refs[keyRef];\n}\nfunction addInitialSchemas() {\n    const optsSchemas = this.opts.schemas;\n    if (!optsSchemas)\n        return;\n    if (Array.isArray(optsSchemas))\n        this.addSchema(optsSchemas);\n    else\n        for (const key in optsSchemas)\n            this.addSchema(optsSchemas[key], key);\n}\nfunction addInitialFormats() {\n    for (const name in this.opts.formats) {\n        const format = this.opts.formats[name];\n        if (format)\n            this.addFormat(name, format);\n    }\n}\nfunction addInitialKeywords(defs) {\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];\n        if (!def.keyword)\n            def.keyword = keyword;\n        this.addKeyword(def);\n    }\n}\nfunction getMetaSchemaOptions() {\n    const metaOpts = { ...this.opts };\n    for (const opt of META_IGNORE_OPTIONS)\n        delete metaOpts[opt];\n    return metaOpts;\n}\nconst noLogs = { log() { }, warn() { }, error() { } };\nfunction getLogger(logger) {\n    if (logger === false)\n        return noLogs;\n    if (logger === undefined)\n        return console;\n    if (logger.log && logger.warn && logger.error)\n        return logger;\n    throw new Error(\"logger must implement log, warn and error methods\");\n}\nconst KEYWORD_NAME = /^[a-z_$][a-z0-9_$:-]*$/i;\nfunction checkKeyword(keyword, def) {\n    const { RULES } = this;\n    (0, util_1.eachItem)(keyword, (kwd) => {\n        if (RULES.keywords[kwd])\n            throw new Error(`Keyword ${kwd} is already defined`);\n        if (!KEYWORD_NAME.test(kwd))\n            throw new Error(`Keyword ${kwd} has invalid name`);\n    });\n    if (!def)\n        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}\nfunction addRule(keyword, definition, dataType) {\n    var _a;\n    const post = definition === null || definition === void 0 ? void 0 : definition.post;\n    if (dataType && post)\n        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)\n        return;\n    const rule = {\n        keyword,\n        definition: {\n            ...definition,\n            type: (0, dataType_1.getJSONTypes)(definition.type),\n            schemaType: (0, dataType_1.getJSONTypes)(definition.schemaType),\n        },\n    };\n    if (definition.before)\n        addBeforeRule.call(this, ruleGroup, rule, definition.before);\n    else\n        ruleGroup.rules.push(rule);\n    RULES.all[keyword] = rule;\n    (_a = definition.implements) === null || _a === void 0 ? void 0 : _a.forEach((kwd) => this.addKeyword(kwd));\n}\nfunction addBeforeRule(ruleGroup, rule, before) {\n    const i = ruleGroup.rules.findIndex((_rule) => _rule.keyword === before);\n    if (i >= 0) {\n        ruleGroup.rules.splice(i, 0, rule);\n    }\n    else {\n        ruleGroup.rules.push(rule);\n        this.logger.warn(`rule ${before} is not defined`);\n    }\n}\nfunction keywordMetaschema(def) {\n    let { metaSchema } = def;\n    if (metaSchema === undefined)\n        return;\n    if (def.$data && this.opts.$data)\n        metaSchema = schemaOrData(metaSchema);\n    def.validateSchema = this.compile(metaSchema, true);\n}\nconst $dataRef = {\n    $ref: \"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#\",\n};\nfunction schemaOrData(schema) {\n    return { anyOf: [schema, $dataRef] };\n}\n//# sourceMappingURL=core.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst def = {\n    keyword: \"id\",\n    code() {\n        throw new Error('NOT SUPPORTED: keyword \"id\", use \"$id\" for schema ID');\n    },\n};\nexports.default = def;\n//# sourceMappingURL=id.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.callRef = exports.getValidate = void 0;\nconst ref_error_1 = require(\"../../compile/ref_error\");\nconst code_1 = require(\"../code\");\nconst codegen_1 = require(\"../../compile/codegen\");\nconst names_1 = require(\"../../compile/names\");\nconst compile_1 = require(\"../../compile\");\nconst util_1 = require(\"../../compile/util\");\nconst def = {\n    keyword: \"$ref\",\n    schemaType: \"string\",\n    code(cxt) {\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)\n            return callRootRef();\n        const schOrEnv = compile_1.resolveRef.call(self, root, baseId, $ref);\n        if (schOrEnv === undefined)\n            throw new ref_error_1.default(it.opts.uriResolver, baseId, $ref);\n        if (schOrEnv instanceof compile_1.SchemaEnv)\n            return callValidate(schOrEnv);\n        return inlineRefSchema(schOrEnv);\n        function callRootRef() {\n            if (env === root)\n                return callRef(cxt, validateName, env, env.$async);\n            const rootName = gen.scopeValue(\"root\", { ref: root });\n            return callRef(cxt, (0, codegen_1._) `${rootName}.validate`, root, root.$async);\n        }\n        function callValidate(sch) {\n            const v = getValidate(cxt, sch);\n            callRef(cxt, v, sch, sch.$async);\n        }\n        function inlineRefSchema(sch) {\n            const schName = gen.scopeValue(\"schema\", opts.code.source === true ? { ref: sch, code: (0, codegen_1.stringify)(sch) } : { ref: sch });\n            const valid = gen.name(\"valid\");\n            const schCxt = cxt.subschema({\n                schema: sch,\n                dataTypes: [],\n                schemaPath: codegen_1.nil,\n                topSchemaRef: schName,\n                errSchemaPath: $ref,\n            }, valid);\n            cxt.mergeEvaluated(schCxt);\n            cxt.ok(valid);\n        }\n    },\n};\nfunction getValidate(cxt, sch) {\n    const { gen } = cxt;\n    return sch.validate\n        ? gen.scopeValue(\"validate\", { ref: sch.validate })\n        : (0, codegen_1._) `${gen.scopeValue(\"wrapper\", { ref: sch })}.validate`;\n}\nexports.getValidate = getValidate;\nfunction callRef(cxt, v, sch, $async) {\n    const { gen, it } = cxt;\n    const { allErrors, schemaEnv: env, opts } = it;\n    const passCxt = opts.passContext ? names_1.default.this : codegen_1.nil;\n    if ($async)\n        callAsyncRef();\n    else\n        callSyncRef();\n    function callAsyncRef() {\n        if (!env.$async)\n            throw new Error(\"async schema referenced by sync schema\");\n        const valid = gen.let(\"valid\");\n        gen.try(() => {\n            gen.code((0, codegen_1._) `await ${(0, code_1.callValidateCode)(cxt, v, passCxt)}`);\n            addEvaluatedFrom(v); // TODO will not work with async, it has to be returned with the result\n            if (!allErrors)\n                gen.assign(valid, true);\n        }, (e) => {\n            gen.if((0, codegen_1._) `!(${e} instanceof ${it.ValidationError})`, () => gen.throw(e));\n            addErrorsFrom(e);\n            if (!allErrors)\n                gen.assign(valid, false);\n        });\n        cxt.ok(valid);\n    }\n    function callSyncRef() {\n        cxt.result((0, code_1.callValidateCode)(cxt, v, passCxt), () => addEvaluatedFrom(v), () => addErrorsFrom(v));\n    }\n    function addErrorsFrom(source) {\n        const errs = (0, codegen_1._) `${source}.errors`;\n        gen.assign(names_1.default.vErrors, (0, codegen_1._) `${names_1.default.vErrors} === null ? ${errs} : ${names_1.default.vErrors}.concat(${errs})`); // TODO tagged\n        gen.assign(names_1.default.errors, (0, codegen_1._) `${names_1.default.vErrors}.length`);\n    }\n    function addEvaluatedFrom(source) {\n        var _a;\n        if (!it.opts.unevaluated)\n            return;\n        const schEvaluated = (_a = sch === null || sch === void 0 ? void 0 : sch.validate) === null || _a === void 0 ? void 0 : _a.evaluated;\n        // TODO refactor\n        if (it.props !== true) {\n            if (schEvaluated && !schEvaluated.dynamicProps) {\n                if (schEvaluated.props !== undefined) {\n                    it.props = util_1.mergeEvaluated.props(gen, schEvaluated.props, it.props);\n                }\n            }\n            else {\n                const props = gen.var(\"props\", (0, codegen_1._) `${source}.evaluated.props`);\n                it.props = util_1.mergeEvaluated.props(gen, props, it.props, codegen_1.Name);\n            }\n        }\n        if (it.items !== true) {\n            if (schEvaluated && !schEvaluated.dynamicItems) {\n                if (schEvaluated.items !== undefined) {\n                    it.items = util_1.mergeEvaluated.items(gen, schEvaluated.items, it.items);\n                }\n            }\n            else {\n                const items = gen.var(\"items\", (0, codegen_1._) `${source}.evaluated.items`);\n                it.items = util_1.mergeEvaluated.items(gen, items, it.items, codegen_1.Name);\n            }\n        }\n    }\n}\nexports.callRef = callRef;\nexports.default = def;\n//# sourceMappingURL=ref.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst id_1 = require(\"./id\");\nconst ref_1 = require(\"./ref\");\nconst core = [\n    \"$schema\",\n    \"$id\",\n    \"$defs\",\n    \"$vocabulary\",\n    { keyword: \"$comment\" },\n    \"definitions\",\n    id_1.default,\n    ref_1.default,\n];\nexports.default = core;\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst ops = codegen_1.operators;\nconst KWDs = {\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};\nconst error = {\n    message: ({ keyword, schemaCode }) => (0, codegen_1.str) `must be ${KWDs[keyword].okStr} ${schemaCode}`,\n    params: ({ keyword, schemaCode }) => (0, codegen_1._) `{comparison: ${KWDs[keyword].okStr}, limit: ${schemaCode}}`,\n};\nconst def = {\n    keyword: Object.keys(KWDs),\n    type: \"number\",\n    schemaType: \"number\",\n    $data: true,\n    error,\n    code(cxt) {\n        const { keyword, data, schemaCode } = cxt;\n        cxt.fail$data((0, codegen_1._) `${data} ${KWDs[keyword].fail} ${schemaCode} || isNaN(${data})`);\n    },\n};\nexports.default = def;\n//# sourceMappingURL=limitNumber.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst error = {\n    message: ({ schemaCode }) => (0, codegen_1.str) `must be multiple of ${schemaCode}`,\n    params: ({ schemaCode }) => (0, codegen_1._) `{multipleOf: ${schemaCode}}`,\n};\nconst def = {\n    keyword: \"multipleOf\",\n    type: \"number\",\n    schemaType: \"number\",\n    $data: true,\n    error,\n    code(cxt) {\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            ? (0, codegen_1._) `Math.abs(Math.round(${res}) - ${res}) > 1e-${prec}`\n            : (0, codegen_1._) `${res} !== parseInt(${res})`;\n        cxt.fail$data((0, codegen_1._) `(${schemaCode} === 0 || (${res} = ${data}/${schemaCode}, ${invalid}))`);\n    },\n};\nexports.default = def;\n//# sourceMappingURL=multipleOf.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n// https://mathiasbynens.be/notes/javascript-encoding\n// https://github.com/bestiejs/punycode.js - punycode.ucs2.decode\nfunction ucs2length(str) {\n    const len = str.length;\n    let length = 0;\n    let pos = 0;\n    let value;\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)\n                pos++; // low surrogate\n        }\n    }\n    return length;\n}\nexports.default = ucs2length;\nucs2length.code = 'require(\"ajv/dist/runtime/ucs2length\").default';\n//# sourceMappingURL=ucs2length.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst util_1 = require(\"../../compile/util\");\nconst ucs2length_1 = require(\"../../runtime/ucs2length\");\nconst error = {\n    message({ keyword, schemaCode }) {\n        const comp = keyword === \"maxLength\" ? \"more\" : \"fewer\";\n        return (0, codegen_1.str) `must NOT have ${comp} than ${schemaCode} characters`;\n    },\n    params: ({ schemaCode }) => (0, codegen_1._) `{limit: ${schemaCode}}`,\n};\nconst def = {\n    keyword: [\"maxLength\", \"minLength\"],\n    type: \"string\",\n    schemaType: \"number\",\n    $data: true,\n    error,\n    code(cxt) {\n        const { keyword, data, schemaCode, it } = cxt;\n        const op = keyword === \"maxLength\" ? codegen_1.operators.GT : codegen_1.operators.LT;\n        const len = it.opts.unicode === false ? (0, codegen_1._) `${data}.length` : (0, codegen_1._) `${(0, util_1.useFunc)(cxt.gen, ucs2length_1.default)}(${data})`;\n        cxt.fail$data((0, codegen_1._) `${len} ${op} ${schemaCode}`);\n    },\n};\nexports.default = def;\n//# sourceMappingURL=limitLength.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst code_1 = require(\"../code\");\nconst util_1 = require(\"../../compile/util\");\nconst codegen_1 = require(\"../../compile/codegen\");\nconst error = {\n    message: ({ schemaCode }) => (0, codegen_1.str) `must match pattern \"${schemaCode}\"`,\n    params: ({ schemaCode }) => (0, codegen_1._) `{pattern: ${schemaCode}}`,\n};\nconst def = {\n    keyword: \"pattern\",\n    type: \"string\",\n    schemaType: \"string\",\n    $data: true,\n    error,\n    code(cxt) {\n        const { gen, data, $data, schema, schemaCode, it } = cxt;\n        const u = it.opts.unicodeRegExp ? \"u\" : \"\";\n        if ($data) {\n            const { regExp } = it.opts.code;\n            const regExpCode = regExp.code === \"new RegExp\" ? (0, codegen_1._) `new RegExp` : (0, util_1.useFunc)(gen, regExp);\n            const valid = gen.let(\"valid\");\n            gen.try(() => gen.assign(valid, (0, codegen_1._) `${regExpCode}(${schemaCode}, ${u}).test(${data})`), () => gen.assign(valid, false));\n            cxt.fail$data((0, codegen_1._) `!${valid}`);\n        }\n        else {\n            const regExp = (0, code_1.usePattern)(cxt, schema);\n            cxt.fail$data((0, codegen_1._) `!${regExp}.test(${data})`);\n        }\n    },\n};\nexports.default = def;\n//# sourceMappingURL=pattern.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst error = {\n    message({ keyword, schemaCode }) {\n        const comp = keyword === \"maxProperties\" ? \"more\" : \"fewer\";\n        return (0, codegen_1.str) `must NOT have ${comp} than ${schemaCode} properties`;\n    },\n    params: ({ schemaCode }) => (0, codegen_1._) `{limit: ${schemaCode}}`,\n};\nconst def = {\n    keyword: [\"maxProperties\", \"minProperties\"],\n    type: \"object\",\n    schemaType: \"number\",\n    $data: true,\n    error,\n    code(cxt) {\n        const { keyword, data, schemaCode } = cxt;\n        const op = keyword === \"maxProperties\" ? codegen_1.operators.GT : codegen_1.operators.LT;\n        cxt.fail$data((0, codegen_1._) `Object.keys(${data}).length ${op} ${schemaCode}`);\n    },\n};\nexports.default = def;\n//# sourceMappingURL=limitProperties.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst code_1 = require(\"../code\");\nconst codegen_1 = require(\"../../compile/codegen\");\nconst util_1 = require(\"../../compile/util\");\nconst error = {\n    message: ({ params: { missingProperty } }) => (0, codegen_1.str) `must have required property '${missingProperty}'`,\n    params: ({ params: { missingProperty } }) => (0, codegen_1._) `{missingProperty: ${missingProperty}}`,\n};\nconst def = {\n    keyword: \"required\",\n    type: \"object\",\n    schemaType: \"array\",\n    $data: true,\n    error,\n    code(cxt) {\n        const { gen, schema, schemaCode, data, $data, it } = cxt;\n        const { opts } = it;\n        if (!$data && schema.length === 0)\n            return;\n        const useLoop = schema.length >= opts.loopRequired;\n        if (it.allErrors)\n            allErrorsMode();\n        else\n            exitOnErrorMode();\n        if (opts.strictRequired) {\n            const props = cxt.parentSchema.properties;\n            const { definedProperties } = cxt.it;\n            for (const requiredKey of schema) {\n                if ((props === null || props === void 0 ? void 0 : 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                    (0, util_1.checkStrictMode)(it, msg, it.opts.strictRequired);\n                }\n            }\n        }\n        function allErrorsMode() {\n            if (useLoop || $data) {\n                cxt.block$data(codegen_1.nil, loopAllRequired);\n            }\n            else {\n                for (const prop of schema) {\n                    (0, code_1.checkReportMissingProp)(cxt, prop);\n                }\n            }\n        }\n        function exitOnErrorMode() {\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            }\n            else {\n                gen.if((0, code_1.checkMissingProp)(cxt, schema, missing));\n                (0, code_1.reportMissingProp)(cxt, missing);\n                gen.else();\n            }\n        }\n        function loopAllRequired() {\n            gen.forOf(\"prop\", schemaCode, (prop) => {\n                cxt.setParams({ missingProperty: prop });\n                gen.if((0, code_1.noPropertyInData)(gen, data, prop, opts.ownProperties), () => cxt.error());\n            });\n        }\n        function loopUntilMissing(missing, valid) {\n            cxt.setParams({ missingProperty: missing });\n            gen.forOf(missing, schemaCode, () => {\n                gen.assign(valid, (0, code_1.propertyInData)(gen, data, missing, opts.ownProperties));\n                gen.if((0, codegen_1.not)(valid), () => {\n                    cxt.error();\n                    gen.break();\n                });\n            }, codegen_1.nil);\n        }\n    },\n};\nexports.default = def;\n//# sourceMappingURL=required.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst error = {\n    message({ keyword, schemaCode }) {\n        const comp = keyword === \"maxItems\" ? \"more\" : \"fewer\";\n        return (0, codegen_1.str) `must NOT have ${comp} than ${schemaCode} items`;\n    },\n    params: ({ schemaCode }) => (0, codegen_1._) `{limit: ${schemaCode}}`,\n};\nconst def = {\n    keyword: [\"maxItems\", \"minItems\"],\n    type: \"array\",\n    schemaType: \"number\",\n    $data: true,\n    error,\n    code(cxt) {\n        const { keyword, data, schemaCode } = cxt;\n        const op = keyword === \"maxItems\" ? codegen_1.operators.GT : codegen_1.operators.LT;\n        cxt.fail$data((0, codegen_1._) `${data}.length ${op} ${schemaCode}`);\n    },\n};\nexports.default = def;\n//# sourceMappingURL=limitItems.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n// https://github.com/ajv-validator/ajv/issues/889\nconst equal = require(\"fast-deep-equal\");\nequal.code = 'require(\"ajv/dist/runtime/equal\").default';\nexports.default = equal;\n//# sourceMappingURL=equal.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst dataType_1 = require(\"../../compile/validate/dataType\");\nconst codegen_1 = require(\"../../compile/codegen\");\nconst util_1 = require(\"../../compile/util\");\nconst equal_1 = require(\"../../runtime/equal\");\nconst error = {\n    message: ({ params: { i, j } }) => (0, codegen_1.str) `must NOT have duplicate items (items ## ${j} and ${i} are identical)`,\n    params: ({ params: { i, j } }) => (0, codegen_1._) `{i: ${i}, j: ${j}}`,\n};\nconst def = {\n    keyword: \"uniqueItems\",\n    type: \"array\",\n    schemaType: \"boolean\",\n    $data: true,\n    error,\n    code(cxt) {\n        const { gen, data, $data, schema, parentSchema, schemaCode, it } = cxt;\n        if (!$data && !schema)\n            return;\n        const valid = gen.let(\"valid\");\n        const itemTypes = parentSchema.items ? (0, dataType_1.getSchemaTypes)(parentSchema.items) : [];\n        cxt.block$data(valid, validateUniqueItems, (0, codegen_1._) `${schemaCode} === false`);\n        cxt.ok(valid);\n        function validateUniqueItems() {\n            const i = gen.let(\"i\", (0, codegen_1._) `${data}.length`);\n            const j = gen.let(\"j\");\n            cxt.setParams({ i, j });\n            gen.assign(valid, true);\n            gen.if((0, codegen_1._) `${i} > 1`, () => (canOptimize() ? loopN : loopN2)(i, j));\n        }\n        function canOptimize() {\n            return itemTypes.length > 0 && !itemTypes.some((t) => t === \"object\" || t === \"array\");\n        }\n        function loopN(i, j) {\n            const item = gen.name(\"item\");\n            const wrongType = (0, dataType_1.checkDataTypes)(itemTypes, item, it.opts.strictNumbers, dataType_1.DataType.Wrong);\n            const indices = gen.const(\"indices\", (0, codegen_1._) `{}`);\n            gen.for((0, codegen_1._) `;${i}--;`, () => {\n                gen.let(item, (0, codegen_1._) `${data}[${i}]`);\n                gen.if(wrongType, (0, codegen_1._) `continue`);\n                if (itemTypes.length > 1)\n                    gen.if((0, codegen_1._) `typeof ${item} == \"string\"`, (0, codegen_1._) `${item} += \"_\"`);\n                gen\n                    .if((0, codegen_1._) `typeof ${indices}[${item}] == \"number\"`, () => {\n                    gen.assign(j, (0, codegen_1._) `${indices}[${item}]`);\n                    cxt.error();\n                    gen.assign(valid, false).break();\n                })\n                    .code((0, codegen_1._) `${indices}[${item}] = ${i}`);\n            });\n        }\n        function loopN2(i, j) {\n            const eql = (0, util_1.useFunc)(gen, equal_1.default);\n            const outer = gen.name(\"outer\");\n            gen.label(outer).for((0, codegen_1._) `;${i}--;`, () => gen.for((0, codegen_1._) `${j} = ${i}; ${j}--;`, () => gen.if((0, codegen_1._) `${eql}(${data}[${i}], ${data}[${j}])`, () => {\n                cxt.error();\n                gen.assign(valid, false).break(outer);\n            })));\n        }\n    },\n};\nexports.default = def;\n//# sourceMappingURL=uniqueItems.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst util_1 = require(\"../../compile/util\");\nconst equal_1 = require(\"../../runtime/equal\");\nconst error = {\n    message: \"must be equal to constant\",\n    params: ({ schemaCode }) => (0, codegen_1._) `{allowedValue: ${schemaCode}}`,\n};\nconst def = {\n    keyword: \"const\",\n    $data: true,\n    error,\n    code(cxt) {\n        const { gen, data, $data, schemaCode, schema } = cxt;\n        if ($data || (schema && typeof schema == \"object\")) {\n            cxt.fail$data((0, codegen_1._) `!${(0, util_1.useFunc)(gen, equal_1.default)}(${data}, ${schemaCode})`);\n        }\n        else {\n            cxt.fail((0, codegen_1._) `${schema} !== ${data}`);\n        }\n    },\n};\nexports.default = def;\n//# sourceMappingURL=const.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst util_1 = require(\"../../compile/util\");\nconst equal_1 = require(\"../../runtime/equal\");\nconst error = {\n    message: \"must be equal to one of the allowed values\",\n    params: ({ schemaCode }) => (0, codegen_1._) `{allowedValues: ${schemaCode}}`,\n};\nconst def = {\n    keyword: \"enum\",\n    schemaType: \"array\",\n    $data: true,\n    error,\n    code(cxt) {\n        const { gen, data, $data, schema, schemaCode, it } = cxt;\n        if (!$data && schema.length === 0)\n            throw new Error(\"enum must have non-empty array\");\n        const useLoop = schema.length >= it.opts.loopEnum;\n        let eql;\n        const getEql = () => (eql !== null && eql !== void 0 ? eql : (eql = (0, util_1.useFunc)(gen, equal_1.default)));\n        let valid;\n        if (useLoop || $data) {\n            valid = gen.let(\"valid\");\n            cxt.block$data(valid, loopEnum);\n        }\n        else {\n            /* istanbul ignore if */\n            if (!Array.isArray(schema))\n                throw new Error(\"ajv implementation error\");\n            const vSchema = gen.const(\"vSchema\", schemaCode);\n            valid = (0, codegen_1.or)(...schema.map((_x, i) => equalCode(vSchema, i)));\n        }\n        cxt.pass(valid);\n        function loopEnum() {\n            gen.assign(valid, false);\n            gen.forOf(\"v\", schemaCode, (v) => gen.if((0, codegen_1._) `${getEql()}(${data}, ${v})`, () => gen.assign(valid, true).break()));\n        }\n        function equalCode(vSchema, i) {\n            const sch = schema[i];\n            return typeof sch === \"object\" && sch !== null\n                ? (0, codegen_1._) `${getEql()}(${data}, ${vSchema}[${i}])`\n                : (0, codegen_1._) `${data} === ${sch}`;\n        }\n    },\n};\nexports.default = def;\n//# sourceMappingURL=enum.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst limitNumber_1 = require(\"./limitNumber\");\nconst multipleOf_1 = require(\"./multipleOf\");\nconst limitLength_1 = require(\"./limitLength\");\nconst pattern_1 = require(\"./pattern\");\nconst limitProperties_1 = require(\"./limitProperties\");\nconst required_1 = require(\"./required\");\nconst limitItems_1 = require(\"./limitItems\");\nconst uniqueItems_1 = require(\"./uniqueItems\");\nconst const_1 = require(\"./const\");\nconst enum_1 = require(\"./enum\");\nconst validation = [\n    // number\n    limitNumber_1.default,\n    multipleOf_1.default,\n    // string\n    limitLength_1.default,\n    pattern_1.default,\n    // object\n    limitProperties_1.default,\n    required_1.default,\n    // array\n    limitItems_1.default,\n    uniqueItems_1.default,\n    // any\n    { keyword: \"type\", schemaType: [\"string\", \"array\"] },\n    { keyword: \"nullable\", schemaType: \"boolean\" },\n    const_1.default,\n    enum_1.default,\n];\nexports.default = validation;\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.validateAdditionalItems = void 0;\nconst codegen_1 = require(\"../../compile/codegen\");\nconst util_1 = require(\"../../compile/util\");\nconst error = {\n    message: ({ params: { len } }) => (0, codegen_1.str) `must NOT have more than ${len} items`,\n    params: ({ params: { len } }) => (0, codegen_1._) `{limit: ${len}}`,\n};\nconst def = {\n    keyword: \"additionalItems\",\n    type: \"array\",\n    schemaType: [\"boolean\", \"object\"],\n    before: \"uniqueItems\",\n    error,\n    code(cxt) {\n        const { parentSchema, it } = cxt;\n        const { items } = parentSchema;\n        if (!Array.isArray(items)) {\n            (0, util_1.checkStrictMode)(it, '\"additionalItems\" is ignored when \"items\" is not an array of schemas');\n            return;\n        }\n        validateAdditionalItems(cxt, items);\n    },\n};\nfunction validateAdditionalItems(cxt, items) {\n    const { gen, schema, data, keyword, it } = cxt;\n    it.items = true;\n    const len = gen.const(\"len\", (0, codegen_1._) `${data}.length`);\n    if (schema === false) {\n        cxt.setParams({ len: items.length });\n        cxt.pass((0, codegen_1._) `${len} <= ${items.length}`);\n    }\n    else if (typeof schema == \"object\" && !(0, util_1.alwaysValidSchema)(it, schema)) {\n        const valid = gen.var(\"valid\", (0, codegen_1._) `${len} <= ${items.length}`); // TODO var\n        gen.if((0, codegen_1.not)(valid), () => validateItems(valid));\n        cxt.ok(valid);\n    }\n    function validateItems(valid) {\n        gen.forRange(\"i\", items.length, len, (i) => {\n            cxt.subschema({ keyword, dataProp: i, dataPropType: util_1.Type.Num }, valid);\n            if (!it.allErrors)\n                gen.if((0, codegen_1.not)(valid), () => gen.break());\n        });\n    }\n}\nexports.validateAdditionalItems = validateAdditionalItems;\nexports.default = def;\n//# sourceMappingURL=additionalItems.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.validateTuple = void 0;\nconst codegen_1 = require(\"../../compile/codegen\");\nconst util_1 = require(\"../../compile/util\");\nconst code_1 = require(\"../code\");\nconst def = {\n    keyword: \"items\",\n    type: \"array\",\n    schemaType: [\"object\", \"array\", \"boolean\"],\n    before: \"uniqueItems\",\n    code(cxt) {\n        const { schema, it } = cxt;\n        if (Array.isArray(schema))\n            return validateTuple(cxt, \"additionalItems\", schema);\n        it.items = true;\n        if ((0, util_1.alwaysValidSchema)(it, schema))\n            return;\n        cxt.ok((0, code_1.validateArray)(cxt));\n    },\n};\nfunction validateTuple(cxt, extraItems, schArr = cxt.schema) {\n    const { gen, parentSchema, data, keyword, it } = cxt;\n    checkStrictTuple(parentSchema);\n    if (it.opts.unevaluated && schArr.length && it.items !== true) {\n        it.items = util_1.mergeEvaluated.items(gen, schArr.length, it.items);\n    }\n    const valid = gen.name(\"valid\");\n    const len = gen.const(\"len\", (0, codegen_1._) `${data}.length`);\n    schArr.forEach((sch, i) => {\n        if ((0, util_1.alwaysValidSchema)(it, sch))\n            return;\n        gen.if((0, codegen_1._) `${len} > ${i}`, () => cxt.subschema({\n            keyword,\n            schemaProp: i,\n            dataProp: i,\n        }, valid));\n        cxt.ok(valid);\n    });\n    function checkStrictTuple(sch) {\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            (0, util_1.checkStrictMode)(it, msg, opts.strictTuples);\n        }\n    }\n}\nexports.validateTuple = validateTuple;\nexports.default = def;\n//# sourceMappingURL=items.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst items_1 = require(\"./items\");\nconst def = {\n    keyword: \"prefixItems\",\n    type: \"array\",\n    schemaType: [\"array\"],\n    before: \"uniqueItems\",\n    code: (cxt) => (0, items_1.validateTuple)(cxt, \"items\"),\n};\nexports.default = def;\n//# sourceMappingURL=prefixItems.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst util_1 = require(\"../../compile/util\");\nconst code_1 = require(\"../code\");\nconst additionalItems_1 = require(\"./additionalItems\");\nconst error = {\n    message: ({ params: { len } }) => (0, codegen_1.str) `must NOT have more than ${len} items`,\n    params: ({ params: { len } }) => (0, codegen_1._) `{limit: ${len}}`,\n};\nconst def = {\n    keyword: \"items\",\n    type: \"array\",\n    schemaType: [\"object\", \"boolean\"],\n    before: \"uniqueItems\",\n    error,\n    code(cxt) {\n        const { schema, parentSchema, it } = cxt;\n        const { prefixItems } = parentSchema;\n        it.items = true;\n        if ((0, util_1.alwaysValidSchema)(it, schema))\n            return;\n        if (prefixItems)\n            (0, additionalItems_1.validateAdditionalItems)(cxt, prefixItems);\n        else\n            cxt.ok((0, code_1.validateArray)(cxt));\n    },\n};\nexports.default = def;\n//# sourceMappingURL=items2020.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst util_1 = require(\"../../compile/util\");\nconst error = {\n    message: ({ params: { min, max } }) => max === undefined\n        ? (0, codegen_1.str) `must contain at least ${min} valid item(s)`\n        : (0, codegen_1.str) `must contain at least ${min} and no more than ${max} valid item(s)`,\n    params: ({ params: { min, max } }) => max === undefined ? (0, codegen_1._) `{minContains: ${min}}` : (0, codegen_1._) `{minContains: ${min}, maxContains: ${max}}`,\n};\nconst def = {\n    keyword: \"contains\",\n    type: \"array\",\n    schemaType: [\"object\", \"boolean\"],\n    before: \"uniqueItems\",\n    trackErrors: true,\n    error,\n    code(cxt) {\n        const { gen, schema, parentSchema, data, it } = cxt;\n        let min;\n        let max;\n        const { minContains, maxContains } = parentSchema;\n        if (it.opts.next) {\n            min = minContains === undefined ? 1 : minContains;\n            max = maxContains;\n        }\n        else {\n            min = 1;\n        }\n        const len = gen.const(\"len\", (0, codegen_1._) `${data}.length`);\n        cxt.setParams({ min, max });\n        if (max === undefined && min === 0) {\n            (0, util_1.checkStrictMode)(it, `\"minContains\" == 0 without \"maxContains\": \"contains\" keyword ignored`);\n            return;\n        }\n        if (max !== undefined && min > max) {\n            (0, util_1.checkStrictMode)(it, `\"minContains\" > \"maxContains\" is always invalid`);\n            cxt.fail();\n            return;\n        }\n        if ((0, util_1.alwaysValidSchema)(it, schema)) {\n            let cond = (0, codegen_1._) `${len} >= ${min}`;\n            if (max !== undefined)\n                cond = (0, codegen_1._) `${cond} && ${len} <= ${max}`;\n            cxt.pass(cond);\n            return;\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        }\n        else if (min === 0) {\n            gen.let(valid, true);\n            if (max !== undefined)\n                gen.if((0, codegen_1._) `${data}.length > 0`, validateItemsWithCount);\n        }\n        else {\n            gen.let(valid, false);\n            validateItemsWithCount();\n        }\n        cxt.result(valid, () => cxt.reset());\n        function validateItemsWithCount() {\n            const schValid = gen.name(\"_valid\");\n            const count = gen.let(\"count\", 0);\n            validateItems(schValid, () => gen.if(schValid, () => checkLimits(count)));\n        }\n        function validateItems(_valid, block) {\n            gen.forRange(\"i\", 0, len, (i) => {\n                cxt.subschema({\n                    keyword: \"contains\",\n                    dataProp: i,\n                    dataPropType: util_1.Type.Num,\n                    compositeRule: true,\n                }, _valid);\n                block();\n            });\n        }\n        function checkLimits(count) {\n            gen.code((0, codegen_1._) `${count}++`);\n            if (max === undefined) {\n                gen.if((0, codegen_1._) `${count} >= ${min}`, () => gen.assign(valid, true).break());\n            }\n            else {\n                gen.if((0, codegen_1._) `${count} > ${max}`, () => gen.assign(valid, false).break());\n                if (min === 1)\n                    gen.assign(valid, true);\n                else\n                    gen.if((0, codegen_1._) `${count} >= ${min}`, () => gen.assign(valid, true));\n            }\n        }\n    },\n};\nexports.default = def;\n//# sourceMappingURL=contains.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.validateSchemaDeps = exports.validatePropertyDeps = exports.error = void 0;\nconst codegen_1 = require(\"../../compile/codegen\");\nconst util_1 = require(\"../../compile/util\");\nconst code_1 = require(\"../code\");\nexports.error = {\n    message: ({ params: { property, depsCount, deps } }) => {\n        const property_ies = depsCount === 1 ? \"property\" : \"properties\";\n        return (0, codegen_1.str) `must have ${property_ies} ${deps} when property ${property} is present`;\n    },\n    params: ({ params: { property, depsCount, deps, missingProperty } }) => (0, codegen_1._) `{property: ${property},\n    missingProperty: ${missingProperty},\n    depsCount: ${depsCount},\n    deps: ${deps}}`, // TODO change to reference\n};\nconst def = {\n    keyword: \"dependencies\",\n    type: \"object\",\n    schemaType: \"object\",\n    error: exports.error,\n    code(cxt) {\n        const [propDeps, schDeps] = splitDependencies(cxt);\n        validatePropertyDeps(cxt, propDeps);\n        validateSchemaDeps(cxt, schDeps);\n    },\n};\nfunction splitDependencies({ schema }) {\n    const propertyDeps = {};\n    const schemaDeps = {};\n    for (const key in schema) {\n        if (key === \"__proto__\")\n            continue;\n        const deps = Array.isArray(schema[key]) ? propertyDeps : schemaDeps;\n        deps[key] = schema[key];\n    }\n    return [propertyDeps, schemaDeps];\n}\nfunction validatePropertyDeps(cxt, propertyDeps = cxt.schema) {\n    const { gen, data, it } = cxt;\n    if (Object.keys(propertyDeps).length === 0)\n        return;\n    const missing = gen.let(\"missing\");\n    for (const prop in propertyDeps) {\n        const deps = propertyDeps[prop];\n        if (deps.length === 0)\n            continue;\n        const hasProperty = (0, code_1.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                    (0, code_1.checkReportMissingProp)(cxt, depProp);\n                }\n            });\n        }\n        else {\n            gen.if((0, codegen_1._) `${hasProperty} && (${(0, code_1.checkMissingProp)(cxt, deps, missing)})`);\n            (0, code_1.reportMissingProp)(cxt, missing);\n            gen.else();\n        }\n    }\n}\nexports.validatePropertyDeps = validatePropertyDeps;\nfunction validateSchemaDeps(cxt, schemaDeps = cxt.schema) {\n    const { gen, data, keyword, it } = cxt;\n    const valid = gen.name(\"valid\");\n    for (const prop in schemaDeps) {\n        if ((0, util_1.alwaysValidSchema)(it, schemaDeps[prop]))\n            continue;\n        gen.if((0, code_1.propertyInData)(gen, data, prop, it.opts.ownProperties), () => {\n            const schCxt = cxt.subschema({ keyword, schemaProp: prop }, valid);\n            cxt.mergeValidEvaluated(schCxt, valid);\n        }, () => gen.var(valid, true) // TODO var\n        );\n        cxt.ok(valid);\n    }\n}\nexports.validateSchemaDeps = validateSchemaDeps;\nexports.default = def;\n//# sourceMappingURL=dependencies.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst util_1 = require(\"../../compile/util\");\nconst error = {\n    message: \"property name must be valid\",\n    params: ({ params }) => (0, codegen_1._) `{propertyName: ${params.propertyName}}`,\n};\nconst def = {\n    keyword: \"propertyNames\",\n    type: \"object\",\n    schemaType: [\"object\", \"boolean\"],\n    error,\n    code(cxt) {\n        const { gen, schema, data, it } = cxt;\n        if ((0, util_1.alwaysValidSchema)(it, schema))\n            return;\n        const valid = gen.name(\"valid\");\n        gen.forIn(\"key\", data, (key) => {\n            cxt.setParams({ propertyName: key });\n            cxt.subschema({\n                keyword: \"propertyNames\",\n                data: key,\n                dataTypes: [\"string\"],\n                propertyName: key,\n                compositeRule: true,\n            }, valid);\n            gen.if((0, codegen_1.not)(valid), () => {\n                cxt.error(true);\n                if (!it.allErrors)\n                    gen.break();\n            });\n        });\n        cxt.ok(valid);\n    },\n};\nexports.default = def;\n//# sourceMappingURL=propertyNames.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst code_1 = require(\"../code\");\nconst codegen_1 = require(\"../../compile/codegen\");\nconst names_1 = require(\"../../compile/names\");\nconst util_1 = require(\"../../compile/util\");\nconst error = {\n    message: \"must NOT have additional properties\",\n    params: ({ params }) => (0, codegen_1._) `{additionalProperty: ${params.additionalProperty}}`,\n};\nconst def = {\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)\n            throw new Error(\"ajv implementation error\");\n        const { allErrors, opts } = it;\n        it.props = true;\n        if (opts.removeAdditional !== \"all\" && (0, util_1.alwaysValidSchema)(it, schema))\n            return;\n        const props = (0, code_1.allSchemaProperties)(parentSchema.properties);\n        const patProps = (0, code_1.allSchemaProperties)(parentSchema.patternProperties);\n        checkAdditionalProperties();\n        cxt.ok((0, codegen_1._) `${errsCount} === ${names_1.default.errors}`);\n        function checkAdditionalProperties() {\n            gen.forIn(\"key\", data, (key) => {\n                if (!props.length && !patProps.length)\n                    additionalPropertyCode(key);\n                else\n                    gen.if(isAdditional(key), () => additionalPropertyCode(key));\n            });\n        }\n        function isAdditional(key) {\n            let definedProp;\n            if (props.length > 8) {\n                // TODO maybe an option instead of hard-coded 8?\n                const propsSchema = (0, util_1.schemaRefOrVal)(it, parentSchema.properties, \"properties\");\n                definedProp = (0, code_1.isOwnProperty)(gen, propsSchema, key);\n            }\n            else if (props.length) {\n                definedProp = (0, codegen_1.or)(...props.map((p) => (0, codegen_1._) `${key} === ${p}`));\n            }\n            else {\n                definedProp = codegen_1.nil;\n            }\n            if (patProps.length) {\n                definedProp = (0, codegen_1.or)(definedProp, ...patProps.map((p) => (0, codegen_1._) `${(0, code_1.usePattern)(cxt, p)}.test(${key})`));\n            }\n            return (0, codegen_1.not)(definedProp);\n        }\n        function deleteAdditional(key) {\n            gen.code((0, codegen_1._) `delete ${data}[${key}]`);\n        }\n        function additionalPropertyCode(key) {\n            if (opts.removeAdditional === \"all\" || (opts.removeAdditional && schema === false)) {\n                deleteAdditional(key);\n                return;\n            }\n            if (schema === false) {\n                cxt.setParams({ additionalProperty: key });\n                cxt.error();\n                if (!allErrors)\n                    gen.break();\n                return;\n            }\n            if (typeof schema == \"object\" && !(0, util_1.alwaysValidSchema)(it, schema)) {\n                const valid = gen.name(\"valid\");\n                if (opts.removeAdditional === \"failing\") {\n                    applyAdditionalSchema(key, valid, false);\n                    gen.if((0, codegen_1.not)(valid), () => {\n                        cxt.reset();\n                        deleteAdditional(key);\n                    });\n                }\n                else {\n                    applyAdditionalSchema(key, valid);\n                    if (!allErrors)\n                        gen.if((0, codegen_1.not)(valid), () => gen.break());\n                }\n            }\n        }\n        function applyAdditionalSchema(key, valid, errors) {\n            const subschema = {\n                keyword: \"additionalProperties\",\n                dataProp: key,\n                dataPropType: util_1.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};\nexports.default = def;\n//# sourceMappingURL=additionalProperties.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst validate_1 = require(\"../../compile/validate\");\nconst code_1 = require(\"../code\");\nconst util_1 = require(\"../../compile/util\");\nconst additionalProperties_1 = require(\"./additionalProperties\");\nconst def = {\n    keyword: \"properties\",\n    type: \"object\",\n    schemaType: \"object\",\n    code(cxt) {\n        const { gen, schema, parentSchema, data, it } = cxt;\n        if (it.opts.removeAdditional === \"all\" && parentSchema.additionalProperties === undefined) {\n            additionalProperties_1.default.code(new validate_1.KeywordCxt(it, additionalProperties_1.default, \"additionalProperties\"));\n        }\n        const allProps = (0, code_1.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 = util_1.mergeEvaluated.props(gen, (0, util_1.toHash)(allProps), it.props);\n        }\n        const properties = allProps.filter((p) => !(0, util_1.alwaysValidSchema)(it, schema[p]));\n        if (properties.length === 0)\n            return;\n        const valid = gen.name(\"valid\");\n        for (const prop of properties) {\n            if (hasDefault(prop)) {\n                applyPropertySchema(prop);\n            }\n            else {\n                gen.if((0, code_1.propertyInData)(gen, data, prop, it.opts.ownProperties));\n                applyPropertySchema(prop);\n                if (!it.allErrors)\n                    gen.else().var(valid, true);\n                gen.endIf();\n            }\n            cxt.it.definedProperties.add(prop);\n            cxt.ok(valid);\n        }\n        function hasDefault(prop) {\n            return it.opts.useDefaults && !it.compositeRule && schema[prop].default !== undefined;\n        }\n        function applyPropertySchema(prop) {\n            cxt.subschema({\n                keyword: \"properties\",\n                schemaProp: prop,\n                dataProp: prop,\n            }, valid);\n        }\n    },\n};\nexports.default = def;\n//# sourceMappingURL=properties.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst code_1 = require(\"../code\");\nconst codegen_1 = require(\"../../compile/codegen\");\nconst util_1 = require(\"../../compile/util\");\nconst util_2 = require(\"../../compile/util\");\nconst def = {\n    keyword: \"patternProperties\",\n    type: \"object\",\n    schemaType: \"object\",\n    code(cxt) {\n        const { gen, schema, data, parentSchema, it } = cxt;\n        const { opts } = it;\n        const patterns = (0, code_1.allSchemaProperties)(schema);\n        const alwaysValidPatterns = patterns.filter((p) => (0, util_1.alwaysValidSchema)(it, schema[p]));\n        if (patterns.length === 0 ||\n            (alwaysValidPatterns.length === patterns.length &&\n                (!it.opts.unevaluated || it.props === true))) {\n            return;\n        }\n        const checkProperties = opts.strictSchema && !opts.allowMatchingProperties && parentSchema.properties;\n        const valid = gen.name(\"valid\");\n        if (it.props !== true && !(it.props instanceof codegen_1.Name)) {\n            it.props = (0, util_2.evaluatedPropsToName)(gen, it.props);\n        }\n        const { props } = it;\n        validatePatternProperties();\n        function validatePatternProperties() {\n            for (const pat of patterns) {\n                if (checkProperties)\n                    checkMatchingProperties(pat);\n                if (it.allErrors) {\n                    validateProperties(pat);\n                }\n                else {\n                    gen.var(valid, true); // TODO var\n                    validateProperties(pat);\n                    gen.if(valid);\n                }\n            }\n        }\n        function checkMatchingProperties(pat) {\n            for (const prop in checkProperties) {\n                if (new RegExp(pat).test(prop)) {\n                    (0, util_1.checkStrictMode)(it, `property ${prop} matches pattern ${pat} (use allowMatchingProperties)`);\n                }\n            }\n        }\n        function validateProperties(pat) {\n            gen.forIn(\"key\", data, (key) => {\n                gen.if((0, codegen_1._) `${(0, code_1.usePattern)(cxt, pat)}.test(${key})`, () => {\n                    const alwaysValid = alwaysValidPatterns.includes(pat);\n                    if (!alwaysValid) {\n                        cxt.subschema({\n                            keyword: \"patternProperties\",\n                            schemaProp: pat,\n                            dataProp: key,\n                            dataPropType: util_2.Type.Str,\n                        }, valid);\n                    }\n                    if (it.opts.unevaluated && props !== true) {\n                        gen.assign((0, codegen_1._) `${props}[${key}]`, true);\n                    }\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((0, codegen_1.not)(valid), () => gen.break());\n                    }\n                });\n            });\n        }\n    },\n};\nexports.default = def;\n//# sourceMappingURL=patternProperties.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst util_1 = require(\"../../compile/util\");\nconst def = {\n    keyword: \"not\",\n    schemaType: [\"object\", \"boolean\"],\n    trackErrors: true,\n    code(cxt) {\n        const { gen, schema, it } = cxt;\n        if ((0, util_1.alwaysValidSchema)(it, schema)) {\n            cxt.fail();\n            return;\n        }\n        const valid = gen.name(\"valid\");\n        cxt.subschema({\n            keyword: \"not\",\n            compositeRule: true,\n            createErrors: false,\n            allErrors: false,\n        }, valid);\n        cxt.failResult(valid, () => cxt.reset(), () => cxt.error());\n    },\n    error: { message: \"must NOT be valid\" },\n};\nexports.default = def;\n//# sourceMappingURL=not.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst code_1 = require(\"../code\");\nconst def = {\n    keyword: \"anyOf\",\n    schemaType: \"array\",\n    trackErrors: true,\n    code: code_1.validateUnion,\n    error: { message: \"must match a schema in anyOf\" },\n};\nexports.default = def;\n//# sourceMappingURL=anyOf.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst util_1 = require(\"../../compile/util\");\nconst error = {\n    message: \"must match exactly one schema in oneOf\",\n    params: ({ params }) => (0, codegen_1._) `{passingSchemas: ${params.passing}}`,\n};\nconst def = {\n    keyword: \"oneOf\",\n    schemaType: \"array\",\n    trackErrors: true,\n    error,\n    code(cxt) {\n        const { gen, schema, parentSchema, it } = cxt;\n        /* istanbul ignore if */\n        if (!Array.isArray(schema))\n            throw new Error(\"ajv implementation error\");\n        if (it.opts.discriminator && parentSchema.discriminator)\n            return;\n        const schArr = 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        gen.block(validateOneOf);\n        cxt.result(valid, () => cxt.reset(), () => cxt.error(true));\n        function validateOneOf() {\n            schArr.forEach((sch, i) => {\n                let schCxt;\n                if ((0, util_1.alwaysValidSchema)(it, sch)) {\n                    gen.var(schValid, true);\n                }\n                else {\n                    schCxt = cxt.subschema({\n                        keyword: \"oneOf\",\n                        schemaProp: i,\n                        compositeRule: true,\n                    }, schValid);\n                }\n                if (i > 0) {\n                    gen\n                        .if((0, codegen_1._) `${schValid} && ${valid}`)\n                        .assign(valid, false)\n                        .assign(passing, (0, codegen_1._) `[${passing}, ${i}]`)\n                        .else();\n                }\n                gen.if(schValid, () => {\n                    gen.assign(valid, true);\n                    gen.assign(passing, i);\n                    if (schCxt)\n                        cxt.mergeEvaluated(schCxt, codegen_1.Name);\n                });\n            });\n        }\n    },\n};\nexports.default = def;\n//# sourceMappingURL=oneOf.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst util_1 = require(\"../../compile/util\");\nconst def = {\n    keyword: \"allOf\",\n    schemaType: \"array\",\n    code(cxt) {\n        const { gen, schema, it } = cxt;\n        /* istanbul ignore if */\n        if (!Array.isArray(schema))\n            throw new Error(\"ajv implementation error\");\n        const valid = gen.name(\"valid\");\n        schema.forEach((sch, i) => {\n            if ((0, util_1.alwaysValidSchema)(it, sch))\n                return;\n            const schCxt = cxt.subschema({ keyword: \"allOf\", schemaProp: i }, valid);\n            cxt.ok(valid);\n            cxt.mergeEvaluated(schCxt);\n        });\n    },\n};\nexports.default = def;\n//# sourceMappingURL=allOf.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst util_1 = require(\"../../compile/util\");\nconst error = {\n    message: ({ params }) => (0, codegen_1.str) `must match \"${params.ifClause}\" schema`,\n    params: ({ params }) => (0, codegen_1._) `{failingKeyword: ${params.ifClause}}`,\n};\nconst def = {\n    keyword: \"if\",\n    schemaType: [\"object\", \"boolean\"],\n    trackErrors: true,\n    error,\n    code(cxt) {\n        const { gen, parentSchema, it } = cxt;\n        if (parentSchema.then === undefined && parentSchema.else === undefined) {\n            (0, util_1.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)\n            return;\n        const valid = gen.let(\"valid\", true);\n        const schValid = gen.name(\"_valid\");\n        validateIf();\n        cxt.reset();\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        }\n        else if (hasThen) {\n            gen.if(schValid, validateClause(\"then\"));\n        }\n        else {\n            gen.if((0, codegen_1.not)(schValid), validateClause(\"else\"));\n        }\n        cxt.pass(valid, () => cxt.error(true));\n        function validateIf() {\n            const schCxt = cxt.subschema({\n                keyword: \"if\",\n                compositeRule: true,\n                createErrors: false,\n                allErrors: false,\n            }, schValid);\n            cxt.mergeEvaluated(schCxt);\n        }\n        function validateClause(keyword, ifClause) {\n            return () => {\n                const schCxt = cxt.subschema({ keyword }, schValid);\n                gen.assign(valid, schValid);\n                cxt.mergeValidEvaluated(schCxt, valid);\n                if (ifClause)\n                    gen.assign(ifClause, (0, codegen_1._) `${keyword}`);\n                else\n                    cxt.setParams({ ifClause: keyword });\n            };\n        }\n    },\n};\nfunction hasSchema(it, keyword) {\n    const schema = it.schema[keyword];\n    return schema !== undefined && !(0, util_1.alwaysValidSchema)(it, schema);\n}\nexports.default = def;\n//# sourceMappingURL=if.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst util_1 = require(\"../../compile/util\");\nconst def = {\n    keyword: [\"then\", \"else\"],\n    schemaType: [\"object\", \"boolean\"],\n    code({ keyword, parentSchema, it }) {\n        if (parentSchema.if === undefined)\n            (0, util_1.checkStrictMode)(it, `\"${keyword}\" without \"if\" is ignored`);\n    },\n};\nexports.default = def;\n//# sourceMappingURL=thenElse.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst additionalItems_1 = require(\"./additionalItems\");\nconst prefixItems_1 = require(\"./prefixItems\");\nconst items_1 = require(\"./items\");\nconst items2020_1 = require(\"./items2020\");\nconst contains_1 = require(\"./contains\");\nconst dependencies_1 = require(\"./dependencies\");\nconst propertyNames_1 = require(\"./propertyNames\");\nconst additionalProperties_1 = require(\"./additionalProperties\");\nconst properties_1 = require(\"./properties\");\nconst patternProperties_1 = require(\"./patternProperties\");\nconst not_1 = require(\"./not\");\nconst anyOf_1 = require(\"./anyOf\");\nconst oneOf_1 = require(\"./oneOf\");\nconst allOf_1 = require(\"./allOf\");\nconst if_1 = require(\"./if\");\nconst thenElse_1 = require(\"./thenElse\");\nfunction getApplicator(draft2020 = false) {\n    const applicator = [\n        // any\n        not_1.default,\n        anyOf_1.default,\n        oneOf_1.default,\n        allOf_1.default,\n        if_1.default,\n        thenElse_1.default,\n        // object\n        propertyNames_1.default,\n        additionalProperties_1.default,\n        dependencies_1.default,\n        properties_1.default,\n        patternProperties_1.default,\n    ];\n    // array\n    if (draft2020)\n        applicator.push(prefixItems_1.default, items2020_1.default);\n    else\n        applicator.push(additionalItems_1.default, items_1.default);\n    applicator.push(contains_1.default);\n    return applicator;\n}\nexports.default = getApplicator;\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst error = {\n    message: ({ schemaCode }) => (0, codegen_1.str) `must match format \"${schemaCode}\"`,\n    params: ({ schemaCode }) => (0, codegen_1._) `{format: ${schemaCode}}`,\n};\nconst def = {\n    keyword: \"format\",\n    type: [\"number\", \"string\"],\n    schemaType: \"string\",\n    $data: true,\n    error,\n    code(cxt, ruleType) {\n        const { gen, data, $data, schema, schemaCode, it } = cxt;\n        const { opts, errSchemaPath, schemaEnv, self } = it;\n        if (!opts.validateFormats)\n            return;\n        if ($data)\n            validate$DataFormat();\n        else\n            validateFormat();\n        function validate$DataFormat() {\n            const fmts = gen.scopeValue(\"formats\", {\n                ref: self.formats,\n                code: opts.code.formats,\n            });\n            const fDef = gen.const(\"fDef\", (0, codegen_1._) `${fmts}[${schemaCode}]`);\n            const fType = gen.let(\"fType\");\n            const format = gen.let(\"format\");\n            // TODO simplify\n            gen.if((0, codegen_1._) `typeof ${fDef} == \"object\" && !(${fDef} instanceof RegExp)`, () => gen.assign(fType, (0, codegen_1._) `${fDef}.type || \"string\"`).assign(format, (0, codegen_1._) `${fDef}.validate`), () => gen.assign(fType, (0, codegen_1._) `\"string\"`).assign(format, fDef));\n            cxt.fail$data((0, codegen_1.or)(unknownFmt(), invalidFmt()));\n            function unknownFmt() {\n                if (opts.strictSchema === false)\n                    return codegen_1.nil;\n                return (0, codegen_1._) `${schemaCode} && !${format}`;\n            }\n            function invalidFmt() {\n                const callFormat = schemaEnv.$async\n                    ? (0, codegen_1._) `(${fDef}.async ? await ${format}(${data}) : ${format}(${data}))`\n                    : (0, codegen_1._) `${format}(${data})`;\n                const validData = (0, codegen_1._) `(typeof ${format} == \"function\" ? ${callFormat} : ${format}.test(${data}))`;\n                return (0, codegen_1._) `${format} && ${format} !== true && ${fType} === ${ruleType} && !${validData}`;\n            }\n        }\n        function validateFormat() {\n            const formatDef = self.formats[schema];\n            if (!formatDef) {\n                unknownFormat();\n                return;\n            }\n            if (formatDef === true)\n                return;\n            const [fmtType, format, fmtRef] = getFormat(formatDef);\n            if (fmtType === ruleType)\n                cxt.pass(validCondition());\n            function unknownFormat() {\n                if (opts.strictSchema === false) {\n                    self.logger.warn(unknownMsg());\n                    return;\n                }\n                throw new Error(unknownMsg());\n                function unknownMsg() {\n                    return `unknown format \"${schema}\" ignored in schema at path \"${errSchemaPath}\"`;\n                }\n            }\n            function getFormat(fmtDef) {\n                const code = fmtDef instanceof RegExp\n                    ? (0, codegen_1.regexpCode)(fmtDef)\n                    : opts.code.formats\n                        ? (0, codegen_1._) `${opts.code.formats}${(0, codegen_1.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, (0, codegen_1._) `${fmt}.validate`];\n                }\n                return [\"string\", fmtDef, fmt];\n            }\n            function validCondition() {\n                if (typeof formatDef == \"object\" && !(formatDef instanceof RegExp) && formatDef.async) {\n                    if (!schemaEnv.$async)\n                        throw new Error(\"async format in sync schema\");\n                    return (0, codegen_1._) `await ${fmtRef}(${data})`;\n                }\n                return typeof format == \"function\" ? (0, codegen_1._) `${fmtRef}(${data})` : (0, codegen_1._) `${fmtRef}.test(${data})`;\n            }\n        }\n    },\n};\nexports.default = def;\n//# sourceMappingURL=format.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst format_1 = require(\"./format\");\nconst format = [format_1.default];\nexports.default = format;\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.contentVocabulary = exports.metadataVocabulary = void 0;\nexports.metadataVocabulary = [\n    \"title\",\n    \"description\",\n    \"default\",\n    \"deprecated\",\n    \"readOnly\",\n    \"writeOnly\",\n    \"examples\",\n];\nexports.contentVocabulary = [\n    \"contentMediaType\",\n    \"contentEncoding\",\n    \"contentSchema\",\n];\n//# sourceMappingURL=metadata.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst core_1 = require(\"./core\");\nconst validation_1 = require(\"./validation\");\nconst applicator_1 = require(\"./applicator\");\nconst format_1 = require(\"./format\");\nconst metadata_1 = require(\"./metadata\");\nconst draft7Vocabularies = [\n    core_1.default,\n    validation_1.default,\n    (0, applicator_1.default)(),\n    format_1.default,\n    metadata_1.metadataVocabulary,\n    metadata_1.contentVocabulary,\n];\nexports.default = draft7Vocabularies;\n//# sourceMappingURL=draft7.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DiscrError = void 0;\nvar DiscrError;\n(function (DiscrError) {\n    DiscrError[\"Tag\"] = \"tag\";\n    DiscrError[\"Mapping\"] = \"mapping\";\n})(DiscrError || (exports.DiscrError = DiscrError = {}));\n//# sourceMappingURL=types.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst types_1 = require(\"../discriminator/types\");\nconst compile_1 = require(\"../../compile\");\nconst ref_error_1 = require(\"../../compile/ref_error\");\nconst util_1 = require(\"../../compile/util\");\nconst error = {\n    message: ({ params: { discrError, tagName } }) => discrError === types_1.DiscrError.Tag\n        ? `tag \"${tagName}\" must be string`\n        : `value of tag \"${tagName}\" must be in oneOf`,\n    params: ({ params: { discrError, tag, tagName } }) => (0, codegen_1._) `{error: ${discrError}, tag: ${tagName}, tagValue: ${tag}}`,\n};\nconst def = {\n    keyword: \"discriminator\",\n    type: \"object\",\n    schemaType: \"object\",\n    error,\n    code(cxt) {\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\")\n            throw new Error(\"discriminator: requires propertyName\");\n        if (schema.mapping)\n            throw new Error(\"discriminator: mapping is not supported\");\n        if (!oneOf)\n            throw new Error(\"discriminator: requires oneOf keyword\");\n        const valid = gen.let(\"valid\", false);\n        const tag = gen.const(\"tag\", (0, codegen_1._) `${data}${(0, codegen_1.getProperty)(tagName)}`);\n        gen.if((0, codegen_1._) `typeof ${tag} == \"string\"`, () => validateMapping(), () => cxt.error(false, { discrError: types_1.DiscrError.Tag, tag, tagName }));\n        cxt.ok(valid);\n        function validateMapping() {\n            const mapping = getMapping();\n            gen.if(false);\n            for (const tagValue in mapping) {\n                gen.elseIf((0, codegen_1._) `${tag} === ${tagValue}`);\n                gen.assign(valid, applyTagSchema(mapping[tagValue]));\n            }\n            gen.else();\n            cxt.error(false, { discrError: types_1.DiscrError.Mapping, tag, tagName });\n            gen.endIf();\n        }\n        function applyTagSchema(schemaProp) {\n            const _valid = gen.name(\"valid\");\n            const schCxt = cxt.subschema({ keyword: \"oneOf\", schemaProp }, _valid);\n            cxt.mergeEvaluated(schCxt, codegen_1.Name);\n            return _valid;\n        }\n        function getMapping() {\n            var _a;\n            const oneOfMapping = {};\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 === null || sch === void 0 ? void 0 : sch.$ref) && !(0, util_1.schemaHasRulesButRef)(sch, it.self.RULES)) {\n                    const ref = sch.$ref;\n                    sch = compile_1.resolveRef.call(it.self, it.schemaEnv.root, it.baseId, ref);\n                    if (sch instanceof compile_1.SchemaEnv)\n                        sch = sch.schema;\n                    if (sch === undefined)\n                        throw new ref_error_1.default(it.opts.uriResolver, it.baseId, ref);\n                }\n                const propSch = (_a = sch === null || sch === void 0 ? void 0 : sch.properties) === null || _a === void 0 ? void 0 : _a[tagName];\n                if (typeof propSch != \"object\") {\n                    throw new Error(`discriminator: oneOf subschemas (or referenced schemas) must have \"properties/${tagName}\"`);\n                }\n                tagRequired = tagRequired && (topRequired || hasRequired(sch));\n                addMappings(propSch, i);\n            }\n            if (!tagRequired)\n                throw new Error(`discriminator: \"${tagName}\" must be required`);\n            return oneOfMapping;\n            function hasRequired({ required }) {\n                return Array.isArray(required) && required.includes(tagName);\n            }\n            function addMappings(sch, i) {\n                if (sch.const) {\n                    addMapping(sch.const, i);\n                }\n                else if (sch.enum) {\n                    for (const tagValue of sch.enum) {\n                        addMapping(tagValue, i);\n                    }\n                }\n                else {\n                    throw new Error(`discriminator: \"properties/${tagName}\" must have \"const\" or \"enum\"`);\n                }\n            }\n            function addMapping(tagValue, i) {\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};\nexports.default = def;\n//# sourceMappingURL=index.js.map","","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MissingRefError = exports.ValidationError = exports.CodeGen = exports.Name = exports.nil = exports.stringify = exports.str = exports._ = exports.KeywordCxt = exports.Ajv = void 0;\nconst core_1 = require(\"./core\");\nconst draft7_1 = require(\"./vocabularies/draft7\");\nconst discriminator_1 = require(\"./vocabularies/discriminator\");\nconst draft7MetaSchema = require(\"./refs/json-schema-draft-07.json\");\nconst META_SUPPORT_DATA = [\"/properties\"];\nconst META_SCHEMA_ID = \"http://json-schema.org/draft-07/schema\";\nclass Ajv extends core_1.default {\n    _addVocabularies() {\n        super._addVocabularies();\n        draft7_1.default.forEach((v) => this.addVocabulary(v));\n        if (this.opts.discriminator)\n            this.addKeyword(discriminator_1.default);\n    }\n    _addDefaultMetaSchema() {\n        super._addDefaultMetaSchema();\n        if (!this.opts.meta)\n            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    defaultMeta() {\n        return (this.opts.defaultMeta =\n            super.defaultMeta() || (this.getSchema(META_SCHEMA_ID) ? META_SCHEMA_ID : undefined));\n    }\n}\nexports.Ajv = Ajv;\nmodule.exports = exports = Ajv;\nmodule.exports.Ajv = Ajv;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = Ajv;\nvar validate_1 = require(\"./compile/validate\");\nObject.defineProperty(exports, \"KeywordCxt\", { enumerable: true, get: function () { return validate_1.KeywordCxt; } });\nvar codegen_1 = require(\"./compile/codegen\");\nObject.defineProperty(exports, \"_\", { enumerable: true, get: function () { return codegen_1._; } });\nObject.defineProperty(exports, \"str\", { enumerable: true, get: function () { return codegen_1.str; } });\nObject.defineProperty(exports, \"stringify\", { enumerable: true, get: function () { return codegen_1.stringify; } });\nObject.defineProperty(exports, \"nil\", { enumerable: true, get: function () { return codegen_1.nil; } });\nObject.defineProperty(exports, \"Name\", { enumerable: true, get: function () { return codegen_1.Name; } });\nObject.defineProperty(exports, \"CodeGen\", { enumerable: true, get: function () { return codegen_1.CodeGen; } });\nvar validation_error_1 = require(\"./runtime/validation_error\");\nObject.defineProperty(exports, \"ValidationError\", { enumerable: true, get: function () { return validation_error_1.default; } });\nvar ref_error_1 = require(\"./compile/ref_error\");\nObject.defineProperty(exports, \"MissingRefError\", { enumerable: true, get: function () { return ref_error_1.default; } });\n//# sourceMappingURL=ajv.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.formatNames = exports.fastFormats = exports.fullFormats = void 0;\nfunction fmtDef(validate, compare) {\n    return { validate, compare };\n}\nexports.fullFormats = {\n    // date: http://tools.ietf.org/html/rfc3339#section-5.6\n    date: fmtDef(date, compareDate),\n    // date-time: http://tools.ietf.org/html/rfc3339#section-5.6\n    time: fmtDef(getTime(true), compareTime),\n    \"date-time\": fmtDef(getDateTime(true), compareDateTime),\n    \"iso-time\": fmtDef(getTime(), compareIsoTime),\n    \"iso-date-time\": fmtDef(getDateTime(), compareIsoDateTime),\n    // duration: https://tools.ietf.org/html/rfc3339#appendix-A\n    duration: /^P(?!$)((\\d+Y)?(\\d+M)?(\\d+D)?(T(?=\\d)(\\d+H)?(\\d+M)?(\\d+S)?)?|(\\d+W)?)$/,\n    uri,\n    \"uri-reference\": /^(?:[a-z][a-z0-9+\\-.]*:)?(?:\\/?\\/(?:(?:[a-z0-9\\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\\.[a-z0-9\\-._~!$&'()*+,;=:]+)\\]|(?:(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)|(?:[a-z0-9\\-._~!$&'\"()*+,;=]|%[0-9a-f]{2})*)(?::\\d*)?(?:\\/(?:[a-z0-9\\-._~!$&'\"()*+,;=:@]|%[0-9a-f]{2})*)*|\\/(?:(?:[a-z0-9\\-._~!$&'\"()*+,;=:@]|%[0-9a-f]{2})+(?:\\/(?:[a-z0-9\\-._~!$&'\"()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\\-._~!$&'\"()*+,;=:@]|%[0-9a-f]{2})+(?:\\/(?:[a-z0-9\\-._~!$&'\"()*+,;=:@]|%[0-9a-f]{2})*)*)?(?:\\?(?:[a-z0-9\\-._~!$&'\"()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\\-._~!$&'\"()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i,\n    // uri-template: https://tools.ietf.org/html/rfc6570\n    \"uri-template\": /^(?:(?:[^\\x00-\\x20\"'<>%\\\\^`{|}]|%[0-9a-f]{2})|\\{[+#./;?&=,!@|]?(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\\*)?(?:,(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\\*)?)*\\})*$/i,\n    // For the source: https://gist.github.com/dperini/729294\n    // For test cases: https://mathiasbynens.be/demo/url-regex\n    url: /^(?:https?|ftp):\\/\\/(?:\\S+(?::\\S*)?@)?(?:(?!(?:10|127)(?:\\.\\d{1,3}){3})(?!(?:169\\.254|192\\.168)(?:\\.\\d{1,3}){2})(?!172\\.(?:1[6-9]|2\\d|3[0-1])(?:\\.\\d{1,3}){2})(?:[1-9]\\d?|1\\d\\d|2[01]\\d|22[0-3])(?:\\.(?:1?\\d{1,2}|2[0-4]\\d|25[0-5])){2}(?:\\.(?:[1-9]\\d?|1\\d\\d|2[0-4]\\d|25[0-4]))|(?:(?:[a-z0-9\\u{00a1}-\\u{ffff}]+-)*[a-z0-9\\u{00a1}-\\u{ffff}]+)(?:\\.(?:[a-z0-9\\u{00a1}-\\u{ffff}]+-)*[a-z0-9\\u{00a1}-\\u{ffff}]+)*(?:\\.(?:[a-z\\u{00a1}-\\u{ffff}]{2,})))(?::\\d{2,5})?(?:\\/[^\\s]*)?$/iu,\n    email: /^[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/i,\n    hostname: /^(?=.{1,253}\\.?$)[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\\.[a-z0-9](?:[-0-9a-z]{0,61}[0-9a-z])?)*\\.?$/i,\n    // optimized https://www.safaribooksonline.com/library/view/regular-expressions-cookbook/9780596802837/ch07s16.html\n    ipv4: /^(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)\\.){3}(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)$/,\n    ipv6: /^((([0-9a-f]{1,4}:){7}([0-9a-f]{1,4}|:))|(([0-9a-f]{1,4}:){6}(:[0-9a-f]{1,4}|((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3})|:))|(([0-9a-f]{1,4}:){5}(((:[0-9a-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3})|:))|(([0-9a-f]{1,4}:){4}(((:[0-9a-f]{1,4}){1,3})|((:[0-9a-f]{1,4})?:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(([0-9a-f]{1,4}:){3}(((:[0-9a-f]{1,4}){1,4})|((:[0-9a-f]{1,4}){0,2}:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(([0-9a-f]{1,4}:){2}(((:[0-9a-f]{1,4}){1,5})|((:[0-9a-f]{1,4}){0,3}:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(([0-9a-f]{1,4}:){1}(((:[0-9a-f]{1,4}){1,6})|((:[0-9a-f]{1,4}){0,4}:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(:(((:[0-9a-f]{1,4}){1,7})|((:[0-9a-f]{1,4}){0,5}:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:)))$/i,\n    regex,\n    // uuid: http://tools.ietf.org/html/rfc4122\n    uuid: /^(?:urn:uuid:)?[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/i,\n    // JSON-pointer: https://tools.ietf.org/html/rfc6901\n    // uri fragment: https://tools.ietf.org/html/rfc3986#appendix-A\n    \"json-pointer\": /^(?:\\/(?:[^~/]|~0|~1)*)*$/,\n    \"json-pointer-uri-fragment\": /^#(?:\\/(?:[a-z0-9_\\-.!$&'()*+,;:=@]|%[0-9a-f]{2}|~0|~1)*)*$/i,\n    // relative JSON-pointer: http://tools.ietf.org/html/draft-luff-relative-json-pointer-00\n    \"relative-json-pointer\": /^(?:0|[1-9][0-9]*)(?:#|(?:\\/(?:[^~/]|~0|~1)*)*)$/,\n    // the following formats are used by the openapi specification: https://spec.openapis.org/oas/v3.0.0#data-types\n    // byte: https://github.com/miguelmota/is-base64\n    byte,\n    // signed 32 bit integer\n    int32: { type: \"number\", validate: validateInt32 },\n    // signed 64 bit integer\n    int64: { type: \"number\", validate: validateInt64 },\n    // C-type float\n    float: { type: \"number\", validate: validateNumber },\n    // C-type double\n    double: { type: \"number\", validate: validateNumber },\n    // hint to the UI to hide input strings\n    password: true,\n    // unchecked string payload\n    binary: true,\n};\nexports.fastFormats = {\n    ...exports.fullFormats,\n    date: fmtDef(/^\\d\\d\\d\\d-[0-1]\\d-[0-3]\\d$/, compareDate),\n    time: fmtDef(/^(?:[0-2]\\d:[0-5]\\d:[0-5]\\d|23:59:60)(?:\\.\\d+)?(?:z|[+-]\\d\\d(?::?\\d\\d)?)$/i, compareTime),\n    \"date-time\": fmtDef(/^\\d\\d\\d\\d-[0-1]\\d-[0-3]\\dt(?:[0-2]\\d:[0-5]\\d:[0-5]\\d|23:59:60)(?:\\.\\d+)?(?:z|[+-]\\d\\d(?::?\\d\\d)?)$/i, compareDateTime),\n    \"iso-time\": fmtDef(/^(?:[0-2]\\d:[0-5]\\d:[0-5]\\d|23:59:60)(?:\\.\\d+)?(?:z|[+-]\\d\\d(?::?\\d\\d)?)?$/i, compareIsoTime),\n    \"iso-date-time\": fmtDef(/^\\d\\d\\d\\d-[0-1]\\d-[0-3]\\d[t\\s](?:[0-2]\\d:[0-5]\\d:[0-5]\\d|23:59:60)(?:\\.\\d+)?(?:z|[+-]\\d\\d(?::?\\d\\d)?)?$/i, compareIsoDateTime),\n    // uri: https://github.com/mafintosh/is-my-json-valid/blob/master/formats.js\n    uri: /^(?:[a-z][a-z0-9+\\-.]*:)(?:\\/?\\/)?[^\\s]*$/i,\n    \"uri-reference\": /^(?:(?:[a-z][a-z0-9+\\-.]*:)?\\/?\\/)?(?:[^\\\\\\s#][^\\s#]*)?(?:#[^\\\\\\s]*)?$/i,\n    // email (sources from jsen validator):\n    // http://stackoverflow.com/questions/201323/using-a-regular-expression-to-validate-an-email-address#answer-8829363\n    // http://www.w3.org/TR/html5/forms.html#valid-e-mail-address (search for 'wilful violation')\n    email: /^[a-z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\\.[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?)*$/i,\n};\nexports.formatNames = Object.keys(exports.fullFormats);\nfunction isLeapYear(year) {\n    // https://tools.ietf.org/html/rfc3339#appendix-C\n    return year % 4 === 0 && (year % 100 !== 0 || year % 400 === 0);\n}\nconst DATE = /^(\\d\\d\\d\\d)-(\\d\\d)-(\\d\\d)$/;\nconst DAYS = [0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\nfunction date(str) {\n    // full-date from http://tools.ietf.org/html/rfc3339#section-5.6\n    const matches = DATE.exec(str);\n    if (!matches)\n        return false;\n    const year = +matches[1];\n    const month = +matches[2];\n    const day = +matches[3];\n    return (month >= 1 &&\n        month <= 12 &&\n        day >= 1 &&\n        day <= (month === 2 && isLeapYear(year) ? 29 : DAYS[month]));\n}\nfunction compareDate(d1, d2) {\n    if (!(d1 && d2))\n        return undefined;\n    if (d1 > d2)\n        return 1;\n    if (d1 < d2)\n        return -1;\n    return 0;\n}\nconst TIME = /^(\\d\\d):(\\d\\d):(\\d\\d(?:\\.\\d+)?)(z|([+-])(\\d\\d)(?::?(\\d\\d))?)?$/i;\nfunction getTime(strictTimeZone) {\n    return function time(str) {\n        const matches = TIME.exec(str);\n        if (!matches)\n            return false;\n        const hr = +matches[1];\n        const min = +matches[2];\n        const sec = +matches[3];\n        const tz = matches[4];\n        const tzSign = matches[5] === \"-\" ? -1 : 1;\n        const tzH = +(matches[6] || 0);\n        const tzM = +(matches[7] || 0);\n        if (tzH > 23 || tzM > 59 || (strictTimeZone && !tz))\n            return false;\n        if (hr <= 23 && min <= 59 && sec < 60)\n            return true;\n        // leap second\n        const utcMin = min - tzM * tzSign;\n        const utcHr = hr - tzH * tzSign - (utcMin < 0 ? 1 : 0);\n        return (utcHr === 23 || utcHr === -1) && (utcMin === 59 || utcMin === -1) && sec < 61;\n    };\n}\nfunction compareTime(s1, s2) {\n    if (!(s1 && s2))\n        return undefined;\n    const t1 = new Date(\"2020-01-01T\" + s1).valueOf();\n    const t2 = new Date(\"2020-01-01T\" + s2).valueOf();\n    if (!(t1 && t2))\n        return undefined;\n    return t1 - t2;\n}\nfunction compareIsoTime(t1, t2) {\n    if (!(t1 && t2))\n        return undefined;\n    const a1 = TIME.exec(t1);\n    const a2 = TIME.exec(t2);\n    if (!(a1 && a2))\n        return undefined;\n    t1 = a1[1] + a1[2] + a1[3];\n    t2 = a2[1] + a2[2] + a2[3];\n    if (t1 > t2)\n        return 1;\n    if (t1 < t2)\n        return -1;\n    return 0;\n}\nconst DATE_TIME_SEPARATOR = /t|\\s/i;\nfunction getDateTime(strictTimeZone) {\n    const time = getTime(strictTimeZone);\n    return function date_time(str) {\n        // http://tools.ietf.org/html/rfc3339#section-5.6\n        const dateTime = str.split(DATE_TIME_SEPARATOR);\n        return dateTime.length === 2 && date(dateTime[0]) && time(dateTime[1]);\n    };\n}\nfunction compareDateTime(dt1, dt2) {\n    if (!(dt1 && dt2))\n        return undefined;\n    const d1 = new Date(dt1).valueOf();\n    const d2 = new Date(dt2).valueOf();\n    if (!(d1 && d2))\n        return undefined;\n    return d1 - d2;\n}\nfunction compareIsoDateTime(dt1, dt2) {\n    if (!(dt1 && dt2))\n        return undefined;\n    const [d1, t1] = dt1.split(DATE_TIME_SEPARATOR);\n    const [d2, t2] = dt2.split(DATE_TIME_SEPARATOR);\n    const res = compareDate(d1, d2);\n    if (res === undefined)\n        return undefined;\n    return res || compareTime(t1, t2);\n}\nconst NOT_URI_FRAGMENT = /\\/|:/;\nconst URI = /^(?:[a-z][a-z0-9+\\-.]*:)(?:\\/?\\/(?:(?:[a-z0-9\\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\\.[a-z0-9\\-._~!$&'()*+,;=:]+)\\]|(?:(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)|(?:[a-z0-9\\-._~!$&'()*+,;=]|%[0-9a-f]{2})*)(?::\\d*)?(?:\\/(?:[a-z0-9\\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*|\\/(?:(?:[a-z0-9\\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\\/(?:[a-z0-9\\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\\/(?:[a-z0-9\\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)(?:\\?(?:[a-z0-9\\-._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\\-._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i;\nfunction uri(str) {\n    // http://jmrware.com/articles/2009/uri_regexp/URI_regex.html + optional protocol + required \".\"\n    return NOT_URI_FRAGMENT.test(str) && URI.test(str);\n}\nconst BYTE = /^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/gm;\nfunction byte(str) {\n    BYTE.lastIndex = 0;\n    return BYTE.test(str);\n}\nconst MIN_INT32 = -(2 ** 31);\nconst MAX_INT32 = 2 ** 31 - 1;\nfunction validateInt32(value) {\n    return Number.isInteger(value) && value <= MAX_INT32 && value >= MIN_INT32;\n}\nfunction validateInt64(value) {\n    // JSON and javascript max Int is 2**53, so any int that passes isInteger is valid for Int64\n    return Number.isInteger(value);\n}\nfunction validateNumber() {\n    return true;\n}\nconst Z_ANCHOR = /[^\\\\]\\\\Z/;\nfunction regex(str) {\n    if (Z_ANCHOR.test(str))\n        return false;\n    try {\n        new RegExp(str);\n        return true;\n    }\n    catch (e) {\n        return false;\n    }\n}\n//# sourceMappingURL=formats.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.formatLimitDefinition = void 0;\nconst ajv_1 = require(\"ajv\");\nconst codegen_1 = require(\"ajv/dist/compile/codegen\");\nconst ops = codegen_1.operators;\nconst KWDs = {\n    formatMaximum: { okStr: \"<=\", ok: ops.LTE, fail: ops.GT },\n    formatMinimum: { okStr: \">=\", ok: ops.GTE, fail: ops.LT },\n    formatExclusiveMaximum: { okStr: \"<\", ok: ops.LT, fail: ops.GTE },\n    formatExclusiveMinimum: { okStr: \">\", ok: ops.GT, fail: ops.LTE },\n};\nconst error = {\n    message: ({ keyword, schemaCode }) => (0, codegen_1.str) `should be ${KWDs[keyword].okStr} ${schemaCode}`,\n    params: ({ keyword, schemaCode }) => (0, codegen_1._) `{comparison: ${KWDs[keyword].okStr}, limit: ${schemaCode}}`,\n};\nexports.formatLimitDefinition = {\n    keyword: Object.keys(KWDs),\n    type: \"string\",\n    schemaType: \"string\",\n    $data: true,\n    error,\n    code(cxt) {\n        const { gen, data, schemaCode, keyword, it } = cxt;\n        const { opts, self } = it;\n        if (!opts.validateFormats)\n            return;\n        const fCxt = new ajv_1.KeywordCxt(it, self.RULES.all.format.definition, \"format\");\n        if (fCxt.$data)\n            validate$DataFormat();\n        else\n            validateFormat();\n        function validate$DataFormat() {\n            const fmts = gen.scopeValue(\"formats\", {\n                ref: self.formats,\n                code: opts.code.formats,\n            });\n            const fmt = gen.const(\"fmt\", (0, codegen_1._) `${fmts}[${fCxt.schemaCode}]`);\n            cxt.fail$data((0, codegen_1.or)((0, codegen_1._) `typeof ${fmt} != \"object\"`, (0, codegen_1._) `${fmt} instanceof RegExp`, (0, codegen_1._) `typeof ${fmt}.compare != \"function\"`, compareCode(fmt)));\n        }\n        function validateFormat() {\n            const format = fCxt.schema;\n            const fmtDef = self.formats[format];\n            if (!fmtDef || fmtDef === true)\n                return;\n            if (typeof fmtDef != \"object\" ||\n                fmtDef instanceof RegExp ||\n                typeof fmtDef.compare != \"function\") {\n                throw new Error(`\"${keyword}\": format \"${format}\" does not define \"compare\" function`);\n            }\n            const fmt = gen.scopeValue(\"formats\", {\n                key: format,\n                ref: fmtDef,\n                code: opts.code.formats ? (0, codegen_1._) `${opts.code.formats}${(0, codegen_1.getProperty)(format)}` : undefined,\n            });\n            cxt.fail$data(compareCode(fmt));\n        }\n        function compareCode(fmt) {\n            return (0, codegen_1._) `${fmt}.compare(${data}, ${schemaCode}) ${KWDs[keyword].fail} 0`;\n        }\n    },\n    dependencies: [\"format\"],\n};\nconst formatLimitPlugin = (ajv) => {\n    ajv.addKeyword(exports.formatLimitDefinition);\n    return ajv;\n};\nexports.default = formatLimitPlugin;\n//# sourceMappingURL=limit.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst formats_1 = require(\"./formats\");\nconst limit_1 = require(\"./limit\");\nconst codegen_1 = require(\"ajv/dist/compile/codegen\");\nconst fullName = new codegen_1.Name(\"fullFormats\");\nconst fastName = new codegen_1.Name(\"fastFormats\");\nconst formatsPlugin = (ajv, opts = { keywords: true }) => {\n    if (Array.isArray(opts)) {\n        addFormats(ajv, opts, formats_1.fullFormats, fullName);\n        return ajv;\n    }\n    const [formats, exportName] = opts.mode === \"fast\" ? [formats_1.fastFormats, fastName] : [formats_1.fullFormats, fullName];\n    const list = opts.formats || formats_1.formatNames;\n    addFormats(ajv, list, formats, exportName);\n    if (opts.keywords)\n        (0, limit_1.default)(ajv);\n    return ajv;\n};\nformatsPlugin.get = (name, mode = \"full\") => {\n    const formats = mode === \"fast\" ? formats_1.fastFormats : formats_1.fullFormats;\n    const f = formats[name];\n    if (!f)\n        throw new Error(`Unknown format \"${name}\"`);\n    return f;\n};\nfunction addFormats(ajv, list, fs, exportName) {\n    var _a;\n    var _b;\n    (_a = (_b = ajv.opts.code).formats) !== null && _a !== void 0 ? _a : (_b.formats = (0, codegen_1._) `require(\"ajv-formats/dist/formats\").${exportName}`);\n    for (const f of list)\n        ajv.addFormat(f, fs[f]);\n}\nmodule.exports = exports = formatsPlugin;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = formatsPlugin;\n//# sourceMappingURL=index.js.map","/**\n * AJV-based JSON Schema validator provider\n */\n\nimport { Ajv } from 'ajv';\nimport _addFormats from 'ajv-formats';\n\nimport type { JsonSchemaType, JsonSchemaValidator, jsonSchemaValidator, JsonSchemaValidatorResult } from './types';\n\n/** Structural subset of the AJV interface used by {@link AjvJsonSchemaValidator}. */\ninterface AjvLike {\n    compile: (schema: unknown) => AjvValidateFunction;\n    getSchema: (keyRef: string) => AjvValidateFunction | undefined;\n    // eslint-disable-next-line @typescript-eslint/no-explicit-any\n    errorsText: (errors?: any) => string;\n}\n\ninterface AjvValidateFunction {\n    (input: unknown): boolean;\n    // eslint-disable-next-line @typescript-eslint/no-explicit-any\n    errors?: any;\n}\n\nfunction createDefaultAjvInstance(): Ajv {\n    const ajv = new Ajv({\n        strict: false,\n        validateFormats: true,\n        validateSchema: false,\n        allErrors: true\n    });\n\n    const addFormats = _addFormats as unknown as typeof _addFormats.default;\n    addFormats(ajv);\n\n    return ajv;\n}\n\n/**\n * AJV-backed JSON Schema validator. See `@modelcontextprotocol/{client,server}/validators/ajv`\n * for the customisation entry point (re-exports `Ajv` and `addFormats` from the bundled copy).\n *\n * @example Use with default configuration\n * ```ts source=\"./ajvProvider.examples.ts#AjvJsonSchemaValidator_default\"\n * const validator = new AjvJsonSchemaValidator();\n * ```\n *\n * @example Use with a custom AJV instance\n * ```ts source=\"./ajvProvider.examples.ts#AjvJsonSchemaValidator_customInstance\"\n * const ajv = new Ajv({ strict: true, allErrors: true });\n * const validator = new AjvJsonSchemaValidator(ajv);\n * ```\n *\n * @example Register ajv-formats\n * ```ts source=\"./ajvProvider.examples.ts#AjvJsonSchemaValidator_withFormats\"\n * const ajv = new Ajv({ strict: true, allErrors: true });\n * addFormats(ajv);\n * const validator = new AjvJsonSchemaValidator(ajv);\n * ```\n */\nexport class AjvJsonSchemaValidator implements jsonSchemaValidator {\n    private _ajv: AjvLike;\n\n    /**\n     * @param ajv - Optional pre-configured AJV-compatible instance. If omitted, a default instance is\n     * created with `strict: false`, `validateFormats: true`, `validateSchema: false`, `allErrors: true`,\n     * and `ajv-formats` registered. The parameter is typed structurally so consumers who don't pass\n     * an instance need not have `ajv` installed.\n     */\n    constructor(ajv?: AjvLike) {\n        this._ajv = ajv ?? createDefaultAjvInstance();\n    }\n\n    getValidator<T>(schema: JsonSchemaType): JsonSchemaValidator<T> {\n        const ajvValidator =\n            '$id' in schema && typeof schema.$id === 'string'\n                ? (this._ajv.getSchema(schema.$id) ?? this._ajv.compile(schema))\n                : this._ajv.compile(schema);\n\n        return (input: unknown): JsonSchemaValidatorResult<T> => {\n            const valid = ajvValidator(input);\n\n            return valid\n                ? {\n                      valid: true,\n                      data: input as T,\n                      errorMessage: undefined\n                  }\n                : {\n                      valid: false,\n                      data: undefined,\n                      errorMessage: this._ajv.errorsText(ajvValidator.errors)\n                  };\n        };\n    }\n}\n\nexport { Ajv } from 'ajv';\n/** `ajv-formats` default export, normalised through the CJS/ESM interop wrapper. */\nexport const addFormats = _addFormats as unknown as typeof _addFormats.default;\n"],"x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70],"mappings":"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"}