entities 6.0.1 → 7.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.
- package/decode.d.ts +2 -0
- package/dist/commonjs/decode-codepoint.d.ts.map +1 -1
- package/dist/commonjs/decode-codepoint.js +2 -2
- package/dist/commonjs/decode-codepoint.js.map +1 -1
- package/dist/commonjs/decode.d.ts +1 -7
- package/dist/commonjs/decode.d.ts.map +1 -1
- package/dist/commonjs/decode.js +105 -48
- package/dist/commonjs/decode.js.map +1 -1
- package/dist/commonjs/encode.d.ts.map +1 -1
- package/dist/commonjs/encode.js +49 -30
- package/dist/commonjs/encode.js.map +1 -1
- package/dist/commonjs/escape.d.ts +7 -4
- package/dist/commonjs/escape.d.ts.map +1 -1
- package/dist/commonjs/escape.js +36 -19
- package/dist/commonjs/escape.js.map +1 -1
- package/dist/commonjs/generated/decode-data-html.d.ts.map +1 -1
- package/dist/commonjs/generated/decode-data-html.js +2 -5
- package/dist/commonjs/generated/decode-data-html.js.map +1 -1
- package/dist/commonjs/generated/decode-data-xml.d.ts.map +1 -1
- package/dist/commonjs/generated/decode-data-xml.js +2 -5
- package/dist/commonjs/generated/decode-data-xml.js.map +1 -1
- package/dist/commonjs/generated/encode-html.d.ts +1 -6
- package/dist/commonjs/generated/encode-html.d.ts.map +1 -1
- package/dist/commonjs/generated/encode-html.js +9 -8
- package/dist/commonjs/generated/encode-html.js.map +1 -1
- package/dist/commonjs/index.d.ts +3 -3
- package/dist/commonjs/index.d.ts.map +1 -1
- package/dist/commonjs/index.js +19 -19
- package/dist/commonjs/index.js.map +1 -1
- package/dist/commonjs/internal/bin-trie-flags.d.ts +17 -0
- package/dist/commonjs/internal/bin-trie-flags.d.ts.map +1 -0
- package/dist/commonjs/internal/bin-trie-flags.js +21 -0
- package/dist/commonjs/internal/bin-trie-flags.js.map +1 -0
- package/dist/commonjs/internal/decode-shared.d.ts +2 -0
- package/dist/commonjs/internal/decode-shared.d.ts.map +1 -0
- package/dist/commonjs/internal/decode-shared.js +31 -0
- package/dist/commonjs/internal/decode-shared.js.map +1 -0
- package/dist/commonjs/internal/encode-shared.d.ts +32 -0
- package/dist/commonjs/internal/encode-shared.d.ts.map +1 -0
- package/dist/commonjs/internal/encode-shared.js +94 -0
- package/dist/commonjs/internal/encode-shared.js.map +1 -0
- package/dist/esm/decode-codepoint.d.ts.map +1 -1
- package/dist/esm/decode-codepoint.js +2 -2
- package/dist/esm/decode-codepoint.js.map +1 -1
- package/dist/esm/decode.d.ts +1 -7
- package/dist/esm/decode.d.ts.map +1 -1
- package/dist/esm/decode.js +96 -39
- package/dist/esm/decode.js.map +1 -1
- package/dist/esm/encode.d.ts.map +1 -1
- package/dist/esm/encode.js +49 -30
- package/dist/esm/encode.js.map +1 -1
- package/dist/esm/escape.d.ts +7 -4
- package/dist/esm/escape.d.ts.map +1 -1
- package/dist/esm/escape.js +35 -18
- package/dist/esm/escape.js.map +1 -1
- package/dist/esm/generated/decode-data-html.d.ts.map +1 -1
- package/dist/esm/generated/decode-data-html.js +2 -5
- package/dist/esm/generated/decode-data-html.js.map +1 -1
- package/dist/esm/generated/decode-data-xml.d.ts.map +1 -1
- package/dist/esm/generated/decode-data-xml.js +2 -5
- package/dist/esm/generated/decode-data-xml.js.map +1 -1
- package/dist/esm/generated/encode-html.d.ts +1 -6
- package/dist/esm/generated/encode-html.d.ts.map +1 -1
- package/dist/esm/generated/encode-html.js +9 -8
- package/dist/esm/generated/encode-html.js.map +1 -1
- package/dist/esm/index.d.ts +3 -3
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +9 -9
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/internal/bin-trie-flags.d.ts +17 -0
- package/dist/esm/internal/bin-trie-flags.d.ts.map +1 -0
- package/dist/esm/internal/bin-trie-flags.js +18 -0
- package/dist/esm/internal/bin-trie-flags.js.map +1 -0
- package/dist/esm/internal/decode-shared.d.ts +2 -0
- package/dist/esm/internal/decode-shared.d.ts.map +1 -0
- package/dist/esm/internal/decode-shared.js +28 -0
- package/dist/esm/internal/decode-shared.js.map +1 -0
- package/dist/esm/internal/encode-shared.d.ts +32 -0
- package/dist/esm/internal/encode-shared.d.ts.map +1 -0
- package/dist/esm/internal/encode-shared.js +91 -0
- package/dist/esm/internal/encode-shared.js.map +1 -0
- package/escape.d.ts +2 -0
- package/package.json +16 -21
- package/src/decode-codepoint.ts +2 -2
- package/src/decode.spec.ts +44 -1
- package/src/decode.ts +111 -55
- package/src/encode.spec.ts +1 -1
- package/src/encode.ts +47 -31
- package/src/escape.spec.ts +1 -1
- package/src/escape.ts +39 -26
- package/src/generated/decode-data-html.ts +3 -5
- package/src/generated/decode-data-xml.ts +3 -5
- package/src/generated/encode-html.ts +14 -14
- package/src/index.spec.ts +2 -2
- package/src/index.ts +23 -24
- package/src/internal/bin-trie-flags.ts +16 -0
- package/src/internal/decode-shared.ts +30 -0
- package/src/internal/encode-shared.ts +121 -0
package/decode.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"decode-codepoint.d.ts","sourceRoot":"","sources":["../../src/decode-codepoint.ts"],"names":[],"mappings":"AAkCA;;GAEG;AACH,eAAO,MAAM,aAAa,EAAE,CAAC,GAAG,UAAU,EAAE,MAAM,EAAE,KAAK,
|
|
1
|
+
{"version":3,"file":"decode-codepoint.d.ts","sourceRoot":"","sources":["../../src/decode-codepoint.ts"],"names":[],"mappings":"AAkCA;;GAEG;AACH,eAAO,MAAM,aAAa,EAAE,CAAC,GAAG,UAAU,EAAE,MAAM,EAAE,KAAK,MAgBnD,CAAC;AAEP;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAS1D;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAEzD"}
|
|
@@ -41,7 +41,7 @@ const decodeMap = new Map([
|
|
|
41
41
|
*/
|
|
42
42
|
exports.fromCodePoint =
|
|
43
43
|
// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition, n/no-unsupported-features/es-builtins
|
|
44
|
-
(_a = String.fromCodePoint) !== null && _a !== void 0 ? _a :
|
|
44
|
+
(_a = String.fromCodePoint) !== null && _a !== void 0 ? _a : ((codePoint) => {
|
|
45
45
|
let output = "";
|
|
46
46
|
if (codePoint > 65535) {
|
|
47
47
|
codePoint -= 65536;
|
|
@@ -50,7 +50,7 @@ exports.fromCodePoint =
|
|
|
50
50
|
}
|
|
51
51
|
output += String.fromCharCode(codePoint);
|
|
52
52
|
return output;
|
|
53
|
-
};
|
|
53
|
+
});
|
|
54
54
|
/**
|
|
55
55
|
* Replace the given code point with a replacement character if it is a
|
|
56
56
|
* surrogate or is outside the valid range. Otherwise return the code
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"decode-codepoint.js","sourceRoot":"","sources":["../../src/decode-codepoint.ts"],"names":[],"mappings":";AAAA,qHAAqH;;;;AA4DrH,4CASC;AASD,0CAEC;AA9ED,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC;IACtB,CAAC,CAAC,EAAE,KAAM,CAAC;IACX,sDAAsD;IACtD,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;;GAEG;AACU,QAAA,aAAa;AACtB,8GAA8G;AAC9G,MAAA,MAAM,CAAC,aAAa,mCACpB,
|
|
1
|
+
{"version":3,"file":"decode-codepoint.js","sourceRoot":"","sources":["../../src/decode-codepoint.ts"],"names":[],"mappings":";AAAA,qHAAqH;;;;AA4DrH,4CASC;AASD,0CAEC;AA9ED,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC;IACtB,CAAC,CAAC,EAAE,KAAM,CAAC;IACX,sDAAsD;IACtD,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;;GAEG;AACU,QAAA,aAAa;AACtB,8GAA8G;AAC9G,MAAA,MAAM,CAAC,aAAa,mCACpB,CAAC,CAAC,SAAiB,EAAU,EAAE;IAC3B,IAAI,MAAM,GAAG,EAAE,CAAC;IAEhB,IAAI,SAAS,GAAG,KAAO,EAAE,CAAC;QACtB,SAAS,IAAI,KAAS,CAAC;QACvB,MAAM,IAAI,MAAM,CAAC,YAAY,CACzB,CAAC,CAAC,SAAS,KAAK,EAAE,CAAC,GAAG,IAAM,CAAC,GAAG,KAAO,CAC1C,CAAC;QACF,SAAS,GAAG,KAAO,GAAG,CAAC,SAAS,GAAG,IAAM,CAAC,CAAC;IAC/C,CAAC;IAED,MAAM,IAAI,MAAM,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;IACzC,OAAO,MAAM,CAAC;AAClB,CAAC,CAAC,CAAC;AAEP;;;;GAIG;AACH,SAAgB,gBAAgB,CAAC,SAAiB;;IAC9C,IACI,CAAC,SAAS,IAAI,KAAO,IAAI,SAAS,IAAI,KAAO,CAAC;QAC9C,SAAS,GAAG,OAAU,EACxB,CAAC;QACC,OAAO,KAAO,CAAC;IACnB,CAAC;IAED,OAAO,MAAA,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,mCAAI,SAAS,CAAC;AACjD,CAAC;AAED;;;;;;GAMG;AACH,SAAgB,eAAe,CAAC,SAAiB;IAC7C,OAAO,IAAA,qBAAa,EAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC,CAAC;AACtD,CAAC"}
|
|
@@ -1,8 +1,3 @@
|
|
|
1
|
-
export declare enum BinTrieFlags {
|
|
2
|
-
VALUE_LENGTH = 49152,
|
|
3
|
-
BRANCH_LENGTH = 16256,
|
|
4
|
-
JUMP_TABLE = 127
|
|
5
|
-
}
|
|
6
1
|
export declare enum DecodingMode {
|
|
7
2
|
/** Entities in text nodes that can end with any character. */
|
|
8
3
|
Legacy = 0,
|
|
@@ -93,7 +88,6 @@ export declare class EntityDecoder {
|
|
|
93
88
|
* @returns The number of characters that were consumed, or -1 if the entity is incomplete.
|
|
94
89
|
*/
|
|
95
90
|
private stateNumericStart;
|
|
96
|
-
private addToNumericResult;
|
|
97
91
|
/**
|
|
98
92
|
* Parses a hexadecimal numeric entity.
|
|
99
93
|
*
|
|
@@ -203,7 +197,7 @@ export declare function decodeHTMLStrict(htmlString: string): string;
|
|
|
203
197
|
* @returns The decoded string.
|
|
204
198
|
*/
|
|
205
199
|
export declare function decodeXML(xmlString: string): string;
|
|
200
|
+
export { decodeCodePoint, fromCodePoint, replaceCodePoint, } from "./decode-codepoint.js";
|
|
206
201
|
export { htmlDecodeTree } from "./generated/decode-data-html.js";
|
|
207
202
|
export { xmlDecodeTree } from "./generated/decode-data-xml.js";
|
|
208
|
-
export { decodeCodePoint, replaceCodePoint, fromCodePoint, } from "./decode-codepoint.js";
|
|
209
203
|
//# sourceMappingURL=decode.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"decode.d.ts","sourceRoot":"","sources":["../../src/decode.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"decode.d.ts","sourceRoot":"","sources":["../../src/decode.ts"],"names":[],"mappings":"AA4DA,oBAAY,YAAY;IACpB,8DAA8D;IAC9D,MAAM,IAAI;IACV,uDAAuD;IACvD,MAAM,IAAI;IACV,oEAAoE;IACpE,SAAS,IAAI;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAChC,uCAAuC,IAAI,IAAI,CAAC;IAChD,0CAA0C,CACtC,kBAAkB,EAAE,MAAM,GAC3B,IAAI,CAAC;IACR,iCAAiC,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;CACzD;AAED;;GAEG;AACH,qBAAa,aAAa;IAElB,wCAAwC;IAExC,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B;;;;;;;;OAQG;IACH,OAAO,CAAC,QAAQ,CAAC,aAAa;IAC9B,gDAAgD;IAChD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC;;IAdxB,wCAAwC;IAEvB,UAAU,EAAE,WAAW;IACxC;;;;;;;;OAQG;IACc,aAAa,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,IAAI;IACtE,gDAAgD;IAC/B,MAAM,CAAC,EAAE,mBAAmB,GAAG,SAAS;IAG7D,wCAAwC;IACxC,OAAO,CAAC,KAAK,CAAkC;IAC/C,6DAA6D;IAC7D,OAAO,CAAC,QAAQ,CAAK;IACrB;;;;;OAKG;IACH,OAAO,CAAC,MAAM,CAAK;IAEnB,4CAA4C;IAC5C,OAAO,CAAC,SAAS,CAAK;IACtB,6DAA6D;IAC7D,OAAO,CAAC,MAAM,CAAK;IACnB,kDAAkD;IAClD,OAAO,CAAC,UAAU,CAAuB;IAEzC,+CAA+C;IAC/C,WAAW,CAAC,UAAU,EAAE,YAAY,GAAG,IAAI;IAS3C;;;;;;;;;;OAUG;IACH,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM;IA8B5C;;;;;;;;OAQG;IACH,OAAO,CAAC,iBAAiB;IAezB;;;;;;;;OAQG;IACH,OAAO,CAAC,eAAe;IAmBvB;;;;;;;;OAQG;IACH,OAAO,CAAC,mBAAmB;IAc3B;;;;;;;;;;;;OAYG;IACH,OAAO,CAAC,iBAAiB;IA6BzB;;;;;;;;OAQG;IACH,OAAO,CAAC,gBAAgB;IA8HxB;;;;OAIG;IACH,OAAO,CAAC,4BAA4B;IAYpC;;;;;;;;OAQG;IACH,OAAO,CAAC,mBAAmB;IAsB3B;;;;;;OAMG;IACH,GAAG,IAAI,MAAM;CA6BhB;AAoDD;;;;;;;;;GASG;AACH,wBAAgB,eAAe,CAC3B,UAAU,EAAE,WAAW,EACvB,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,MAAM,GACb,MAAM,CA4CR;AAKD;;;;;;GAMG;AACH,wBAAgB,UAAU,CACtB,UAAU,EAAE,MAAM,EAClB,IAAI,GAAE,YAAkC,GACzC,MAAM,CAER;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,CAEjE;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAE3D;AAED;;;;;GAKG;AACH,wBAAgB,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAEnD;AAED,OAAO,EACH,eAAe,EACf,aAAa,EACb,gBAAgB,GACnB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AACjE,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC"}
|
package/dist/commonjs/decode.js
CHANGED
|
@@ -1,14 +1,15 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.xmlDecodeTree = exports.htmlDecodeTree = exports.replaceCodePoint = exports.fromCodePoint = exports.decodeCodePoint = exports.EntityDecoder = exports.DecodingMode = void 0;
|
|
4
4
|
exports.determineBranch = determineBranch;
|
|
5
5
|
exports.decodeHTML = decodeHTML;
|
|
6
6
|
exports.decodeHTMLAttribute = decodeHTMLAttribute;
|
|
7
7
|
exports.decodeHTMLStrict = decodeHTMLStrict;
|
|
8
8
|
exports.decodeXML = decodeXML;
|
|
9
|
+
const decode_codepoint_js_1 = require("./decode-codepoint.js");
|
|
9
10
|
const decode_data_html_js_1 = require("./generated/decode-data-html.js");
|
|
10
11
|
const decode_data_xml_js_1 = require("./generated/decode-data-xml.js");
|
|
11
|
-
const
|
|
12
|
+
const bin_trie_flags_js_1 = require("./internal/bin-trie-flags.js");
|
|
12
13
|
var CharCodes;
|
|
13
14
|
(function (CharCodes) {
|
|
14
15
|
CharCodes[CharCodes["NUM"] = 35] = "NUM";
|
|
@@ -26,12 +27,6 @@ var CharCodes;
|
|
|
26
27
|
})(CharCodes || (CharCodes = {}));
|
|
27
28
|
/** Bit that needs to be set to convert an upper case ASCII character to lower case */
|
|
28
29
|
const TO_LOWER_BIT = 32;
|
|
29
|
-
var BinTrieFlags;
|
|
30
|
-
(function (BinTrieFlags) {
|
|
31
|
-
BinTrieFlags[BinTrieFlags["VALUE_LENGTH"] = 49152] = "VALUE_LENGTH";
|
|
32
|
-
BinTrieFlags[BinTrieFlags["BRANCH_LENGTH"] = 16256] = "BRANCH_LENGTH";
|
|
33
|
-
BinTrieFlags[BinTrieFlags["JUMP_TABLE"] = 127] = "JUMP_TABLE";
|
|
34
|
-
})(BinTrieFlags || (exports.BinTrieFlags = BinTrieFlags = {}));
|
|
35
30
|
function isNumber(code) {
|
|
36
31
|
return code >= CharCodes.ZERO && code <= CharCodes.NINE;
|
|
37
32
|
}
|
|
@@ -76,6 +71,7 @@ var DecodingMode;
|
|
|
76
71
|
class EntityDecoder {
|
|
77
72
|
constructor(
|
|
78
73
|
/** The tree used to decode entities. */
|
|
74
|
+
// biome-ignore lint/correctness/noUnusedPrivateClassMembers: False positive
|
|
79
75
|
decodeTree,
|
|
80
76
|
/**
|
|
81
77
|
* The function that is called when a codepoint is decoded.
|
|
@@ -176,15 +172,6 @@ class EntityDecoder {
|
|
|
176
172
|
this.state = EntityDecoderState.NumericDecimal;
|
|
177
173
|
return this.stateNumericDecimal(input, offset);
|
|
178
174
|
}
|
|
179
|
-
addToNumericResult(input, start, end, base) {
|
|
180
|
-
if (start !== end) {
|
|
181
|
-
const digitCount = end - start;
|
|
182
|
-
this.result =
|
|
183
|
-
this.result * Math.pow(base, digitCount) +
|
|
184
|
-
Number.parseInt(input.substr(start, digitCount), base);
|
|
185
|
-
this.consumed += digitCount;
|
|
186
|
-
}
|
|
187
|
-
}
|
|
188
175
|
/**
|
|
189
176
|
* Parses a hexadecimal numeric entity.
|
|
190
177
|
*
|
|
@@ -195,19 +182,22 @@ class EntityDecoder {
|
|
|
195
182
|
* @returns The number of characters that were consumed, or -1 if the entity is incomplete.
|
|
196
183
|
*/
|
|
197
184
|
stateNumericHex(input, offset) {
|
|
198
|
-
const startIndex = offset;
|
|
199
185
|
while (offset < input.length) {
|
|
200
186
|
const char = input.charCodeAt(offset);
|
|
201
187
|
if (isNumber(char) || isHexadecimalCharacter(char)) {
|
|
202
|
-
|
|
188
|
+
// Convert hex digit to value (0-15); 'a'/'A' -> 10.
|
|
189
|
+
const digit = char <= CharCodes.NINE
|
|
190
|
+
? char - CharCodes.ZERO
|
|
191
|
+
: (char | TO_LOWER_BIT) - CharCodes.LOWER_A + 10;
|
|
192
|
+
this.result = this.result * 16 + digit;
|
|
193
|
+
this.consumed++;
|
|
194
|
+
offset++;
|
|
203
195
|
}
|
|
204
196
|
else {
|
|
205
|
-
this.addToNumericResult(input, startIndex, offset, 16);
|
|
206
197
|
return this.emitNumericEntity(char, 3);
|
|
207
198
|
}
|
|
208
199
|
}
|
|
209
|
-
|
|
210
|
-
return -1;
|
|
200
|
+
return -1; // Incomplete entity
|
|
211
201
|
}
|
|
212
202
|
/**
|
|
213
203
|
* Parses a decimal numeric entity.
|
|
@@ -219,19 +209,18 @@ class EntityDecoder {
|
|
|
219
209
|
* @returns The number of characters that were consumed, or -1 if the entity is incomplete.
|
|
220
210
|
*/
|
|
221
211
|
stateNumericDecimal(input, offset) {
|
|
222
|
-
const startIndex = offset;
|
|
223
212
|
while (offset < input.length) {
|
|
224
213
|
const char = input.charCodeAt(offset);
|
|
225
214
|
if (isNumber(char)) {
|
|
226
|
-
|
|
215
|
+
this.result = this.result * 10 + (char - CharCodes.ZERO);
|
|
216
|
+
this.consumed++;
|
|
217
|
+
offset++;
|
|
227
218
|
}
|
|
228
219
|
else {
|
|
229
|
-
this.addToNumericResult(input, startIndex, offset, 10);
|
|
230
220
|
return this.emitNumericEntity(char, 2);
|
|
231
221
|
}
|
|
232
222
|
}
|
|
233
|
-
|
|
234
|
-
return -1;
|
|
223
|
+
return -1; // Incomplete entity
|
|
235
224
|
}
|
|
236
225
|
/**
|
|
237
226
|
* Validate and emit a numeric entity.
|
|
@@ -281,10 +270,67 @@ class EntityDecoder {
|
|
|
281
270
|
stateNamedEntity(input, offset) {
|
|
282
271
|
const { decodeTree } = this;
|
|
283
272
|
let current = decodeTree[this.treeIndex];
|
|
284
|
-
// The
|
|
285
|
-
let valueLength = (current & BinTrieFlags.VALUE_LENGTH) >> 14;
|
|
286
|
-
|
|
273
|
+
// The length is the number of bytes of the value, including the current byte.
|
|
274
|
+
let valueLength = (current & bin_trie_flags_js_1.BinTrieFlags.VALUE_LENGTH) >> 14;
|
|
275
|
+
while (offset < input.length) {
|
|
276
|
+
// Handle compact runs (possibly inline): valueLength == 0 and SEMI_REQUIRED bit set.
|
|
277
|
+
if (valueLength === 0 && (current & bin_trie_flags_js_1.BinTrieFlags.FLAG13) !== 0) {
|
|
278
|
+
const runLength = (current & bin_trie_flags_js_1.BinTrieFlags.BRANCH_LENGTH) >> 7; /* 2..63 */
|
|
279
|
+
const firstChar = current & bin_trie_flags_js_1.BinTrieFlags.JUMP_TABLE;
|
|
280
|
+
// Fast-fail if we don't have enough remaining input for the full run (incomplete entity)
|
|
281
|
+
if (offset + runLength > input.length)
|
|
282
|
+
return -1;
|
|
283
|
+
// Verify first char
|
|
284
|
+
if (input.charCodeAt(offset) !== firstChar) {
|
|
285
|
+
return this.result === 0
|
|
286
|
+
? 0
|
|
287
|
+
: this.emitNotTerminatedNamedEntity();
|
|
288
|
+
}
|
|
289
|
+
offset++;
|
|
290
|
+
this.excess++;
|
|
291
|
+
// Remaining characters after the first
|
|
292
|
+
const remaining = runLength - 1;
|
|
293
|
+
// Iterate over packed 2-char words
|
|
294
|
+
for (let runPos = 1; runPos < runLength; runPos += 2) {
|
|
295
|
+
const packedWord = decodeTree[this.treeIndex + 1 + ((runPos - 1) >> 1)];
|
|
296
|
+
const low = packedWord & 0xff;
|
|
297
|
+
if (input.charCodeAt(offset) !== low) {
|
|
298
|
+
return this.result === 0
|
|
299
|
+
? 0
|
|
300
|
+
: this.emitNotTerminatedNamedEntity();
|
|
301
|
+
}
|
|
302
|
+
offset++;
|
|
303
|
+
this.excess++;
|
|
304
|
+
const high = (packedWord >> 8) & 0xff;
|
|
305
|
+
if (runPos + 1 < runLength) {
|
|
306
|
+
if (input.charCodeAt(offset) !== high) {
|
|
307
|
+
return this.result === 0
|
|
308
|
+
? 0
|
|
309
|
+
: this.emitNotTerminatedNamedEntity();
|
|
310
|
+
}
|
|
311
|
+
offset++;
|
|
312
|
+
this.excess++;
|
|
313
|
+
}
|
|
314
|
+
}
|
|
315
|
+
this.treeIndex += 1 + ((remaining + 1) >> 1);
|
|
316
|
+
current = decodeTree[this.treeIndex];
|
|
317
|
+
valueLength = (current & bin_trie_flags_js_1.BinTrieFlags.VALUE_LENGTH) >> 14;
|
|
318
|
+
}
|
|
319
|
+
if (offset >= input.length)
|
|
320
|
+
break;
|
|
287
321
|
const char = input.charCodeAt(offset);
|
|
322
|
+
/*
|
|
323
|
+
* Implicit semicolon handling for nodes that require a semicolon but
|
|
324
|
+
* don't have an explicit ';' branch stored in the trie. If we have
|
|
325
|
+
* a value on the current node, it requires a semicolon, and the
|
|
326
|
+
* current input character is a semicolon, emit the entity using the
|
|
327
|
+
* current node (without descending further).
|
|
328
|
+
*/
|
|
329
|
+
if (char === CharCodes.SEMI &&
|
|
330
|
+
valueLength !== 0 &&
|
|
331
|
+
(current & bin_trie_flags_js_1.BinTrieFlags.FLAG13) !== 0) {
|
|
332
|
+
return this.emitNamedEntityData(this.treeIndex, valueLength, this.consumed + this.excess);
|
|
333
|
+
}
|
|
288
334
|
this.treeIndex = determineBranch(decodeTree, current, this.treeIndex + Math.max(1, valueLength), char);
|
|
289
335
|
if (this.treeIndex < 0) {
|
|
290
336
|
return this.result === 0 ||
|
|
@@ -298,7 +344,7 @@ class EntityDecoder {
|
|
|
298
344
|
: this.emitNotTerminatedNamedEntity();
|
|
299
345
|
}
|
|
300
346
|
current = decodeTree[this.treeIndex];
|
|
301
|
-
valueLength = (current & BinTrieFlags.VALUE_LENGTH) >> 14;
|
|
347
|
+
valueLength = (current & bin_trie_flags_js_1.BinTrieFlags.VALUE_LENGTH) >> 14;
|
|
302
348
|
// If the branch is a value, store it and continue
|
|
303
349
|
if (valueLength !== 0) {
|
|
304
350
|
// If the entity is terminated by a semicolon, we are done.
|
|
@@ -306,12 +352,16 @@ class EntityDecoder {
|
|
|
306
352
|
return this.emitNamedEntityData(this.treeIndex, valueLength, this.consumed + this.excess);
|
|
307
353
|
}
|
|
308
354
|
// If we encounter a non-terminated (legacy) entity while parsing strictly, then ignore it.
|
|
309
|
-
if (this.decodeMode !== DecodingMode.Strict
|
|
355
|
+
if (this.decodeMode !== DecodingMode.Strict &&
|
|
356
|
+
(current & bin_trie_flags_js_1.BinTrieFlags.FLAG13) === 0) {
|
|
310
357
|
this.result = this.treeIndex;
|
|
311
358
|
this.consumed += this.excess;
|
|
312
359
|
this.excess = 0;
|
|
313
360
|
}
|
|
314
361
|
}
|
|
362
|
+
// Increment offset & excess for next iteration
|
|
363
|
+
offset++;
|
|
364
|
+
this.excess++;
|
|
315
365
|
}
|
|
316
366
|
return -1;
|
|
317
367
|
}
|
|
@@ -323,7 +373,7 @@ class EntityDecoder {
|
|
|
323
373
|
emitNotTerminatedNamedEntity() {
|
|
324
374
|
var _a;
|
|
325
375
|
const { result, decodeTree } = this;
|
|
326
|
-
const valueLength = (decodeTree[result] & BinTrieFlags.VALUE_LENGTH) >> 14;
|
|
376
|
+
const valueLength = (decodeTree[result] & bin_trie_flags_js_1.BinTrieFlags.VALUE_LENGTH) >> 14;
|
|
327
377
|
this.emitNamedEntityData(result, valueLength, this.consumed);
|
|
328
378
|
(_a = this.errors) === null || _a === void 0 ? void 0 : _a.missingSemicolonAfterCharacterReference();
|
|
329
379
|
return this.consumed;
|
|
@@ -340,7 +390,8 @@ class EntityDecoder {
|
|
|
340
390
|
emitNamedEntityData(result, valueLength, consumed) {
|
|
341
391
|
const { decodeTree } = this;
|
|
342
392
|
this.emitCodePoint(valueLength === 1
|
|
343
|
-
? decodeTree[result] &
|
|
393
|
+
? decodeTree[result] &
|
|
394
|
+
~(bin_trie_flags_js_1.BinTrieFlags.VALUE_LENGTH | bin_trie_flags_js_1.BinTrieFlags.FLAG13)
|
|
344
395
|
: decodeTree[result + 1], consumed);
|
|
345
396
|
if (valueLength === 3) {
|
|
346
397
|
// For multi-byte values, we need to emit the second byte.
|
|
@@ -428,8 +479,8 @@ function getDecoder(decodeTree) {
|
|
|
428
479
|
* @returns The index of the next node, or -1 if no branch is taken.
|
|
429
480
|
*/
|
|
430
481
|
function determineBranch(decodeTree, current, nodeIndex, char) {
|
|
431
|
-
const branchCount = (current & BinTrieFlags.BRANCH_LENGTH) >> 7;
|
|
432
|
-
const jumpOffset = current & BinTrieFlags.JUMP_TABLE;
|
|
482
|
+
const branchCount = (current & bin_trie_flags_js_1.BinTrieFlags.BRANCH_LENGTH) >> 7;
|
|
483
|
+
const jumpOffset = current & bin_trie_flags_js_1.BinTrieFlags.JUMP_TABLE;
|
|
433
484
|
// Case 1: Single branch encoded in jump offset
|
|
434
485
|
if (branchCount === 0) {
|
|
435
486
|
return jumpOffset !== 0 && char === jumpOffset ? nodeIndex : -1;
|
|
@@ -441,21 +492,27 @@ function determineBranch(decodeTree, current, nodeIndex, char) {
|
|
|
441
492
|
? -1
|
|
442
493
|
: decodeTree[nodeIndex + value] - 1;
|
|
443
494
|
}
|
|
444
|
-
// Case 3: Multiple branches encoded in dictionary
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
495
|
+
// Case 3: Multiple branches encoded in packed dictionary (two keys per uint16)
|
|
496
|
+
const packedKeySlots = (branchCount + 1) >> 1;
|
|
497
|
+
/*
|
|
498
|
+
* Treat packed keys as a virtual sorted array of length `branchCount`.
|
|
499
|
+
* Key(i) = low byte for even i, high byte for odd i in slot i>>1.
|
|
500
|
+
*/
|
|
501
|
+
let lo = 0;
|
|
502
|
+
let hi = branchCount - 1;
|
|
448
503
|
while (lo <= hi) {
|
|
449
504
|
const mid = (lo + hi) >>> 1;
|
|
450
|
-
const
|
|
451
|
-
|
|
505
|
+
const slot = mid >> 1;
|
|
506
|
+
const packed = decodeTree[nodeIndex + slot];
|
|
507
|
+
const midKey = (packed >> ((mid & 1) * 8)) & 0xff;
|
|
508
|
+
if (midKey < char) {
|
|
452
509
|
lo = mid + 1;
|
|
453
510
|
}
|
|
454
|
-
else if (
|
|
511
|
+
else if (midKey > char) {
|
|
455
512
|
hi = mid - 1;
|
|
456
513
|
}
|
|
457
514
|
else {
|
|
458
|
-
return decodeTree[
|
|
515
|
+
return decodeTree[nodeIndex + packedKeySlots + mid];
|
|
459
516
|
}
|
|
460
517
|
}
|
|
461
518
|
return -1;
|
|
@@ -499,13 +556,13 @@ function decodeHTMLStrict(htmlString) {
|
|
|
499
556
|
function decodeXML(xmlString) {
|
|
500
557
|
return xmlDecoder(xmlString, DecodingMode.Strict);
|
|
501
558
|
}
|
|
559
|
+
var decode_codepoint_js_2 = require("./decode-codepoint.js");
|
|
560
|
+
Object.defineProperty(exports, "decodeCodePoint", { enumerable: true, get: function () { return decode_codepoint_js_2.decodeCodePoint; } });
|
|
561
|
+
Object.defineProperty(exports, "fromCodePoint", { enumerable: true, get: function () { return decode_codepoint_js_2.fromCodePoint; } });
|
|
562
|
+
Object.defineProperty(exports, "replaceCodePoint", { enumerable: true, get: function () { return decode_codepoint_js_2.replaceCodePoint; } });
|
|
502
563
|
// Re-export for use by eg. htmlparser2
|
|
503
564
|
var decode_data_html_js_2 = require("./generated/decode-data-html.js");
|
|
504
565
|
Object.defineProperty(exports, "htmlDecodeTree", { enumerable: true, get: function () { return decode_data_html_js_2.htmlDecodeTree; } });
|
|
505
566
|
var decode_data_xml_js_2 = require("./generated/decode-data-xml.js");
|
|
506
567
|
Object.defineProperty(exports, "xmlDecodeTree", { enumerable: true, get: function () { return decode_data_xml_js_2.xmlDecodeTree; } });
|
|
507
|
-
var decode_codepoint_js_2 = require("./decode-codepoint.js");
|
|
508
|
-
Object.defineProperty(exports, "decodeCodePoint", { enumerable: true, get: function () { return decode_codepoint_js_2.decodeCodePoint; } });
|
|
509
|
-
Object.defineProperty(exports, "replaceCodePoint", { enumerable: true, get: function () { return decode_codepoint_js_2.replaceCodePoint; } });
|
|
510
|
-
Object.defineProperty(exports, "fromCodePoint", { enumerable: true, get: function () { return decode_codepoint_js_2.fromCodePoint; } });
|
|
511
568
|
//# sourceMappingURL=decode.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"decode.js","sourceRoot":"","sources":["../../src/decode.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"decode.js","sourceRoot":"","sources":["../../src/decode.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"encode.d.ts","sourceRoot":"","sources":["../../src/encode.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"encode.d.ts","sourceRoot":"","sources":["../../src/encode.ts"],"names":[],"mappings":"AAeA;;;;;;;;;;GAUG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEhD;AACD;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAExD"}
|
package/dist/commonjs/encode.js
CHANGED
|
@@ -2,9 +2,18 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.encodeHTML = encodeHTML;
|
|
4
4
|
exports.encodeNonAsciiHTML = encodeNonAsciiHTML;
|
|
5
|
-
const encode_html_js_1 = require("./generated/encode-html.js");
|
|
6
5
|
const escape_js_1 = require("./escape.js");
|
|
7
|
-
const
|
|
6
|
+
const encode_html_js_1 = require("./generated/encode-html.js");
|
|
7
|
+
/**
|
|
8
|
+
* We store the characters to consider as a compact bitset for fast lookups.
|
|
9
|
+
*/
|
|
10
|
+
const HTML_BITSET = /* #__PURE__ */ new Uint32Array([
|
|
11
|
+
5632, // Bits for 09,0A,0C
|
|
12
|
+
4227923966, // 32..63 -> 21-2D (minus space), 2E,2F,3A-3F
|
|
13
|
+
4160749569, // 64..95 -> 40, 5B-5F
|
|
14
|
+
939524097, // 96..127-> 60, 7B-7D
|
|
15
|
+
]);
|
|
16
|
+
const XML_BITSET = /* #__PURE__ */ new Uint32Array([0, escape_js_1.XML_BITSET_VALUE, 0, 0]);
|
|
8
17
|
/**
|
|
9
18
|
* Encodes all characters in the input using HTML entities. This includes
|
|
10
19
|
* characters that are valid ASCII characters in HTML documents, such as `#`.
|
|
@@ -17,7 +26,7 @@ const htmlReplacer = /[\t\n\f!-,./:-@[-`{-}\u0080-\uFFFF]/g;
|
|
|
17
26
|
* (eg. `ü`) will be used.
|
|
18
27
|
*/
|
|
19
28
|
function encodeHTML(input) {
|
|
20
|
-
return encodeHTMLTrieRe(
|
|
29
|
+
return encodeHTMLTrieRe(HTML_BITSET, input);
|
|
21
30
|
}
|
|
22
31
|
/**
|
|
23
32
|
* Encodes all non-ASCII characters, as well as characters not valid in HTML
|
|
@@ -28,46 +37,56 @@ function encodeHTML(input) {
|
|
|
28
37
|
* (eg. `ü`) will be used.
|
|
29
38
|
*/
|
|
30
39
|
function encodeNonAsciiHTML(input) {
|
|
31
|
-
return encodeHTMLTrieRe(
|
|
40
|
+
return encodeHTMLTrieRe(XML_BITSET, input);
|
|
32
41
|
}
|
|
33
|
-
function encodeHTMLTrieRe(
|
|
34
|
-
let
|
|
35
|
-
let
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
const { index } = match;
|
|
39
|
-
returnValue += input.substring(lastIndex, index);
|
|
42
|
+
function encodeHTMLTrieRe(bitset, input) {
|
|
43
|
+
let out;
|
|
44
|
+
let last = 0; // Start of the next untouched slice.
|
|
45
|
+
const { length } = input;
|
|
46
|
+
for (let index = 0; index < length; index++) {
|
|
40
47
|
const char = input.charCodeAt(index);
|
|
41
|
-
|
|
42
|
-
if (
|
|
43
|
-
|
|
44
|
-
|
|
48
|
+
// Skip ASCII characters that don't need encoding
|
|
49
|
+
if (char < 0x80 && !((bitset[char >>> 5] >>> char) & 1)) {
|
|
50
|
+
continue;
|
|
51
|
+
}
|
|
52
|
+
if (out === undefined)
|
|
53
|
+
out = input.substring(0, index);
|
|
54
|
+
else if (last !== index)
|
|
55
|
+
out += input.substring(last, index);
|
|
56
|
+
let node = encode_html_js_1.htmlTrie.get(char);
|
|
57
|
+
if (typeof node === "object") {
|
|
58
|
+
if (index + 1 < length) {
|
|
45
59
|
const nextChar = input.charCodeAt(index + 1);
|
|
46
|
-
const value = typeof next
|
|
47
|
-
? next
|
|
48
|
-
?
|
|
60
|
+
const value = typeof node.next === "number"
|
|
61
|
+
? node.next === nextChar
|
|
62
|
+
? node.nextValue
|
|
49
63
|
: undefined
|
|
50
|
-
: next.
|
|
64
|
+
: node.next.get(nextChar);
|
|
51
65
|
if (value !== undefined) {
|
|
52
|
-
|
|
53
|
-
|
|
66
|
+
out += value;
|
|
67
|
+
index++;
|
|
68
|
+
last = index + 1;
|
|
54
69
|
continue;
|
|
55
70
|
}
|
|
56
71
|
}
|
|
57
|
-
|
|
72
|
+
node = node.value;
|
|
58
73
|
}
|
|
59
|
-
|
|
60
|
-
if (next === undefined) {
|
|
74
|
+
if (node === undefined) {
|
|
61
75
|
const cp = (0, escape_js_1.getCodePoint)(input, index);
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
76
|
+
out += `&#x${cp.toString(16)};`;
|
|
77
|
+
if (cp !== char)
|
|
78
|
+
index++;
|
|
79
|
+
last = index + 1;
|
|
65
80
|
}
|
|
66
81
|
else {
|
|
67
|
-
|
|
68
|
-
|
|
82
|
+
out += node;
|
|
83
|
+
last = index + 1;
|
|
69
84
|
}
|
|
70
85
|
}
|
|
71
|
-
|
|
86
|
+
if (out === undefined)
|
|
87
|
+
return input;
|
|
88
|
+
if (last < length)
|
|
89
|
+
out += input.substr(last);
|
|
90
|
+
return out;
|
|
72
91
|
}
|
|
73
92
|
//# sourceMappingURL=encode.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"encode.js","sourceRoot":"","sources":["../../src/encode.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"encode.js","sourceRoot":"","sources":["../../src/encode.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +1,14 @@
|
|
|
1
|
-
export declare const xmlReplacer: RegExp;
|
|
2
1
|
export declare const getCodePoint: (c: string, index: number) => number;
|
|
2
|
+
/**
|
|
3
|
+
* Bitset for ASCII characters that need to be escaped in XML.
|
|
4
|
+
*/
|
|
5
|
+
export declare const XML_BITSET_VALUE = 1342177476;
|
|
3
6
|
/**
|
|
4
7
|
* Encodes all non-ASCII characters, as well as characters not valid in XML
|
|
5
|
-
* documents using XML entities.
|
|
8
|
+
* documents using XML entities. Uses a fast bitset scan instead of RegExp.
|
|
6
9
|
*
|
|
7
|
-
* If a character has no equivalent entity, a
|
|
8
|
-
*
|
|
10
|
+
* If a character has no equivalent entity, a numeric hexadecimal reference
|
|
11
|
+
* (eg. `ü`) will be used.
|
|
9
12
|
*/
|
|
10
13
|
export declare function encodeXML(input: string): string;
|
|
11
14
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"escape.d.ts","sourceRoot":"","sources":["../../src/escape.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"escape.d.ts","sourceRoot":"","sources":["../../src/escape.ts"],"names":[],"mappings":"AASA,eAAO,MAAM,YAAY,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,MAWoB,CAAC;AAE9E;;GAEG;AACH,eAAO,MAAM,gBAAgB,aAAgB,CAAC;AAE9C;;;;;;GAMG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAoC/C;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,MAAM,EAAE,OAAO,SAAqB,CAAC;AAqClD;;;;;;GAMG;AACH,eAAO,MAAM,UAAU,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAG1C,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,eAAe,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAQ3C,CAAC;AAEN;;;;;GAKG;AACH,eAAO,MAAM,UAAU,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAQ1C,CAAC"}
|