@recursica/adapter-tester 2.2.0 → 3.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +47 -16
- package/dist/adapter-tester.schema.json.d.ts +14 -10
- package/dist/cli.cjs +20 -24
- package/dist/cli.cjs.map +1 -1
- package/dist/cli.js +235 -4842
- package/dist/cli.js.map +1 -1
- package/dist/config.d.ts +46 -6
- package/dist/config.d.ts.map +1 -1
- package/dist/fileConfig.d.ts +9 -2
- package/dist/fileConfig.d.ts.map +1 -1
- package/dist/golden/diffPng.d.ts +8 -0
- package/dist/golden/diffPng.d.ts.map +1 -0
- package/dist/golden/manifest.schema.json.d.ts +27 -0
- package/dist/golden/manifestStore.d.ts +15 -0
- package/dist/golden/manifestStore.d.ts.map +1 -0
- package/dist/golden/resolveSourceOfTruthGolden.d.ts +29 -0
- package/dist/golden/resolveSourceOfTruthGolden.d.ts.map +1 -0
- package/dist/golden/validateManifest.d.ts +7 -0
- package/dist/golden/validateManifest.d.ts.map +1 -0
- package/dist/index-C6uYPRmx.cjs +9 -0
- package/dist/index-C6uYPRmx.cjs.map +1 -0
- package/dist/index-DqQzFSAH.js +4667 -0
- package/dist/index-DqQzFSAH.js.map +1 -0
- package/dist/index.cjs +1 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +21 -6
- package/dist/index.js.map +1 -1
- package/dist/testing/runVisualRegression.d.ts +22 -5
- package/dist/testing/runVisualRegression.d.ts.map +1 -1
- package/dist/testing.cjs +4 -1
- package/dist/testing.cjs.map +1 -1
- package/dist/testing.js +221 -151
- package/dist/testing.js.map +1 -1
- package/package.json +3 -2
- package/src/adapter-tester.schema.json +14 -10
- package/src/golden/manifest.schema.json +24 -0
- package/dist/config-B0Eop8Az.cjs +0 -2
- package/dist/config-B0Eop8Az.cjs.map +0 -1
- package/dist/config-CDxTeSAY.js +0 -21
- package/dist/config-CDxTeSAY.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index-DqQzFSAH.js","sources":["../../../node_modules/ajv/dist/compile/codegen/code.js","../../../node_modules/ajv/dist/compile/codegen/scope.js","../../../node_modules/ajv/dist/compile/codegen/index.js","../../../node_modules/ajv/dist/compile/util.js","../../../node_modules/ajv/dist/compile/names.js","../../../node_modules/ajv/dist/compile/errors.js","../../../node_modules/ajv/dist/compile/validate/boolSchema.js","../../../node_modules/ajv/dist/compile/rules.js","../../../node_modules/ajv/dist/compile/validate/applicability.js","../../../node_modules/ajv/dist/compile/validate/dataType.js","../../../node_modules/ajv/dist/compile/validate/defaults.js","../../../node_modules/ajv/dist/vocabularies/code.js","../../../node_modules/ajv/dist/compile/validate/keyword.js","../../../node_modules/ajv/dist/compile/validate/subschema.js","../../../node_modules/fast-deep-equal/index.js","../../../node_modules/json-schema-traverse/index.js","../../../node_modules/ajv/dist/compile/resolve.js","../../../node_modules/ajv/dist/compile/validate/index.js","../../../node_modules/ajv/dist/runtime/validation_error.js","../../../node_modules/ajv/dist/compile/ref_error.js","../../../node_modules/ajv/dist/compile/index.js","../../../node_modules/fast-uri/lib/utils.js","../../../node_modules/fast-uri/lib/schemes.js","../../../node_modules/fast-uri/index.js","../../../node_modules/ajv/dist/runtime/uri.js","../../../node_modules/ajv/dist/core.js","../../../node_modules/ajv/dist/vocabularies/core/id.js","../../../node_modules/ajv/dist/vocabularies/core/ref.js","../../../node_modules/ajv/dist/vocabularies/core/index.js","../../../node_modules/ajv/dist/vocabularies/validation/limitNumber.js","../../../node_modules/ajv/dist/vocabularies/validation/multipleOf.js","../../../node_modules/ajv/dist/runtime/ucs2length.js","../../../node_modules/ajv/dist/vocabularies/validation/limitLength.js","../../../node_modules/ajv/dist/vocabularies/validation/pattern.js","../../../node_modules/ajv/dist/vocabularies/validation/limitProperties.js","../../../node_modules/ajv/dist/vocabularies/validation/required.js","../../../node_modules/ajv/dist/vocabularies/validation/limitItems.js","../../../node_modules/ajv/dist/runtime/equal.js","../../../node_modules/ajv/dist/vocabularies/validation/uniqueItems.js","../../../node_modules/ajv/dist/vocabularies/validation/const.js","../../../node_modules/ajv/dist/vocabularies/validation/enum.js","../../../node_modules/ajv/dist/vocabularies/validation/index.js","../../../node_modules/ajv/dist/vocabularies/applicator/additionalItems.js","../../../node_modules/ajv/dist/vocabularies/applicator/items.js","../../../node_modules/ajv/dist/vocabularies/applicator/prefixItems.js","../../../node_modules/ajv/dist/vocabularies/applicator/items2020.js","../../../node_modules/ajv/dist/vocabularies/applicator/contains.js","../../../node_modules/ajv/dist/vocabularies/applicator/dependencies.js","../../../node_modules/ajv/dist/vocabularies/applicator/propertyNames.js","../../../node_modules/ajv/dist/vocabularies/applicator/additionalProperties.js","../../../node_modules/ajv/dist/vocabularies/applicator/properties.js","../../../node_modules/ajv/dist/vocabularies/applicator/patternProperties.js","../../../node_modules/ajv/dist/vocabularies/applicator/not.js","../../../node_modules/ajv/dist/vocabularies/applicator/anyOf.js","../../../node_modules/ajv/dist/vocabularies/applicator/oneOf.js","../../../node_modules/ajv/dist/vocabularies/applicator/allOf.js","../../../node_modules/ajv/dist/vocabularies/applicator/if.js","../../../node_modules/ajv/dist/vocabularies/applicator/thenElse.js","../../../node_modules/ajv/dist/vocabularies/applicator/index.js","../../../node_modules/ajv/dist/vocabularies/format/format.js","../../../node_modules/ajv/dist/vocabularies/format/index.js","../../../node_modules/ajv/dist/vocabularies/metadata.js","../../../node_modules/ajv/dist/vocabularies/draft7.js","../../../node_modules/ajv/dist/vocabularies/discriminator/types.js","../../../node_modules/ajv/dist/vocabularies/discriminator/index.js","../../../node_modules/ajv/dist/ajv.js","../../../node_modules/ajv-formats/dist/formats.js","../../../node_modules/ajv-formats/dist/limit.js","../../../node_modules/ajv-formats/dist/index.js"],"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(time, compareTime),\n \"date-time\": fmtDef(date_time, compareDateTime),\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|[01]?\\d\\d?)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d\\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]\\d[t\\s](?:[0-2]\\d:[0-5]\\d:[0-5]\\d|23:59:60)(?:\\.\\d+)?(?:z|[+-]\\d\\d(?::?\\d\\d)?)$/i, compareDateTime),\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 time(str, withTimeZone) {\n const matches = TIME.exec(str);\n if (!matches)\n return false;\n const hour = +matches[1];\n const minute = +matches[2];\n const second = +matches[3];\n const timeZone = matches[5];\n return (((hour <= 23 && minute <= 59 && second <= 59) ||\n (hour === 23 && minute === 59 && second === 60)) &&\n (!withTimeZone || timeZone !== \"\"));\n}\nfunction compareTime(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] + (a1[4] || \"\");\n t2 = a2[1] + a2[2] + a2[3] + (a2[4] || \"\");\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 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], true);\n}\nfunction compareDateTime(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 }) => codegen_1.str `should be ${KWDs[keyword].okStr} ${schemaCode}`,\n params: ({ keyword, schemaCode }) => 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\", codegen_1._ `${fmts}[${fCxt.schemaCode}]`);\n cxt.fail$data(codegen_1.or(codegen_1._ `typeof ${fmt} != \"object\"`, codegen_1._ `${fmt} instanceof RegExp`, 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 ? codegen_1._ `${opts.code.formats}${codegen_1.getProperty(format)}` : undefined,\n });\n cxt.fail$data(compareCode(fmt));\n }\n function compareCode(fmt) {\n return 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 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 = 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"],"names":["exports","_CodeOrName","Name","s","_Code","code","item","_a","c","names","_","strs","args","i","addCodeArg","plus","str","expr","safeStringify","optimize","arg","interpolate","res","mergeExprItems","a","b","strConcat","c1","c2","x","stringify","getProperty","key","getEsmExportName","regexpCode","rx","code_1","require$$0","ValueError","name","UsedValueState","Scope","prefixes","parent","nameOrPrefix","prefix","ng","_b","ValueScopeName","nameStr","value","property","itemIndex","line","ValueScope","opts","valueKey","vs","_name","keyOrRef","scopeName","values","usedValues","getCode","valueCode","nameSet","def","scope_1","require$$1","code_2","scope_2","Node","_names","_constants","Def","varKind","rhs","es5","_n","constants","optimizeExpr","Assign","lhs","sideEffects","addExprNames","AssignOp","op","Label","label","Break","Throw","error","AnyCode","ParentNode","nodes","n","subtractNames","addNames","BlockNode","Root","Else","If","condition","cond","e","ns","not","For","ForLoop","iteration","ForRange","from","to","ForIter","loop","iterable","Func","async","Return","Try","Catch","Finally","CodeGen","extScope","prefixOrName","constant","_constant","keyValues","thenBody","elseBody","node","forBody","arr","obj","tryBody","catchCode","finallyCode","body","nodeCount","len","toClose","funcBody","N1","N2","replaceName","canOptimize","items","par","andCode","mappend","and","orCode","or","y","util","codegen_1","toHash","hash","alwaysValidSchema","it","schema","checkUnknownRules","schemaHasRules","self","rules","checkStrictMode","schemaHasRulesButRef","RULES","schemaRefOrVal","topSchemaRef","schemaPath","keyword","$data","unescapeFragment","unescapeJsonPointer","escapeFragment","escapeJsonPointer","eachItem","xs","f","makeMergeEvaluated","mergeNames","mergeToName","mergeValues","resultToName","gen","toName","setEvaluated","evaluatedPropsToName","ps","props","p","snippets","useFunc","Type","getErrorPath","dataProp","dataPropType","jsPropertySyntax","isNumber","msg","mode","names_1","util_1","require$$2","schemaType","reportError","cxt","errorPaths","overrideAllErrors","compositeRule","allErrors","errObj","errorObjectCode","addError","returnErrors","reportExtraError","resetErrorsCount","errsCount","extendErrors","schemaValue","data","err","errs","validateName","schemaEnv","E","createErrors","errorObject","errorInstancePath","errorSchemaPath","extraErrorProps","errorPath","instancePath","instPath","errSchemaPath","parentSchema","schPath","params","message","propertyName","boolSchema","errors_1","boolError","topBoolOrEmptySchema","falseSchemaError","boolOrEmptySchema","valid","_jsonTypes","jsonTypes","isJSONType","getRules","groups","applicability","schemaHasRulesForType","type","group","shouldUseGroup","rule","shouldUseRule","kwd","dataType","rules_1","applicability_1","require$$3","require$$4","DataType","getSchemaTypes","types","getJSONTypes","ts","coerceAndCheckDataType","coerceTo","coerceToTypes","checkTypes","wrongType","checkDataTypes","coerceData","reportTypeError","COERCIBLE","coerceTypes","t","coerced","coerceSpecificType","assignParentData","parentData","parentDataProperty","checkDataType","strictNums","correct","EQ","numCond","_cond","dataTypes","notObj","typeError","getTypeErrorContext","schemaCode","defaults","assignDefaults","ty","properties","assignDefault","sch","prop","defaultValue","childData","util_2","checkReportMissingProp","noPropertyInData","checkMissingProp","missing","reportMissingProp","hasPropFunc","isOwnProperty","propertyInData","ownProperties","allSchemaProperties","schemaMap","schemaProperties","callValidateCode","func","context","passSchema","dataAndSchema","valCxt","newRegExp","usePattern","pattern","u","regExp","validateArray","validArr","validateItems","notValid","validateUnion","schValid","_sch","schCxt","macroKeywordCode","macroSchema","schemaRef","useKeyword","funcKeywordCode","checkAsyncKeyword","validate","validateRef","validateKeyword","assignValid","modifyData","reportErrs","ruleErrs","validateAsync","validateSync","addErrs","validateErrs","_await","passCxt","errors","result","validSchemaType","allowUndefined","st","validateKeywordUsage","deps","subschema","getSubschema","schemaProp","extendSubschemaData","dpType","dataPathArr","nextData","dataContextProps","_nextData","extendSubschemaMode","jtdDiscriminator","jtdMetadata","fastDeepEqual","equal","length","keys","traverse","jsonSchemaTraverseModule","cb","pre","post","_traverse","jsonPtr","rootSchema","parentJsonPtr","parentKeyword","keyIndex","escapeJsonPtr","resolve","SIMPLE_INLINED","inlineRef","limit","hasRef","countKeys","REF_KEYWORDS","count","getFullPath","resolver","id","normalize","normalizeId","_getFullPath","TRAILING_SLASH_HASH","resolveUrl","baseId","ANCHOR","getSchemaRefs","schemaId","uriResolver","schId","baseIds","pathPrefix","localRefs","schemaRefs","fullPath","innerBaseId","addRef","addAnchor","ref","_resolve","ambiguos","schOrRef","checkAmbiguosRef","anchor","sch1","sch2","boolSchema_1","dataType_1","dataType_2","defaults_1","keyword_1","subschema_1","require$$5","require$$6","require$$7","resolve_1","require$$8","require$$9","require$$10","validateFunctionCode","isSchemaObj","checkKeywords","schemaCxtHasRules","topSchemaObjCode","validateFunction","funcSourceUrl","destructureValCxtES5","destructureValCxt","commentKeyword","checkNoDefault","resetEvaluated","typeAndKeywords","returnResults","subschemaCode","subSchemaObjCode","updateContext","checkAsyncSchema","checkRefsAndKeywords","schemaKeywords","checkedTypes","rootName","ValidationError","assignEvaluated","evaluated","typeErrors","keywordCode","checkStrictTypes","groupKeywords","iterateKeywords","useDefaults","checkContextTypes","checkMultipleTypes","checkKeywordTypes","includesType","strictTypesError","narrowSchemaTypes","hasApplicableType","schTs","kwdT","withTypes","KeywordCxt","getData","successAction","failAction","append","errorParams","assign","codeBlock","$dataValid","wrong$DataType","invalid$DataSchema","validateSchemaRef","appl","nextContext","schemaCxt","ruleType","JSON_POINTER","RELATIVE_JSON_POINTER","dataLevel","dataNames","jsonPointer","matches","up","errorMsg","segments","segment","pointerType","validation_error","ref_error","MissingRefError","compile","validation_error_1","validate_1","SchemaEnv","env","compileSchema","getCompilingSchema","rootId","lines","_ValidationError","sourceCode","validateCode","resolveRef","root","schOrFunc","inlineOrCompile","schEnv","sameSchemaEnv","s1","s2","resolveSchema","refPath","getJsonPointer","PREVENT_SCOPE_CHANGE","parsedRef","part","partSchema","$ref","isUUID","isIPv4","stringArrayToHexStripped","input","acc","nonSimpleDomain","consumeIsZone","buffer","consumeHextets","address","output","hex","getIPV6","tokenCount","endipv6Encountered","endIpv6","consume","cursor","normalizeIPv6","host","findToken","ipv6","newHost","escapedHost","token","ind","removeDotSegments","path","nextSlash","normalizeComponentEncoding","component","esc","recomposeAuthority","uriTokens","ipV6res","utils","URN_REG","supportedSchemeNames","isValidSchemeName","wsIsSecure","wsComponent","httpParse","httpSerialize","secure","wsParse","wsSerialize","query","urnParse","urnComponent","options","scheme","urnScheme","schemeHandler","getSchemeHandler","urnSerialize","nid","uriComponent","nss","urnuuidParse","uuidComponent","urnuuidSerialize","http","https","ws","wss","SCHEMES","schemes","uri","serialize","parse","baseURI","relativeURI","schemelessOptions","resolved","resolveComponent","base","relative","skipNormalization","target","uriA","uriB","cmpts","authority","URI_PARSE","parsed","isIP","ipv6result","fastUri","fastUriModule","uri_1","ref_error_1","compile_1","codegen_2","$dataRefSchema","defaultRegExp","flags","META_IGNORE_OPTIONS","EXT_SCOPE_NAMES","removedOptions","deprecatedOptions","MAX_EXPRESSION","requiredOptions","o","_c","_d","_e","_f","_g","_h","_j","_k","_l","_m","_o","_p","_q","_r","_s","_t","_u","_v","_w","_x","_y","_z","_0","_optz","Ajv","getLogger","formatOpt","checkOptions","getMetaSchemaOptions","addInitialFormats","addInitialKeywords","addInitialSchemas","meta","_dataRefSchema","schemaKeyRef","v","_meta","loadSchema","runCompileAsync","_schema","loadMetaSchema","_compileAsync","checkLoaded","loadMissingSchema","missingRef","_loadSchema","_validateSchema","throwOrLogError","$schema","keyRef","getSchEnv","cacheKey","definitions","kwdOrDef","checkKeyword","addRule","keywordMetaschema","definition","k","format","separator","dataVar","text","metaSchema","keywordsJsonPointers","keywords","seg","schemaOrData","schemas","regex","validateSchema","addSchema","currentOpts","checkOpts","log","opt","optsSchemas","defs","metaOpts","noLogs","logger","KEYWORD_NAME","ruleGroup","addBeforeRule","before","_rule","$dataRef","callRootRef","schOrEnv","callValidate","inlineRefSchema","callRef","getValidate","schName","$async","callAsyncRef","callSyncRef","addEvaluatedFrom","addErrorsFrom","source","schEvaluated","core_1","id_1","ref_1","core","limitNumber","ops","KWDs","multipleOf","prec","invalid","ucs2length_1","ucs2length","pos","limitLength","comp","regExpCode","limitProperties","required","missingProperty","useLoop","allErrorsMode","exitOnErrorMode","definedProperties","requiredKey","loopAllRequired","loopUntilMissing","limitItems","equal_1","uniqueItems","j","itemTypes","validateUniqueItems","loopN","loopN2","indices","eql","outer","_const","_enum","getEql","loopEnum","vSchema","equalCode","validation_1","limitNumber_1","multipleOf_1","limitLength_1","pattern_1","limitProperties_1","required_1","limitItems_1","uniqueItems_1","const_1","enum_1","validation","additionalItems","validateAdditionalItems","validateTuple","extraItems","schArr","checkStrictTuple","l","fullTuple","prefixItems","items_1","items2020","additionalItems_1","contains","min","max","minContains","maxContains","validateItemsWithCount","checkLimits","_valid","block","depsCount","property_ies","propDeps","schDeps","splitDependencies","validatePropertyDeps","validateSchemaDeps","propertyDeps","schemaDeps","hasProperty","depProp","propertyNames","additionalProperties","patProps","checkAdditionalProperties","additionalPropertyCode","isAdditional","definedProp","propsSchema","deleteAdditional","applyAdditionalSchema","additionalProperties_1","allProps","hasDefault","applyPropertySchema","patternProperties","patterns","alwaysValidPatterns","checkProperties","validatePatternProperties","pat","checkMatchingProperties","validateProperties","alwaysValid","anyOf","oneOf","passing","validateOneOf","allOf","_if","hasThen","hasSchema","hasElse","validateIf","ifClause","validateClause","thenElse","applicator","prefixItems_1","items2020_1","contains_1","dependencies_1","propertyNames_1","properties_1","patternProperties_1","not_1","anyOf_1","require$$11","oneOf_1","require$$12","allOf_1","require$$13","if_1","require$$14","thenElse_1","require$$15","getApplicator","draft2020","validate$DataFormat","validateFormat","fmts","fDef","fType","unknownFmt","invalidFmt","callFormat","validData","formatDef","unknownFormat","fmtType","fmtRef","getFormat","validCondition","unknownMsg","fmtDef","fmt","format_2","metadata","draft7","applicator_1","format_1","metadata_1","draft7Vocabularies","DiscrError","discriminator","types_1","discrError","tagName","tag","validateMapping","mapping","getMapping","tagValue","applyTagSchema","oneOfMapping","topRequired","hasRequired","tagRequired","propSch","addMappings","addMapping","draft7_1","discriminator_1","draft7MetaSchema","META_SUPPORT_DATA","META_SCHEMA_ID","module","compare","date","compareDate","time","compareTime","date_time","compareDateTime","byte","validateInt32","validateInt64","validateNumber","isLeapYear","year","DATE","DAYS","month","day","d1","d2","TIME","withTimeZone","hour","minute","second","timeZone","t1","t2","a1","a2","DATE_TIME_SEPARATOR","dateTime","dt1","dt2","NOT_URI_FRAGMENT","URI","BYTE","MIN_INT32","MAX_INT32","Z_ANCHOR","ajv_1","fCxt","compareCode","formatLimitPlugin","ajv","formats_1","limit_1","fullName","fastName","formatsPlugin","addFormats","formats","exportName","list","fs"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,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]}
|