entities 2.2.0 → 4.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (65) hide show
  1. package/lib/decode.d.ts +13 -4
  2. package/lib/decode.d.ts.map +1 -1
  3. package/lib/decode.js +135 -42
  4. package/lib/decode.js.map +1 -0
  5. package/lib/decode_codepoint.d.ts +1 -0
  6. package/lib/decode_codepoint.d.ts.map +1 -1
  7. package/lib/decode_codepoint.js +42 -12
  8. package/lib/decode_codepoint.js.map +1 -0
  9. package/lib/encode-trie.d.ts +8 -0
  10. package/lib/encode-trie.d.ts.map +1 -0
  11. package/lib/encode-trie.js +78 -0
  12. package/lib/encode-trie.js.map +1 -0
  13. package/lib/encode.d.ts +20 -7
  14. package/lib/encode.d.ts.map +1 -1
  15. package/lib/encode.js +82 -93
  16. package/lib/encode.js.map +1 -0
  17. package/lib/esm/decode.d.ts +14 -0
  18. package/lib/esm/decode.d.ts.map +1 -0
  19. package/lib/esm/decode.js +135 -0
  20. package/lib/esm/decode.js.map +1 -0
  21. package/lib/esm/decode_codepoint.d.ts +3 -0
  22. package/lib/esm/decode_codepoint.d.ts.map +1 -0
  23. package/lib/esm/decode_codepoint.js +55 -0
  24. package/lib/esm/decode_codepoint.js.map +1 -0
  25. package/lib/esm/encode-trie.d.ts +8 -0
  26. package/lib/esm/encode-trie.d.ts.map +1 -0
  27. package/lib/esm/encode-trie.js +67 -0
  28. package/lib/esm/encode-trie.js.map +1 -0
  29. package/lib/esm/encode.d.ts +60 -0
  30. package/lib/esm/encode.d.ts.map +1 -0
  31. package/lib/esm/encode.js +119 -0
  32. package/lib/esm/encode.js.map +1 -0
  33. package/lib/esm/generated/decode-data-html.d.ts +3 -0
  34. package/lib/esm/generated/decode-data-html.d.ts.map +1 -0
  35. package/lib/esm/generated/decode-data-html.js +4 -0
  36. package/lib/esm/generated/decode-data-html.js.map +1 -0
  37. package/lib/esm/generated/decode-data-xml.d.ts +3 -0
  38. package/lib/esm/generated/decode-data-xml.d.ts.map +1 -0
  39. package/lib/esm/generated/decode-data-xml.js +4 -0
  40. package/lib/esm/generated/decode-data-xml.js.map +1 -0
  41. package/lib/esm/index.d.ts +101 -0
  42. package/lib/esm/index.d.ts.map +1 -0
  43. package/lib/esm/index.js +111 -0
  44. package/lib/esm/index.js.map +1 -0
  45. package/lib/esm/maps/entities-encode.json +1 -0
  46. package/lib/esm/package.json +1 -0
  47. package/lib/generated/decode-data-html.d.ts +3 -0
  48. package/lib/generated/decode-data-html.d.ts.map +1 -0
  49. package/lib/generated/decode-data-html.js +6 -0
  50. package/lib/generated/decode-data-html.js.map +1 -0
  51. package/lib/generated/decode-data-xml.d.ts +3 -0
  52. package/lib/generated/decode-data-xml.d.ts.map +1 -0
  53. package/lib/generated/decode-data-xml.js +6 -0
  54. package/lib/generated/decode-data-xml.js.map +1 -0
  55. package/lib/index.d.ts +85 -11
  56. package/lib/index.d.ts.map +1 -1
  57. package/lib/index.js +110 -32
  58. package/lib/index.js.map +1 -0
  59. package/lib/maps/entities-encode.json +1 -0
  60. package/package.json +41 -17
  61. package/readme.md +79 -13
  62. package/lib/maps/decode.json +0 -1
  63. package/lib/maps/entities.json +0 -1
  64. package/lib/maps/legacy.json +0 -1
  65. package/lib/maps/xml.json +0 -1
