json-schema-library 11.3.0 → 11.4.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/CHANGELOG.md +21 -2
- package/README.md +44 -35
- package/bowtie/bowtie.test.ts +80 -0
- package/bowtie/package.json +1 -1
- package/dist/chunk-350yNsax.cjs +1 -0
- package/dist/formats.cjs +2 -0
- package/dist/formats.cjs.map +1 -0
- package/dist/formats.d.cts +8 -0
- package/dist/formats.d.mts +8 -0
- package/dist/formats.mjs +2 -0
- package/dist/formats.mjs.map +1 -0
- package/dist/index.cjs +2 -1
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +4 -4
- package/dist/index.d.mts +4 -4
- package/dist/index.mjs +2 -1
- package/dist/index.mjs.map +1 -0
- package/dist/jlib.js +2 -2
- package/dist/jlibFormats.iife.js +1 -0
- package/dist/jlibRemote.iife.js +1 -0
- package/dist/{remotes/index.cjs → remotes.cjs} +2 -1
- package/dist/remotes.cjs.map +1 -0
- package/dist/remotes.d.cts +8 -0
- package/dist/remotes.d.mts +8 -0
- package/dist/{remotes/index.mjs → remotes.mjs} +2 -1
- package/dist/remotes.mjs.map +1 -0
- package/dist/{types-B2wwNWyo.d.cts → types-BDjKcTVR.d.cts} +6 -3
- package/dist/{types-BhTU1l2h.d.mts → types-CqkCJmt8.d.mts} +6 -3
- package/package.json +21 -15
- package/src/SchemaNode.ts +15 -19
- package/src/compileSchema.ts +1 -3
- package/src/errors/errors.ts +3 -2
- package/src/formats/additionalFormats.ts +118 -0
- package/src/formats/formats.ts +3 -111
- package/src/keywords/$defs.ts +3 -0
- package/src/keywords/additionalProperties.ts +1 -0
- package/src/keywords/allOf.ts +2 -5
- package/src/keywords/anyOf.ts +2 -4
- package/src/keywords/dependencies.ts +2 -0
- package/src/keywords/dependentSchemas.ts +2 -3
- package/src/keywords/format.ts +8 -0
- package/src/keywords/ifthenelse.ts +4 -9
- package/src/keywords/oneOf.ts +2 -5
- package/src/keywords/patternProperties.ts +5 -1
- package/src/keywords/prefixItems.ts +14 -9
- package/src/keywords/properties.ts +2 -3
- package/src/keywords/propertyDependencies.ts +2 -3
- package/src/keywords/propertyNames.ts +1 -1
- package/src/utils/collectValidationErrors.ts +9 -0
- package/src/validateSchema.test.ts +29 -30
- package/tsconfig.json +1 -0
- package/tsconfig.test.json +1 -0
- package/tsdown.config.ts +5 -2
- package/tsdown.iife.config.ts +29 -8
- package/dist/remotes/index.d.cts +0 -7
- package/dist/remotes/index.d.mts +0 -7
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"formats.cjs","names":["alpha","hexdig","atom","localPart","letDig","ldhStr","subDomain","domain","decOctet","ipv4Address","h16","ls32","mailbox","domain","ucschar","alpha","hexdig","decOctet","h16","ls32","decOctet","ipV4Address","hexdig","decOctet","ipV4Address","h16","ls32","hexdig","pctEncoded","iprivate","isUri","isUriReference","isIri","isIriReference","Hyperjump.isUri","Hyperjump.isUriReference","Hyperjump.isIri","Hyperjump.isIriReference","jsonPointer"],"sources":["../node_modules/.pnpm/@hyperjump+json-schema-formats@1.0.1/node_modules/@hyperjump/json-schema-formats/src/rfc3339.js","../node_modules/.pnpm/@hyperjump+json-schema-formats@1.0.1/node_modules/@hyperjump/json-schema-formats/src/rfc5321.js","../node_modules/.pnpm/punycode@2.3.1/node_modules/punycode/punycode.js","../node_modules/.pnpm/idn-hostname@15.1.8/node_modules/idn-hostname/idnaMappingTableCompact.json","../node_modules/.pnpm/idn-hostname@15.1.8/node_modules/idn-hostname/index.js","../node_modules/.pnpm/@hyperjump+json-schema-formats@1.0.1/node_modules/@hyperjump/json-schema-formats/src/rfc1123.js","../node_modules/.pnpm/@hyperjump+json-schema-formats@1.0.1/node_modules/@hyperjump/json-schema-formats/src/uts46.js","../node_modules/.pnpm/@hyperjump+json-schema-formats@1.0.1/node_modules/@hyperjump/json-schema-formats/src/rfc6531.js","../node_modules/.pnpm/@hyperjump+json-schema-formats@1.0.1/node_modules/@hyperjump/json-schema-formats/src/rfc2673.js","../node_modules/.pnpm/@hyperjump+json-schema-formats@1.0.1/node_modules/@hyperjump/json-schema-formats/src/rfc4291.js","../node_modules/.pnpm/@hyperjump+uri@1.3.3/node_modules/@hyperjump/uri/lib/index.js","../node_modules/.pnpm/@hyperjump+json-schema-formats@1.0.1/node_modules/@hyperjump/json-schema-formats/src/rfc3986.js","../node_modules/.pnpm/@hyperjump+json-schema-formats@1.0.1/node_modules/@hyperjump/json-schema-formats/src/rfc3987.js","../node_modules/.pnpm/@hyperjump+json-schema-formats@1.0.1/node_modules/@hyperjump/json-schema-formats/src/rfc4122.js","../node_modules/.pnpm/@hyperjump+json-schema-formats@1.0.1/node_modules/@hyperjump/json-schema-formats/src/rfc6570.js","../node_modules/.pnpm/@hyperjump+json-schema-formats@1.0.1/node_modules/@hyperjump/json-schema-formats/src/rfc6901.js","../node_modules/.pnpm/@hyperjump+json-schema-formats@1.0.1/node_modules/@hyperjump/json-schema-formats/src/draft-bhutton-relative-json-pointer-00.js","../src/formats/additionalFormats.ts"],"sourcesContent":["import { daysInMonth, hasLeapSecond } from \"./date-math.js\";\n\n/**\n * @import * as API from \"./index.d.ts\"\n */\n\nconst dateFullyear = `\\\\d{4}`;\nconst dateMonth = `(?:0[1-9]|1[0-2])`; // 01-12\nconst dateMday = `(?:0[1-9]|[12][0-9]|3[01])`; // 01-28, 01-29, 01-30, 01-31 based on month/year\nconst fullDate = `(?<year>${dateFullyear})-(?<month>${dateMonth})-(?<day>${dateMday})`;\n\nconst datePattern = new RegExp(`^${fullDate}$`);\n\n/** @type API.isDate */\nexport const isDate = (date) => {\n const parsedDate = datePattern.exec(date)?.groups;\n if (!parsedDate) {\n return false;\n }\n\n const day = Number.parseInt(parsedDate.day, 10);\n const year = Number.parseInt(parsedDate.year, 10);\n\n return day <= daysInMonth(parsedDate.month, year);\n};\n\nconst timeHour = `(?:[01]\\\\d|2[0-3])`; // 00-23\nconst timeMinute = `[0-5]\\\\d`; // 00-59\nconst timeSecond = `[0-5]\\\\d`; // 00-59\nconst timeSecondAllowLeapSeconds = `(?<seconds>[0-5]\\\\d|60)`; // 00-58, 00-59, 00-60 based on leap second rules\nconst timeSecfrac = `\\\\.\\\\d+`;\nconst timeNumoffset = `[+-]${timeHour}:${timeMinute}`;\nconst timeOffset = `(?:[zZ]|${timeNumoffset})`;\nconst partialTime = `${timeHour}:${timeMinute}:${timeSecond}(?:${timeSecfrac})?`;\nconst fullTime = `${partialTime}${timeOffset}`;\n\n/**\n * @type API.isTime\n * @function\n */\nexport const isTime = RegExp.prototype.test.bind(new RegExp(`^${fullTime}$`));\n\nconst timePattern = new RegExp(`^${timeHour}:${timeMinute}:${timeSecondAllowLeapSeconds}(?:${timeSecfrac})?${timeOffset}$`);\n\n/** @type (time: string) => { seconds: string } | undefined */\nconst parseTime = (time) => {\n return /** @type {{ seconds: string } | undefined} */ (timePattern.exec(time)?.groups);\n};\n\n/** @type API.isDateTime */\nexport const isDateTime = (dateTime) => {\n const date = dateTime.substring(0, 10);\n const t = dateTime[10];\n const time = dateTime.substring(11);\n const seconds = parseTime(time)?.seconds;\n\n return isDate(date)\n && /^t$/i.test(t)\n && !!seconds\n && (seconds !== \"60\" || hasLeapSecond(new Date(`${date}T${time.replace(\"60\", \"59\")}`)));\n};\n\nconst durSecond = `\\\\d+S`;\nconst durMinute = `\\\\d+M(?:${durSecond})?`;\nconst durHour = `\\\\d+H(?:${durMinute})?`;\nconst durTime = `T(?:${durHour}|${durMinute}|${durSecond})`;\nconst durDay = `\\\\d+D`;\nconst durWeek = `\\\\d+W`;\nconst durMonth = `\\\\d+M(?:${durDay})?`;\nconst durYear = `\\\\d+Y(?:${durMonth})?`;\nconst durDate = `(?:${durDay}|${durMonth}|${durYear})(?:${durTime})?`;\nconst duration = `P(?:${durDate}|${durTime}|${durWeek})`;\n\n/**\n * @type API.isDuration\n * @function\n */\nexport const isDuration = RegExp.prototype.test.bind(new RegExp(`^${duration}$`));\n","/**\n * @import * as API from \"./index.d.ts\"\n */\n\nconst alpha = `[a-zA-Z]`;\nconst hexdig = `[\\\\da-fA-F]`;\n\n// Printable US-ASCII characters not including specials.\nconst atext = `[\\\\w!#$%&'*+\\\\-/=?^\\`{|}~]`;\nconst atom = `${atext}+`;\nconst dotString = `${atom}(?:\\\\.${atom})*`;\n\n// Any ASCII graphic or space without blackslash-quoting except double-quote and the backslash itself.\nconst qtextSMTP = `[\\\\x20-\\\\x21\\\\x23-\\\\x5B\\\\x5D-\\\\x7E]`;\n// backslash followed by any ASCII graphic or space\nconst quotedPairSMTP = `\\\\\\\\[\\\\x20-\\\\x7E]`;\nconst qcontentSMTP = `(?:${qtextSMTP}|${quotedPairSMTP})`;\nconst quotedString = `\"${qcontentSMTP}*\"`;\n\nconst localPart = `(?:${dotString}|${quotedString})`; // MAY be case-sensitive\n\nconst letDig = `(?:${alpha}|\\\\d)`;\nconst ldhStr = `(?:${letDig}|-)*${letDig}`;\nconst subDomain = `${letDig}${ldhStr}?`;\nconst domain = `${subDomain}(?:\\\\.${subDomain})*`;\n\nconst decOctet = `(?:\\\\d|[1-9]\\\\d|1\\\\d\\\\d|2[0-4]\\\\d|25[0-5])`;\nconst ipv4Address = `${decOctet}\\\\.${decOctet}\\\\.${decOctet}\\\\.${decOctet}`;\n\nconst h16 = `${hexdig}{1,4}`;\nconst ls32 = `(?:${h16}:${h16}|${ipv4Address})`;\nconst ipv6Address = `(?:(?:${h16}:){6}${ls32}|::(?:${h16}:){5}${ls32}|(?:${h16})?::(?:${h16}:){4}${ls32}|(?:(?:${h16}:){0,1}${h16})?::(?:${h16}:){3}${ls32}|(?:(?:${h16}:){0,2}${h16})?::(?:${h16}:){2}${ls32}|(?:(?:${h16}:){0,3}${h16})?::(?:${h16}:){1}${ls32}|(?:(?:${h16}:){0,4}${h16})?::${ls32}|(?:(?:${h16}:){0,5}${h16})?::${h16}|(?:(?:${h16}:){0,6}${h16})?::)`;\nconst ipv6AddressLiteral = `IPv6:${ipv6Address}`;\n\nconst dcontent = `[\\\\x21-\\\\x5A\\\\x5E-\\\\x7E]`; // Printable US-ASCII excluding \"[\", \"\\\", \"]\"\nconst generalAddressLiteral = `${ldhStr}:${dcontent}+`;\n\nconst addressLiteral = `\\\\[(?:${ipv4Address}|${ipv6AddressLiteral}|${generalAddressLiteral})]`;\n\nconst mailbox = `${localPart}@(?:${domain}|${addressLiteral})`;\n\n/**\n * @type API.isEmail\n * @function\n */\nexport const isEmail = RegExp.prototype.test.bind(new RegExp(`^${mailbox}$`));\n","'use strict';\n\n/** Highest positive signed 32-bit float value */\nconst maxInt = 2147483647; // aka. 0x7FFFFFFF or 2^31-1\n\n/** Bootstring parameters */\nconst base = 36;\nconst tMin = 1;\nconst tMax = 26;\nconst skew = 38;\nconst damp = 700;\nconst initialBias = 72;\nconst initialN = 128; // 0x80\nconst delimiter = '-'; // '\\x2D'\n\n/** Regular expressions */\nconst regexPunycode = /^xn--/;\nconst regexNonASCII = /[^\\0-\\x7F]/; // Note: U+007F DEL is excluded too.\nconst regexSeparators = /[\\x2E\\u3002\\uFF0E\\uFF61]/g; // RFC 3490 separators\n\n/** Error messages */\nconst errors = {\n\t'overflow': 'Overflow: input needs wider integers to process',\n\t'not-basic': 'Illegal input >= 0x80 (not a basic code point)',\n\t'invalid-input': 'Invalid input'\n};\n\n/** Convenience shortcuts */\nconst baseMinusTMin = base - tMin;\nconst floor = Math.floor;\nconst stringFromCharCode = String.fromCharCode;\n\n/*--------------------------------------------------------------------------*/\n\n/**\n * A generic error utility function.\n * @private\n * @param {String} type The error type.\n * @returns {Error} Throws a `RangeError` with the applicable error message.\n */\nfunction error(type) {\n\tthrow new RangeError(errors[type]);\n}\n\n/**\n * A generic `Array#map` utility function.\n * @private\n * @param {Array} array The array to iterate over.\n * @param {Function} callback The function that gets called for every array\n * item.\n * @returns {Array} A new array of values returned by the callback function.\n */\nfunction map(array, callback) {\n\tconst result = [];\n\tlet length = array.length;\n\twhile (length--) {\n\t\tresult[length] = callback(array[length]);\n\t}\n\treturn result;\n}\n\n/**\n * A simple `Array#map`-like wrapper to work with domain name strings or email\n * addresses.\n * @private\n * @param {String} domain The domain name or email address.\n * @param {Function} callback The function that gets called for every\n * character.\n * @returns {String} A new string of characters returned by the callback\n * function.\n */\nfunction mapDomain(domain, callback) {\n\tconst parts = domain.split('@');\n\tlet result = '';\n\tif (parts.length > 1) {\n\t\t// In email addresses, only the domain name should be punycoded. Leave\n\t\t// the local part (i.e. everything up to `@`) intact.\n\t\tresult = parts[0] + '@';\n\t\tdomain = parts[1];\n\t}\n\t// Avoid `split(regex)` for IE8 compatibility. See #17.\n\tdomain = domain.replace(regexSeparators, '\\x2E');\n\tconst labels = domain.split('.');\n\tconst encoded = map(labels, callback).join('.');\n\treturn result + encoded;\n}\n\n/**\n * Creates an array containing the numeric code points of each Unicode\n * character in the string. While JavaScript uses UCS-2 internally,\n * this function will convert a pair of surrogate halves (each of which\n * UCS-2 exposes as separate characters) into a single code point,\n * matching UTF-16.\n * @see `punycode.ucs2.encode`\n * @see <https://mathiasbynens.be/notes/javascript-encoding>\n * @memberOf punycode.ucs2\n * @name decode\n * @param {String} string The Unicode input string (UCS-2).\n * @returns {Array} The new array of code points.\n */\nfunction ucs2decode(string) {\n\tconst output = [];\n\tlet counter = 0;\n\tconst length = string.length;\n\twhile (counter < length) {\n\t\tconst value = string.charCodeAt(counter++);\n\t\tif (value >= 0xD800 && value <= 0xDBFF && counter < length) {\n\t\t\t// It's a high surrogate, and there is a next character.\n\t\t\tconst extra = string.charCodeAt(counter++);\n\t\t\tif ((extra & 0xFC00) == 0xDC00) { // Low surrogate.\n\t\t\t\toutput.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);\n\t\t\t} else {\n\t\t\t\t// It's an unmatched surrogate; only append this code unit, in case the\n\t\t\t\t// next code unit is the high surrogate of a surrogate pair.\n\t\t\t\toutput.push(value);\n\t\t\t\tcounter--;\n\t\t\t}\n\t\t} else {\n\t\t\toutput.push(value);\n\t\t}\n\t}\n\treturn output;\n}\n\n/**\n * Creates a string based on an array of numeric code points.\n * @see `punycode.ucs2.decode`\n * @memberOf punycode.ucs2\n * @name encode\n * @param {Array} codePoints The array of numeric code points.\n * @returns {String} The new Unicode string (UCS-2).\n */\nconst ucs2encode = codePoints => String.fromCodePoint(...codePoints);\n\n/**\n * Converts a basic code point into a digit/integer.\n * @see `digitToBasic()`\n * @private\n * @param {Number} codePoint The basic numeric code point value.\n * @returns {Number} The numeric value of a basic code point (for use in\n * representing integers) in the range `0` to `base - 1`, or `base` if\n * the code point does not represent a value.\n */\nconst basicToDigit = function(codePoint) {\n\tif (codePoint >= 0x30 && codePoint < 0x3A) {\n\t\treturn 26 + (codePoint - 0x30);\n\t}\n\tif (codePoint >= 0x41 && codePoint < 0x5B) {\n\t\treturn codePoint - 0x41;\n\t}\n\tif (codePoint >= 0x61 && codePoint < 0x7B) {\n\t\treturn codePoint - 0x61;\n\t}\n\treturn base;\n};\n\n/**\n * Converts a digit/integer into a basic code point.\n * @see `basicToDigit()`\n * @private\n * @param {Number} digit The numeric value of a basic code point.\n * @returns {Number} The basic code point whose value (when used for\n * representing integers) is `digit`, which needs to be in the range\n * `0` to `base - 1`. If `flag` is non-zero, the uppercase form is\n * used; else, the lowercase form is used. The behavior is undefined\n * if `flag` is non-zero and `digit` has no uppercase form.\n */\nconst digitToBasic = function(digit, flag) {\n\t// 0..25 map to ASCII a..z or A..Z\n\t// 26..35 map to ASCII 0..9\n\treturn digit + 22 + 75 * (digit < 26) - ((flag != 0) << 5);\n};\n\n/**\n * Bias adaptation function as per section 3.4 of RFC 3492.\n * https://tools.ietf.org/html/rfc3492#section-3.4\n * @private\n */\nconst adapt = function(delta, numPoints, firstTime) {\n\tlet k = 0;\n\tdelta = firstTime ? floor(delta / damp) : delta >> 1;\n\tdelta += floor(delta / numPoints);\n\tfor (/* no initialization */; delta > baseMinusTMin * tMax >> 1; k += base) {\n\t\tdelta = floor(delta / baseMinusTMin);\n\t}\n\treturn floor(k + (baseMinusTMin + 1) * delta / (delta + skew));\n};\n\n/**\n * Converts a Punycode string of ASCII-only symbols to a string of Unicode\n * symbols.\n * @memberOf punycode\n * @param {String} input The Punycode string of ASCII-only symbols.\n * @returns {String} The resulting string of Unicode symbols.\n */\nconst decode = function(input) {\n\t// Don't use UCS-2.\n\tconst output = [];\n\tconst inputLength = input.length;\n\tlet i = 0;\n\tlet n = initialN;\n\tlet bias = initialBias;\n\n\t// Handle the basic code points: let `basic` be the number of input code\n\t// points before the last delimiter, or `0` if there is none, then copy\n\t// the first basic code points to the output.\n\n\tlet basic = input.lastIndexOf(delimiter);\n\tif (basic < 0) {\n\t\tbasic = 0;\n\t}\n\n\tfor (let j = 0; j < basic; ++j) {\n\t\t// if it's not a basic code point\n\t\tif (input.charCodeAt(j) >= 0x80) {\n\t\t\terror('not-basic');\n\t\t}\n\t\toutput.push(input.charCodeAt(j));\n\t}\n\n\t// Main decoding loop: start just after the last delimiter if any basic code\n\t// points were copied; start at the beginning otherwise.\n\n\tfor (let index = basic > 0 ? basic + 1 : 0; index < inputLength; /* no final expression */) {\n\n\t\t// `index` is the index of the next character to be consumed.\n\t\t// Decode a generalized variable-length integer into `delta`,\n\t\t// which gets added to `i`. The overflow checking is easier\n\t\t// if we increase `i` as we go, then subtract off its starting\n\t\t// value at the end to obtain `delta`.\n\t\tconst oldi = i;\n\t\tfor (let w = 1, k = base; /* no condition */; k += base) {\n\n\t\t\tif (index >= inputLength) {\n\t\t\t\terror('invalid-input');\n\t\t\t}\n\n\t\t\tconst digit = basicToDigit(input.charCodeAt(index++));\n\n\t\t\tif (digit >= base) {\n\t\t\t\terror('invalid-input');\n\t\t\t}\n\t\t\tif (digit > floor((maxInt - i) / w)) {\n\t\t\t\terror('overflow');\n\t\t\t}\n\n\t\t\ti += digit * w;\n\t\t\tconst t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n\n\t\t\tif (digit < t) {\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tconst baseMinusT = base - t;\n\t\t\tif (w > floor(maxInt / baseMinusT)) {\n\t\t\t\terror('overflow');\n\t\t\t}\n\n\t\t\tw *= baseMinusT;\n\n\t\t}\n\n\t\tconst out = output.length + 1;\n\t\tbias = adapt(i - oldi, out, oldi == 0);\n\n\t\t// `i` was supposed to wrap around from `out` to `0`,\n\t\t// incrementing `n` each time, so we'll fix that now:\n\t\tif (floor(i / out) > maxInt - n) {\n\t\t\terror('overflow');\n\t\t}\n\n\t\tn += floor(i / out);\n\t\ti %= out;\n\n\t\t// Insert `n` at position `i` of the output.\n\t\toutput.splice(i++, 0, n);\n\n\t}\n\n\treturn String.fromCodePoint(...output);\n};\n\n/**\n * Converts a string of Unicode symbols (e.g. a domain name label) to a\n * Punycode string of ASCII-only symbols.\n * @memberOf punycode\n * @param {String} input The string of Unicode symbols.\n * @returns {String} The resulting Punycode string of ASCII-only symbols.\n */\nconst encode = function(input) {\n\tconst output = [];\n\n\t// Convert the input in UCS-2 to an array of Unicode code points.\n\tinput = ucs2decode(input);\n\n\t// Cache the length.\n\tconst inputLength = input.length;\n\n\t// Initialize the state.\n\tlet n = initialN;\n\tlet delta = 0;\n\tlet bias = initialBias;\n\n\t// Handle the basic code points.\n\tfor (const currentValue of input) {\n\t\tif (currentValue < 0x80) {\n\t\t\toutput.push(stringFromCharCode(currentValue));\n\t\t}\n\t}\n\n\tconst basicLength = output.length;\n\tlet handledCPCount = basicLength;\n\n\t// `handledCPCount` is the number of code points that have been handled;\n\t// `basicLength` is the number of basic code points.\n\n\t// Finish the basic string with a delimiter unless it's empty.\n\tif (basicLength) {\n\t\toutput.push(delimiter);\n\t}\n\n\t// Main encoding loop:\n\twhile (handledCPCount < inputLength) {\n\n\t\t// All non-basic code points < n have been handled already. Find the next\n\t\t// larger one:\n\t\tlet m = maxInt;\n\t\tfor (const currentValue of input) {\n\t\t\tif (currentValue >= n && currentValue < m) {\n\t\t\t\tm = currentValue;\n\t\t\t}\n\t\t}\n\n\t\t// Increase `delta` enough to advance the decoder's <n,i> state to <m,0>,\n\t\t// but guard against overflow.\n\t\tconst handledCPCountPlusOne = handledCPCount + 1;\n\t\tif (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) {\n\t\t\terror('overflow');\n\t\t}\n\n\t\tdelta += (m - n) * handledCPCountPlusOne;\n\t\tn = m;\n\n\t\tfor (const currentValue of input) {\n\t\t\tif (currentValue < n && ++delta > maxInt) {\n\t\t\t\terror('overflow');\n\t\t\t}\n\t\t\tif (currentValue === n) {\n\t\t\t\t// Represent delta as a generalized variable-length integer.\n\t\t\t\tlet q = delta;\n\t\t\t\tfor (let k = base; /* no condition */; k += base) {\n\t\t\t\t\tconst t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n\t\t\t\t\tif (q < t) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tconst qMinusT = q - t;\n\t\t\t\t\tconst baseMinusT = base - t;\n\t\t\t\t\toutput.push(\n\t\t\t\t\t\tstringFromCharCode(digitToBasic(t + qMinusT % baseMinusT, 0))\n\t\t\t\t\t);\n\t\t\t\t\tq = floor(qMinusT / baseMinusT);\n\t\t\t\t}\n\n\t\t\t\toutput.push(stringFromCharCode(digitToBasic(q, 0)));\n\t\t\t\tbias = adapt(delta, handledCPCountPlusOne, handledCPCount === basicLength);\n\t\t\t\tdelta = 0;\n\t\t\t\t++handledCPCount;\n\t\t\t}\n\t\t}\n\n\t\t++delta;\n\t\t++n;\n\n\t}\n\treturn output.join('');\n};\n\n/**\n * Converts a Punycode string representing a domain name or an email address\n * to Unicode. Only the Punycoded parts of the input will be converted, i.e.\n * it doesn't matter if you call it on a string that has already been\n * converted to Unicode.\n * @memberOf punycode\n * @param {String} input The Punycoded domain name or email address to\n * convert to Unicode.\n * @returns {String} The Unicode representation of the given Punycode\n * string.\n */\nconst toUnicode = function(input) {\n\treturn mapDomain(input, function(string) {\n\t\treturn regexPunycode.test(string)\n\t\t\t? decode(string.slice(4).toLowerCase())\n\t\t\t: string;\n\t});\n};\n\n/**\n * Converts a Unicode string representing a domain name or an email address to\n * Punycode. Only the non-ASCII parts of the domain name will be converted,\n * i.e. it doesn't matter if you call it with a domain that's already in\n * ASCII.\n * @memberOf punycode\n * @param {String} input The domain name or email address to convert, as a\n * Unicode string.\n * @returns {String} The Punycode representation of the given domain name or\n * email address.\n */\nconst toASCII = function(input) {\n\treturn mapDomain(input, function(string) {\n\t\treturn regexNonASCII.test(string)\n\t\t\t? 'xn--' + encode(string)\n\t\t\t: string;\n\t});\n};\n\n/*--------------------------------------------------------------------------*/\n\n/** Define the public API */\nconst punycode = {\n\t/**\n\t * A string representing the current Punycode.js version number.\n\t * @memberOf punycode\n\t * @type String\n\t */\n\t'version': '2.3.1',\n\t/**\n\t * An object of methods to convert from JavaScript's internal character\n\t * representation (UCS-2) to Unicode code points, and back.\n\t * @see <https://mathiasbynens.be/notes/javascript-encoding>\n\t * @memberOf punycode\n\t * @type Object\n\t */\n\t'ucs2': {\n\t\t'decode': ucs2decode,\n\t\t'encode': ucs2encode\n\t},\n\t'decode': decode,\n\t'encode': encode,\n\t'toASCII': toASCII,\n\t'toUnicode': toUnicode\n};\n\nmodule.exports = punycode;\n","","'use strict';\r\n// IDNA2008 validator using idnaMappingTableCompact.json\r\nconst punycode = require('punycode/');\r\nconst { props, viramas, ranges, mappings, bidi_ranges, joining_type_ranges } = require('./idnaMappingTableCompact.json');\r\n// --- Error classes (short messages; RFC refs included in message) ---\r\nconst throwIdnaContextJError = (msg) => { throw Object.assign(new SyntaxError(msg), { name: \"IdnaContextJError\" }); };\r\nconst throwIdnaContextOError = (msg) => { throw Object.assign(new SyntaxError(msg), { name: \"IdnaContextOError\" }); };\r\nconst throwIdnaUnicodeError = (msg) => { throw Object.assign(new SyntaxError(msg), { name: \"IdnaUnicodeError\" }); };\r\nconst throwIdnaLengthError = (msg) => { throw Object.assign(new SyntaxError(msg), { name: \"IdnaLengthError\" }); };\r\nconst throwIdnaSyntaxError = (msg) => { throw Object.assign(new SyntaxError(msg), { name: \"IdnaSyntaxError\" }); };\r\nconst throwPunycodeError = (msg) => { throw Object.assign(new SyntaxError(msg), { name: \"PunycodeError\" }); };\r\nconst throwIdnaBidiError = (msg) => { throw Object.assign(new SyntaxError(msg), { name: \"IdnaBidiError\" }); };\r\n// --- constants ---\r\nconst ZWNJ = 0x200c;\r\nconst ZWJ = 0x200d;\r\nconst MIDDLE_DOT = 0x00b7;\r\nconst GREEK_KERAIA = 0x0375;\r\nconst KATAKANA_MIDDLE_DOT = 0x30fb;\r\nconst HEBREW_GERESH = 0x05f3;\r\nconst HEBREW_GERSHAYIM = 0x05f4;\r\n// Viramas (used for special ZWJ/ZWNJ acceptance)\r\nconst VIRAMAS = new Set(viramas);\r\n// binary range lookup\r\nfunction getRange(range, key) {\r\n if (!Array.isArray(range) || range.length === 0) return null;\r\n let lb = 0;\r\n let ub = range.length - 1;\r\n while (lb <= ub) {\r\n const mid = (lb + ub) >> 1;\r\n const r = range[mid];\r\n if (key < r[0]) ub = mid - 1;\r\n else if (key > r[1]) lb = mid + 1;\r\n else return r[2];\r\n }\r\n return null;\r\n}\r\n// mapping label (disallowed chars were removed from ranges, so undefined means disallowed or unassigned)\r\nfunction uts46map(label) {\r\n const mappedCps = [];\r\n for (let i = 0; i < label.length; ) {\r\n const cp = label.codePointAt(i);\r\n const prop = props[getRange(ranges, cp)];\r\n const maps = mappings[String(cp)];\r\n // mapping cases\r\n if (prop === 'mapped' && Array.isArray(maps) && maps.length) {\r\n for (const mcp of maps) mappedCps.push(mcp);\r\n } else if (prop === 'valid' || prop === 'deviation') {\r\n mappedCps.push(cp);\r\n } else if (prop === 'ignored') {\r\n // drop\r\n } else {\r\n throwIdnaUnicodeError(`${cpHex(cp)} is disallowed in hostname (RFC 5892, UTS #46).`);\r\n }\r\n i += cp > 0xffff ? 2 : 1;\r\n }\r\n // mapped → label\r\n return String.fromCodePoint(...mappedCps);\r\n}\r\n// --- helpers ---\r\nfunction cpHex(cp) {\r\n return `char '${String.fromCodePoint(cp)}' ` + JSON.stringify('(U+' + cp.toString(16).toUpperCase().padStart(4, '0') + ')');\r\n}\r\n// main validator\r\nfunction isIdnHostname(hostname) {\r\n // basic hostname checks\r\n if (typeof hostname !== 'string') throwIdnaSyntaxError('Label must be a string (RFC 5890 §2.3.2.3).');\r\n // split hostname in labels by the separators defined in uts#46 §2.3\r\n const rawLabels = hostname.split(/[\\x2E\\uFF0E\\u3002\\uFF61]/);\r\n if (rawLabels.some((label) => label.length === 0)) throwIdnaLengthError('Label cannot be empty (consecutive or leading/trailing dot) (RFC 5890 §2.3.2.3).');\r\n // checks per label (IDNA is defined for labels, not for parts of them and not for complete domain names. RFC 5890 §2.3.2.1)\r\n let aceHostnameLength = 0;\r\n for (const rawLabel of rawLabels) {\r\n // ACE label (xn--) validation: decode and re-encode must match\r\n let label = rawLabel;\r\n if (/^xn--/i.test(rawLabel)) {\r\n if (/[^\\p{ASCII}]/u.test(rawLabel)) throwIdnaSyntaxError(`A-label '${rawLabel}' cannot contain non-ASCII character(s) (RFC 5890 §2.3.2.1).`);\r\n const aceBody = rawLabel.slice(4);\r\n try {\r\n label = punycode.decode(aceBody);\r\n } catch (e) {\r\n throwPunycodeError(`Invalid ASCII Compatible Encoding (ACE) of label '${rawLabel}' (RFC 5891 §4.4 → RFC 3492).`);\r\n }\r\n if (!/[^\\p{ASCII}]/u.test(label)) throwIdnaSyntaxError(`decoded A-label '${rawLabel}' result U-label '${label}' cannot be empty or all-ASCII character(s) (RFC 5890 §2.3.2.1).`);\r\n if (punycode.encode(label) !== aceBody) throwPunycodeError(`Re-encode mismatch for ASCII Compatible Encoding (ACE) label '${rawLabel}' (RFC 5891 §4.4 → RFC 3492).`);\r\n }\r\n // mapping phase (here because decoded A-label may contain disallowed chars)\r\n label = uts46map(label).normalize('NFC');\r\n // final ACE label lenght accounting\r\n let aceLabel;\r\n try {\r\n aceLabel = /[^\\p{ASCII}]/u.test(label) ? punycode.toASCII(label) : label;\r\n } catch (e) {\r\n throwPunycodeError(`ASCII conversion failed for '${label}' (RFC 3492).`);\r\n }\r\n if (aceLabel.length > 63) throwIdnaLengthError('Final ASCII Compatible Encoding (ACE) label cannot exceed 63 bytes (RFC 5890 §2.3.2.1).');\r\n aceHostnameLength += aceLabel.length + 1;\r\n // hyphen rules (the other one is covered by bidi)\r\n if (/^-|-$/.test(label)) throwIdnaSyntaxError('Label cannot begin or end with hyphen-minus (RFC 5891 §4.2.3.1).');\r\n if (label.indexOf('--') === 2) throwIdnaSyntaxError('Label cannot contain consecutive hyphen-minus in the 3rd and 4th positions (RFC 5891 §4.2.3.1).');\r\n // leading combining marks check (some are not covered by bidi)\r\n if (/^\\p{M}$/u.test(String.fromCodePoint(label.codePointAt(0)))) throwIdnaSyntaxError(`Label cannot begin with combining/enclosing mark ${cpHex(label.codePointAt(0))} (RFC 5891 §4.2.3.2).`);\r\n // spread cps for context and bidi checks\r\n const cps = Array.from(label).map((char) => char.codePointAt(0));\r\n let joinTypes = '';\r\n let digits = '';\r\n let bidiClasses = [];\r\n // per-codepoint contextual checks\r\n for (let j = 0; j < cps.length; j++) {\r\n const cp = cps[j];\r\n // check ContextJ ZWNJ (uses joining types and virama rule)\r\n if (cps.includes(ZWNJ)) {\r\n joinTypes += VIRAMAS.has(cp) ? 'V' : cp === ZWNJ ? 'Z' : getRange(joining_type_ranges, cp) || 'U';\r\n if (j === cps.length - 1 && /(?![LD][T]*)(?<!V)Z(?![T]*[RD])/.test(joinTypes)) throwIdnaContextJError(`char ${JSON.stringify('U+200C')} (ZWNJ) has invalid join context: '${joinTypes}' (RFC 5892 Appendix A.1).`);\r\n }\r\n // check ContextJ ZWJ (must be preceded by virama)\r\n if (cp === ZWJ) {\r\n if (j === 0 || !VIRAMAS.has(cps[j - 1])) {\r\n throwIdnaContextJError(`${cpHex(cp)} cannot appear at start or without a Virama before (RFC 5892 Appendix A.2).`);\r\n }\r\n }\r\n // check ContextO MIDDLE_DOT\r\n if (cp === MIDDLE_DOT) {\r\n if (j === 0 || j === cps.length - 1 || !(cps[j - 1] === 0x6c && cps[j + 1] === 0x6c)) throwIdnaContextOError(`${cpHex(cp)} must be between two ASCII 'l' characters (RFC 5892 A.3).`);\r\n }\r\n // check ContextO GREEK_KERAIA, must be followed by a Greek character (next non-spacing mark)\r\n if (cp === GREEK_KERAIA) {\r\n if (!/^\\p{Mn}*\\p{sc=Greek}$/u.test(String.fromCodePoint(...cps.slice(j + 1)))) throwIdnaContextOError(`${cpHex(cp)} must be followed by Greek script (RFC 5892 A.4).`);\r\n }\r\n // check ContextO HEBREW_GERESH and HEBREW_GERSHAYIM\r\n if (cp === HEBREW_GERESH || cp === HEBREW_GERSHAYIM) {\r\n if (j === 0 || !/^\\p{sc=Hebrew}$/u.test(String.fromCodePoint(cps[j - 1]))) throwIdnaContextOError(`${cpHex(cp)} must be preceded by Hebrew script (RFC 5892 A.5/A.6).`);\r\n }\r\n // check ContextO KATAKANA_MIDDLE_DOT, allowed only if label contains at least one Hiragana / Katakana / Han character\r\n if (cp === KATAKANA_MIDDLE_DOT) {\r\n if (!/[\\p{sc=Hiragana}\\p{sc=Katakana}\\p{sc=Han}]/u.test(String.fromCodePoint(...cps))) {\r\n throwIdnaContextOError(`${cpHex(cp)} requires at least one Hiragana/Katakana/Han in the label (RFC 5892 Appendix A.7).`);\r\n }\r\n }\r\n // check mixed digit sets\r\n if ((cp >= 0x0660 && cp <= 0x0669) || (cp >= 0x06f0 && cp <= 0x06f9)) digits += (cp < 0x06f0 ? 'a' : 'e' );\r\n if (j === cps.length - 1 && /^(?=.*a)(?=.*e).*$/.test(digits)) throwIdnaContextOError('Arabic-Indic digits cannot be mixed with Extended Arabic-Indic digits (RFC 5892 Appendix A.8/A.9).');\r\n // validate bidi\r\n bidiClasses.push(getRange(bidi_ranges, cp));\r\n if (j === cps.length - 1 && (bidiClasses.includes('R') || bidiClasses.includes('AL'))) {\r\n // order of chars in label (RFC 5890 §2.3.3)\r\n if (bidiClasses[0] === 'R' || bidiClasses[0] === 'AL') {\r\n for (let cls of bidiClasses) if (!['R', 'AL', 'AN', 'EN', 'ET', 'ES', 'CS', 'ON', 'BN', 'NSM'].includes(cls)) throwIdnaBidiError(`'${label}' breaks rule #2: Only R, AL, AN, EN, ET, ES, CS, ON, BN, NSM allowed in label (RFC 5893 §2.2)`);\r\n if (!/(R|AL|EN|AN)(NSM)*$/.test(bidiClasses.join(''))) throwIdnaBidiError(`'${label}' breaks rule #3: label must end with R, AL, EN, or AN, followed by zero or more NSM (RFC 5893 §2.3)`);\r\n if (bidiClasses.includes('EN') && bidiClasses.includes('AN')) throwIdnaBidiError(`'${label}' breaks rule #4: EN and AN cannot be mixed in the same label (RFC 5893 §2.4)`);\r\n } else if (bidiClasses[0] === 'L') {\r\n for (let cls of bidiClasses) if (!['L', 'EN', 'ET', 'ES', 'CS', 'ON', 'BN', 'NSM'].includes(cls)) throwIdnaBidiError(`'${label}' breaks rule #5: Only L, EN, ET, ES, CS, ON, BN, NSM allowed in label (RFC 5893 §2.5)`);\r\n if (!/(L|EN)(NSM)*$/.test(bidiClasses.join(''))) throwIdnaBidiError(`'${label}' breaks rule #6: label must end with L or EN, followed by zero or more NSM (RFC 5893 §2.6)`);\r\n } else {\r\n throwIdnaBidiError(`'${label}' breaks rule #1: label must start with L or R or AL (RFC 5893 §2.1)`);\r\n }\r\n }\r\n }\r\n }\r\n if (aceHostnameLength - 1 > 253) throwIdnaLengthError('Final ASCII Compatible Encoding (ACE) hostname cannot exceed 253 bytes (RFC 5890 → RFC 1034 §3.1).');\r\n return true;\r\n}\r\n// return ACE hostname if valid\r\nconst idnHostname = (string) =>\r\n isIdnHostname(string) &&\r\n punycode.toASCII(\r\n string\r\n .split('.')\r\n .map((label) => uts46map(label).normalize('NFC'))\r\n .join('.')\r\n );\r\n// export\r\nmodule.exports = { isIdnHostname, idnHostname, uts46map, punycode };\r\n","/**\n * @import * as API from \"./index.d.ts\"\n */\n\nconst label = `(?!-)[A-Za-z0-9-]{1,63}(?<!-)`;\nconst domain = `${label}(?:\\\\.${label})*`;\n\nconst domainPattern = new RegExp(`^${domain}$`);\n\n/** @type API.isHostname */\nexport const isHostname = (hostname) => {\n return domainPattern.test(hostname) && hostname.length < 256;\n};\n","import { isIdnHostname } from \"idn-hostname\";\nimport { isHostname } from \"./rfc1123.js\";\n\n/**\n * @import * as API from \"./index.d.ts\"\n */\n\n/** @type API.isAsciiIdn */\nexport const isAsciiIdn = (hostname) => {\n return isHostname(hostname) && isIdn(hostname);\n};\n\n/** @type API.isIdn */\nexport const isIdn = (hostname) => {\n try {\n return isIdnHostname(hostname);\n } catch (_error) {\n return false;\n }\n};\n","import { isIdn } from \"./uts46.js\";\n\n/**\n * @import * as API from \"./index.d.ts\"\n */\n\nconst ucschar = `[\\\\u{A0}-\\\\u{D7FF}\\\\u{F900}-\\\\u{FDCF}\\\\u{FDF0}-\\\\u{FFEF}\\\\u{10000}-\\\\u{1FFFD}\\\\u{20000}-\\\\u{2FFFD}\\\\u{30000}-\\\\u{3FFFD}\\\\u{40000}-\\\\u{4FFFD}\\\\u{50000}-\\\\u{5FFFD}\\\\u{60000}-\\\\u{6FFFD}\\\\u{70000}-\\\\u{7FFFD}\\\\u{80000}-\\\\u{8FFFD}\\\\u{90000}-\\\\u{9FFFD}\\\\u{A0000}-\\\\u{AFFFD}\\\\u{B0000}-\\\\u{BFFFD}\\\\u{C0000}-\\\\u{CFFFD}\\\\u{D0000}-\\\\u{DFFFD}\\\\u{E1000}-\\\\u{EFFFD}]`;\n\nconst alpha = `[a-zA-Z]`;\nconst hexdig = `[\\\\da-fA-F]`;\n\n// Printable US-ASCII characters not including specials.\nconst atext = `(?:[\\\\w!#$%&'*+\\\\-/=?^\\`{|}~]|${ucschar})`;\nconst atom = `${atext}+`;\nconst dotString = `${atom}(?:\\\\.${atom})*`;\n\n// Any ASCII graphic or space without blackslash-quoting except double-quote and the backslash itself.\nconst qtextSMTP = `(?:[\\\\x20-\\\\x21\\\\x23-\\\\x5B\\\\x5D-\\\\x7E]|${ucschar})`;\n// backslash followed by any ASCII graphic or space\nconst quotedPairSMTP = `\\\\\\\\[\\\\x20-\\\\x7E]`;\nconst qcontentSMTP = `(?:${qtextSMTP}|${quotedPairSMTP})`;\nconst quotedString = `\"${qcontentSMTP}*\"`;\n\nconst localPart = `(?:${dotString}|${quotedString})`; // MAY be case-sensitive\n\nconst letDig = `(?:${alpha}|\\\\d)`;\nconst ldhStr = `(?:${letDig}|-)*${letDig}`;\nconst letDigUcs = `(?:${alpha}|\\\\d|${ucschar})`;\nconst ldhStrUcs = `(?:${letDigUcs}|-)*${letDigUcs}`;\nconst subDomain = `${letDigUcs}${ldhStrUcs}?`;\nconst domain = `${subDomain}(?:\\\\.${subDomain})*`;\n\nconst decOctet = `(?:\\\\d|[1-9]\\\\d|1\\\\d\\\\d|2[0-4]\\\\d|25[0-5])`;\nconst ipv4Address = `${decOctet}\\\\.${decOctet}\\\\.${decOctet}\\\\.${decOctet}`;\n\nconst h16 = `${hexdig}{1,4}`;\nconst ls32 = `(?:${h16}:${h16}|${ipv4Address})`;\nconst ipv6Address = `(?:(?:${h16}:){6}${ls32}|::(?:${h16}:){5}${ls32}|(?:${h16})?::(?:${h16}:){4}${ls32}|(?:(?:${h16}:){0,1}${h16})?::(?:${h16}:){3}${ls32}|(?:(?:${h16}:){0,2}${h16})?::(?:${h16}:){2}${ls32}|(?:(?:${h16}:){0,3}${h16})?::(?:${h16}:){1}${ls32}|(?:(?:${h16}:){0,4}${h16})?::${ls32}|(?:(?:${h16}:){0,5}${h16})?::${h16}|(?:(?:${h16}:){0,6}${h16})?::)`;\nconst ipv6AddressLiteral = `IPv6:${ipv6Address}`;\n\nconst dcontent = `[\\\\x21-\\\\x5A\\\\x5E-\\\\x7E]`; // Printable US-ASCII excluding \"[\", \"\\\", \"]\"\nconst generalAddressLiteral = `${ldhStr}:${dcontent}+`;\n\nconst addressLiteral = `\\\\[(?:${ipv4Address}|${ipv6AddressLiteral}|${generalAddressLiteral})\\\\]`;\n\nconst mailbox = `(?<localPart>${localPart})@(?:(?<ip>${addressLiteral})|(?<domain>${domain}))`;\n\nconst mailboxPattern = new RegExp(`^${mailbox}$`, \"u\");\n\n/** @type API.isIdnEmail */\nexport const isIdnEmail = (email) => {\n const parsedEmail = mailboxPattern.exec(email)?.groups;\n\n return !!parsedEmail && (!parsedEmail.domain || isIdn(parsedEmail.domain));\n};\n","/**\n * @import * as API from \"./index.d.ts\"\n */\n\nconst decOctet = `(?:\\\\d|[1-9]\\\\d|1\\\\d\\\\d|2[0-4]\\\\d|25[0-5])`;\nconst ipV4Address = `${decOctet}\\\\.${decOctet}\\\\.${decOctet}\\\\.${decOctet}`;\n\n/**\n * @type API.isIPv4\n * @function\n */\nexport const isIPv4 = RegExp.prototype.test.bind(new RegExp(`^${ipV4Address}$`));\n","/**\n * @import * as API from \"./index.d.ts\"\n */\n\nconst hexdig = `[a-fA-F0-9]`;\n\nconst decOctet = `(?:\\\\d|[1-9]\\\\d|1\\\\d\\\\d|2[0-4]\\\\d|25[0-5])`;\nconst ipV4Address = `${decOctet}\\\\.${decOctet}\\\\.${decOctet}\\\\.${decOctet}`;\n\nconst h16 = `${hexdig}{1,4}`;\nconst ls32 = `(?:${h16}:${h16}|${ipV4Address})`;\nconst ipV6Address = `(?:(?:${h16}:){6}${ls32}|::(?:${h16}:){5}${ls32}|(?:${h16})?::(?:${h16}:){4}${ls32}|(?:(?:${h16}:){0,1}${h16})?::(?:${h16}:){3}${ls32}|(?:(?:${h16}:){0,2}${h16})?::(?:${h16}:){2}${ls32}|(?:(?:${h16}:){0,3}${h16})?::(?:${h16}:){1}${ls32}|(?:(?:${h16}:){0,4}${h16})?::${ls32}|(?:(?:${h16}:){0,5}${h16})?::${h16}|(?:(?:${h16}:){0,6}${h16})?::)`;\n\n/**\n * @type API.isIPv6\n * @function\n */\nexport const isIPv6 = RegExp.prototype.test.bind(new RegExp(`^${ipV6Address}$`));\n","/**\n * @import * as API from \"./index.d.ts\"\n */\n\n/**\n * @template A\n * @typedef {(value: string) => A} Parser\n */\n\n/**\n * @typedef {(value: string) => string} Normalizer\n */\n\n/**\n * @typedef {{\n * parseAbsolute: Parser<API.AbsoluteIdentifierComponents>;\n * parseReference: Parser<API.RelativeIdentifierComponents>;\n * parse: Parser<API.IdentifierComponents>;\n * normalizePath: Normalizer;\n * normalizeQuery: Normalizer;\n * normalizeFragment: Normalizer;\n * }} Strategy\n */\n\n// Common\nconst hexdig = `[a-fA-F0-9]`;\nconst unreserved = `[a-zA-Z0-9-._~]`;\nconst subDelims = `[!$&'()*+,;=]`;\nconst pctEncoded = `%${hexdig}${hexdig}`;\n\nconst decOctet = `(?:\\\\d|[1-9]\\\\d|1\\\\d\\\\d|2[0-4]\\\\d|25[0-5])`;\nconst ipV4Address = `${decOctet}\\\\.${decOctet}\\\\.${decOctet}\\\\.${decOctet}`;\nconst h16 = `${hexdig}{1,4}`;\nconst ls32 = `(?:${h16}:${h16}|${ipV4Address})`;\nconst ipV6Address = `(?:(?:${h16}:){6}${ls32}|::(?:${h16}:){5}${ls32}|(?:${h16})?::(?:${h16}:){4}${ls32}|(?:(?:${h16}:){0,1}${h16})?::(?:${h16}:){3}${ls32}|(?:(?:${h16}:){0,2}${h16})?::(?:${h16}:){2}${ls32}|(?:(?:${h16}:){0,3}${h16})?::(?:${h16}:){1}${ls32}|(?:(?:${h16}:){0,4}${h16})?::${ls32}|(?:(?:${h16}:){0,5}${h16})?::${h16}|(?:(?:${h16}:){0,6}${h16})?::)`;\nconst ipVFuture = `v${hexdig}+\\\\.(?:${unreserved}|${subDelims}|:)+`;\nconst ipLiteral = `\\\\[(?:${ipV6Address}|${ipVFuture})\\\\]`;\nconst scheme = `(?<scheme>[a-zA-Z][a-zA-Z0-9-+.]*)`;\nconst port = `:(?<port>\\\\d*)`;\n\n// URI\nconst regName = `(?:${unreserved}|${pctEncoded}|${subDelims})*?`;\nconst host = `(?<host>${ipLiteral}|${ipV4Address}|${regName})`;\nconst userinfo = `(?<userinfo>(?:${unreserved}|${pctEncoded}|${subDelims}|:)*)`;\nconst pchar = `(?:${unreserved}|${pctEncoded}|${subDelims}|:|@)`;\nconst segment = `${pchar}*?`;\nconst pathAbEmpty = `(?:/${segment})*`;\n\nconst authority = `(?<authority>(?:${userinfo}@)?${host}(?:${port})?)`;\nconst path = `(?<path>${pathAbEmpty})`;\nconst pathWithoutAuthority = `(?<path2>(?!//)${segment}${pathAbEmpty})`;\nconst query = `(?:\\\\?(?<query>(?:${pchar}|/|\\\\?)*))?`;\nconst fragment = `(?:#(?<fragment>(?:${pchar}|/|\\\\?)*))?`;\n\nconst uri = `^${scheme}:(?://${authority}${path}|${pathWithoutAuthority})${query}${fragment}$`;\nconst uriReference = `^(?:${scheme}:|)(?://${authority}${path}|${pathWithoutAuthority})${query}${fragment}$`;\nconst absoluteUri = `^${scheme}:(?://${authority}${path}|${pathWithoutAuthority})${query}$`;\n\n// IRI\nconst iunreserved = `[a-zA-Z0-9\\\\-._~\\\\u{A0}-\\\\u{D7FF}\\\\u{F900}-\\\\u{FDCF}\\\\u{FDF0}-\\\\u{FFEF}\\\\u{10000}-\\\\u{1FFFD}\\\\u{20000}-\\\\u{2FFFD}\\\\u{30000}-\\\\u{3FFFD}\\\\u{40000}-\\\\u{4FFFD}\\\\u{50000}-\\\\u{5FFFD}\\\\u{60000}-\\\\u{6FFFD}\\\\u{70000}-\\\\u{7FFFD}\\\\u{80000}-\\\\u{8FFFD}\\\\u{90000}-\\\\u{9FFFD}\\\\u{A0000}-\\\\u{AFFFD}\\\\u{B0000}-\\\\u{BFFFD}\\\\u{C0000}-\\\\u{CFFFD}\\\\u{D0000}-\\\\u{DFFFD}\\\\u{E1000}-\\\\u{EFFFD}]`;\nconst iprivate = `[\\\\u{E000}-\\\\u{F8FF}\\\\u{F0000}-\\\\u{FFFFD}\\\\u{100000}-\\\\u{10FFFD}]`;\n\nconst iregName = `(?:${iunreserved}|${pctEncoded}|${subDelims})*?`;\nconst ihost = `(?<host>${ipLiteral}|${ipV4Address}|${iregName})`;\nconst iuserinfo = `(?<userinfo>(?:${iunreserved}|${pctEncoded}|${subDelims}|:)*)`;\nconst ipchar = `(?:${iunreserved}|${pctEncoded}|${subDelims}|:|@)`;\nconst isegment = `${ipchar}*?`;\nconst ipathAbEmpty = `(?:/${isegment})*`;\n\nconst iauthority = `(?<authority>(?:${iuserinfo}@)?${ihost}(?:${port})?)`;\nconst ipath = `(?<path>${ipathAbEmpty})`;\nconst ipathWithoutAuthority = `(?<path2>(?!//)${isegment}${ipathAbEmpty})`;\nconst iquery = `(?:\\\\?(?<query>(?:${ipchar}|${iprivate}|/|\\\\?)*))?`;\nconst ifragment = `(?:#(?<fragment>(?:${ipchar}|/|\\\\?)*))?`;\n\nconst iri = `^${scheme}:(?://${iauthority}${ipath}|${ipathWithoutAuthority})${iquery}${ifragment}$`;\nconst iriReference = `^(?:${scheme}:|)(?://${iauthority}${ipath}|${ipathWithoutAuthority})${iquery}${ifragment}$`;\nconst absoluteIri = `^${scheme}:(?://${iauthority}${ipath}|${ipathWithoutAuthority})${iquery}$`;\n\n// Components\n/** @type (strategy: Strategy) => (reference: string, base: string) => string */\nconst resolveReference = (strategy) => (reference, base) => {\n const resolvedComponents = /** @type API.IdentifierComponents */ (strategy.parseReference(reference));\n\n if (resolvedComponents.scheme === undefined) {\n const baseComponents = strategy.parseAbsolute(base);\n resolvedComponents.scheme = baseComponents.scheme;\n\n if (resolvedComponents.authority === undefined) {\n resolvedComponents.authority = baseComponents.authority;\n resolvedComponents.userinfo = baseComponents.userinfo;\n resolvedComponents.host = baseComponents.host;\n resolvedComponents.port = baseComponents.port;\n\n if (resolvedComponents.path === \"\") {\n resolvedComponents.path = baseComponents.path;\n\n resolvedComponents.query ??= baseComponents.query;\n } else if (!resolvedComponents.path.startsWith(\"/\")) {\n resolvedComponents.path = mergePaths(resolvedComponents.path, baseComponents);\n }\n }\n }\n\n return composeIdentifier(strategy, resolvedComponents);\n};\n\n/** @type (path: string, base: API.IdentifierComponents) => string */\nconst mergePaths = (path, base) => {\n if (base.authority && base.path === \"\") {\n return \"/\" + path;\n } else {\n const position = base.path.lastIndexOf(\"/\");\n return position === -1 ? path : base.path.slice(0, position + 1) + path;\n }\n};\n\nconst isNoOpSegment = /^\\.?\\.\\/|^\\.\\.?$/;\nconst isSlashDotSegment = /^\\/\\.(?:\\/|$)/;\nconst isUpSegment = /^\\/\\.\\.(?:\\/|$)/;\n\n/** @type (path: string) => string */\nconst removeDotSegments = (path) => {\n let output = \"\";\n\n while (path.length > 0) {\n if (isNoOpSegment.test(path)) {\n path = removeSegment(path);\n } else if (isSlashDotSegment.test(path)) {\n path = replaceSegmentWithSlash(path);\n } else if (isUpSegment.test(path)) {\n path = replaceSegmentWithSlash(path);\n output = removeLastSegment(output);\n } else {\n const segment = getSegment(path);\n path = removeSegment(path);\n output += segment;\n }\n }\n\n return output;\n};\n\n/** @type (path: string) => string */\nconst removeSegment = (path) => {\n const position = path.indexOf(\"/\", 1);\n return position === -1 ? \"\" : \"/\" + path.slice(position + 1);\n};\n\n/** @type (path: string) => string */\nconst replaceSegmentWithSlash = (path) => {\n const position = path.indexOf(\"/\", 1);\n return position === -1 ? \"/\" : \"/\" + path.slice(position + 1);\n};\n\n/** @type (path: string) => string */\nconst removeLastSegment = (path) => {\n const position = path.lastIndexOf(\"/\");\n return position === -1 ? path : path.slice(0, position);\n};\n\n/** @type (path: string) => string */\nconst getSegment = (path) => {\n const position = path.indexOf(\"/\", 1);\n return position === -1 ? path : path.slice(0, position);\n};\n\n/** @type (strategy: Strategy, components: API.IdentifierComponents) => string */\nconst composeIdentifier = (strategy, components) => {\n let resolved = components.scheme.toLowerCase() + \":\";\n resolved += components.authority === undefined ? \"\" : \"//\"\n + (components.userinfo === undefined ? \"\" : components.userinfo + \"@\")\n + components.host.toLowerCase()\n + (components.port === undefined ? \"\" : \":\" + components.port);\n resolved += strategy.normalizePath(components.path);\n resolved += components.query === undefined ? \"\" : \"?\" + strategy.normalizeQuery(components.query);\n resolved += components.fragment === undefined ? \"\" : \"#\" + strategy.normalizeFragment(components.fragment);\n\n return resolved;\n};\n\nconst percentEncoded = new RegExp(pctEncoded, \"g\");\n\n/** @type (isAllowed: (value: string) => boolean) => (match: string) => string */\nconst percentEncodedToChar = (isAllowed) => (match) => {\n const charCode = parseInt(match.slice(1), 16);\n const char = String.fromCharCode(charCode);\n\n return isAllowed(char) ? char : match.toUpperCase();\n};\n\nconst isAllowedUnescapedInPath = RegExp.prototype.test.bind(new RegExp(`${unreserved}|${subDelims}|[:@]`));\nconst isAllowedUnescapedInIPath = RegExp.prototype.test.bind(new RegExp(`${iunreserved}|${subDelims}|[:@]`, \"u\"));\n\n/** @type (isAllowed: (value: string) => boolean) => (segment: string) => string */\nconst normalizePath = (isAllowed) => (segment) => removeDotSegments(segment).replaceAll(percentEncoded, percentEncodedToChar(isAllowed));\n\nconst isAllowedUnescapedInQuery = RegExp.prototype.test.bind(new RegExp(`${unreserved}|${subDelims}|[:@/?]`));\nconst isAllowedUnescapedInIQuery = RegExp.prototype.test.bind(new RegExp(`${iunreserved}|${subDelims}|[:@/?]`, \"u\"));\n\n/** @type (isAllowed: (value: string) => boolean) => (segment: string) => string */\nconst normalizeQuery = (isAllowed) => (query) => query.replaceAll(percentEncoded, percentEncodedToChar(isAllowed));\n\n// API\n/** @type API.isUri */\nexport const isUri = RegExp.prototype.test.bind(new RegExp(uri));\n/** @type API.isUriReference */\nexport const isUriReference = RegExp.prototype.test.bind(new RegExp(uriReference));\n/** @type API.isAbsoluteUri */\nexport const isAbsoluteUri = RegExp.prototype.test.bind(new RegExp(absoluteUri));\n\n/** @type API.isIri */\nexport const isIri = RegExp.prototype.test.bind(new RegExp(iri, \"u\"));\n/** @type API.isIriReference */\nexport const isIriReference = RegExp.prototype.test.bind(new RegExp(iriReference, \"u\"));\n/** @type API.isAbsoluteIri */\nexport const isAbsoluteIri = RegExp.prototype.test.bind(new RegExp(absoluteIri, \"u\"));\n\n/**\n * @type (pattern: RegExp, type: string) => (value: string) => any\n */\nconst createParser = (pattern, type) => (value) => {\n const match = pattern.exec(value);\n if (match === null) {\n throw Error(`Invalid ${type}: ${value}`);\n }\n const groups = /** @type Record<string, string> */ (match.groups);\n if (groups.authority === undefined) {\n groups.path = groups.path2;\n }\n delete groups.path2;\n\n return groups;\n};\n\n/** @type API.parseUri */\nexport const parseUri = createParser(new RegExp(uri), \"URI\");\n/** @type API.parseUriReference */\nexport const parseUriReference = createParser(new RegExp(uriReference), \"URI-reference\");\n/** @type API.parseAbsoluteUri */\nexport const parseAbsoluteUri = createParser(new RegExp(absoluteUri), \"absolute-URI\");\n\n/** @type API.parseIri */\nexport const parseIri = createParser(new RegExp(iri, \"u\"), \"IRI\");\n/** @type API.parseIriReference */\nexport const parseIriReference = createParser(new RegExp(iriReference, \"u\"), \"IRI-reference\");\n/** @type API.parseAbsoluteIri */\nexport const parseAbsoluteIri = createParser(new RegExp(absoluteIri, \"u\"), \"absolute-IRI\");\n\n/** @type Record<string, Strategy> */\nconst strategies = {\n uri: {\n parseAbsolute: parseAbsoluteUri,\n parseReference: parseUriReference,\n parse: parseUri,\n normalizePath: normalizePath(isAllowedUnescapedInPath),\n normalizeQuery: normalizeQuery(isAllowedUnescapedInQuery),\n normalizeFragment: normalizeQuery(isAllowedUnescapedInQuery)\n },\n iri: {\n parseAbsolute: parseAbsoluteIri,\n parseReference: parseIriReference,\n parse: parseIri,\n normalizePath: normalizePath(isAllowedUnescapedInIPath),\n normalizeQuery: normalizeQuery(isAllowedUnescapedInIQuery),\n normalizeFragment: normalizeQuery(isAllowedUnescapedInIQuery)\n }\n};\n\n/** @type (strategy: Strategy) => (identifier: string) => string */\nconst toAbsolute = (strategy) => (identifier) => {\n const components = strategy.parse(identifier);\n delete components.fragment;\n return composeIdentifier(strategy, components);\n};\n\n/** @type API.toAbsoluteUri */\nexport const toAbsoluteUri = toAbsolute(strategies.uri);\n/** @type API.toAbsoluteIri */\nexport const toAbsoluteIri = toAbsolute(strategies.iri);\n\n/** @type (strategy: Strategy) => (identifier: string) => string */\nconst normalize = (strategy) => (identifier) => {\n const components = strategy.parse(identifier);\n return composeIdentifier(strategy, components);\n};\n\n/** @type API.normalizeUri */\nexport const normalizeUri = normalize(strategies.uri);\n/** @type API.normalizeIri */\nexport const normalizeIri = normalize(strategies.iri);\n\n/** @type API.resolveUri */\nexport const resolveUri = resolveReference(strategies.uri);\n/** @type API.resolveIri */\nexport const resolveIri = resolveReference(strategies.iri);\n\n/** @type (strategy: Strategy) => (uri: string, relativeTo: string) => string */\nconst toRelative = (strategy) => (uri, relativeTo) => {\n const fromUri = strategy.parseAbsolute(uri);\n const toUri = strategy.parse(relativeTo);\n\n if (toUri.scheme !== fromUri.scheme) {\n return relativeTo;\n }\n\n if (toUri.authority !== fromUri.authority) {\n return relativeTo;\n }\n\n let result;\n\n if (fromUri.path === toUri.path) {\n result = \"\";\n } else {\n const fromSegments = fromUri.path.split(\"/\");\n const toSegments = toUri.path.split(\"/\");\n\n let position = 0;\n while (fromSegments[position] === toSegments[position] && position < fromSegments.length - 1 && position < toSegments.length - 1) {\n position++;\n }\n\n const segments = [];\n for (let index = position + 1; index < fromSegments.length; index++) {\n segments.push(\"..\");\n }\n\n for (let index = position; index < toSegments.length; index++) {\n segments.push(toSegments[index]);\n }\n\n result = segments.join(\"/\");\n }\n\n if (toUri.query !== undefined) {\n result += `?${toUri.query}`;\n }\n\n if (toUri.fragment !== undefined) {\n result += `#${toUri.fragment}`;\n }\n\n return result;\n};\n\n/** @type API.toRelativeUri */\nexport const toRelativeUri = toRelative(strategies.uri);\n/** @type API.toRelativeIri */\nexport const toRelativeIri = toRelative(strategies.iri);\n","import * as Hyperjump from \"@hyperjump/uri\";\n\n/**\n * @import * as API from \"./index.d.ts\"\n */\n\n/**\n * @type API.isUri\n * @function\n */\nexport const isUri = Hyperjump.isUri;\n\n/**\n * @type API.isUriReference\n * @function\n */\nexport const isUriReference = Hyperjump.isUriReference;\n","import * as Hyperjump from \"@hyperjump/uri\";\n\n/**\n * @import * as API from \"./index.d.ts\"\n */\n\n/**\n * @type API.isIri\n * @function\n */\nexport const isIri = Hyperjump.isIri;\n\n/**\n * @type API.isIriReference\n * @function\n */\nexport const isIriReference = Hyperjump.isIriReference;\n","/**\n * @import * as API from \"./index.d.ts\"\n */\n\nconst hexDigit = `[0-9a-fA-F]`;\nconst hexOctet = `(?:${hexDigit}{2})`;\nconst timeLow = `${hexOctet}{4}`;\nconst timeMid = `${hexOctet}{2}`;\nconst timeHighAndVersion = `${hexOctet}{2}`;\nconst clockSeqAndReserved = hexOctet;\nconst clockSeqLow = hexOctet;\nconst node = `${hexOctet}{6}`;\n\nconst uuid = `${timeLow}\\\\-${timeMid}\\\\-${timeHighAndVersion}\\\\-${clockSeqAndReserved}${clockSeqLow}\\\\-${node}`;\n\n/**\n * @type API.isUuid\n * @function\n */\nexport const isUuid = RegExp.prototype.test.bind(new RegExp(`^${uuid}$`));\n","/**\n * @import * as API from \"./index.d.ts\"\n */\n\nconst alpha = `[a-zA-Z]`;\nconst hexdig = `[\\\\da-fA-F]`;\nconst pctEncoded = `%${hexdig}${hexdig}`;\n\nconst ucschar = `[\\\\u{A0}-\\\\u{D7FF}\\\\u{F900}-\\\\u{FDCF}\\\\u{FDF0}-\\\\u{FFEF}\\\\u{10000}-\\\\u{1FFFD}\\\\u{20000}-\\\\u{2FFFD}\\\\u{30000}-\\\\u{3FFFD}\\\\u{40000}-\\\\u{4FFFD}\\\\u{50000}-\\\\u{5FFFD}\\\\u{60000}-\\\\u{6FFFD}\\\\u{70000}-\\\\u{7FFFD}\\\\u{80000}-\\\\u{8FFFD}\\\\u{90000}-\\\\u{9FFFD}\\\\u{A0000}-\\\\u{AFFFD}\\\\u{B0000}-\\\\u{BFFFD}\\\\u{C0000}-\\\\u{CFFFD}\\\\u{D0000}-\\\\u{DFFFD}\\\\u{E1000}-\\\\u{EFFFD}]`;\n\nconst iprivate = `[\\\\u{E000}-\\\\u{F8FF}\\\\u{F0000}-\\\\u{FFFFD}\\\\u{100000}-\\\\u{10FFFD}]`;\n\nconst opLevel2 = `[+#]`;\nconst opLevel3 = `[./;?&]`;\nconst opReserve = `[=,!@|]`;\nconst operator = `(?:${opLevel2}|${opLevel3}${opReserve})`;\n\nconst varchar = `(?:${alpha}|\\\\d|_|${pctEncoded})`;\nconst varname = `${varchar}(?:\\\\.?${varchar})*`;\nconst maxLength = `(?:[1-9]|\\\\d{0,3})`; // positive integer < 10000\nconst prefix = `:${maxLength}`;\nconst explode = `\\\\*`;\nconst modifierLevel4 = `(?:${prefix}|${explode})`;\nconst varspec = `${varname}${modifierLevel4}?`;\nconst variableList = `${varspec}(?:,${varspec})*`;\n\nconst expression = `\\\\{${operator}?${variableList}\\\\}`;\n\n// any Unicode character except: CTL, SP, DQUOTE, \"%\" (aside from pct-encoded), \"<\", \">\", \"\\\", \"^\", \"`\", \"{\", \"|\", \"}\"\nconst literals = `(?:[\\\\x21\\\\x23-\\\\x24\\\\x26-\\\\x3B\\\\x3D\\\\x3F-\\\\x5B\\\\x5D\\\\x5F\\\\x61-\\\\x7A\\\\x7E]|${ucschar}|${iprivate}|${pctEncoded})`;\n\nconst uriTemplate = `(?:${literals}|${expression})*`;\n\n/**\n * @type API.isUriTemplate\n * @function\n */\nexport const isUriTemplate = RegExp.prototype.test.bind(new RegExp(`^${uriTemplate}$`, \"u\"));\n","/**\n * @import * as API from \"./index.d.ts\"\n */\n\nconst unescaped = `[\\\\u{00}-\\\\u{2E}\\\\u{30}-\\\\u{7D}\\\\u{7F}-\\\\u{10FFFF}]`; // %x2F ('/') and %x7E ('~') are excluded from 'unescaped'\nconst escaped = `~[01]`; // representing '~' and '/', respectively\nconst referenceToken = `(?:${unescaped}|${escaped})*`;\nconst jsonPointer = `(?:/${referenceToken})*`;\n\n/**\n * @type API.isJsonPointer\n * @function\n */\nexport const isJsonPointer = RegExp.prototype.test.bind(new RegExp(`^${jsonPointer}$`, \"u\"));\n","/**\n * @import * as API from \"./index.d.ts\"\n */\n\nconst unescaped = `[\\\\u{00}-\\\\u{2E}\\\\u{30}-\\\\u{7D}\\\\u{7F}-\\\\u{10FFFF}]`; // %x2F ('/') and %x7E ('~') are excluded from 'unescaped'\nconst escaped = `~[01]`; // representing '~' and '/', respectively\nconst referenceToken = `(?:${unescaped}|${escaped})*`;\nconst jsonPointer = `(?:/${referenceToken})*`;\n\nconst nonNegativeInteger = `(?:0|[1-9][0-9]*)`;\nconst indexManipulation = `(?:[+-]${nonNegativeInteger})`;\nconst relativeJsonPointer = `${nonNegativeInteger}(?:${indexManipulation}?${jsonPointer}|#)`;\n\n/**\n * @type API.isRelativeJsonPointer\n * @function\n */\nexport const isRelativeJsonPointer = RegExp.prototype.test.bind(new RegExp(`^${relativeJsonPointer}$`, \"u\"));\n","/* eslint-disable no-control-regex */\nimport { isAsciiIdn, isUri, isIdnEmail, isIri, isIriReference, isIdn } from \"@hyperjump/json-schema-formats\";\nimport { type Draft } from \"src/Draft\";\nimport { JsonSchemaValidatorParams, ValidationReturnType } from \"src/Keyword\";\n\nconst isValidIPV4 = /^(?:(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)$/;\nconst isValidIPV6 =\n /^((([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 isValidURIRef =\n /^(?:[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\nconst isValidURITemplate =\n /^(?:(?:[^\\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\nexport function addFormats(drafts: Draft[]) {\n drafts.forEach((draft) => (draft.formats = { ...formats, ...draft.formats }));\n}\n\nexport const formats: Record<string, (options: JsonSchemaValidatorParams) => ValidationReturnType> = {\n hostname: ({ node, pointer, data }) => {\n const { schema } = node;\n if (typeof data !== \"string\" || isAsciiIdn(data)) {\n return undefined;\n }\n return node.createError(\"format-hostname-error\", { value: data, pointer, schema });\n },\n\n \"idn-hostname\": ({ node, pointer, data }) => {\n if (typeof data !== \"string\" || isIdn(data)) {\n return undefined;\n }\n return node.createError(\"format-idn-hostname-error\", { value: data, pointer, schema: node.schema });\n },\n\n /**\n * @draft 7\n * [RFC6531] https://json-schema.org/draft-07/json-schema-validation.html#RFC6531\n */\n \"idn-email\": ({ node, pointer, data }) => {\n if (typeof data !== \"string\" || data === \"\" || isIdnEmail(data)) {\n return undefined;\n }\n return node.createError(\"format-email-error\", { value: data, pointer, schema: node.schema });\n },\n\n ipv4: ({ node, pointer, data }) => {\n const { schema } = node;\n if (typeof data !== \"string\" || data === \"\") {\n return undefined;\n }\n if (data && data[0] === \"0\") {\n // leading zeroes should be rejected, as they are treated as octals\n return node.createError(\"format-ipv4-leading-zero-error\", { value: data, pointer, schema });\n }\n if (data.length <= 15 && isValidIPV4.test(data)) {\n return undefined;\n }\n return node.createError(\"format-ipv4-error\", { value: data, pointer, schema });\n },\n\n ipv6: ({ node, pointer, data }) => {\n const { schema } = node;\n if (typeof data !== \"string\" || data === \"\") {\n return undefined;\n }\n if (data && data[0] === \"0\") {\n // leading zeroes should be rejected, as they are treated as octals\n return node.createError(\"format-ipv6-leading-zero-error\", { value: data, pointer, schema });\n }\n if (data.length <= 45 && isValidIPV6.test(data)) {\n return undefined;\n }\n return node.createError(\"format-ipv6-error\", { value: data, pointer, schema });\n },\n\n iri: ({ node, pointer, data }) => {\n const { schema } = node;\n if (typeof data !== \"string\" || data === \"\" || isIri(data)) {\n return undefined;\n }\n return node.createError(\"format-iri-error\", { value: data, pointer, schema });\n },\n\n \"iri-reference\": ({ node, pointer, data }) => {\n const { schema } = node;\n if (typeof data !== \"string\" || data === \"\" || isIriReference(data)) {\n return undefined;\n }\n return node.createError(\"format-iri-reference-error\", { value: data, pointer, schema });\n },\n uri: ({ node, pointer, data }) => {\n if (typeof data !== \"string\" || data === \"\" || isUri(data)) {\n return undefined;\n }\n return node.createError(\"format-uri-error\", { value: data, pointer, schema: node.schema });\n },\n \"uri-reference\": ({ node, pointer, data }) => {\n const { schema } = node;\n if (typeof data !== \"string\" || data === \"\") {\n return undefined;\n }\n if (isValidURIRef.test(data)) {\n return undefined;\n }\n return node.createError(\"format-uri-reference-error\", { value: data, pointer, schema });\n },\n\n \"uri-template\": ({ node, pointer, data }) => {\n const { schema } = node;\n if (typeof data !== \"string\" || data === \"\") {\n return undefined;\n }\n if (isValidURITemplate.test(data)) {\n return undefined;\n }\n return node.createError(\"format-uri-template-error\", { value: data, pointer, schema });\n }\n};\n"],"x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { N as JsonSchemaValidatorParams, R as ValidationReturnType, S as Draft } from "./types-BDjKcTVR.cjs";
|
|
2
|
+
|
|
3
|
+
//#region src/formats/additionalFormats.d.ts
|
|
4
|
+
declare function addFormats(drafts: Draft[]): void;
|
|
5
|
+
declare const formats: Record<string, (options: JsonSchemaValidatorParams) => ValidationReturnType>;
|
|
6
|
+
//#endregion
|
|
7
|
+
export { addFormats, formats };
|
|
8
|
+
//# sourceMappingURL=formats.d.cts.map
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { N as JsonSchemaValidatorParams, R as ValidationReturnType, S as Draft } from "./types-CqkCJmt8.mjs";
|
|
2
|
+
|
|
3
|
+
//#region src/formats/additionalFormats.d.ts
|
|
4
|
+
declare function addFormats(drafts: Draft[]): void;
|
|
5
|
+
declare const formats: Record<string, (options: JsonSchemaValidatorParams) => ValidationReturnType>;
|
|
6
|
+
//#endregion
|
|
7
|
+
export { addFormats, formats };
|
|
8
|
+
//# sourceMappingURL=formats.d.mts.map
|