3, 8230], [134, 8224], [135, 8225], [136, 710], [137, 8240], [138, 352], [139, 8249], [140, 338], [142, 381], [145, 8216], [146, 8217], [147, 8220], [148, 8221], [149, 8226], [150, 8211], [151, 8212], [152, 732], [153, 8482], [154, 353], [155, 8250], [156, 339], [158, 382], [159, 376] ]); exports2.fromCodePoint = // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition, node/no-unsupported-features/es-builtins (_a = String.fromCodePoint) !== null && _a !== void 0 ? _a : function(codePoint) { var output = ""; if (codePoint > 65535) { codePoint -= 65536; output += String.fromCharCode(codePoint >>> 10 & 1023 | 55296); codePoint = 56320 | codePoint & 1023; } output += String.fromCharCode(codePoint); return output; }; function replaceCodePoint(codePoint) { var _a2; if (codePoint >= 55296 && codePoint <= 57343 || codePoint > 1114111) { return 65533; } return (_a2 = decodeMap.get(codePoint)) !== null && _a2 !== void 0 ? _a2 : codePoint; } exports2.replaceCodePoint = replaceCodePoint; function decodeCodePoint(codePoint) { return (0, exports2.fromCodePoint)(replaceCodePoint(codePoint)); } exports2.default = decodeCodePoint; } }); // node_modules/entities/lib/decode.js var require_decode = __commonJS({ "node_modules/entities/lib/decode.js"(exports2) { "use strict"; var __createBinding = exports2 && exports2.__createBinding || (Object.create ? function(o, m, k, k2) { if (k2 === void 0) k2 = k; var desc = Object.getOwnPropertyDescriptor(m, k); if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { desc = { enumerable: true, get: function() { return m[k]; } }; } Object.defineProperty(o, k2, desc); } : function(o, m, k, k2) { if (k2 === void 0) k2 = k; o[k2] = m[k]; }); var __setModuleDefault = exports2 && exports2.__setModuleDefault || (Object.create ? function(o, v) { Object.defineProperty(o, "default", { enumerable: true, value: v }); } : function(o, v) { o["default"] = v; }); var __importStar = exports2 && exports2.__importStar || function(mod) { if (mod && mod.__esModule) return mod; var result = {}; if (mod != null) { for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); } __setModuleDefault(result, mod); return result; }; var __importDefault = exports2 && exports2.__importDefault || function(mod) { return mod && mod.__esModule ? mod : { "default": mod }; }; Object.defineProperty(exports2, "__esModule", { value: true }); exports2.decodeXML = exports2.decodeHTMLStrict = exports2.decodeHTMLAttribute = exports2.decodeHTML = exports2.determineBranch = exports2.EntityDecoder = exports2.DecodingMode = exports2.BinTrieFlags = exports2.fromCodePoint = exports2.replaceCodePoint = exports2.decodeCodePoint = exports2.xmlDecodeTree = exports2.htmlDecodeTree = void 0; var decode_data_html_js_1 = __importDefault(require_decode_data_html()); exports2.htmlDecodeTree = decode_data_html_js_1.default; var decode_data_xml_js_1 = __importDefault(require_decode_data_xml()); exports2.xmlDecodeTree = decode_data_xml_js_1.default; var decode_codepoint_js_1 = __importStar(require_decode_codepoint()); exports2.decodeCodePoint = decode_codepoint_js_1.default; var decode_codepoint_js_2 = require_decode_codepoint(); Object.defineProperty(exports2, "replaceCodePoint", { enumerable: true, get: function() { return decode_codepoint_js_2.replaceCodePoint; } }); Object.defineProperty(exports2, "fromCodePoint", { enumerable: true, get: function() { return decode_codepoint_js_2.fromCodePoint; } }); var CharCodes; (function(CharCodes2) { CharCodes2[CharCodes2["NUM"] = 35] = "NUM"; CharCodes2[CharCodes2["SEMI"] = 59] = "SEMI"; CharCodes2[CharCodes2["EQUALS"] = 61] = "EQUALS"; CharCodes2[CharCodes2["ZERO"] = 48] = "ZERO"; CharCodes2[CharCodes2["NINE"] = 57] = "NINE"; CharCodes2[CharCodes2["LOWER_A"] = 97] = "LOWER_A"; CharCodes2[CharCodes2["LOWER_F"] = 102] = "LOWER_F"; CharCodes2[CharCodes2["LOWER_X"] = 120] = "LOWER_X"; CharCodes2[CharCodes2["LOWER_Z"] = 122] = "LOWER_Z"; CharCodes2[CharCodes2["UPPER_A"] = 65] = "UPPER_A"; CharCodes2[CharCodes2["UPPER_F"] = 70] = "UPPER_F"; CharCodes2[CharCodes2["UPPER_Z"] = 90] = "UPPER_Z"; })(CharCodes || (CharCodes = {})); var TO_LOWER_BIT = 32; var BinTrieFlags; (function(BinTrieFlags2) { BinTrieFlags2[BinTrieFlags2["VALUE_LENGTH"] = 49152] = "VALUE_LENGTH"; BinTrieFlags2[BinTrieFlags2["BRANCH_LENGTH"] = 16256] = "BRANCH_LENGTH"; BinTrieFlags2[BinTrieFlags2["JUMP_TABLE"] = 127] = "JUMP_TABLE"; })(BinTrieFlags = exports2.BinTrieFlags || (exports2.BinTrieFlags = {})); function isNumber(code) { return code >= CharCodes.ZERO && code <= CharCodes.NINE; } function isHexadecimalCharacter(code) { return code >= CharCodes.UPPER_A && code <= CharCodes.UPPER_F || code >= CharCodes.LOWER_A && code <= CharCodes.LOWER_F; } function isAsciiAlphaNumeric(code) { return code >= CharCodes.UPPER_A && code <= CharCodes.UPPER_Z || code >= CharCodes.LOWER_A && code <= CharCodes.LOWER_Z || isNumber(code); } function isEntityInAttributeInvalidEnd(code) { return code === CharCodes.EQUALS || isAsciiAlphaNumeric(code); } var EntityDecoderState; (function(EntityDecoderState2) { EntityDecoderState2[EntityDecoderState2["EntityStart"] = 0] = "EntityStart"; EntityDecoderState2[EntityDecoderState2["NumericStart"] = 1] = "NumericStart"; EntityDecoderState2[EntityDecoderState2["NumericDecimal"] = 2] = "NumericDecimal"; EntityDecoderState2[EntityDecoderState2["NumericHex"] = 3] = "NumericHex"; EntityDecoderState2[EntityDecoderState2["NamedEntity"] = 4] = "NamedEntity"; })(EntityDecoderState || (EntityDecoderState = {})); var DecodingMode; (function(DecodingMode2) { DecodingMode2[DecodingMode2["Legacy"] = 0] = "Legacy"; DecodingMode2[DecodingMode2["Strict"] = 1] = "Strict"; DecodingMode2[DecodingMode2["Attribute"] = 2] = "Attribute"; })(DecodingMode = exports2.DecodingMode || (exports2.DecodingMode = {})); var EntityDecoder = ( /** @class */ function() { function EntityDecoder2(decodeTree, emitCodePoint, errors) { this.decodeTree = decodeTree; this.emitCodePoint = emitCodePoint; this.errors = errors; this.state = EntityDecoderState.EntityStart; this.consumed = 1; this.result = 0; this.treeIndex = 0; this.excess = 1; this.decodeMode = DecodingMode.Strict; } EntityDecoder2.prototype.startEntity = function(decodeMode) { this.decodeMode = decodeMode; this.state = EntityDecoderState.EntityStart; this.result = 0; this.treeIndex = 0; this.excess = 1; this.consumed = 1; }; EntityDecoder2.prototype.write = function(str, offset) { switch (this.state) { case EntityDecoderState.EntityStart: { if (str.charCodeAt(offset) === CharCodes.NUM) { this.state = EntityDecoderState.NumericStart; this.consumed += 1; return this.stateNumericStart(str, offset + 1); } this.state = EntityDecoderState.NamedEntity; return this.stateNamedEntity(str, offset); } case EntityDecoderState.NumericStart: { return this.stateNumericStart(str, offset); } case EntityDecoderState.NumericDecimal: { return this.stateNumericDecimal(str, offset); } case EntityDecoderState.NumericHex: { return this.stateNumericHex(str, offset); } case EntityDecoderState.NamedEntity: { return this.stateNamedEntity(str, offset); } } }; EntityDecoder2.prototype.stateNumericStart = function(str, offset) { if (offset >= str.length) { return -1; } if ((str.charCodeAt(offset) | TO_LOWER_BIT) === CharCodes.LOWER_X) { this.state = EntityDecoderState.NumericHex; this.consumed += 1; return this.stateNumericHex(str, offset + 1); } this.state = EntityDecoderState.NumericDecimal; return this.stateNumericDecimal(str, offset); }; EntityDecoder2.prototype.addToNumericResult = function(str, start, end, base) { if (start !== end) { var digitCount = end - start; this.result = this.result * Math.pow(base, digitCount) + parseInt(str.substr(start, digitCount), base); this.consumed += digitCount; } }; EntityDecoder2.prototype.stateNumericHex = function(str, offset) { var startIdx = offset; while (offset < str.length) { var char = str.charCodeAt(offset); if (isNumber(char) || isHexadecimalCharacter(char)) { offset += 1; } else { this.addToNumericResult(str, startIdx, offset, 16); return this.emitNumericEntity(char, 3); } } this.addToNumericResult(str, startIdx, offset, 16); return -1; }; EntityDecoder2.prototype.stateNumericDecimal = function(str, offset) { var startIdx = offset; while (offset < str.length) { var char = str.charCodeAt(offset); if (isNumber(char)) { offset += 1; } else { this.addToNumericResult(str, startIdx, offset, 10); return this.emitNumericEntity(char, 2); } } this.addToNumericResult(str, startIdx, offset, 10); return -1; }; EntityDecoder2.prototype.emitNumericEntity = function(lastCp, expectedLength) { var _a; if (this.consumed <= expectedLength) { (_a = this.errors) === null || _a === void 0 ? void 0 : _a.absenceOfDigitsInNumericCharacterReference(this.consumed); return 0; } if (lastCp === CharCodes.SEMI) { this.consumed += 1; } else if (this.decodeMode === DecodingMode.Strict) { return 0; } this.emitCodePoint((0, decode_codepoint_js_1.replaceCodePoint)(this.result), this.consumed); if (this.errors) { if (lastCp !== CharCodes.SEMI) { this.errors.missingSemicolonAfterCharacterReference(); } this.errors.validateNumericCharacterReference(this.result); } return this.consumed; }; EntityDecoder2.prototype.stateNamedEntity = function(str, offset) { var decodeTree = this.decodeTree; var current = decodeTree[this.treeIndex]; var valueLength = (current & BinTrieFlags.VALUE_LENGTH) >> 14; for (; offset < str.length; offset++, this.excess++) { var char = str.charCodeAt(offset); this.treeIndex = determineBranch(decodeTree, current, this.treeIndex + Math.max(1, valueLength), char); if (this.treeIndex < 0) { return this.result === 0 || // If we are parsing an attribute this.decodeMode === DecodingMode.Attribute && // We shouldn't have consumed any characters after the entity, (valueLength === 0 || // And there should be no invalid characters. isEntityInAttributeInvalidEnd(char)) ? 0 : this.emitNotTerminatedNamedEntity(); } current = decodeTree[this.treeIndex]; valueLength = (current & BinTrieFlags.VALUE_LENGTH) >> 14; if (valueLength !== 0) { if (char === CharCodes.SEMI) { return this.emitNamedEntityData(this.treeIndex, valueLength, this.consumed + this.excess); } if (this.decodeMode !== DecodingMode.Strict) { this.result = this.treeIndex; this.consumed += this.excess; this.excess = 0; } } } return -1; }; EntityDecoder2.prototype.emitNotTerminatedNamedEntity = function() { var _a; var _b = this, result = _b.result, decodeTree = _b.decodeTree; var valueLength = (decodeTree[result] & BinTrieFlags.VALUE_LENGTH) >> 14; this.emitNamedEntityData(result, valueLength, this.consumed); (_a = this.errors) === null || _a === void 0 ? void 0 : _a.missingSemicolonAfterCharacterReference(); return this.consumed; }; EntityDecoder2.prototype.emitNamedEntityData = function(result, valueLength, consumed) { var decodeTree = this.decodeTree; this.emitCodePoint(valueLength === 1 ? decodeTree[result] & ~BinTrieFlags.VALUE_LENGTH : decodeTree[result + 1], consumed); if (valueLength === 3) { this.emitCodePoint(decodeTree[result + 2], consumed); } return consumed; }; EntityDecoder2.prototype.end = function() { var _a; switch (this.state) { case EntityDecoderState.NamedEntity: { return this.result !== 0 && (this.decodeMode !== DecodingMode.Attribute || this.result === this.treeIndex) ? this.emitNotTerminatedNamedEntity() : 0; } case EntityDecoderState.NumericDecimal: { return this.emitNumericEntity(0, 2); } case EntityDecoderState.NumericHex: { return this.emitNumericEntity(0, 3); } case EntityDecoderState.NumericStart: { (_a = this.errors) === null || _a === void 0 ? void 0 : _a.absenceOfDigitsInNumericCharacterReference(this.consumed); return 0; } case EntityDecoderState.EntityStart: { return 0; } } }; return EntityDecoder2; }() ); exports2.EntityDecoder = EntityDecoder; function getDecoder(decodeTree) { var ret = ""; var decoder = new EntityDecoder(decodeTree, function(str) { return ret += (0, decode_codepoint_js_1.fromCodePoint)(str); }); return function decodeWithTrie(str, decodeMode) { var lastIndex = 0; var offset = 0; while ((offset = str.indexOf("&", offset)) >= 0) { ret += str.slice(lastIndex, offset); decoder.startEntity(decodeMode); var len = decoder.write( str, // Skip the "&" offset + 1 ); if (len < 0) { lastIndex = offset + decoder.end(); break; } lastIndex = offset + len; offset = len === 0 ? lastIndex + 1 : lastIndex; } var result = ret + str.slice(lastIndex); ret = ""; return result; }; } function determineBranch(decodeTree, current, nodeIdx, char) { var branchCount = (current & BinTrieFlags.BRANCH_LENGTH) >> 7; var jumpOffset = current & BinTrieFlags.JUMP_TABLE; if (branchCount === 0) { return jumpOffset !== 0 && char === jumpOffset ? nodeIdx : -1; } if (jumpOffset) { var value = char - jumpOffset; return value < 0 || value >= branchCount ? -1 : decodeTree[nodeIdx + value] - 1; } var lo = nodeIdx; var hi = lo + branchCount - 1; while (lo <= hi) { var mid = lo + hi >>> 1; var midVal = decodeTree[mid]; if (midVal < char) { lo = mid + 1; } else if (midVal > char) { hi = mid - 1; } else { return decodeTree[mid + branchCount]; } } return -1; } exports2.determineBranch = determineBranch; var htmlDecoder = getDecoder(decode_data_html_js_1.default); var xmlDecoder = getDecoder(decode_data_xml_js_1.default); function decodeHTML(str, mode) { if (mode === void 0) { mode = DecodingMode.Legacy; } return htmlDecoder(str, mode); } exports2.decodeHTML = decodeHTML; function decodeHTMLAttribute(str) { return htmlDecoder(str, DecodingMode.Attribute); } exports2.decodeHTMLAttribute = decodeHTMLAttribute; function decodeHTMLStrict(str) { return htmlDecoder(str, DecodingMode.Strict); } exports2.decodeHTMLStrict = decodeHTMLStrict; function decodeXML(str) { return xmlDecoder(str, DecodingMode.Strict); } exports2.decodeXML = decodeXML; } }); // node_modules/entities/lib/generated/encode-html.js var require_encode_html = __commonJS({ "node_modules/entities/lib/generated/encode-html.js"(exports2) { "use strict"; Object.defineProperty(exports2, "__esModule", { value: true }); function restoreDiff(arr) { for (var i = 1; i < arr.length; i++) { arr[i][0] += arr[i - 1][0] + 1; } return arr; } exports2.default = new Map(/* @__PURE__ */ restoreDiff([[9, " "], [0, " "], [22, "!"], [0, """], [0, "#"], [0, "$"], [0, "%"], [0, "&"], [0, "'"], [0, "("], [0, ")"], [0, "*"], [0, "+"], [0, ","], [1, "."], [0, "/"], [10, ":"], [0, ";"], [0, { v: "<", n: 8402, o: "<⃒" }], [0, { v: "=", n: 8421, o: "=⃥" }], [0, { v: ">", n: 8402, o: ">⃒" }], [0, "?"], [0, "@"], [26, "["], [0, "\"], [0, "]"], [0, "^"], [0, "_"], [0, "`"], [5, { n: 106, o: "fj" }], [20, "{"], [0, "|"], [0, "}"], [34, " "], [0, "¡"], [0, "¢"], [0, "£"], [0, "¤"], [0, "¥"], [0, "¦"], [0, "§"], [0, "¨"], [0, "©"], [0, "ª"], [0, "«"], [0, "¬"], [0, "­"], [0, "®"], [0, "¯"], [0, "°"], [0, "±"], [0, "²"], [0, "³"], [0, "´"], [0, "µ"], [0, "¶"], [0, "·"], [0, "¸"], [0, "¹"], [0, "º"], [0, "»"], [0, "¼"], [0, "½"], [0, "¾"], [0, "¿"], [0, "À"], [0, "Á"], [0, "Â"], [0, "Ã"], [0, "Ä"], [0, "Å"], [0, "Æ"], [0, "Ç"], [0, "È"], [0, "É"], [0, "Ê"], [0, "Ë"], [0, "Ì"], [0, "Í"], [0, "Î"], [0, "Ï"], [0, "Ð"], [0, "Ñ"], [0, "Ò"], [0, "Ó"], [0, "Ô"], [0, "Õ"], [0, "Ö"], [0, "×"], [0, "Ø"], [0, "Ù"], [0, "Ú"], [0, "Û"], [0, "Ü"], [0, "Ý"], [0, "Þ"], [0, "ß"], [0, "à"], [0, "á"], [0, "â"], [0, "ã"], [0, "ä"], [0, "å"], [0, "æ"], [0, "ç"], [0, "è"], [0, "é"], [0, "ê"], [0, "ë"], [0, "ì"], [0, "í"], [0, "î"], [0, "ï"], [0, "ð"], [0, "ñ"], [0, "ò"], [0, "ó"], [0, "ô"], [0, "õ"], [0, "ö"], [0, "÷"], [0, "ø"], [0, "ù"], [0, "ú"], [0, "û"], [0, "ü"], [0, "ý"], [0, "þ"], [0, "ÿ"], [0, "Ā"], [0, "ā"], [0, "Ă"], [0, "ă"], [0, "Ą"], [0, "ą"], [0, "Ć"], [0, "ć"], [0, "Ĉ"], [0, "ĉ"], [0, "Ċ"], [0, "ċ"], [0, "Č"], [0, "č"], [0, "Ď"], [0, "ď"], [0, "Đ"], [0, "đ"], [0, "Ē"], [0, "ē"], [2, "Ė"], [0, "ė"], [0, "Ę"], [0, "ę"], [0, "Ě"], [0, "ě"], [0, "Ĝ"], [0, "ĝ"], [0, "Ğ"], [0, "ğ"], [0, "Ġ"], [0, "ġ"], [0, "Ģ"], [1, "Ĥ"], [0, "ĥ"], [0, "Ħ"], [0, "ħ"], [0, "Ĩ"], [0, "ĩ"], [0, "Ī"], [0, "ī"], [2, "Į"], [0, "į"], [0, "İ"], [0, "ı"], [0, "IJ"], [0, "ij"], [0, "Ĵ"], [0, "ĵ"], [0, "Ķ"], [0, "ķ"], [0, "ĸ"], [0, "Ĺ"], [0, "ĺ"], [0, "Ļ"], [0, "ļ"], [0, "Ľ"], [0, "ľ"], [0, "Ŀ"], [0, "ŀ"], [0, "Ł"], [0, "ł"], [0, "Ń"], [0, "ń"], [0, "Ņ"], [0, "ņ"], [0, "Ň"], [0, "ň"], [0, "ʼn"], [0, "Ŋ"], [0, "ŋ"], [0, "Ō"], [0, "ō"], [2, "Ő"], [0, "ő"], [0, "Œ"], [0, "œ"], [0, "Ŕ"], [0, "ŕ"], [0, "Ŗ"], [0, "ŗ"], [0, "Ř"], [0, "ř"], [0, "Ś"], [0, "ś"], [0, "Ŝ"], [0, "ŝ"], [0, "Ş"], [0, "ş"], [0, "Š"], [0, "š"], [0, "Ţ"], [0, "ţ"], [0, "Ť"], [0, "ť"], [0, "Ŧ"], [0, "ŧ"], [0, "Ũ"], [0, "ũ"], [0, "Ū"], [0, "ū"], [0, "Ŭ"], [0, "ŭ"], [0, "Ů"], [0, "ů"], [0, "Ű"], [0, "ű"], [0, "Ų"], [0, "ų"], [0, "Ŵ"], [0, "ŵ"], [0, "Ŷ"], [0, "ŷ"], [0, "Ÿ"], [0, "Ź"], [0, "ź"], [0, "Ż"], [0, "ż"], [0, "Ž"], [0, "ž"], [19, "ƒ"], [34, "Ƶ"], [63, "ǵ"], [65, "ȷ"], [142, "ˆ"], [0, "ˇ"], [16, "˘"], [0, "˙"], [0, "˚"], [0, "˛"], [0, "˜"], [0, "˝"], [51, "̑"], [127, "Α"], [0, "Β"], [0, "Γ"], [0, "Δ"], [0, "Ε"], [0, "Ζ"], [0, "Η"], [0, "Θ"], [0, "Ι"], [0, "Κ"], [0, "Λ"], [0, "Μ"], [0, "Ν"], [0, "Ξ"], [0, "Ο"], [0, "Π"], [0, "Ρ"], [1, "Σ"], [0, "Τ"], [0, "Υ"], [0, "Φ"], [0, "Χ"], [0, "Ψ"], [0, "Ω"], [7, "α"], [0, "β"], [0, "γ"], [0, "δ"], [0, "ε"], [0, "ζ"], [0, "η"], [0, "θ"], [0, "ι"], [0, "κ"], [0, "λ"], [0, "μ"], [0, "ν"], [0, "ξ"], [0, "ο"], [0, "π"], [0, "ρ"], [0, "ς"], [0, "σ"], [0, "τ"], [0, "υ"], [0, "φ"], [0, "χ"], [0, "ψ"], [0, "ω"], [7, "ϑ"], [0, "ϒ"], [2, "ϕ"], [0, "ϖ"], [5, "Ϝ"], [0, "ϝ"], [18, "ϰ"], [0, "ϱ"], [3, "ϵ"], [0, "϶"], [10, "Ё"], [0, "Ђ"], [0, "Ѓ"], [0, "Є"], [0, "Ѕ"], [0, "І"], [0, "Ї"], [0, "Ј"], [0, "Љ"], [0, "Њ"], [0, "Ћ"], [0, "Ќ"], [1, "Ў"], [0, "Џ"], [0, "А"], [0, "Б"], [0, "В"], [0, "Г"], [0, "Д"], [0, "Е"], [0, "Ж"], [0, "З"], [0, "И"], [0, "Й"], [0, "К"], [0, "Л"], [0, "М"], [0, "Н"], [0, "О"], [0, "П"], [0, "Р"], [0, "С"], [0, "Т"], [0, "У"], [0, "Ф"], [0, "Х"], [0, "Ц"], [0, "Ч"], [0, "Ш"], [0, "Щ"], [0, "Ъ"], [0, "Ы"], [0, "Ь"], [0, "Э"], [0, "Ю"], [0, "Я"], [0, "а"], [0, "б"], [0, "в"], [0, "г"], [0, "д"], [0, "е"], [0, "ж"], [0, "з"], [0, "и"], [0, "й"], [0, "к"], [0, "л"], [0, "м"], [0, "н"], [0, "о"], [0, "п"], [0, "р"], [0, "с"], [0, "т"], [0, "у"], [0, "ф"], [0, "х"], [0, "ц"], [0, "ч"], [0, "ш"], [0, "щ"], [0, "ъ"], [0, "ы"], [0, "ь"], [0, "э"], [0, "ю"], [0, "я"], [1, "ё"], [0, "ђ"], [0, "ѓ"], [0, "є"], [0, "ѕ"], [0, "і"], [0, "ї"], [0, "ј"], [0, "љ"], [0, "њ"], [0, "ћ"], [0, "ќ"], [1, "ў"], [0, "џ"], [7074, " "], [0, " "], [0, " "], [0, " "], [1, " "], [0, " "], [0, " "], [0, " "], [0, "​"], [0, "‌"], [0, "‍"], [0, "‎"], [0, "‏"], [0, "‐"], [2, "–"], [0, "—"], [0, "―"], [0, "‖"], [1, "‘"], [0, "’"], [0, "‚"], [1, "“"], [0, "”"], [0, "„"], [1, "†"], [0, "‡"], [0, "•"], [2, "‥"], [0, "…"], [9, "‰"], [0, "‱"], [0, "′"], [0, "″"], [0, "‴"], [0, "‵"], [3, "‹"], [0, "›"], [3, "‾"], [2, "⁁"], [1, "⁃"], [0, "⁄"], [10, "⁏"], [7, "⁗"], [7, { v: " ", n: 8202, o: "  " }], [0, "⁠"], [0, "⁡"], [0, "⁢"], [0, "⁣"], [72, "€"], [46, "⃛"], [0, "⃜"], [37, "ℂ"], [2, "℅"], [4, "ℊ"], [0, "ℋ"], [0, "ℌ"], [0, "ℍ"], [0, "ℎ"], [0, "ℏ"], [0, "ℐ"], [0, "ℑ"], [0, "ℒ"], [0, "ℓ"], [1, "ℕ"], [0, "№"], [0, "℗"], [0, "℘"], [0, "ℙ"], [0, "ℚ"], [0, "ℛ"], [0, "ℜ"], [0, "ℝ"], [0, "℞"], [3, "™"], [1, "ℤ"], [2, "℧"], [0, "ℨ"], [0, "℩"], [2, "ℬ"], [0, "ℭ"], [1, "ℯ"], [0, "ℰ"], [0, "ℱ"], [1, "ℳ"], [0, "ℴ"], [0, "ℵ"], [0, "ℶ"], [0, "ℷ"], [0, "ℸ"], [12, "ⅅ"], [0, "ⅆ"], [0, "ⅇ"], [0, "ⅈ"], [10, "⅓"], [0, "⅔"], [0, "⅕"], [0, "⅖"], [0, "⅗"], [0, "⅘"], [0, "⅙"], [0, "⅚"], [0, "⅛"], [0, "⅜"], [0, "⅝"], [0, "⅞"], [49, "←"], [0, "↑"], [0, "→"], [0, "↓"], [0, "↔"], [0, "↕"], [0, "↖"], [0, "↗"], [0, "↘"], [0, "↙"], [0, "↚"], [0, "↛"], [1, { v: "↝", n: 824, o: "↝̸" }], [0, "↞"], [0, "↟"], [0, "↠"], [0, "↡"], [0, "↢"], [0, "↣"], [0, "↤"], [0, "↥"], [0, "↦"], [0, "↧"], [1, "↩"], [0, "↪"], [0, "↫"], [0, "↬"], [0, "↭"], [0, "↮"], [1, "↰"], [0, "↱"], [0, "↲"], [0, "↳"], [1, "↵"], [0, "↶"], [0, "↷"], [2, "↺"], [0, "↻"], [0, "↼"], [0, "↽"], [0, "↾"], [0, "↿"], [0, "⇀"], [0, "⇁"], [0, "⇂"], [0, "⇃"], [0, "⇄"], [0, "⇅"], [0, "⇆"], [0, "⇇"], [0, "⇈"], [0, "⇉"], [0, "⇊"], [0, "⇋"], [0, "⇌"], [0, "⇍"], [0, "⇎"], [0, "⇏"], [0, "⇐"], [0, "⇑"], [0, "⇒"], [0, "⇓"], [0, "⇔"], [0, "⇕"], [0, "⇖"], [0, "⇗"], [0, "⇘"], [0, "⇙"], [0, "⇚"], [0, "⇛"], [1, "⇝"], [6, "⇤"], [0, "⇥"], [15, "⇵"], [7, "⇽"], [0, "⇾"], [0, "⇿"], [0, "∀"], [0, "∁"], [0, { v: "∂", n: 824, o: "∂̸" }], [0, "∃"], [0, "∄"], [0, "∅"], [1, "∇"], [0, "∈"], [0, "∉"], [1, "∋"], [0, "∌"], [2, "∏"], [0, "∐"], [0, "∑"], [0, "−"], [0, "∓"], [0, "∔"], [1, "∖"], [0, "∗"], [0, "∘"], [1, "√"], [2, "∝"], [0, "∞"], [0, "∟"], [0, { v: "∠", n: 8402, o: "∠⃒" }], [0, "∡"], [0, "∢"], [0, "∣"], [0, "∤"], [0, "∥"], [0, "∦"], [0, "∧"], [0, "∨"], [0, { v: "∩", n: 65024, o: "∩︀" }], [0, { v: "∪", n: 65024, o: "∪︀" }], [0, "∫"], [0, "∬"], [0, "∭"], [0, "∮"], [0, "∯"], [0, "∰"], [0, "∱"], [0, "∲"], [0, "∳"], [0, "∴"], [0, "∵"], [0, "∶"], [0, "∷"], [0, "∸"], [1, "∺"], [0, "∻"], [0, { v: "∼", n: 8402, o: "∼⃒" }], [0, { v: "∽", n: 817, o: "∽̱" }], [0, { v: "∾", n: 819, o: "∾̳" }], [0, "∿"], [0, "≀"], [0, "≁"], [0, { v: "≂", n: 824, o: "≂̸" }], [0, "≃"], [0, "≄"], [0, "≅"], [0, "≆"], [0, "≇"], [0, "≈"], [0, "≉"], [0, "≊"], [0, { v: "≋", n: 824, o: "≋̸" }], [0, "≌"], [0, { v: "≍", n: 8402, o: "≍⃒" }], [0, { v: "≎", n: 824, o: "≎̸" }], [0, { v: "≏", n: 824, o: "≏̸" }], [0, { v: "≐", n: 824, o: "≐̸" }], [0, "≑"], [0, "≒"], [0, "≓"], [0, "≔"], [0, "≕"], [0, "≖"], [0, "≗"], [1, "≙"], [0, "≚"], [1, "≜"], [2, "≟"], [0, "≠"], [0, { v: "≡", n: 8421, o: "≡⃥" }], [0, "≢"], [1, { v: "≤", n: 8402, o: "≤⃒" }], [0, { v: "≥", n: 8402, o: "≥⃒" }], [0, { v: "≦", n: 824, o: "≦̸" }], [0, { v: "≧", n: 824, o: "≧̸" }], [0, { v: "≨", n: 65024, o: "≨︀" }], [0, { v: "≩", n: 65024, o: "≩︀" }], [0, { v: "≪", n: new Map(/* @__PURE__ */ restoreDiff([[824, "≪̸"], [7577, "≪⃒"]])) }], [0, { v: "≫", n: new Map(/* @__PURE__ */ restoreDiff([[824, "≫̸"], [7577, "≫⃒"]])) }], [0, "≬"], [0, "≭"], [0, "≮"], [0, "≯"], [0, "≰"], [0, "≱"], [0, "≲"], [0, "≳"], [0, "≴"], [0, "≵"], [0, "≶"], [0, "≷"], [0, "≸"], [0, "≹"], [0, "≺"], [0, "≻"], [0, "≼"], [0, "≽"], [0, "≾"], [0, { v: "≿", n: 824, o: "≿̸" }], [0, "⊀"], [0, "⊁"], [0, { v: "⊂", n: 8402, o: "⊂⃒" }], [0, { v: "⊃", n: 8402, o: "⊃⃒" }], [0, "⊄"], [0, "⊅"], [0, "⊆"], [0, "⊇"], [0, "⊈"], [0, "⊉"], [0, { v: "⊊", n: 65024, o: "⊊︀" }], [0, { v: "⊋", n: 65024, o: "⊋︀" }], [1, "⊍"], [0, "⊎"], [0, { v: "⊏", n: 824, o: "⊏̸" }], [0, { v: "⊐", n: 824, o: "⊐̸" }], [0, "⊑"], [0, "⊒"], [0, { v: "⊓", n: 65024, o: "⊓︀" }], [0, { v: "⊔", n: 65024, o: "⊔︀" }], [0, "⊕"], [0, "⊖"], [0, "⊗"], [0, "⊘"], [0, "⊙"], [0, "⊚"], [0, "⊛"], [1, "⊝"], [0, "⊞"], [0, "⊟"], [0, "⊠"], [0, "⊡"], [0, "⊢"], [0, "⊣"], [0, "⊤"], [0, "⊥"], [1, "⊧"], [0, "⊨"], [0, "⊩"], [0, "⊪"], [0, "⊫"], [0, "⊬"], [0, "⊭"], [0, "⊮"], [0, "⊯"], [0, "⊰"], [1, "⊲"], [0, "⊳"], [0, { v: "⊴", n: 8402, o: "⊴⃒" }], [0, { v: "⊵", n: 8402, o: "⊵⃒" }], [0, "⊶"], [0, "⊷"], [0, "⊸"], [0, "⊹"], [0, "⊺"], [0, "⊻"], [1, "⊽"], [0, "⊾"], [0, "⊿"], [0, "⋀"], [0, "⋁"], [0, "⋂"], [0, "⋃"], [0, "⋄"], [0, "⋅"], [0, "⋆"], [0, "⋇"], [0, "⋈"], [0, "⋉"], [0, "⋊"], [0, "⋋"], [0, "⋌"], [0, "⋍"], [0, "⋎"], [0, "⋏"], [0, "⋐"], [0, "⋑"], [0, "⋒"], [0, "⋓"], [0, "⋔"], [0, "⋕"], [0, "⋖"], [0, "⋗"], [0, { v: "⋘", n: 824, o: "⋘̸" }], [0, { v: "⋙", n: 824, o: "⋙̸" }], [0, { v: "⋚", n: 65024, o: "⋚︀" }], [0, { v: "⋛", n: 65024, o: "⋛︀" }], [2, "⋞"], [0, "⋟"], [0, "⋠"], [0, "⋡"], [0, "⋢"], [0, "⋣"], [2, "⋦"], [0, "⋧"], [0, "⋨"], [0, "⋩"], [0, "⋪"], [0, "⋫"], [0, "⋬"], [0, "⋭"], [0, "⋮"], [0, "⋯"], [0, "⋰"], [0, "⋱"], [0, "⋲"], [0, "⋳"], [0, "⋴"], [0, { v: "⋵", n: 824, o: "⋵̸" }], [0, "⋶"], [0, "⋷"], [1, { v: "⋹", n: 824, o: "⋹̸" }], [0, "⋺"], [0, "⋻"], [0, "⋼"], [0, "⋽"], [0, "⋾"], [6, "⌅"], [0, "⌆"], [1, "⌈"], [0, "⌉"], [0, "⌊"], [0, "⌋"], [0, "⌌"], [0, "⌍"], [0, "⌎"], [0, "⌏"], [0, "⌐"], [1, "⌒"], [0, "⌓"], [1, "⌕"], [0, "⌖"], [5, "⌜"], [0, "⌝"], [0, "⌞"], [0, "⌟"], [2, "⌢"], [0, "⌣"], [9, "⌭"], [0, "⌮"], [7, "⌶"], [6, "⌽"], [1, "⌿"], [60, "⍼"], [51, "⎰"], [0, "⎱"], [2, "⎴"], [0, "⎵"], [0, "⎶"], [37, "⏜"], [0, "⏝"], [0, "⏞"], [0, "⏟"], [2, "⏢"], [4, "⏧"], [59, "␣"], [164, "Ⓢ"], [55, "─"], [1, "│"], [9, "┌"], [3, "┐"], [3, "└"], [3, "┘"], [3, "├"], [7, "┤"], [7, "┬"], [7, "┴"], [7, "┼"], [19, "═"], [0, "║"], [0, "╒"], [0, "╓"], [0, "╔"], [0, "╕"], [0, "╖"], [0, "╗"], [0, "╘"], [0, "╙"], [0, "╚"], [0, "╛"], [0, "╜"], [0, "╝"], [0, "╞"], [0, "╟"], [0, "╠"], [0, "╡"], [0, "╢"], [0, "╣"], [0, "╤"], [0, "╥"], [0, "╦"], [0, "╧"], [0, "╨"], [0, "╩"], [0, "╪"], [0, "╫"], [0, "╬"], [19, "▀"], [3, "▄"], [3, "█"], [8, "░"], [0, "▒"], [0, "▓"], [13, "□"], [8, "▪"], [0, "▫"], [1, "▭"], [0, "▮"], [2, "▱"], [1, "△"], [0, "▴"], [0, "▵"], [2, "▸"], [0, "▹"], [3, "▽"], [0, "▾"], [0, "▿"], [2, "◂"], [0, "◃"], [6, "◊"], [0, "○"], [32, "◬"], [2, "◯"], [8, "◸"], [0, "◹"], [0, "◺"], [0, "◻"], [0, "◼"], [8, "★"], [0, "☆"], [7, "☎"], [49, "♀"], [1, "♂"], [29, "♠"], [2, "♣"], [1, "♥"], [0, "♦"], [3, "♪"], [2, "♭"], [0, "♮"], [0, "♯"], [163, "✓"], [3, "✗"], [8, "✠"], [21, "✶"], [33, "❘"], [25, "❲"], [0, "❳"], [84, "⟈"], [0, "⟉"], [28, "⟦"], [0, "⟧"], [0, "⟨"], [0, "⟩"], [0, "⟪"], [0, "⟫"], [0, "⟬"], [0, "⟭"], [7, "⟵"], [0, "⟶"], [0, "⟷"], [0, "⟸"], [0, "⟹"], [0, "⟺"], [1, "⟼"], [2, "⟿"], [258, "⤂"], [0, "⤃"], [0, "⤄"], [0, "⤅"], [6, "⤌"], [0, "⤍"], [0, "⤎"], [0, "⤏"], [0, "⤐"], [0, "⤑"], [0, "⤒"], [0, "⤓"], [2, "⤖"], [2, "⤙"], [0, "⤚"], [0, "⤛"], [0, "⤜"], [0, "⤝"], [0, "⤞"], [0, "⤟"], [0, "⤠"], [2, "⤣"], [0, "⤤"], [0, "⤥"], [0, "⤦"], [0, "⤧"], [0, "⤨"], [0, "⤩"], [0, "⤪"], [8, { v: "⤳", n: 824, o: "⤳̸" }], [1, "⤵"], [0, "⤶"], [0, "⤷"], [0, "⤸"], [0, "⤹"], [2, "⤼"], [0, "⤽"], [7, "⥅"], [2, "⥈"], [0, "⥉"], [0, "⥊"], [0, "⥋"], [2, "⥎"], [0, "⥏"], [0, "⥐"], [0, "⥑"], [0, "⥒"], [0, "⥓"], [0, "⥔"], [0, "⥕"], [0, "⥖"], [0, "⥗"], [0, "⥘"], [0, "⥙"], [0, "⥚"], [0, "⥛"], [0, "⥜"], [0, "⥝"], [0, "⥞"], [0, "⥟"], [0, "⥠"], [0, "⥡"], [0, "⥢"], [0, "⥣"], [0, "⥤"], [0, "⥥"], [0, "⥦"], [0, "⥧"], [0, "⥨"], [0, "⥩"], [0, "⥪"], [0, "⥫"], [0, "⥬"], [0, "⥭"], [0, "⥮"], [0, "⥯"], [0, "⥰"], [0, "⥱"], [0, "⥲"], [0, "⥳"], [0, "⥴"], [0, "⥵"], [0, "⥶"], [1, "⥸"], [0, "⥹"], [1, "⥻"], [0, "⥼"], [0, "⥽"], [0, "⥾"], [0, "⥿"], [5, "⦅"], [0, "⦆"], [4, "⦋"], [0, "⦌"], [0, "⦍"], [0, "⦎"], [0, "⦏"], [0, "⦐"], [0, "⦑"], [0, "⦒"], [0, "⦓"], [0, "⦔"], [0, "⦕"], [0, "⦖"], [3, "⦚"], [1, "⦜"], [0, "⦝"], [6, "⦤"], [0, "⦥"], [0, "⦦"], [0, "⦧"], [0, "⦨"], [0, "⦩"], [0, "⦪"], [0, "⦫"], [0, "⦬"], [0, "⦭"], [0, "⦮"], [0, "⦯"], [0, "⦰"], [0, "⦱"], [0, "⦲"], [0, "⦳"], [0, "⦴"], [0, "⦵"], [0, "⦶"], [0, "⦷"], [1, "⦹"], [1, "⦻"], [0, "⦼"], [1, "⦾"], [0, "⦿"], [0, "⧀"], [0, "⧁"], [0, "⧂"], [0, "⧃"], [0, "⧄"], [0, "⧅"], [3, "⧉"], [3, "⧍"], [0, "⧎"], [0, { v: "⧏", n: 824, o: "⧏̸" }], [0, { v: "⧐", n: 824, o: "⧐̸" }], [11, "⧜"], [0, "⧝"], [0, "⧞"], [4, "⧣"], [0, "⧤"], [0, "⧥"], [5, "⧫"], [8, "⧴"], [1, "⧶"], [9, "⨀"], [0, "⨁"], [0, "⨂"], [1, "⨄"], [1, "⨆"], [5, "⨌"], [0, "⨍"], [2, "⨐"], [0, "⨑"], [0, "⨒"], [0, "⨓"], [0, "⨔"], [0, "⨕"], [0, "⨖"], [0, "⨗"], [10, "⨢"], [0, "⨣"], [0, "⨤"], [0, "⨥"], [0, "⨦"], [0, "⨧"], [1, "⨩"], [0, "⨪"], [2, "⨭"], [0, "⨮"], [0, "⨯"], [0, "⨰"], [0, "⨱"], [1, "⨳"], [0, "⨴"], [0, "⨵"], [0, "⨶"], [0, "⨷"], [0, "⨸"], [0, "⨹"], [0, "⨺"], [0, "⨻"], [0, "⨼"], [2, "⨿"], [0, "⩀"], [1, "⩂"], [0, "⩃"], [0, "⩄"], [0, "⩅"], [0, "⩆"], [0, "⩇"], [0, "⩈"], [0, "⩉"], [0, "⩊"], [0, "⩋"], [0, "⩌"], [0, "⩍"], [2, "⩐"], [2, "⩓"], [0, "⩔"], [0, "⩕"], [0, "⩖"], [0, "⩗"], [0, "⩘"], [1, "⩚"], [0, "⩛"], [0, "⩜"], [0, "⩝"], [1, "⩟"], [6, "⩦"], [3, "⩪"], [2, { v: "⩭", n: 824, o: "⩭̸" }], [0, "⩮"], [0, "⩯"], [0, { v: "⩰", n: 824, o: "⩰̸" }], [0, "⩱"], [0, "⩲"], [0, "⩳"], [0, "⩴"], [0, "⩵"], [1, "⩷"], [0, "⩸"], [0, "⩹"], [0, "⩺"], [0, "⩻"], [0, "⩼"], [0, { v: "⩽", n: 824, o: "⩽̸" }], [0, { v: "⩾", n: 824, o: "⩾̸" }], [0, "⩿"], [0, "⪀"], [0, "⪁"], [0, "⪂"], [0, "⪃"], [0, "⪄"], [0, "⪅"], [0, "⪆"], [0, "⪇"], [0, "⪈"], [0, "⪉"], [0, "⪊"], [0, "⪋"], [0, "⪌"], [0, "⪍"], [0, "⪎"], [0, "⪏"], [0, "⪐"], [0, "⪑"], [0, "⪒"], [0, "⪓"], [0, "⪔"], [0, "⪕"], [0, "⪖"], [0, "⪗"], [0, "⪘"], [0, "⪙"], [0, "⪚"], [2, "⪝"], [0, "⪞"], [0, "⪟"], [0, "⪠"], [0, { v: "⪡", n: 824, o: "⪡̸" }], [0, { v: "⪢", n: 824, o: "⪢̸" }], [1, "⪤"], [0, "⪥"], [0, "⪦"], [0, "⪧"], [0, "⪨"], [0, "⪩"], [0, "⪪"], [0, "⪫"], [0, { v: "⪬", n: 65024, o: "⪬︀" }], [0, { v: "⪭", n: 65024, o: "⪭︀" }], [0, "⪮"], [0, { v: "⪯", n: 824, o: "⪯̸" }], [0, { v: "⪰", n: 824, o: "⪰̸" }], [2, "⪳"], [0, "⪴"], [0, "⪵"], [0, "⪶"], [0, "⪷"], [0, "⪸"], [0, "⪹"], [0, "⪺"], [0, "⪻"], [0, "⪼"], [0, "⪽"], [0, "⪾"], [0, "⪿"], [0, "⫀"], [0, "⫁"], [0, "⫂"], [0, "⫃"], [0, "⫄"], [0, { v: "⫅", n: 824, o: "⫅̸" }], [0, { v: "⫆", n: 824, o: "⫆̸" }], [0, "⫇"], [0, "⫈"], [2, { v: "⫋", n: 65024, o: "⫋︀" }], [0, { v: "⫌", n: 65024, o: "⫌︀" }], [2, "⫏"], [0, "⫐"], [0, "⫑"], [0, "⫒"], [0, "⫓"], [0, "⫔"], [0, "⫕"], [0, "⫖"], [0, "⫗"], [0, "⫘"], [0, "⫙"], [0, "⫚"], [0, "⫛"], [8, "⫤"], [1, "⫦"], [0, "⫧"], [0, "⫨"], [0, "⫩"], [1, "⫫"], [0, "⫬"], [0, "⫭"], [0, "⫮"], [0, "⫯"], [0, "⫰"], [0, "⫱"], [0, "⫲"], [0, "⫳"], [9, { v: "⫽", n: 8421, o: "⫽⃥" }], [44343, { n: new Map(/* @__PURE__ */ restoreDiff([[56476, "𝒜"], [1, "𝒞"], [0, "𝒟"], [2, "𝒢"], [2, "𝒥"], [0, "𝒦"], [2, "𝒩"], [0, "𝒪"], [0, "𝒫"], [0, "𝒬"], [1, "𝒮"], [0, "𝒯"], [0, "𝒰"], [0, "𝒱"], [0, "𝒲"], [0, "𝒳"], [0, "𝒴"], [0, "𝒵"], [0, "𝒶"], [0, "𝒷"], [0, "𝒸"], [0, "𝒹"], [1, "𝒻"], [1, "𝒽"], [0, "𝒾"], [0, "𝒿"], [0, "𝓀"], [0, "𝓁"], [0, "𝓂"], [0, "𝓃"], [1, "𝓅"], [0, "𝓆"], [0, "𝓇"], [0, "𝓈"], [0, "𝓉"], [0, "𝓊"], [0, "𝓋"], [0, "𝓌"], [0, "𝓍"], [0, "𝓎"], [0, "𝓏"], [52, "𝔄"], [0, "𝔅"], [1, "𝔇"], [0, "𝔈"], [0, "𝔉"], [0, "𝔊"], [2, "𝔍"], [0, "𝔎"], [0, "𝔏"], [0, "𝔐"], [0, "𝔑"], [0, "𝔒"], [0, "𝔓"], [0, "𝔔"], [1, "𝔖"], [0, "𝔗"], [0, "𝔘"], [0, "𝔙"], [0, "𝔚"], [0, "𝔛"], [0, "𝔜"], [1, "𝔞"], [0, "𝔟"], [0, "𝔠"], [0, "𝔡"], [0, "𝔢"], [0, "𝔣"], [0, "𝔤"], [0, "𝔥"], [0, "𝔦"], [0, "𝔧"], [0, "𝔨"], [0, "𝔩"], [0, "𝔪"], [0, "𝔫"], [0, "𝔬"], [0, "𝔭"], [0, "𝔮"], [0, "𝔯"], [0, "𝔰"], [0, "𝔱"], [0, "𝔲"], [0, "𝔳"], [0, "𝔴"], [0, "𝔵"], [0, "𝔶"], [0, "𝔷"], [0, "𝔸"], [0, "𝔹"], [1, "𝔻"], [0, "𝔼"], [0, "𝔽"], [0, "𝔾"], [1, "𝕀"], [0, "𝕁"], [0, "𝕂"], [0, "𝕃"], [0, "𝕄"], [1, "𝕆"], [3, "𝕊"], [0, "𝕋"], [0, "𝕌"], [0, "𝕍"], [0, "𝕎"], [0, "𝕏"], [0, "𝕐"], [1, "𝕒"], [0, "𝕓"], [0, "𝕔"], [0, "𝕕"], [0, "𝕖"], [0, "𝕗"], [0, "𝕘"], [0, "𝕙"], [0, "𝕚"], [0, "𝕛"], [0, "𝕜"], [0, "𝕝"], [0, "𝕞"], [0, "𝕟"], [0, "𝕠"], [0, "𝕡"], [0, "𝕢"], [0, "𝕣"], [0, "𝕤"], [0, "𝕥"], [0, "𝕦"], [0, "𝕧"], [0, "𝕨"], [0, "𝕩"], [0, "𝕪"], [0, "𝕫"]])) }], [8906, "ff"], [0, "fi"], [0, "fl"], [0, "ffi"], [0, "ffl"]])); } }); // node_modules/entities/lib/escape.js var require_escape = __commonJS({ "node_modules/entities/lib/escape.js"(exports2) { "use strict"; Object.defineProperty(exports2, "__esModule", { value: true }); exports2.escapeText = exports2.escapeAttribute = exports2.escapeUTF8 = exports2.escape = exports2.encodeXML = exports2.getCodePoint = exports2.xmlReplacer = void 0; exports2.xmlReplacer = /["&'<>$\x80-\uFFFF]/g; var xmlCodeMap = /* @__PURE__ */ new Map([ [34, """], [38, "&"], [39, "'"], [60, "<"], [62, ">"] ]); exports2.getCodePoint = // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition String.prototype.codePointAt != null ? function(str, index) { return str.codePointAt(index); } : ( // http://mathiasbynens.be/notes/javascript-encoding#surrogate-formulae function(c, index) { return (c.charCodeAt(index) & 64512) === 55296 ? (c.charCodeAt(index) - 55296) * 1024 + c.charCodeAt(index + 1) - 56320 + 65536 : c.charCodeAt(index); } ); function encodeXML(str) { var ret = ""; var lastIdx = 0; var match; while ((match = exports2.xmlReplacer.exec(str)) !== null) { var i = match.index; var char = str.charCodeAt(i); var next = xmlCodeMap.get(char); if (next !== void 0) { ret += str.substring(lastIdx, i) + next; lastIdx = i + 1; } else { ret += "".concat(str.substring(lastIdx, i), "&#x").concat((0, exports2.getCodePoint)(str, i).toString(16), ";"); lastIdx = exports2.xmlReplacer.lastIndex += Number((char & 64512) === 55296); } } return ret + str.substr(lastIdx); } exports2.encodeXML = encodeXML; exports2.escape = encodeXML; function getEscaper(regex, map) { return function escape(data) { var match; var lastIdx = 0; var result = ""; while (match = regex.exec(data)) { if (lastIdx !== match.index) { result += data.substring(lastIdx, match.index); } result += map.get(match[0].charCodeAt(0)); lastIdx = match.index + 1; } return result + data.substring(lastIdx); }; } exports2.escapeUTF8 = getEscaper(/[&<>'"]/g, xmlCodeMap); exports2.escapeAttribute = getEscaper(/["&\u00A0]/g, /* @__PURE__ */ new Map([ [34, """], [38, "&"], [160, " "] ])); exports2.escapeText = getEscaper(/[&<>\u00A0]/g, /* @__PURE__ */ new Map([ [38, "&"], [60, "<"], [62, ">"], [160, " "] ])); } }); // node_modules/entities/lib/encode.js var require_encode = __commonJS({ "node_modules/entities/lib/encode.js"(exports2) { "use strict"; var __importDefault = exports2 && exports2.__importDefault || function(mod) { return mod && mod.__esModule ? mod : { "default": mod }; }; Object.defineProperty(exports2, "__esModule", { value: true }); exports2.encodeNonAsciiHTML = exports2.encodeHTML = void 0; var encode_html_js_1 = __importDefault(require_encode_html()); var escape_js_1 = require_escape(); var htmlReplacer = /[\t\n!-,./:-@[-`\f{-}$\x80-\uFFFF]/g; function encodeHTML(data) { return encodeHTMLTrieRe(htmlReplacer, data); } exports2.encodeHTML = encodeHTML; function encodeNonAsciiHTML(data) { return encodeHTMLTrieRe(escape_js_1.xmlReplacer, data); } exports2.encodeNonAsciiHTML = encodeNonAsciiHTML; function encodeHTMLTrieRe(regExp, str) { var ret = ""; var lastIdx = 0; var match; while ((match = regExp.exec(str)) !== null) { var i = match.index; ret += str.substring(lastIdx, i); var char = str.charCodeAt(i); var next = encode_html_js_1.default.get(char); if (typeof next === "object") { if (i + 1 < str.length) { var nextChar = str.charCodeAt(i + 1); var value = typeof next.n === "number" ? next.n === nextChar ? next.o : void 0 : next.n.get(nextChar); if (value !== void 0) { ret += value; lastIdx = regExp.lastIndex += 1; continue; } } next = next.v; } if (next !== void 0) { ret += next; lastIdx = i + 1; } else { var cp = (0, escape_js_1.getCodePoint)(str, i); ret += "&#x".concat(cp.toString(16), ";"); lastIdx = regExp.lastIndex += Number(cp !== char); } } return ret + str.substr(lastIdx); } } }); // node_modules/entities/lib/index.js var require_lib4 = __commonJS({ "node_modules/entities/lib/index.js"(exports2) { "use strict"; Object.defineProperty(exports2, "__esModule", { value: true }); exports2.decodeXMLStrict = exports2.decodeHTML5Strict = exports2.decodeHTML4Strict = exports2.decodeHTML5 = exports2.decodeHTML4 = exports2.decodeHTMLAttribute = exports2.decodeHTMLStrict = exports2.decodeHTML = exports2.decodeXML = exports2.DecodingMode = exports2.EntityDecoder = exports2.encodeHTML5 = exports2.encodeHTML4 = exports2.encodeNonAsciiHTML = exports2.encodeHTML = exports2.escapeText = exports2.escapeAttribute = exports2.escapeUTF8 = exports2.escape = exports2.encodeXML = exports2.encode = exports2.decodeStrict = exports2.decode = exports2.EncodingMode = exports2.EntityLevel = void 0; var decode_js_1 = require_decode(); var encode_js_1 = require_encode(); var escape_js_1 = require_escape(); var EntityLevel; (function(EntityLevel2) { EntityLevel2[EntityLevel2["XML"] = 0] = "XML"; EntityLevel2[EntityLevel2["HTML"] = 1] = "HTML"; })(EntityLevel = exports2.EntityLevel || (exports2.EntityLevel = {})); var EncodingMode; (function(EncodingMode2) { EncodingMode2[EncodingMode2["UTF8"] = 0] = "UTF8"; EncodingMode2[EncodingMode2["ASCII"] = 1] = "ASCII"; EncodingMode2[EncodingMode2["Extensive"] = 2] = "Extensive"; EncodingMode2[EncodingMode2["Attribute"] = 3] = "Attribute"; EncodingMode2[EncodingMode2["Text"] = 4] = "Text"; })(EncodingMode = exports2.EncodingMode || (exports2.EncodingMode = {})); function decode(data, options) { if (options === void 0) { options = EntityLevel.XML; } var level = typeof options === "number" ? options : options.level; if (level === EntityLevel.HTML) { var mode = typeof options === "object" ? options.mode : void 0; return (0, decode_js_1.decodeHTML)(data, mode); } return (0, decode_js_1.decodeXML)(data); } exports2.decode = decode; function decodeStrict(data, options) { var _a; if (options === void 0) { options = EntityLevel.XML; } var opts = typeof options === "number" ? { level: options } : options; (_a = opts.mode) !== null && _a !== void 0 ? _a : opts.mode = decode_js_1.DecodingMode.Strict; return decode(data, opts); } exports2.decodeStrict = decodeStrict; function encode(data, options) { if (options === void 0) { options = EntityLevel.XML; } var opts = typeof options === "number" ? { level: options } : options; if (opts.mode === EncodingMode.UTF8) return (0, escape_js_1.escapeUTF8)(data); if (opts.mode === EncodingMode.Attribute) return (0, escape_js_1.escapeAttribute)(data); if (opts.mode === EncodingMode.Text) return (0, escape_js_1.escapeText)(data); if (opts.level === EntityLevel.HTML) { if (opts.mode === EncodingMode.ASCII) { return (0, encode_js_1.encodeNonAsciiHTML)(data); } return (0, encode_js_1.encodeHTML)(data); } return (0, escape_js_1.encodeXML)(data); } exports2.encode = encode; var escape_js_2 = require_escape(); Object.defineProperty(exports2, "encodeXML", { enumerable: true, get: function() { return escape_js_2.encodeXML; } }); Object.defineProperty(exports2, "escape", { enumerable: true, get: function() { return escape_js_2.escape; } }); Object.defineProperty(exports2, "escapeUTF8", { enumerable: true, get: function() { return escape_js_2.escapeUTF8; } }); Object.defineProperty(exports2, "escapeAttribute", { enumerable: true, get: function() { return escape_js_2.escapeAttribute; } }); Object.defineProperty(exports2, "escapeText", { enumerable: true, get: function() { return escape_js_2.escapeText; } }); var encode_js_2 = require_encode(); Object.defineProperty(exports2, "encodeHTML", { enumerable: true, get: function() { return encode_js_2.encodeHTML; } }); Object.defineProperty(exports2, "encodeNonAsciiHTML", { enumerable: true, get: function() { return encode_js_2.encodeNonAsciiHTML; } }); Object.defineProperty(exports2, "encodeHTML4", { enumerable: true, get: function() { return encode_js_2.encodeHTML; } }); Object.defineProperty(exports2, "encodeHTML5", { enumerable: true, get: function() { return encode_js_2.encodeHTML; } }); var decode_js_2 = require_decode(); Object.defineProperty(exports2, "EntityDecoder", { enumerable: true, get: function() { return decode_js_2.EntityDecoder; } }); Object.defineProperty(exports2, "DecodingMode", { enumerable: true, get: function() { return decode_js_2.DecodingMode; } }); Object.defineProperty(exports2, "decodeXML", { enumerable: true, get: function() { return decode_js_2.decodeXML; } }); Object.defineProperty(exports2, "decodeHTML", { enumerable: true, get: function() { return decode_js_2.decodeHTML; } }); Object.defineProperty(exports2, "decodeHTMLStrict", { enumerable: true, get: function() { return decode_js_2.decodeHTMLStrict; } }); Object.defineProperty(exports2, "decodeHTMLAttribute", { enumerable: true, get: function() { return decode_js_2.decodeHTMLAttribute; } }); Object.defineProperty(exports2, "decodeHTML4", { enumerable: true, get: function() { return decode_js_2.decodeHTML; } }); Object.defineProperty(exports2, "decodeHTML5", { enumerable: true, get: function() { return decode_js_2.decodeHTML; } }); Object.defineProperty(exports2, "decodeHTML4Strict", { enumerable: true, get: function() { return decode_js_2.decodeHTMLStrict; } }); Object.defineProperty(exports2, "decodeHTML5Strict", { enumerable: true, get: function() { return decode_js_2.decodeHTMLStrict; } }); Object.defineProperty(exports2, "decodeXMLStrict", { enumerable: true, get: function() { return decode_js_2.decodeXML; } }); } }); // node_modules/dom-serializer/lib/foreignNames.js var require_foreignNames = __commonJS({ "node_modules/dom-serializer/lib/foreignNames.js"(exports2) { "use strict"; Object.defineProperty(exports2, "__esModule", { value: true }); exports2.attributeNames = exports2.elementNames = void 0; exports2.elementNames = new Map([ "altGlyph", "altGlyphDef", "altGlyphItem", "animateColor", "animateMotion", "animateTransform", "clipPath", "feBlend", "feColorMatrix", "feComponentTransfer", "feComposite", "feConvolveMatrix", "feDiffuseLighting", "feDisplacementMap", "feDistantLight", "feDropShadow", "feFlood", "feFuncA", "feFuncB", "feFuncG", "feFuncR", "feGaussianBlur", "feImage", "feMerge", "feMergeNode", "feMorphology", "feOffset", "fePointLight", "feSpecularLighting", "feSpotLight", "feTile", "feTurbulence", "foreignObject", "glyphRef", "linearGradient", "radialGradient", "textPath" ].map(function(val) { return [val.toLowerCase(), val]; })); exports2.attributeNames = new Map([ "definitionURL", "attributeName", "attributeType", "baseFrequency", "baseProfile", "calcMode", "clipPathUnits", "diffuseConstant", "edgeMode", "filterUnits", "glyphRef", "gradientTransform", "gradientUnits", "kernelMatrix", "kernelUnitLength", "keyPoints", "keySplines", "keyTimes", "lengthAdjust", "limitingConeAngle", "markerHeight", "markerUnits", "markerWidth", "maskContentUnits", "maskUnits", "numOctaves", "pathLength", "patternContentUnits", "patternTransform", "patternUnits", "pointsAtX", "pointsAtY", "pointsAtZ", "preserveAlpha", "preserveAspectRatio", "primitiveUnits", "refX", "refY", "repeatCount", "repeatDur", "requiredExtensions", "requiredFeatures", "specularConstant", "specularExponent", "spreadMethod", "startOffset", "stdDeviation", "stitchTiles", "surfaceScale", "systemLanguage", "tableValues", "targetX", "targetY", "textLength", "viewBox", "viewTarget", "xChannelSelector", "yChannelSelector", "zoomAndPan" ].map(function(val) { return [val.toLowerCase(), val]; })); } }); // node_modules/dom-serializer/lib/index.js var require_lib5 = __commonJS({ "node_modules/dom-serializer/lib/index.js"(exports2) { "use strict"; var __assign = exports2 && exports2.__assign || function() { __assign = Object.assign || function(t) { for (var s, i = 1, n = arguments.length; i < n; i++) { s = arguments[i]; for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; } return t; }; return __assign.apply(this, arguments); }; var __createBinding = exports2 && exports2.__createBinding || (Object.create ? function(o, m, k, k2) { if (k2 === void 0) k2 = k; var desc = Object.getOwnPropertyDescriptor(m, k); if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { desc = { enumerable: true, get: function() { return m[k]; } }; } Object.defineProperty(o, k2, desc); } : function(o, m, k, k2) { if (k2 === void 0) k2 = k; o[k2] = m[k]; }); var __setModuleDefault = exports2 && exports2.__setModuleDefault || (Object.create ? function(o, v) { Object.defineProperty(o, "default", { enumerable: true, value: v }); } : function(o, v) { o["default"] = v; }); var __importStar = exports2 && exports2.__importStar || function(mod) { if (mod && mod.__esModule) return mod; var result = {}; if (mod != null) { for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); } __setModuleDefault(result, mod); return result; }; Object.defineProperty(exports2, "__esModule", { value: true }); exports2.render = void 0; var ElementType = __importStar(require_lib2()); var entities_1 = require_lib4(); var foreignNames_js_1 = require_foreignNames(); var unencodedElements = /* @__PURE__ */ new Set([ "style", "script", "xmp", "iframe", "noembed", "noframes", "plaintext", "noscript" ]); function replaceQuotes(value) { return value.replace(/"/g, """); } function formatAttributes(attributes, opts) { var _a; if (!attributes) return; var encode = ((_a = opts.encodeEntities) !== null && _a !== void 0 ? _a : opts.decodeEntities) === false ? replaceQuotes : opts.xmlMode || opts.encodeEntities !== "utf8" ? entities_1.encodeXML : entities_1.escapeAttribute; return Object.keys(attributes).map(function(key) { var _a2, _b; var value = (_a2 = attributes[key]) !== null && _a2 !== void 0 ? _a2 : ""; if (opts.xmlMode === "foreign") { key = (_b = foreignNames_js_1.attributeNames.get(key)) !== null && _b !== void 0 ? _b : key; } if (!opts.emptyAttrs && !opts.xmlMode && value === "") { return key; } return "".concat(key, '="').concat(encode(value), '"'); }).join(" "); } var singleTag = /* @__PURE__ */ new Set([ "area", "base", "basefont", "br", "col", "command", "embed", "frame", "hr", "img", "input", "isindex", "keygen", "link", "meta", "param", "source", "track", "wbr" ]); function render(node, options) { if (options === void 0) { options = {}; } var nodes = "length" in node ? node : [node]; var output = ""; for (var i = 0; i < nodes.length; i++) { output += renderNode(nodes[i], options); } return output; } exports2.render = render; exports2.default = render; function renderNode(node, options) { switch (node.type) { case ElementType.Root: return render(node.children, options); case ElementType.Doctype: case ElementType.Directive: return renderDirective(node); case ElementType.Comment: return renderComment(node); case ElementType.CDATA: return renderCdata(node); case ElementType.Script: case ElementType.Style: case ElementType.Tag: return renderTag(node, options); case ElementType.Text: return renderText(node, options); } } var foreignModeIntegrationPoints = /* @__PURE__ */ new Set([ "mi", "mo", "mn", "ms", "mtext", "annotation-xml", "foreignObject", "desc", "title" ]); var foreignElements = /* @__PURE__ */ new Set(["svg", "math"]); function renderTag(elem, opts) { var _a; if (opts.xmlMode === "foreign") { elem.name = (_a = foreignNames_js_1.elementNames.get(elem.name)) !== null && _a !== void 0 ? _a : elem.name; if (elem.parent && foreignModeIntegrationPoints.has(elem.parent.name)) { opts = __assign(__assign({}, opts), { xmlMode: false }); } } if (!opts.xmlMode && foreignElements.has(elem.name)) { opts = __assign(__assign({}, opts), { xmlMode: "foreign" }); } var tag = "<".concat(elem.name); var attribs = formatAttributes(elem.attribs, opts); if (attribs) { tag += " ".concat(attribs); } if (elem.children.length === 0 && (opts.xmlMode ? ( // In XML mode or foreign mode, and user hasn't explicitly turned off self-closing tags opts.selfClosingTags !== false ) : ( // User explicitly asked for self-closing tags, even in HTML mode opts.selfClosingTags && singleTag.has(elem.name) ))) { if (!opts.xmlMode) tag += " "; tag += "/>"; } else { tag += ">"; if (elem.children.length > 0) { tag += render(elem.children, opts); } if (opts.xmlMode || !singleTag.has(elem.name)) { tag += ""); } } return tag; } function renderDirective(elem) { return "<".concat(elem.data, ">"); } function renderText(elem, opts) { var _a; var data = elem.data || ""; if (((_a = opts.encodeEntities) !== null && _a !== void 0 ? _a : opts.decodeEntities) !== false && !(!opts.xmlMode && elem.parent && unencodedElements.has(elem.parent.name))) { data = opts.xmlMode || opts.encodeEntities !== "utf8" ? (0, entities_1.encodeXML)(data) : (0, entities_1.escapeText)(data); } return data; } function renderCdata(elem) { return ""); } function renderComment(elem) { return ""); } } }); // node_modules/domutils/lib/stringify.js var require_stringify3 = __commonJS({ "node_modules/domutils/lib/stringify.js"(exports2) { "use strict"; var __importDefault = exports2 && exports2.__importDefault || function(mod) { return mod && mod.__esModule ? mod : { "default": mod }; }; Object.defineProperty(exports2, "__esModule", { value: true }); exports2.innerText = exports2.textContent = exports2.getText = exports2.getInnerHTML = exports2.getOuterHTML = void 0; var domhandler_1 = require_lib3(); var dom_serializer_1 = __importDefault(require_lib5()); var domelementtype_1 = require_lib2(); function getOuterHTML(node, options) { return (0, dom_serializer_1.default)(node, options); } exports2.getOuterHTML = getOuterHTML; function getInnerHTML(node, options) { return (0, domhandler_1.hasChildren)(node) ? node.children.map(function(node2) { return getOuterHTML(node2, options); }).join("") : ""; } exports2.getInnerHTML = getInnerHTML; function getText(node) { if (Array.isArray(node)) return node.map(getText).join(""); if ((0, domhandler_1.isTag)(node)) return node.name === "br" ? "\n" : getText(node.children); if ((0, domhandler_1.isCDATA)(node)) return getText(node.children); if ((0, domhandler_1.isText)(node)) return node.data; return ""; } exports2.getText = getText; function textContent(node) { if (Array.isArray(node)) return node.map(textContent).join(""); if ((0, domhandler_1.hasChildren)(node) && !(0, domhandler_1.isComment)(node)) { return textContent(node.children); } if ((0, domhandler_1.isText)(node)) return node.data; return ""; } exports2.textContent = textContent; function innerText(node) { if (Array.isArray(node)) return node.map(innerText).join(""); if ((0, domhandler_1.hasChildren)(node) && (node.type === domelementtype_1.ElementType.Tag || (0, domhandler_1.isCDATA)(node))) { return innerText(node.children); } if ((0, domhandler_1.isText)(node)) return node.data; return ""; } exports2.innerText = innerText; } }); // node_modules/domutils/lib/traversal.js var require_traversal = __commonJS({ "node_modules/domutils/lib/traversal.js"(exports2) { "use strict"; Object.defineProperty(exports2, "__esModule", { value: true }); exports2.prevElementSibling = exports2.nextElementSibling = exports2.getName = exports2.hasAttrib = exports2.getAttributeValue = exports2.getSiblings = exports2.getParent = exports2.getChildren = void 0; var domhandler_1 = require_lib3(); function getChildren(elem) { return (0, domhandler_1.hasChildren)(elem) ? elem.children : []; } exports2.getChildren = getChildren; function getParent(elem) { return elem.parent || null; } exports2.getParent = getParent; function getSiblings(elem) { var _a, _b; var parent = getParent(elem); if (parent != null) return getChildren(parent); var siblings = [elem]; var prev = elem.prev, next = elem.next; while (prev != null) { siblings.unshift(prev); _a = prev, prev = _a.prev; } while (next != null) { siblings.push(next); _b = next, next = _b.next; } return siblings; } exports2.getSiblings = getSiblings; function getAttributeValue(elem, name) { var _a; return (_a = elem.attribs) === null || _a === void 0 ? void 0 : _a[name]; } exports2.getAttributeValue = getAttributeValue; function hasAttrib(elem, name) { return elem.attribs != null && Object.prototype.hasOwnProperty.call(elem.attribs, name) && elem.attribs[name] != null; } exports2.hasAttrib = hasAttrib; function getName(elem) { return elem.name; } exports2.getName = getName; function nextElementSibling(elem) { var _a; var next = elem.next; while (next !== null && !(0, domhandler_1.isTag)(next)) _a = next, next = _a.next; return next; } exports2.nextElementSibling = nextElementSibling; function prevElementSibling(elem) { var _a; var prev = elem.prev; while (prev !== null && !(0, domhandler_1.isTag)(prev)) _a = prev, prev = _a.prev; return prev; } exports2.prevElementSibling = prevElementSibling; } }); // node_modules/domutils/lib/manipulation.js var require_manipulation = __commonJS({ "node_modules/domutils/lib/manipulation.js"(exports2) { "use strict"; Object.defineProperty(exports2, "__esModule", { value: true }); exports2.prepend = exports2.prependChild = exports2.append = exports2.appendChild = exports2.replaceElement = exports2.removeElement = void 0; function removeElement(elem) { if (elem.prev) elem.prev.next = elem.next; if (elem.next) elem.next.prev = elem.prev; if (elem.parent) { var childs = elem.parent.children; childs.splice(childs.lastIndexOf(elem), 1); } } exports2.removeElement = removeElement; function replaceElement(elem, replacement) { var prev = replacement.prev = elem.prev; if (prev) { prev.next = replacement; } var next = replacement.next = elem.next; if (next) { next.prev = replacement; } var parent = replacement.parent = elem.parent; if (parent) { var childs = parent.children; childs[childs.lastIndexOf(elem)] = replacement; elem.parent = null; } } exports2.replaceElement = replaceElement; function appendChild(elem, child) { removeElement(child); child.next = null; child.parent = elem; if (elem.children.push(child) > 1) { var sibling = elem.children[elem.children.length - 2]; sibling.next = child; child.prev = sibling; } else { child.prev = null; } } exports2.appendChild = appendChild; function append(elem, next) { removeElement(next); var parent = elem.parent; var currNext = elem.next; next.next = currNext; next.prev = elem; elem.next = next; next.parent = parent; if (currNext) { currNext.prev = next; if (parent) { var childs = parent.children; childs.splice(childs.lastIndexOf(currNext), 0, next); } } else if (parent) { parent.children.push(next); } } exports2.append = append; function prependChild(elem, child) { removeElement(child); child.parent = elem; child.prev = null; if (elem.children.unshift(child) !== 1) { var sibling = elem.children[1]; sibling.prev = child; child.next = sibling; } else { child.next = null; } } exports2.prependChild = prependChild; function prepend(elem, prev) { removeElement(prev); var parent = elem.parent; if (parent) { var childs = parent.children; childs.splice(childs.indexOf(elem), 0, prev); } if (elem.prev) { elem.prev.next = prev; } prev.parent = parent; prev.prev = elem.prev; prev.next = elem; elem.prev = prev; } exports2.prepend = prepend; } }); // node_modules/domutils/lib/querying.js var require_querying = __commonJS({ "node_modules/domutils/lib/querying.js"(exports2) { "use strict"; Object.defineProperty(exports2, "__esModule", { value: true }); exports2.findAll = exports2.existsOne = exports2.findOne = exports2.findOneChild = exports2.find = exports2.filter = void 0; var domhandler_1 = require_lib3(); function filter(test, node, recurse, limit) { if (recurse === void 0) { recurse = true; } if (limit === void 0) { limit = Infinity; } if (!Array.isArray(node)) node = [node]; return find(test, node, recurse, limit); } exports2.filter = filter; function find(test, nodes, recurse, limit) { var result = []; for (var _i = 0, nodes_1 = nodes; _i < nodes_1.length; _i++) { var elem = nodes_1[_i]; if (test(elem)) { result.push(elem); if (--limit <= 0) break; } if (recurse && (0, domhandler_1.hasChildren)(elem) && elem.children.length > 0) { var children = find(test, elem.children, recurse, limit); result.push.apply(result, children); limit -= children.length; if (limit <= 0) break; } } return result; } exports2.find = find; function findOneChild(test, nodes) { return nodes.find(test); } exports2.findOneChild = findOneChild; function findOne(test, nodes, recurse) { if (recurse === void 0) { recurse = true; } var elem = null; for (var i = 0; i < nodes.length && !elem; i++) { var checked = nodes[i]; if (!(0, domhandler_1.isTag)(checked)) { continue; } else if (test(checked)) { elem = checked; } else if (recurse && checked.children.length > 0) { elem = findOne(test, checked.children, true); } } return elem; } exports2.findOne = findOne; function existsOne(test, nodes) { return nodes.some(function(checked) { return (0, domhandler_1.isTag)(checked) && (test(checked) || checked.children.length > 0 && existsOne(test, checked.children)); }); } exports2.existsOne = existsOne; function findAll(test, nodes) { var _a; var result = []; var stack = nodes.filter(domhandler_1.isTag); var elem; while (elem = stack.shift()) { var children = (_a = elem.children) === null || _a === void 0 ? void 0 : _a.filter(domhandler_1.isTag); if (children && children.length > 0) { stack.unshift.apply(stack, children); } if (test(elem)) result.push(elem); } return result; } exports2.findAll = findAll; } }); // node_modules/domutils/lib/legacy.js var require_legacy = __commonJS({ "node_modules/domutils/lib/legacy.js"(exports2) { "use strict"; Object.defineProperty(exports2, "__esModule", { value: true }); exports2.getElementsByTagType = exports2.getElementsByTagName = exports2.getElementById = exports2.getElements = exports2.testElement = void 0; var domhandler_1 = require_lib3(); var querying_js_1 = require_querying(); var Checks = { tag_name: function(name) { if (typeof name === "function") { return function(elem) { return (0, domhandler_1.isTag)(elem) && name(elem.name); }; } else if (name === "*") { return domhandler_1.isTag; } return function(elem) { return (0, domhandler_1.isTag)(elem) && elem.name === name; }; }, tag_type: function(type) { if (typeof type === "function") { return function(elem) { return type(elem.type); }; } return function(elem) { return elem.type === type; }; }, tag_contains: function(data) { if (typeof data === "function") { return function(elem) { return (0, domhandler_1.isText)(elem) && data(elem.data); }; } return function(elem) { return (0, domhandler_1.isText)(elem) && elem.data === data; }; } }; function getAttribCheck(attrib, value) { if (typeof value === "function") { return function(elem) { return (0, domhandler_1.isTag)(elem) && value(elem.attribs[attrib]); }; } return function(elem) { return (0, domhandler_1.isTag)(elem) && elem.attribs[attrib] === value; }; } function combineFuncs(a, b) { return function(elem) { return a(elem) || b(elem); }; } function compileTest(options) { var funcs = Object.keys(options).map(function(key) { var value = options[key]; return Object.prototype.hasOwnProperty.call(Checks, key) ? Checks[key](value) : getAttribCheck(key, value); }); return funcs.length === 0 ? null : funcs.reduce(combineFuncs); } function testElement(options, node) { var test = compileTest(options); return test ? test(node) : true; } exports2.testElement = testElement; function getElements(options, nodes, recurse, limit) { if (limit === void 0) { limit = Infinity; } var test = compileTest(options); return test ? (0, querying_js_1.filter)(test, nodes, recurse, limit) : []; } exports2.getElements = getElements; function getElementById(id, nodes, recurse) { if (recurse === void 0) { recurse = true; } if (!Array.isArray(nodes)) nodes = [nodes]; return (0, querying_js_1.findOne)(getAttribCheck("id", id), nodes, recurse); } exports2.getElementById = getElementById; function getElementsByTagName(tagName, nodes, recurse, limit) { if (recurse === void 0) { recurse = true; } if (limit === void 0) { limit = Infinity; } return (0, querying_js_1.filter)(Checks["tag_name"](tagName), nodes, recurse, limit); } exports2.getElementsByTagName = getElementsByTagName; function getElementsByTagType(type, nodes, recurse, limit) { if (recurse === void 0) { recurse = true; } if (limit === void 0) { limit = Infinity; } return (0, querying_js_1.filter)(Checks["tag_type"](type), nodes, recurse, limit); } exports2.getElementsByTagType = getElementsByTagType; } }); // node_modules/domutils/lib/helpers.js var require_helpers = __commonJS({ "node_modules/domutils/lib/helpers.js"(exports2) { "use strict"; Object.defineProperty(exports2, "__esModule", { value: true }); exports2.uniqueSort = exports2.compareDocumentPosition = exports2.DocumentPosition = exports2.removeSubsets = void 0; var domhandler_1 = require_lib3(); function removeSubsets(nodes) { var idx = nodes.length; while (--idx >= 0) { var node = nodes[idx]; if (idx > 0 && nodes.lastIndexOf(node, idx - 1) >= 0) { nodes.splice(idx, 1); continue; } for (var ancestor = node.parent; ancestor; ancestor = ancestor.parent) { if (nodes.includes(ancestor)) { nodes.splice(idx, 1); break; } } } return nodes; } exports2.removeSubsets = removeSubsets; var DocumentPosition; (function(DocumentPosition2) { DocumentPosition2[DocumentPosition2["DISCONNECTED"] = 1] = "DISCONNECTED"; DocumentPosition2[DocumentPosition2["PRECEDING"] = 2] = "PRECEDING"; DocumentPosition2[DocumentPosition2["FOLLOWING"] = 4] = "FOLLOWING"; DocumentPosition2[DocumentPosition2["CONTAINS"] = 8] = "CONTAINS"; DocumentPosition2[DocumentPosition2["CONTAINED_BY"] = 16] = "CONTAINED_BY"; })(DocumentPosition = exports2.DocumentPosition || (exports2.DocumentPosition = {})); function compareDocumentPosition(nodeA, nodeB) { var aParents = []; var bParents = []; if (nodeA === nodeB) { return 0; } var current = (0, domhandler_1.hasChildren)(nodeA) ? nodeA : nodeA.parent; while (current) { aParents.unshift(current); current = current.parent; } current = (0, domhandler_1.hasChildren)(nodeB) ? nodeB : nodeB.parent; while (current) { bParents.unshift(current); current = current.parent; } var maxIdx = Math.min(aParents.length, bParents.length); var idx = 0; while (idx < maxIdx && aParents[idx] === bParents[idx]) { idx++; } if (idx === 0) { return DocumentPosition.DISCONNECTED; } var sharedParent = aParents[idx - 1]; var siblings = sharedParent.children; var aSibling = aParents[idx]; var bSibling = bParents[idx]; if (siblings.indexOf(aSibling) > siblings.indexOf(bSibling)) { if (sharedParent === nodeB) { return DocumentPosition.FOLLOWING | DocumentPosition.CONTAINED_BY; } return DocumentPosition.FOLLOWING; } if (sharedParent === nodeA) { return DocumentPosition.PRECEDING | DocumentPosition.CONTAINS; } return DocumentPosition.PRECEDING; } exports2.compareDocumentPosition = compareDocumentPosition; function uniqueSort(nodes) { nodes = nodes.filter(function(node, i, arr) { return !arr.includes(node, i + 1); }); nodes.sort(function(a, b) { var relative = compareDocumentPosition(a, b); if (relative & DocumentPosition.PRECEDING) { return -1; } else if (relative & DocumentPosition.FOLLOWING) { return 1; } return 0; }); return nodes; } exports2.uniqueSort = uniqueSort; } }); // node_modules/domutils/lib/feeds.js var require_feeds = __commonJS({ "node_modules/domutils/lib/feeds.js"(exports2) { "use strict"; Object.defineProperty(exports2, "__esModule", { value: true }); exports2.getFeed = void 0; var stringify_js_1 = require_stringify3(); var legacy_js_1 = require_legacy(); function getFeed(doc) { var feedRoot = getOneElement(isValidFeed, doc); return !feedRoot ? null : feedRoot.name === "feed" ? getAtomFeed(feedRoot) : getRssFeed(feedRoot); } exports2.getFeed = getFeed; function getAtomFeed(feedRoot) { var _a; var childs = feedRoot.children; var feed = { type: "atom", items: (0, legacy_js_1.getElementsByTagName)("entry", childs).map(function(item) { var _a2; var children = item.children; var entry = { media: getMediaElements(children) }; addConditionally(entry, "id", "id", children); addConditionally(entry, "title", "title", children); var href2 = (_a2 = getOneElement("link", children)) === null || _a2 === void 0 ? void 0 : _a2.attribs["href"]; if (href2) { entry.link = href2; } var description = fetch("summary", children) || fetch("content", children); if (description) { entry.description = description; } var pubDate = fetch("updated", children); if (pubDate) { entry.pubDate = new Date(pubDate); } return entry; }) }; addConditionally(feed, "id", "id", childs); addConditionally(feed, "title", "title", childs); var href = (_a = getOneElement("link", childs)) === null || _a === void 0 ? void 0 : _a.attribs["href"]; if (href) { feed.link = href; } addConditionally(feed, "description", "subtitle", childs); var updated = fetch("updated", childs); if (updated) { feed.updated = new Date(updated); } addConditionally(feed, "author", "email", childs, true); return feed; } function getRssFeed(feedRoot) { var _a, _b; var childs = (_b = (_a = getOneElement("channel", feedRoot.children)) === null || _a === void 0 ? void 0 : _a.children) !== null && _b !== void 0 ? _b : []; var feed = { type: feedRoot.name.substr(0, 3), id: "", items: (0, legacy_js_1.getElementsByTagName)("item", feedRoot.children).map(function(item) { var children = item.children; var entry = { media: getMediaElements(children) }; addConditionally(entry, "id", "guid", children); addConditionally(entry, "title", "title", children); addConditionally(entry, "link", "link", children); addConditionally(entry, "description", "description", children); var pubDate = fetch("pubDate", children); if (pubDate) entry.pubDate = new Date(pubDate); return entry; }) }; addConditionally(feed, "title", "title", childs); addConditionally(feed, "link", "link", childs); addConditionally(feed, "description", "description", childs); var updated = fetch("lastBuildDate", childs); if (updated) { feed.updated = new Date(updated); } addConditionally(feed, "author", "managingEditor", childs, true); return feed; } var MEDIA_KEYS_STRING = ["url", "type", "lang"]; var MEDIA_KEYS_INT = [ "fileSize", "bitrate", "framerate", "samplingrate", "channels", "duration", "height", "width" ]; function getMediaElements(where) { return (0, legacy_js_1.getElementsByTagName)("media:content", where).map(function(elem) { var attribs = elem.attribs; var media = { medium: attribs["medium"], isDefault: !!attribs["isDefault"] }; for (var _i = 0, MEDIA_KEYS_STRING_1 = MEDIA_KEYS_STRING; _i < MEDIA_KEYS_STRING_1.length; _i++) { var attrib = MEDIA_KEYS_STRING_1[_i]; if (attribs[attrib]) { media[attrib] = attribs[attrib]; } } for (var _a = 0, MEDIA_KEYS_INT_1 = MEDIA_KEYS_INT; _a < MEDIA_KEYS_INT_1.length; _a++) { var attrib = MEDIA_KEYS_INT_1[_a]; if (attribs[attrib]) { media[attrib] = parseInt(attribs[attrib], 10); } } if (attribs["expression"]) { media.expression = attribs["expression"]; } return media; }); } function getOneElement(tagName, node) { return (0, legacy_js_1.getElementsByTagName)(tagName, node, true, 1)[0]; } function fetch(tagName, where, recurse) { if (recurse === void 0) { recurse = false; } return (0, stringify_js_1.textContent)((0, legacy_js_1.getElementsByTagName)(tagName, where, recurse, 1)).trim(); } function addConditionally(obj, prop, tagName, where, recurse) { if (recurse === void 0) { recurse = false; } var val = fetch(tagName, where, recurse); if (val) obj[prop] = val; } function isValidFeed(value) { return value === "rss" || value === "feed" || value === "rdf:RDF"; } } }); // node_modules/domutils/lib/index.js var require_lib6 = __commonJS({ "node_modules/domutils/lib/index.js"(exports2) { "use strict"; var __createBinding = exports2 && exports2.__createBinding || (Object.create ? function(o, m, k, k2) { if (k2 === void 0) k2 = k; var desc = Object.getOwnPropertyDescriptor(m, k); if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { desc = { enumerable: true, get: function() { return m[k]; } }; } Object.defineProperty(o, k2, desc); } : function(o, m, k, k2) { if (k2 === void 0) k2 = k; o[k2] = m[k]; }); var __exportStar = exports2 && exports2.__exportStar || function(m, exports3) { for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports3, p)) __createBinding(exports3, m, p); }; Object.defineProperty(exports2, "__esModule", { value: true }); exports2.hasChildren = exports2.isDocument = exports2.isComment = exports2.isText = exports2.isCDATA = exports2.isTag = void 0; __exportStar(require_stringify3(), exports2); __exportStar(require_traversal(), exports2); __exportStar(require_manipulation(), exports2); __exportStar(require_querying(), exports2); __exportStar(require_legacy(), exports2); __exportStar(require_helpers(), exports2); __exportStar(require_feeds(), exports2); var domhandler_1 = require_lib3(); Object.defineProperty(exports2, "isTag", { enumerable: true, get: function() { return domhandler_1.isTag; } }); Object.defineProperty(exports2, "isCDATA", { enumerable: true, get: function() { return domhandler_1.isCDATA; } }); Object.defineProperty(exports2, "isText", { enumerable: true, get: function() { return domhandler_1.isText; } }); Object.defineProperty(exports2, "isComment", { enumerable: true, get: function() { return domhandler_1.isComment; } }); Object.defineProperty(exports2, "isDocument", { enumerable: true, get: function() { return domhandler_1.isDocument; } }); Object.defineProperty(exports2, "hasChildren", { enumerable: true, get: function() { return domhandler_1.hasChildren; } }); } }); // node_modules/boolbase/index.js var require_boolbase = __commonJS({ "node_modules/boolbase/index.js"(exports2, module2) { module2.exports = { trueFunc: function trueFunc() { return true; }, falseFunc: function falseFunc() { return false; } }; } }); // node_modules/css-what/lib/commonjs/types.js var require_types = __commonJS({ "node_modules/css-what/lib/commonjs/types.js"(exports2) { "use strict"; Object.defineProperty(exports2, "__esModule", { value: true }); exports2.AttributeAction = exports2.IgnoreCaseMode = exports2.SelectorType = void 0; var SelectorType; (function(SelectorType2) { SelectorType2["Attribute"] = "attribute"; SelectorType2["Pseudo"] = "pseudo"; SelectorType2["PseudoElement"] = "pseudo-element"; SelectorType2["Tag"] = "tag"; SelectorType2["Universal"] = "universal"; SelectorType2["Adjacent"] = "adjacent"; SelectorType2["Child"] = "child"; SelectorType2["Descendant"] = "descendant"; SelectorType2["Parent"] = "parent"; SelectorType2["Sibling"] = "sibling"; SelectorType2["ColumnCombinator"] = "column-combinator"; })(SelectorType = exports2.SelectorType || (exports2.SelectorType = {})); exports2.IgnoreCaseMode = { Unknown: null, QuirksMode: "quirks", IgnoreCase: true, CaseSensitive: false }; var AttributeAction; (function(AttributeAction2) { AttributeAction2["Any"] = "any"; AttributeAction2["Element"] = "element"; AttributeAction2["End"] = "end"; AttributeAction2["Equals"] = "equals"; AttributeAction2["Exists"] = "exists"; AttributeAction2["Hyphen"] = "hyphen"; AttributeAction2["Not"] = "not"; AttributeAction2["Start"] = "start"; })(AttributeAction = exports2.AttributeAction || (exports2.AttributeAction = {})); } }); // node_modules/css-what/lib/commonjs/parse.js var require_parse4 = __commonJS({ "node_modules/css-what/lib/commonjs/parse.js"(exports2) { "use strict"; Object.defineProperty(exports2, "__esModule", { value: true }); exports2.parse = exports2.isTraversal = void 0; var types_1 = require_types(); var reName = /^[^\\#]?(?:\\(?:[\da-f]{1,6}\s?|.)|[\w\-\u00b0-\uFFFF])+/; var reEscape = /\\([\da-f]{1,6}\s?|(\s)|.)/gi; var actionTypes = /* @__PURE__ */ new Map([ [126, types_1.AttributeAction.Element], [94, types_1.AttributeAction.Start], [36, types_1.AttributeAction.End], [42, types_1.AttributeAction.Any], [33, types_1.AttributeAction.Not], [124, types_1.AttributeAction.Hyphen] ]); var unpackPseudos = /* @__PURE__ */ new Set([ "has", "not", "matches", "is", "where", "host", "host-context" ]); function isTraversal(selector) { switch (selector.type) { case types_1.SelectorType.Adjacent: case types_1.SelectorType.Child: case types_1.SelectorType.Descendant: case types_1.SelectorType.Parent: case types_1.SelectorType.Sibling: case types_1.SelectorType.ColumnCombinator: return true; default: return false; } } exports2.isTraversal = isTraversal; var stripQuotesFromPseudos = /* @__PURE__ */ new Set(["contains", "icontains"]); function funescape(_, escaped, escapedWhitespace) { var high = parseInt(escaped, 16) - 65536; return high !== high || escapedWhitespace ? escaped : high < 0 ? ( // BMP codepoint String.fromCharCode(high + 65536) ) : ( // Supplemental Plane codepoint (surrogate pair) String.fromCharCode(high >> 10 | 55296, high & 1023 | 56320) ); } function unescapeCSS(str) { return str.replace(reEscape, funescape); } function isQuote(c) { return c === 39 || c === 34; } function isWhitespace(c) { return c === 32 || c === 9 || c === 10 || c === 12 || c === 13; } function parse(selector) { var subselects = []; var endIndex = parseSelector(subselects, "".concat(selector), 0); if (endIndex < selector.length) { throw new Error("Unmatched selector: ".concat(selector.slice(endIndex))); } return subselects; } exports2.parse = parse; function parseSelector(subselects, selector, selectorIndex) { var tokens = []; function getName(offset) { var match = selector.slice(selectorIndex + offset).match(reName); if (!match) { throw new Error("Expected name, found ".concat(selector.slice(selectorIndex))); } var name = match[0]; selectorIndex += offset + name.length; return unescapeCSS(name); } function stripWhitespace(offset) { selectorIndex += offset; while (selectorIndex < selector.length && isWhitespace(selector.charCodeAt(selectorIndex))) { selectorIndex++; } } function readValueWithParenthesis() { selectorIndex += 1; var start = selectorIndex; var counter = 1; for (; counter > 0 && selectorIndex < selector.length; selectorIndex++) { if (selector.charCodeAt(selectorIndex) === 40 && !isEscaped(selectorIndex)) { counter++; } else if (selector.charCodeAt(selectorIndex) === 41 && !isEscaped(selectorIndex)) { counter--; } } if (counter) { throw new Error("Parenthesis not matched"); } return unescapeCSS(selector.slice(start, selectorIndex - 1)); } function isEscaped(pos) { var slashCount = 0; while (selector.charCodeAt(--pos) === 92) slashCount++; return (slashCount & 1) === 1; } function ensureNotTraversal() { if (tokens.length > 0 && isTraversal(tokens[tokens.length - 1])) { throw new Error("Did not expect successive traversals."); } } function addTraversal(type) { if (tokens.length > 0 && tokens[tokens.length - 1].type === types_1.SelectorType.Descendant) { tokens[tokens.length - 1].type = type; return; } ensureNotTraversal(); tokens.push({ type }); } function addSpecialAttribute(name, action2) { tokens.push({ type: types_1.SelectorType.Attribute, name, action: action2, value: getName(1), namespace: null, ignoreCase: "quirks" }); } function finalizeSubselector() { if (tokens.length && tokens[tokens.length - 1].type === types_1.SelectorType.Descendant) { tokens.pop(); } if (tokens.length === 0) { throw new Error("Empty sub-selector"); } subselects.push(tokens); } stripWhitespace(0); if (selector.length === selectorIndex) { return selectorIndex; } loop: while (selectorIndex < selector.length) { var firstChar = selector.charCodeAt(selectorIndex); switch (firstChar) { case 32: case 9: case 10: case 12: case 13: { if (tokens.length === 0 || tokens[0].type !== types_1.SelectorType.Descendant) { ensureNotTraversal(); tokens.push({ type: types_1.SelectorType.Descendant }); } stripWhitespace(1); break; } case 62: { addTraversal(types_1.SelectorType.Child); stripWhitespace(1); break; } case 60: { addTraversal(types_1.SelectorType.Parent); stripWhitespace(1); break; } case 126: { addTraversal(types_1.SelectorType.Sibling); stripWhitespace(1); break; } case 43: { addTraversal(types_1.SelectorType.Adjacent); stripWhitespace(1); break; } case 46: { addSpecialAttribute("class", types_1.AttributeAction.Element); break; } case 35: { addSpecialAttribute("id", types_1.AttributeAction.Equals); break; } case 91: { stripWhitespace(1); var name_1 = void 0; var namespace = null; if (selector.charCodeAt(selectorIndex) === 124) { name_1 = getName(1); } else if (selector.startsWith("*|", selectorIndex)) { namespace = "*"; name_1 = getName(2); } else { name_1 = getName(0); if (selector.charCodeAt(selectorIndex) === 124 && selector.charCodeAt(selectorIndex + 1) !== 61) { namespace = name_1; name_1 = getName(1); } } stripWhitespace(0); var action = types_1.AttributeAction.Exists; var possibleAction = actionTypes.get(selector.charCodeAt(selectorIndex)); if (possibleAction) { action = possibleAction; if (selector.charCodeAt(selectorIndex + 1) !== 61) { throw new Error("Expected `=`"); } stripWhitespace(2); } else if (selector.charCodeAt(selectorIndex) === 61) { action = types_1.AttributeAction.Equals; stripWhitespace(1); } var value = ""; var ignoreCase = null; if (action !== "exists") { if (isQuote(selector.charCodeAt(selectorIndex))) { var quote = selector.charCodeAt(selectorIndex); var sectionEnd = selectorIndex + 1; while (sectionEnd < selector.length && (selector.charCodeAt(sectionEnd) !== quote || isEscaped(sectionEnd))) { sectionEnd += 1; } if (selector.charCodeAt(sectionEnd) !== quote) { throw new Error("Attribute value didn't end"); } value = unescapeCSS(selector.slice(selectorIndex + 1, sectionEnd)); selectorIndex = sectionEnd + 1; } else { var valueStart = selectorIndex; while (selectorIndex < selector.length && (!isWhitespace(selector.charCodeAt(selectorIndex)) && selector.charCodeAt(selectorIndex) !== 93 || isEscaped(selectorIndex))) { selectorIndex += 1; } value = unescapeCSS(selector.slice(valueStart, selectorIndex)); } stripWhitespace(0); var forceIgnore = selector.charCodeAt(selectorIndex) | 32; if (forceIgnore === 115) { ignoreCase = false; stripWhitespace(1); } else if (forceIgnore === 105) { ignoreCase = true; stripWhitespace(1); } } if (selector.charCodeAt(selectorIndex) !== 93) { throw new Error("Attribute selector didn't terminate"); } selectorIndex += 1; var attributeSelector = { type: types_1.SelectorType.Attribute, name: name_1, action, value, namespace, ignoreCase }; tokens.push(attributeSelector); break; } case 58: { if (selector.charCodeAt(selectorIndex + 1) === 58) { tokens.push({ type: types_1.SelectorType.PseudoElement, name: getName(2).toLowerCase(), data: selector.charCodeAt(selectorIndex) === 40 ? readValueWithParenthesis() : null }); continue; } var name_2 = getName(1).toLowerCase(); var data = null; if (selector.charCodeAt(selectorIndex) === 40) { if (unpackPseudos.has(name_2)) { if (isQuote(selector.charCodeAt(selectorIndex + 1))) { throw new Error("Pseudo-selector ".concat(name_2, " cannot be quoted")); } data = []; selectorIndex = parseSelector(data, selector, selectorIndex + 1); if (selector.charCodeAt(selectorIndex) !== 41) { throw new Error("Missing closing parenthesis in :".concat(name_2, " (").concat(selector, ")")); } selectorIndex += 1; } else { data = readValueWithParenthesis(); if (stripQuotesFromPseudos.has(name_2)) { var quot = data.charCodeAt(0); if (quot === data.charCodeAt(data.length - 1) && isQuote(quot)) { data = data.slice(1, -1); } } data = unescapeCSS(data); } } tokens.push({ type: types_1.SelectorType.Pseudo, name: name_2, data }); break; } case 44: { finalizeSubselector(); tokens = []; stripWhitespace(1); break; } default: { if (selector.startsWith("/*", selectorIndex)) { var endIndex = selector.indexOf("*/", selectorIndex + 2); if (endIndex < 0) { throw new Error("Comment was not terminated"); } selectorIndex = endIndex + 2; if (tokens.length === 0) { stripWhitespace(0); } break; } var namespace = null; var name_3 = void 0; if (firstChar === 42) { selectorIndex += 1; name_3 = "*"; } else if (firstChar === 124) { name_3 = ""; if (selector.charCodeAt(selectorIndex + 1) === 124) { addTraversal(types_1.SelectorType.ColumnCombinator); stripWhitespace(2); break; } } else if (reName.test(selector.slice(selectorIndex))) { name_3 = getName(0); } else { break loop; } if (selector.charCodeAt(selectorIndex) === 124 && selector.charCodeAt(selectorIndex + 1) !== 124) { namespace = name_3; if (selector.charCodeAt(selectorIndex + 1) === 42) { name_3 = "*"; selectorIndex += 2; } else { name_3 = getName(1); } } tokens.push(name_3 === "*" ? { type: types_1.SelectorType.Universal, namespace } : { type: types_1.SelectorType.Tag, name: name_3, namespace }); } } } finalizeSubselector(); return selectorIndex; } } }); // node_modules/css-what/lib/commonjs/stringify.js var require_stringify4 = __commonJS({ "node_modules/css-what/lib/commonjs/stringify.js"(exports2) { "use strict"; var __spreadArray = exports2 && exports2.__spreadArray || function(to, from, pack) { if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) { if (ar || !(i in from)) { if (!ar) ar = Array.prototype.slice.call(from, 0, i); ar[i] = from[i]; } } return to.concat(ar || Array.prototype.slice.call(from)); }; Object.defineProperty(exports2, "__esModule", { value: true }); exports2.stringify = void 0; var types_1 = require_types(); var attribValChars = ["\\", '"']; var pseudoValChars = __spreadArray(__spreadArray([], attribValChars, true), ["(", ")"], false); var charsToEscapeInAttributeValue = new Set(attribValChars.map(function(c) { return c.charCodeAt(0); })); var charsToEscapeInPseudoValue = new Set(pseudoValChars.map(function(c) { return c.charCodeAt(0); })); var charsToEscapeInName = new Set(__spreadArray(__spreadArray([], pseudoValChars, true), [ "~", "^", "$", "*", "+", "!", "|", ":", "[", "]", " ", "." ], false).map(function(c) { return c.charCodeAt(0); })); function stringify(selector) { return selector.map(function(token) { return token.map(stringifyToken).join(""); }).join(", "); } exports2.stringify = stringify; function stringifyToken(token, index, arr) { switch (token.type) { case types_1.SelectorType.Child: return index === 0 ? "> " : " > "; case types_1.SelectorType.Parent: return index === 0 ? "< " : " < "; case types_1.SelectorType.Sibling: return index === 0 ? "~ " : " ~ "; case types_1.SelectorType.Adjacent: return index === 0 ? "+ " : " + "; case types_1.SelectorType.Descendant: return " "; case types_1.SelectorType.ColumnCombinator: return index === 0 ? "|| " : " || "; case types_1.SelectorType.Universal: return token.namespace === "*" && index + 1 < arr.length && "name" in arr[index + 1] ? "" : "".concat(getNamespace(token.namespace), "*"); case types_1.SelectorType.Tag: return getNamespacedName(token); case types_1.SelectorType.PseudoElement: return "::".concat(escapeName(token.name, charsToEscapeInName)).concat(token.data === null ? "" : "(".concat(escapeName(token.data, charsToEscapeInPseudoValue), ")")); case types_1.SelectorType.Pseudo: return ":".concat(escapeName(token.name, charsToEscapeInName)).concat(token.data === null ? "" : "(".concat(typeof token.data === "string" ? escapeName(token.data, charsToEscapeInPseudoValue) : stringify(token.data), ")")); case types_1.SelectorType.Attribute: { if (token.name === "id" && token.action === types_1.AttributeAction.Equals && token.ignoreCase === "quirks" && !token.namespace) { return "#".concat(escapeName(token.value, charsToEscapeInName)); } if (token.name === "class" && token.action === types_1.AttributeAction.Element && token.ignoreCase === "quirks" && !token.namespace) { return ".".concat(escapeName(token.value, charsToEscapeInName)); } var name_1 = getNamespacedName(token); if (token.action === types_1.AttributeAction.Exists) { return "[".concat(name_1, "]"); } return "[".concat(name_1).concat(getActionValue(token.action), '="').concat(escapeName(token.value, charsToEscapeInAttributeValue), '"').concat(token.ignoreCase === null ? "" : token.ignoreCase ? " i" : " s", "]"); } } } function getActionValue(action) { switch (action) { case types_1.AttributeAction.Equals: return ""; case types_1.AttributeAction.Element: return "~"; case types_1.AttributeAction.Start: return "^"; case types_1.AttributeAction.End: return "$"; case types_1.AttributeAction.Any: return "*"; case types_1.AttributeAction.Not: return "!"; case types_1.AttributeAction.Hyphen: return "|"; case types_1.AttributeAction.Exists: throw new Error("Shouldn't be here"); } } function getNamespacedName(token) { return "".concat(getNamespace(token.namespace)).concat(escapeName(token.name, charsToEscapeInName)); } function getNamespace(namespace) { return namespace !== null ? "".concat(namespace === "*" ? "*" : escapeName(namespace, charsToEscapeInName), "|") : ""; } function escapeName(str, charsToEscape) { var lastIdx = 0; var ret = ""; for (var i = 0; i < str.length; i++) { if (charsToEscape.has(str.charCodeAt(i))) { ret += "".concat(str.slice(lastIdx, i), "\\").concat(str.charAt(i)); lastIdx = i + 1; } } return ret.length > 0 ? ret + str.slice(lastIdx) : str; } } }); // node_modules/css-what/lib/commonjs/index.js var require_commonjs = __commonJS({ "node_modules/css-what/lib/commonjs/index.js"(exports2) { "use strict"; var __createBinding = exports2 && exports2.__createBinding || (Object.create ? function(o, m, k, k2) { if (k2 === void 0) k2 = k; var desc = Object.getOwnPropertyDescriptor(m, k); if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { desc = { enumerable: true, get: function() { return m[k]; } }; } Object.defineProperty(o, k2, desc); } : function(o, m, k, k2) { if (k2 === void 0) k2 = k; o[k2] = m[k]; }); var __exportStar = exports2 && exports2.__exportStar || function(m, exports3) { for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports3, p)) __createBinding(exports3, m, p); }; Object.defineProperty(exports2, "__esModule", { value: true }); exports2.stringify = exports2.parse = exports2.isTraversal = void 0; __exportStar(require_types(), exports2); var parse_1 = require_parse4(); Object.defineProperty(exports2, "isTraversal", { enumerable: true, get: function() { return parse_1.isTraversal; } }); Object.defineProperty(exports2, "parse", { enumerable: true, get: function() { return parse_1.parse; } }); var stringify_1 = require_stringify4(); Object.defineProperty(exports2, "stringify", { enumerable: true, get: function() { return stringify_1.stringify; } }); } }); // node_modules/css-select/lib/sort.js var require_sort = __commonJS({ "node_modules/css-select/lib/sort.js"(exports2) { "use strict"; Object.defineProperty(exports2, "__esModule", { value: true }); exports2.isTraversal = void 0; var css_what_1 = require_commonjs(); var procedure = /* @__PURE__ */ new Map([ [css_what_1.SelectorType.Universal, 50], [css_what_1.SelectorType.Tag, 30], [css_what_1.SelectorType.Attribute, 1], [css_what_1.SelectorType.Pseudo, 0] ]); function isTraversal(token) { return !procedure.has(token.type); } exports2.isTraversal = isTraversal; var attributes = /* @__PURE__ */ new Map([ [css_what_1.AttributeAction.Exists, 10], [css_what_1.AttributeAction.Equals, 8], [css_what_1.AttributeAction.Not, 7], [css_what_1.AttributeAction.Start, 6], [css_what_1.AttributeAction.End, 6], [css_what_1.AttributeAction.Any, 5] ]); function sortByProcedure(arr) { var procs = arr.map(getProcedure); for (var i = 1; i < arr.length; i++) { var procNew = procs[i]; if (procNew < 0) continue; for (var j = i - 1; j >= 0 && procNew < procs[j]; j--) { var token = arr[j + 1]; arr[j + 1] = arr[j]; arr[j] = token; procs[j + 1] = procs[j]; procs[j] = procNew; } } } exports2.default = sortByProcedure; function getProcedure(token) { var _a, _b; var proc = (_a = procedure.get(token.type)) !== null && _a !== void 0 ? _a : -1; if (token.type === css_what_1.SelectorType.Attribute) { proc = (_b = attributes.get(token.action)) !== null && _b !== void 0 ? _b : 4; if (token.action === css_what_1.AttributeAction.Equals && token.name === "id") { proc = 9; } if (token.ignoreCase) { proc >>= 1; } } else if (token.type === css_what_1.SelectorType.Pseudo) { if (!token.data) { proc = 3; } else if (token.name === "has" || token.name === "contains") { proc = 0; } else if (Array.isArray(token.data)) { proc = Math.min.apply(Math, token.data.map(function(d) { return Math.min.apply(Math, d.map(getProcedure)); })); if (proc < 0) { proc = 0; } } else { proc = 2; } } return proc; } } }); // node_modules/css-select/lib/attributes.js var require_attributes = __commonJS({ "node_modules/css-select/lib/attributes.js"(exports2) { "use strict"; var __importDefault = exports2 && exports2.__importDefault || function(mod) { return mod && mod.__esModule ? mod : { "default": mod }; }; Object.defineProperty(exports2, "__esModule", { value: true }); exports2.attributeRules = void 0; var boolbase_1 = __importDefault(require_boolbase()); var reChars = /[-[\]{}()*+?.,\\^$|#\s]/g; function escapeRegex(value) { return value.replace(reChars, "\\$&"); } var caseInsensitiveAttributes = /* @__PURE__ */ new Set([ "accept", "accept-charset", "align", "alink", "axis", "bgcolor", "charset", "checked", "clear", "codetype", "color", "compact", "declare", "defer", "dir", "direction", "disabled", "enctype", "face", "frame", "hreflang", "http-equiv", "lang", "language", "link", "media", "method", "multiple", "nohref", "noresize", "noshade", "nowrap", "readonly", "rel", "rev", "rules", "scope", "scrolling", "selected", "shape", "target", "text", "type", "valign", "valuetype", "vlink" ]); function shouldIgnoreCase(selector, options) { return typeof selector.ignoreCase === "boolean" ? selector.ignoreCase : selector.ignoreCase === "quirks" ? !!options.quirksMode : !options.xmlMode && caseInsensitiveAttributes.has(selector.name); } exports2.attributeRules = { equals: function(next, data, options) { var adapter = options.adapter; var name = data.name; var value = data.value; if (shouldIgnoreCase(data, options)) { value = value.toLowerCase(); return function(elem) { var attr = adapter.getAttributeValue(elem, name); return attr != null && attr.length === value.length && attr.toLowerCase() === value && next(elem); }; } return function(elem) { return adapter.getAttributeValue(elem, name) === value && next(elem); }; }, hyphen: function(next, data, options) { var adapter = options.adapter; var name = data.name; var value = data.value; var len = value.length; if (shouldIgnoreCase(data, options)) { value = value.toLowerCase(); return function hyphenIC(elem) { var attr = adapter.getAttributeValue(elem, name); return attr != null && (attr.length === len || attr.charAt(len) === "-") && attr.substr(0, len).toLowerCase() === value && next(elem); }; } return function hyphen(elem) { var attr = adapter.getAttributeValue(elem, name); return attr != null && (attr.length === len || attr.charAt(len) === "-") && attr.substr(0, len) === value && next(elem); }; }, element: function(next, data, options) { var adapter = options.adapter; var name = data.name, value = data.value; if (/\s/.test(value)) { return boolbase_1.default.falseFunc; } var regex = new RegExp("(?:^|\\s)".concat(escapeRegex(value), "(?:$|\\s)"), shouldIgnoreCase(data, options) ? "i" : ""); return function element(elem) { var attr = adapter.getAttributeValue(elem, name); return attr != null && attr.length >= value.length && regex.test(attr) && next(elem); }; }, exists: function(next, _a, _b) { var name = _a.name; var adapter = _b.adapter; return function(elem) { return adapter.hasAttrib(elem, name) && next(elem); }; }, start: function(next, data, options) { var adapter = options.adapter; var name = data.name; var value = data.value; var len = value.length; if (len === 0) { return boolbase_1.default.falseFunc; } if (shouldIgnoreCase(data, options)) { value = value.toLowerCase(); return function(elem) { var attr = adapter.getAttributeValue(elem, name); return attr != null && attr.length >= len && attr.substr(0, len).toLowerCase() === value && next(elem); }; } return function(elem) { var _a; return !!((_a = adapter.getAttributeValue(elem, name)) === null || _a === void 0 ? void 0 : _a.startsWith(value)) && next(elem); }; }, end: function(next, data, options) { var adapter = options.adapter; var name = data.name; var value = data.value; var len = -value.length; if (len === 0) { return boolbase_1.default.falseFunc; } if (shouldIgnoreCase(data, options)) { value = value.toLowerCase(); return function(elem) { var _a; return ((_a = adapter.getAttributeValue(elem, name)) === null || _a === void 0 ? void 0 : _a.substr(len).toLowerCase()) === value && next(elem); }; } return function(elem) { var _a; return !!((_a = adapter.getAttributeValue(elem, name)) === null || _a === void 0 ? void 0 : _a.endsWith(value)) && next(elem); }; }, any: function(next, data, options) { var adapter = options.adapter; var name = data.name, value = data.value; if (value === "") { return boolbase_1.default.falseFunc; } if (shouldIgnoreCase(data, options)) { var regex_1 = new RegExp(escapeRegex(value), "i"); return function anyIC(elem) { var attr = adapter.getAttributeValue(elem, name); return attr != null && attr.length >= value.length && regex_1.test(attr) && next(elem); }; } return function(elem) { var _a; return !!((_a = adapter.getAttributeValue(elem, name)) === null || _a === void 0 ? void 0 : _a.includes(value)) && next(elem); }; }, not: function(next, data, options) { var adapter = options.adapter; var name = data.name; var value = data.value; if (value === "") { return function(elem) { return !!adapter.getAttributeValue(elem, name) && next(elem); }; } else if (shouldIgnoreCase(data, options)) { value = value.toLowerCase(); return function(elem) { var attr = adapter.getAttributeValue(elem, name); return (attr == null || attr.length !== value.length || attr.toLowerCase() !== value) && next(elem); }; } return function(elem) { return adapter.getAttributeValue(elem, name) !== value && next(elem); }; } }; } }); // node_modules/nth-check/lib/parse.js var require_parse5 = __commonJS({ "node_modules/nth-check/lib/parse.js"(exports2) { "use strict"; Object.defineProperty(exports2, "__esModule", { value: true }); exports2.parse = void 0; var whitespace = /* @__PURE__ */ new Set([9, 10, 12, 13, 32]); var ZERO = "0".charCodeAt(0); var NINE = "9".charCodeAt(0); function parse(formula) { formula = formula.trim().toLowerCase(); if (formula === "even") { return [2, 0]; } else if (formula === "odd") { return [2, 1]; } var idx = 0; var a = 0; var sign = readSign(); var number = readNumber(); if (idx < formula.length && formula.charAt(idx) === "n") { idx++; a = sign * (number !== null && number !== void 0 ? number : 1); skipWhitespace(); if (idx < formula.length) { sign = readSign(); skipWhitespace(); number = readNumber(); } else { sign = number = 0; } } if (number === null || idx < formula.length) { throw new Error("n-th rule couldn't be parsed ('".concat(formula, "')")); } return [a, sign * number]; function readSign() { if (formula.charAt(idx) === "-") { idx++; return -1; } if (formula.charAt(idx) === "+") { idx++; } return 1; } function readNumber() { var start = idx; var value = 0; while (idx < formula.length && formula.charCodeAt(idx) >= ZERO && formula.charCodeAt(idx) <= NINE) { value = value * 10 + (formula.charCodeAt(idx) - ZERO); idx++; } return idx === start ? null : value; } function skipWhitespace() { while (idx < formula.length && whitespace.has(formula.charCodeAt(idx))) { idx++; } } } exports2.parse = parse; } }); // node_modules/nth-check/lib/compile.js var require_compile = __commonJS({ "node_modules/nth-check/lib/compile.js"(exports2) { "use strict"; var __importDefault = exports2 && exports2.__importDefault || function(mod) { return mod && mod.__esModule ? mod : { "default": mod }; }; Object.defineProperty(exports2, "__esModule", { value: true }); exports2.generate = exports2.compile = void 0; var boolbase_1 = __importDefault(require_boolbase()); function compile(parsed) { var a = parsed[0]; var b = parsed[1] - 1; if (b < 0 && a <= 0) return boolbase_1.default.falseFunc; if (a === -1) return function(index) { return index <= b; }; if (a === 0) return function(index) { return index === b; }; if (a === 1) return b < 0 ? boolbase_1.default.trueFunc : function(index) { return index >= b; }; var absA = Math.abs(a); var bMod = (b % absA + absA) % absA; return a > 1 ? function(index) { return index >= b && index % absA === bMod; } : function(index) { return index <= b && index % absA === bMod; }; } exports2.compile = compile; function generate(parsed) { var a = parsed[0]; var b = parsed[1] - 1; var n = 0; if (a < 0) { var aPos_1 = -a; var minValue_1 = (b % aPos_1 + aPos_1) % aPos_1; return function() { var val = minValue_1 + aPos_1 * n++; return val > b ? null : val; }; } if (a === 0) return b < 0 ? ( // There are no result — always return `null` function() { return null; } ) : ( // Return `b` exactly once function() { return n++ === 0 ? b : null; } ); if (b < 0) { b += a * Math.ceil(-b / a); } return function() { return a * n++ + b; }; } exports2.generate = generate; } }); // node_modules/nth-check/lib/index.js var require_lib7 = __commonJS({ "node_modules/nth-check/lib/index.js"(exports2) { "use strict"; Object.defineProperty(exports2, "__esModule", { value: true }); exports2.sequence = exports2.generate = exports2.compile = exports2.parse = void 0; var parse_js_1 = require_parse5(); Object.defineProperty(exports2, "parse", { enumerable: true, get: function() { return parse_js_1.parse; } }); var compile_js_1 = require_compile(); Object.defineProperty(exports2, "compile", { enumerable: true, get: function() { return compile_js_1.compile; } }); Object.defineProperty(exports2, "generate", { enumerable: true, get: function() { return compile_js_1.generate; } }); function nthCheck(formula) { return (0, compile_js_1.compile)((0, parse_js_1.parse)(formula)); } exports2.default = nthCheck; function sequence(formula) { return (0, compile_js_1.generate)((0, parse_js_1.parse)(formula)); } exports2.sequence = sequence; } }); // node_modules/css-select/lib/pseudo-selectors/filters.js var require_filters = __commonJS({ "node_modules/css-select/lib/pseudo-selectors/filters.js"(exports2) { "use strict"; var __importDefault = exports2 && exports2.__importDefault || function(mod) { return mod && mod.__esModule ? mod : { "default": mod }; }; Object.defineProperty(exports2, "__esModule", { value: true }); exports2.filters = void 0; var nth_check_1 = __importDefault(require_lib7()); var boolbase_1 = __importDefault(require_boolbase()); function getChildFunc(next, adapter) { return function(elem) { var parent = adapter.getParent(elem); return parent != null && adapter.isTag(parent) && next(elem); }; } exports2.filters = { contains: function(next, text, _a) { var adapter = _a.adapter; return function contains(elem) { return next(elem) && adapter.getText(elem).includes(text); }; }, icontains: function(next, text, _a) { var adapter = _a.adapter; var itext = text.toLowerCase(); return function icontains(elem) { return next(elem) && adapter.getText(elem).toLowerCase().includes(itext); }; }, // Location specific methods "nth-child": function(next, rule, _a) { var adapter = _a.adapter, equals = _a.equals; var func = (0, nth_check_1.default)(rule); if (func === boolbase_1.default.falseFunc) return boolbase_1.default.falseFunc; if (func === boolbase_1.default.trueFunc) return getChildFunc(next, adapter); return function nthChild(elem) { var siblings = adapter.getSiblings(elem); var pos = 0; for (var i = 0; i < siblings.length; i++) { if (equals(elem, siblings[i])) break; if (adapter.isTag(siblings[i])) { pos++; } } return func(pos) && next(elem); }; }, "nth-last-child": function(next, rule, _a) { var adapter = _a.adapter, equals = _a.equals; var func = (0, nth_check_1.default)(rule); if (func === boolbase_1.default.falseFunc) return boolbase_1.default.falseFunc; if (func === boolbase_1.default.trueFunc) return getChildFunc(next, adapter); return function nthLastChild(elem) { var siblings = adapter.getSiblings(elem); var pos = 0; for (var i = siblings.length - 1; i >= 0; i--) { if (equals(elem, siblings[i])) break; if (adapter.isTag(siblings[i])) { pos++; } } return func(pos) && next(elem); }; }, "nth-of-type": function(next, rule, _a) { var adapter = _a.adapter, equals = _a.equals; var func = (0, nth_check_1.default)(rule); if (func === boolbase_1.default.falseFunc) return boolbase_1.default.falseFunc; if (func === boolbase_1.default.trueFunc) return getChildFunc(next, adapter); return function nthOfType(elem) { var siblings = adapter.getSiblings(elem); var pos = 0; for (var i = 0; i < siblings.length; i++) { var currentSibling = siblings[i]; if (equals(elem, currentSibling)) break; if (adapter.isTag(currentSibling) && adapter.getName(currentSibling) === adapter.getName(elem)) { pos++; } } return func(pos) && next(elem); }; }, "nth-last-of-type": function(next, rule, _a) { var adapter = _a.adapter, equals = _a.equals; var func = (0, nth_check_1.default)(rule); if (func === boolbase_1.default.falseFunc) return boolbase_1.default.falseFunc; if (func === boolbase_1.default.trueFunc) return getChildFunc(next, adapter); return function nthLastOfType(elem) { var siblings = adapter.getSiblings(elem); var pos = 0; for (var i = siblings.length - 1; i >= 0; i--) { var currentSibling = siblings[i]; if (equals(elem, currentSibling)) break; if (adapter.isTag(currentSibling) && adapter.getName(currentSibling) === adapter.getName(elem)) { pos++; } } return func(pos) && next(elem); }; }, // TODO determine the actual root element root: function(next, _rule, _a) { var adapter = _a.adapter; return function(elem) { var parent = adapter.getParent(elem); return (parent == null || !adapter.isTag(parent)) && next(elem); }; }, scope: function(next, rule, options, context) { var equals = options.equals; if (!context || context.length === 0) { return exports2.filters["root"](next, rule, options); } if (context.length === 1) { return function(elem) { return equals(context[0], elem) && next(elem); }; } return function(elem) { return context.includes(elem) && next(elem); }; }, hover: dynamicStatePseudo("isHovered"), visited: dynamicStatePseudo("isVisited"), active: dynamicStatePseudo("isActive") }; function dynamicStatePseudo(name) { return function dynamicPseudo(next, _rule, _a) { var adapter = _a.adapter; var func = adapter[name]; if (typeof func !== "function") { return boolbase_1.default.falseFunc; } return function active(elem) { return func(elem) && next(elem); }; }; } } }); // node_modules/css-select/lib/pseudo-selectors/pseudos.js var require_pseudos = __commonJS({ "node_modules/css-select/lib/pseudo-selectors/pseudos.js"(exports2) { "use strict"; Object.defineProperty(exports2, "__esModule", { value: true }); exports2.verifyPseudoArgs = exports2.pseudos = void 0; exports2.pseudos = { empty: function(elem, _a) { var adapter = _a.adapter; return !adapter.getChildren(elem).some(function(elem2) { return adapter.isTag(elem2) || adapter.getText(elem2) !== ""; }); }, "first-child": function(elem, _a) { var adapter = _a.adapter, equals = _a.equals; if (adapter.prevElementSibling) { return adapter.prevElementSibling(elem) == null; } var firstChild = adapter.getSiblings(elem).find(function(elem2) { return adapter.isTag(elem2); }); return firstChild != null && equals(elem, firstChild); }, "last-child": function(elem, _a) { var adapter = _a.adapter, equals = _a.equals; var siblings = adapter.getSiblings(elem); for (var i = siblings.length - 1; i >= 0; i--) { if (equals(elem, siblings[i])) return true; if (adapter.isTag(siblings[i])) break; } return false; }, "first-of-type": function(elem, _a) { var adapter = _a.adapter, equals = _a.equals; var siblings = adapter.getSiblings(elem); var elemName = adapter.getName(elem); for (var i = 0; i < siblings.length; i++) { var currentSibling = siblings[i]; if (equals(elem, currentSibling)) return true; if (adapter.isTag(currentSibling) && adapter.getName(currentSibling) === elemName) { break; } } return false; }, "last-of-type": function(elem, _a) { var adapter = _a.adapter, equals = _a.equals; var siblings = adapter.getSiblings(elem); var elemName = adapter.getName(elem); for (var i = siblings.length - 1; i >= 0; i--) { var currentSibling = siblings[i]; if (equals(elem, currentSibling)) return true; if (adapter.isTag(currentSibling) && adapter.getName(currentSibling) === elemName) { break; } } return false; }, "only-of-type": function(elem, _a) { var adapter = _a.adapter, equals = _a.equals; var elemName = adapter.getName(elem); return adapter.getSiblings(elem).every(function(sibling) { return equals(elem, sibling) || !adapter.isTag(sibling) || adapter.getName(sibling) !== elemName; }); }, "only-child": function(elem, _a) { var adapter = _a.adapter, equals = _a.equals; return adapter.getSiblings(elem).every(function(sibling) { return equals(elem, sibling) || !adapter.isTag(sibling); }); } }; function verifyPseudoArgs(func, name, subselect, argIndex) { if (subselect === null) { if (func.length > argIndex) { throw new Error("Pseudo-class :".concat(name, " requires an argument")); } } else if (func.length === argIndex) { throw new Error("Pseudo-class :".concat(name, " doesn't have any arguments")); } } exports2.verifyPseudoArgs = verifyPseudoArgs; } }); // node_modules/css-select/lib/pseudo-selectors/aliases.js var require_aliases = __commonJS({ "node_modules/css-select/lib/pseudo-selectors/aliases.js"(exports2) { "use strict"; Object.defineProperty(exports2, "__esModule", { value: true }); exports2.aliases = void 0; exports2.aliases = { // Links "any-link": ":is(a, area, link)[href]", link: ":any-link:not(:visited)", // Forms // https://html.spec.whatwg.org/multipage/scripting.html#disabled-elements disabled: ":is(\n :is(button, input, select, textarea, optgroup, option)[disabled],\n optgroup[disabled] > option,\n fieldset[disabled]:not(fieldset[disabled] legend:first-of-type *)\n )", enabled: ":not(:disabled)", checked: ":is(:is(input[type=radio], input[type=checkbox])[checked], option:selected)", required: ":is(input, select, textarea)[required]", optional: ":is(input, select, textarea):not([required])", // JQuery extensions // https://html.spec.whatwg.org/multipage/form-elements.html#concept-option-selectedness selected: "option:is([selected], select:not([multiple]):not(:has(> option[selected])) > :first-of-type)", checkbox: "[type=checkbox]", file: "[type=file]", password: "[type=password]", radio: "[type=radio]", reset: "[type=reset]", image: "[type=image]", submit: "[type=submit]", parent: ":not(:empty)", header: ":is(h1, h2, h3, h4, h5, h6)", button: ":is(button, input[type=button])", input: ":is(input, textarea, select, button)", text: "input:is(:not([type!='']), [type=text])" }; } }); // node_modules/css-select/lib/pseudo-selectors/subselects.js var require_subselects = __commonJS({ "node_modules/css-select/lib/pseudo-selectors/subselects.js"(exports2) { "use strict"; var __spreadArray = exports2 && exports2.__spreadArray || function(to, from, pack) { if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) { if (ar || !(i in from)) { if (!ar) ar = Array.prototype.slice.call(from, 0, i); ar[i] = from[i]; } } return to.concat(ar || Array.prototype.slice.call(from)); }; var __importDefault = exports2 && exports2.__importDefault || function(mod) { return mod && mod.__esModule ? mod : { "default": mod }; }; Object.defineProperty(exports2, "__esModule", { value: true }); exports2.subselects = exports2.getNextSiblings = exports2.ensureIsTag = exports2.PLACEHOLDER_ELEMENT = void 0; var boolbase_1 = __importDefault(require_boolbase()); var sort_js_1 = require_sort(); exports2.PLACEHOLDER_ELEMENT = {}; function ensureIsTag(next, adapter) { if (next === boolbase_1.default.falseFunc) return boolbase_1.default.falseFunc; return function(elem) { return adapter.isTag(elem) && next(elem); }; } exports2.ensureIsTag = ensureIsTag; function getNextSiblings(elem, adapter) { var siblings = adapter.getSiblings(elem); if (siblings.length <= 1) return []; var elemIndex = siblings.indexOf(elem); if (elemIndex < 0 || elemIndex === siblings.length - 1) return []; return siblings.slice(elemIndex + 1).filter(adapter.isTag); } exports2.getNextSiblings = getNextSiblings; function copyOptions(options) { return { xmlMode: !!options.xmlMode, lowerCaseAttributeNames: !!options.lowerCaseAttributeNames, lowerCaseTags: !!options.lowerCaseTags, quirksMode: !!options.quirksMode, cacheResults: !!options.cacheResults, pseudos: options.pseudos, adapter: options.adapter, equals: options.equals }; } var is = function(next, token, options, context, compileToken) { var func = compileToken(token, copyOptions(options), context); return func === boolbase_1.default.trueFunc ? next : func === boolbase_1.default.falseFunc ? boolbase_1.default.falseFunc : function(elem) { return func(elem) && next(elem); }; }; exports2.subselects = { is, /** * `:matches` and `:where` are aliases for `:is`. */ matches: is, where: is, not: function(next, token, options, context, compileToken) { var func = compileToken(token, copyOptions(options), context); return func === boolbase_1.default.falseFunc ? next : func === boolbase_1.default.trueFunc ? boolbase_1.default.falseFunc : function(elem) { return !func(elem) && next(elem); }; }, has: function(next, subselect, options, _context, compileToken) { var adapter = options.adapter; var opts = copyOptions(options); opts.relativeSelector = true; var context = subselect.some(function(s) { return s.some(sort_js_1.isTraversal); }) ? ( // Used as a placeholder. Will be replaced with the actual element. [exports2.PLACEHOLDER_ELEMENT] ) : void 0; var compiled = compileToken(subselect, opts, context); if (compiled === boolbase_1.default.falseFunc) return boolbase_1.default.falseFunc; var hasElement = ensureIsTag(compiled, adapter); if (context && compiled !== boolbase_1.default.trueFunc) { var _a = compiled.shouldTestNextSiblings, shouldTestNextSiblings_1 = _a === void 0 ? false : _a; return function(elem) { if (!next(elem)) return false; context[0] = elem; var childs = adapter.getChildren(elem); var nextElements = shouldTestNextSiblings_1 ? __spreadArray(__spreadArray([], childs, true), getNextSiblings(elem, adapter), true) : childs; return adapter.existsOne(hasElement, nextElements); }; } return function(elem) { return next(elem) && adapter.existsOne(hasElement, adapter.getChildren(elem)); }; } }; } }); // node_modules/css-select/lib/pseudo-selectors/index.js var require_pseudo_selectors = __commonJS({ "node_modules/css-select/lib/pseudo-selectors/index.js"(exports2) { "use strict"; Object.defineProperty(exports2, "__esModule", { value: true }); exports2.compilePseudoSelector = exports2.aliases = exports2.pseudos = exports2.filters = void 0; var css_what_1 = require_commonjs(); var filters_js_1 = require_filters(); Object.defineProperty(exports2, "filters", { enumerable: true, get: function() { return filters_js_1.filters; } }); var pseudos_js_1 = require_pseudos(); Object.defineProperty(exports2, "pseudos", { enumerable: true, get: function() { return pseudos_js_1.pseudos; } }); var aliases_js_1 = require_aliases(); Object.defineProperty(exports2, "aliases", { enumerable: true, get: function() { return aliases_js_1.aliases; } }); var subselects_js_1 = require_subselects(); function compilePseudoSelector(next, selector, options, context, compileToken) { var _a; var name = selector.name, data = selector.data; if (Array.isArray(data)) { if (!(name in subselects_js_1.subselects)) { throw new Error("Unknown pseudo-class :".concat(name, "(").concat(data, ")")); } return subselects_js_1.subselects[name](next, data, options, context, compileToken); } var userPseudo = (_a = options.pseudos) === null || _a === void 0 ? void 0 : _a[name]; var stringPseudo = typeof userPseudo === "string" ? userPseudo : aliases_js_1.aliases[name]; if (typeof stringPseudo === "string") { if (data != null) { throw new Error("Pseudo ".concat(name, " doesn't have any arguments")); } var alias = (0, css_what_1.parse)(stringPseudo); return subselects_js_1.subselects["is"](next, alias, options, context, compileToken); } if (typeof userPseudo === "function") { (0, pseudos_js_1.verifyPseudoArgs)(userPseudo, name, data, 1); return function(elem) { return userPseudo(elem, data) && next(elem); }; } if (name in filters_js_1.filters) { return filters_js_1.filters[name](next, data, options, context); } if (name in pseudos_js_1.pseudos) { var pseudo_1 = pseudos_js_1.pseudos[name]; (0, pseudos_js_1.verifyPseudoArgs)(pseudo_1, name, data, 2); return function(elem) { return pseudo_1(elem, options, data) && next(elem); }; } throw new Error("Unknown pseudo-class :".concat(name)); } exports2.compilePseudoSelector = compilePseudoSelector; } }); // node_modules/css-select/lib/general.js var require_general = __commonJS({ "node_modules/css-select/lib/general.js"(exports2) { "use strict"; Object.defineProperty(exports2, "__esModule", { value: true }); exports2.compileGeneralSelector = void 0; var attributes_js_1 = require_attributes(); var index_js_1 = require_pseudo_selectors(); var css_what_1 = require_commonjs(); function getElementParent(node, adapter) { var parent = adapter.getParent(node); if (parent && adapter.isTag(parent)) { return parent; } return null; } function compileGeneralSelector(next, selector, options, context, compileToken) { var adapter = options.adapter, equals = options.equals; switch (selector.type) { case css_what_1.SelectorType.PseudoElement: { throw new Error("Pseudo-elements are not supported by css-select"); } case css_what_1.SelectorType.ColumnCombinator: { throw new Error("Column combinators are not yet supported by css-select"); } case css_what_1.SelectorType.Attribute: { if (selector.namespace != null) { throw new Error("Namespaced attributes are not yet supported by css-select"); } if (!options.xmlMode || options.lowerCaseAttributeNames) { selector.name = selector.name.toLowerCase(); } return attributes_js_1.attributeRules[selector.action](next, selector, options); } case css_what_1.SelectorType.Pseudo: { return (0, index_js_1.compilePseudoSelector)(next, selector, options, context, compileToken); } case css_what_1.SelectorType.Tag: { if (selector.namespace != null) { throw new Error("Namespaced tag names are not yet supported by css-select"); } var name_1 = selector.name; if (!options.xmlMode || options.lowerCaseTags) { name_1 = name_1.toLowerCase(); } return function tag(elem) { return adapter.getName(elem) === name_1 && next(elem); }; } case css_what_1.SelectorType.Descendant: { if (options.cacheResults === false || typeof WeakSet === "undefined") { return function descendant(elem) { var current = elem; while (current = getElementParent(current, adapter)) { if (next(current)) { return true; } } return false; }; } var isFalseCache_1 = /* @__PURE__ */ new WeakSet(); return function cachedDescendant(elem) { var current = elem; while (current = getElementParent(current, adapter)) { if (!isFalseCache_1.has(current)) { if (adapter.isTag(current) && next(current)) { return true; } isFalseCache_1.add(current); } } return false; }; } case "_flexibleDescendant": { return function flexibleDescendant(elem) { var current = elem; do { if (next(current)) return true; } while (current = getElementParent(current, adapter)); return false; }; } case css_what_1.SelectorType.Parent: { return function parent(elem) { return adapter.getChildren(elem).some(function(elem2) { return adapter.isTag(elem2) && next(elem2); }); }; } case css_what_1.SelectorType.Child: { return function child(elem) { var parent = adapter.getParent(elem); return parent != null && adapter.isTag(parent) && next(parent); }; } case css_what_1.SelectorType.Sibling: { return function sibling(elem) { var siblings = adapter.getSiblings(elem); for (var i = 0; i < siblings.length; i++) { var currentSibling = siblings[i]; if (equals(elem, currentSibling)) break; if (adapter.isTag(currentSibling) && next(currentSibling)) { return true; } } return false; }; } case css_what_1.SelectorType.Adjacent: { if (adapter.prevElementSibling) { return function adjacent(elem) { var previous = adapter.prevElementSibling(elem); return previous != null && next(previous); }; } return function adjacent(elem) { var siblings = adapter.getSiblings(elem); var lastElement; for (var i = 0; i < siblings.length; i++) { var currentSibling = siblings[i]; if (equals(elem, currentSibling)) break; if (adapter.isTag(currentSibling)) { lastElement = currentSibling; } } return !!lastElement && next(lastElement); }; } case css_what_1.SelectorType.Universal: { if (selector.namespace != null && selector.namespace !== "*") { throw new Error("Namespaced universal selectors are not yet supported by css-select"); } return next; } } } exports2.compileGeneralSelector = compileGeneralSelector; } }); // node_modules/css-select/lib/compile.js var require_compile2 = __commonJS({ "node_modules/css-select/lib/compile.js"(exports2) { "use strict"; var __createBinding = exports2 && exports2.__createBinding || (Object.create ? function(o, m, k, k2) { if (k2 === void 0) k2 = k; var desc = Object.getOwnPropertyDescriptor(m, k); if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { desc = { enumerable: true, get: function() { return m[k]; } }; } Object.defineProperty(o, k2, desc); } : function(o, m, k, k2) { if (k2 === void 0) k2 = k; o[k2] = m[k]; }); var __setModuleDefault = exports2 && exports2.__setModuleDefault || (Object.create ? function(o, v) { Object.defineProperty(o, "default", { enumerable: true, value: v }); } : function(o, v) { o["default"] = v; }); var __importStar = exports2 && exports2.__importStar || function(mod) { if (mod && mod.__esModule) return mod; var result = {}; if (mod != null) { for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); } __setModuleDefault(result, mod); return result; }; var __importDefault = exports2 && exports2.__importDefault || function(mod) { return mod && mod.__esModule ? mod : { "default": mod }; }; Object.defineProperty(exports2, "__esModule", { value: true }); exports2.compileToken = exports2.compileUnsafe = exports2.compile = void 0; var css_what_1 = require_commonjs(); var boolbase_1 = __importDefault(require_boolbase()); var sort_js_1 = __importStar(require_sort()); var general_js_1 = require_general(); var subselects_js_1 = require_subselects(); function compile(selector, options, context) { var next = compileUnsafe(selector, options, context); return (0, subselects_js_1.ensureIsTag)(next, options.adapter); } exports2.compile = compile; function compileUnsafe(selector, options, context) { var token = typeof selector === "string" ? (0, css_what_1.parse)(selector) : selector; return compileToken(token, options, context); } exports2.compileUnsafe = compileUnsafe; function includesScopePseudo(t) { return t.type === css_what_1.SelectorType.Pseudo && (t.name === "scope" || Array.isArray(t.data) && t.data.some(function(data) { return data.some(includesScopePseudo); })); } var DESCENDANT_TOKEN = { type: css_what_1.SelectorType.Descendant }; var FLEXIBLE_DESCENDANT_TOKEN = { type: "_flexibleDescendant" }; var SCOPE_TOKEN = { type: css_what_1.SelectorType.Pseudo, name: "scope", data: null }; function absolutize(token, _a, context) { var adapter = _a.adapter; var hasContext = !!(context === null || context === void 0 ? void 0 : context.every(function(e) { var parent = adapter.isTag(e) && adapter.getParent(e); return e === subselects_js_1.PLACEHOLDER_ELEMENT || parent && adapter.isTag(parent); })); for (var _i = 0, token_1 = token; _i < token_1.length; _i++) { var t = token_1[_i]; if (t.length > 0 && (0, sort_js_1.isTraversal)(t[0]) && t[0].type !== css_what_1.SelectorType.Descendant) { } else if (hasContext && !t.some(includesScopePseudo)) { t.unshift(DESCENDANT_TOKEN); } else { continue; } t.unshift(SCOPE_TOKEN); } } function compileToken(token, options, context) { var _a; token.forEach(sort_js_1.default); context = (_a = options.context) !== null && _a !== void 0 ? _a : context; var isArrayContext = Array.isArray(context); var finalContext = context && (Array.isArray(context) ? context : [context]); if (options.relativeSelector !== false) { absolutize(token, options, finalContext); } else if (token.some(function(t) { return t.length > 0 && (0, sort_js_1.isTraversal)(t[0]); })) { throw new Error("Relative selectors are not allowed when the `relativeSelector` option is disabled"); } var shouldTestNextSiblings = false; var query = token.map(function(rules) { if (rules.length >= 2) { var first = rules[0], second = rules[1]; if (first.type !== css_what_1.SelectorType.Pseudo || first.name !== "scope") { } else if (isArrayContext && second.type === css_what_1.SelectorType.Descendant) { rules[1] = FLEXIBLE_DESCENDANT_TOKEN; } else if (second.type === css_what_1.SelectorType.Adjacent || second.type === css_what_1.SelectorType.Sibling) { shouldTestNextSiblings = true; } } return compileRules(rules, options, finalContext); }).reduce(reduceRules, boolbase_1.default.falseFunc); query.shouldTestNextSiblings = shouldTestNextSiblings; return query; } exports2.compileToken = compileToken; function compileRules(rules, options, context) { var _a; return rules.reduce(function(previous, rule) { return previous === boolbase_1.default.falseFunc ? boolbase_1.default.falseFunc : (0, general_js_1.compileGeneralSelector)(previous, rule, options, context, compileToken); }, (_a = options.rootFunc) !== null && _a !== void 0 ? _a : boolbase_1.default.trueFunc); } function reduceRules(a, b) { if (b === boolbase_1.default.falseFunc || a === boolbase_1.default.trueFunc) { return a; } if (a === boolbase_1.default.falseFunc || b === boolbase_1.default.trueFunc) { return b; } return function combine(elem) { return a(elem) || b(elem); }; } } }); // node_modules/css-select/lib/index.js var require_lib8 = __commonJS({ "node_modules/css-select/lib/index.js"(exports2) { "use strict"; var __createBinding = exports2 && exports2.__createBinding || (Object.create ? function(o, m, k, k2) { if (k2 === void 0) k2 = k; var desc = Object.getOwnPropertyDescriptor(m, k); if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { desc = { enumerable: true, get: function() { return m[k]; } }; } Object.defineProperty(o, k2, desc); } : function(o, m, k, k2) { if (k2 === void 0) k2 = k; o[k2] = m[k]; }); var __setModuleDefault = exports2 && exports2.__setModuleDefault || (Object.create ? function(o, v) { Object.defineProperty(o, "default", { enumerable: true, value: v }); } : function(o, v) { o["default"] = v; }); var __importStar = exports2 && exports2.__importStar || function(mod) { if (mod && mod.__esModule) return mod; var result = {}; if (mod != null) { for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); } __setModuleDefault(result, mod); return result; }; var __importDefault = exports2 && exports2.__importDefault || function(mod) { return mod && mod.__esModule ? mod : { "default": mod }; }; Object.defineProperty(exports2, "__esModule", { value: true }); exports2.aliases = exports2.pseudos = exports2.filters = exports2.is = exports2.selectOne = exports2.selectAll = exports2.prepareContext = exports2._compileToken = exports2._compileUnsafe = exports2.compile = void 0; var DomUtils = __importStar(require_lib6()); var boolbase_1 = __importDefault(require_boolbase()); var compile_js_1 = require_compile2(); var subselects_js_1 = require_subselects(); var defaultEquals = function(a, b) { return a === b; }; var defaultOptions = { adapter: DomUtils, equals: defaultEquals }; function convertOptionFormats(options) { var _a, _b, _c, _d; var opts = options !== null && options !== void 0 ? options : defaultOptions; (_a = opts.adapter) !== null && _a !== void 0 ? _a : opts.adapter = DomUtils; (_b = opts.equals) !== null && _b !== void 0 ? _b : opts.equals = (_d = (_c = opts.adapter) === null || _c === void 0 ? void 0 : _c.equals) !== null && _d !== void 0 ? _d : defaultEquals; return opts; } function wrapCompile(func) { return function addAdapter(selector, options, context) { var opts = convertOptionFormats(options); return func(selector, opts, context); }; } exports2.compile = wrapCompile(compile_js_1.compile); exports2._compileUnsafe = wrapCompile(compile_js_1.compileUnsafe); exports2._compileToken = wrapCompile(compile_js_1.compileToken); function getSelectorFunc(searchFunc) { return function select(query, elements, options) { var opts = convertOptionFormats(options); if (typeof query !== "function") { query = (0, compile_js_1.compileUnsafe)(query, opts, elements); } var filteredElements = prepareContext(elements, opts.adapter, query.shouldTestNextSiblings); return searchFunc(query, filteredElements, opts); }; } function prepareContext(elems, adapter, shouldTestNextSiblings) { if (shouldTestNextSiblings === void 0) { shouldTestNextSiblings = false; } if (shouldTestNextSiblings) { elems = appendNextSiblings(elems, adapter); } return Array.isArray(elems) ? adapter.removeSubsets(elems) : adapter.getChildren(elems); } exports2.prepareContext = prepareContext; function appendNextSiblings(elem, adapter) { var elems = Array.isArray(elem) ? elem.slice(0) : [elem]; var elemsLength = elems.length; for (var i = 0; i < elemsLength; i++) { var nextSiblings = (0, subselects_js_1.getNextSiblings)(elems[i], adapter); elems.push.apply(elems, nextSiblings); } return elems; } exports2.selectAll = getSelectorFunc(function(query, elems, options) { return query === boolbase_1.default.falseFunc || !elems || elems.length === 0 ? [] : options.adapter.findAll(query, elems); }); exports2.selectOne = getSelectorFunc(function(query, elems, options) { return query === boolbase_1.default.falseFunc || !elems || elems.length === 0 ? null : options.adapter.findOne(query, elems); }); function is(elem, query, options) { var opts = convertOptionFormats(options); return (typeof query === "function" ? query : (0, compile_js_1.compile)(query, opts))(elem); } exports2.is = is; exports2.default = exports2.selectAll; var index_js_1 = require_pseudo_selectors(); Object.defineProperty(exports2, "filters", { enumerable: true, get: function() { return index_js_1.filters; } }); Object.defineProperty(exports2, "pseudos", { enumerable: true, get: function() { return index_js_1.pseudos; } }); Object.defineProperty(exports2, "aliases", { enumerable: true, get: function() { return index_js_1.aliases; } }); } }); // node_modules/svgo/lib/svgo/css-select-adapter.js var require_css_select_adapter = __commonJS({ "node_modules/svgo/lib/svgo/css-select-adapter.js"(exports2, module2) { "use strict"; var isTag = (node) => { return node.type === "element"; }; var existsOne = (test, elems) => { return elems.some((elem) => { if (isTag(elem)) { return test(elem) || existsOne(test, getChildren(elem)); } else { return false; } }); }; var getAttributeValue = (elem, name) => { return elem.attributes[name]; }; var getChildren = (node) => { return node.children || []; }; var getName = (elemAst) => { return elemAst.name; }; var getParent = (node) => { return node.parentNode || null; }; var getSiblings = (elem) => { var parent = getParent(elem); return parent ? getChildren(parent) : []; }; var getText = (node) => { if (node.children[0].type === "text" && node.children[0].type === "cdata") { return node.children[0].value; } return ""; }; var hasAttrib = (elem, name) => { return elem.attributes[name] !== void 0; }; var removeSubsets = (nodes) => { let idx = nodes.length; let node; let ancestor; let replace; while (--idx > -1) { node = ancestor = nodes[idx]; nodes[idx] = null; replace = true; while (ancestor) { if (nodes.includes(ancestor)) { replace = false; nodes.splice(idx, 1); break; } ancestor = getParent(ancestor); } if (replace) { nodes[idx] = node; } } return nodes; }; var findAll = (test, elems) => { const result = []; for (const elem of elems) { if (isTag(elem)) { if (test(elem)) { result.push(elem); } result.push(...findAll(test, getChildren(elem))); } } return result; }; var findOne = (test, elems) => { for (const elem of elems) { if (isTag(elem)) { if (test(elem)) { return elem; } const result = findOne(test, getChildren(elem)); if (result) { return result; } } } return null; }; var svgoCssSelectAdapter = { isTag, existsOne, getAttributeValue, getChildren, getName, getParent, getSiblings, getText, hasAttrib, removeSubsets, findAll, findOne }; module2.exports = svgoCssSelectAdapter; } }); // node_modules/svgo/lib/xast.js var require_xast = __commonJS({ "node_modules/svgo/lib/xast.js"(exports2) { "use strict"; var { selectAll, selectOne, is } = require_lib8(); var xastAdaptor = require_css_select_adapter(); var cssSelectOptions = { xmlMode: true, adapter: xastAdaptor }; var querySelectorAll = (node, selector) => { return selectAll(selector, node, cssSelectOptions); }; exports2.querySelectorAll = querySelectorAll; var querySelector = (node, selector) => { return selectOne(selector, node, cssSelectOptions); }; exports2.querySelector = querySelector; var matches = (node, selector) => { return is(node, selector, cssSelectOptions); }; exports2.matches = matches; var visitSkip = Symbol(); exports2.visitSkip = visitSkip; var visit = (node, visitor, parentNode) => { const callbacks = visitor[node.type]; if (callbacks && callbacks.enter) { const symbol = callbacks.enter(node, parentNode); if (symbol === visitSkip) { return; } } if (node.type === "root") { for (const child of node.children) { visit(child, visitor, node); } } if (node.type === "element") { if (parentNode.children.includes(node)) { for (const child of node.children) { visit(child, visitor, node); } } } if (callbacks && callbacks.exit) { callbacks.exit(node, parentNode); } }; exports2.visit = visit; var detachNodeFromParent = (node, parentNode) => { parentNode.children = parentNode.children.filter((child) => child !== node); }; exports2.detachNodeFromParent = detachNodeFromParent; } }); // node_modules/svgo/lib/svgo/plugins.js var require_plugins = __commonJS({ "node_modules/svgo/lib/svgo/plugins.js"(exports2) { "use strict"; var { visit } = require_xast(); var invokePlugins = (ast, info, plugins, overrides, globalOverrides) => { for (const plugin of plugins) { const override = overrides == null ? null : overrides[plugin.name]; if (override === false) { continue; } const params = { ...plugin.params, ...globalOverrides, ...override }; const visitor = plugin.fn(ast, params, info); if (visitor != null) { visit(ast, visitor); } } }; exports2.invokePlugins = invokePlugins; var createPreset = ({ name, plugins }) => { return { name, fn: (ast, params, info) => { const { floatPrecision, overrides } = params; const globalOverrides = {}; if (floatPrecision != null) { globalOverrides.floatPrecision = floatPrecision; } if (overrides) { const pluginNames = plugins.map(({ name: name2 }) => name2); for (const pluginName of Object.keys(overrides)) { if (!pluginNames.includes(pluginName)) { console.warn( `You are trying to configure ${pluginName} which is not part of ${name}. Try to put it before or after, for example plugins: [ { name: '${name}', }, '${pluginName}' ] ` ); } } } invokePlugins(ast, info, plugins, overrides, globalOverrides); } }; }; exports2.createPreset = createPreset; } }); // node_modules/svgo/plugins/removeDoctype.js var require_removeDoctype = __commonJS({ "node_modules/svgo/plugins/removeDoctype.js"(exports2) { "use strict"; var { detachNodeFromParent } = require_xast(); exports2.name = "removeDoctype"; exports2.description = "removes doctype declaration"; exports2.fn = () => { return { doctype: { enter: (node, parentNode) => { detachNodeFromParent(node, parentNode); } } }; }; } }); // node_modules/svgo/plugins/removeXMLProcInst.js var require_removeXMLProcInst = __commonJS({ "node_modules/svgo/plugins/removeXMLProcInst.js"(exports2) { "use strict"; var { detachNodeFromParent } = require_xast(); exports2.name = "removeXMLProcInst"; exports2.description = "removes XML processing instructions"; exports2.fn = () => { return { instruction: { enter: (node, parentNode) => { if (node.name === "xml") { detachNodeFromParent(node, parentNode); } } } }; }; } }); // node_modules/svgo/plugins/removeComments.js var require_removeComments = __commonJS({ "node_modules/svgo/plugins/removeComments.js"(exports2) { "use strict"; var { detachNodeFromParent } = require_xast(); exports2.name = "removeComments"; exports2.description = "removes comments"; exports2.fn = () => { return { comment: { enter: (node, parentNode) => { if (node.value.charAt(0) !== "!") { detachNodeFromParent(node, parentNode); } } } }; }; } }); // node_modules/svgo/plugins/removeMetadata.js var require_removeMetadata = __commonJS({ "node_modules/svgo/plugins/removeMetadata.js"(exports2) { "use strict"; var { detachNodeFromParent } = require_xast(); exports2.name = "removeMetadata"; exports2.description = "removes "; exports2.fn = () => { return { element: { enter: (node, parentNode) => { if (node.name === "metadata") { detachNodeFromParent(node, parentNode); } } } }; }; } }); // node_modules/svgo/plugins/removeEditorsNSData.js var require_removeEditorsNSData = __commonJS({ "node_modules/svgo/plugins/removeEditorsNSData.js"(exports2) { "use strict"; var { detachNodeFromParent } = require_xast(); var { editorNamespaces } = require_collections(); exports2.name = "removeEditorsNSData"; exports2.description = "removes editors namespaces, elements and attributes"; exports2.fn = (_root, params) => { let namespaces = editorNamespaces; if (Array.isArray(params.additionalNamespaces)) { namespaces = [...editorNamespaces, ...params.additionalNamespaces]; } const prefixes = []; return { element: { enter: (node, parentNode) => { if (node.name === "svg") { for (const [name, value] of Object.entries(node.attributes)) { if (name.startsWith("xmlns:") && namespaces.includes(value)) { prefixes.push(name.slice("xmlns:".length)); delete node.attributes[name]; } } } for (const name of Object.keys(node.attributes)) { if (name.includes(":")) { const [prefix] = name.split(":"); if (prefixes.includes(prefix)) { delete node.attributes[name]; } } } if (node.name.includes(":")) { const [prefix] = node.name.split(":"); if (prefixes.includes(prefix)) { detachNodeFromParent(node, parentNode); } } } } }; }; } }); // node_modules/svgo/plugins/cleanupAttrs.js var require_cleanupAttrs = __commonJS({ "node_modules/svgo/plugins/cleanupAttrs.js"(exports2) { "use strict"; exports2.name = "cleanupAttrs"; exports2.description = "cleanups attributes from newlines, trailing and repeating spaces"; var regNewlinesNeedSpace = /(\S)\r?\n(\S)/g; var regNewlines = /\r?\n/g; var regSpaces = /\s{2,}/g; exports2.fn = (root, params) => { const { newlines = true, trim = true, spaces = true } = params; return { element: { enter: (node) => { for (const name of Object.keys(node.attributes)) { if (newlines) { node.attributes[name] = node.attributes[name].replace( regNewlinesNeedSpace, (match, p1, p2) => p1 + " " + p2 ); node.attributes[name] = node.attributes[name].replace( regNewlines, "" ); } if (trim) { node.attributes[name] = node.attributes[name].trim(); } if (spaces) { node.attributes[name] = node.attributes[name].replace( regSpaces, " " ); } } } } }; }; } }); // node_modules/svgo/plugins/mergeStyles.js var require_mergeStyles = __commonJS({ "node_modules/svgo/plugins/mergeStyles.js"(exports2) { "use strict"; var { visitSkip, detachNodeFromParent } = require_xast(); exports2.name = "mergeStyles"; exports2.description = "merge multiple style elements into one"; exports2.fn = () => { let firstStyleElement = null; let collectedStyles = ""; let styleContentType = "text"; return { element: { enter: (node, parentNode) => { if (node.name === "foreignObject") { return visitSkip; } if (node.name !== "style") { return; } if (node.attributes.type != null && node.attributes.type !== "" && node.attributes.type !== "text/css") { return; } let css = ""; for (const child of node.children) { if (child.type === "text") { css += child.value; } if (child.type === "cdata") { styleContentType = "cdata"; css += child.value; } } if (css.trim().length === 0) { detachNodeFromParent(node, parentNode); return; } if (node.attributes.media == null) { collectedStyles += css; } else { collectedStyles += `@media ${node.attributes.media}{${css}}`; delete node.attributes.media; } if (firstStyleElement == null) { firstStyleElement = node; } else { detachNodeFromParent(node, parentNode); const child = { type: styleContentType, value: collectedStyles }; Object.defineProperty(child, "parentNode", { writable: true, value: firstStyleElement }); firstStyleElement.children = [child]; } } } }; }; } }); // node_modules/css-tree/cjs/tokenizer/types.cjs var require_types2 = __commonJS({ "node_modules/css-tree/cjs/tokenizer/types.cjs"(exports2) { "use strict"; var EOF = 0; var Ident = 1; var Function2 = 2; var AtKeyword = 3; var Hash = 4; var String2 = 5; var BadString = 6; var Url = 7; var BadUrl = 8; var Delim = 9; var Number2 = 10; var Percentage = 11; var Dimension = 12; var WhiteSpace = 13; var CDO = 14; var CDC = 15; var Colon = 16; var Semicolon = 17; var Comma = 18; var LeftSquareBracket = 19; var RightSquareBracket = 20; var LeftParenthesis = 21; var RightParenthesis = 22; var LeftCurlyBracket = 23; var RightCurlyBracket = 24; var Comment = 25; exports2.AtKeyword = AtKeyword; exports2.BadString = BadString; exports2.BadUrl = BadUrl; exports2.CDC = CDC; exports2.CDO = CDO; exports2.Colon = Colon; exports2.Comma = Comma; exports2.Comment = Comment; exports2.Delim = Delim; exports2.Dimension = Dimension; exports2.EOF = EOF; exports2.Function = Function2; exports2.Hash = Hash; exports2.Ident = Ident; exports2.LeftCurlyBracket = LeftCurlyBracket; exports2.LeftParenthesis = LeftParenthesis; exports2.LeftSquareBracket = LeftSquareBracket; exports2.Number = Number2; exports2.Percentage = Percentage; exports2.RightCurlyBracket = RightCurlyBracket; exports2.RightParenthesis = RightParenthesis; exports2.RightSquareBracket = RightSquareBracket; exports2.Semicolon = Semicolon; exports2.String = String2; exports2.Url = Url; exports2.WhiteSpace = WhiteSpace; } }); // node_modules/css-tree/cjs/tokenizer/char-code-definitions.cjs var require_char_code_definitions = __commonJS({ "node_modules/css-tree/cjs/tokenizer/char-code-definitions.cjs"(exports2) { "use strict"; var EOF = 0; function isDigit(code) { return code >= 48 && code <= 57; } function isHexDigit(code) { return isDigit(code) || // 0 .. 9 code >= 65 && code <= 70 || // A .. F code >= 97 && code <= 102; } function isUppercaseLetter(code) { return code >= 65 && code <= 90; } function isLowercaseLetter(code) { return code >= 97 && code <= 122; } function isLetter(code) { return isUppercaseLetter(code) || isLowercaseLetter(code); } function isNonAscii(code) { return code >= 128; } function isNameStart(code) { return isLetter(code) || isNonAscii(code) || code === 95; } function isName(code) { return isNameStart(code) || isDigit(code) || code === 45; } function isNonPrintable(code) { return code >= 0 && code <= 8 || code === 11 || code >= 14 && code <= 31 || code === 127; } function isNewline(code) { return code === 10 || code === 13 || code === 12; } function isWhiteSpace(code) { return isNewline(code) || code === 32 || code === 9; } function isValidEscape(first, second) { if (first !== 92) { return false; } if (isNewline(second) || second === EOF) { return false; } return true; } function isIdentifierStart(first, second, third) { if (first === 45) { return isNameStart(second) || second === 45 || isValidEscape(second, third); } if (isNameStart(first)) { return true; } if (first === 92) { return isValidEscape(first, second); } return false; } function isNumberStart(first, second, third) { if (first === 43 || first === 45) { if (isDigit(second)) { return 2; } return second === 46 && isDigit(third) ? 3 : 0; } if (first === 46) { return isDigit(second) ? 2 : 0; } if (isDigit(first)) { return 1; } return 0; } function isBOM(code) { if (code === 65279) { return 1; } if (code === 65534) { return 1; } return 0; } var CATEGORY = new Array(128); var EofCategory = 128; var WhiteSpaceCategory = 130; var DigitCategory = 131; var NameStartCategory = 132; var NonPrintableCategory = 133; for (let i = 0; i < CATEGORY.length; i++) { CATEGORY[i] = isWhiteSpace(i) && WhiteSpaceCategory || isDigit(i) && DigitCategory || isNameStart(i) && NameStartCategory || isNonPrintable(i) && NonPrintableCategory || i || EofCategory; } function charCodeCategory(code) { return code < 128 ? CATEGORY[code] : NameStartCategory; } exports2.DigitCategory = DigitCategory; exports2.EofCategory = EofCategory; exports2.NameStartCategory = NameStartCategory; exports2.NonPrintableCategory = NonPrintableCategory; exports2.WhiteSpaceCategory = WhiteSpaceCategory; exports2.charCodeCategory = charCodeCategory; exports2.isBOM = isBOM; exports2.isDigit = isDigit; exports2.isHexDigit = isHexDigit; exports2.isIdentifierStart = isIdentifierStart; exports2.isLetter = isLetter; exports2.isLowercaseLetter = isLowercaseLetter; exports2.isName = isName; exports2.isNameStart = isNameStart; exports2.isNewline = isNewline; exports2.isNonAscii = isNonAscii; exports2.isNonPrintable = isNonPrintable; exports2.isNumberStart = isNumberStart; exports2.isUppercaseLetter = isUppercaseLetter; exports2.isValidEscape = isValidEscape; exports2.isWhiteSpace = isWhiteSpace; } }); // node_modules/css-tree/cjs/tokenizer/utils.cjs var require_utils3 = __commonJS({ "node_modules/css-tree/cjs/tokenizer/utils.cjs"(exports2) { "use strict"; var charCodeDefinitions = require_char_code_definitions(); function getCharCode(source, offset) { return offset < source.length ? source.charCodeAt(offset) : 0; } function getNewlineLength(source, offset, code) { if (code === 13 && getCharCode(source, offset + 1) === 10) { return 2; } return 1; } function cmpChar(testStr, offset, referenceCode) { let code = testStr.charCodeAt(offset); if (charCodeDefinitions.isUppercaseLetter(code)) { code = code | 32; } return code === referenceCode; } function cmpStr(testStr, start, end, referenceStr) { if (end - start !== referenceStr.length) { return false; } if (start < 0 || end > testStr.length) { return false; } for (let i = start; i < end; i++) { const referenceCode = referenceStr.charCodeAt(i - start); let testCode = testStr.charCodeAt(i); if (charCodeDefinitions.isUppercaseLetter(testCode)) { testCode = testCode | 32; } if (testCode !== referenceCode) { return false; } } return true; } function findWhiteSpaceStart(source, offset) { for (; offset >= 0; offset--) { if (!charCodeDefinitions.isWhiteSpace(source.charCodeAt(offset))) { break; } } return offset + 1; } function findWhiteSpaceEnd(source, offset) { for (; offset < source.length; offset++) { if (!charCodeDefinitions.isWhiteSpace(source.charCodeAt(offset))) { break; } } return offset; } function findDecimalNumberEnd(source, offset) { for (; offset < source.length; offset++) { if (!charCodeDefinitions.isDigit(source.charCodeAt(offset))) { break; } } return offset; } function consumeEscaped(source, offset) { offset += 2; if (charCodeDefinitions.isHexDigit(getCharCode(source, offset - 1))) { for (const maxOffset = Math.min(source.length, offset + 5); offset < maxOffset; offset++) { if (!charCodeDefinitions.isHexDigit(getCharCode(source, offset))) { break; } } const code = getCharCode(source, offset); if (charCodeDefinitions.isWhiteSpace(code)) { offset += getNewlineLength(source, offset, code); } } return offset; } function consumeName(source, offset) { for (; offset < source.length; offset++) { const code = source.charCodeAt(offset); if (charCodeDefinitions.isName(code)) { continue; } if (charCodeDefinitions.isValidEscape(code, getCharCode(source, offset + 1))) { offset = consumeEscaped(source, offset) - 1; continue; } break; } return offset; } function consumeNumber(source, offset) { let code = source.charCodeAt(offset); if (code === 43 || code === 45) { code = source.charCodeAt(offset += 1); } if (charCodeDefinitions.isDigit(code)) { offset = findDecimalNumberEnd(source, offset + 1); code = source.charCodeAt(offset); } if (code === 46 && charCodeDefinitions.isDigit(source.charCodeAt(offset + 1))) { offset += 2; offset = findDecimalNumberEnd(source, offset); } if (cmpChar( source, offset, 101 /* e */ )) { let sign = 0; code = source.charCodeAt(offset + 1); if (code === 45 || code === 43) { sign = 1; code = source.charCodeAt(offset + 2); } if (charCodeDefinitions.isDigit(code)) { offset = findDecimalNumberEnd(source, offset + 1 + sign + 1); } } return offset; } function consumeBadUrlRemnants(source, offset) { for (; offset < source.length; offset++) { const code = source.charCodeAt(offset); if (code === 41) { offset++; break; } if (charCodeDefinitions.isValidEscape(code, getCharCode(source, offset + 1))) { offset = consumeEscaped(source, offset); } } return offset; } function decodeEscaped(escaped) { if (escaped.length === 1 && !charCodeDefinitions.isHexDigit(escaped.charCodeAt(0))) { return escaped[0]; } let code = parseInt(escaped, 16); if (code === 0 || // If this number is zero, code >= 55296 && code <= 57343 || // or is for a surrogate, code > 1114111) { code = 65533; } return String.fromCodePoint(code); } exports2.cmpChar = cmpChar; exports2.cmpStr = cmpStr; exports2.consumeBadUrlRemnants = consumeBadUrlRemnants; exports2.consumeEscaped = consumeEscaped; exports2.consumeName = consumeName; exports2.consumeNumber = consumeNumber; exports2.decodeEscaped = decodeEscaped; exports2.findDecimalNumberEnd = findDecimalNumberEnd; exports2.findWhiteSpaceEnd = findWhiteSpaceEnd; exports2.findWhiteSpaceStart = findWhiteSpaceStart; exports2.getNewlineLength = getNewlineLength; } }); // node_modules/css-tree/cjs/tokenizer/names.cjs var require_names2 = __commonJS({ "node_modules/css-tree/cjs/tokenizer/names.cjs"(exports2, module2) { "use strict"; var tokenNames = [ "EOF-token", "ident-token", "function-token", "at-keyword-token", "hash-token", "string-token", "bad-string-token", "url-token", "bad-url-token", "delim-token", "number-token", "percentage-token", "dimension-token", "whitespace-token", "CDO-token", "CDC-token", "colon-token", "semicolon-token", "comma-token", "[-token", "]-token", "(-token", ")-token", "{-token", "}-token" ]; module2.exports = tokenNames; } }); // node_modules/css-tree/cjs/tokenizer/adopt-buffer.cjs var require_adopt_buffer = __commonJS({ "node_modules/css-tree/cjs/tokenizer/adopt-buffer.cjs"(exports2) { "use strict"; var MIN_SIZE = 16 * 1024; function adoptBuffer(buffer = null, size) { if (buffer === null || buffer.length < size) { return new Uint32Array(Math.max(size + 1024, MIN_SIZE)); } return buffer; } exports2.adoptBuffer = adoptBuffer; } }); // node_modules/css-tree/cjs/tokenizer/OffsetToLocation.cjs var require_OffsetToLocation = __commonJS({ "node_modules/css-tree/cjs/tokenizer/OffsetToLocation.cjs"(exports2) { "use strict"; var adoptBuffer = require_adopt_buffer(); var charCodeDefinitions = require_char_code_definitions(); var N = 10; var F = 12; var R = 13; function computeLinesAndColumns(host) { const source = host.source; const sourceLength = source.length; const startOffset = source.length > 0 ? charCodeDefinitions.isBOM(source.charCodeAt(0)) : 0; const lines = adoptBuffer.adoptBuffer(host.lines, sourceLength); const columns = adoptBuffer.adoptBuffer(host.columns, sourceLength); let line = host.startLine; let column = host.startColumn; for (let i = startOffset; i < sourceLength; i++) { const code = source.charCodeAt(i); lines[i] = line; columns[i] = column++; if (code === N || code === R || code === F) { if (code === R && i + 1 < sourceLength && source.charCodeAt(i + 1) === N) { i++; lines[i] = line; columns[i] = column; } line++; column = 1; } } lines[sourceLength] = line; columns[sourceLength] = column; host.lines = lines; host.columns = columns; host.computed = true; } var OffsetToLocation = class { constructor() { this.lines = null; this.columns = null; this.computed = false; } setSource(source, startOffset = 0, startLine = 1, startColumn = 1) { this.source = source; this.startOffset = startOffset; this.startLine = startLine; this.startColumn = startColumn; this.computed = false; } getLocation(offset, filename) { if (!this.computed) { computeLinesAndColumns(this); } return { source: filename, offset: this.startOffset + offset, line: this.lines[offset], column: this.columns[offset] }; } getLocationRange(start, end, filename) { if (!this.computed) { computeLinesAndColumns(this); } return { source: filename, start: { offset: this.startOffset + start, line: this.lines[start], column: this.columns[start] }, end: { offset: this.startOffset + end, line: this.lines[end], column: this.columns[end] } }; } }; exports2.OffsetToLocation = OffsetToLocation; } }); // node_modules/css-tree/cjs/tokenizer/TokenStream.cjs var require_TokenStream = __commonJS({ "node_modules/css-tree/cjs/tokenizer/TokenStream.cjs"(exports2) { "use strict"; var adoptBuffer = require_adopt_buffer(); var utils = require_utils3(); var names = require_names2(); var types = require_types2(); var OFFSET_MASK = 16777215; var TYPE_SHIFT = 24; var balancePair = /* @__PURE__ */ new Map([ [types.Function, types.RightParenthesis], [types.LeftParenthesis, types.RightParenthesis], [types.LeftSquareBracket, types.RightSquareBracket], [types.LeftCurlyBracket, types.RightCurlyBracket] ]); var TokenStream = class { constructor(source, tokenize) { this.setSource(source, tokenize); } reset() { this.eof = false; this.tokenIndex = -1; this.tokenType = 0; this.tokenStart = this.firstCharOffset; this.tokenEnd = this.firstCharOffset; } setSource(source = "", tokenize = () => { }) { source = String(source || ""); const sourceLength = source.length; const offsetAndType = adoptBuffer.adoptBuffer(this.offsetAndType, source.length + 1); const balance = adoptBuffer.adoptBuffer(this.balance, source.length + 1); let tokenCount = 0; let balanceCloseType = 0; let balanceStart = 0; let firstCharOffset = -1; this.offsetAndType = null; this.balance = null; tokenize(source, (type, start, end) => { switch (type) { default: balance[tokenCount] = sourceLength; break; case balanceCloseType: { let balancePrev = balanceStart & OFFSET_MASK; balanceStart = balance[balancePrev]; balanceCloseType = balanceStart >> TYPE_SHIFT; balance[tokenCount] = balancePrev; balance[balancePrev++] = tokenCount; for (; balancePrev < tokenCount; balancePrev++) { if (balance[balancePrev] === sourceLength) { balance[balancePrev] = tokenCount; } } break; } case types.LeftParenthesis: case types.Function: case types.LeftSquareBracket: case types.LeftCurlyBracket: balance[tokenCount] = balanceStart; balanceCloseType = balancePair.get(type); balanceStart = balanceCloseType << TYPE_SHIFT | tokenCount; break; } offsetAndType[tokenCount++] = type << TYPE_SHIFT | end; if (firstCharOffset === -1) { firstCharOffset = start; } }); offsetAndType[tokenCount] = types.EOF << TYPE_SHIFT | sourceLength; balance[tokenCount] = sourceLength; balance[sourceLength] = sourceLength; while (balanceStart !== 0) { const balancePrev = balanceStart & OFFSET_MASK; balanceStart = balance[balancePrev]; balance[balancePrev] = sourceLength; } this.source = source; this.firstCharOffset = firstCharOffset === -1 ? 0 : firstCharOffset; this.tokenCount = tokenCount; this.offsetAndType = offsetAndType; this.balance = balance; this.reset(); this.next(); } lookupType(offset) { offset += this.tokenIndex; if (offset < this.tokenCount) { return this.offsetAndType[offset] >> TYPE_SHIFT; } return types.EOF; } lookupOffset(offset) { offset += this.tokenIndex; if (offset < this.tokenCount) { return this.offsetAndType[offset - 1] & OFFSET_MASK; } return this.source.length; } lookupValue(offset, referenceStr) { offset += this.tokenIndex; if (offset < this.tokenCount) { return utils.cmpStr( this.source, this.offsetAndType[offset - 1] & OFFSET_MASK, this.offsetAndType[offset] & OFFSET_MASK, referenceStr ); } return false; } getTokenStart(tokenIndex) { if (tokenIndex === this.tokenIndex) { return this.tokenStart; } if (tokenIndex > 0) { return tokenIndex < this.tokenCount ? this.offsetAndType[tokenIndex - 1] & OFFSET_MASK : this.offsetAndType[this.tokenCount] & OFFSET_MASK; } return this.firstCharOffset; } substrToCursor(start) { return this.source.substring(start, this.tokenStart); } isBalanceEdge(pos) { return this.balance[this.tokenIndex] < pos; } isDelim(code, offset) { if (offset) { return this.lookupType(offset) === types.Delim && this.source.charCodeAt(this.lookupOffset(offset)) === code; } return this.tokenType === types.Delim && this.source.charCodeAt(this.tokenStart) === code; } skip(tokenCount) { let next = this.tokenIndex + tokenCount; if (next < this.tokenCount) { this.tokenIndex = next; this.tokenStart = this.offsetAndType[next - 1] & OFFSET_MASK; next = this.offsetAndType[next]; this.tokenType = next >> TYPE_SHIFT; this.tokenEnd = next & OFFSET_MASK; } else { this.tokenIndex = this.tokenCount; this.next(); } } next() { let next = this.tokenIndex + 1; if (next < this.tokenCount) { this.tokenIndex = next; this.tokenStart = this.tokenEnd; next = this.offsetAndType[next]; this.tokenType = next >> TYPE_SHIFT; this.tokenEnd = next & OFFSET_MASK; } else { this.eof = true; this.tokenIndex = this.tokenCount; this.tokenType = types.EOF; this.tokenStart = this.tokenEnd = this.source.length; } } skipSC() { while (this.tokenType === types.WhiteSpace || this.tokenType === types.Comment) { this.next(); } } skipUntilBalanced(startToken, stopConsume) { let cursor = startToken; let balanceEnd; let offset; loop: for (; cursor < this.tokenCount; cursor++) { balanceEnd = this.balance[cursor]; if (balanceEnd < startToken) { break loop; } offset = cursor > 0 ? this.offsetAndType[cursor - 1] & OFFSET_MASK : this.firstCharOffset; switch (stopConsume(this.source.charCodeAt(offset))) { case 1: break loop; case 2: cursor++; break loop; default: if (this.balance[balanceEnd] === cursor) { cursor = balanceEnd; } } } this.skip(cursor - this.tokenIndex); } forEachToken(fn) { for (let i = 0, offset = this.firstCharOffset; i < this.tokenCount; i++) { const start = offset; const item = this.offsetAndType[i]; const end = item & OFFSET_MASK; const type = item >> TYPE_SHIFT; offset = end; fn(type, start, end, i); } } dump() { const tokens = new Array(this.tokenCount); this.forEachToken((type, start, end, index) => { tokens[index] = { idx: index, type: names[type], chunk: this.source.substring(start, end), balance: this.balance[index] }; }); return tokens; } }; exports2.TokenStream = TokenStream; } }); // node_modules/css-tree/cjs/tokenizer/index.cjs var require_tokenizer = __commonJS({ "node_modules/css-tree/cjs/tokenizer/index.cjs"(exports2) { "use strict"; var types = require_types2(); var charCodeDefinitions = require_char_code_definitions(); var utils = require_utils3(); var names = require_names2(); var OffsetToLocation = require_OffsetToLocation(); var TokenStream = require_TokenStream(); function tokenize(source, onToken) { function getCharCode(offset2) { return offset2 < sourceLength ? source.charCodeAt(offset2) : 0; } function consumeNumericToken() { offset = utils.consumeNumber(source, offset); if (charCodeDefinitions.isIdentifierStart(getCharCode(offset), getCharCode(offset + 1), getCharCode(offset + 2))) { type = types.Dimension; offset = utils.consumeName(source, offset); return; } if (getCharCode(offset) === 37) { type = types.Percentage; offset++; return; } type = types.Number; } function consumeIdentLikeToken() { const nameStartOffset = offset; offset = utils.consumeName(source, offset); if (utils.cmpStr(source, nameStartOffset, offset, "url") && getCharCode(offset) === 40) { offset = utils.findWhiteSpaceEnd(source, offset + 1); if (getCharCode(offset) === 34 || getCharCode(offset) === 39) { type = types.Function; offset = nameStartOffset + 4; return; } consumeUrlToken(); return; } if (getCharCode(offset) === 40) { type = types.Function; offset++; return; } type = types.Ident; } function consumeStringToken(endingCodePoint) { if (!endingCodePoint) { endingCodePoint = getCharCode(offset++); } type = types.String; for (; offset < source.length; offset++) { const code = source.charCodeAt(offset); switch (charCodeDefinitions.charCodeCategory(code)) { case endingCodePoint: offset++; return; case charCodeDefinitions.WhiteSpaceCategory: if (charCodeDefinitions.isNewline(code)) { offset += utils.getNewlineLength(source, offset, code); type = types.BadString; return; } break; case 92: if (offset === source.length - 1) { break; } const nextCode = getCharCode(offset + 1); if (charCodeDefinitions.isNewline(nextCode)) { offset += utils.getNewlineLength(source, offset + 1, nextCode); } else if (charCodeDefinitions.isValidEscape(code, nextCode)) { offset = utils.consumeEscaped(source, offset) - 1; } break; } } } function consumeUrlToken() { type = types.Url; offset = utils.findWhiteSpaceEnd(source, offset); for (; offset < source.length; offset++) { const code = source.charCodeAt(offset); switch (charCodeDefinitions.charCodeCategory(code)) { case 41: offset++; return; case charCodeDefinitions.WhiteSpaceCategory: offset = utils.findWhiteSpaceEnd(source, offset); if (getCharCode(offset) === 41 || offset >= source.length) { if (offset < source.length) { offset++; } return; } offset = utils.consumeBadUrlRemnants(source, offset); type = types.BadUrl; return; case 34: case 39: case 40: case charCodeDefinitions.NonPrintableCategory: offset = utils.consumeBadUrlRemnants(source, offset); type = types.BadUrl; return; case 92: if (charCodeDefinitions.isValidEscape(code, getCharCode(offset + 1))) { offset = utils.consumeEscaped(source, offset) - 1; break; } offset = utils.consumeBadUrlRemnants(source, offset); type = types.BadUrl; return; } } } source = String(source || ""); const sourceLength = source.length; let start = charCodeDefinitions.isBOM(getCharCode(0)); let offset = start; let type; while (offset < sourceLength) { const code = source.charCodeAt(offset); switch (charCodeDefinitions.charCodeCategory(code)) { case charCodeDefinitions.WhiteSpaceCategory: type = types.WhiteSpace; offset = utils.findWhiteSpaceEnd(source, offset + 1); break; case 34: consumeStringToken(); break; case 35: if (charCodeDefinitions.isName(getCharCode(offset + 1)) || charCodeDefinitions.isValidEscape(getCharCode(offset + 1), getCharCode(offset + 2))) { type = types.Hash; offset = utils.consumeName(source, offset + 1); } else { type = types.Delim; offset++; } break; case 39: consumeStringToken(); break; case 40: type = types.LeftParenthesis; offset++; break; case 41: type = types.RightParenthesis; offset++; break; case 43: if (charCodeDefinitions.isNumberStart(code, getCharCode(offset + 1), getCharCode(offset + 2))) { consumeNumericToken(); } else { type = types.Delim; offset++; } break; case 44: type = types.Comma; offset++; break; case 45: if (charCodeDefinitions.isNumberStart(code, getCharCode(offset + 1), getCharCode(offset + 2))) { consumeNumericToken(); } else { if (getCharCode(offset + 1) === 45 && getCharCode(offset + 2) === 62) { type = types.CDC; offset = offset + 3; } else { if (charCodeDefinitions.isIdentifierStart(code, getCharCode(offset + 1), getCharCode(offset + 2))) { consumeIdentLikeToken(); } else { type = types.Delim; offset++; } } } break; case 46: if (charCodeDefinitions.isNumberStart(code, getCharCode(offset + 1), getCharCode(offset + 2))) { consumeNumericToken(); } else { type = types.Delim; offset++; } break; case 47: if (getCharCode(offset + 1) === 42) { type = types.Comment; offset = source.indexOf("*/", offset + 2); offset = offset === -1 ? source.length : offset + 2; } else { type = types.Delim; offset++; } break; case 58: type = types.Colon; offset++; break; case 59: type = types.Semicolon; offset++; break; case 60: if (getCharCode(offset + 1) === 33 && getCharCode(offset + 2) === 45 && getCharCode(offset + 3) === 45) { type = types.CDO; offset = offset + 4; } else { type = types.Delim; offset++; } break; case 64: if (charCodeDefinitions.isIdentifierStart(getCharCode(offset + 1), getCharCode(offset + 2), getCharCode(offset + 3))) { type = types.AtKeyword; offset = utils.consumeName(source, offset + 1); } else { type = types.Delim; offset++; } break; case 91: type = types.LeftSquareBracket; offset++; break; case 92: if (charCodeDefinitions.isValidEscape(code, getCharCode(offset + 1))) { consumeIdentLikeToken(); } else { type = types.Delim; offset++; } break; case 93: type = types.RightSquareBracket; offset++; break; case 123: type = types.LeftCurlyBracket; offset++; break; case 125: type = types.RightCurlyBracket; offset++; break; case charCodeDefinitions.DigitCategory: consumeNumericToken(); break; case charCodeDefinitions.NameStartCategory: consumeIdentLikeToken(); break; default: type = types.Delim; offset++; } onToken(type, start, start = offset); } } exports2.AtKeyword = types.AtKeyword; exports2.BadString = types.BadString; exports2.BadUrl = types.BadUrl; exports2.CDC = types.CDC; exports2.CDO = types.CDO; exports2.Colon = types.Colon; exports2.Comma = types.Comma; exports2.Comment = types.Comment; exports2.Delim = types.Delim; exports2.Dimension = types.Dimension; exports2.EOF = types.EOF; exports2.Function = types.Function; exports2.Hash = types.Hash; exports2.Ident = types.Ident; exports2.LeftCurlyBracket = types.LeftCurlyBracket; exports2.LeftParenthesis = types.LeftParenthesis; exports2.LeftSquareBracket = types.LeftSquareBracket; exports2.Number = types.Number; exports2.Percentage = types.Percentage; exports2.RightCurlyBracket = types.RightCurlyBracket; exports2.RightParenthesis = types.RightParenthesis; exports2.RightSquareBracket = types.RightSquareBracket; exports2.Semicolon = types.Semicolon; exports2.String = types.String; exports2.Url = types.Url; exports2.WhiteSpace = types.WhiteSpace; exports2.tokenTypes = types; exports2.DigitCategory = charCodeDefinitions.DigitCategory; exports2.EofCategory = charCodeDefinitions.EofCategory; exports2.NameStartCategory = charCodeDefinitions.NameStartCategory; exports2.NonPrintableCategory = charCodeDefinitions.NonPrintableCategory; exports2.WhiteSpaceCategory = charCodeDefinitions.WhiteSpaceCategory; exports2.charCodeCategory = charCodeDefinitions.charCodeCategory; exports2.isBOM = charCodeDefinitions.isBOM; exports2.isDigit = charCodeDefinitions.isDigit; exports2.isHexDigit = charCodeDefinitions.isHexDigit; exports2.isIdentifierStart = charCodeDefinitions.isIdentifierStart; exports2.isLetter = charCodeDefinitions.isLetter; exports2.isLowercaseLetter = charCodeDefinitions.isLowercaseLetter; exports2.isName = charCodeDefinitions.isName; exports2.isNameStart = charCodeDefinitions.isNameStart; exports2.isNewline = charCodeDefinitions.isNewline; exports2.isNonAscii = charCodeDefinitions.isNonAscii; exports2.isNonPrintable = charCodeDefinitions.isNonPrintable; exports2.isNumberStart = charCodeDefinitions.isNumberStart; exports2.isUppercaseLetter = charCodeDefinitions.isUppercaseLetter; exports2.isValidEscape = charCodeDefinitions.isValidEscape; exports2.isWhiteSpace = charCodeDefinitions.isWhiteSpace; exports2.cmpChar = utils.cmpChar; exports2.cmpStr = utils.cmpStr; exports2.consumeBadUrlRemnants = utils.consumeBadUrlRemnants; exports2.consumeEscaped = utils.consumeEscaped; exports2.consumeName = utils.consumeName; exports2.consumeNumber = utils.consumeNumber; exports2.decodeEscaped = utils.decodeEscaped; exports2.findDecimalNumberEnd = utils.findDecimalNumberEnd; exports2.findWhiteSpaceEnd = utils.findWhiteSpaceEnd; exports2.findWhiteSpaceStart = utils.findWhiteSpaceStart; exports2.getNewlineLength = utils.getNewlineLength; exports2.tokenNames = names; exports2.OffsetToLocation = OffsetToLocation.OffsetToLocation; exports2.TokenStream = TokenStream.TokenStream; exports2.tokenize = tokenize; } }); // node_modules/css-tree/cjs/utils/List.cjs var require_List = __commonJS({ "node_modules/css-tree/cjs/utils/List.cjs"(exports2) { "use strict"; var releasedCursors = null; var List = class _List { static createItem(data) { return { prev: null, next: null, data }; } constructor() { this.head = null; this.tail = null; this.cursor = null; } createItem(data) { return _List.createItem(data); } // cursor helpers allocateCursor(prev, next) { let cursor; if (releasedCursors !== null) { cursor = releasedCursors; releasedCursors = releasedCursors.cursor; cursor.prev = prev; cursor.next = next; cursor.cursor = this.cursor; } else { cursor = { prev, next, cursor: this.cursor }; } this.cursor = cursor; return cursor; } releaseCursor() { const { cursor } = this; this.cursor = cursor.cursor; cursor.prev = null; cursor.next = null; cursor.cursor = releasedCursors; releasedCursors = cursor; } updateCursors(prevOld, prevNew, nextOld, nextNew) { let { cursor } = this; while (cursor !== null) { if (cursor.prev === prevOld) { cursor.prev = prevNew; } if (cursor.next === nextOld) { cursor.next = nextNew; } cursor = cursor.cursor; } } *[Symbol.iterator]() { for (let cursor = this.head; cursor !== null; cursor = cursor.next) { yield cursor.data; } } // getters get size() { let size = 0; for (let cursor = this.head; cursor !== null; cursor = cursor.next) { size++; } return size; } get isEmpty() { return this.head === null; } get first() { return this.head && this.head.data; } get last() { return this.tail && this.tail.data; } // convertors fromArray(array) { let cursor = null; this.head = null; for (let data of array) { const item = _List.createItem(data); if (cursor !== null) { cursor.next = item; } else { this.head = item; } item.prev = cursor; cursor = item; } this.tail = cursor; return this; } toArray() { return [...this]; } toJSON() { return [...this]; } // array-like methods forEach(fn, thisArg = this) { const cursor = this.allocateCursor(null, this.head); while (cursor.next !== null) { const item = cursor.next; cursor.next = item.next; fn.call(thisArg, item.data, item, this); } this.releaseCursor(); } forEachRight(fn, thisArg = this) { const cursor = this.allocateCursor(this.tail, null); while (cursor.prev !== null) { const item = cursor.prev; cursor.prev = item.prev; fn.call(thisArg, item.data, item, this); } this.releaseCursor(); } reduce(fn, initialValue, thisArg = this) { let cursor = this.allocateCursor(null, this.head); let acc = initialValue; let item; while (cursor.next !== null) { item = cursor.next; cursor.next = item.next; acc = fn.call(thisArg, acc, item.data, item, this); } this.releaseCursor(); return acc; } reduceRight(fn, initialValue, thisArg = this) { let cursor = this.allocateCursor(this.tail, null); let acc = initialValue; let item; while (cursor.prev !== null) { item = cursor.prev; cursor.prev = item.prev; acc = fn.call(thisArg, acc, item.data, item, this); } this.releaseCursor(); return acc; } some(fn, thisArg = this) { for (let cursor = this.head; cursor !== null; cursor = cursor.next) { if (fn.call(thisArg, cursor.data, cursor, this)) { return true; } } return false; } map(fn, thisArg = this) { const result = new _List(); for (let cursor = this.head; cursor !== null; cursor = cursor.next) { result.appendData(fn.call(thisArg, cursor.data, cursor, this)); } return result; } filter(fn, thisArg = this) { const result = new _List(); for (let cursor = this.head; cursor !== null; cursor = cursor.next) { if (fn.call(thisArg, cursor.data, cursor, this)) { result.appendData(cursor.data); } } return result; } nextUntil(start, fn, thisArg = this) { if (start === null) { return; } const cursor = this.allocateCursor(null, start); while (cursor.next !== null) { const item = cursor.next; cursor.next = item.next; if (fn.call(thisArg, item.data, item, this)) { break; } } this.releaseCursor(); } prevUntil(start, fn, thisArg = this) { if (start === null) { return; } const cursor = this.allocateCursor(start, null); while (cursor.prev !== null) { const item = cursor.prev; cursor.prev = item.prev; if (fn.call(thisArg, item.data, item, this)) { break; } } this.releaseCursor(); } // mutation clear() { this.head = null; this.tail = null; } copy() { const result = new _List(); for (let data of this) { result.appendData(data); } return result; } prepend(item) { this.updateCursors(null, item, this.head, item); if (this.head !== null) { this.head.prev = item; item.next = this.head; } else { this.tail = item; } this.head = item; return this; } prependData(data) { return this.prepend(_List.createItem(data)); } append(item) { return this.insert(item); } appendData(data) { return this.insert(_List.createItem(data)); } insert(item, before = null) { if (before !== null) { this.updateCursors(before.prev, item, before, item); if (before.prev === null) { if (this.head !== before) { throw new Error("before doesn't belong to list"); } this.head = item; before.prev = item; item.next = before; this.updateCursors(null, item); } else { before.prev.next = item; item.prev = before.prev; before.prev = item; item.next = before; } } else { this.updateCursors(this.tail, item, null, item); if (this.tail !== null) { this.tail.next = item; item.prev = this.tail; } else { this.head = item; } this.tail = item; } return this; } insertData(data, before) { return this.insert(_List.createItem(data), before); } remove(item) { this.updateCursors(item, item.prev, item, item.next); if (item.prev !== null) { item.prev.next = item.next; } else { if (this.head !== item) { throw new Error("item doesn't belong to list"); } this.head = item.next; } if (item.next !== null) { item.next.prev = item.prev; } else { if (this.tail !== item) { throw new Error("item doesn't belong to list"); } this.tail = item.prev; } item.prev = null; item.next = null; return item; } push(data) { this.insert(_List.createItem(data)); } pop() { return this.tail !== null ? this.remove(this.tail) : null; } unshift(data) { this.prepend(_List.createItem(data)); } shift() { return this.head !== null ? this.remove(this.head) : null; } prependList(list) { return this.insertList(list, this.head); } appendList(list) { return this.insertList(list); } insertList(list, before) { if (list.head === null) { return this; } if (before !== void 0 && before !== null) { this.updateCursors(before.prev, list.tail, before, list.head); if (before.prev !== null) { before.prev.next = list.head; list.head.prev = before.prev; } else { this.head = list.head; } before.prev = list.tail; list.tail.next = before; } else { this.updateCursors(this.tail, list.tail, null, list.head); if (this.tail !== null) { this.tail.next = list.head; list.head.prev = this.tail; } else { this.head = list.head; } this.tail = list.tail; } list.head = null; list.tail = null; return this; } replace(oldItem, newItemOrList) { if ("head" in newItemOrList) { this.insertList(newItemOrList, oldItem); } else { this.insert(newItemOrList, oldItem); } this.remove(oldItem); } }; exports2.List = List; } }); // node_modules/css-tree/cjs/utils/create-custom-error.cjs var require_create_custom_error = __commonJS({ "node_modules/css-tree/cjs/utils/create-custom-error.cjs"(exports2) { "use strict"; function createCustomError(name, message) { const error = Object.create(SyntaxError.prototype); const errorStack = new Error(); return Object.assign(error, { name, message, get stack() { return (errorStack.stack || "").replace(/^(.+\n){1,3}/, `${name}: ${message} `); } }); } exports2.createCustomError = createCustomError; } }); // node_modules/css-tree/cjs/parser/SyntaxError.cjs var require_SyntaxError = __commonJS({ "node_modules/css-tree/cjs/parser/SyntaxError.cjs"(exports2) { "use strict"; var createCustomError = require_create_custom_error(); var MAX_LINE_LENGTH = 100; var OFFSET_CORRECTION = 60; var TAB_REPLACEMENT = " "; function sourceFragment({ source, line, column }, extraLines) { function processLines(start, end) { return lines.slice(start, end).map( (line2, idx) => String(start + idx + 1).padStart(maxNumLength) + " |" + line2 ).join("\n"); } const lines = source.split(/\r\n?|\n|\f/); const startLine = Math.max(1, line - extraLines) - 1; const endLine = Math.min(line + extraLines, lines.length + 1); const maxNumLength = Math.max(4, String(endLine).length) + 1; let cutLeft = 0; column += (TAB_REPLACEMENT.length - 1) * (lines[line - 1].substr(0, column - 1).match(/\t/g) || []).length; if (column > MAX_LINE_LENGTH) { cutLeft = column - OFFSET_CORRECTION + 3; column = OFFSET_CORRECTION - 2; } for (let i = startLine; i <= endLine; i++) { if (i >= 0 && i < lines.length) { lines[i] = lines[i].replace(/\t/g, TAB_REPLACEMENT); lines[i] = (cutLeft > 0 && lines[i].length > cutLeft ? "\u2026" : "") + lines[i].substr(cutLeft, MAX_LINE_LENGTH - 2) + (lines[i].length > cutLeft + MAX_LINE_LENGTH - 1 ? "\u2026" : ""); } } return [ processLines(startLine, line), new Array(column + maxNumLength + 2).join("-") + "^", processLines(line, endLine) ].filter(Boolean).join("\n"); } function SyntaxError2(message, source, offset, line, column) { const error = Object.assign(createCustomError.createCustomError("SyntaxError", message), { source, offset, line, column, sourceFragment(extraLines) { return sourceFragment({ source, line, column }, isNaN(extraLines) ? 0 : extraLines); }, get formattedMessage() { return `Parse error: ${message} ` + sourceFragment({ source, line, column }, 2); } }); return error; } exports2.SyntaxError = SyntaxError2; } }); // node_modules/css-tree/cjs/parser/sequence.cjs var require_sequence = __commonJS({ "node_modules/css-tree/cjs/parser/sequence.cjs"(exports2) { "use strict"; var types = require_types2(); function readSequence(recognizer) { const children = this.createList(); let space = false; const context = { recognizer }; while (!this.eof) { switch (this.tokenType) { case types.Comment: this.next(); continue; case types.WhiteSpace: space = true; this.next(); continue; } let child = recognizer.getNode.call(this, context); if (child === void 0) { break; } if (space) { if (recognizer.onWhiteSpace) { recognizer.onWhiteSpace.call(this, child, children, context); } space = false; } children.push(child); } if (space && recognizer.onWhiteSpace) { recognizer.onWhiteSpace.call(this, null, children, context); } return children; } exports2.readSequence = readSequence; } }); // node_modules/css-tree/cjs/parser/create.cjs var require_create = __commonJS({ "node_modules/css-tree/cjs/parser/create.cjs"(exports2) { "use strict"; var List = require_List(); var SyntaxError2 = require_SyntaxError(); var index = require_tokenizer(); var sequence = require_sequence(); var OffsetToLocation = require_OffsetToLocation(); var TokenStream = require_TokenStream(); var utils = require_utils3(); var types = require_types2(); var names = require_names2(); var NOOP = () => { }; var EXCLAMATIONMARK = 33; var NUMBERSIGN = 35; var SEMICOLON = 59; var LEFTCURLYBRACKET = 123; var NULL = 0; function createParseContext(name) { return function() { return this[name](); }; } function fetchParseValues(dict) { const result = /* @__PURE__ */ Object.create(null); for (const name in dict) { const item = dict[name]; const fn = item.parse || item; if (fn) { result[name] = fn; } } return result; } function processConfig(config) { const parseConfig = { context: /* @__PURE__ */ Object.create(null), scope: Object.assign(/* @__PURE__ */ Object.create(null), config.scope), atrule: fetchParseValues(config.atrule), pseudo: fetchParseValues(config.pseudo), node: fetchParseValues(config.node) }; for (const name in config.parseContext) { switch (typeof config.parseContext[name]) { case "function": parseConfig.context[name] = config.parseContext[name]; break; case "string": parseConfig.context[name] = createParseContext(config.parseContext[name]); break; } } return { config: parseConfig, ...parseConfig, ...parseConfig.node }; } function createParser(config) { let source = ""; let filename = ""; let needPositions = false; let onParseError = NOOP; let onParseErrorThrow = false; const locationMap = new OffsetToLocation.OffsetToLocation(); const parser = Object.assign(new TokenStream.TokenStream(), processConfig(config || {}), { parseAtrulePrelude: true, parseRulePrelude: true, parseValue: true, parseCustomProperty: false, readSequence: sequence.readSequence, consumeUntilBalanceEnd: () => 0, consumeUntilLeftCurlyBracket(code) { return code === LEFTCURLYBRACKET ? 1 : 0; }, consumeUntilLeftCurlyBracketOrSemicolon(code) { return code === LEFTCURLYBRACKET || code === SEMICOLON ? 1 : 0; }, consumeUntilExclamationMarkOrSemicolon(code) { return code === EXCLAMATIONMARK || code === SEMICOLON ? 1 : 0; }, consumeUntilSemicolonIncluded(code) { return code === SEMICOLON ? 2 : 0; }, createList() { return new List.List(); }, createSingleNodeList(node) { return new List.List().appendData(node); }, getFirstListNode(list) { return list && list.first; }, getLastListNode(list) { return list && list.last; }, parseWithFallback(consumer, fallback) { const startToken = this.tokenIndex; try { return consumer.call(this); } catch (e) { if (onParseErrorThrow) { throw e; } const fallbackNode = fallback.call(this, startToken); onParseErrorThrow = true; onParseError(e, fallbackNode); onParseErrorThrow = false; return fallbackNode; } }, lookupNonWSType(offset) { let type; do { type = this.lookupType(offset++); if (type !== types.WhiteSpace) { return type; } } while (type !== NULL); return NULL; }, charCodeAt(offset) { return offset >= 0 && offset < source.length ? source.charCodeAt(offset) : 0; }, substring(offsetStart, offsetEnd) { return source.substring(offsetStart, offsetEnd); }, substrToCursor(start) { return this.source.substring(start, this.tokenStart); }, cmpChar(offset, charCode) { return utils.cmpChar(source, offset, charCode); }, cmpStr(offsetStart, offsetEnd, str) { return utils.cmpStr(source, offsetStart, offsetEnd, str); }, consume(tokenType) { const start = this.tokenStart; this.eat(tokenType); return this.substrToCursor(start); }, consumeFunctionName() { const name = source.substring(this.tokenStart, this.tokenEnd - 1); this.eat(types.Function); return name; }, consumeNumber(type) { const number = source.substring(this.tokenStart, utils.consumeNumber(source, this.tokenStart)); this.eat(type); return number; }, eat(tokenType) { if (this.tokenType !== tokenType) { const tokenName = names[tokenType].slice(0, -6).replace(/-/g, " ").replace(/^./, (m) => m.toUpperCase()); let message = `${/[[\](){}]/.test(tokenName) ? `"${tokenName}"` : tokenName} is expected`; let offset = this.tokenStart; switch (tokenType) { case types.Ident: if (this.tokenType === types.Function || this.tokenType === types.Url) { offset = this.tokenEnd - 1; message = "Identifier is expected but function found"; } else { message = "Identifier is expected"; } break; case types.Hash: if (this.isDelim(NUMBERSIGN)) { this.next(); offset++; message = "Name is expected"; } break; case types.Percentage: if (this.tokenType === types.Number) { offset = this.tokenEnd; message = "Percent sign is expected"; } break; } this.error(message, offset); } this.next(); }, eatIdent(name) { if (this.tokenType !== types.Ident || this.lookupValue(0, name) === false) { this.error(`Identifier "${name}" is expected`); } this.next(); }, eatDelim(code) { if (!this.isDelim(code)) { this.error(`Delim "${String.fromCharCode(code)}" is expected`); } this.next(); }, getLocation(start, end) { if (needPositions) { return locationMap.getLocationRange( start, end, filename ); } return null; }, getLocationFromList(list) { if (needPositions) { const head = this.getFirstListNode(list); const tail = this.getLastListNode(list); return locationMap.getLocationRange( head !== null ? head.loc.start.offset - locationMap.startOffset : this.tokenStart, tail !== null ? tail.loc.end.offset - locationMap.startOffset : this.tokenStart, filename ); } return null; }, error(message, offset) { const location = typeof offset !== "undefined" && offset < source.length ? locationMap.getLocation(offset) : this.eof ? locationMap.getLocation(utils.findWhiteSpaceStart(source, source.length - 1)) : locationMap.getLocation(this.tokenStart); throw new SyntaxError2.SyntaxError( message || "Unexpected input", source, location.offset, location.line, location.column ); } }); const parse = function(source_, options) { source = source_; options = options || {}; parser.setSource(source, index.tokenize); locationMap.setSource( source, options.offset, options.line, options.column ); filename = options.filename || ""; needPositions = Boolean(options.positions); onParseError = typeof options.onParseError === "function" ? options.onParseError : NOOP; onParseErrorThrow = false; parser.parseAtrulePrelude = "parseAtrulePrelude" in options ? Boolean(options.parseAtrulePrelude) : true; parser.parseRulePrelude = "parseRulePrelude" in options ? Boolean(options.parseRulePrelude) : true; parser.parseValue = "parseValue" in options ? Boolean(options.parseValue) : true; parser.parseCustomProperty = "parseCustomProperty" in options ? Boolean(options.parseCustomProperty) : false; const { context = "default", onComment } = options; if (context in parser.context === false) { throw new Error("Unknown context `" + context + "`"); } if (typeof onComment === "function") { parser.forEachToken((type, start, end) => { if (type === types.Comment) { const loc = parser.getLocation(start, end); const value = utils.cmpStr(source, end - 2, end, "*/") ? source.slice(start + 2, end - 2) : source.slice(start + 2, end); onComment(value, loc); } }); } const ast = parser.context[context].call(parser, options); if (!parser.eof) { parser.error(); } return ast; }; return Object.assign(parse, { SyntaxError: SyntaxError2.SyntaxError, config: parser.config }); } exports2.createParser = createParser; } }); // node_modules/css-tree/cjs/generator/sourceMap.cjs var require_sourceMap = __commonJS({ "node_modules/css-tree/cjs/generator/sourceMap.cjs"(exports2) { "use strict"; var sourceMapGenerator_js = require_source_map_generator(); var trackNodes = /* @__PURE__ */ new Set(["Atrule", "Selector", "Declaration"]); function generateSourceMap(handlers) { const map = new sourceMapGenerator_js.SourceMapGenerator(); const generated = { line: 1, column: 0 }; const original = { line: 0, // should be zero to add first mapping column: 0 }; const activatedGenerated = { line: 1, column: 0 }; const activatedMapping = { generated: activatedGenerated }; let line = 1; let column = 0; let sourceMappingActive = false; const origHandlersNode = handlers.node; handlers.node = function(node) { if (node.loc && node.loc.start && trackNodes.has(node.type)) { const nodeLine = node.loc.start.line; const nodeColumn = node.loc.start.column - 1; if (original.line !== nodeLine || original.column !== nodeColumn) { original.line = nodeLine; original.column = nodeColumn; generated.line = line; generated.column = column; if (sourceMappingActive) { sourceMappingActive = false; if (generated.line !== activatedGenerated.line || generated.column !== activatedGenerated.column) { map.addMapping(activatedMapping); } } sourceMappingActive = true; map.addMapping({ source: node.loc.source, original, generated }); } } origHandlersNode.call(this, node); if (sourceMappingActive && trackNodes.has(node.type)) { activatedGenerated.line = line; activatedGenerated.column = column; } }; const origHandlersEmit = handlers.emit; handlers.emit = function(value, type, auto) { for (let i = 0; i < value.length; i++) { if (value.charCodeAt(i) === 10) { line++; column = 0; } else { column++; } } origHandlersEmit(value, type, auto); }; const origHandlersResult = handlers.result; handlers.result = function() { if (sourceMappingActive) { map.addMapping(activatedMapping); } return { css: origHandlersResult(), map }; }; return handlers; } exports2.generateSourceMap = generateSourceMap; } }); // node_modules/css-tree/cjs/generator/token-before.cjs var require_token_before = __commonJS({ "node_modules/css-tree/cjs/generator/token-before.cjs"(exports2) { "use strict"; var types = require_types2(); var PLUSSIGN = 43; var HYPHENMINUS = 45; var code = (type, value) => { if (type === types.Delim) { type = value; } if (typeof type === "string") { const charCode = type.charCodeAt(0); return charCode > 127 ? 32768 : charCode << 8; } return type; }; var specPairs = [ [types.Ident, types.Ident], [types.Ident, types.Function], [types.Ident, types.Url], [types.Ident, types.BadUrl], [types.Ident, "-"], [types.Ident, types.Number], [types.Ident, types.Percentage], [types.Ident, types.Dimension], [types.Ident, types.CDC], [types.Ident, types.LeftParenthesis], [types.AtKeyword, types.Ident], [types.AtKeyword, types.Function], [types.AtKeyword, types.Url], [types.AtKeyword, types.BadUrl], [types.AtKeyword, "-"], [types.AtKeyword, types.Number], [types.AtKeyword, types.Percentage], [types.AtKeyword, types.Dimension], [types.AtKeyword, types.CDC], [types.Hash, types.Ident], [types.Hash, types.Function], [types.Hash, types.Url], [types.Hash, types.BadUrl], [types.Hash, "-"], [types.Hash, types.Number], [types.Hash, types.Percentage], [types.Hash, types.Dimension], [types.Hash, types.CDC], [types.Dimension, types.Ident], [types.Dimension, types.Function], [types.Dimension, types.Url], [types.Dimension, types.BadUrl], [types.Dimension, "-"], [types.Dimension, types.Number], [types.Dimension, types.Percentage], [types.Dimension, types.Dimension], [types.Dimension, types.CDC], ["#", types.Ident], ["#", types.Function], ["#", types.Url], ["#", types.BadUrl], ["#", "-"], ["#", types.Number], ["#", types.Percentage], ["#", types.Dimension], ["#", types.CDC], // https://github.com/w3c/csswg-drafts/pull/6874 ["-", types.Ident], ["-", types.Function], ["-", types.Url], ["-", types.BadUrl], ["-", "-"], ["-", types.Number], ["-", types.Percentage], ["-", types.Dimension], ["-", types.CDC], // https://github.com/w3c/csswg-drafts/pull/6874 [types.Number, types.Ident], [types.Number, types.Function], [types.Number, types.Url], [types.Number, types.BadUrl], [types.Number, types.Number], [types.Number, types.Percentage], [types.Number, types.Dimension], [types.Number, "%"], [types.Number, types.CDC], // https://github.com/w3c/csswg-drafts/pull/6874 ["@", types.Ident], ["@", types.Function], ["@", types.Url], ["@", types.BadUrl], ["@", "-"], ["@", types.CDC], // https://github.com/w3c/csswg-drafts/pull/6874 [".", types.Number], [".", types.Percentage], [".", types.Dimension], ["+", types.Number], ["+", types.Percentage], ["+", types.Dimension], ["/", "*"] ]; var safePairs = specPairs.concat([ [types.Ident, types.Hash], [types.Dimension, types.Hash], [types.Hash, types.Hash], [types.AtKeyword, types.LeftParenthesis], [types.AtKeyword, types.String], [types.AtKeyword, types.Colon], [types.Percentage, types.Percentage], [types.Percentage, types.Dimension], [types.Percentage, types.Function], [types.Percentage, "-"], [types.RightParenthesis, types.Ident], [types.RightParenthesis, types.Function], [types.RightParenthesis, types.Percentage], [types.RightParenthesis, types.Dimension], [types.RightParenthesis, types.Hash], [types.RightParenthesis, "-"] ]); function createMap(pairs) { const isWhiteSpaceRequired = new Set( pairs.map(([prev, next]) => code(prev) << 16 | code(next)) ); return function(prevCode, type, value) { const nextCode = code(type, value); const nextCharCode = value.charCodeAt(0); const emitWs = nextCharCode === HYPHENMINUS && type !== types.Ident && type !== types.Function && type !== types.CDC || nextCharCode === PLUSSIGN ? isWhiteSpaceRequired.has(prevCode << 16 | nextCharCode << 8) : isWhiteSpaceRequired.has(prevCode << 16 | nextCode); if (emitWs) { this.emit(" ", types.WhiteSpace, true); } return nextCode; }; } var spec = createMap(specPairs); var safe = createMap(safePairs); exports2.safe = safe; exports2.spec = spec; } }); // node_modules/css-tree/cjs/generator/create.cjs var require_create2 = __commonJS({ "node_modules/css-tree/cjs/generator/create.cjs"(exports2) { "use strict"; var index = require_tokenizer(); var sourceMap = require_sourceMap(); var tokenBefore = require_token_before(); var types = require_types2(); var REVERSESOLIDUS = 92; function processChildren(node, delimeter) { if (typeof delimeter === "function") { let prev = null; node.children.forEach((node2) => { if (prev !== null) { delimeter.call(this, prev); } this.node(node2); prev = node2; }); return; } node.children.forEach(this.node, this); } function processChunk(chunk) { index.tokenize(chunk, (type, start, end) => { this.token(type, chunk.slice(start, end)); }); } function createGenerator(config) { const types$1 = /* @__PURE__ */ new Map(); for (let name in config.node) { const item = config.node[name]; const fn = item.generate || item; if (typeof fn === "function") { types$1.set(name, item.generate || item); } } return function(node, options) { let buffer = ""; let prevCode = 0; let handlers = { node(node2) { if (types$1.has(node2.type)) { types$1.get(node2.type).call(publicApi, node2); } else { throw new Error("Unknown node type: " + node2.type); } }, tokenBefore: tokenBefore.safe, token(type, value) { prevCode = this.tokenBefore(prevCode, type, value); this.emit(value, type, false); if (type === types.Delim && value.charCodeAt(0) === REVERSESOLIDUS) { this.emit("\n", types.WhiteSpace, true); } }, emit(value) { buffer += value; }, result() { return buffer; } }; if (options) { if (typeof options.decorator === "function") { handlers = options.decorator(handlers); } if (options.sourceMap) { handlers = sourceMap.generateSourceMap(handlers); } if (options.mode in tokenBefore) { handlers.tokenBefore = tokenBefore[options.mode]; } } const publicApi = { node: (node2) => handlers.node(node2), children: processChildren, token: (type, value) => handlers.token(type, value), tokenize: processChunk }; handlers.node(node); return handlers.result(); }; } exports2.createGenerator = createGenerator; } }); // node_modules/css-tree/cjs/convertor/create.cjs var require_create3 = __commonJS({ "node_modules/css-tree/cjs/convertor/create.cjs"(exports2) { "use strict"; var List = require_List(); function createConvertor(walk) { return { fromPlainObject(ast) { walk(ast, { enter(node) { if (node.children && node.children instanceof List.List === false) { node.children = new List.List().fromArray(node.children); } } }); return ast; }, toPlainObject(ast) { walk(ast, { leave(node) { if (node.children && node.children instanceof List.List) { node.children = node.children.toArray(); } } }); return ast; } }; } exports2.createConvertor = createConvertor; } }); // node_modules/css-tree/cjs/walker/create.cjs var require_create4 = __commonJS({ "node_modules/css-tree/cjs/walker/create.cjs"(exports2) { "use strict"; var { hasOwnProperty: hasOwnProperty2 } = Object.prototype; var noop = function() { }; function ensureFunction(value) { return typeof value === "function" ? value : noop; } function invokeForType(fn, type) { return function(node, item, list) { if (node.type === type) { fn.call(this, node, item, list); } }; } function getWalkersFromStructure(name, nodeType) { const structure = nodeType.structure; const walkers = []; for (const key in structure) { if (hasOwnProperty2.call(structure, key) === false) { continue; } let fieldTypes = structure[key]; const walker = { name: key, type: false, nullable: false }; if (!Array.isArray(fieldTypes)) { fieldTypes = [fieldTypes]; } for (const fieldType of fieldTypes) { if (fieldType === null) { walker.nullable = true; } else if (typeof fieldType === "string") { walker.type = "node"; } else if (Array.isArray(fieldType)) { walker.type = "list"; } } if (walker.type) { walkers.push(walker); } } if (walkers.length) { return { context: nodeType.walkContext, fields: walkers }; } return null; } function getTypesFromConfig(config) { const types = {}; for (const name in config.node) { if (hasOwnProperty2.call(config.node, name)) { const nodeType = config.node[name]; if (!nodeType.structure) { throw new Error("Missed `structure` field in `" + name + "` node type definition"); } types[name] = getWalkersFromStructure(name, nodeType); } } return types; } function createTypeIterator(config, reverse) { const fields = config.fields.slice(); const contextName = config.context; const useContext = typeof contextName === "string"; if (reverse) { fields.reverse(); } return function(node, context, walk, walkReducer) { let prevContextValue; if (useContext) { prevContextValue = context[contextName]; context[contextName] = node; } for (const field of fields) { const ref = node[field.name]; if (!field.nullable || ref) { if (field.type === "list") { const breakWalk = reverse ? ref.reduceRight(walkReducer, false) : ref.reduce(walkReducer, false); if (breakWalk) { return true; } } else if (walk(ref)) { return true; } } } if (useContext) { context[contextName] = prevContextValue; } }; } function createFastTraveralMap({ StyleSheet, Atrule, Rule, Block, DeclarationList }) { return { Atrule: { StyleSheet, Atrule, Rule, Block }, Rule: { StyleSheet, Atrule, Rule, Block }, Declaration: { StyleSheet, Atrule, Rule, Block, DeclarationList } }; } function createWalker(config) { const types = getTypesFromConfig(config); const iteratorsNatural = {}; const iteratorsReverse = {}; const breakWalk = Symbol("break-walk"); const skipNode = Symbol("skip-node"); for (const name in types) { if (hasOwnProperty2.call(types, name) && types[name] !== null) { iteratorsNatural[name] = createTypeIterator(types[name], false); iteratorsReverse[name] = createTypeIterator(types[name], true); } } const fastTraversalIteratorsNatural = createFastTraveralMap(iteratorsNatural); const fastTraversalIteratorsReverse = createFastTraveralMap(iteratorsReverse); const walk = function(root, options) { function walkNode(node, item, list) { const enterRet = enter.call(context, node, item, list); if (enterRet === breakWalk) { return true; } if (enterRet === skipNode) { return false; } if (iterators.hasOwnProperty(node.type)) { if (iterators[node.type](node, context, walkNode, walkReducer)) { return true; } } if (leave.call(context, node, item, list) === breakWalk) { return true; } return false; } let enter = noop; let leave = noop; let iterators = iteratorsNatural; let walkReducer = (ret, data, item, list) => ret || walkNode(data, item, list); const context = { break: breakWalk, skip: skipNode, root, stylesheet: null, atrule: null, atrulePrelude: null, rule: null, selector: null, block: null, declaration: null, function: null }; if (typeof options === "function") { enter = options; } else if (options) { enter = ensureFunction(options.enter); leave = ensureFunction(options.leave); if (options.reverse) { iterators = iteratorsReverse; } if (options.visit) { if (fastTraversalIteratorsNatural.hasOwnProperty(options.visit)) { iterators = options.reverse ? fastTraversalIteratorsReverse[options.visit] : fastTraversalIteratorsNatural[options.visit]; } else if (!types.hasOwnProperty(options.visit)) { throw new Error("Bad value `" + options.visit + "` for `visit` option (should be: " + Object.keys(types).sort().join(", ") + ")"); } enter = invokeForType(enter, options.visit); leave = invokeForType(leave, options.visit); } } if (enter === noop && leave === noop) { throw new Error("Neither `enter` nor `leave` walker handler is set or both aren't a function"); } walkNode(root); }; walk.break = breakWalk; walk.skip = skipNode; walk.find = function(ast, fn) { let found = null; walk(ast, function(node, item, list) { if (fn.call(this, node, item, list)) { found = node; return breakWalk; } }); return found; }; walk.findLast = function(ast, fn) { let found = null; walk(ast, { reverse: true, enter(node, item, list) { if (fn.call(this, node, item, list)) { found = node; return breakWalk; } } }); return found; }; walk.findAll = function(ast, fn) { const found = []; walk(ast, function(node, item, list) { if (fn.call(this, node, item, list)) { found.push(node); } }); return found; }; return walk; } exports2.createWalker = createWalker; } }); // node_modules/css-tree/cjs/definition-syntax/generate.cjs var require_generate = __commonJS({ "node_modules/css-tree/cjs/definition-syntax/generate.cjs"(exports2) { "use strict"; function noop(value) { return value; } function generateMultiplier(multiplier) { const { min, max, comma } = multiplier; if (min === 0 && max === 0) { return comma ? "#?" : "*"; } if (min === 0 && max === 1) { return "?"; } if (min === 1 && max === 0) { return comma ? "#" : "+"; } if (min === 1 && max === 1) { return ""; } return (comma ? "#" : "") + (min === max ? "{" + min + "}" : "{" + min + "," + (max !== 0 ? max : "") + "}"); } function generateTypeOpts(node) { switch (node.type) { case "Range": return " [" + (node.min === null ? "-\u221E" : node.min) + "," + (node.max === null ? "\u221E" : node.max) + "]"; default: throw new Error("Unknown node type `" + node.type + "`"); } } function generateSequence(node, decorate, forceBraces, compact) { const combinator = node.combinator === " " || compact ? node.combinator : " " + node.combinator + " "; const result = node.terms.map((term) => internalGenerate(term, decorate, forceBraces, compact)).join(combinator); if (node.explicit || forceBraces) { return (compact || result[0] === "," ? "[" : "[ ") + result + (compact ? "]" : " ]"); } return result; } function internalGenerate(node, decorate, forceBraces, compact) { let result; switch (node.type) { case "Group": result = generateSequence(node, decorate, forceBraces, compact) + (node.disallowEmpty ? "!" : ""); break; case "Multiplier": return internalGenerate(node.term, decorate, forceBraces, compact) + decorate(generateMultiplier(node), node); case "Type": result = "<" + node.name + (node.opts ? decorate(generateTypeOpts(node.opts), node.opts) : "") + ">"; break; case "Property": result = "<'" + node.name + "'>"; break; case "Keyword": result = node.name; break; case "AtKeyword": result = "@" + node.name; break; case "Function": result = node.name + "("; break; case "String": case "Token": result = node.value; break; case "Comma": result = ","; break; default: throw new Error("Unknown node type `" + node.type + "`"); } return decorate(result, node); } function generate(node, options) { let decorate = noop; let forceBraces = false; let compact = false; if (typeof options === "function") { decorate = options; } else if (options) { forceBraces = Boolean(options.forceBraces); compact = Boolean(options.compact); if (typeof options.decorate === "function") { decorate = options.decorate; } } return internalGenerate(node, decorate, forceBraces, compact); } exports2.generate = generate; } }); // node_modules/css-tree/cjs/lexer/error.cjs var require_error2 = __commonJS({ "node_modules/css-tree/cjs/lexer/error.cjs"(exports2) { "use strict"; var createCustomError = require_create_custom_error(); var generate = require_generate(); var defaultLoc = { offset: 0, line: 1, column: 1 }; function locateMismatch(matchResult, node) { const tokens = matchResult.tokens; const longestMatch = matchResult.longestMatch; const mismatchNode = longestMatch < tokens.length ? tokens[longestMatch].node || null : null; const badNode = mismatchNode !== node ? mismatchNode : null; let mismatchOffset = 0; let mismatchLength = 0; let entries = 0; let css = ""; let start; let end; for (let i = 0; i < tokens.length; i++) { const token = tokens[i].value; if (i === longestMatch) { mismatchLength = token.length; mismatchOffset = css.length; } if (badNode !== null && tokens[i].node === badNode) { if (i <= longestMatch) { entries++; } else { entries = 0; } } css += token; } if (longestMatch === tokens.length || entries > 1) { start = fromLoc(badNode || node, "end") || buildLoc(defaultLoc, css); end = buildLoc(start); } else { start = fromLoc(badNode, "start") || buildLoc(fromLoc(node, "start") || defaultLoc, css.slice(0, mismatchOffset)); end = fromLoc(badNode, "end") || buildLoc(start, css.substr(mismatchOffset, mismatchLength)); } return { css, mismatchOffset, mismatchLength, start, end }; } function fromLoc(node, point) { const value = node && node.loc && node.loc[point]; if (value) { return "line" in value ? buildLoc(value) : value; } return null; } function buildLoc({ offset, line, column }, extra) { const loc = { offset, line, column }; if (extra) { const lines = extra.split(/\n|\r\n?|\f/); loc.offset += extra.length; loc.line += lines.length - 1; loc.column = lines.length === 1 ? loc.column + extra.length : lines.pop().length + 1; } return loc; } var SyntaxReferenceError = function(type, referenceName) { const error = createCustomError.createCustomError( "SyntaxReferenceError", type + (referenceName ? " `" + referenceName + "`" : "") ); error.reference = referenceName; return error; }; var SyntaxMatchError = function(message, syntax, node, matchResult) { const error = createCustomError.createCustomError("SyntaxMatchError", message); const { css, mismatchOffset, mismatchLength, start, end } = locateMismatch(matchResult, node); error.rawMessage = message; error.syntax = syntax ? generate.generate(syntax) : ""; error.css = css; error.mismatchOffset = mismatchOffset; error.mismatchLength = mismatchLength; error.message = message + "\n syntax: " + error.syntax + "\n value: " + (css || "") + "\n --------" + new Array(error.mismatchOffset + 1).join("-") + "^"; Object.assign(error, start); error.loc = { source: node && node.loc && node.loc.source || "", start, end }; return error; }; exports2.SyntaxMatchError = SyntaxMatchError; exports2.SyntaxReferenceError = SyntaxReferenceError; } }); // node_modules/css-tree/cjs/utils/names.cjs var require_names3 = __commonJS({ "node_modules/css-tree/cjs/utils/names.cjs"(exports2) { "use strict"; var keywords = /* @__PURE__ */ new Map(); var properties = /* @__PURE__ */ new Map(); var HYPHENMINUS = 45; var keyword = getKeywordDescriptor; var property = getPropertyDescriptor; var vendorPrefix = getVendorPrefix; function isCustomProperty(str, offset) { offset = offset || 0; return str.length - offset >= 2 && str.charCodeAt(offset) === HYPHENMINUS && str.charCodeAt(offset + 1) === HYPHENMINUS; } function getVendorPrefix(str, offset) { offset = offset || 0; if (str.length - offset >= 3) { if (str.charCodeAt(offset) === HYPHENMINUS && str.charCodeAt(offset + 1) !== HYPHENMINUS) { const secondDashIndex = str.indexOf("-", offset + 2); if (secondDashIndex !== -1) { return str.substring(offset, secondDashIndex + 1); } } } return ""; } function getKeywordDescriptor(keyword2) { if (keywords.has(keyword2)) { return keywords.get(keyword2); } const name = keyword2.toLowerCase(); let descriptor = keywords.get(name); if (descriptor === void 0) { const custom = isCustomProperty(name, 0); const vendor = !custom ? getVendorPrefix(name, 0) : ""; descriptor = Object.freeze({ basename: name.substr(vendor.length), name, prefix: vendor, vendor, custom }); } keywords.set(keyword2, descriptor); return descriptor; } function getPropertyDescriptor(property2) { if (properties.has(property2)) { return properties.get(property2); } let name = property2; let hack = property2[0]; if (hack === "/") { hack = property2[1] === "/" ? "//" : "/"; } else if (hack !== "_" && hack !== "*" && hack !== "$" && hack !== "#" && hack !== "+" && hack !== "&") { hack = ""; } const custom = isCustomProperty(name, hack.length); if (!custom) { name = name.toLowerCase(); if (properties.has(name)) { const descriptor2 = properties.get(name); properties.set(property2, descriptor2); return descriptor2; } } const vendor = !custom ? getVendorPrefix(name, hack.length) : ""; const prefix = name.substr(0, hack.length + vendor.length); const descriptor = Object.freeze({ basename: name.substr(prefix.length), name: name.substr(hack.length), hack, vendor, prefix, custom }); properties.set(property2, descriptor); return descriptor; } exports2.isCustomProperty = isCustomProperty; exports2.keyword = keyword; exports2.property = property; exports2.vendorPrefix = vendorPrefix; } }); // node_modules/css-tree/cjs/lexer/generic-const.cjs var require_generic_const = __commonJS({ "node_modules/css-tree/cjs/lexer/generic-const.cjs"(exports2) { "use strict"; var cssWideKeywords = [ "initial", "inherit", "unset", "revert", "revert-layer" ]; exports2.cssWideKeywords = cssWideKeywords; } }); // node_modules/css-tree/cjs/lexer/generic-an-plus-b.cjs var require_generic_an_plus_b = __commonJS({ "node_modules/css-tree/cjs/lexer/generic-an-plus-b.cjs"(exports2, module2) { "use strict"; var charCodeDefinitions = require_char_code_definitions(); var types = require_types2(); var utils = require_utils3(); var PLUSSIGN = 43; var HYPHENMINUS = 45; var N = 110; var DISALLOW_SIGN = true; var ALLOW_SIGN = false; function isDelim(token, code) { return token !== null && token.type === types.Delim && token.value.charCodeAt(0) === code; } function skipSC(token, offset, getNextToken) { while (token !== null && (token.type === types.WhiteSpace || token.type === types.Comment)) { token = getNextToken(++offset); } return offset; } function checkInteger(token, valueOffset, disallowSign, offset) { if (!token) { return 0; } const code = token.value.charCodeAt(valueOffset); if (code === PLUSSIGN || code === HYPHENMINUS) { if (disallowSign) { return 0; } valueOffset++; } for (; valueOffset < token.value.length; valueOffset++) { if (!charCodeDefinitions.isDigit(token.value.charCodeAt(valueOffset))) { return 0; } } return offset + 1; } function consumeB(token, offset_, getNextToken) { let sign = false; let offset = skipSC(token, offset_, getNextToken); token = getNextToken(offset); if (token === null) { return offset_; } if (token.type !== types.Number) { if (isDelim(token, PLUSSIGN) || isDelim(token, HYPHENMINUS)) { sign = true; offset = skipSC(getNextToken(++offset), offset, getNextToken); token = getNextToken(offset); if (token === null || token.type !== types.Number) { return 0; } } else { return offset_; } } if (!sign) { const code = token.value.charCodeAt(0); if (code !== PLUSSIGN && code !== HYPHENMINUS) { return 0; } } return checkInteger(token, sign ? 0 : 1, sign, offset); } function anPlusB(token, getNextToken) { let offset = 0; if (!token) { return 0; } if (token.type === types.Number) { return checkInteger(token, 0, ALLOW_SIGN, offset); } else if (token.type === types.Ident && token.value.charCodeAt(0) === HYPHENMINUS) { if (!utils.cmpChar(token.value, 1, N)) { return 0; } switch (token.value.length) { case 2: return consumeB(getNextToken(++offset), offset, getNextToken); case 3: if (token.value.charCodeAt(2) !== HYPHENMINUS) { return 0; } offset = skipSC(getNextToken(++offset), offset, getNextToken); token = getNextToken(offset); return checkInteger(token, 0, DISALLOW_SIGN, offset); default: if (token.value.charCodeAt(2) !== HYPHENMINUS) { return 0; } return checkInteger(token, 3, DISALLOW_SIGN, offset); } } else if (token.type === types.Ident || isDelim(token, PLUSSIGN) && getNextToken(offset + 1).type === types.Ident) { if (token.type !== types.Ident) { token = getNextToken(++offset); } if (token === null || !utils.cmpChar(token.value, 0, N)) { return 0; } switch (token.value.length) { case 1: return consumeB(getNextToken(++offset), offset, getNextToken); case 2: if (token.value.charCodeAt(1) !== HYPHENMINUS) { return 0; } offset = skipSC(getNextToken(++offset), offset, getNextToken); token = getNextToken(offset); return checkInteger(token, 0, DISALLOW_SIGN, offset); default: if (token.value.charCodeAt(1) !== HYPHENMINUS) { return 0; } return checkInteger(token, 2, DISALLOW_SIGN, offset); } } else if (token.type === types.Dimension) { let code = token.value.charCodeAt(0); let sign = code === PLUSSIGN || code === HYPHENMINUS ? 1 : 0; let i = sign; for (; i < token.value.length; i++) { if (!charCodeDefinitions.isDigit(token.value.charCodeAt(i))) { break; } } if (i === sign) { return 0; } if (!utils.cmpChar(token.value, i, N)) { return 0; } if (i + 1 === token.value.length) { return consumeB(getNextToken(++offset), offset, getNextToken); } else { if (token.value.charCodeAt(i + 1) !== HYPHENMINUS) { return 0; } if (i + 2 === token.value.length) { offset = skipSC(getNextToken(++offset), offset, getNextToken); token = getNextToken(offset); return checkInteger(token, 0, DISALLOW_SIGN, offset); } else { return checkInteger(token, i + 2, DISALLOW_SIGN, offset); } } } return 0; } module2.exports = anPlusB; } }); // node_modules/css-tree/cjs/lexer/generic-urange.cjs var require_generic_urange = __commonJS({ "node_modules/css-tree/cjs/lexer/generic-urange.cjs"(exports2, module2) { "use strict"; var charCodeDefinitions = require_char_code_definitions(); var types = require_types2(); var utils = require_utils3(); var PLUSSIGN = 43; var HYPHENMINUS = 45; var QUESTIONMARK = 63; var U = 117; function isDelim(token, code) { return token !== null && token.type === types.Delim && token.value.charCodeAt(0) === code; } function startsWith(token, code) { return token.value.charCodeAt(0) === code; } function hexSequence(token, offset, allowDash) { let hexlen = 0; for (let pos = offset; pos < token.value.length; pos++) { const code = token.value.charCodeAt(pos); if (code === HYPHENMINUS && allowDash && hexlen !== 0) { hexSequence(token, offset + hexlen + 1, false); return 6; } if (!charCodeDefinitions.isHexDigit(code)) { return 0; } if (++hexlen > 6) { return 0; } } return hexlen; } function withQuestionMarkSequence(consumed, length, getNextToken) { if (!consumed) { return 0; } while (isDelim(getNextToken(length), QUESTIONMARK)) { if (++consumed > 6) { return 0; } length++; } return length; } function urange(token, getNextToken) { let length = 0; if (token === null || token.type !== types.Ident || !utils.cmpChar(token.value, 0, U)) { return 0; } token = getNextToken(++length); if (token === null) { return 0; } if (isDelim(token, PLUSSIGN)) { token = getNextToken(++length); if (token === null) { return 0; } if (token.type === types.Ident) { return withQuestionMarkSequence(hexSequence(token, 0, true), ++length, getNextToken); } if (isDelim(token, QUESTIONMARK)) { return withQuestionMarkSequence(1, ++length, getNextToken); } return 0; } if (token.type === types.Number) { const consumedHexLength = hexSequence(token, 1, true); if (consumedHexLength === 0) { return 0; } token = getNextToken(++length); if (token === null) { return length; } if (token.type === types.Dimension || token.type === types.Number) { if (!startsWith(token, HYPHENMINUS) || !hexSequence(token, 1, false)) { return 0; } return length + 1; } return withQuestionMarkSequence(consumedHexLength, length, getNextToken); } if (token.type === types.Dimension) { return withQuestionMarkSequence(hexSequence(token, 1, true), ++length, getNextToken); } return 0; } module2.exports = urange; } }); // node_modules/css-tree/cjs/lexer/generic.cjs var require_generic = __commonJS({ "node_modules/css-tree/cjs/lexer/generic.cjs"(exports2) { "use strict"; var genericConst = require_generic_const(); var genericAnPlusB = require_generic_an_plus_b(); var genericUrange = require_generic_urange(); var types = require_types2(); var charCodeDefinitions = require_char_code_definitions(); var utils = require_utils3(); var calcFunctionNames = ["calc(", "-moz-calc(", "-webkit-calc("]; var balancePair = /* @__PURE__ */ new Map([ [types.Function, types.RightParenthesis], [types.LeftParenthesis, types.RightParenthesis], [types.LeftSquareBracket, types.RightSquareBracket], [types.LeftCurlyBracket, types.RightCurlyBracket] ]); function charCodeAt(str, index) { return index < str.length ? str.charCodeAt(index) : 0; } function eqStr(actual, expected) { return utils.cmpStr(actual, 0, actual.length, expected); } function eqStrAny(actual, expected) { for (let i = 0; i < expected.length; i++) { if (eqStr(actual, expected[i])) { return true; } } return false; } function isPostfixIeHack(str, offset) { if (offset !== str.length - 2) { return false; } return charCodeAt(str, offset) === 92 && // U+005C REVERSE SOLIDUS (\) charCodeDefinitions.isDigit(charCodeAt(str, offset + 1)); } function outOfRange(opts, value, numEnd) { if (opts && opts.type === "Range") { const num = Number( numEnd !== void 0 && numEnd !== value.length ? value.substr(0, numEnd) : value ); if (isNaN(num)) { return true; } if (opts.min !== null && num < opts.min && typeof opts.min !== "string") { return true; } if (opts.max !== null && num > opts.max && typeof opts.max !== "string") { return true; } } return false; } function consumeFunction(token, getNextToken) { let balanceCloseType = 0; let balanceStash = []; let length = 0; scan: do { switch (token.type) { case types.RightCurlyBracket: case types.RightParenthesis: case types.RightSquareBracket: if (token.type !== balanceCloseType) { break scan; } balanceCloseType = balanceStash.pop(); if (balanceStash.length === 0) { length++; break scan; } break; case types.Function: case types.LeftParenthesis: case types.LeftSquareBracket: case types.LeftCurlyBracket: balanceStash.push(balanceCloseType); balanceCloseType = balancePair.get(token.type); break; } length++; } while (token = getNextToken(length)); return length; } function calc(next) { return function(token, getNextToken, opts) { if (token === null) { return 0; } if (token.type === types.Function && eqStrAny(token.value, calcFunctionNames)) { return consumeFunction(token, getNextToken); } return next(token, getNextToken, opts); }; } function tokenType(expectedTokenType) { return function(token) { if (token === null || token.type !== expectedTokenType) { return 0; } return 1; }; } function customIdent(token) { if (token === null || token.type !== types.Ident) { return 0; } const name = token.value.toLowerCase(); if (eqStrAny(name, genericConst.cssWideKeywords)) { return 0; } if (eqStr(name, "default")) { return 0; } return 1; } function customPropertyName(token) { if (token === null || token.type !== types.Ident) { return 0; } if (charCodeAt(token.value, 0) !== 45 || charCodeAt(token.value, 1) !== 45) { return 0; } return 1; } function hexColor(token) { if (token === null || token.type !== types.Hash) { return 0; } const length = token.value.length; if (length !== 4 && length !== 5 && length !== 7 && length !== 9) { return 0; } for (let i = 1; i < length; i++) { if (!charCodeDefinitions.isHexDigit(charCodeAt(token.value, i))) { return 0; } } return 1; } function idSelector(token) { if (token === null || token.type !== types.Hash) { return 0; } if (!charCodeDefinitions.isIdentifierStart(charCodeAt(token.value, 1), charCodeAt(token.value, 2), charCodeAt(token.value, 3))) { return 0; } return 1; } function declarationValue(token, getNextToken) { if (!token) { return 0; } let balanceCloseType = 0; let balanceStash = []; let length = 0; scan: do { switch (token.type) { case types.BadString: case types.BadUrl: break scan; case types.RightCurlyBracket: case types.RightParenthesis: case types.RightSquareBracket: if (token.type !== balanceCloseType) { break scan; } balanceCloseType = balanceStash.pop(); break; case types.Semicolon: if (balanceCloseType === 0) { break scan; } break; case types.Delim: if (balanceCloseType === 0 && token.value === "!") { break scan; } break; case types.Function: case types.LeftParenthesis: case types.LeftSquareBracket: case types.LeftCurlyBracket: balanceStash.push(balanceCloseType); balanceCloseType = balancePair.get(token.type); break; } length++; } while (token = getNextToken(length)); return length; } function anyValue(token, getNextToken) { if (!token) { return 0; } let balanceCloseType = 0; let balanceStash = []; let length = 0; scan: do { switch (token.type) { case types.BadString: case types.BadUrl: break scan; case types.RightCurlyBracket: case types.RightParenthesis: case types.RightSquareBracket: if (token.type !== balanceCloseType) { break scan; } balanceCloseType = balanceStash.pop(); break; case types.Function: case types.LeftParenthesis: case types.LeftSquareBracket: case types.LeftCurlyBracket: balanceStash.push(balanceCloseType); balanceCloseType = balancePair.get(token.type); break; } length++; } while (token = getNextToken(length)); return length; } function dimension(type) { if (type) { type = new Set(type); } return function(token, getNextToken, opts) { if (token === null || token.type !== types.Dimension) { return 0; } const numberEnd = utils.consumeNumber(token.value, 0); if (type !== null) { const reverseSolidusOffset = token.value.indexOf("\\", numberEnd); const unit = reverseSolidusOffset === -1 || !isPostfixIeHack(token.value, reverseSolidusOffset) ? token.value.substr(numberEnd) : token.value.substring(numberEnd, reverseSolidusOffset); if (type.has(unit.toLowerCase()) === false) { return 0; } } if (outOfRange(opts, token.value, numberEnd)) { return 0; } return 1; }; } function percentage(token, getNextToken, opts) { if (token === null || token.type !== types.Percentage) { return 0; } if (outOfRange(opts, token.value, token.value.length - 1)) { return 0; } return 1; } function zero(next) { if (typeof next !== "function") { next = function() { return 0; }; } return function(token, getNextToken, opts) { if (token !== null && token.type === types.Number) { if (Number(token.value) === 0) { return 1; } } return next(token, getNextToken, opts); }; } function number(token, getNextToken, opts) { if (token === null) { return 0; } const numberEnd = utils.consumeNumber(token.value, 0); const isNumber = numberEnd === token.value.length; if (!isNumber && !isPostfixIeHack(token.value, numberEnd)) { return 0; } if (outOfRange(opts, token.value, numberEnd)) { return 0; } return 1; } function integer(token, getNextToken, opts) { if (token === null || token.type !== types.Number) { return 0; } let i = charCodeAt(token.value, 0) === 43 || // U+002B PLUS SIGN (+) charCodeAt(token.value, 0) === 45 ? 1 : 0; for (; i < token.value.length; i++) { if (!charCodeDefinitions.isDigit(charCodeAt(token.value, i))) { return 0; } } if (outOfRange(opts, token.value, i)) { return 0; } return 1; } var tokenTypes = { "ident-token": tokenType(types.Ident), "function-token": tokenType(types.Function), "at-keyword-token": tokenType(types.AtKeyword), "hash-token": tokenType(types.Hash), "string-token": tokenType(types.String), "bad-string-token": tokenType(types.BadString), "url-token": tokenType(types.Url), "bad-url-token": tokenType(types.BadUrl), "delim-token": tokenType(types.Delim), "number-token": tokenType(types.Number), "percentage-token": tokenType(types.Percentage), "dimension-token": tokenType(types.Dimension), "whitespace-token": tokenType(types.WhiteSpace), "CDO-token": tokenType(types.CDO), "CDC-token": tokenType(types.CDC), "colon-token": tokenType(types.Colon), "semicolon-token": tokenType(types.Semicolon), "comma-token": tokenType(types.Comma), "[-token": tokenType(types.LeftSquareBracket), "]-token": tokenType(types.RightSquareBracket), "(-token": tokenType(types.LeftParenthesis), ")-token": tokenType(types.RightParenthesis), "{-token": tokenType(types.LeftCurlyBracket), "}-token": tokenType(types.RightCurlyBracket) }; var productionTypes = { // token type aliases "string": tokenType(types.String), "ident": tokenType(types.Ident), // percentage "percentage": calc(percentage), // numeric "zero": zero(), "number": calc(number), "integer": calc(integer), // complex types "custom-ident": customIdent, "custom-property-name": customPropertyName, "hex-color": hexColor, "id-selector": idSelector, // element( ) "an-plus-b": genericAnPlusB, "urange": genericUrange, "declaration-value": declarationValue, "any-value": anyValue }; function createDemensionTypes(units) { const { angle, decibel, frequency, flex, length, resolution, semitones, time } = units || {}; return { "dimension": calc(dimension(null)), "angle": calc(dimension(angle)), "decibel": calc(dimension(decibel)), "frequency": calc(dimension(frequency)), "flex": calc(dimension(flex)), "length": calc(zero(dimension(length))), "resolution": calc(dimension(resolution)), "semitones": calc(dimension(semitones)), "time": calc(dimension(time)) }; } function createGenericTypes(units) { return { ...tokenTypes, ...productionTypes, ...createDemensionTypes(units) }; } exports2.createDemensionTypes = createDemensionTypes; exports2.createGenericTypes = createGenericTypes; exports2.productionTypes = productionTypes; exports2.tokenTypes = tokenTypes; } }); // node_modules/css-tree/cjs/lexer/units.cjs var require_units = __commonJS({ "node_modules/css-tree/cjs/lexer/units.cjs"(exports2) { "use strict"; var length = [ // absolute length units https://www.w3.org/TR/css-values-3/#lengths "cm", "mm", "q", "in", "pt", "pc", "px", // font-relative length units https://drafts.csswg.org/css-values-4/#font-relative-lengths "em", "rem", "ex", "rex", "cap", "rcap", "ch", "rch", "ic", "ric", "lh", "rlh", // viewport-percentage lengths https://drafts.csswg.org/css-values-4/#viewport-relative-lengths "vw", "svw", "lvw", "dvw", "vh", "svh", "lvh", "dvh", "vi", "svi", "lvi", "dvi", "vb", "svb", "lvb", "dvb", "vmin", "svmin", "lvmin", "dvmin", "vmax", "svmax", "lvmax", "dvmax", // container relative lengths https://drafts.csswg.org/css-contain-3/#container-lengths "cqw", "cqh", "cqi", "cqb", "cqmin", "cqmax" ]; var angle = ["deg", "grad", "rad", "turn"]; var time = ["s", "ms"]; var frequency = ["hz", "khz"]; var resolution = ["dpi", "dpcm", "dppx", "x"]; var flex = ["fr"]; var decibel = ["db"]; var semitones = ["st"]; exports2.angle = angle; exports2.decibel = decibel; exports2.flex = flex; exports2.frequency = frequency; exports2.length = length; exports2.resolution = resolution; exports2.semitones = semitones; exports2.time = time; } }); // node_modules/css-tree/cjs/lexer/prepare-tokens.cjs var require_prepare_tokens = __commonJS({ "node_modules/css-tree/cjs/lexer/prepare-tokens.cjs"(exports2, module2) { "use strict"; var index = require_tokenizer(); var astToTokens = { decorator(handlers) { const tokens = []; let curNode = null; return { ...handlers, node(node) { const tmp = curNode; curNode = node; handlers.node.call(this, node); curNode = tmp; }, emit(value, type, auto) { tokens.push({ type, value, node: auto ? null : curNode }); }, result() { return tokens; } }; } }; function stringToTokens(str) { const tokens = []; index.tokenize( str, (type, start, end) => tokens.push({ type, value: str.slice(start, end), node: null }) ); return tokens; } function prepareTokens(value, syntax) { if (typeof value === "string") { return stringToTokens(value); } return syntax.generate(value, astToTokens); } module2.exports = prepareTokens; } }); // node_modules/css-tree/cjs/definition-syntax/SyntaxError.cjs var require_SyntaxError2 = __commonJS({ "node_modules/css-tree/cjs/definition-syntax/SyntaxError.cjs"(exports2) { "use strict"; var createCustomError = require_create_custom_error(); function SyntaxError2(message, input, offset) { return Object.assign(createCustomError.createCustomError("SyntaxError", message), { input, offset, rawMessage: message, message: message + "\n " + input + "\n--" + new Array((offset || input.length) + 1).join("-") + "^" }); } exports2.SyntaxError = SyntaxError2; } }); // node_modules/css-tree/cjs/definition-syntax/tokenizer.cjs var require_tokenizer2 = __commonJS({ "node_modules/css-tree/cjs/definition-syntax/tokenizer.cjs"(exports2) { "use strict"; var SyntaxError2 = require_SyntaxError2(); var TAB = 9; var N = 10; var F = 12; var R = 13; var SPACE = 32; var Tokenizer = class { constructor(str) { this.str = str; this.pos = 0; } charCodeAt(pos) { return pos < this.str.length ? this.str.charCodeAt(pos) : 0; } charCode() { return this.charCodeAt(this.pos); } nextCharCode() { return this.charCodeAt(this.pos + 1); } nextNonWsCode(pos) { return this.charCodeAt(this.findWsEnd(pos)); } findWsEnd(pos) { for (; pos < this.str.length; pos++) { const code = this.str.charCodeAt(pos); if (code !== R && code !== N && code !== F && code !== SPACE && code !== TAB) { break; } } return pos; } substringToPos(end) { return this.str.substring(this.pos, this.pos = end); } eat(code) { if (this.charCode() !== code) { this.error("Expect `" + String.fromCharCode(code) + "`"); } this.pos++; } peek() { return this.pos < this.str.length ? this.str.charAt(this.pos++) : ""; } error(message) { throw new SyntaxError2.SyntaxError(message, this.str, this.pos); } }; exports2.Tokenizer = Tokenizer; } }); // node_modules/css-tree/cjs/definition-syntax/parse.cjs var require_parse6 = __commonJS({ "node_modules/css-tree/cjs/definition-syntax/parse.cjs"(exports2) { "use strict"; var tokenizer = require_tokenizer2(); var TAB = 9; var N = 10; var F = 12; var R = 13; var SPACE = 32; var EXCLAMATIONMARK = 33; var NUMBERSIGN = 35; var AMPERSAND = 38; var APOSTROPHE = 39; var LEFTPARENTHESIS = 40; var RIGHTPARENTHESIS = 41; var ASTERISK = 42; var PLUSSIGN = 43; var COMMA = 44; var HYPERMINUS = 45; var LESSTHANSIGN = 60; var GREATERTHANSIGN = 62; var QUESTIONMARK = 63; var COMMERCIALAT = 64; var LEFTSQUAREBRACKET = 91; var RIGHTSQUAREBRACKET = 93; var LEFTCURLYBRACKET = 123; var VERTICALLINE = 124; var RIGHTCURLYBRACKET = 125; var INFINITY = 8734; var NAME_CHAR = new Uint8Array(128).map( (_, idx) => /[a-zA-Z0-9\-]/.test(String.fromCharCode(idx)) ? 1 : 0 ); var COMBINATOR_PRECEDENCE = { " ": 1, "&&": 2, "||": 3, "|": 4 }; function scanSpaces(tokenizer2) { return tokenizer2.substringToPos( tokenizer2.findWsEnd(tokenizer2.pos) ); } function scanWord(tokenizer2) { let end = tokenizer2.pos; for (; end < tokenizer2.str.length; end++) { const code = tokenizer2.str.charCodeAt(end); if (code >= 128 || NAME_CHAR[code] === 0) { break; } } if (tokenizer2.pos === end) { tokenizer2.error("Expect a keyword"); } return tokenizer2.substringToPos(end); } function scanNumber(tokenizer2) { let end = tokenizer2.pos; for (; end < tokenizer2.str.length; end++) { const code = tokenizer2.str.charCodeAt(end); if (code < 48 || code > 57) { break; } } if (tokenizer2.pos === end) { tokenizer2.error("Expect a number"); } return tokenizer2.substringToPos(end); } function scanString(tokenizer2) { const end = tokenizer2.str.indexOf("'", tokenizer2.pos + 1); if (end === -1) { tokenizer2.pos = tokenizer2.str.length; tokenizer2.error("Expect an apostrophe"); } return tokenizer2.substringToPos(end + 1); } function readMultiplierRange(tokenizer2) { let min = null; let max = null; tokenizer2.eat(LEFTCURLYBRACKET); min = scanNumber(tokenizer2); if (tokenizer2.charCode() === COMMA) { tokenizer2.pos++; if (tokenizer2.charCode() !== RIGHTCURLYBRACKET) { max = scanNumber(tokenizer2); } } else { max = min; } tokenizer2.eat(RIGHTCURLYBRACKET); return { min: Number(min), max: max ? Number(max) : 0 }; } function readMultiplier(tokenizer2) { let range = null; let comma = false; switch (tokenizer2.charCode()) { case ASTERISK: tokenizer2.pos++; range = { min: 0, max: 0 }; break; case PLUSSIGN: tokenizer2.pos++; range = { min: 1, max: 0 }; break; case QUESTIONMARK: tokenizer2.pos++; range = { min: 0, max: 1 }; break; case NUMBERSIGN: tokenizer2.pos++; comma = true; if (tokenizer2.charCode() === LEFTCURLYBRACKET) { range = readMultiplierRange(tokenizer2); } else if (tokenizer2.charCode() === QUESTIONMARK) { tokenizer2.pos++; range = { min: 0, max: 0 }; } else { range = { min: 1, max: 0 }; } break; case LEFTCURLYBRACKET: range = readMultiplierRange(tokenizer2); break; default: return null; } return { type: "Multiplier", comma, min: range.min, max: range.max, term: null }; } function maybeMultiplied(tokenizer2, node) { const multiplier = readMultiplier(tokenizer2); if (multiplier !== null) { multiplier.term = node; if (tokenizer2.charCode() === NUMBERSIGN && tokenizer2.charCodeAt(tokenizer2.pos - 1) === PLUSSIGN) { return maybeMultiplied(tokenizer2, multiplier); } return multiplier; } return node; } function maybeToken(tokenizer2) { const ch = tokenizer2.peek(); if (ch === "") { return null; } return { type: "Token", value: ch }; } function readProperty(tokenizer2) { let name; tokenizer2.eat(LESSTHANSIGN); tokenizer2.eat(APOSTROPHE); name = scanWord(tokenizer2); tokenizer2.eat(APOSTROPHE); tokenizer2.eat(GREATERTHANSIGN); return maybeMultiplied(tokenizer2, { type: "Property", name }); } function readTypeRange(tokenizer2) { let min = null; let max = null; let sign = 1; tokenizer2.eat(LEFTSQUAREBRACKET); if (tokenizer2.charCode() === HYPERMINUS) { tokenizer2.peek(); sign = -1; } if (sign == -1 && tokenizer2.charCode() === INFINITY) { tokenizer2.peek(); } else { min = sign * Number(scanNumber(tokenizer2)); if (NAME_CHAR[tokenizer2.charCode()] !== 0) { min += scanWord(tokenizer2); } } scanSpaces(tokenizer2); tokenizer2.eat(COMMA); scanSpaces(tokenizer2); if (tokenizer2.charCode() === INFINITY) { tokenizer2.peek(); } else { sign = 1; if (tokenizer2.charCode() === HYPERMINUS) { tokenizer2.peek(); sign = -1; } max = sign * Number(scanNumber(tokenizer2)); if (NAME_CHAR[tokenizer2.charCode()] !== 0) { max += scanWord(tokenizer2); } } tokenizer2.eat(RIGHTSQUAREBRACKET); return { type: "Range", min, max }; } function readType(tokenizer2) { let name; let opts = null; tokenizer2.eat(LESSTHANSIGN); name = scanWord(tokenizer2); if (tokenizer2.charCode() === LEFTPARENTHESIS && tokenizer2.nextCharCode() === RIGHTPARENTHESIS) { tokenizer2.pos += 2; name += "()"; } if (tokenizer2.charCodeAt(tokenizer2.findWsEnd(tokenizer2.pos)) === LEFTSQUAREBRACKET) { scanSpaces(tokenizer2); opts = readTypeRange(tokenizer2); } tokenizer2.eat(GREATERTHANSIGN); return maybeMultiplied(tokenizer2, { type: "Type", name, opts }); } function readKeywordOrFunction(tokenizer2) { const name = scanWord(tokenizer2); if (tokenizer2.charCode() === LEFTPARENTHESIS) { tokenizer2.pos++; return { type: "Function", name }; } return maybeMultiplied(tokenizer2, { type: "Keyword", name }); } function regroupTerms(terms, combinators) { function createGroup(terms2, combinator2) { return { type: "Group", terms: terms2, combinator: combinator2, disallowEmpty: false, explicit: false }; } let combinator; combinators = Object.keys(combinators).sort((a, b) => COMBINATOR_PRECEDENCE[a] - COMBINATOR_PRECEDENCE[b]); while (combinators.length > 0) { combinator = combinators.shift(); let i = 0; let subgroupStart = 0; for (; i < terms.length; i++) { const term = terms[i]; if (term.type === "Combinator") { if (term.value === combinator) { if (subgroupStart === -1) { subgroupStart = i - 1; } terms.splice(i, 1); i--; } else { if (subgroupStart !== -1 && i - subgroupStart > 1) { terms.splice( subgroupStart, i - subgroupStart, createGroup(terms.slice(subgroupStart, i), combinator) ); i = subgroupStart + 1; } subgroupStart = -1; } } } if (subgroupStart !== -1 && combinators.length) { terms.splice( subgroupStart, i - subgroupStart, createGroup(terms.slice(subgroupStart, i), combinator) ); } } return combinator; } function readImplicitGroup(tokenizer2) { const terms = []; const combinators = {}; let token; let prevToken = null; let prevTokenPos = tokenizer2.pos; while (token = peek(tokenizer2)) { if (token.type !== "Spaces") { if (token.type === "Combinator") { if (prevToken === null || prevToken.type === "Combinator") { tokenizer2.pos = prevTokenPos; tokenizer2.error("Unexpected combinator"); } combinators[token.value] = true; } else if (prevToken !== null && prevToken.type !== "Combinator") { combinators[" "] = true; terms.push({ type: "Combinator", value: " " }); } terms.push(token); prevToken = token; prevTokenPos = tokenizer2.pos; } } if (prevToken !== null && prevToken.type === "Combinator") { tokenizer2.pos -= prevTokenPos; tokenizer2.error("Unexpected combinator"); } return { type: "Group", terms, combinator: regroupTerms(terms, combinators) || " ", disallowEmpty: false, explicit: false }; } function readGroup(tokenizer2) { let result; tokenizer2.eat(LEFTSQUAREBRACKET); result = readImplicitGroup(tokenizer2); tokenizer2.eat(RIGHTSQUAREBRACKET); result.explicit = true; if (tokenizer2.charCode() === EXCLAMATIONMARK) { tokenizer2.pos++; result.disallowEmpty = true; } return result; } function peek(tokenizer2) { let code = tokenizer2.charCode(); if (code < 128 && NAME_CHAR[code] === 1) { return readKeywordOrFunction(tokenizer2); } switch (code) { case RIGHTSQUAREBRACKET: break; case LEFTSQUAREBRACKET: return maybeMultiplied(tokenizer2, readGroup(tokenizer2)); case LESSTHANSIGN: return tokenizer2.nextCharCode() === APOSTROPHE ? readProperty(tokenizer2) : readType(tokenizer2); case VERTICALLINE: return { type: "Combinator", value: tokenizer2.substringToPos( tokenizer2.pos + (tokenizer2.nextCharCode() === VERTICALLINE ? 2 : 1) ) }; case AMPERSAND: tokenizer2.pos++; tokenizer2.eat(AMPERSAND); return { type: "Combinator", value: "&&" }; case COMMA: tokenizer2.pos++; return { type: "Comma" }; case APOSTROPHE: return maybeMultiplied(tokenizer2, { type: "String", value: scanString(tokenizer2) }); case SPACE: case TAB: case N: case R: case F: return { type: "Spaces", value: scanSpaces(tokenizer2) }; case COMMERCIALAT: code = tokenizer2.nextCharCode(); if (code < 128 && NAME_CHAR[code] === 1) { tokenizer2.pos++; return { type: "AtKeyword", name: scanWord(tokenizer2) }; } return maybeToken(tokenizer2); case ASTERISK: case PLUSSIGN: case QUESTIONMARK: case NUMBERSIGN: case EXCLAMATIONMARK: break; case LEFTCURLYBRACKET: code = tokenizer2.nextCharCode(); if (code < 48 || code > 57) { return maybeToken(tokenizer2); } break; default: return maybeToken(tokenizer2); } } function parse(source) { const tokenizer$1 = new tokenizer.Tokenizer(source); const result = readImplicitGroup(tokenizer$1); if (tokenizer$1.pos !== source.length) { tokenizer$1.error("Unexpected input"); } if (result.terms.length === 1 && result.terms[0].type === "Group") { return result.terms[0]; } return result; } exports2.parse = parse; } }); // node_modules/css-tree/cjs/lexer/match-graph.cjs var require_match_graph = __commonJS({ "node_modules/css-tree/cjs/lexer/match-graph.cjs"(exports2) { "use strict"; var parse = require_parse6(); var MATCH = { type: "Match" }; var MISMATCH = { type: "Mismatch" }; var DISALLOW_EMPTY = { type: "DisallowEmpty" }; var LEFTPARENTHESIS = 40; var RIGHTPARENTHESIS = 41; function createCondition(match, thenBranch, elseBranch) { if (thenBranch === MATCH && elseBranch === MISMATCH) { return match; } if (match === MATCH && thenBranch === MATCH && elseBranch === MATCH) { return match; } if (match.type === "If" && match.else === MISMATCH && thenBranch === MATCH) { thenBranch = match.then; match = match.match; } return { type: "If", match, then: thenBranch, else: elseBranch }; } function isFunctionType(name) { return name.length > 2 && name.charCodeAt(name.length - 2) === LEFTPARENTHESIS && name.charCodeAt(name.length - 1) === RIGHTPARENTHESIS; } function isEnumCapatible(term) { return term.type === "Keyword" || term.type === "AtKeyword" || term.type === "Function" || term.type === "Type" && isFunctionType(term.name); } function buildGroupMatchGraph(combinator, terms, atLeastOneTermMatched) { switch (combinator) { case " ": { let result = MATCH; for (let i = terms.length - 1; i >= 0; i--) { const term = terms[i]; result = createCondition( term, result, MISMATCH ); } return result; } case "|": { let result = MISMATCH; let map = null; for (let i = terms.length - 1; i >= 0; i--) { let term = terms[i]; if (isEnumCapatible(term)) { if (map === null && i > 0 && isEnumCapatible(terms[i - 1])) { map = /* @__PURE__ */ Object.create(null); result = createCondition( { type: "Enum", map }, MATCH, result ); } if (map !== null) { const key = (isFunctionType(term.name) ? term.name.slice(0, -1) : term.name).toLowerCase(); if (key in map === false) { map[key] = term; continue; } } } map = null; result = createCondition( term, MATCH, result ); } return result; } case "&&": { if (terms.length > 5) { return { type: "MatchOnce", terms, all: true }; } let result = MISMATCH; for (let i = terms.length - 1; i >= 0; i--) { const term = terms[i]; let thenClause; if (terms.length > 1) { thenClause = buildGroupMatchGraph( combinator, terms.filter(function(newGroupTerm) { return newGroupTerm !== term; }), false ); } else { thenClause = MATCH; } result = createCondition( term, thenClause, result ); } return result; } case "||": { if (terms.length > 5) { return { type: "MatchOnce", terms, all: false }; } let result = atLeastOneTermMatched ? MATCH : MISMATCH; for (let i = terms.length - 1; i >= 0; i--) { const term = terms[i]; let thenClause; if (terms.length > 1) { thenClause = buildGroupMatchGraph( combinator, terms.filter(function(newGroupTerm) { return newGroupTerm !== term; }), true ); } else { thenClause = MATCH; } result = createCondition( term, thenClause, result ); } return result; } } } function buildMultiplierMatchGraph(node) { let result = MATCH; let matchTerm = buildMatchGraphInternal(node.term); if (node.max === 0) { matchTerm = createCondition( matchTerm, DISALLOW_EMPTY, MISMATCH ); result = createCondition( matchTerm, null, // will be a loop MISMATCH ); result.then = createCondition( MATCH, MATCH, result // make a loop ); if (node.comma) { result.then.else = createCondition( { type: "Comma", syntax: node }, result, MISMATCH ); } } else { for (let i = node.min || 1; i <= node.max; i++) { if (node.comma && result !== MATCH) { result = createCondition( { type: "Comma", syntax: node }, result, MISMATCH ); } result = createCondition( matchTerm, createCondition( MATCH, MATCH, result ), MISMATCH ); } } if (node.min === 0) { result = createCondition( MATCH, MATCH, result ); } else { for (let i = 0; i < node.min - 1; i++) { if (node.comma && result !== MATCH) { result = createCondition( { type: "Comma", syntax: node }, result, MISMATCH ); } result = createCondition( matchTerm, result, MISMATCH ); } } return result; } function buildMatchGraphInternal(node) { if (typeof node === "function") { return { type: "Generic", fn: node }; } switch (node.type) { case "Group": { let result = buildGroupMatchGraph( node.combinator, node.terms.map(buildMatchGraphInternal), false ); if (node.disallowEmpty) { result = createCondition( result, DISALLOW_EMPTY, MISMATCH ); } return result; } case "Multiplier": return buildMultiplierMatchGraph(node); case "Type": case "Property": return { type: node.type, name: node.name, syntax: node }; case "Keyword": return { type: node.type, name: node.name.toLowerCase(), syntax: node }; case "AtKeyword": return { type: node.type, name: "@" + node.name.toLowerCase(), syntax: node }; case "Function": return { type: node.type, name: node.name.toLowerCase() + "(", syntax: node }; case "String": if (node.value.length === 3) { return { type: "Token", value: node.value.charAt(1), syntax: node }; } return { type: node.type, value: node.value.substr(1, node.value.length - 2).replace(/\\'/g, "'"), syntax: node }; case "Token": return { type: node.type, value: node.value, syntax: node }; case "Comma": return { type: node.type, syntax: node }; default: throw new Error("Unknown node type:", node.type); } } function buildMatchGraph(syntaxTree, ref) { if (typeof syntaxTree === "string") { syntaxTree = parse.parse(syntaxTree); } return { type: "MatchGraph", match: buildMatchGraphInternal(syntaxTree), syntax: ref || null, source: syntaxTree }; } exports2.DISALLOW_EMPTY = DISALLOW_EMPTY; exports2.MATCH = MATCH; exports2.MISMATCH = MISMATCH; exports2.buildMatchGraph = buildMatchGraph; } }); // node_modules/css-tree/cjs/lexer/match.cjs var require_match = __commonJS({ "node_modules/css-tree/cjs/lexer/match.cjs"(exports2) { "use strict"; var matchGraph = require_match_graph(); var types = require_types2(); var { hasOwnProperty: hasOwnProperty2 } = Object.prototype; var STUB = 0; var TOKEN = 1; var OPEN_SYNTAX = 2; var CLOSE_SYNTAX = 3; var EXIT_REASON_MATCH = "Match"; var EXIT_REASON_MISMATCH = "Mismatch"; var EXIT_REASON_ITERATION_LIMIT = "Maximum iteration number exceeded (please fill an issue on https://github.com/csstree/csstree/issues)"; var ITERATION_LIMIT = 15e3; function reverseList(list) { let prev = null; let next = null; let item = list; while (item !== null) { next = item.prev; item.prev = prev; prev = item; item = next; } return prev; } function areStringsEqualCaseInsensitive(testStr, referenceStr) { if (testStr.length !== referenceStr.length) { return false; } for (let i = 0; i < testStr.length; i++) { const referenceCode = referenceStr.charCodeAt(i); let testCode = testStr.charCodeAt(i); if (testCode >= 65 && testCode <= 90) { testCode = testCode | 32; } if (testCode !== referenceCode) { return false; } } return true; } function isContextEdgeDelim(token) { if (token.type !== types.Delim) { return false; } return token.value !== "?"; } function isCommaContextStart(token) { if (token === null) { return true; } return token.type === types.Comma || token.type === types.Function || token.type === types.LeftParenthesis || token.type === types.LeftSquareBracket || token.type === types.LeftCurlyBracket || isContextEdgeDelim(token); } function isCommaContextEnd(token) { if (token === null) { return true; } return token.type === types.RightParenthesis || token.type === types.RightSquareBracket || token.type === types.RightCurlyBracket || token.type === types.Delim && token.value === "/"; } function internalMatch(tokens, state, syntaxes) { function moveToNextToken() { do { tokenIndex++; token = tokenIndex < tokens.length ? tokens[tokenIndex] : null; } while (token !== null && (token.type === types.WhiteSpace || token.type === types.Comment)); } function getNextToken(offset) { const nextIndex = tokenIndex + offset; return nextIndex < tokens.length ? tokens[nextIndex] : null; } function stateSnapshotFromSyntax(nextState, prev) { return { nextState, matchStack, syntaxStack, thenStack, tokenIndex, prev }; } function pushThenStack(nextState) { thenStack = { nextState, matchStack, syntaxStack, prev: thenStack }; } function pushElseStack(nextState) { elseStack = stateSnapshotFromSyntax(nextState, elseStack); } function addTokenToMatch() { matchStack = { type: TOKEN, syntax: state.syntax, token, prev: matchStack }; moveToNextToken(); syntaxStash = null; if (tokenIndex > longestMatch) { longestMatch = tokenIndex; } } function openSyntax() { syntaxStack = { syntax: state.syntax, opts: state.syntax.opts || syntaxStack !== null && syntaxStack.opts || null, prev: syntaxStack }; matchStack = { type: OPEN_SYNTAX, syntax: state.syntax, token: matchStack.token, prev: matchStack }; } function closeSyntax() { if (matchStack.type === OPEN_SYNTAX) { matchStack = matchStack.prev; } else { matchStack = { type: CLOSE_SYNTAX, syntax: syntaxStack.syntax, token: matchStack.token, prev: matchStack }; } syntaxStack = syntaxStack.prev; } let syntaxStack = null; let thenStack = null; let elseStack = null; let syntaxStash = null; let iterationCount = 0; let exitReason = null; let token = null; let tokenIndex = -1; let longestMatch = 0; let matchStack = { type: STUB, syntax: null, token: null, prev: null }; moveToNextToken(); while (exitReason === null && ++iterationCount < ITERATION_LIMIT) { switch (state.type) { case "Match": if (thenStack === null) { if (token !== null) { if (tokenIndex !== tokens.length - 1 || token.value !== "\\0" && token.value !== "\\9") { state = matchGraph.MISMATCH; break; } } exitReason = EXIT_REASON_MATCH; break; } state = thenStack.nextState; if (state === matchGraph.DISALLOW_EMPTY) { if (thenStack.matchStack === matchStack) { state = matchGraph.MISMATCH; break; } else { state = matchGraph.MATCH; } } while (thenStack.syntaxStack !== syntaxStack) { closeSyntax(); } thenStack = thenStack.prev; break; case "Mismatch": if (syntaxStash !== null && syntaxStash !== false) { if (elseStack === null || tokenIndex > elseStack.tokenIndex) { elseStack = syntaxStash; syntaxStash = false; } } else if (elseStack === null) { exitReason = EXIT_REASON_MISMATCH; break; } state = elseStack.nextState; thenStack = elseStack.thenStack; syntaxStack = elseStack.syntaxStack; matchStack = elseStack.matchStack; tokenIndex = elseStack.tokenIndex; token = tokenIndex < tokens.length ? tokens[tokenIndex] : null; elseStack = elseStack.prev; break; case "MatchGraph": state = state.match; break; case "If": if (state.else !== matchGraph.MISMATCH) { pushElseStack(state.else); } if (state.then !== matchGraph.MATCH) { pushThenStack(state.then); } state = state.match; break; case "MatchOnce": state = { type: "MatchOnceBuffer", syntax: state, index: 0, mask: 0 }; break; case "MatchOnceBuffer": { const terms = state.syntax.terms; if (state.index === terms.length) { if (state.mask === 0 || state.syntax.all) { state = matchGraph.MISMATCH; break; } state = matchGraph.MATCH; break; } if (state.mask === (1 << terms.length) - 1) { state = matchGraph.MATCH; break; } for (; state.index < terms.length; state.index++) { const matchFlag = 1 << state.index; if ((state.mask & matchFlag) === 0) { pushElseStack(state); pushThenStack({ type: "AddMatchOnce", syntax: state.syntax, mask: state.mask | matchFlag }); state = terms[state.index++]; break; } } break; } case "AddMatchOnce": state = { type: "MatchOnceBuffer", syntax: state.syntax, index: 0, mask: state.mask }; break; case "Enum": if (token !== null) { let name = token.value.toLowerCase(); if (name.indexOf("\\") !== -1) { name = name.replace(/\\[09].*$/, ""); } if (hasOwnProperty2.call(state.map, name)) { state = state.map[name]; break; } } state = matchGraph.MISMATCH; break; case "Generic": { const opts = syntaxStack !== null ? syntaxStack.opts : null; const lastTokenIndex2 = tokenIndex + Math.floor(state.fn(token, getNextToken, opts)); if (!isNaN(lastTokenIndex2) && lastTokenIndex2 > tokenIndex) { while (tokenIndex < lastTokenIndex2) { addTokenToMatch(); } state = matchGraph.MATCH; } else { state = matchGraph.MISMATCH; } break; } case "Type": case "Property": { const syntaxDict = state.type === "Type" ? "types" : "properties"; const dictSyntax = hasOwnProperty2.call(syntaxes, syntaxDict) ? syntaxes[syntaxDict][state.name] : null; if (!dictSyntax || !dictSyntax.match) { throw new Error( "Bad syntax reference: " + (state.type === "Type" ? "<" + state.name + ">" : "<'" + state.name + "'>") ); } if (syntaxStash !== false && token !== null && state.type === "Type") { const lowPriorityMatching = ( // https://drafts.csswg.org/css-values-4/#custom-idents // When parsing positionally-ambiguous keywords in a property value, a production // can only claim the keyword if no other unfulfilled production can claim it. state.name === "custom-ident" && token.type === types.Ident || // https://drafts.csswg.org/css-values-4/#lengths // ... if a `0` could be parsed as either a or a in a property (such as line-height), // it must parse as a state.name === "length" && token.value === "0" ); if (lowPriorityMatching) { if (syntaxStash === null) { syntaxStash = stateSnapshotFromSyntax(state, elseStack); } state = matchGraph.MISMATCH; break; } } openSyntax(); state = dictSyntax.match; break; } case "Keyword": { const name = state.name; if (token !== null) { let keywordName = token.value; if (keywordName.indexOf("\\") !== -1) { keywordName = keywordName.replace(/\\[09].*$/, ""); } if (areStringsEqualCaseInsensitive(keywordName, name)) { addTokenToMatch(); state = matchGraph.MATCH; break; } } state = matchGraph.MISMATCH; break; } case "AtKeyword": case "Function": if (token !== null && areStringsEqualCaseInsensitive(token.value, state.name)) { addTokenToMatch(); state = matchGraph.MATCH; break; } state = matchGraph.MISMATCH; break; case "Token": if (token !== null && token.value === state.value) { addTokenToMatch(); state = matchGraph.MATCH; break; } state = matchGraph.MISMATCH; break; case "Comma": if (token !== null && token.type === types.Comma) { if (isCommaContextStart(matchStack.token)) { state = matchGraph.MISMATCH; } else { addTokenToMatch(); state = isCommaContextEnd(token) ? matchGraph.MISMATCH : matchGraph.MATCH; } } else { state = isCommaContextStart(matchStack.token) || isCommaContextEnd(token) ? matchGraph.MATCH : matchGraph.MISMATCH; } break; case "String": let string = ""; let lastTokenIndex = tokenIndex; for (; lastTokenIndex < tokens.length && string.length < state.value.length; lastTokenIndex++) { string += tokens[lastTokenIndex].value; } if (areStringsEqualCaseInsensitive(string, state.value)) { while (tokenIndex < lastTokenIndex) { addTokenToMatch(); } state = matchGraph.MATCH; } else { state = matchGraph.MISMATCH; } break; default: throw new Error("Unknown node type: " + state.type); } } switch (exitReason) { case null: console.warn("[csstree-match] BREAK after " + ITERATION_LIMIT + " iterations"); exitReason = EXIT_REASON_ITERATION_LIMIT; matchStack = null; break; case EXIT_REASON_MATCH: while (syntaxStack !== null) { closeSyntax(); } break; default: matchStack = null; } return { tokens, reason: exitReason, iterations: iterationCount, match: matchStack, longestMatch }; } function matchAsList(tokens, matchGraph2, syntaxes) { const matchResult = internalMatch(tokens, matchGraph2, syntaxes || {}); if (matchResult.match !== null) { let item = reverseList(matchResult.match).prev; matchResult.match = []; while (item !== null) { switch (item.type) { case OPEN_SYNTAX: case CLOSE_SYNTAX: matchResult.match.push({ type: item.type, syntax: item.syntax }); break; default: matchResult.match.push({ token: item.token.value, node: item.token.node }); break; } item = item.prev; } } return matchResult; } function matchAsTree(tokens, matchGraph2, syntaxes) { const matchResult = internalMatch(tokens, matchGraph2, syntaxes || {}); if (matchResult.match === null) { return matchResult; } let item = matchResult.match; let host = matchResult.match = { syntax: matchGraph2.syntax || null, match: [] }; const hostStack = [host]; item = reverseList(item).prev; while (item !== null) { switch (item.type) { case OPEN_SYNTAX: host.match.push(host = { syntax: item.syntax, match: [] }); hostStack.push(host); break; case CLOSE_SYNTAX: hostStack.pop(); host = hostStack[hostStack.length - 1]; break; default: host.match.push({ syntax: item.syntax || null, token: item.token.value, node: item.token.node }); } item = item.prev; } return matchResult; } exports2.matchAsList = matchAsList; exports2.matchAsTree = matchAsTree; } }); // node_modules/css-tree/cjs/lexer/trace.cjs var require_trace = __commonJS({ "node_modules/css-tree/cjs/lexer/trace.cjs"(exports2) { "use strict"; function getTrace(node) { function shouldPutToTrace(syntax) { if (syntax === null) { return false; } return syntax.type === "Type" || syntax.type === "Property" || syntax.type === "Keyword"; } function hasMatch(matchNode) { if (Array.isArray(matchNode.match)) { for (let i = 0; i < matchNode.match.length; i++) { if (hasMatch(matchNode.match[i])) { if (shouldPutToTrace(matchNode.syntax)) { result.unshift(matchNode.syntax); } return true; } } } else if (matchNode.node === node) { result = shouldPutToTrace(matchNode.syntax) ? [matchNode.syntax] : []; return true; } return false; } let result = null; if (this.matched !== null) { hasMatch(this.matched); } return result; } function isType(node, type) { return testNode(this, node, (match) => match.type === "Type" && match.name === type); } function isProperty(node, property) { return testNode(this, node, (match) => match.type === "Property" && match.name === property); } function isKeyword(node) { return testNode(this, node, (match) => match.type === "Keyword"); } function testNode(match, node, fn) { const trace = getTrace.call(match, node); if (trace === null) { return false; } return trace.some(fn); } exports2.getTrace = getTrace; exports2.isKeyword = isKeyword; exports2.isProperty = isProperty; exports2.isType = isType; } }); // node_modules/css-tree/cjs/lexer/search.cjs var require_search = __commonJS({ "node_modules/css-tree/cjs/lexer/search.cjs"(exports2) { "use strict"; var List = require_List(); function getFirstMatchNode(matchNode) { if ("node" in matchNode) { return matchNode.node; } return getFirstMatchNode(matchNode.match[0]); } function getLastMatchNode(matchNode) { if ("node" in matchNode) { return matchNode.node; } return getLastMatchNode(matchNode.match[matchNode.match.length - 1]); } function matchFragments(lexer, ast, match, type, name) { function findFragments(matchNode) { if (matchNode.syntax !== null && matchNode.syntax.type === type && matchNode.syntax.name === name) { const start = getFirstMatchNode(matchNode); const end = getLastMatchNode(matchNode); lexer.syntax.walk(ast, function(node, item, list) { if (node === start) { const nodes = new List.List(); do { nodes.appendData(item.data); if (item.data === end) { break; } item = item.next; } while (item !== null); fragments.push({ parent: list, nodes }); } }); } if (Array.isArray(matchNode.match)) { matchNode.match.forEach(findFragments); } } const fragments = []; if (match.matched !== null) { findFragments(match.matched); } return fragments; } exports2.matchFragments = matchFragments; } }); // node_modules/css-tree/cjs/lexer/structure.cjs var require_structure = __commonJS({ "node_modules/css-tree/cjs/lexer/structure.cjs"(exports2) { "use strict"; var List = require_List(); var { hasOwnProperty: hasOwnProperty2 } = Object.prototype; function isValidNumber(value) { return typeof value === "number" && isFinite(value) && Math.floor(value) === value && value >= 0; } function isValidLocation(loc) { return Boolean(loc) && isValidNumber(loc.offset) && isValidNumber(loc.line) && isValidNumber(loc.column); } function createNodeStructureChecker(type, fields) { return function checkNode(node, warn) { if (!node || node.constructor !== Object) { return warn(node, "Type of node should be an Object"); } for (let key in node) { let valid = true; if (hasOwnProperty2.call(node, key) === false) { continue; } if (key === "type") { if (node.type !== type) { warn(node, "Wrong node type `" + node.type + "`, expected `" + type + "`"); } } else if (key === "loc") { if (node.loc === null) { continue; } else if (node.loc && node.loc.constructor === Object) { if (typeof node.loc.source !== "string") { key += ".source"; } else if (!isValidLocation(node.loc.start)) { key += ".start"; } else if (!isValidLocation(node.loc.end)) { key += ".end"; } else { continue; } } valid = false; } else if (fields.hasOwnProperty(key)) { valid = false; for (let i = 0; !valid && i < fields[key].length; i++) { const fieldType = fields[key][i]; switch (fieldType) { case String: valid = typeof node[key] === "string"; break; case Boolean: valid = typeof node[key] === "boolean"; break; case null: valid = node[key] === null; break; default: if (typeof fieldType === "string") { valid = node[key] && node[key].type === fieldType; } else if (Array.isArray(fieldType)) { valid = node[key] instanceof List.List; } } } } else { warn(node, "Unknown field `" + key + "` for " + type + " node type"); } if (!valid) { warn(node, "Bad value for `" + type + "." + key + "`"); } } for (const key in fields) { if (hasOwnProperty2.call(fields, key) && hasOwnProperty2.call(node, key) === false) { warn(node, "Field `" + type + "." + key + "` is missed"); } } }; } function processStructure(name, nodeType) { const structure = nodeType.structure; const fields = { type: String, loc: true }; const docs = { type: '"' + name + '"' }; for (const key in structure) { if (hasOwnProperty2.call(structure, key) === false) { continue; } const docsTypes = []; const fieldTypes = fields[key] = Array.isArray(structure[key]) ? structure[key].slice() : [structure[key]]; for (let i = 0; i < fieldTypes.length; i++) { const fieldType = fieldTypes[i]; if (fieldType === String || fieldType === Boolean) { docsTypes.push(fieldType.name); } else if (fieldType === null) { docsTypes.push("null"); } else if (typeof fieldType === "string") { docsTypes.push("<" + fieldType + ">"); } else if (Array.isArray(fieldType)) { docsTypes.push("List"); } else { throw new Error("Wrong value `" + fieldType + "` in `" + name + "." + key + "` structure definition"); } } docs[key] = docsTypes.join(" | "); } return { docs, check: createNodeStructureChecker(name, fields) }; } function getStructureFromConfig(config) { const structure = {}; if (config.node) { for (const name in config.node) { if (hasOwnProperty2.call(config.node, name)) { const nodeType = config.node[name]; if (nodeType.structure) { structure[name] = processStructure(name, nodeType); } else { throw new Error("Missed `structure` field in `" + name + "` node type definition"); } } } } return structure; } exports2.getStructureFromConfig = getStructureFromConfig; } }); // node_modules/css-tree/cjs/definition-syntax/walk.cjs var require_walk2 = __commonJS({ "node_modules/css-tree/cjs/definition-syntax/walk.cjs"(exports2) { "use strict"; var noop = function() { }; function ensureFunction(value) { return typeof value === "function" ? value : noop; } function walk(node, options, context) { function walk2(node2) { enter.call(context, node2); switch (node2.type) { case "Group": node2.terms.forEach(walk2); break; case "Multiplier": walk2(node2.term); break; case "Type": case "Property": case "Keyword": case "AtKeyword": case "Function": case "String": case "Token": case "Comma": break; default: throw new Error("Unknown type: " + node2.type); } leave.call(context, node2); } let enter = noop; let leave = noop; if (typeof options === "function") { enter = options; } else if (options) { enter = ensureFunction(options.enter); leave = ensureFunction(options.leave); } if (enter === noop && leave === noop) { throw new Error("Neither `enter` nor `leave` walker handler is set or both aren't a function"); } walk2(node); } exports2.walk = walk; } }); // node_modules/css-tree/cjs/lexer/Lexer.cjs var require_Lexer = __commonJS({ "node_modules/css-tree/cjs/lexer/Lexer.cjs"(exports2) { "use strict"; var error = require_error2(); var names = require_names3(); var genericConst = require_generic_const(); var generic = require_generic(); var units = require_units(); var prepareTokens = require_prepare_tokens(); var matchGraph = require_match_graph(); var match = require_match(); var trace = require_trace(); var search = require_search(); var structure = require_structure(); var parse = require_parse6(); var generate = require_generate(); var walk = require_walk2(); var cssWideKeywordsSyntax = matchGraph.buildMatchGraph(genericConst.cssWideKeywords.join(" | ")); function dumpMapSyntax(map, compact, syntaxAsAst) { const result = {}; for (const name in map) { if (map[name].syntax) { result[name] = syntaxAsAst ? map[name].syntax : generate.generate(map[name].syntax, { compact }); } } return result; } function dumpAtruleMapSyntax(map, compact, syntaxAsAst) { const result = {}; for (const [name, atrule] of Object.entries(map)) { result[name] = { prelude: atrule.prelude && (syntaxAsAst ? atrule.prelude.syntax : generate.generate(atrule.prelude.syntax, { compact })), descriptors: atrule.descriptors && dumpMapSyntax(atrule.descriptors, compact, syntaxAsAst) }; } return result; } function valueHasVar(tokens) { for (let i = 0; i < tokens.length; i++) { if (tokens[i].value.toLowerCase() === "var(") { return true; } } return false; } function buildMatchResult(matched, error2, iterations) { return { matched, iterations, error: error2, ...trace }; } function matchSyntax(lexer, syntax, value, useCssWideKeywords) { const tokens = prepareTokens(value, lexer.syntax); let result; if (valueHasVar(tokens)) { return buildMatchResult(null, new Error("Matching for a tree with var() is not supported")); } if (useCssWideKeywords) { result = match.matchAsTree(tokens, lexer.cssWideKeywordsSyntax, lexer); } if (!useCssWideKeywords || !result.match) { result = match.matchAsTree(tokens, syntax.match, lexer); if (!result.match) { return buildMatchResult( null, new error.SyntaxMatchError(result.reason, syntax.syntax, value, result), result.iterations ); } } return buildMatchResult(result.match, null, result.iterations); } var Lexer = class { constructor(config, syntax, structure$1) { this.cssWideKeywordsSyntax = cssWideKeywordsSyntax; this.syntax = syntax; this.generic = false; this.units = { ...units }; this.atrules = /* @__PURE__ */ Object.create(null); this.properties = /* @__PURE__ */ Object.create(null); this.types = /* @__PURE__ */ Object.create(null); this.structure = structure$1 || structure.getStructureFromConfig(config); if (config) { if (config.units) { for (const group of Object.keys(units)) { if (Array.isArray(config.units[group])) { this.units[group] = config.units[group]; } } } if (config.types) { for (const name in config.types) { this.addType_(name, config.types[name]); } } if (config.generic) { this.generic = true; for (const [name, value] of Object.entries(generic.createGenericTypes(this.units))) { this.addType_(name, value); } } if (config.atrules) { for (const name in config.atrules) { this.addAtrule_(name, config.atrules[name]); } } if (config.properties) { for (const name in config.properties) { this.addProperty_(name, config.properties[name]); } } } } checkStructure(ast) { function collectWarning(node, message) { warns.push({ node, message }); } const structure2 = this.structure; const warns = []; this.syntax.walk(ast, function(node) { if (structure2.hasOwnProperty(node.type)) { structure2[node.type].check(node, collectWarning); } else { collectWarning(node, "Unknown node type `" + node.type + "`"); } }); return warns.length ? warns : false; } createDescriptor(syntax, type, name, parent = null) { const ref = { type, name }; const descriptor = { type, name, parent, serializable: typeof syntax === "string" || syntax && typeof syntax.type === "string", syntax: null, match: null }; if (typeof syntax === "function") { descriptor.match = matchGraph.buildMatchGraph(syntax, ref); } else { if (typeof syntax === "string") { Object.defineProperty(descriptor, "syntax", { get() { Object.defineProperty(descriptor, "syntax", { value: parse.parse(syntax) }); return descriptor.syntax; } }); } else { descriptor.syntax = syntax; } Object.defineProperty(descriptor, "match", { get() { Object.defineProperty(descriptor, "match", { value: matchGraph.buildMatchGraph(descriptor.syntax, ref) }); return descriptor.match; } }); } return descriptor; } addAtrule_(name, syntax) { if (!syntax) { return; } this.atrules[name] = { type: "Atrule", name, prelude: syntax.prelude ? this.createDescriptor(syntax.prelude, "AtrulePrelude", name) : null, descriptors: syntax.descriptors ? Object.keys(syntax.descriptors).reduce( (map, descName) => { map[descName] = this.createDescriptor(syntax.descriptors[descName], "AtruleDescriptor", descName, name); return map; }, /* @__PURE__ */ Object.create(null) ) : null }; } addProperty_(name, syntax) { if (!syntax) { return; } this.properties[name] = this.createDescriptor(syntax, "Property", name); } addType_(name, syntax) { if (!syntax) { return; } this.types[name] = this.createDescriptor(syntax, "Type", name); } checkAtruleName(atruleName) { if (!this.getAtrule(atruleName)) { return new error.SyntaxReferenceError("Unknown at-rule", "@" + atruleName); } } checkAtrulePrelude(atruleName, prelude) { const error2 = this.checkAtruleName(atruleName); if (error2) { return error2; } const atrule = this.getAtrule(atruleName); if (!atrule.prelude && prelude) { return new SyntaxError("At-rule `@" + atruleName + "` should not contain a prelude"); } if (atrule.prelude && !prelude) { if (!matchSyntax(this, atrule.prelude, "", false).matched) { return new SyntaxError("At-rule `@" + atruleName + "` should contain a prelude"); } } } checkAtruleDescriptorName(atruleName, descriptorName) { const error$1 = this.checkAtruleName(atruleName); if (error$1) { return error$1; } const atrule = this.getAtrule(atruleName); const descriptor = names.keyword(descriptorName); if (!atrule.descriptors) { return new SyntaxError("At-rule `@" + atruleName + "` has no known descriptors"); } if (!atrule.descriptors[descriptor.name] && !atrule.descriptors[descriptor.basename]) { return new error.SyntaxReferenceError("Unknown at-rule descriptor", descriptorName); } } checkPropertyName(propertyName) { if (!this.getProperty(propertyName)) { return new error.SyntaxReferenceError("Unknown property", propertyName); } } matchAtrulePrelude(atruleName, prelude) { const error2 = this.checkAtrulePrelude(atruleName, prelude); if (error2) { return buildMatchResult(null, error2); } const atrule = this.getAtrule(atruleName); if (!atrule.prelude) { return buildMatchResult(null, null); } return matchSyntax(this, atrule.prelude, prelude || "", false); } matchAtruleDescriptor(atruleName, descriptorName, value) { const error2 = this.checkAtruleDescriptorName(atruleName, descriptorName); if (error2) { return buildMatchResult(null, error2); } const atrule = this.getAtrule(atruleName); const descriptor = names.keyword(descriptorName); return matchSyntax(this, atrule.descriptors[descriptor.name] || atrule.descriptors[descriptor.basename], value, false); } matchDeclaration(node) { if (node.type !== "Declaration") { return buildMatchResult(null, new Error("Not a Declaration node")); } return this.matchProperty(node.property, node.value); } matchProperty(propertyName, value) { if (names.property(propertyName).custom) { return buildMatchResult(null, new Error("Lexer matching doesn't applicable for custom properties")); } const error2 = this.checkPropertyName(propertyName); if (error2) { return buildMatchResult(null, error2); } return matchSyntax(this, this.getProperty(propertyName), value, true); } matchType(typeName, value) { const typeSyntax = this.getType(typeName); if (!typeSyntax) { return buildMatchResult(null, new error.SyntaxReferenceError("Unknown type", typeName)); } return matchSyntax(this, typeSyntax, value, false); } match(syntax, value) { if (typeof syntax !== "string" && (!syntax || !syntax.type)) { return buildMatchResult(null, new error.SyntaxReferenceError("Bad syntax")); } if (typeof syntax === "string" || !syntax.match) { syntax = this.createDescriptor(syntax, "Type", "anonymous"); } return matchSyntax(this, syntax, value, false); } findValueFragments(propertyName, value, type, name) { return search.matchFragments(this, value, this.matchProperty(propertyName, value), type, name); } findDeclarationValueFragments(declaration, type, name) { return search.matchFragments(this, declaration.value, this.matchDeclaration(declaration), type, name); } findAllFragments(ast, type, name) { const result = []; this.syntax.walk(ast, { visit: "Declaration", enter: (declaration) => { result.push.apply(result, this.findDeclarationValueFragments(declaration, type, name)); } }); return result; } getAtrule(atruleName, fallbackBasename = true) { const atrule = names.keyword(atruleName); const atruleEntry = atrule.vendor && fallbackBasename ? this.atrules[atrule.name] || this.atrules[atrule.basename] : this.atrules[atrule.name]; return atruleEntry || null; } getAtrulePrelude(atruleName, fallbackBasename = true) { const atrule = this.getAtrule(atruleName, fallbackBasename); return atrule && atrule.prelude || null; } getAtruleDescriptor(atruleName, name) { return this.atrules.hasOwnProperty(atruleName) && this.atrules.declarators ? this.atrules[atruleName].declarators[name] || null : null; } getProperty(propertyName, fallbackBasename = true) { const property = names.property(propertyName); const propertyEntry = property.vendor && fallbackBasename ? this.properties[property.name] || this.properties[property.basename] : this.properties[property.name]; return propertyEntry || null; } getType(name) { return hasOwnProperty.call(this.types, name) ? this.types[name] : null; } validate() { function validate(syntax, name, broken, descriptor) { if (broken.has(name)) { return broken.get(name); } broken.set(name, false); if (descriptor.syntax !== null) { walk.walk(descriptor.syntax, function(node) { if (node.type !== "Type" && node.type !== "Property") { return; } const map = node.type === "Type" ? syntax.types : syntax.properties; const brokenMap = node.type === "Type" ? brokenTypes : brokenProperties; if (!hasOwnProperty.call(map, node.name) || validate(syntax, node.name, brokenMap, map[node.name])) { broken.set(name, true); } }, this); } } let brokenTypes = /* @__PURE__ */ new Map(); let brokenProperties = /* @__PURE__ */ new Map(); for (const key in this.types) { validate(this, key, brokenTypes, this.types[key]); } for (const key in this.properties) { validate(this, key, brokenProperties, this.properties[key]); } brokenTypes = [...brokenTypes.keys()].filter((name) => brokenTypes.get(name)); brokenProperties = [...brokenProperties.keys()].filter((name) => brokenProperties.get(name)); if (brokenTypes.length || brokenProperties.length) { return { types: brokenTypes, properties: brokenProperties }; } return null; } dump(syntaxAsAst, pretty) { return { generic: this.generic, units: this.units, types: dumpMapSyntax(this.types, !pretty, syntaxAsAst), properties: dumpMapSyntax(this.properties, !pretty, syntaxAsAst), atrules: dumpAtruleMapSyntax(this.atrules, !pretty, syntaxAsAst) }; } toString() { return JSON.stringify(this.dump()); } }; exports2.Lexer = Lexer; } }); // node_modules/css-tree/cjs/syntax/config/mix.cjs var require_mix = __commonJS({ "node_modules/css-tree/cjs/syntax/config/mix.cjs"(exports2, module2) { "use strict"; function appendOrSet(a, b) { if (typeof b === "string" && /^\s*\|/.test(b)) { return typeof a === "string" ? a + b : b.replace(/^\s*\|\s*/, ""); } return b || null; } function sliceProps(obj, props) { const result = /* @__PURE__ */ Object.create(null); for (const [key, value] of Object.entries(obj)) { if (value) { result[key] = {}; for (const prop of Object.keys(value)) { if (props.includes(prop)) { result[key][prop] = value[prop]; } } } } return result; } function mix(dest, src) { const result = { ...dest }; for (const [prop, value] of Object.entries(src)) { switch (prop) { case "generic": result[prop] = Boolean(value); break; case "units": result[prop] = { ...dest[prop] }; for (const [name, patch] of Object.entries(value)) { result[prop][name] = Array.isArray(patch) ? patch : []; } break; case "atrules": result[prop] = { ...dest[prop] }; for (const [name, atrule] of Object.entries(value)) { const exists = result[prop][name] || {}; const current = result[prop][name] = { prelude: exists.prelude || null, descriptors: { ...exists.descriptors } }; if (!atrule) { continue; } current.prelude = atrule.prelude ? appendOrSet(current.prelude, atrule.prelude) : current.prelude || null; for (const [descriptorName, descriptorValue] of Object.entries(atrule.descriptors || {})) { current.descriptors[descriptorName] = descriptorValue ? appendOrSet(current.descriptors[descriptorName], descriptorValue) : null; } if (!Object.keys(current.descriptors).length) { current.descriptors = null; } } break; case "types": case "properties": result[prop] = { ...dest[prop] }; for (const [name, syntax] of Object.entries(value)) { result[prop][name] = appendOrSet(result[prop][name], syntax); } break; case "scope": result[prop] = { ...dest[prop] }; for (const [name, props] of Object.entries(value)) { result[prop][name] = { ...result[prop][name], ...props }; } break; case "parseContext": result[prop] = { ...dest[prop], ...value }; break; case "atrule": case "pseudo": result[prop] = { ...dest[prop], ...sliceProps(value, ["parse"]) }; break; case "node": result[prop] = { ...dest[prop], ...sliceProps(value, ["name", "structure", "parse", "generate", "walkContext"]) }; break; } } return result; } module2.exports = mix; } }); // node_modules/css-tree/cjs/syntax/create.cjs var require_create5 = __commonJS({ "node_modules/css-tree/cjs/syntax/create.cjs"(exports2, module2) { "use strict"; var index = require_tokenizer(); var create = require_create(); var create$2 = require_create2(); var create$3 = require_create3(); var create$1 = require_create4(); var Lexer = require_Lexer(); var mix = require_mix(); function createSyntax(config) { const parse = create.createParser(config); const walk = create$1.createWalker(config); const generate = create$2.createGenerator(config); const { fromPlainObject, toPlainObject } = create$3.createConvertor(walk); const syntax = { lexer: null, createLexer: (config2) => new Lexer.Lexer(config2, syntax, syntax.lexer.structure), tokenize: index.tokenize, parse, generate, walk, find: walk.find, findLast: walk.findLast, findAll: walk.findAll, fromPlainObject, toPlainObject, fork(extension) { const base = mix({}, config); return createSyntax( typeof extension === "function" ? extension(base, Object.assign) : mix(base, extension) ); } }; syntax.lexer = new Lexer.Lexer({ generic: true, units: config.units, types: config.types, atrules: config.atrules, properties: config.properties, node: config.node }, syntax); return syntax; } var createSyntax$1 = (config) => createSyntax(mix({}, config)); module2.exports = createSyntax$1; } }); // node_modules/css-tree/data/patch.json var require_patch = __commonJS({ "node_modules/css-tree/data/patch.json"(exports2, module2) { module2.exports = { atrules: { charset: { prelude: "" }, "font-face": { descriptors: { "unicode-range": { comment: "replaces , an old production name", syntax: "#" } } }, nest: { prelude: "" } }, properties: { "-moz-background-clip": { comment: "deprecated syntax in old Firefox, https://developer.mozilla.org/en/docs/Web/CSS/background-clip", syntax: "padding | border" }, "-moz-border-radius-bottomleft": { comment: "https://developer.mozilla.org/en-US/docs/Web/CSS/border-bottom-left-radius", syntax: "<'border-bottom-left-radius'>" }, "-moz-border-radius-bottomright": { comment: "https://developer.mozilla.org/en-US/docs/Web/CSS/border-bottom-right-radius", syntax: "<'border-bottom-right-radius'>" }, "-moz-border-radius-topleft": { comment: "https://developer.mozilla.org/en-US/docs/Web/CSS/border-top-left-radius", syntax: "<'border-top-left-radius'>" }, "-moz-border-radius-topright": { comment: "https://developer.mozilla.org/en-US/docs/Web/CSS/border-bottom-right-radius", syntax: "<'border-bottom-right-radius'>" }, "-moz-control-character-visibility": { comment: "firefox specific keywords, https://bugzilla.mozilla.org/show_bug.cgi?id=947588", syntax: "visible | hidden" }, "-moz-osx-font-smoothing": { comment: "misssed old syntax https://developer.mozilla.org/en-US/docs/Web/CSS/font-smooth", syntax: "auto | grayscale" }, "-moz-user-select": { comment: "https://developer.mozilla.org/en-US/docs/Web/CSS/user-select", syntax: "none | text | all | -moz-none" }, "-ms-flex-align": { comment: "misssed old syntax implemented in IE, https://www.w3.org/TR/2012/WD-css3-flexbox-20120322/#flex-align", syntax: "start | end | center | baseline | stretch" }, "-ms-flex-item-align": { comment: "misssed old syntax implemented in IE, https://www.w3.org/TR/2012/WD-css3-flexbox-20120322/#flex-align", syntax: "auto | start | end | center | baseline | stretch" }, "-ms-flex-line-pack": { comment: "misssed old syntax implemented in IE, https://www.w3.org/TR/2012/WD-css3-flexbox-20120322/#flex-line-pack", syntax: "start | end | center | justify | distribute | stretch" }, "-ms-flex-negative": { comment: "misssed old syntax implemented in IE; TODO: find references for comfirmation", syntax: "<'flex-shrink'>" }, "-ms-flex-pack": { comment: "misssed old syntax implemented in IE, https://www.w3.org/TR/2012/WD-css3-flexbox-20120322/#flex-pack", syntax: "start | end | center | justify | distribute" }, "-ms-flex-order": { comment: "misssed old syntax implemented in IE; https://msdn.microsoft.com/en-us/library/jj127303(v=vs.85).aspx", syntax: "" }, "-ms-flex-positive": { comment: "misssed old syntax implemented in IE; TODO: find references for comfirmation", syntax: "<'flex-grow'>" }, "-ms-flex-preferred-size": { comment: "misssed old syntax implemented in IE; TODO: find references for comfirmation", syntax: "<'flex-basis'>" }, "-ms-interpolation-mode": { comment: "https://msdn.microsoft.com/en-us/library/ff521095(v=vs.85).aspx", syntax: "nearest-neighbor | bicubic" }, "-ms-grid-column-align": { comment: "add this property first since it uses as fallback for flexbox, https://msdn.microsoft.com/en-us/library/windows/apps/hh466338.aspx", syntax: "start | end | center | stretch" }, "-ms-grid-row-align": { comment: "add this property first since it uses as fallback for flexbox, https://msdn.microsoft.com/en-us/library/windows/apps/hh466348.aspx", syntax: "start | end | center | stretch" }, "-ms-hyphenate-limit-last": { comment: "misssed old syntax implemented in IE; https://www.w3.org/TR/css-text-4/#hyphenate-line-limits", syntax: "none | always | column | page | spread" }, "-webkit-appearance": { comment: "webkit specific keywords", references: [ "http://css-infos.net/property/-webkit-appearance" ], syntax: "none | button | button-bevel | caps-lock-indicator | caret | checkbox | default-button | inner-spin-button | listbox | listitem | media-controls-background | media-controls-fullscreen-background | media-current-time-display | media-enter-fullscreen-button | media-exit-fullscreen-button | media-fullscreen-button | media-mute-button | media-overlay-play-button | media-play-button | media-seek-back-button | media-seek-forward-button | media-slider | media-sliderthumb | media-time-remaining-display | media-toggle-closed-captions-button | media-volume-slider | media-volume-slider-container | media-volume-sliderthumb | menulist | menulist-button | menulist-text | menulist-textfield | meter | progress-bar | progress-bar-value | push-button | radio | scrollbarbutton-down | scrollbarbutton-left | scrollbarbutton-right | scrollbarbutton-up | scrollbargripper-horizontal | scrollbargripper-vertical | scrollbarthumb-horizontal | scrollbarthumb-vertical | scrollbartrack-horizontal | scrollbartrack-vertical | searchfield | searchfield-cancel-button | searchfield-decoration | searchfield-results-button | searchfield-results-decoration | slider-horizontal | slider-vertical | sliderthumb-horizontal | sliderthumb-vertical | square-button | textarea | textfield | -apple-pay-button" }, "-webkit-background-clip": { comment: "https://developer.mozilla.org/en/docs/Web/CSS/background-clip", syntax: "[ | border | padding | content | text ]#" }, "-webkit-column-break-after": { comment: "added, http://help.dottoro.com/lcrthhhv.php", syntax: "always | auto | avoid" }, "-webkit-column-break-before": { comment: "added, http://help.dottoro.com/lcxquvkf.php", syntax: "always | auto | avoid" }, "-webkit-column-break-inside": { comment: "added, http://help.dottoro.com/lclhnthl.php", syntax: "always | auto | avoid" }, "-webkit-font-smoothing": { comment: "https://developer.mozilla.org/en-US/docs/Web/CSS/font-smooth", syntax: "auto | none | antialiased | subpixel-antialiased" }, "-webkit-mask-box-image": { comment: "missed; https://developer.mozilla.org/en-US/docs/Web/CSS/-webkit-mask-box-image", syntax: "[ | | none ] [ {4} <-webkit-mask-box-repeat>{2} ]?" }, "-webkit-print-color-adjust": { comment: "missed", references: [ "https://developer.mozilla.org/en/docs/Web/CSS/-webkit-print-color-adjust" ], syntax: "economy | exact" }, "-webkit-text-security": { comment: "missed; http://help.dottoro.com/lcbkewgt.php", syntax: "none | circle | disc | square" }, "-webkit-user-drag": { comment: "missed; http://help.dottoro.com/lcbixvwm.php", syntax: "none | element | auto" }, "-webkit-user-select": { comment: "auto is supported by old webkit, https://developer.mozilla.org/en-US/docs/Web/CSS/user-select", syntax: "auto | none | text | all" }, "alignment-baseline": { comment: "added SVG property", references: [ "https://www.w3.org/TR/SVG/text.html#AlignmentBaselineProperty" ], syntax: "auto | baseline | before-edge | text-before-edge | middle | central | after-edge | text-after-edge | ideographic | alphabetic | hanging | mathematical" }, "background-clip": { comment: "used from CSS Backgrounds and Borders 4 since it adds new values", references: [ "https://github.com/csstree/csstree/issues/190" ], syntax: "#" }, "baseline-shift": { comment: "added SVG property", references: [ "https://www.w3.org/TR/SVG/text.html#BaselineShiftProperty" ], syntax: "baseline | sub | super | " }, behavior: { comment: "added old IE property https://msdn.microsoft.com/en-us/library/ms530723(v=vs.85).aspx", syntax: "+" }, "clip-rule": { comment: "added SVG property", references: [ "https://www.w3.org/TR/SVG/masking.html#ClipRuleProperty" ], syntax: "nonzero | evenodd" }, cue: { comment: "https://www.w3.org/TR/css3-speech/#property-index", syntax: "<'cue-before'> <'cue-after'>?" }, "cue-after": { comment: "https://www.w3.org/TR/css3-speech/#property-index", syntax: " ? | none" }, "cue-before": { comment: "https://www.w3.org/TR/css3-speech/#property-index", syntax: " ? | none" }, cursor: { comment: "added legacy keywords: hand, -webkit-grab. -webkit-grabbing, -webkit-zoom-in, -webkit-zoom-out, -moz-grab, -moz-grabbing, -moz-zoom-in, -moz-zoom-out", references: [ "https://www.sitepoint.com/css3-cursor-styles/" ], syntax: "[ [ [ ]? , ]* [ auto | default | none | context-menu | help | pointer | progress | wait | cell | crosshair | text | vertical-text | alias | copy | move | no-drop | not-allowed | e-resize | n-resize | ne-resize | nw-resize | s-resize | se-resize | sw-resize | w-resize | ew-resize | ns-resize | nesw-resize | nwse-resize | col-resize | row-resize | all-scroll | zoom-in | zoom-out | grab | grabbing | hand | -webkit-grab | -webkit-grabbing | -webkit-zoom-in | -webkit-zoom-out | -moz-grab | -moz-grabbing | -moz-zoom-in | -moz-zoom-out ] ]" }, display: { comment: "extended with -ms-flexbox", syntax: "| <-non-standard-display>" }, position: { comment: "extended with -webkit-sticky", syntax: "| -webkit-sticky" }, "dominant-baseline": { comment: "added SVG property", references: [ "https://www.w3.org/TR/SVG/text.html#DominantBaselineProperty" ], syntax: "auto | use-script | no-change | reset-size | ideographic | alphabetic | hanging | mathematical | central | middle | text-after-edge | text-before-edge" }, "image-rendering": { comment: "extended with <-non-standard-image-rendering>, added SVG keywords optimizeSpeed and optimizeQuality", references: [ "https://developer.mozilla.org/en/docs/Web/CSS/image-rendering", "https://www.w3.org/TR/SVG/painting.html#ImageRenderingProperty" ], syntax: "| optimizeSpeed | optimizeQuality | <-non-standard-image-rendering>" }, fill: { comment: "added SVG property", references: [ "https://www.w3.org/TR/SVG/painting.html#FillProperty" ], syntax: "" }, "fill-opacity": { comment: "added SVG property", references: [ "https://www.w3.org/TR/SVG/painting.html#FillProperty" ], syntax: "" }, "fill-rule": { comment: "added SVG property", references: [ "https://www.w3.org/TR/SVG/painting.html#FillProperty" ], syntax: "nonzero | evenodd" }, filter: { comment: "extend with IE legacy syntaxes", syntax: "| <-ms-filter-function-list>" }, "glyph-orientation-horizontal": { comment: "added SVG property", references: [ "https://www.w3.org/TR/SVG/text.html#GlyphOrientationHorizontalProperty" ], syntax: "" }, "glyph-orientation-vertical": { comment: "added SVG property", references: [ "https://www.w3.org/TR/SVG/text.html#GlyphOrientationVerticalProperty" ], syntax: "" }, kerning: { comment: "added SVG property", references: [ "https://www.w3.org/TR/SVG/text.html#KerningProperty" ], syntax: "auto | " }, "letter-spacing": { comment: "fix syntax -> ", references: [ "https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/letter-spacing" ], syntax: "normal | " }, marker: { comment: "added SVG property", references: [ "https://www.w3.org/TR/SVG/painting.html#MarkerProperties" ], syntax: "none | " }, "marker-end": { comment: "added SVG property", references: [ "https://www.w3.org/TR/SVG/painting.html#MarkerProperties" ], syntax: "none | " }, "marker-mid": { comment: "added SVG property", references: [ "https://www.w3.org/TR/SVG/painting.html#MarkerProperties" ], syntax: "none | " }, "marker-start": { comment: "added SVG property", references: [ "https://www.w3.org/TR/SVG/painting.html#MarkerProperties" ], syntax: "none | " }, "max-width": { comment: "extend by non-standard width keywords https://developer.mozilla.org/en-US/docs/Web/CSS/max-width", syntax: "| <-non-standard-width>" }, width: { references: [ "https://developer.mozilla.org/en-US/docs/Web/CSS/width", "https://github.com/csstree/stylelint-validator/issues/29" ], syntax: "| fill | stretch | intrinsic | -moz-max-content | -webkit-max-content | -moz-fit-content | -webkit-fit-content" }, "min-width": { comment: "extend by non-standard width keywords https://developer.mozilla.org/en-US/docs/Web/CSS/width", syntax: "| <-non-standard-width>" }, overflow: { comment: "extend by vendor keywords https://developer.mozilla.org/en-US/docs/Web/CSS/overflow", syntax: "| <-non-standard-overflow>" }, pause: { comment: "https://www.w3.org/TR/css3-speech/#property-index", syntax: "<'pause-before'> <'pause-after'>?" }, "pause-after": { comment: "https://www.w3.org/TR/css3-speech/#property-index", syntax: "