HEX
Server: Apache
System: Linux pdx1-shared-a1-38 6.6.104-grsec-jammy+ #3 SMP Tue Sep 16 00:28:11 UTC 2025 x86_64
User: mmickelson (3396398)
PHP: 8.1.31
Disabled: NONE
Upload Files
File: //usr/share/nodejs/uri-js/dist/es5/uri.all.js.map
{"version":3,"file":"uri.all.js","sources":["../esnext/util.js","../esnext/regexps-uri.js","../esnext/regexps-iri.js","../../../../../usr/share/nodejs/rollup-plugin-node-polyfills/polyfills/punycode.js","../esnext/uri.js","../esnext/schemes/http.js","../esnext/schemes/https.js","../esnext/schemes/ws.js","../esnext/schemes/wss.js","../esnext/schemes/mailto.js","../esnext/schemes/urn.js","../esnext/schemes/urn-uuid.js","../esnext/index.js"],"sourcesContent":["export function merge(...sets) {\n    if (sets.length > 1) {\n        sets[0] = sets[0].slice(0, -1);\n        const xl = sets.length - 1;\n        for (let x = 1; x < xl; ++x) {\n            sets[x] = sets[x].slice(1, -1);\n        }\n        sets[xl] = sets[xl].slice(1);\n        return sets.join('');\n    }\n    else {\n        return sets[0];\n    }\n}\nexport function subexp(str) {\n    return \"(?:\" + str + \")\";\n}\nexport function typeOf(o) {\n    return o === undefined ? \"undefined\" : (o === null ? \"null\" : Object.prototype.toString.call(o).split(\" \").pop().split(\"]\").shift().toLowerCase());\n}\nexport function toUpperCase(str) {\n    return str.toUpperCase();\n}\nexport function toArray(obj) {\n    return obj !== undefined && obj !== null ? (obj instanceof Array ? obj : (typeof obj.length !== \"number\" || obj.split || obj.setInterval || obj.call ? [obj] : Array.prototype.slice.call(obj))) : [];\n}\nexport function assign(target, source) {\n    const obj = target;\n    if (source) {\n        for (const key in source) {\n            obj[key] = source[key];\n        }\n    }\n    return obj;\n}\n//# sourceMappingURL=util.js.map","import { merge, subexp } from \"./util\";\nexport function buildExps(isIRI) {\n    const ALPHA$$ = \"[A-Za-z]\", CR$ = \"[\\\\x0D]\", DIGIT$$ = \"[0-9]\", DQUOTE$$ = \"[\\\\x22]\", HEXDIG$$ = merge(DIGIT$$, \"[A-Fa-f]\"), //case-insensitive\n    LF$$ = \"[\\\\x0A]\", SP$$ = \"[\\\\x20]\", PCT_ENCODED$ = subexp(subexp(\"%[EFef]\" + HEXDIG$$ + \"%\" + HEXDIG$$ + HEXDIG$$ + \"%\" + HEXDIG$$ + HEXDIG$$) + \"|\" + subexp(\"%[89A-Fa-f]\" + HEXDIG$$ + \"%\" + HEXDIG$$ + HEXDIG$$) + \"|\" + subexp(\"%\" + HEXDIG$$ + HEXDIG$$)), //expanded\n    GEN_DELIMS$$ = \"[\\\\:\\\\/\\\\?\\\\#\\\\[\\\\]\\\\@]\", SUB_DELIMS$$ = \"[\\\\!\\\\$\\\\&\\\\'\\\\(\\\\)\\\\*\\\\+\\\\,\\\\;\\\\=]\", RESERVED$$ = merge(GEN_DELIMS$$, SUB_DELIMS$$), UCSCHAR$$ = isIRI ? \"[\\\\xA0-\\\\u200D\\\\u2010-\\\\u2029\\\\u202F-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFEF]\" : \"[]\", //subset, excludes bidi control characters\n    IPRIVATE$$ = isIRI ? \"[\\\\uE000-\\\\uF8FF]\" : \"[]\", //subset\n    UNRESERVED$$ = merge(ALPHA$$, DIGIT$$, \"[\\\\-\\\\.\\\\_\\\\~]\", UCSCHAR$$), SCHEME$ = subexp(ALPHA$$ + merge(ALPHA$$, DIGIT$$, \"[\\\\+\\\\-\\\\.]\") + \"*\"), USERINFO$ = subexp(subexp(PCT_ENCODED$ + \"|\" + merge(UNRESERVED$$, SUB_DELIMS$$, \"[\\\\:]\")) + \"*\"), DEC_OCTET$ = subexp(subexp(\"25[0-5]\") + \"|\" + subexp(\"2[0-4]\" + DIGIT$$) + \"|\" + subexp(\"1\" + DIGIT$$ + DIGIT$$) + \"|\" + subexp(\"[1-9]\" + DIGIT$$) + \"|\" + DIGIT$$), DEC_OCTET_RELAXED$ = subexp(subexp(\"25[0-5]\") + \"|\" + subexp(\"2[0-4]\" + DIGIT$$) + \"|\" + subexp(\"1\" + DIGIT$$ + DIGIT$$) + \"|\" + subexp(\"0?[1-9]\" + DIGIT$$) + \"|0?0?\" + DIGIT$$), //relaxed parsing rules\n    IPV4ADDRESS$ = subexp(DEC_OCTET_RELAXED$ + \"\\\\.\" + DEC_OCTET_RELAXED$ + \"\\\\.\" + DEC_OCTET_RELAXED$ + \"\\\\.\" + DEC_OCTET_RELAXED$), H16$ = subexp(HEXDIG$$ + \"{1,4}\"), LS32$ = subexp(subexp(H16$ + \"\\\\:\" + H16$) + \"|\" + IPV4ADDRESS$), IPV6ADDRESS1$ = subexp(subexp(H16$ + \"\\\\:\") + \"{6}\" + LS32$), //                           6( h16 \":\" ) ls32\n    IPV6ADDRESS2$ = subexp(\"\\\\:\\\\:\" + subexp(H16$ + \"\\\\:\") + \"{5}\" + LS32$), //                      \"::\" 5( h16 \":\" ) ls32\n    IPV6ADDRESS3$ = subexp(subexp(H16$) + \"?\\\\:\\\\:\" + subexp(H16$ + \"\\\\:\") + \"{4}\" + LS32$), //[               h16 ] \"::\" 4( h16 \":\" ) ls32\n    IPV6ADDRESS4$ = subexp(subexp(subexp(H16$ + \"\\\\:\") + \"{0,1}\" + H16$) + \"?\\\\:\\\\:\" + subexp(H16$ + \"\\\\:\") + \"{3}\" + LS32$), //[ *1( h16 \":\" ) h16 ] \"::\" 3( h16 \":\" ) ls32\n    IPV6ADDRESS5$ = subexp(subexp(subexp(H16$ + \"\\\\:\") + \"{0,2}\" + H16$) + \"?\\\\:\\\\:\" + subexp(H16$ + \"\\\\:\") + \"{2}\" + LS32$), //[ *2( h16 \":\" ) h16 ] \"::\" 2( h16 \":\" ) ls32\n    IPV6ADDRESS6$ = subexp(subexp(subexp(H16$ + \"\\\\:\") + \"{0,3}\" + H16$) + \"?\\\\:\\\\:\" + H16$ + \"\\\\:\" + LS32$), //[ *3( h16 \":\" ) h16 ] \"::\"    h16 \":\"   ls32\n    IPV6ADDRESS7$ = subexp(subexp(subexp(H16$ + \"\\\\:\") + \"{0,4}\" + H16$) + \"?\\\\:\\\\:\" + LS32$), //[ *4( h16 \":\" ) h16 ] \"::\"              ls32\n    IPV6ADDRESS8$ = subexp(subexp(subexp(H16$ + \"\\\\:\") + \"{0,5}\" + H16$) + \"?\\\\:\\\\:\" + H16$), //[ *5( h16 \":\" ) h16 ] \"::\"              h16\n    IPV6ADDRESS9$ = subexp(subexp(subexp(H16$ + \"\\\\:\") + \"{0,6}\" + H16$) + \"?\\\\:\\\\:\"), //[ *6( h16 \":\" ) h16 ] \"::\"\n    IPV6ADDRESS$ = subexp([IPV6ADDRESS1$, IPV6ADDRESS2$, IPV6ADDRESS3$, IPV6ADDRESS4$, IPV6ADDRESS5$, IPV6ADDRESS6$, IPV6ADDRESS7$, IPV6ADDRESS8$, IPV6ADDRESS9$].join(\"|\")), ZONEID$ = subexp(subexp(UNRESERVED$$ + \"|\" + PCT_ENCODED$) + \"+\"), //RFC 6874\n    IPV6ADDRZ$ = subexp(IPV6ADDRESS$ + \"\\\\%25\" + ZONEID$), //RFC 6874\n    IPV6ADDRZ_RELAXED$ = subexp(IPV6ADDRESS$ + subexp(\"\\\\%25|\\\\%(?!\" + HEXDIG$$ + \"{2})\") + ZONEID$), //RFC 6874, with relaxed parsing rules\n    IPVFUTURE$ = subexp(\"[vV]\" + HEXDIG$$ + \"+\\\\.\" + merge(UNRESERVED$$, SUB_DELIMS$$, \"[\\\\:]\") + \"+\"), IP_LITERAL$ = subexp(\"\\\\[\" + subexp(IPV6ADDRZ_RELAXED$ + \"|\" + IPV6ADDRESS$ + \"|\" + IPVFUTURE$) + \"\\\\]\"), //RFC 6874\n    REG_NAME$ = subexp(subexp(PCT_ENCODED$ + \"|\" + merge(UNRESERVED$$, SUB_DELIMS$$)) + \"*\"), HOST$ = subexp(IP_LITERAL$ + \"|\" + IPV4ADDRESS$ + \"(?!\" + REG_NAME$ + \")\" + \"|\" + REG_NAME$), PORT$ = subexp(DIGIT$$ + \"*\"), AUTHORITY$ = subexp(subexp(USERINFO$ + \"@\") + \"?\" + HOST$ + subexp(\"\\\\:\" + PORT$) + \"?\"), PCHAR$ = subexp(PCT_ENCODED$ + \"|\" + merge(UNRESERVED$$, SUB_DELIMS$$, \"[\\\\:\\\\@]\")), SEGMENT$ = subexp(PCHAR$ + \"*\"), SEGMENT_NZ$ = subexp(PCHAR$ + \"+\"), SEGMENT_NZ_NC$ = subexp(subexp(PCT_ENCODED$ + \"|\" + merge(UNRESERVED$$, SUB_DELIMS$$, \"[\\\\@]\")) + \"+\"), PATH_ABEMPTY$ = subexp(subexp(\"\\\\/\" + SEGMENT$) + \"*\"), PATH_ABSOLUTE$ = subexp(\"\\\\/\" + subexp(SEGMENT_NZ$ + PATH_ABEMPTY$) + \"?\"), //simplified\n    PATH_NOSCHEME$ = subexp(SEGMENT_NZ_NC$ + PATH_ABEMPTY$), //simplified\n    PATH_ROOTLESS$ = subexp(SEGMENT_NZ$ + PATH_ABEMPTY$), //simplified\n    PATH_EMPTY$ = \"(?!\" + PCHAR$ + \")\", PATH$ = subexp(PATH_ABEMPTY$ + \"|\" + PATH_ABSOLUTE$ + \"|\" + PATH_NOSCHEME$ + \"|\" + PATH_ROOTLESS$ + \"|\" + PATH_EMPTY$), QUERY$ = subexp(subexp(PCHAR$ + \"|\" + merge(\"[\\\\/\\\\?]\", IPRIVATE$$)) + \"*\"), FRAGMENT$ = subexp(subexp(PCHAR$ + \"|[\\\\/\\\\?]\") + \"*\"), HIER_PART$ = subexp(subexp(\"\\\\/\\\\/\" + AUTHORITY$ + PATH_ABEMPTY$) + \"|\" + PATH_ABSOLUTE$ + \"|\" + PATH_ROOTLESS$ + \"|\" + PATH_EMPTY$), URI$ = subexp(SCHEME$ + \"\\\\:\" + HIER_PART$ + subexp(\"\\\\?\" + QUERY$) + \"?\" + subexp(\"\\\\#\" + FRAGMENT$) + \"?\"), RELATIVE_PART$ = subexp(subexp(\"\\\\/\\\\/\" + AUTHORITY$ + PATH_ABEMPTY$) + \"|\" + PATH_ABSOLUTE$ + \"|\" + PATH_NOSCHEME$ + \"|\" + PATH_EMPTY$), RELATIVE$ = subexp(RELATIVE_PART$ + subexp(\"\\\\?\" + QUERY$) + \"?\" + subexp(\"\\\\#\" + FRAGMENT$) + \"?\"), URI_REFERENCE$ = subexp(URI$ + \"|\" + RELATIVE$), ABSOLUTE_URI$ = subexp(SCHEME$ + \"\\\\:\" + HIER_PART$ + subexp(\"\\\\?\" + QUERY$) + \"?\"), GENERIC_REF$ = \"^(\" + SCHEME$ + \")\\\\:\" + subexp(subexp(\"\\\\/\\\\/(\" + subexp(\"(\" + USERINFO$ + \")@\") + \"?(\" + HOST$ + \")\" + subexp(\"\\\\:(\" + PORT$ + \")\") + \"?)\") + \"?(\" + PATH_ABEMPTY$ + \"|\" + PATH_ABSOLUTE$ + \"|\" + PATH_ROOTLESS$ + \"|\" + PATH_EMPTY$ + \")\") + subexp(\"\\\\?(\" + QUERY$ + \")\") + \"?\" + subexp(\"\\\\#(\" + FRAGMENT$ + \")\") + \"?$\", RELATIVE_REF$ = \"^(){0}\" + subexp(subexp(\"\\\\/\\\\/(\" + subexp(\"(\" + USERINFO$ + \")@\") + \"?(\" + HOST$ + \")\" + subexp(\"\\\\:(\" + PORT$ + \")\") + \"?)\") + \"?(\" + PATH_ABEMPTY$ + \"|\" + PATH_ABSOLUTE$ + \"|\" + PATH_NOSCHEME$ + \"|\" + PATH_EMPTY$ + \")\") + subexp(\"\\\\?(\" + QUERY$ + \")\") + \"?\" + subexp(\"\\\\#(\" + FRAGMENT$ + \")\") + \"?$\", ABSOLUTE_REF$ = \"^(\" + SCHEME$ + \")\\\\:\" + subexp(subexp(\"\\\\/\\\\/(\" + subexp(\"(\" + USERINFO$ + \")@\") + \"?(\" + HOST$ + \")\" + subexp(\"\\\\:(\" + PORT$ + \")\") + \"?)\") + \"?(\" + PATH_ABEMPTY$ + \"|\" + PATH_ABSOLUTE$ + \"|\" + PATH_ROOTLESS$ + \"|\" + PATH_EMPTY$ + \")\") + subexp(\"\\\\?(\" + QUERY$ + \")\") + \"?$\", SAMEDOC_REF$ = \"^\" + subexp(\"\\\\#(\" + FRAGMENT$ + \")\") + \"?$\", AUTHORITY_REF$ = \"^\" + subexp(\"(\" + USERINFO$ + \")@\") + \"?(\" + HOST$ + \")\" + subexp(\"\\\\:(\" + PORT$ + \")\") + \"?$\";\n    return {\n        NOT_SCHEME: new RegExp(merge(\"[^]\", ALPHA$$, DIGIT$$, \"[\\\\+\\\\-\\\\.]\"), \"g\"),\n        NOT_USERINFO: new RegExp(merge(\"[^\\\\%\\\\:]\", UNRESERVED$$, SUB_DELIMS$$), \"g\"),\n        NOT_HOST: new RegExp(merge(\"[^\\\\%\\\\[\\\\]\\\\:]\", UNRESERVED$$, SUB_DELIMS$$), \"g\"),\n        NOT_PATH: new RegExp(merge(\"[^\\\\%\\\\/\\\\:\\\\@]\", UNRESERVED$$, SUB_DELIMS$$), \"g\"),\n        NOT_PATH_NOSCHEME: new RegExp(merge(\"[^\\\\%\\\\/\\\\@]\", UNRESERVED$$, SUB_DELIMS$$), \"g\"),\n        NOT_QUERY: new RegExp(merge(\"[^\\\\%]\", UNRESERVED$$, SUB_DELIMS$$, \"[\\\\:\\\\@\\\\/\\\\?]\", IPRIVATE$$), \"g\"),\n        NOT_FRAGMENT: new RegExp(merge(\"[^\\\\%]\", UNRESERVED$$, SUB_DELIMS$$, \"[\\\\:\\\\@\\\\/\\\\?]\"), \"g\"),\n        ESCAPE: new RegExp(merge(\"[^]\", UNRESERVED$$, SUB_DELIMS$$), \"g\"),\n        UNRESERVED: new RegExp(UNRESERVED$$, \"g\"),\n        OTHER_CHARS: new RegExp(merge(\"[^\\\\%]\", UNRESERVED$$, RESERVED$$), \"g\"),\n        PCT_ENCODED: new RegExp(PCT_ENCODED$, \"g\"),\n        IPV4ADDRESS: new RegExp(\"^(\" + IPV4ADDRESS$ + \")$\"),\n        IPV6ADDRESS: new RegExp(\"^\\\\[?(\" + IPV6ADDRESS$ + \")\" + subexp(subexp(\"\\\\%25|\\\\%(?!\" + HEXDIG$$ + \"{2})\") + \"(\" + ZONEID$ + \")\") + \"?\\\\]?$\") //RFC 6874, with relaxed parsing rules\n    };\n}\nexport default buildExps(false);\n//# sourceMappingURL=regexps-uri.js.map","import { buildExps } from \"./regexps-uri\";\nexport default buildExps(true);\n//# sourceMappingURL=regexps-iri.js.map","/*! https://mths.be/punycode v1.4.1 by @mathias */\n\n\n/** Highest positive signed 32-bit float value */\nvar maxInt = 2147483647; // aka. 0x7FFFFFFF or 2^31-1\n\n/** Bootstring parameters */\nvar base = 36;\nvar tMin = 1;\nvar tMax = 26;\nvar skew = 38;\nvar damp = 700;\nvar initialBias = 72;\nvar initialN = 128; // 0x80\nvar delimiter = '-'; // '\\x2D'\n\n/** Regular expressions */\nvar regexPunycode = /^xn--/;\nvar regexNonASCII = /[^\\x20-\\x7E]/; // unprintable ASCII chars + non-ASCII chars\nvar regexSeparators = /[\\x2E\\u3002\\uFF0E\\uFF61]/g; // RFC 3490 separators\n\n/** Error messages */\nvar errors = {\n  'overflow': 'Overflow: input needs wider integers to process',\n  'not-basic': 'Illegal input >= 0x80 (not a basic code point)',\n  'invalid-input': 'Invalid input'\n};\n\n/** Convenience shortcuts */\nvar baseMinusTMin = base - tMin;\nvar floor = Math.floor;\nvar 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  throw 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, fn) {\n  var length = array.length;\n  var result = [];\n  while (length--) {\n    result[length] = fn(array[length]);\n  }\n  return 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 {Array} A new string of characters returned by the callback\n * function.\n */\nfunction mapDomain(string, fn) {\n  var parts = string.split('@');\n  var result = '';\n  if (parts.length > 1) {\n    // In email addresses, only the domain name should be punycoded. Leave\n    // the local part (i.e. everything up to `@`) intact.\n    result = parts[0] + '@';\n    string = parts[1];\n  }\n  // Avoid `split(regex)` for IE8 compatibility. See #17.\n  string = string.replace(regexSeparators, '\\x2E');\n  var labels = string.split('.');\n  var encoded = map(labels, fn).join('.');\n  return 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  var output = [],\n    counter = 0,\n    length = string.length,\n    value,\n    extra;\n  while (counter < length) {\n    value = string.charCodeAt(counter++);\n    if (value >= 0xD800 && value <= 0xDBFF && counter < length) {\n      // high surrogate, and there is a next character\n      extra = string.charCodeAt(counter++);\n      if ((extra & 0xFC00) == 0xDC00) { // low surrogate\n        output.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);\n      } else {\n        // unmatched surrogate; only append this code unit, in case the next\n        // code unit is the high surrogate of a surrogate pair\n        output.push(value);\n        counter--;\n      }\n    } else {\n      output.push(value);\n    }\n  }\n  return 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 */\nfunction ucs2encode(array) {\n  return map(array, function(value) {\n    var output = '';\n    if (value > 0xFFFF) {\n      value -= 0x10000;\n      output += stringFromCharCode(value >>> 10 & 0x3FF | 0xD800);\n      value = 0xDC00 | value & 0x3FF;\n    }\n    output += stringFromCharCode(value);\n    return output;\n  }).join('');\n}\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 */\nfunction basicToDigit(codePoint) {\n  if (codePoint - 48 < 10) {\n    return codePoint - 22;\n  }\n  if (codePoint - 65 < 26) {\n    return codePoint - 65;\n  }\n  if (codePoint - 97 < 26) {\n    return codePoint - 97;\n  }\n  return 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 */\nfunction digitToBasic(digit, flag) {\n  //  0..25 map to ASCII a..z or A..Z\n  // 26..35 map to ASCII 0..9\n  return 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 */\nfunction adapt(delta, numPoints, firstTime) {\n  var k = 0;\n  delta = firstTime ? floor(delta / damp) : delta >> 1;\n  delta += floor(delta / numPoints);\n  for ( /* no initialization */ ; delta > baseMinusTMin * tMax >> 1; k += base) {\n    delta = floor(delta / baseMinusTMin);\n  }\n  return 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 */\nexport function decode(input) {\n  // Don't use UCS-2\n  var output = [],\n    inputLength = input.length,\n    out,\n    i = 0,\n    n = initialN,\n    bias = initialBias,\n    basic,\n    j,\n    index,\n    oldi,\n    w,\n    k,\n    digit,\n    t,\n    /** Cached calculation results */\n    baseMinusT;\n\n  // Handle the basic code points: let `basic` be the number of input code\n  // points before the last delimiter, or `0` if there is none, then copy\n  // the first basic code points to the output.\n\n  basic = input.lastIndexOf(delimiter);\n  if (basic < 0) {\n    basic = 0;\n  }\n\n  for (j = 0; j < basic; ++j) {\n    // if it's not a basic code point\n    if (input.charCodeAt(j) >= 0x80) {\n      error('not-basic');\n    }\n    output.push(input.charCodeAt(j));\n  }\n\n  // Main decoding loop: start just after the last delimiter if any basic code\n  // points were copied; start at the beginning otherwise.\n\n  for (index = basic > 0 ? basic + 1 : 0; index < inputLength; /* no final expression */ ) {\n\n    // `index` is the index of the next character to be consumed.\n    // Decode a generalized variable-length integer into `delta`,\n    // which gets added to `i`. The overflow checking is easier\n    // if we increase `i` as we go, then subtract off its starting\n    // value at the end to obtain `delta`.\n    for (oldi = i, w = 1, k = base; /* no condition */ ; k += base) {\n\n      if (index >= inputLength) {\n        error('invalid-input');\n      }\n\n      digit = basicToDigit(input.charCodeAt(index++));\n\n      if (digit >= base || digit > floor((maxInt - i) / w)) {\n        error('overflow');\n      }\n\n      i += digit * w;\n      t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n\n      if (digit < t) {\n        break;\n      }\n\n      baseMinusT = base - t;\n      if (w > floor(maxInt / baseMinusT)) {\n        error('overflow');\n      }\n\n      w *= baseMinusT;\n\n    }\n\n    out = output.length + 1;\n    bias = adapt(i - oldi, out, oldi == 0);\n\n    // `i` was supposed to wrap around from `out` to `0`,\n    // incrementing `n` each time, so we'll fix that now:\n    if (floor(i / out) > maxInt - n) {\n      error('overflow');\n    }\n\n    n += floor(i / out);\n    i %= out;\n\n    // Insert `n` at position `i` of the output\n    output.splice(i++, 0, n);\n\n  }\n\n  return ucs2encode(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 */\nexport function encode(input) {\n  var n,\n    delta,\n    handledCPCount,\n    basicLength,\n    bias,\n    j,\n    m,\n    q,\n    k,\n    t,\n    currentValue,\n    output = [],\n    /** `inputLength` will hold the number of code points in `input`. */\n    inputLength,\n    /** Cached calculation results */\n    handledCPCountPlusOne,\n    baseMinusT,\n    qMinusT;\n\n  // Convert the input in UCS-2 to Unicode\n  input = ucs2decode(input);\n\n  // Cache the length\n  inputLength = input.length;\n\n  // Initialize the state\n  n = initialN;\n  delta = 0;\n  bias = initialBias;\n\n  // Handle the basic code points\n  for (j = 0; j < inputLength; ++j) {\n    currentValue = input[j];\n    if (currentValue < 0x80) {\n      output.push(stringFromCharCode(currentValue));\n    }\n  }\n\n  handledCPCount = basicLength = output.length;\n\n  // `handledCPCount` is the number of code points that have been handled;\n  // `basicLength` is the number of basic code points.\n\n  // Finish the basic string - if it is not empty - with a delimiter\n  if (basicLength) {\n    output.push(delimiter);\n  }\n\n  // Main encoding loop:\n  while (handledCPCount < inputLength) {\n\n    // All non-basic code points < n have been handled already. Find the next\n    // larger one:\n    for (m = maxInt, j = 0; j < inputLength; ++j) {\n      currentValue = input[j];\n      if (currentValue >= n && currentValue < m) {\n        m = currentValue;\n      }\n    }\n\n    // Increase `delta` enough to advance the decoder's <n,i> state to <m,0>,\n    // but guard against overflow\n    handledCPCountPlusOne = handledCPCount + 1;\n    if (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) {\n      error('overflow');\n    }\n\n    delta += (m - n) * handledCPCountPlusOne;\n    n = m;\n\n    for (j = 0; j < inputLength; ++j) {\n      currentValue = input[j];\n\n      if (currentValue < n && ++delta > maxInt) {\n        error('overflow');\n      }\n\n      if (currentValue == n) {\n        // Represent delta as a generalized variable-length integer\n        for (q = delta, k = base; /* no condition */ ; k += base) {\n          t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n          if (q < t) {\n            break;\n          }\n          qMinusT = q - t;\n          baseMinusT = base - t;\n          output.push(\n            stringFromCharCode(digitToBasic(t + qMinusT % baseMinusT, 0))\n          );\n          q = floor(qMinusT / baseMinusT);\n        }\n\n        output.push(stringFromCharCode(digitToBasic(q, 0)));\n        bias = adapt(delta, handledCPCountPlusOne, handledCPCount == basicLength);\n        delta = 0;\n        ++handledCPCount;\n      }\n    }\n\n    ++delta;\n    ++n;\n\n  }\n  return 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 */\nexport function toUnicode(input) {\n  return mapDomain(input, function(string) {\n    return regexPunycode.test(string) ?\n      decode(string.slice(4).toLowerCase()) :\n      string;\n  });\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 */\nexport function toASCII(input) {\n  return mapDomain(input, function(string) {\n    return regexNonASCII.test(string) ?\n      'xn--' + encode(string) :\n      string;\n  });\n}\nexport var version = '1.4.1';\n/**\n * An object of methods to convert from JavaScript's internal character\n * representation (UCS-2) to Unicode code points, and back.\n * @see <https://mathiasbynens.be/notes/javascript-encoding>\n * @memberOf punycode\n * @type Object\n */\n\nexport var ucs2 = {\n  decode: ucs2decode,\n  encode: ucs2encode\n};\nexport default {\n  version: version,\n  ucs2: ucs2,\n  toASCII: toASCII,\n  toUnicode: toUnicode,\n  encode: encode,\n  decode: decode\n}\n","/**\n * URI.js\n *\n * @fileoverview An RFC 3986 compliant, scheme extendable URI parsing/validating/resolving library for JavaScript.\n * @author <a href=\"mailto:gary.court@gmail.com\">Gary Court</a>\n * @see http://github.com/garycourt/uri-js\n */\n/**\n * Copyright 2011 Gary Court. All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without modification, are\n * permitted provided that the following conditions are met:\n *\n *    1. Redistributions of source code must retain the above copyright notice, this list of\n *       conditions and the following disclaimer.\n *\n *    2. Redistributions in binary form must reproduce the above copyright notice, this list\n *       of conditions and the following disclaimer in the documentation and/or other materials\n *       provided with the distribution.\n *\n * THIS SOFTWARE IS PROVIDED BY GARY COURT ``AS IS'' AND ANY EXPRESS OR IMPLIED\n * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND\n * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL GARY COURT OR\n * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR\n * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR\n * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON\n * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\n * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF\n * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n *\n * The views and conclusions contained in the software and documentation are those of the\n * authors and should not be interpreted as representing official policies, either expressed\n * or implied, of Gary Court.\n */\nimport URI_PROTOCOL from \"./regexps-uri\";\nimport IRI_PROTOCOL from \"./regexps-iri\";\nimport punycode from \"punycode\";\nimport { toUpperCase, typeOf, assign } from \"./util\";\nexport const SCHEMES = {};\nexport function pctEncChar(chr) {\n    const c = chr.charCodeAt(0);\n    let e;\n    if (c < 16)\n        e = \"%0\" + c.toString(16).toUpperCase();\n    else if (c < 128)\n        e = \"%\" + c.toString(16).toUpperCase();\n    else if (c < 2048)\n        e = \"%\" + ((c >> 6) | 192).toString(16).toUpperCase() + \"%\" + ((c & 63) | 128).toString(16).toUpperCase();\n    else\n        e = \"%\" + ((c >> 12) | 224).toString(16).toUpperCase() + \"%\" + (((c >> 6) & 63) | 128).toString(16).toUpperCase() + \"%\" + ((c & 63) | 128).toString(16).toUpperCase();\n    return e;\n}\nexport function pctDecChars(str) {\n    let newStr = \"\";\n    let i = 0;\n    const il = str.length;\n    while (i < il) {\n        const c = parseInt(str.substr(i + 1, 2), 16);\n        if (c < 128) {\n            newStr += String.fromCharCode(c);\n            i += 3;\n        }\n        else if (c >= 194 && c < 224) {\n            if ((il - i) >= 6) {\n                const c2 = parseInt(str.substr(i + 4, 2), 16);\n                newStr += String.fromCharCode(((c & 31) << 6) | (c2 & 63));\n            }\n            else {\n                newStr += str.substr(i, 6);\n            }\n            i += 6;\n        }\n        else if (c >= 224) {\n            if ((il - i) >= 9) {\n                const c2 = parseInt(str.substr(i + 4, 2), 16);\n                const c3 = parseInt(str.substr(i + 7, 2), 16);\n                newStr += String.fromCharCode(((c & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63));\n            }\n            else {\n                newStr += str.substr(i, 9);\n            }\n            i += 9;\n        }\n        else {\n            newStr += str.substr(i, 3);\n            i += 3;\n        }\n    }\n    return newStr;\n}\nfunction _normalizeComponentEncoding(components, protocol) {\n    function decodeUnreserved(str) {\n        const decStr = pctDecChars(str);\n        return (!decStr.match(protocol.UNRESERVED) ? str : decStr);\n    }\n    if (components.scheme)\n        components.scheme = String(components.scheme).replace(protocol.PCT_ENCODED, decodeUnreserved).toLowerCase().replace(protocol.NOT_SCHEME, \"\");\n    if (components.userinfo !== undefined)\n        components.userinfo = String(components.userinfo).replace(protocol.PCT_ENCODED, decodeUnreserved).replace(protocol.NOT_USERINFO, pctEncChar).replace(protocol.PCT_ENCODED, toUpperCase);\n    if (components.host !== undefined)\n        components.host = String(components.host).replace(protocol.PCT_ENCODED, decodeUnreserved).toLowerCase().replace(protocol.NOT_HOST, pctEncChar).replace(protocol.PCT_ENCODED, toUpperCase);\n    if (components.path !== undefined)\n        components.path = String(components.path).replace(protocol.PCT_ENCODED, decodeUnreserved).replace((components.scheme ? protocol.NOT_PATH : protocol.NOT_PATH_NOSCHEME), pctEncChar).replace(protocol.PCT_ENCODED, toUpperCase);\n    if (components.query !== undefined)\n        components.query = String(components.query).replace(protocol.PCT_ENCODED, decodeUnreserved).replace(protocol.NOT_QUERY, pctEncChar).replace(protocol.PCT_ENCODED, toUpperCase);\n    if (components.fragment !== undefined)\n        components.fragment = String(components.fragment).replace(protocol.PCT_ENCODED, decodeUnreserved).replace(protocol.NOT_FRAGMENT, pctEncChar).replace(protocol.PCT_ENCODED, toUpperCase);\n    return components;\n}\n;\nfunction _stripLeadingZeros(str) {\n    return str.replace(/^0*(.*)/, \"$1\") || \"0\";\n}\nfunction _normalizeIPv4(host, protocol) {\n    const matches = host.match(protocol.IPV4ADDRESS) || [];\n    const [, address] = matches;\n    if (address) {\n        return address.split(\".\").map(_stripLeadingZeros).join(\".\");\n    }\n    else {\n        return host;\n    }\n}\nfunction _normalizeIPv6(host, protocol) {\n    const matches = host.match(protocol.IPV6ADDRESS) || [];\n    const [, address, zone] = matches;\n    if (address) {\n        const [last, first] = address.toLowerCase().split('::').reverse();\n        const firstFields = first ? first.split(\":\").map(_stripLeadingZeros) : [];\n        const lastFields = last.split(\":\").map(_stripLeadingZeros);\n        const isLastFieldIPv4Address = protocol.IPV4ADDRESS.test(lastFields[lastFields.length - 1]);\n        const fieldCount = isLastFieldIPv4Address ? 7 : 8;\n        const lastFieldsStart = lastFields.length - fieldCount;\n        const fields = Array(fieldCount);\n        for (let x = 0; x < fieldCount; ++x) {\n            fields[x] = firstFields[x] || lastFields[lastFieldsStart + x] || '';\n        }\n        if (isLastFieldIPv4Address) {\n            fields[fieldCount - 1] = _normalizeIPv4(fields[fieldCount - 1], protocol);\n        }\n        const allZeroFields = fields.reduce((acc, field, index) => {\n            if (!field || field === \"0\") {\n                const lastLongest = acc[acc.length - 1];\n                if (lastLongest && lastLongest.index + lastLongest.length === index) {\n                    lastLongest.length++;\n                }\n                else {\n                    acc.push({ index, length: 1 });\n                }\n            }\n            return acc;\n        }, []);\n        const longestZeroFields = allZeroFields.sort((a, b) => b.length - a.length)[0];\n        let newHost;\n        if (longestZeroFields && longestZeroFields.length > 1) {\n            const newFirst = fields.slice(0, longestZeroFields.index);\n            const newLast = fields.slice(longestZeroFields.index + longestZeroFields.length);\n            newHost = newFirst.join(\":\") + \"::\" + newLast.join(\":\");\n        }\n        else {\n            newHost = fields.join(\":\");\n        }\n        if (zone) {\n            newHost += \"%\" + zone;\n        }\n        return newHost;\n    }\n    else {\n        return host;\n    }\n}\nconst URI_PARSE = /^(?:([^:\\/?#]+):)?(?:\\/\\/((?:([^\\/?#@]*)@)?(\\[[^\\/?#\\]]+\\]|[^\\/?#:]*)(?:\\:(\\d*))?))?([^?#]*)(?:\\?([^#]*))?(?:#((?:.|\\n|\\r)*))?/i;\nconst NO_MATCH_IS_UNDEFINED = (\"\").match(/(){0}/)[1] === undefined;\nexport function parse(uriString, options = {}) {\n    const components = {};\n    const protocol = (options.iri !== false ? IRI_PROTOCOL : URI_PROTOCOL);\n    if (options.reference === \"suffix\")\n        uriString = (options.scheme ? options.scheme + \":\" : \"\") + \"//\" + uriString;\n    const matches = uriString.match(URI_PARSE);\n    if (matches) {\n        if (NO_MATCH_IS_UNDEFINED) {\n            //store each component\n            components.scheme = matches[1];\n            components.userinfo = matches[3];\n            components.host = matches[4];\n            components.port = parseInt(matches[5], 10);\n            components.path = matches[6] || \"\";\n            components.query = matches[7];\n            components.fragment = matches[8];\n            //fix port number\n            if (isNaN(components.port)) {\n                components.port = matches[5];\n            }\n        }\n        else { //IE FIX for improper RegExp matching\n            //store each component\n            components.scheme = matches[1] || undefined;\n            components.userinfo = (uriString.indexOf(\"@\") !== -1 ? matches[3] : undefined);\n            components.host = (uriString.indexOf(\"//\") !== -1 ? matches[4] : undefined);\n            components.port = parseInt(matches[5], 10);\n            components.path = matches[6] || \"\";\n            components.query = (uriString.indexOf(\"?\") !== -1 ? matches[7] : undefined);\n            components.fragment = (uriString.indexOf(\"#\") !== -1 ? matches[8] : undefined);\n            //fix port number\n            if (isNaN(components.port)) {\n                components.port = (uriString.match(/\\/\\/(?:.|\\n)*\\:(?:\\/|\\?|\\#|$)/) ? matches[4] : undefined);\n            }\n        }\n        if (components.host) {\n            //normalize IP hosts\n            components.host = _normalizeIPv6(_normalizeIPv4(components.host, protocol), protocol);\n        }\n        //determine reference type\n        if (components.scheme === undefined && components.userinfo === undefined && components.host === undefined && components.port === undefined && !components.path && components.query === undefined) {\n            components.reference = \"same-document\";\n        }\n        else if (components.scheme === undefined) {\n            components.reference = \"relative\";\n        }\n        else if (components.fragment === undefined) {\n            components.reference = \"absolute\";\n        }\n        else {\n            components.reference = \"uri\";\n        }\n        //check for reference errors\n        if (options.reference && options.reference !== \"suffix\" && options.reference !== components.reference) {\n            components.error = components.error || \"URI is not a \" + options.reference + \" reference.\";\n        }\n        //find scheme handler\n        const schemeHandler = SCHEMES[(options.scheme || components.scheme || \"\").toLowerCase()];\n        //check if scheme can't handle IRIs\n        if (!options.unicodeSupport && (!schemeHandler || !schemeHandler.unicodeSupport)) {\n            //if host component is a domain name\n            if (components.host && (options.domainHost || (schemeHandler && schemeHandler.domainHost))) {\n                //convert Unicode IDN -> ASCII IDN\n                try {\n                    components.host = punycode.toASCII(components.host.replace(protocol.PCT_ENCODED, pctDecChars).toLowerCase());\n                }\n                catch (e) {\n                    components.error = components.error || \"Host's domain name can not be converted to ASCII via punycode: \" + e;\n                }\n            }\n            //convert IRI -> URI\n            _normalizeComponentEncoding(components, URI_PROTOCOL);\n        }\n        else {\n            //normalize encodings\n            _normalizeComponentEncoding(components, protocol);\n        }\n        //perform scheme specific parsing\n        if (schemeHandler && schemeHandler.parse) {\n            schemeHandler.parse(components, options);\n        }\n    }\n    else {\n        components.error = components.error || \"URI can not be parsed.\";\n    }\n    return components;\n}\n;\nfunction _recomposeAuthority(components, options) {\n    const protocol = (options.iri !== false ? IRI_PROTOCOL : URI_PROTOCOL);\n    const uriTokens = [];\n    if (components.userinfo !== undefined) {\n        uriTokens.push(components.userinfo);\n        uriTokens.push(\"@\");\n    }\n    if (components.host !== undefined) {\n        //normalize IP hosts, add brackets and escape zone separator for IPv6\n        uriTokens.push(_normalizeIPv6(_normalizeIPv4(String(components.host), protocol), protocol).replace(protocol.IPV6ADDRESS, (_, $1, $2) => \"[\" + $1 + ($2 ? \"%25\" + $2 : \"\") + \"]\"));\n    }\n    if (typeof components.port === \"number\" || typeof components.port === \"string\") {\n        uriTokens.push(\":\");\n        uriTokens.push(String(components.port));\n    }\n    return uriTokens.length ? uriTokens.join(\"\") : undefined;\n}\n;\nconst RDS1 = /^\\.\\.?\\//;\nconst RDS2 = /^\\/\\.(\\/|$)/;\nconst RDS3 = /^\\/\\.\\.(\\/|$)/;\nconst RDS4 = /^\\.\\.?$/;\nconst RDS5 = /^\\/?(?:.|\\n)*?(?=\\/|$)/;\nexport function removeDotSegments(input) {\n    const output = [];\n    while (input.length) {\n        if (input.match(RDS1)) {\n            input = input.replace(RDS1, \"\");\n        }\n        else if (input.match(RDS2)) {\n            input = input.replace(RDS2, \"/\");\n        }\n        else if (input.match(RDS3)) {\n            input = input.replace(RDS3, \"/\");\n            output.pop();\n        }\n        else if (input === \".\" || input === \"..\") {\n            input = \"\";\n        }\n        else {\n            const im = input.match(RDS5);\n            if (im) {\n                const s = im[0];\n                input = input.slice(s.length);\n                output.push(s);\n            }\n            else {\n                throw new Error(\"Unexpected dot segment condition\");\n            }\n        }\n    }\n    return output.join(\"\");\n}\n;\nexport function serialize(components, options = {}) {\n    const protocol = (options.iri ? IRI_PROTOCOL : URI_PROTOCOL);\n    const uriTokens = [];\n    //find scheme handler\n    const schemeHandler = SCHEMES[(options.scheme || components.scheme || \"\").toLowerCase()];\n    //perform scheme specific serialization\n    if (schemeHandler && schemeHandler.serialize)\n        schemeHandler.serialize(components, options);\n    if (components.host) {\n        //if host component is an IPv6 address\n        if (protocol.IPV6ADDRESS.test(components.host)) {\n            //TODO: normalize IPv6 address as per RFC 5952\n        }\n        //if host component is a domain name\n        else if (options.domainHost || (schemeHandler && schemeHandler.domainHost)) {\n            //convert IDN via punycode\n            try {\n                components.host = (!options.iri ? punycode.toASCII(components.host.replace(protocol.PCT_ENCODED, pctDecChars).toLowerCase()) : punycode.toUnicode(components.host));\n            }\n            catch (e) {\n                components.error = components.error || \"Host's domain name can not be converted to \" + (!options.iri ? \"ASCII\" : \"Unicode\") + \" via punycode: \" + e;\n            }\n        }\n    }\n    //normalize encoding\n    _normalizeComponentEncoding(components, protocol);\n    if (options.reference !== \"suffix\" && components.scheme) {\n        uriTokens.push(components.scheme);\n        uriTokens.push(\":\");\n    }\n    const authority = _recomposeAuthority(components, options);\n    if (authority !== undefined) {\n        if (options.reference !== \"suffix\") {\n            uriTokens.push(\"//\");\n        }\n        uriTokens.push(authority);\n        if (components.path && components.path.charAt(0) !== \"/\") {\n            uriTokens.push(\"/\");\n        }\n    }\n    if (components.path !== undefined) {\n        let s = components.path;\n        if (!options.absolutePath && (!schemeHandler || !schemeHandler.absolutePath)) {\n            s = removeDotSegments(s);\n        }\n        if (authority === undefined) {\n            s = s.replace(/^\\/\\//, \"/%2F\"); //don't allow the path to start with \"//\"\n        }\n        uriTokens.push(s);\n    }\n    if (components.query !== undefined) {\n        uriTokens.push(\"?\");\n        uriTokens.push(components.query);\n    }\n    if (components.fragment !== undefined) {\n        uriTokens.push(\"#\");\n        uriTokens.push(components.fragment);\n    }\n    return uriTokens.join(\"\"); //merge tokens into a string\n}\n;\nexport function resolveComponents(base, relative, options = {}, skipNormalization) {\n    const target = {};\n    if (!skipNormalization) {\n        base = parse(serialize(base, options), options); //normalize base components\n        relative = parse(serialize(relative, options), options); //normalize relative components\n    }\n    options = options || {};\n    if (!options.tolerant && relative.scheme) {\n        target.scheme = relative.scheme;\n        //target.authority = relative.authority;\n        target.userinfo = relative.userinfo;\n        target.host = relative.host;\n        target.port = relative.port;\n        target.path = removeDotSegments(relative.path || \"\");\n        target.query = relative.query;\n    }\n    else {\n        if (relative.userinfo !== undefined || relative.host !== undefined || relative.port !== undefined) {\n            //target.authority = relative.authority;\n            target.userinfo = relative.userinfo;\n            target.host = relative.host;\n            target.port = relative.port;\n            target.path = removeDotSegments(relative.path || \"\");\n            target.query = relative.query;\n        }\n        else {\n            if (!relative.path) {\n                target.path = base.path;\n                if (relative.query !== undefined) {\n                    target.query = relative.query;\n                }\n                else {\n                    target.query = base.query;\n                }\n            }\n            else {\n                if (relative.path.charAt(0) === \"/\") {\n                    target.path = removeDotSegments(relative.path);\n                }\n                else {\n                    if ((base.userinfo !== undefined || base.host !== undefined || base.port !== undefined) && !base.path) {\n                        target.path = \"/\" + relative.path;\n                    }\n                    else if (!base.path) {\n                        target.path = relative.path;\n                    }\n                    else {\n                        target.path = base.path.slice(0, base.path.lastIndexOf(\"/\") + 1) + relative.path;\n                    }\n                    target.path = removeDotSegments(target.path);\n                }\n                target.query = relative.query;\n            }\n            //target.authority = base.authority;\n            target.userinfo = base.userinfo;\n            target.host = base.host;\n            target.port = base.port;\n        }\n        target.scheme = base.scheme;\n    }\n    target.fragment = relative.fragment;\n    return target;\n}\n;\nexport function resolve(baseURI, relativeURI, options) {\n    const schemelessOptions = assign({ scheme: 'null' }, options);\n    return serialize(resolveComponents(parse(baseURI, schemelessOptions), parse(relativeURI, schemelessOptions), schemelessOptions, true), schemelessOptions);\n}\n;\nexport function normalize(uri, options) {\n    if (typeof uri === \"string\") {\n        uri = serialize(parse(uri, options), options);\n    }\n    else if (typeOf(uri) === \"object\") {\n        uri = parse(serialize(uri, options), options);\n    }\n    return uri;\n}\n;\nexport function equal(uriA, uriB, options) {\n    if (typeof uriA === \"string\") {\n        uriA = serialize(parse(uriA, options), options);\n    }\n    else if (typeOf(uriA) === \"object\") {\n        uriA = serialize(uriA, options);\n    }\n    if (typeof uriB === \"string\") {\n        uriB = serialize(parse(uriB, options), options);\n    }\n    else if (typeOf(uriB) === \"object\") {\n        uriB = serialize(uriB, options);\n    }\n    return uriA === uriB;\n}\n;\nexport function escapeComponent(str, options) {\n    return str && str.toString().replace((!options || !options.iri ? URI_PROTOCOL.ESCAPE : IRI_PROTOCOL.ESCAPE), pctEncChar);\n}\n;\nexport function unescapeComponent(str, options) {\n    return str && str.toString().replace((!options || !options.iri ? URI_PROTOCOL.PCT_ENCODED : IRI_PROTOCOL.PCT_ENCODED), pctDecChars);\n}\n;\n//# sourceMappingURL=uri.js.map","const handler = {\n    scheme: \"http\",\n    domainHost: true,\n    parse: function (components, options) {\n        //report missing host\n        if (!components.host) {\n            components.error = components.error || \"HTTP URIs must have a host.\";\n        }\n        return components;\n    },\n    serialize: function (components, options) {\n        const secure = String(components.scheme).toLowerCase() === \"https\";\n        //normalize the default port\n        if (components.port === (secure ? 443 : 80) || components.port === \"\") {\n            components.port = undefined;\n        }\n        //normalize the empty path\n        if (!components.path) {\n            components.path = \"/\";\n        }\n        //NOTE: We do not parse query strings for HTTP URIs\n        //as WWW Form Url Encoded query strings are part of the HTML4+ spec,\n        //and not the HTTP spec.\n        return components;\n    }\n};\nexport default handler;\n//# sourceMappingURL=http.js.map","import http from \"./http\";\nconst handler = {\n    scheme: \"https\",\n    domainHost: http.domainHost,\n    parse: http.parse,\n    serialize: http.serialize\n};\nexport default handler;\n//# sourceMappingURL=https.js.map","function isSecure(wsComponents) {\n    return typeof wsComponents.secure === 'boolean' ? wsComponents.secure : String(wsComponents.scheme).toLowerCase() === \"wss\";\n}\n//RFC 6455\nconst handler = {\n    scheme: \"ws\",\n    domainHost: true,\n    parse: function (components, options) {\n        const wsComponents = components;\n        //indicate if the secure flag is set\n        wsComponents.secure = isSecure(wsComponents);\n        //construct resouce name\n        wsComponents.resourceName = (wsComponents.path || '/') + (wsComponents.query ? '?' + wsComponents.query : '');\n        wsComponents.path = undefined;\n        wsComponents.query = undefined;\n        return wsComponents;\n    },\n    serialize: function (wsComponents, options) {\n        //normalize the default port\n        if (wsComponents.port === (isSecure(wsComponents) ? 443 : 80) || wsComponents.port === \"\") {\n            wsComponents.port = undefined;\n        }\n        //ensure scheme matches secure flag\n        if (typeof wsComponents.secure === 'boolean') {\n            wsComponents.scheme = (wsComponents.secure ? 'wss' : 'ws');\n            wsComponents.secure = undefined;\n        }\n        //reconstruct path from resource name\n        if (wsComponents.resourceName) {\n            const [path, query] = wsComponents.resourceName.split('?');\n            wsComponents.path = (path && path !== '/' ? path : undefined);\n            wsComponents.query = query;\n            wsComponents.resourceName = undefined;\n        }\n        //forbid fragment component\n        wsComponents.fragment = undefined;\n        return wsComponents;\n    }\n};\nexport default handler;\n//# sourceMappingURL=ws.js.map","import ws from \"./ws\";\nconst handler = {\n    scheme: \"wss\",\n    domainHost: ws.domainHost,\n    parse: ws.parse,\n    serialize: ws.serialize\n};\nexport default handler;\n//# sourceMappingURL=wss.js.map","import { pctEncChar, pctDecChars, unescapeComponent } from \"../uri\";\nimport punycode from \"punycode\";\nimport { merge, subexp, toUpperCase, toArray } from \"../util\";\nconst O = {};\nconst isIRI = true;\n//RFC 3986\nconst UNRESERVED$$ = \"[A-Za-z0-9\\\\-\\\\.\\\\_\\\\~\" + (isIRI ? \"\\\\xA0-\\\\u200D\\\\u2010-\\\\u2029\\\\u202F-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFEF\" : \"\") + \"]\";\nconst HEXDIG$$ = \"[0-9A-Fa-f]\"; //case-insensitive\nconst PCT_ENCODED$ = subexp(subexp(\"%[EFef]\" + HEXDIG$$ + \"%\" + HEXDIG$$ + HEXDIG$$ + \"%\" + HEXDIG$$ + HEXDIG$$) + \"|\" + subexp(\"%[89A-Fa-f]\" + HEXDIG$$ + \"%\" + HEXDIG$$ + HEXDIG$$) + \"|\" + subexp(\"%\" + HEXDIG$$ + HEXDIG$$)); //expanded\n//RFC 5322, except these symbols as per RFC 6068: @ : / ? # [ ] & ; =\n//const ATEXT$$ = \"[A-Za-z0-9\\\\!\\\\#\\\\$\\\\%\\\\&\\\\'\\\\*\\\\+\\\\-\\\\/\\\\=\\\\?\\\\^\\\\_\\\\`\\\\{\\\\|\\\\}\\\\~]\";\n//const WSP$$ = \"[\\\\x20\\\\x09]\";\n//const OBS_QTEXT$$ = \"[\\\\x01-\\\\x08\\\\x0B\\\\x0C\\\\x0E-\\\\x1F\\\\x7F]\";  //(%d1-8 / %d11-12 / %d14-31 / %d127)\n//const QTEXT$$ = merge(\"[\\\\x21\\\\x23-\\\\x5B\\\\x5D-\\\\x7E]\", OBS_QTEXT$$);  //%d33 / %d35-91 / %d93-126 / obs-qtext\n//const VCHAR$$ = \"[\\\\x21-\\\\x7E]\";\n//const WSP$$ = \"[\\\\x20\\\\x09]\";\n//const OBS_QP$ = subexp(\"\\\\\\\\\" + merge(\"[\\\\x00\\\\x0D\\\\x0A]\", OBS_QTEXT$$));  //%d0 / CR / LF / obs-qtext\n//const FWS$ = subexp(subexp(WSP$$ + \"*\" + \"\\\\x0D\\\\x0A\") + \"?\" + WSP$$ + \"+\");\n//const QUOTED_PAIR$ = subexp(subexp(\"\\\\\\\\\" + subexp(VCHAR$$ + \"|\" + WSP$$)) + \"|\" + OBS_QP$);\n//const QUOTED_STRING$ = subexp('\\\\\"' + subexp(FWS$ + \"?\" + QCONTENT$) + \"*\" + FWS$ + \"?\" + '\\\\\"');\nconst ATEXT$$ = \"[A-Za-z0-9\\\\!\\\\$\\\\%\\\\'\\\\*\\\\+\\\\-\\\\^\\\\_\\\\`\\\\{\\\\|\\\\}\\\\~]\";\nconst QTEXT$$ = \"[\\\\!\\\\$\\\\%\\\\'\\\\(\\\\)\\\\*\\\\+\\\\,\\\\-\\\\.0-9\\\\<\\\\>A-Z\\\\x5E-\\\\x7E]\";\nconst VCHAR$$ = merge(QTEXT$$, \"[\\\\\\\"\\\\\\\\]\");\nconst DOT_ATOM_TEXT$ = subexp(ATEXT$$ + \"+\" + subexp(\"\\\\.\" + ATEXT$$ + \"+\") + \"*\");\nconst QUOTED_PAIR$ = subexp(\"\\\\\\\\\" + VCHAR$$);\nconst QCONTENT$ = subexp(QTEXT$$ + \"|\" + QUOTED_PAIR$);\nconst QUOTED_STRING$ = subexp('\\\\\"' + QCONTENT$ + \"*\" + '\\\\\"');\n//RFC 6068\nconst DTEXT_NO_OBS$$ = \"[\\\\x21-\\\\x5A\\\\x5E-\\\\x7E]\"; //%d33-90 / %d94-126\nconst SOME_DELIMS$$ = \"[\\\\!\\\\$\\\\'\\\\(\\\\)\\\\*\\\\+\\\\,\\\\;\\\\:\\\\@]\";\nconst QCHAR$ = subexp(UNRESERVED$$ + \"|\" + PCT_ENCODED$ + \"|\" + SOME_DELIMS$$);\nconst DOMAIN$ = subexp(DOT_ATOM_TEXT$ + \"|\" + \"\\\\[\" + DTEXT_NO_OBS$$ + \"*\" + \"\\\\]\");\nconst LOCAL_PART$ = subexp(DOT_ATOM_TEXT$ + \"|\" + QUOTED_STRING$);\nconst ADDR_SPEC$ = subexp(LOCAL_PART$ + \"\\\\@\" + DOMAIN$);\nconst TO$ = subexp(ADDR_SPEC$ + subexp(\"\\\\,\" + ADDR_SPEC$) + \"*\");\nconst HFNAME$ = subexp(QCHAR$ + \"*\");\nconst HFVALUE$ = HFNAME$;\nconst HFIELD$ = subexp(HFNAME$ + \"\\\\=\" + HFVALUE$);\nconst HFIELDS2$ = subexp(HFIELD$ + subexp(\"\\\\&\" + HFIELD$) + \"*\");\nconst HFIELDS$ = subexp(\"\\\\?\" + HFIELDS2$);\nconst MAILTO_URI = new RegExp(\"^mailto\\\\:\" + TO$ + \"?\" + HFIELDS$ + \"?$\");\nconst UNRESERVED = new RegExp(UNRESERVED$$, \"g\");\nconst PCT_ENCODED = new RegExp(PCT_ENCODED$, \"g\");\nconst NOT_LOCAL_PART = new RegExp(merge(\"[^]\", ATEXT$$, \"[\\\\.]\", '[\\\\\"]', VCHAR$$), \"g\");\nconst NOT_DOMAIN = new RegExp(merge(\"[^]\", ATEXT$$, \"[\\\\.]\", \"[\\\\[]\", DTEXT_NO_OBS$$, \"[\\\\]]\"), \"g\");\nconst NOT_HFNAME = new RegExp(merge(\"[^]\", UNRESERVED$$, SOME_DELIMS$$), \"g\");\nconst NOT_HFVALUE = NOT_HFNAME;\nconst TO = new RegExp(\"^\" + TO$ + \"$\");\nconst HFIELDS = new RegExp(\"^\" + HFIELDS2$ + \"$\");\nfunction decodeUnreserved(str) {\n    const decStr = pctDecChars(str);\n    return (!decStr.match(UNRESERVED) ? str : decStr);\n}\nconst handler = {\n    scheme: \"mailto\",\n    parse: function (components, options) {\n        const mailtoComponents = components;\n        const to = mailtoComponents.to = (mailtoComponents.path ? mailtoComponents.path.split(\",\") : []);\n        mailtoComponents.path = undefined;\n        if (mailtoComponents.query) {\n            let unknownHeaders = false;\n            const headers = {};\n            const hfields = mailtoComponents.query.split(\"&\");\n            for (let x = 0, xl = hfields.length; x < xl; ++x) {\n                const hfield = hfields[x].split(\"=\");\n                switch (hfield[0]) {\n                    case \"to\":\n                        const toAddrs = hfield[1].split(\",\");\n                        for (let x = 0, xl = toAddrs.length; x < xl; ++x) {\n                            to.push(toAddrs[x]);\n                        }\n                        break;\n                    case \"subject\":\n                        mailtoComponents.subject = unescapeComponent(hfield[1], options);\n                        break;\n                    case \"body\":\n                        mailtoComponents.body = unescapeComponent(hfield[1], options);\n                        break;\n                    default:\n                        unknownHeaders = true;\n                        headers[unescapeComponent(hfield[0], options)] = unescapeComponent(hfield[1], options);\n                        break;\n                }\n            }\n            if (unknownHeaders)\n                mailtoComponents.headers = headers;\n        }\n        mailtoComponents.query = undefined;\n        for (let x = 0, xl = to.length; x < xl; ++x) {\n            const addr = to[x].split(\"@\");\n            addr[0] = unescapeComponent(addr[0]);\n            if (!options.unicodeSupport) {\n                //convert Unicode IDN -> ASCII IDN\n                try {\n                    addr[1] = punycode.toASCII(unescapeComponent(addr[1], options).toLowerCase());\n                }\n                catch (e) {\n                    mailtoComponents.error = mailtoComponents.error || \"Email address's domain name can not be converted to ASCII via punycode: \" + e;\n                }\n            }\n            else {\n                addr[1] = unescapeComponent(addr[1], options).toLowerCase();\n            }\n            to[x] = addr.join(\"@\");\n        }\n        return mailtoComponents;\n    },\n    serialize: function (mailtoComponents, options) {\n        const components = mailtoComponents;\n        const to = toArray(mailtoComponents.to);\n        if (to) {\n            for (let x = 0, xl = to.length; x < xl; ++x) {\n                const toAddr = String(to[x]);\n                const atIdx = toAddr.lastIndexOf(\"@\");\n                const localPart = (toAddr.slice(0, atIdx)).replace(PCT_ENCODED, decodeUnreserved).replace(PCT_ENCODED, toUpperCase).replace(NOT_LOCAL_PART, pctEncChar);\n                let domain = toAddr.slice(atIdx + 1);\n                //convert IDN via punycode\n                try {\n                    domain = (!options.iri ? punycode.toASCII(unescapeComponent(domain, options).toLowerCase()) : punycode.toUnicode(domain));\n                }\n                catch (e) {\n                    components.error = components.error || \"Email address's domain name can not be converted to \" + (!options.iri ? \"ASCII\" : \"Unicode\") + \" via punycode: \" + e;\n                }\n                to[x] = localPart + \"@\" + domain;\n            }\n            components.path = to.join(\",\");\n        }\n        const headers = mailtoComponents.headers = mailtoComponents.headers || {};\n        if (mailtoComponents.subject)\n            headers[\"subject\"] = mailtoComponents.subject;\n        if (mailtoComponents.body)\n            headers[\"body\"] = mailtoComponents.body;\n        const fields = [];\n        for (const name in headers) {\n            if (headers[name] !== O[name]) {\n                fields.push(name.replace(PCT_ENCODED, decodeUnreserved).replace(PCT_ENCODED, toUpperCase).replace(NOT_HFNAME, pctEncChar) +\n                    \"=\" +\n                    headers[name].replace(PCT_ENCODED, decodeUnreserved).replace(PCT_ENCODED, toUpperCase).replace(NOT_HFVALUE, pctEncChar));\n            }\n        }\n        if (fields.length) {\n            components.query = fields.join(\"&\");\n        }\n        return components;\n    }\n};\nexport default handler;\n//# sourceMappingURL=mailto.js.map","import { SCHEMES } from \"../uri\";\nconst NID$ = \"(?:[0-9A-Za-z][0-9A-Za-z\\\\-]{1,31})\";\nconst PCT_ENCODED$ = \"(?:\\\\%[0-9A-Fa-f]{2})\";\nconst TRANS$$ = \"[0-9A-Za-z\\\\(\\\\)\\\\+\\\\,\\\\-\\\\.\\\\:\\\\=\\\\@\\\\;\\\\$\\\\_\\\\!\\\\*\\\\'\\\\/\\\\?\\\\#]\";\nconst NSS$ = \"(?:(?:\" + PCT_ENCODED$ + \"|\" + TRANS$$ + \")+)\";\nconst URN_SCHEME = new RegExp(\"^urn\\\\:(\" + NID$ + \")$\");\nconst URN_PATH = new RegExp(\"^(\" + NID$ + \")\\\\:(\" + NSS$ + \")$\");\nconst URN_PARSE = /^([^\\:]+)\\:(.*)/;\nconst URN_EXCLUDED = /[\\x00-\\x20\\\\\\\"\\&\\<\\>\\[\\]\\^\\`\\{\\|\\}\\~\\x7F-\\xFF]/g;\n//RFC 2141\nconst handler = {\n    scheme: \"urn\",\n    parse: function (components, options) {\n        const matches = components.path && components.path.match(URN_PARSE);\n        let urnComponents = components;\n        if (matches) {\n            const scheme = options.scheme || urnComponents.scheme || \"urn\";\n            const nid = matches[1].toLowerCase();\n            const nss = matches[2];\n            const urnScheme = `${scheme}:${options.nid || nid}`;\n            const schemeHandler = SCHEMES[urnScheme];\n            urnComponents.nid = nid;\n            urnComponents.nss = nss;\n            urnComponents.path = undefined;\n            if (schemeHandler) {\n                urnComponents = schemeHandler.parse(urnComponents, options);\n            }\n        }\n        else {\n            urnComponents.error = urnComponents.error || \"URN can not be parsed.\";\n        }\n        return urnComponents;\n    },\n    serialize: function (urnComponents, options) {\n        const scheme = options.scheme || urnComponents.scheme || \"urn\";\n        const nid = urnComponents.nid;\n        const urnScheme = `${scheme}:${options.nid || nid}`;\n        const schemeHandler = SCHEMES[urnScheme];\n        if (schemeHandler) {\n            urnComponents = schemeHandler.serialize(urnComponents, options);\n        }\n        const uriComponents = urnComponents;\n        const nss = urnComponents.nss;\n        uriComponents.path = `${nid || options.nid}:${nss}`;\n        return uriComponents;\n    },\n};\nexport default handler;\n//# sourceMappingURL=urn.js.map","const UUID = /^[0-9A-Fa-f]{8}(?:\\-[0-9A-Fa-f]{4}){3}\\-[0-9A-Fa-f]{12}$/;\nconst UUID_PARSE = /^[0-9A-Fa-f\\-]{36}/;\n//RFC 4122\nconst handler = {\n    scheme: \"urn:uuid\",\n    parse: function (urnComponents, options) {\n        const uuidComponents = urnComponents;\n        uuidComponents.uuid = uuidComponents.nss;\n        uuidComponents.nss = undefined;\n        if (!options.tolerant && (!uuidComponents.uuid || !uuidComponents.uuid.match(UUID))) {\n            uuidComponents.error = uuidComponents.error || \"UUID is not valid.\";\n        }\n        return uuidComponents;\n    },\n    serialize: function (uuidComponents, options) {\n        const urnComponents = uuidComponents;\n        //normalize UUID\n        urnComponents.nss = (uuidComponents.uuid || \"\").toLowerCase();\n        return urnComponents;\n    },\n};\nexport default handler;\n//# sourceMappingURL=urn-uuid.js.map","import { SCHEMES } from \"./uri\";\nimport http from \"./schemes/http\";\nSCHEMES[http.scheme] = http;\nimport https from \"./schemes/https\";\nSCHEMES[https.scheme] = https;\nimport ws from \"./schemes/ws\";\nSCHEMES[ws.scheme] = ws;\nimport wss from \"./schemes/wss\";\nSCHEMES[wss.scheme] = wss;\nimport mailto from \"./schemes/mailto\";\nSCHEMES[mailto.scheme] = mailto;\nimport urn from \"./schemes/urn\";\nSCHEMES[urn.scheme] = urn;\nimport uuid from \"./schemes/urn-uuid\";\nSCHEMES[uuid.scheme] = uuid;\nexport * from \"./uri\";\n//# sourceMappingURL=index.js.map"],"names":["maxInt","base","tMin","tMax","skew","damp","initialBias","initialN","delimiter","regexPunycode","regexNonASCII","regexSeparators","errors","baseMinusTMin","floor","Math","stringFromCharCode","String","fromCharCode","error","type","RangeError","map","array","fn","length","result","mapDomain","string","parts","split","replace","labels","encoded","join","ucs2decode","output","counter","value","extra","charCodeAt","push","ucs2encode","basicToDigit","codePoint","digitToBasic","digit","flag","adapt","delta","numPoints","firstTime","k","decode","input","inputLength","out","i","n","bias","basic","j","index","oldi","w","t","baseMinusT","lastIndexOf","splice","encode","handledCPCount","basicLength","m","q","currentValue","handledCPCountPlusOne","qMinusT","toUnicode","test","slice","toLowerCase","toASCII","version","ucs2","handler","http","ws","https","wss","mailto","urn","uuid"],"mappings":"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"}