| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677 | "use strict";var __importDefault = (this && this.__importDefault) || function (mod) {    return (mod && mod.__esModule) ? mod : { "default": mod };};Object.defineProperty(exports, "__esModule", { value: true });exports.getTrie = exports.encodeHTMLTrieRe = exports.getCodePoint = void 0;var entities_json_1 = __importDefault(require("./maps/entities.json"));function isHighSurrugate(c) {    return (c & 64512 /* Mask */) === 55296 /* High */;}// For compatibility with node < 4, we wrap `codePointAt`exports.getCodePoint = // eslint-disable-next-line @typescript-eslint/no-unnecessary-conditionString.prototype.codePointAt != null    ? function (str, index) { return str.codePointAt(index); }    : // http://mathiasbynens.be/notes/javascript-encoding#surrogate-formulae        function (c, index) {            return isHighSurrugate(c.charCodeAt(index))                ? (c.charCodeAt(index) - 55296 /* High */) * 0x400 +                    c.charCodeAt(index + 1) -                    0xdc00 +                    0x10000                : c.charCodeAt(index);        };var htmlTrie = getTrie(entities_json_1.default);function encodeHTMLTrieRe(regExp, str) {    var _a;    var ret = "";    var lastIdx = 0;    var match;    while ((match = regExp.exec(str)) !== null) {        var i = match.index;        var char = str.charCodeAt(i);        var next = htmlTrie.get(char);        if (next) {            if (next.next != null && i + 1 < str.length) {                var value = (_a = next.next.get(str.charCodeAt(i + 1))) === null || _a === void 0 ? void 0 : _a.value;                if (value != null) {                    ret += str.substring(lastIdx, i) + value;                    regExp.lastIndex += 1;                    lastIdx = i + 2;                    continue;                }            }            ret += str.substring(lastIdx, i) + next.value;            lastIdx = i + 1;        }        else {            ret += str.substring(lastIdx, i) + "&#x" + exports.getCodePoint(str, i).toString(16) + ";";            // Increase by 1 if we have a surrogate pair            lastIdx = regExp.lastIndex += Number(isHighSurrugate(char));        }    }    return ret + str.substr(lastIdx);}exports.encodeHTMLTrieRe = encodeHTMLTrieRe;function getTrie(map) {    var _a, _b, _c, _d;    var trie = new Map();    for (var _i = 0, _e = Object.keys(map); _i < _e.length; _i++) {        var value = _e[_i];        var key = map[value];        // Resolve the key        var lastMap = trie;        for (var i = 0; i < key.length - 1; i++) {            var char = key.charCodeAt(i);            var next = (_a = lastMap.get(char)) !== null && _a !== void 0 ? _a : {};            lastMap.set(char, next);            lastMap = (_b = next.next) !== null && _b !== void 0 ? _b : (next.next = new Map());        }        var val = (_c = lastMap.get(key.charCodeAt(key.length - 1))) !== null && _c !== void 0 ? _c : {};        (_d = val.value) !== null && _d !== void 0 ? _d : (val.value = "&" + value + ";");        lastMap.set(key.charCodeAt(key.length - 1), val);    }    return trie;}exports.getTrie = getTrie;
 |