package/lib/decode.d.ts CHANGED
@@ -1,5 +1,14 @@
1
- export declare const decodeXML: (str: string) => string;
2
- export declare const decodeHTMLStrict: (str: string) => string;
3
- export declare type MapType = Record<string, string>;
4
- export declare const decodeHTML: (str: string) => string;
1
+ import htmlDecodeTree from "./generated/decode-data-html.js";
2
+ import xmlDecodeTree from "./generated/decode-data-xml.js";
3
+ import decodeCodePoint from "./decode_codepoint.js";
4
+ export { htmlDecodeTree, xmlDecodeTree, decodeCodePoint };
5
+ export declare enum BinTrieFlags {
6
+ VALUE_LENGTH = 49152,
7
+ BRANCH_LENGTH = 16256,
8
+ JUMP_TABLE = 127
9
+ }
10
+ export declare function determineBranch(decodeTree: Uint16Array, current: number, nodeIdx: number, char: number): number;
11
+ export declare function decodeHTML(str: string): string;
12
+ export declare function decodeHTMLStrict(str: string): string;
13
+ export declare function decodeXML(str: string): string;
5
14
  //# sourceMappingURL=decode.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"decode.d.ts","sourceRoot":"","sources":["../src/decode.ts"],"names":[],"mappings":"AAOA,eAAO,MAAM,SAAS,QAOL,MAAM,WAP0B,CAAC;AAClD,eAAO,MAAM,gBAAgB,QAMZ,MAAM,WANoC,CAAC;AAE5D,oBAAY,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAS7C,eAAO,MAAM,UAAU,QAyBN,MAAM,WACnB,CAAC"}
