| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132 | "use strict";Object.defineProperty(exports, "__esModule", { value: true });var surrogate_pairs_1 = require("./surrogate-pairs");var ALPHA_INDEX = {    '<': '<',    '>': '>',    '"': '"',    '&apos': '\'',    '&': '&',    '<': '<',    '>': '>',    '"': '"',    ''': '\'',    '&': '&'};var CHAR_INDEX = {    60: 'lt',    62: 'gt',    34: 'quot',    39: 'apos',    38: 'amp'};var CHAR_S_INDEX = {    '<': '<',    '>': '>',    '"': '"',    '\'': ''',    '&': '&'};var XmlEntities = /** @class */ (function () {    function XmlEntities() {    }    XmlEntities.prototype.encode = function (str) {        if (!str || !str.length) {            return '';        }        return str.replace(/[<>"'&]/g, function (s) {            return CHAR_S_INDEX[s];        });    };    XmlEntities.encode = function (str) {        return new XmlEntities().encode(str);    };    XmlEntities.prototype.decode = function (str) {        if (!str || !str.length) {            return '';        }        return str.replace(/&#?[0-9a-zA-Z]+;?/g, function (s) {            if (s.charAt(1) === '#') {                var code = s.charAt(2).toLowerCase() === 'x' ?                    parseInt(s.substr(3), 16) :                    parseInt(s.substr(2));                if (!isNaN(code) || code >= -32768) {                    if (code <= 65535) {                        return String.fromCharCode(code);                    }                    else {                        return surrogate_pairs_1.fromCodePoint(code);                    }                }                return '';            }            return ALPHA_INDEX[s] || s;        });    };    XmlEntities.decode = function (str) {        return new XmlEntities().decode(str);    };    XmlEntities.prototype.encodeNonUTF = function (str) {        if (!str || !str.length) {            return '';        }        var strLength = str.length;        var result = '';        var i = 0;        while (i < strLength) {            var c = str.charCodeAt(i);            var alpha = CHAR_INDEX[c];            if (alpha) {                result += "&" + alpha + ";";                i++;                continue;            }            if (c < 32 || c > 126) {                if (c >= surrogate_pairs_1.highSurrogateFrom && c <= surrogate_pairs_1.highSurrogateTo) {                    result += '&#' + surrogate_pairs_1.getCodePoint(str, i) + ';';                    i++;                }                else {                    result += '&#' + c + ';';                }            }            else {                result += str.charAt(i);            }            i++;        }        return result;    };    XmlEntities.encodeNonUTF = function (str) {        return new XmlEntities().encodeNonUTF(str);    };    XmlEntities.prototype.encodeNonASCII = function (str) {        if (!str || !str.length) {            return '';        }        var strLength = str.length;        var result = '';        var i = 0;        while (i < strLength) {            var c = str.charCodeAt(i);            if (c <= 255) {                result += str[i++];                continue;            }            if (c >= surrogate_pairs_1.highSurrogateFrom && c <= surrogate_pairs_1.highSurrogateTo) {                result += '&#' + surrogate_pairs_1.getCodePoint(str, i) + ';';                i++;            }            else {                result += '&#' + c + ';';            }            i++;        }        return result;    };    XmlEntities.encodeNonASCII = function (str) {        return new XmlEntities().encodeNonASCII(str);    };    return XmlEntities;}());exports.XmlEntities = XmlEntities;
 |