{"version":3,"sources":["jsdelivr-header.js","/npm/html-encoding-sniffer@6.0.0/lib/html-encoding-sniffer.js"],"names":[],"mappings":"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","file":"/npm/html-encoding-sniffer@6.0.0/lib/html-encoding-sniffer.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.39.0.\n * Original file: /npm/html-encoding-sniffer@6.0.0/lib/html-encoding-sniffer.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","\"use strict\";\nconst { getBOMEncoding, labelToName } = require(\"@exodus/bytes/encoding-lite.js\");\n\n// https://html.spec.whatwg.org/#encoding-sniffing-algorithm\nmodule.exports = (uint8Array, { xml = false, transportLayerEncodingLabel, defaultEncoding } = {}) => {\n  if (defaultEncoding === undefined) {\n    defaultEncoding = xml ? \"UTF-8\" : \"windows-1252\";\n  }\n\n  let encoding = labelToName(getBOMEncoding(uint8Array));\n\n  if (encoding === null && transportLayerEncodingLabel !== undefined) {\n    encoding = labelToName(transportLayerEncodingLabel);\n  }\n\n  if (encoding === null && !xml) {\n    encoding = prescanMetaCharset(uint8Array);\n  }\n\n  if (encoding === null) {\n    encoding = defaultEncoding;\n  }\n\n  return encoding;\n};\n\n// https://html.spec.whatwg.org/multipage/syntax.html#prescan-a-byte-stream-to-determine-its-encoding\nfunction prescanMetaCharset(uint8Array) {\n  const l = Math.min(uint8Array.byteLength, 1024);\n  for (let i = 0; i < l; i++) {\n    let c = uint8Array[i];\n    if (c === 0x3C) {\n      // \"<\"\n      const c1 = uint8Array[i + 1];\n      const c2 = uint8Array[i + 2];\n      const c3 = uint8Array[i + 3];\n      const c4 = uint8Array[i + 4];\n      const c5 = uint8Array[i + 5];\n      // !-- (comment start)\n      if (c1 === 0x21 && c2 === 0x2D && c3 === 0x2D) {\n        i += 4;\n        for (; i < l; i++) {\n          c = uint8Array[i];\n          const cMinus1 = uint8Array[i - 1];\n          const cMinus2 = uint8Array[i - 2];\n          // --> (comment end)\n          if (c === 0x3E && cMinus1 === 0x2D && cMinus2 === 0x2D) {\n            break;\n          }\n        }\n      } else if ((c1 === 0x4D || c1 === 0x6D) &&\n         (c2 === 0x45 || c2 === 0x65) &&\n         (c3 === 0x54 || c3 === 0x74) &&\n         (c4 === 0x41 || c4 === 0x61) &&\n         (isSpaceCharacter(c5) || c5 === 0x2F)) {\n        // \"meta\" + space or /\n        i += 6;\n        const attributeList = new Set();\n        let gotPragma = false;\n        let needPragma = null;\n        let charset = null;\n\n        let attrRes;\n        do {\n          attrRes = getAttribute(uint8Array, i, l);\n          if (attrRes.attr && !attributeList.has(attrRes.attr.name)) {\n            attributeList.add(attrRes.attr.name);\n            if (attrRes.attr.name === \"http-equiv\") {\n              gotPragma = attrRes.attr.value === \"content-type\";\n            } else if (attrRes.attr.name === \"content\" && !charset) {\n              charset = extractCharacterEncodingFromMeta(attrRes.attr.value);\n              if (charset !== null) {\n                needPragma = true;\n              }\n            } else if (attrRes.attr.name === \"charset\") {\n              charset = labelToName(attrRes.attr.value);\n              needPragma = false;\n            }\n          }\n          i = attrRes.i;\n        } while (attrRes.attr);\n\n        if (needPragma === null) {\n          continue;\n        }\n        if (needPragma === true && gotPragma === false) {\n          continue;\n        }\n        if (charset === null) {\n          continue;\n        }\n\n        if (charset === \"UTF-16LE\" || charset === \"UTF-16BE\") {\n          charset = \"UTF-8\";\n        }\n        if (charset === \"x-user-defined\") {\n          charset = \"windows-1252\";\n        }\n\n        return charset;\n      } else if ((c1 >= 0x41 && c1 <= 0x5A) || (c1 >= 0x61 && c1 <= 0x7A)) {\n        // a-z or A-Z\n        for (i += 2; i < l; i++) {\n          c = uint8Array[i];\n          // space or >\n          if (isSpaceCharacter(c) || c === 0x3E) {\n            break;\n          }\n        }\n        let attrRes;\n        do {\n          attrRes = getAttribute(uint8Array, i, l);\n          i = attrRes.i;\n        } while (attrRes.attr);\n      } else if (c1 === 0x21 || c1 === 0x2F || c1 === 0x3F) {\n        // ! or / or ?\n        for (i += 2; i < l; i++) {\n          c = uint8Array[i];\n          // >\n          if (c === 0x3E) {\n            break;\n          }\n        }\n      }\n    }\n  }\n  return null;\n}\n\n// https://html.spec.whatwg.org/multipage/syntax.html#concept-get-attributes-when-sniffing\nfunction getAttribute(uint8Array, i, l) {\n  for (; i < l; i++) {\n    let c = uint8Array[i];\n    // space or /\n    if (isSpaceCharacter(c) || c === 0x2F) {\n      continue;\n    }\n    // \">\"\n    if (c === 0x3E) {\n      break;\n    }\n    let name = \"\";\n    let value = \"\";\n    nameLoop:for (; i < l; i++) {\n      c = uint8Array[i];\n      // \"=\"\n      if (c === 0x3D && name !== \"\") {\n        i++;\n        break;\n      }\n      // space\n      if (isSpaceCharacter(c)) {\n        for (i++; i < l; i++) {\n          c = uint8Array[i];\n          // space\n          if (isSpaceCharacter(c)) {\n            continue;\n          }\n          // not \"=\"\n          if (c !== 0x3D) {\n            return { attr: { name, value }, i };\n          }\n\n          i++;\n          break nameLoop;\n        }\n        break;\n      }\n      // / or >\n      if (c === 0x2F || c === 0x3E) {\n        return { attr: { name, value }, i };\n      }\n      // A-Z\n      if (c >= 0x41 && c <= 0x5A) {\n        name += String.fromCharCode(c + 0x20); // lowercase\n      } else {\n        name += String.fromCharCode(c);\n      }\n    }\n    c = uint8Array[i];\n    // space\n    if (isSpaceCharacter(c)) {\n      for (i++; i < l; i++) {\n        c = uint8Array[i];\n        // space\n        if (isSpaceCharacter(c)) {\n          continue;\n        } else {\n          break;\n        }\n      }\n    }\n    // \" or '\n    if (c === 0x22 || c === 0x27) {\n      const quote = c;\n      for (i++; i < l; i++) {\n        c = uint8Array[i];\n\n        if (c === quote) {\n          i++;\n          return { attr: { name, value }, i };\n        }\n\n        // A-Z\n        if (c >= 0x41 && c <= 0x5A) {\n          value += String.fromCharCode(c + 0x20); // lowercase\n        } else {\n          value += String.fromCharCode(c);\n        }\n      }\n    }\n\n    // >\n    if (c === 0x3E) {\n      return { attr: { name, value }, i };\n    }\n\n    // A-Z\n    if (c >= 0x41 && c <= 0x5A) {\n      value += String.fromCharCode(c + 0x20); // lowercase\n    } else {\n      value += String.fromCharCode(c);\n    }\n\n    for (i++; i < l; i++) {\n      c = uint8Array[i];\n\n      // space or >\n      if (isSpaceCharacter(c) || c === 0x3E) {\n        return { attr: { name, value }, i };\n      }\n\n      // A-Z\n      if (c >= 0x41 && c <= 0x5A) {\n        value += String.fromCharCode(c + 0x20); // lowercase\n      } else {\n        value += String.fromCharCode(c);\n      }\n    }\n  }\n  return { i };\n}\n\nfunction extractCharacterEncodingFromMeta(string) {\n  let position = 0;\n\n  while (true) {\n    const indexOfCharset = string.substring(position).search(/charset/ui);\n\n    if (indexOfCharset === -1) {\n      return null;\n    }\n    let subPosition = position + indexOfCharset + \"charset\".length;\n\n    while (isSpaceCharacter(string[subPosition].charCodeAt(0))) {\n      ++subPosition;\n    }\n\n    if (string[subPosition] !== \"=\") {\n      position = subPosition - 1;\n      continue;\n    }\n\n    ++subPosition;\n\n    while (isSpaceCharacter(string[subPosition].charCodeAt(0))) {\n      ++subPosition;\n    }\n\n    position = subPosition;\n    break;\n  }\n\n  if (string[position] === \"\\\"\" || string[position] === \"'\") {\n    const nextIndex = string.indexOf(string[position], position + 1);\n\n    if (nextIndex !== -1) {\n      return labelToName(string.substring(position + 1, nextIndex));\n    }\n\n    // It is an unmatched quotation mark\n    return null;\n  }\n\n  if (string.length === position + 1) {\n    return null;\n  }\n\n  const indexOfASCIIWhitespaceOrSemicolon = string.substring(position + 1).search(/\\x09|\\x0A|\\x0C|\\x0D|\\x20|;/u);\n  const end = indexOfASCIIWhitespaceOrSemicolon === -1 ?\n    string.length :\n    position + indexOfASCIIWhitespaceOrSemicolon + 1;\n\n  return labelToName(string.substring(position, end));\n}\n\nfunction isSpaceCharacter(c) {\n  return c === 0x09 || c === 0x0A || c === 0x0C || c === 0x0D || c === 0x20;\n}\n"]}