{"version":3,"file":"cfWorkerProvider-BrJKpSFH.mjs","names":["regex","keywordLocation"],"sources":["../../../node_modules/.pnpm/@cfworker+json-schema@4.1.1/node_modules/@cfworker/json-schema/dist/esm/deep-compare-strict.js","../../../node_modules/.pnpm/@cfworker+json-schema@4.1.1/node_modules/@cfworker/json-schema/dist/esm/pointer.js","../../../node_modules/.pnpm/@cfworker+json-schema@4.1.1/node_modules/@cfworker/json-schema/dist/esm/dereference.js","../../../node_modules/.pnpm/@cfworker+json-schema@4.1.1/node_modules/@cfworker/json-schema/dist/esm/format.js","../../../node_modules/.pnpm/@cfworker+json-schema@4.1.1/node_modules/@cfworker/json-schema/dist/esm/ucs2-length.js","../../../node_modules/.pnpm/@cfworker+json-schema@4.1.1/node_modules/@cfworker/json-schema/dist/esm/validate.js","../../../node_modules/.pnpm/@cfworker+json-schema@4.1.1/node_modules/@cfworker/json-schema/dist/esm/validator.js","../../core-internal/src/validators/cfWorkerProvider.ts"],"sourcesContent":["export function deepCompareStrict(a, b) {\n    const typeofa = typeof a;\n    if (typeofa !== typeof b) {\n        return false;\n    }\n    if (Array.isArray(a)) {\n        if (!Array.isArray(b)) {\n            return false;\n        }\n        const length = a.length;\n        if (length !== b.length) {\n            return false;\n        }\n        for (let i = 0; i < length; i++) {\n            if (!deepCompareStrict(a[i], b[i])) {\n                return false;\n            }\n        }\n        return true;\n    }\n    if (typeofa === 'object') {\n        if (!a || !b) {\n            return a === b;\n        }\n        const aKeys = Object.keys(a);\n        const bKeys = Object.keys(b);\n        const length = aKeys.length;\n        if (length !== bKeys.length) {\n            return false;\n        }\n        for (const k of aKeys) {\n            if (!deepCompareStrict(a[k], b[k])) {\n                return false;\n            }\n        }\n        return true;\n    }\n    return a === b;\n}\n","export function encodePointer(p) {\n    return encodeURI(escapePointer(p));\n}\nexport function escapePointer(p) {\n    return p.replace(/~/g, '~0').replace(/\\//g, '~1');\n}\n","import { encodePointer } from './pointer.js';\nexport const schemaKeyword = {\n    additionalItems: true,\n    unevaluatedItems: true,\n    items: true,\n    contains: true,\n    additionalProperties: true,\n    unevaluatedProperties: true,\n    propertyNames: true,\n    not: true,\n    if: true,\n    then: true,\n    else: true\n};\nexport const schemaArrayKeyword = {\n    prefixItems: true,\n    items: true,\n    allOf: true,\n    anyOf: true,\n    oneOf: true\n};\nexport const schemaMapKeyword = {\n    $defs: true,\n    definitions: true,\n    properties: true,\n    patternProperties: true,\n    dependentSchemas: true\n};\nexport const ignoredKeyword = {\n    id: true,\n    $id: true,\n    $ref: true,\n    $schema: true,\n    $anchor: true,\n    $vocabulary: true,\n    $comment: true,\n    default: true,\n    enum: true,\n    const: true,\n    required: true,\n    type: 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};\nexport let initialBaseURI = typeof self !== 'undefined' &&\n    self.location &&\n    self.location.origin !== 'null'\n    ?\n        new URL(self.location.origin + self.location.pathname + location.search)\n    : new URL('https://github.com/cfworker');\nexport function dereference(schema, lookup = Object.create(null), baseURI = initialBaseURI, basePointer = '') {\n    if (schema && typeof schema === 'object' && !Array.isArray(schema)) {\n        const id = schema.$id || schema.id;\n        if (id) {\n            const url = new URL(id, baseURI.href);\n            if (url.hash.length > 1) {\n                lookup[url.href] = schema;\n            }\n            else {\n                url.hash = '';\n                if (basePointer === '') {\n                    baseURI = url;\n                }\n                else {\n                    dereference(schema, lookup, baseURI);\n                }\n            }\n        }\n    }\n    else if (schema !== true && schema !== false) {\n        return lookup;\n    }\n    const schemaURI = baseURI.href + (basePointer ? '#' + basePointer : '');\n    if (lookup[schemaURI] !== undefined) {\n        throw new Error(`Duplicate schema URI \"${schemaURI}\".`);\n    }\n    lookup[schemaURI] = schema;\n    if (schema === true || schema === false) {\n        return lookup;\n    }\n    if (schema.__absolute_uri__ === undefined) {\n        Object.defineProperty(schema, '__absolute_uri__', {\n            enumerable: false,\n            value: schemaURI\n        });\n    }\n    if (schema.$ref && schema.__absolute_ref__ === undefined) {\n        const url = new URL(schema.$ref, baseURI.href);\n        url.hash = url.hash;\n        Object.defineProperty(schema, '__absolute_ref__', {\n            enumerable: false,\n            value: url.href\n        });\n    }\n    if (schema.$recursiveRef && schema.__absolute_recursive_ref__ === undefined) {\n        const url = new URL(schema.$recursiveRef, baseURI.href);\n        url.hash = url.hash;\n        Object.defineProperty(schema, '__absolute_recursive_ref__', {\n            enumerable: false,\n            value: url.href\n        });\n    }\n    if (schema.$anchor) {\n        const url = new URL('#' + schema.$anchor, baseURI.href);\n        lookup[url.href] = schema;\n    }\n    for (let key in schema) {\n        if (ignoredKeyword[key]) {\n            continue;\n        }\n        const keyBase = `${basePointer}/${encodePointer(key)}`;\n        const subSchema = schema[key];\n        if (Array.isArray(subSchema)) {\n            if (schemaArrayKeyword[key]) {\n                const length = subSchema.length;\n                for (let i = 0; i < length; i++) {\n                    dereference(subSchema[i], lookup, baseURI, `${keyBase}/${i}`);\n                }\n            }\n        }\n        else if (schemaMapKeyword[key]) {\n            for (let subKey in subSchema) {\n                dereference(subSchema[subKey], lookup, baseURI, `${keyBase}/${encodePointer(subKey)}`);\n            }\n        }\n        else {\n            dereference(subSchema, lookup, baseURI, keyBase);\n        }\n    }\n    return lookup;\n}\n","const DATE = /^(\\d\\d\\d\\d)-(\\d\\d)-(\\d\\d)$/;\nconst DAYS = [0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\nconst TIME = /^(\\d\\d):(\\d\\d):(\\d\\d)(\\.\\d+)?(z|[+-]\\d\\d(?::?\\d\\d)?)?$/i;\nconst 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;\nconst URIREF = /^(?:[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;\nconst URITEMPLATE = /^(?:(?:[^\\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;\nconst URL_ = /^(?:(?:https?|ftp):\\/\\/)(?:\\S+(?::\\S*)?@)?(?:(?!10(?:\\.\\d{1,3}){3})(?!127(?:\\.\\d{1,3}){3})(?!169\\.254(?:\\.\\d{1,3}){2})(?!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-z\\u{00a1}-\\u{ffff}0-9]+-?)*[a-z\\u{00a1}-\\u{ffff}0-9]+)(?:\\.(?:[a-z\\u{00a1}-\\u{ffff}0-9]+-?)*[a-z\\u{00a1}-\\u{ffff}0-9]+)*(?:\\.(?:[a-z\\u{00a1}-\\u{ffff}]{2,})))(?::\\d{2,5})?(?:\\/[^\\s]*)?$/iu;\nconst UUID = /^(?:urn:uuid:)?[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/i;\nconst JSON_POINTER = /^(?:\\/(?:[^~/]|~0|~1)*)*$/;\nconst JSON_POINTER_URI_FRAGMENT = /^#(?:\\/(?:[a-z0-9_\\-.!$&'()*+,;:=@]|%[0-9a-f]{2}|~0|~1)*)*$/i;\nconst RELATIVE_JSON_POINTER = /^(?:0|[1-9][0-9]*)(?:#|(?:\\/(?:[^~/]|~0|~1)*)*)$/;\nconst EMAIL = (input) => {\n    if (input[0] === '\"')\n        return false;\n    const [name, host, ...rest] = input.split('@');\n    if (!name ||\n        !host ||\n        rest.length !== 0 ||\n        name.length > 64 ||\n        host.length > 253)\n        return false;\n    if (name[0] === '.' || name.endsWith('.') || name.includes('..'))\n        return false;\n    if (!/^[a-z0-9.-]+$/i.test(host) ||\n        !/^[a-z0-9.!#$%&'*+/=?^_`{|}~-]+$/i.test(name))\n        return false;\n    return host\n        .split('.')\n        .every(part => /^[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?$/i.test(part));\n};\nconst IPV4 = /^(?:(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)$/;\nconst 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;\nconst DURATION = (input) => input.length > 1 &&\n    input.length < 80 &&\n    (/^P\\d+([.,]\\d+)?W$/.test(input) ||\n        (/^P[\\dYMDTHS]*(\\d[.,]\\d+)?[YMDHS]$/.test(input) &&\n            /^P([.,\\d]+Y)?([.,\\d]+M)?([.,\\d]+D)?(T([.,\\d]+H)?([.,\\d]+M)?([.,\\d]+S)?)?$/.test(input)));\nfunction bind(r) {\n    return r.test.bind(r);\n}\nexport const format = {\n    date,\n    time: time.bind(undefined, false),\n    'date-time': date_time,\n    duration: DURATION,\n    uri,\n    'uri-reference': bind(URIREF),\n    'uri-template': bind(URITEMPLATE),\n    url: bind(URL_),\n    email: EMAIL,\n    hostname: bind(HOSTNAME),\n    ipv4: bind(IPV4),\n    ipv6: bind(IPV6),\n    regex: regex,\n    uuid: bind(UUID),\n    'json-pointer': bind(JSON_POINTER),\n    'json-pointer-uri-fragment': bind(JSON_POINTER_URI_FRAGMENT),\n    'relative-json-pointer': bind(RELATIVE_JSON_POINTER)\n};\nfunction isLeapYear(year) {\n    return year % 4 === 0 && (year % 100 !== 0 || year % 400 === 0);\n}\nfunction date(str) {\n    const matches = str.match(DATE);\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 time(full, str) {\n    const matches = str.match(TIME);\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        (!full || timeZone));\n}\nconst DATE_TIME_SEPARATOR = /t|\\s/i;\nfunction date_time(str) {\n    const dateTime = str.split(DATE_TIME_SEPARATOR);\n    return dateTime.length == 2 && date(dateTime[0]) && time(true, dateTime[1]);\n}\nconst NOT_URI_FRAGMENT = /\\/|:/;\nconst URI_PATTERN = /^(?:[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    return NOT_URI_FRAGMENT.test(str) && URI_PATTERN.test(str);\n}\nconst Z_ANCHOR = /[^\\\\]\\\\Z/;\nfunction regex(str) {\n    if (Z_ANCHOR.test(str))\n        return false;\n    try {\n        new RegExp(str, 'u');\n        return true;\n    }\n    catch (e) {\n        return false;\n    }\n}\n","export function ucs2length(s) {\n    let result = 0;\n    let length = s.length;\n    let index = 0;\n    let charCode;\n    while (index < length) {\n        result++;\n        charCode = s.charCodeAt(index++);\n        if (charCode >= 0xd800 && charCode <= 0xdbff && index < length) {\n            charCode = s.charCodeAt(index);\n            if ((charCode & 0xfc00) == 0xdc00) {\n                index++;\n            }\n        }\n    }\n    return result;\n}\n","import { deepCompareStrict } from './deep-compare-strict.js';\nimport { dereference } from './dereference.js';\nimport { format } from './format.js';\nimport { encodePointer } from './pointer.js';\nimport { ucs2length } from './ucs2-length.js';\nexport function validate(instance, schema, draft = '2019-09', lookup = dereference(schema), shortCircuit = true, recursiveAnchor = null, instanceLocation = '#', schemaLocation = '#', evaluated = Object.create(null)) {\n    if (schema === true) {\n        return { valid: true, errors: [] };\n    }\n    if (schema === false) {\n        return {\n            valid: false,\n            errors: [\n                {\n                    instanceLocation,\n                    keyword: 'false',\n                    keywordLocation: instanceLocation,\n                    error: 'False boolean schema.'\n                }\n            ]\n        };\n    }\n    const rawInstanceType = typeof instance;\n    let instanceType;\n    switch (rawInstanceType) {\n        case 'boolean':\n        case 'number':\n        case 'string':\n            instanceType = rawInstanceType;\n            break;\n        case 'object':\n            if (instance === null) {\n                instanceType = 'null';\n            }\n            else if (Array.isArray(instance)) {\n                instanceType = 'array';\n            }\n            else {\n                instanceType = 'object';\n            }\n            break;\n        default:\n            throw new Error(`Instances of \"${rawInstanceType}\" type are not supported.`);\n    }\n    const { $ref, $recursiveRef, $recursiveAnchor, type: $type, const: $const, enum: $enum, required: $required, not: $not, anyOf: $anyOf, allOf: $allOf, oneOf: $oneOf, if: $if, then: $then, else: $else, format: $format, properties: $properties, patternProperties: $patternProperties, additionalProperties: $additionalProperties, unevaluatedProperties: $unevaluatedProperties, minProperties: $minProperties, maxProperties: $maxProperties, propertyNames: $propertyNames, dependentRequired: $dependentRequired, dependentSchemas: $dependentSchemas, dependencies: $dependencies, prefixItems: $prefixItems, items: $items, additionalItems: $additionalItems, unevaluatedItems: $unevaluatedItems, contains: $contains, minContains: $minContains, maxContains: $maxContains, minItems: $minItems, maxItems: $maxItems, uniqueItems: $uniqueItems, minimum: $minimum, maximum: $maximum, exclusiveMinimum: $exclusiveMinimum, exclusiveMaximum: $exclusiveMaximum, multipleOf: $multipleOf, minLength: $minLength, maxLength: $maxLength, pattern: $pattern, __absolute_ref__, __absolute_recursive_ref__ } = schema;\n    const errors = [];\n    if ($recursiveAnchor === true && recursiveAnchor === null) {\n        recursiveAnchor = schema;\n    }\n    if ($recursiveRef === '#') {\n        const refSchema = recursiveAnchor === null\n            ? lookup[__absolute_recursive_ref__]\n            : recursiveAnchor;\n        const keywordLocation = `${schemaLocation}/$recursiveRef`;\n        const result = validate(instance, recursiveAnchor === null ? schema : recursiveAnchor, draft, lookup, shortCircuit, refSchema, instanceLocation, keywordLocation, evaluated);\n        if (!result.valid) {\n            errors.push({\n                instanceLocation,\n                keyword: '$recursiveRef',\n                keywordLocation,\n                error: 'A subschema had errors.'\n            }, ...result.errors);\n        }\n    }\n    if ($ref !== undefined) {\n        const uri = __absolute_ref__ || $ref;\n        const refSchema = lookup[uri];\n        if (refSchema === undefined) {\n            let message = `Unresolved $ref \"${$ref}\".`;\n            if (__absolute_ref__ && __absolute_ref__ !== $ref) {\n                message += `  Absolute URI \"${__absolute_ref__}\".`;\n            }\n            message += `\\nKnown schemas:\\n- ${Object.keys(lookup).join('\\n- ')}`;\n            throw new Error(message);\n        }\n        const keywordLocation = `${schemaLocation}/$ref`;\n        const result = validate(instance, refSchema, draft, lookup, shortCircuit, recursiveAnchor, instanceLocation, keywordLocation, evaluated);\n        if (!result.valid) {\n            errors.push({\n                instanceLocation,\n                keyword: '$ref',\n                keywordLocation,\n                error: 'A subschema had errors.'\n            }, ...result.errors);\n        }\n        if (draft === '4' || draft === '7') {\n            return { valid: errors.length === 0, errors };\n        }\n    }\n    if (Array.isArray($type)) {\n        let length = $type.length;\n        let valid = false;\n        for (let i = 0; i < length; i++) {\n            if (instanceType === $type[i] ||\n                ($type[i] === 'integer' &&\n                    instanceType === 'number' &&\n                    instance % 1 === 0 &&\n                    instance === instance)) {\n                valid = true;\n                break;\n            }\n        }\n        if (!valid) {\n            errors.push({\n                instanceLocation,\n                keyword: 'type',\n                keywordLocation: `${schemaLocation}/type`,\n                error: `Instance type \"${instanceType}\" is invalid. Expected \"${$type.join('\", \"')}\".`\n            });\n        }\n    }\n    else if ($type === 'integer') {\n        if (instanceType !== 'number' || instance % 1 || instance !== instance) {\n            errors.push({\n                instanceLocation,\n                keyword: 'type',\n                keywordLocation: `${schemaLocation}/type`,\n                error: `Instance type \"${instanceType}\" is invalid. Expected \"${$type}\".`\n            });\n        }\n    }\n    else if ($type !== undefined && instanceType !== $type) {\n        errors.push({\n            instanceLocation,\n            keyword: 'type',\n            keywordLocation: `${schemaLocation}/type`,\n            error: `Instance type \"${instanceType}\" is invalid. Expected \"${$type}\".`\n        });\n    }\n    if ($const !== undefined) {\n        if (instanceType === 'object' || instanceType === 'array') {\n            if (!deepCompareStrict(instance, $const)) {\n                errors.push({\n                    instanceLocation,\n                    keyword: 'const',\n                    keywordLocation: `${schemaLocation}/const`,\n                    error: `Instance does not match ${JSON.stringify($const)}.`\n                });\n            }\n        }\n        else if (instance !== $const) {\n            errors.push({\n                instanceLocation,\n                keyword: 'const',\n                keywordLocation: `${schemaLocation}/const`,\n                error: `Instance does not match ${JSON.stringify($const)}.`\n            });\n        }\n    }\n    if ($enum !== undefined) {\n        if (instanceType === 'object' || instanceType === 'array') {\n            if (!$enum.some(value => deepCompareStrict(instance, value))) {\n                errors.push({\n                    instanceLocation,\n                    keyword: 'enum',\n                    keywordLocation: `${schemaLocation}/enum`,\n                    error: `Instance does not match any of ${JSON.stringify($enum)}.`\n                });\n            }\n        }\n        else if (!$enum.some(value => instance === value)) {\n            errors.push({\n                instanceLocation,\n                keyword: 'enum',\n                keywordLocation: `${schemaLocation}/enum`,\n                error: `Instance does not match any of ${JSON.stringify($enum)}.`\n            });\n        }\n    }\n    if ($not !== undefined) {\n        const keywordLocation = `${schemaLocation}/not`;\n        const result = validate(instance, $not, draft, lookup, shortCircuit, recursiveAnchor, instanceLocation, keywordLocation);\n        if (result.valid) {\n            errors.push({\n                instanceLocation,\n                keyword: 'not',\n                keywordLocation,\n                error: 'Instance matched \"not\" schema.'\n            });\n        }\n    }\n    let subEvaluateds = [];\n    if ($anyOf !== undefined) {\n        const keywordLocation = `${schemaLocation}/anyOf`;\n        const errorsLength = errors.length;\n        let anyValid = false;\n        for (let i = 0; i < $anyOf.length; i++) {\n            const subSchema = $anyOf[i];\n            const subEvaluated = Object.create(evaluated);\n            const result = validate(instance, subSchema, draft, lookup, shortCircuit, $recursiveAnchor === true ? recursiveAnchor : null, instanceLocation, `${keywordLocation}/${i}`, subEvaluated);\n            errors.push(...result.errors);\n            anyValid = anyValid || result.valid;\n            if (result.valid) {\n                subEvaluateds.push(subEvaluated);\n            }\n        }\n        if (anyValid) {\n            errors.length = errorsLength;\n        }\n        else {\n            errors.splice(errorsLength, 0, {\n                instanceLocation,\n                keyword: 'anyOf',\n                keywordLocation,\n                error: 'Instance does not match any subschemas.'\n            });\n        }\n    }\n    if ($allOf !== undefined) {\n        const keywordLocation = `${schemaLocation}/allOf`;\n        const errorsLength = errors.length;\n        let allValid = true;\n        for (let i = 0; i < $allOf.length; i++) {\n            const subSchema = $allOf[i];\n            const subEvaluated = Object.create(evaluated);\n            const result = validate(instance, subSchema, draft, lookup, shortCircuit, $recursiveAnchor === true ? recursiveAnchor : null, instanceLocation, `${keywordLocation}/${i}`, subEvaluated);\n            errors.push(...result.errors);\n            allValid = allValid && result.valid;\n            if (result.valid) {\n                subEvaluateds.push(subEvaluated);\n            }\n        }\n        if (allValid) {\n            errors.length = errorsLength;\n        }\n        else {\n            errors.splice(errorsLength, 0, {\n                instanceLocation,\n                keyword: 'allOf',\n                keywordLocation,\n                error: `Instance does not match every subschema.`\n            });\n        }\n    }\n    if ($oneOf !== undefined) {\n        const keywordLocation = `${schemaLocation}/oneOf`;\n        const errorsLength = errors.length;\n        const matches = $oneOf.filter((subSchema, i) => {\n            const subEvaluated = Object.create(evaluated);\n            const result = validate(instance, subSchema, draft, lookup, shortCircuit, $recursiveAnchor === true ? recursiveAnchor : null, instanceLocation, `${keywordLocation}/${i}`, subEvaluated);\n            errors.push(...result.errors);\n            if (result.valid) {\n                subEvaluateds.push(subEvaluated);\n            }\n            return result.valid;\n        }).length;\n        if (matches === 1) {\n            errors.length = errorsLength;\n        }\n        else {\n            errors.splice(errorsLength, 0, {\n                instanceLocation,\n                keyword: 'oneOf',\n                keywordLocation,\n                error: `Instance does not match exactly one subschema (${matches} matches).`\n            });\n        }\n    }\n    if (instanceType === 'object' || instanceType === 'array') {\n        Object.assign(evaluated, ...subEvaluateds);\n    }\n    if ($if !== undefined) {\n        const keywordLocation = `${schemaLocation}/if`;\n        const conditionResult = validate(instance, $if, draft, lookup, shortCircuit, recursiveAnchor, instanceLocation, keywordLocation, evaluated).valid;\n        if (conditionResult) {\n            if ($then !== undefined) {\n                const thenResult = validate(instance, $then, draft, lookup, shortCircuit, recursiveAnchor, instanceLocation, `${schemaLocation}/then`, evaluated);\n                if (!thenResult.valid) {\n                    errors.push({\n                        instanceLocation,\n                        keyword: 'if',\n                        keywordLocation,\n                        error: `Instance does not match \"then\" schema.`\n                    }, ...thenResult.errors);\n                }\n            }\n        }\n        else if ($else !== undefined) {\n            const elseResult = validate(instance, $else, draft, lookup, shortCircuit, recursiveAnchor, instanceLocation, `${schemaLocation}/else`, evaluated);\n            if (!elseResult.valid) {\n                errors.push({\n                    instanceLocation,\n                    keyword: 'if',\n                    keywordLocation,\n                    error: `Instance does not match \"else\" schema.`\n                }, ...elseResult.errors);\n            }\n        }\n    }\n    if (instanceType === 'object') {\n        if ($required !== undefined) {\n            for (const key of $required) {\n                if (!(key in instance)) {\n                    errors.push({\n                        instanceLocation,\n                        keyword: 'required',\n                        keywordLocation: `${schemaLocation}/required`,\n                        error: `Instance does not have required property \"${key}\".`\n                    });\n                }\n            }\n        }\n        const keys = Object.keys(instance);\n        if ($minProperties !== undefined && keys.length < $minProperties) {\n            errors.push({\n                instanceLocation,\n                keyword: 'minProperties',\n                keywordLocation: `${schemaLocation}/minProperties`,\n                error: `Instance does not have at least ${$minProperties} properties.`\n            });\n        }\n        if ($maxProperties !== undefined && keys.length > $maxProperties) {\n            errors.push({\n                instanceLocation,\n                keyword: 'maxProperties',\n                keywordLocation: `${schemaLocation}/maxProperties`,\n                error: `Instance does not have at least ${$maxProperties} properties.`\n            });\n        }\n        if ($propertyNames !== undefined) {\n            const keywordLocation = `${schemaLocation}/propertyNames`;\n            for (const key in instance) {\n                const subInstancePointer = `${instanceLocation}/${encodePointer(key)}`;\n                const result = validate(key, $propertyNames, draft, lookup, shortCircuit, recursiveAnchor, subInstancePointer, keywordLocation);\n                if (!result.valid) {\n                    errors.push({\n                        instanceLocation,\n                        keyword: 'propertyNames',\n                        keywordLocation,\n                        error: `Property name \"${key}\" does not match schema.`\n                    }, ...result.errors);\n                }\n            }\n        }\n        if ($dependentRequired !== undefined) {\n            const keywordLocation = `${schemaLocation}/dependantRequired`;\n            for (const key in $dependentRequired) {\n                if (key in instance) {\n                    const required = $dependentRequired[key];\n                    for (const dependantKey of required) {\n                        if (!(dependantKey in instance)) {\n                            errors.push({\n                                instanceLocation,\n                                keyword: 'dependentRequired',\n                                keywordLocation,\n                                error: `Instance has \"${key}\" but does not have \"${dependantKey}\".`\n                            });\n                        }\n                    }\n                }\n            }\n        }\n        if ($dependentSchemas !== undefined) {\n            for (const key in $dependentSchemas) {\n                const keywordLocation = `${schemaLocation}/dependentSchemas`;\n                if (key in instance) {\n                    const result = validate(instance, $dependentSchemas[key], draft, lookup, shortCircuit, recursiveAnchor, instanceLocation, `${keywordLocation}/${encodePointer(key)}`, evaluated);\n                    if (!result.valid) {\n                        errors.push({\n                            instanceLocation,\n                            keyword: 'dependentSchemas',\n                            keywordLocation,\n                            error: `Instance has \"${key}\" but does not match dependant schema.`\n                        }, ...result.errors);\n                    }\n                }\n            }\n        }\n        if ($dependencies !== undefined) {\n            const keywordLocation = `${schemaLocation}/dependencies`;\n            for (const key in $dependencies) {\n                if (key in instance) {\n                    const propsOrSchema = $dependencies[key];\n                    if (Array.isArray(propsOrSchema)) {\n                        for (const dependantKey of propsOrSchema) {\n                            if (!(dependantKey in instance)) {\n                                errors.push({\n                                    instanceLocation,\n                                    keyword: 'dependencies',\n                                    keywordLocation,\n                                    error: `Instance has \"${key}\" but does not have \"${dependantKey}\".`\n                                });\n                            }\n                        }\n                    }\n                    else {\n                        const result = validate(instance, propsOrSchema, draft, lookup, shortCircuit, recursiveAnchor, instanceLocation, `${keywordLocation}/${encodePointer(key)}`);\n                        if (!result.valid) {\n                            errors.push({\n                                instanceLocation,\n                                keyword: 'dependencies',\n                                keywordLocation,\n                                error: `Instance has \"${key}\" but does not match dependant schema.`\n                            }, ...result.errors);\n                        }\n                    }\n                }\n            }\n        }\n        const thisEvaluated = Object.create(null);\n        let stop = false;\n        if ($properties !== undefined) {\n            const keywordLocation = `${schemaLocation}/properties`;\n            for (const key in $properties) {\n                if (!(key in instance)) {\n                    continue;\n                }\n                const subInstancePointer = `${instanceLocation}/${encodePointer(key)}`;\n                const result = validate(instance[key], $properties[key], draft, lookup, shortCircuit, recursiveAnchor, subInstancePointer, `${keywordLocation}/${encodePointer(key)}`);\n                if (result.valid) {\n                    evaluated[key] = thisEvaluated[key] = true;\n                }\n                else {\n                    stop = shortCircuit;\n                    errors.push({\n                        instanceLocation,\n                        keyword: 'properties',\n                        keywordLocation,\n                        error: `Property \"${key}\" does not match schema.`\n                    }, ...result.errors);\n                    if (stop)\n                        break;\n                }\n            }\n        }\n        if (!stop && $patternProperties !== undefined) {\n            const keywordLocation = `${schemaLocation}/patternProperties`;\n            for (const pattern in $patternProperties) {\n                const regex = new RegExp(pattern, 'u');\n                const subSchema = $patternProperties[pattern];\n                for (const key in instance) {\n                    if (!regex.test(key)) {\n                        continue;\n                    }\n                    const subInstancePointer = `${instanceLocation}/${encodePointer(key)}`;\n                    const result = validate(instance[key], subSchema, draft, lookup, shortCircuit, recursiveAnchor, subInstancePointer, `${keywordLocation}/${encodePointer(pattern)}`);\n                    if (result.valid) {\n                        evaluated[key] = thisEvaluated[key] = true;\n                    }\n                    else {\n                        stop = shortCircuit;\n                        errors.push({\n                            instanceLocation,\n                            keyword: 'patternProperties',\n                            keywordLocation,\n                            error: `Property \"${key}\" matches pattern \"${pattern}\" but does not match associated schema.`\n                        }, ...result.errors);\n                    }\n                }\n            }\n        }\n        if (!stop && $additionalProperties !== undefined) {\n            const keywordLocation = `${schemaLocation}/additionalProperties`;\n            for (const key in instance) {\n                if (thisEvaluated[key]) {\n                    continue;\n                }\n                const subInstancePointer = `${instanceLocation}/${encodePointer(key)}`;\n                const result = validate(instance[key], $additionalProperties, draft, lookup, shortCircuit, recursiveAnchor, subInstancePointer, keywordLocation);\n                if (result.valid) {\n                    evaluated[key] = true;\n                }\n                else {\n                    stop = shortCircuit;\n                    errors.push({\n                        instanceLocation,\n                        keyword: 'additionalProperties',\n                        keywordLocation,\n                        error: `Property \"${key}\" does not match additional properties schema.`\n                    }, ...result.errors);\n                }\n            }\n        }\n        else if (!stop && $unevaluatedProperties !== undefined) {\n            const keywordLocation = `${schemaLocation}/unevaluatedProperties`;\n            for (const key in instance) {\n                if (!evaluated[key]) {\n                    const subInstancePointer = `${instanceLocation}/${encodePointer(key)}`;\n                    const result = validate(instance[key], $unevaluatedProperties, draft, lookup, shortCircuit, recursiveAnchor, subInstancePointer, keywordLocation);\n                    if (result.valid) {\n                        evaluated[key] = true;\n                    }\n                    else {\n                        errors.push({\n                            instanceLocation,\n                            keyword: 'unevaluatedProperties',\n                            keywordLocation,\n                            error: `Property \"${key}\" does not match unevaluated properties schema.`\n                        }, ...result.errors);\n                    }\n                }\n            }\n        }\n    }\n    else if (instanceType === 'array') {\n        if ($maxItems !== undefined && instance.length > $maxItems) {\n            errors.push({\n                instanceLocation,\n                keyword: 'maxItems',\n                keywordLocation: `${schemaLocation}/maxItems`,\n                error: `Array has too many items (${instance.length} > ${$maxItems}).`\n            });\n        }\n        if ($minItems !== undefined && instance.length < $minItems) {\n            errors.push({\n                instanceLocation,\n                keyword: 'minItems',\n                keywordLocation: `${schemaLocation}/minItems`,\n                error: `Array has too few items (${instance.length} < ${$minItems}).`\n            });\n        }\n        const length = instance.length;\n        let i = 0;\n        let stop = false;\n        if ($prefixItems !== undefined) {\n            const keywordLocation = `${schemaLocation}/prefixItems`;\n            const length2 = Math.min($prefixItems.length, length);\n            for (; i < length2; i++) {\n                const result = validate(instance[i], $prefixItems[i], draft, lookup, shortCircuit, recursiveAnchor, `${instanceLocation}/${i}`, `${keywordLocation}/${i}`);\n                evaluated[i] = true;\n                if (!result.valid) {\n                    stop = shortCircuit;\n                    errors.push({\n                        instanceLocation,\n                        keyword: 'prefixItems',\n                        keywordLocation,\n                        error: `Items did not match schema.`\n                    }, ...result.errors);\n                    if (stop)\n                        break;\n                }\n            }\n        }\n        if ($items !== undefined) {\n            const keywordLocation = `${schemaLocation}/items`;\n            if (Array.isArray($items)) {\n                const length2 = Math.min($items.length, length);\n                for (; i < length2; i++) {\n                    const result = validate(instance[i], $items[i], draft, lookup, shortCircuit, recursiveAnchor, `${instanceLocation}/${i}`, `${keywordLocation}/${i}`);\n                    evaluated[i] = true;\n                    if (!result.valid) {\n                        stop = shortCircuit;\n                        errors.push({\n                            instanceLocation,\n                            keyword: 'items',\n                            keywordLocation,\n                            error: `Items did not match schema.`\n                        }, ...result.errors);\n                        if (stop)\n                            break;\n                    }\n                }\n            }\n            else {\n                for (; i < length; i++) {\n                    const result = validate(instance[i], $items, draft, lookup, shortCircuit, recursiveAnchor, `${instanceLocation}/${i}`, keywordLocation);\n                    evaluated[i] = true;\n                    if (!result.valid) {\n                        stop = shortCircuit;\n                        errors.push({\n                            instanceLocation,\n                            keyword: 'items',\n                            keywordLocation,\n                            error: `Items did not match schema.`\n                        }, ...result.errors);\n                        if (stop)\n                            break;\n                    }\n                }\n            }\n            if (!stop && $additionalItems !== undefined) {\n                const keywordLocation = `${schemaLocation}/additionalItems`;\n                for (; i < length; i++) {\n                    const result = validate(instance[i], $additionalItems, draft, lookup, shortCircuit, recursiveAnchor, `${instanceLocation}/${i}`, keywordLocation);\n                    evaluated[i] = true;\n                    if (!result.valid) {\n                        stop = shortCircuit;\n                        errors.push({\n                            instanceLocation,\n                            keyword: 'additionalItems',\n                            keywordLocation,\n                            error: `Items did not match additional items schema.`\n                        }, ...result.errors);\n                    }\n                }\n            }\n        }\n        if ($contains !== undefined) {\n            if (length === 0 && $minContains === undefined) {\n                errors.push({\n                    instanceLocation,\n                    keyword: 'contains',\n                    keywordLocation: `${schemaLocation}/contains`,\n                    error: `Array is empty. It must contain at least one item matching the schema.`\n                });\n            }\n            else if ($minContains !== undefined && length < $minContains) {\n                errors.push({\n                    instanceLocation,\n                    keyword: 'minContains',\n                    keywordLocation: `${schemaLocation}/minContains`,\n                    error: `Array has less items (${length}) than minContains (${$minContains}).`\n                });\n            }\n            else {\n                const keywordLocation = `${schemaLocation}/contains`;\n                const errorsLength = errors.length;\n                let contained = 0;\n                for (let j = 0; j < length; j++) {\n                    const result = validate(instance[j], $contains, draft, lookup, shortCircuit, recursiveAnchor, `${instanceLocation}/${j}`, keywordLocation);\n                    if (result.valid) {\n                        evaluated[j] = true;\n                        contained++;\n                    }\n                    else {\n                        errors.push(...result.errors);\n                    }\n                }\n                if (contained >= ($minContains || 0)) {\n                    errors.length = errorsLength;\n                }\n                if ($minContains === undefined &&\n                    $maxContains === undefined &&\n                    contained === 0) {\n                    errors.splice(errorsLength, 0, {\n                        instanceLocation,\n                        keyword: 'contains',\n                        keywordLocation,\n                        error: `Array does not contain item matching schema.`\n                    });\n                }\n                else if ($minContains !== undefined && contained < $minContains) {\n                    errors.push({\n                        instanceLocation,\n                        keyword: 'minContains',\n                        keywordLocation: `${schemaLocation}/minContains`,\n                        error: `Array must contain at least ${$minContains} items matching schema. Only ${contained} items were found.`\n                    });\n                }\n                else if ($maxContains !== undefined && contained > $maxContains) {\n                    errors.push({\n                        instanceLocation,\n                        keyword: 'maxContains',\n                        keywordLocation: `${schemaLocation}/maxContains`,\n                        error: `Array may contain at most ${$maxContains} items matching schema. ${contained} items were found.`\n                    });\n                }\n            }\n        }\n        if (!stop && $unevaluatedItems !== undefined) {\n            const keywordLocation = `${schemaLocation}/unevaluatedItems`;\n            for (i; i < length; i++) {\n                if (evaluated[i]) {\n                    continue;\n                }\n                const result = validate(instance[i], $unevaluatedItems, draft, lookup, shortCircuit, recursiveAnchor, `${instanceLocation}/${i}`, keywordLocation);\n                evaluated[i] = true;\n                if (!result.valid) {\n                    errors.push({\n                        instanceLocation,\n                        keyword: 'unevaluatedItems',\n                        keywordLocation,\n                        error: `Items did not match unevaluated items schema.`\n                    }, ...result.errors);\n                }\n            }\n        }\n        if ($uniqueItems) {\n            for (let j = 0; j < length; j++) {\n                const a = instance[j];\n                const ao = typeof a === 'object' && a !== null;\n                for (let k = 0; k < length; k++) {\n                    if (j === k) {\n                        continue;\n                    }\n                    const b = instance[k];\n                    const bo = typeof b === 'object' && b !== null;\n                    if (a === b || (ao && bo && deepCompareStrict(a, b))) {\n                        errors.push({\n                            instanceLocation,\n                            keyword: 'uniqueItems',\n                            keywordLocation: `${schemaLocation}/uniqueItems`,\n                            error: `Duplicate items at indexes ${j} and ${k}.`\n                        });\n                        j = Number.MAX_SAFE_INTEGER;\n                        k = Number.MAX_SAFE_INTEGER;\n                    }\n                }\n            }\n        }\n    }\n    else if (instanceType === 'number') {\n        if (draft === '4') {\n            if ($minimum !== undefined &&\n                (($exclusiveMinimum === true && instance <= $minimum) ||\n                    instance < $minimum)) {\n                errors.push({\n                    instanceLocation,\n                    keyword: 'minimum',\n                    keywordLocation: `${schemaLocation}/minimum`,\n                    error: `${instance} is less than ${$exclusiveMinimum ? 'or equal to ' : ''} ${$minimum}.`\n                });\n            }\n            if ($maximum !== undefined &&\n                (($exclusiveMaximum === true && instance >= $maximum) ||\n                    instance > $maximum)) {\n                errors.push({\n                    instanceLocation,\n                    keyword: 'maximum',\n                    keywordLocation: `${schemaLocation}/maximum`,\n                    error: `${instance} is greater than ${$exclusiveMaximum ? 'or equal to ' : ''} ${$maximum}.`\n                });\n            }\n        }\n        else {\n            if ($minimum !== undefined && instance < $minimum) {\n                errors.push({\n                    instanceLocation,\n                    keyword: 'minimum',\n                    keywordLocation: `${schemaLocation}/minimum`,\n                    error: `${instance} is less than ${$minimum}.`\n                });\n            }\n            if ($maximum !== undefined && instance > $maximum) {\n                errors.push({\n                    instanceLocation,\n                    keyword: 'maximum',\n                    keywordLocation: `${schemaLocation}/maximum`,\n                    error: `${instance} is greater than ${$maximum}.`\n                });\n            }\n            if ($exclusiveMinimum !== undefined && instance <= $exclusiveMinimum) {\n                errors.push({\n                    instanceLocation,\n                    keyword: 'exclusiveMinimum',\n                    keywordLocation: `${schemaLocation}/exclusiveMinimum`,\n                    error: `${instance} is less than ${$exclusiveMinimum}.`\n                });\n            }\n            if ($exclusiveMaximum !== undefined && instance >= $exclusiveMaximum) {\n                errors.push({\n                    instanceLocation,\n                    keyword: 'exclusiveMaximum',\n                    keywordLocation: `${schemaLocation}/exclusiveMaximum`,\n                    error: `${instance} is greater than or equal to ${$exclusiveMaximum}.`\n                });\n            }\n        }\n        if ($multipleOf !== undefined) {\n            const remainder = instance % $multipleOf;\n            if (Math.abs(0 - remainder) >= 1.1920929e-7 &&\n                Math.abs($multipleOf - remainder) >= 1.1920929e-7) {\n                errors.push({\n                    instanceLocation,\n                    keyword: 'multipleOf',\n                    keywordLocation: `${schemaLocation}/multipleOf`,\n                    error: `${instance} is not a multiple of ${$multipleOf}.`\n                });\n            }\n        }\n    }\n    else if (instanceType === 'string') {\n        const length = $minLength === undefined && $maxLength === undefined\n            ? 0\n            : ucs2length(instance);\n        if ($minLength !== undefined && length < $minLength) {\n            errors.push({\n                instanceLocation,\n                keyword: 'minLength',\n                keywordLocation: `${schemaLocation}/minLength`,\n                error: `String is too short (${length} < ${$minLength}).`\n            });\n        }\n        if ($maxLength !== undefined && length > $maxLength) {\n            errors.push({\n                instanceLocation,\n                keyword: 'maxLength',\n                keywordLocation: `${schemaLocation}/maxLength`,\n                error: `String is too long (${length} > ${$maxLength}).`\n            });\n        }\n        if ($pattern !== undefined && !new RegExp($pattern, 'u').test(instance)) {\n            errors.push({\n                instanceLocation,\n                keyword: 'pattern',\n                keywordLocation: `${schemaLocation}/pattern`,\n                error: `String does not match pattern.`\n            });\n        }\n        if ($format !== undefined &&\n            format[$format] &&\n            !format[$format](instance)) {\n            errors.push({\n                instanceLocation,\n                keyword: 'format',\n                keywordLocation: `${schemaLocation}/format`,\n                error: `String does not match format \"${$format}\".`\n            });\n        }\n    }\n    return { valid: errors.length === 0, errors };\n}\n","import { dereference } from './dereference.js';\nimport { validate } from './validate.js';\nexport class Validator {\n    schema;\n    draft;\n    shortCircuit;\n    lookup;\n    constructor(schema, draft = '2019-09', shortCircuit = true) {\n        this.schema = schema;\n        this.draft = draft;\n        this.shortCircuit = shortCircuit;\n        this.lookup = dereference(schema);\n    }\n    validate(instance) {\n        return validate(instance, this.schema, this.draft, this.lookup, this.shortCircuit);\n    }\n    addSchema(schema, id) {\n        if (id) {\n            schema = { ...schema, $id: id };\n        }\n        dereference(schema, this.lookup);\n    }\n}\n","/**\n * Cloudflare Worker-compatible JSON Schema validator provider\n *\n * This provider uses @cfworker/json-schema for validation without code generation,\n * making it compatible with edge runtimes like Cloudflare Workers that restrict\n * eval and new Function.\n *\n * @see {@linkcode AjvJsonSchemaValidator} for the Node.js alternative\n */\n\nimport { Validator } from '@cfworker/json-schema';\n\nimport type { JsonSchemaType, JsonSchemaValidator, jsonSchemaValidator, JsonSchemaValidatorResult } from './types';\n\n/**\n * JSON Schema draft version supported by `@cfworker/json-schema`.\n */\nexport type CfWorkerSchemaDraft = '4' | '7' | '2019-09' | '2020-12';\n\n/**\n * `@cfworker/json-schema`-backed JSON Schema validator. See\n * `@modelcontextprotocol/{client,server}/validators/cf-worker` for the customisation entry point.\n *\n * @example Use with default configuration (draft 2020-12, shortcircuit on)\n * ```ts source=\"./cfWorkerProvider.examples.ts#CfWorkerJsonSchemaValidator_default\"\n * const validator = new CfWorkerJsonSchemaValidator();\n * ```\n *\n * @example Use with custom configuration\n * ```ts source=\"./cfWorkerProvider.examples.ts#CfWorkerJsonSchemaValidator_customConfig\"\n * const validator = new CfWorkerJsonSchemaValidator({\n *     draft: '2020-12',\n *     shortcircuit: false // Report all errors\n * });\n * ```\n */\nexport class CfWorkerJsonSchemaValidator implements jsonSchemaValidator {\n    private shortcircuit: boolean;\n    private draft: CfWorkerSchemaDraft;\n\n    /**\n     * Create a validator\n     *\n     * @param options - Configuration options\n     * @param options.shortcircuit - If `true`, stop validation after first error (default: `true`)\n     * @param options.draft - JSON Schema draft version to use (default: `'2020-12'`)\n     */\n    constructor(options?: { shortcircuit?: boolean; draft?: CfWorkerSchemaDraft }) {\n        this.shortcircuit = options?.shortcircuit ?? true;\n        this.draft = options?.draft ?? '2020-12';\n    }\n\n    /**\n     * Create a validator for the given JSON Schema\n     *\n     * Unlike AJV, this validator is not cached internally\n     *\n     * @param schema - Standard JSON Schema object\n     * @returns A validator function that validates input data\n     */\n    getValidator<T>(schema: JsonSchemaType): JsonSchemaValidator<T> {\n        // Cast to the cfworker Schema type - our JsonSchemaType is structurally compatible\n        const validator = new Validator(schema as ConstructorParameters<typeof Validator>[0], this.draft, this.shortcircuit);\n\n        return (input: unknown): JsonSchemaValidatorResult<T> => {\n            const result = validator.validate(input);\n\n            return result.valid\n                ? {\n                      valid: true,\n                      data: input as T,\n                      errorMessage: undefined\n                  }\n                : {\n                      valid: false,\n                      data: undefined,\n                      errorMessage: result.errors.map(err => `${err.instanceLocation}: ${err.error}`).join('; ')\n                  };\n        };\n    }\n}\n"],"x_google_ignoreList":[0,1,2,3,4,5,6],"mappings":"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"}