diff options
Diffstat (limited to 'bin/wiki/ImportarDesdeURL/node_modules/entities/lib/src/encode.js')
-rw-r--r-- | bin/wiki/ImportarDesdeURL/node_modules/entities/lib/src/encode.js | 67 |
1 files changed, 67 insertions, 0 deletions
diff --git a/bin/wiki/ImportarDesdeURL/node_modules/entities/lib/src/encode.js b/bin/wiki/ImportarDesdeURL/node_modules/entities/lib/src/encode.js new file mode 100644 index 00000000..e7918c1f --- /dev/null +++ b/bin/wiki/ImportarDesdeURL/node_modules/entities/lib/src/encode.js @@ -0,0 +1,67 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +var xml_json_1 = __importDefault(require("../maps/xml.json")); +var inverseXML = getInverseObj(xml_json_1.default); +var xmlReplacer = getInverseReplacer(inverseXML); +exports.encodeXML = getInverse(inverseXML, xmlReplacer); +var entities_json_1 = __importDefault(require("../maps/entities.json")); +var inverseHTML = getInverseObj(entities_json_1.default); +var htmlReplacer = getInverseReplacer(inverseHTML); +exports.encodeHTML = getInverse(inverseHTML, htmlReplacer); +function getInverseObj(obj) { + return Object.keys(obj) + .sort() + .reduce(function (inverse, name) { + inverse[obj[name]] = "&" + name + ";"; + return inverse; + }, {}); +} +function getInverseReplacer(inverse) { + var single = []; + var multiple = []; + Object.keys(inverse).forEach(function (k) { + return k.length === 1 + ? // Add value to single array + single.push("\\" + k) + : // Add value to multiple array + multiple.push(k); + }); + //TODO add ranges + multiple.unshift("[" + single.join("") + "]"); + return new RegExp(multiple.join("|"), "g"); +} +var reNonASCII = /[^\0-\x7F]/g; +var reAstralSymbols = /[\uD800-\uDBFF][\uDC00-\uDFFF]/g; +function singleCharReplacer(c) { + return "&#x" + c + .charCodeAt(0) + .toString(16) + .toUpperCase() + ";"; +} +// eslint-disable-next-line @typescript-eslint/no-unused-vars, @typescript-eslint/no-explicit-any +function astralReplacer(c, _) { + // http://mathiasbynens.be/notes/javascript-encoding#surrogate-formulae + var high = c.charCodeAt(0); + var low = c.charCodeAt(1); + var codePoint = (high - 0xd800) * 0x400 + low - 0xdc00 + 0x10000; + return "&#x" + codePoint.toString(16).toUpperCase() + ";"; +} +function getInverse(inverse, re) { + return function (data) { + return data + .replace(re, function (name) { return inverse[name]; }) + .replace(reAstralSymbols, astralReplacer) + .replace(reNonASCII, singleCharReplacer); + }; +} +var reXmlChars = getInverseReplacer(inverseXML); +function escape(data) { + return data + .replace(reXmlChars, singleCharReplacer) + .replace(reAstralSymbols, astralReplacer) + .replace(reNonASCII, singleCharReplacer); +} +exports.escape = escape; |