1
+ {"version":3,"file":"decode.d.ts","sourceRoot":"","sources":["../src/decode.ts"],"names":[],"mappings":"AAAA,OAAO,cAAc,MAAM,iCAAiC,CAAC;AAC7D,OAAO,aAAa,MAAM,gCAAgC,CAAC;AAC3D,OAAO,eAAe,MAAM,uBAAuB,CAAC;AAGpD,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,eAAe,EAAE,CAAC;AAc1D,oBAAY,YAAY;IACpB,YAAY,QAAwB;IACpC,aAAa,QAAwB;IACrC,UAAU,MAAwB;CACrC;AA8GD,wBAAgB,eAAe,CAC3B,UAAU,EAAE,WAAW,EACvB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,GACb,MAAM,CAsCR;AAKD,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAE9C;AAED,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAEpD;AAED,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAE7C"}
package/lib/decode.js CHANGED
@@ -3,51 +3,144 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.decodeHTML = exports.decodeHTMLStrict = exports.decodeXML = void 0;
7
- var entities_json_1 = __importDefault(require("./maps/entities.json"));
8
- var legacy_json_1 = __importDefault(require("./maps/legacy.json"));
9
- var xml_json_1 = __importDefault(require("./maps/xml.json"));
10
- var decode_codepoint_1 = __importDefault(require("./decode_codepoint"));
11
- var strictEntityRe = /&(?:[a-zA-Z0-9]+|#[xX][\da-fA-F]+|#\d+);/g;
12
- exports.decodeXML = getStrictDecoder(xml_json_1.default);
13
- exports.decodeHTMLStrict = getStrictDecoder(entities_json_1.default);
14
- function getStrictDecoder(map) {
15
- var replace = getReplacer(map);
16
- return function (str) { return String(str).replace(strictEntityRe, replace); };
6
+ exports.decodeXML = exports.decodeHTMLStrict = exports.decodeHTML = exports.determineBranch = exports.BinTrieFlags = exports.decodeCodePoint = exports.xmlDecodeTree = exports.htmlDecodeTree = void 0;
7
+ var decode_data_html_js_1 = __importDefault(require("./generated/decode-data-html.js"));
8
+ exports.htmlDecodeTree = decode_data_html_js_1.default;
9
+ var decode_data_xml_js_1 = __importDefault(require("./generated/decode-data-xml.js"));
10
+ exports.xmlDecodeTree = decode_data_xml_js_1.default;
11
+ var decode_codepoint_js_1 = __importDefault(require("./decode_codepoint.js"));
12
+ exports.decodeCodePoint = decode_codepoint_js_1.default;
13
+ var BinTrieFlags;
14
+ (function (BinTrieFlags) {
15
+ BinTrieFlags[BinTrieFlags["VALUE_LENGTH"] = 49152] = "VALUE_LENGTH";
16
+ BinTrieFlags[BinTrieFlags["BRANCH_LENGTH"] = 16256] = "BRANCH_LENGTH";
17
+ BinTrieFlags[BinTrieFlags["JUMP_TABLE"] = 127] = "JUMP_TABLE";
18
+ })(BinTrieFlags = exports.BinTrieFlags || (exports.BinTrieFlags = {}));
19
+ function getDecoder(decodeTree) {
20
+ return function decodeHTMLBinary(str, strict) {
21
+ var ret = "";
22
+ var lastIdx = 0;
23
+ var strIdx = 0;
24
+ while ((strIdx = str.indexOf("&", strIdx)) >= 0) {
25
+ ret += str.slice(lastIdx, strIdx);
26
+ lastIdx = strIdx;
27
+ // Skip the "&"
28
+ strIdx += 1;
29
+ // If we have a numeric entity, handle this separately.
30
+ if (str.charCodeAt(strIdx) === 35 /* NUM */) {
31
+ // Skip the leading "&#". For hex entities, also skip the leading "x".
32
+ var start = strIdx + 1;
33
+ var base = 10;
34
+ var cp = str.charCodeAt(start);
35
+ if ((cp | 32 /* To_LOWER_BIT */) === 120 /* LOWER_X */) {
36
+ base = 16;
37
+ strIdx += 1;
38
+ start += 1;
39
+ }
40
+ do
41
+ cp = str.charCodeAt(++strIdx);
42
+ while ((cp >= 48 /* ZERO */ && cp <= 57 /* NINE */) ||
43
+ (base === 16 &&
44
+ (cp | 32 /* To_LOWER_BIT */) >= 97 /* LOWER_A */ &&
45
+ (cp | 32 /* To_LOWER_BIT */) <= 102 /* LOWER_F */));
46
+ if (start !== strIdx) {
47
+ var entity = str.substring(start, strIdx);
48
+ var parsed = parseInt(entity, base);
49
+ if (str.charCodeAt(strIdx) === 59 /* SEMI */) {
50
+ strIdx += 1;
51
+ }
52
+ else if (strict) {
53
+ continue;
54
+ }
55
+ ret += (0, decode_codepoint_js_1.default)(parsed);
56
+ lastIdx = strIdx;
57
+ }
58
+ continue;
59
+ }
60
+ var resultIdx = 0;
61
+ var excess = 1;
62
+ var treeIdx = 0;
63
+ var current = decodeTree[treeIdx];
64
+ for (; strIdx < str.length; strIdx++, excess++) {
65
+ treeIdx = determineBranch(decodeTree, current, treeIdx + 1, str.charCodeAt(strIdx));
66
+ if (treeIdx < 0)
67
+ break;
68
+ current = decodeTree[treeIdx];
69
+ var masked = current & BinTrieFlags.VALUE_LENGTH;
70
+ // If the branch is a value, store it and continue
71
+ if (masked) {
72
+ // If we have a legacy entity while parsing strictly, just skip the number of bytes
73
+ if (!strict || str.charCodeAt(strIdx) === 59 /* SEMI */) {
74
+ resultIdx = treeIdx;
75
+ excess = 0;
76
+ }
77
+ // The mask is the number of bytes of the value, including the current byte.
78
+ var valueLength = (masked >> 14) - 1;
79
+ if (valueLength === 0)
80
+ break;
81
+ treeIdx += valueLength;
82
+ }
83
+ }
84
+ if (resultIdx !== 0) {
85
+ var valueLength = (decodeTree[resultIdx] & BinTrieFlags.VALUE_LENGTH) >> 14;
86
+ ret +=
87
+ valueLength === 1
88
+ ? String.fromCharCode(decodeTree[resultIdx] & ~BinTrieFlags.VALUE_LENGTH)
89
+ : valueLength === 2
90
+ ? String.fromCharCode(decodeTree[resultIdx + 1])
91
+ : String.fromCharCode(decodeTree[resultIdx + 1], decodeTree[resultIdx + 2]);
92
+ lastIdx = strIdx - excess + 1;
93
+ }
94
+ }
95
+ return ret + str.slice(lastIdx);
96
+ };
17
97
  }
18
- var sorter = function (a, b) { return (a < b ? 1 : -1); };
19
- exports.decodeHTML = (function () {
20
- var legacy = Object.keys(legacy_json_1.default).sort(sorter);
21
- var keys = Object.keys(entities_json_1.default).sort(sorter);
22
- for (var i = 0, j = 0; i < keys.length; i++) {
23
- if (legacy[j] === keys[i]) {
24
- keys[i] += ";?";
25
- j++;
98
+ function determineBranch(decodeTree, current, nodeIdx, char) {
99
+ var branchCount = (current & BinTrieFlags.BRANCH_LENGTH) >> 7;
100
+ var jumpOffset = current & BinTrieFlags.JUMP_TABLE;
101
+ // Case 1: Single branch encoded in jump offset
102
+ if (branchCount === 0) {
103
+ return jumpOffset !== 0 && char === jumpOffset ? nodeIdx : -1;
104
+ }
105
+ // Case 2: Multiple branches encoded in jump table
106
+ if (jumpOffset) {
107
+ var value = char - jumpOffset;
108
+ return value < 0 || value > branchCount
109
+ ? -1
110
+ : decodeTree[nodeIdx + value] - 1;
111
+ }
112
+ // Case 3: Multiple branches encoded in dictionary
113
+ // Binary search for the character.
114
+ var lo = nodeIdx;
115
+ var hi = lo + branchCount - 1;
116
+ while (lo <= hi) {
117
+ var mid = (lo + hi) >>> 1;
118
+ var midVal = decodeTree[mid];
119
+ if (midVal < char) {
120
+ lo = mid + 1;
121
+ }
122
+ else if (midVal > char) {
123
+ hi = mid - 1;
26
124
  }
27
125
  else {
28
- keys[i] += ";";
126
+ return decodeTree[mid + branchCount];
29
127
  }
30
128
  }
31
- var re = new RegExp("&(?:" + keys.join("|") + "|#[xX][\\da-fA-F]+;?|#\\d+;?)", "g");
32
- var replace = getReplacer(entities_json_1.default);
33
- function replacer(str) {
34
- if (str.substr(-1) !== ";")
35
- str += ";";
36
- return replace(str);
37
- }
38
- // TODO consider creating a merged map
39
- return function (str) { return String(str).replace(re, replacer); };
40
- })();
41
- function getReplacer(map) {
42
- return function replace(str) {
43
- if (str.charAt(1) === "#") {
44
- var secondChar = str.charAt(2);
45
- if (secondChar === "X" || secondChar === "x") {
46
- return decode_codepoint_1.default(parseInt(str.substr(3), 16));
47
- }
48
- return decode_codepoint_1.default(parseInt(str.substr(2), 10));
49
- }
50
- // eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing
51
- return map[str.slice(1, -1)] || str;
52
- };
129
+ return -1;
130
+ }
131
+ exports.determineBranch = determineBranch;
132
+ var htmlDecoder = getDecoder(decode_data_html_js_1.default);
133
+ var xmlDecoder = getDecoder(decode_data_xml_js_1.default);
134
+ function decodeHTML(str) {
135
+ return htmlDecoder(str, false);
136
+ }
137
+ exports.decodeHTML = decodeHTML;
138
+ function decodeHTMLStrict(str) {
139
+ return htmlDecoder(str, true);
140
+ }
141
+ exports.decodeHTMLStrict = decodeHTMLStrict;
142
+ function decodeXML(str) {
143
+ return xmlDecoder(str, true);
53
144
  }
145
+ exports.decodeXML = decodeXML;
146
+ //# sourceMappingURL=decode.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"decode.js","sourceRoot":"","sources":["../src/decode.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,3 @@
1
+ export declare function replaceCodePoint(codePoint: number): number;
1
2
  export default function decodeCodePoint(codePoint: number): string;
2
3
  //# sourceMappingURL=decode_codepoint.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"decode_codepoint.d.ts","sourceRoot":"","sources":["../src/decode_codepoint.ts"],"names":[],"mappings":"AAsBA,MAAM,CAAC,OAAO,UAAU,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAUjE"}
1
+ {"version":3,"file":"decode_codepoint.d.ts","sourceRoot":"","sources":["../src/decode_codepoint.ts"],"names":[],"mappings":"AAmDA,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,MAAM,UAMjD;AAED,MAAM,CAAC,OAAO,UAAU,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAEjE"}
@@ -1,12 +1,39 @@
1
1
  "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
2
+ // Adapted from https://github.com/mathiasbynens/he/blob/36afe179392226cf1b6ccdb16ebbb7a5a844d93a/src/he.js#L106-L134
5
3
  Object.defineProperty(exports, "__esModule", { value: true });
6
- var decode_json_1 = __importDefault(require("./maps/decode.json"));
7
- // Adapted from https://github.com/mathiasbynens/he/blob/master/src/he.js#L94-L119
4
+ exports.replaceCodePoint = void 0;
5
+ var decodeMap = new Map([
6
+ [0, 65533],
7
+ [128, 8364],
8
+ [130, 8218],
9
+ [131, 402],
10
+ [132, 8222],
11
+ [133, 8230],
12
+ [134, 8224],
13
+ [135, 8225],
14
+ [136, 710],
15
+ [137, 8240],
16
+ [138, 352],
17
+ [139, 8249],
18
+ [140, 338],
19
+ [142, 381],
20
+ [145, 8216],
21
+ [146, 8217],
22
+ [147, 8220],
23
+ [148, 8221],
24
+ [149, 8226],
25
+ [150, 8211],
26
+ [151, 8212],
27
+ [152, 732],
28
+ [153, 8482],
29
+ [154, 353],
30
+ [155, 8250],
31
+ [156, 339],
32
+ [158, 382],
33
+ [159, 376],
34
+ ]);
8
35
  var fromCodePoint =
9
- // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
36
+ // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition, node/no-unsupported-features/es-builtins
10
37
  String.fromCodePoint ||
11
38
  function (codePoint) {
12
39
  var output = "";
@@ -18,13 +45,16 @@ String.fromCodePoint ||
18
45
  output += String.fromCharCode(codePoint);
19
46
  return output;
20
47
  };
21
- function decodeCodePoint(codePoint) {
48
+ function replaceCodePoint(codePoint) {
49
+ var _a;
22
50
  if ((codePoint >= 0xd800 && codePoint <= 0xdfff) || codePoint > 0x10ffff) {
23
- return "\uFFFD";
24
- }
25
- if (codePoint in decode_json_1.default) {
26
- codePoint = decode_json_1.default[codePoint];
51
+ return 0xfffd;
27
52
  }
28
- return fromCodePoint(codePoint);
53
+ return (_a = decodeMap.get(codePoint)) !== null && _a !== void 0 ? _a : codePoint;
54
+ }
55
+ exports.replaceCodePoint = replaceCodePoint;
56
+ function decodeCodePoint(codePoint) {
57
+ return fromCodePoint(replaceCodePoint(codePoint));
29
58
  }
30
59
  exports.default = decodeCodePoint;
60
+ //# sourceMappingURL=decode_codepoint.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"decode_codepoint.js","sourceRoot":"","sources":["../src/decode_codepoint.ts"],"names":[],"mappings":";AAAA,qHAAqH;;;AAErH,IAAM,SAAS,GAAG,IAAI,GAAG,CAAC;IACtB,CAAC,CAAC,EAAE,KAAK,CAAC;IACV,CAAC,GAAG,EAAE,IAAI,CAAC;IACX,CAAC,GAAG,EAAE,IAAI,CAAC;IACX,CAAC,GAAG,EAAE,GAAG,CAAC;IACV,CAAC,GAAG,EAAE,IAAI,CAAC;IACX,CAAC,GAAG,EAAE,IAAI,CAAC;IACX,CAAC,GAAG,EAAE,IAAI,CAAC;IACX,CAAC,GAAG,EAAE,IAAI,CAAC;IACX,CAAC,GAAG,EAAE,GAAG,CAAC;IACV,CAAC,GAAG,EAAE,IAAI,CAAC;IACX,CAAC,GAAG,EAAE,GAAG,CAAC;IACV,CAAC,GAAG,EAAE,IAAI,CAAC;IACX,CAAC,GAAG,EAAE,GAAG,CAAC;IACV,CAAC,GAAG,EAAE,GAAG,CAAC;IACV,CAAC,GAAG,EAAE,IAAI,CAAC;IACX,CAAC,GAAG,EAAE,IAAI,CAAC;IACX,CAAC,GAAG,EAAE,IAAI,CAAC;IACX,CAAC,GAAG,EAAE,IAAI,CAAC;IACX,CAAC,GAAG,EAAE,IAAI,CAAC;IACX,CAAC,GAAG,EAAE,IAAI,CAAC;IACX,CAAC,GAAG,EAAE,IAAI,CAAC;IACX,CAAC,GAAG,EAAE,GAAG,CAAC;IACV,CAAC,GAAG,EAAE,IAAI,CAAC;IACX,CAAC,GAAG,EAAE,GAAG,CAAC;IACV,CAAC,GAAG,EAAE,IAAI,CAAC;IACX,CAAC,GAAG,EAAE,GAAG,CAAC;IACV,CAAC,GAAG,EAAE,GAAG,CAAC;IACV,CAAC,GAAG,EAAE,GAAG,CAAC;CACb,CAAC,CAAC;AAEH,IAAM,aAAa;AACf,iHAAiH;AACjH,MAAM,CAAC,aAAa;IACpB,UAAU,SAAiB;QACvB,IAAI,MAAM,GAAG,EAAE,CAAC;QAEhB,IAAI,SAAS,GAAG,MAAM,EAAE;YACpB,SAAS,IAAI,OAAO,CAAC;YACrB,MAAM,IAAI,MAAM,CAAC,YAAY,CACzB,CAAC,CAAC,SAAS,KAAK,EAAE,CAAC,GAAG,KAAK,CAAC,GAAG,MAAM,CACxC,CAAC;YACF,SAAS,GAAG,MAAM,GAAG,CAAC,SAAS,GAAG,KAAK,CAAC,CAAC;SAC5C;QAED,MAAM,IAAI,MAAM,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;QACzC,OAAO,MAAM,CAAC;IAClB,CAAC,CAAC;AAEN,SAAgB,gBAAgB,CAAC,SAAiB;;IAC9C,IAAI,CAAC,SAAS,IAAI,MAAM,IAAI,SAAS,IAAI,MAAM,CAAC,IAAI,SAAS,GAAG,QAAQ,EAAE;QACtE,OAAO,MAAM,CAAC;KACjB;IAED,OAAO,MAAA,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,mCAAI,SAAS,CAAC;AACjD,CAAC;AAND,4CAMC;AAED,SAAwB,eAAe,CAAC,SAAiB;IACrD,OAAO,aAAa,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC,CAAC;AACtD,CAAC;AAFD,kCAEC"}
@@ -0,0 +1,8 @@
1
+ export declare const getCodePoint: (str: string, index: number) => number;
2
+ export declare function encodeHTMLTrieRe(regExp: RegExp, str: string): string;
3
+ export interface TrieNode {
4
+ value?: string;
5
+ next?: Map<number, TrieNode>;
6
+ }
7
+ export declare function getTrie(map: Record<string, string>): Map<number, TrieNode>;
8
+ //# sourceMappingURL=encode-trie.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"encode-trie.d.ts","sourceRoot":"","sources":["../src/encode-trie.ts"],"names":[],"mappings":"AAYA,eAAO,MAAM,YAAY,QAGT,MAAM,SAAS,MAAM,KAAG,MAQD,CAAC;AAIxC,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAkCpE;AAED,MAAM,WAAW,QAAQ;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;CAChC;AAED,wBAAgB,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAmB1E"}
@@ -0,0 +1,78 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.getTrie = exports.encodeHTMLTrieRe = exports.getCodePoint = void 0;
7
+ var entities_encode_json_1 = __importDefault(require("./maps/entities-encode.json"));
8
+ function isHighSurrugate(c) {
9
+ return (c & 64512 /* Mask */) === 55296 /* High */;
10
+ }
11
+ // For compatibility with node < 4, we wrap `codePointAt`
12
+ exports.getCodePoint =
13
+ // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
14
+ String.prototype.codePointAt != null
15
+ ? function (str, index) { return str.codePointAt(index); }
16
+ : // http://mathiasbynens.be/notes/javascript-encoding#surrogate-formulae
17
+ function (c, index) {
18
+ return isHighSurrugate(c.charCodeAt(index))
19
+ ? (c.charCodeAt(index) - 55296 /* High */) * 0x400 +
20
+ c.charCodeAt(index + 1) -
21
+ 0xdc00 +
22
+ 0x10000
23
+ : c.charCodeAt(index);
24
+ };
25
+ var htmlTrie = getTrie(entities_encode_json_1.default);
26
+ function encodeHTMLTrieRe(regExp, str) {
27
+ var _a;
28
+ var ret = "";
29
+ var lastIdx = 0;
30
+ var match;
31
+ while ((match = regExp.exec(str)) !== null) {
32
+ var i = match.index;
33
+ var char = str.charCodeAt(i);
34
+ var next = htmlTrie.get(char);
35
+ if (next) {
36
+ if (next.next != null && i + 1 < str.length) {
37
+ var value = (_a = next.next.get(str.charCodeAt(i + 1))) === null || _a === void 0 ? void 0 : _a.value;
38
+ if (value != null) {
39
+ ret += str.substring(lastIdx, i) + value;
40
+ regExp.lastIndex += 1;
41
+ lastIdx = i + 2;
42
+ continue;
43
+ }
44
+ }
45
+ ret += str.substring(lastIdx, i) + next.value;
46
+ lastIdx = i + 1;
47
+ }
48
+ else {
49
+ ret += "".concat(str.substring(lastIdx, i), "&#x").concat((0, exports.getCodePoint)(str, i).toString(16), ";");
50
+ // Increase by 1 if we have a surrogate pair
51
+ lastIdx = regExp.lastIndex += Number(isHighSurrugate(char));
52
+ }
53
+ }
54
+ return ret + str.substr(lastIdx);
55
+ }
56
+ exports.encodeHTMLTrieRe = encodeHTMLTrieRe;
57
+ function getTrie(map) {
58
+ var _a, _b, _c, _d;
59
+ var trie = new Map();
60
+ for (var _i = 0, _e = Object.keys(map); _i < _e.length; _i++) {
61
+ var decoded = _e[_i];
62
+ var entity = map[decoded];
63
+ // Resolve the key
64
+ var lastMap = trie;
65
+ for (var i = 0; i < decoded.length - 1; i++) {
66
+ var char = decoded.charCodeAt(i);
67
+ var next = (_a = lastMap.get(char)) !== null && _a !== void 0 ? _a : {};
68
+ lastMap.set(char, next);
69
+ lastMap = (_b = next.next) !== null && _b !== void 0 ? _b : (next.next = new Map());
70
+ }
71
+ var val = (_c = lastMap.get(decoded.charCodeAt(decoded.length - 1))) !== null && _c !== void 0 ? _c : {};
72
+ (_d = val.value) !== null && _d !== void 0 ? _d : (val.value = "&".concat(entity, ";"));
73
+ lastMap.set(decoded.charCodeAt(decoded.length - 1), val);
74
+ }
75
+ return trie;
76
+ }
77
+ exports.getTrie = getTrie;
78
+ //# sourceMappingURL=encode-trie.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"encode-trie.js","sourceRoot":"","sources":["../src/encode-trie.ts"],"names":[],"mappings":"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"}
package/lib/encode.d.ts CHANGED
@@ -5,7 +5,7 @@
5
5
  * If a character has no equivalent entity, a
6
6
  * numeric hexadecimal reference (eg. `&#xfc;`) will be used.
7
7
  */
8
- export declare const encodeXML: (data: string) => string;
8
+ export declare function encodeXML(str: string): string;
9
9
  /**
10
10
  * Encodes all entities and non-ASCII characters in the input.
11
11
  *
@@ -16,7 +16,7 @@ export declare const encodeXML: (data: string) => string;
16
16
  * If a character has no equivalent entity, a
17
17
  * numeric hexadecimal reference (eg. `&#xfc;`) will be used.
18
18
  */
19
- export declare const encodeHTML: (data: string) => string;
19
+ export declare function encodeHTML(data: string): string;
20
20
  /**
21
21
  * Encodes all non-ASCII characters, as well as characters not valid in HTML
22
22
  * documents using HTML entities.
@@ -24,7 +24,7 @@ export declare const encodeHTML: (data: string) => string;
24
24
  * If a character has no equivalent entity, a
25
25
  * numeric hexadecimal reference (eg. `&#xfc;`) will be used.
26
26
  */
27
- export declare const encodeNonAsciiHTML: (data: string) => string;
27
+ export declare function encodeNonAsciiHTML(data: string): string;
28
28
  /**
29
29
  * Encodes all non-ASCII characters, as well as characters not valid in XML
30
30
  * documents using numeric hexadecimal reference (eg. `&#xfc;`).
@@ -34,14 +34,27 @@ export declare const encodeNonAsciiHTML: (data: string) => string;
34
34
  *
35
35
  * @param data String to escape.
36
36
  */
37
- export declare function escape(data: string): string;
37
+ export declare const escape: typeof encodeXML;
38
38
  /**
39
- * Encodes all characters not valid in XML documents using numeric hexadecimal
40
- * reference (eg. `&#xfc;`).
39
+ * Encodes all characters not valid in XML documents using XML entities.
41
40
  *
42
41
  * Note that the output will be character-set dependent.
43
42
  *
44
43
  * @param data String to escape.
45
44
  */
46
- export declare function escapeUTF8(data: string): string;
45
+ export declare const escapeUTF8: (data: string) => string;
46
+ /**
47
+ * Encodes all characters that have to be escaped in HTML attributes,
48
+ * following {@link https://html.spec.whatwg.org/multipage/parsing.html#escapingString}.
49
+ *
50
+ * @param data String to escape.
51
+ */
52
+ export declare const escapeAttribute: (data: string) => string;
53
+ /**
54
+ * Encodes all characters that have to be escaped in HTML text,
55
+ * following {@link https://html.spec.whatwg.org/multipage/parsing.html#escapingString}.
56
+ *
57
+ * @param data String to escape.
58
+ */
59
+ export declare const escapeText: (data: string) => string;
47
60
  //# sourceMappingURL=encode.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"encode.d.ts","sourceRoot":"","sources":["../src/encode.ts"],"names":[],"mappings":"AAKA;;;;;;GAMG;AACH,eAAO,MAAM,SAAS,SAwIJ,MAAM,WAxI4B,CAAC;AAOrD;;;;;;;;;GASG;AACH,eAAO,MAAM,UAAU,SAkFL,MAAM,WAlFuC,CAAC;AAChE;;;;;;GAMG;AACH,eAAO,MAAM,kBAAkB,SA+Gb,MAAM,WA/GsC,CAAC;AAqF/D;;;;;;;;GAQG;AACH,wBAAgB,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE3C;AAED;;;;;;;GAOG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE/C"}
1
+ {"version":3,"file":"encode.d.ts","sourceRoot":"","sources":["../src/encode.ts"],"names":[],"mappings":"AAaA;;;;;;GAMG;AACH,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CA0B7C;AAED;;;;;;;;;GASG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE/C;AACD;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEvD;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,MAAM,kBAAY,CAAC;AA2BhC;;;;;;GAMG;AACH,eAAO,MAAM,UAAU,SA7Bb,MAAM,KAAK,MA6BuC,CAAC;AAE7D;;;;;GAKG;AACH,eAAO,MAAM,eAAe,SArClB,MAAM,KAAK,MA4CpB,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,UAAU,SApDb,MAAM,KAAK,MA4DpB,CAAC"}