entities 4.2.0 → 4.4.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 (67) hide show
  1. package/lib/decode.d.ts +21 -2
  2. package/lib/decode.d.ts.map +1 -1
  3. package/lib/decode.js +44 -35
  4. package/lib/decode.js.map +1 -1
  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 +3 -3
  8. package/lib/decode_codepoint.js.map +1 -1
  9. package/lib/encode.d.ts +11 -49
  10. package/lib/encode.d.ts.map +1 -1
  11. package/lib/encode.js +56 -104
  12. package/lib/encode.js.map +1 -1
  13. package/lib/escape.d.ts +43 -0
  14. package/lib/escape.d.ts.map +1 -0
  15. package/lib/escape.js +112 -0
  16. package/lib/escape.js.map +1 -0
  17. package/lib/esm/decode.d.ts +21 -2
  18. package/lib/esm/decode.d.ts.map +1 -1
  19. package/lib/esm/decode.js +41 -10
  20. package/lib/esm/decode.js.map +1 -1
  21. package/lib/esm/decode_codepoint.d.ts +1 -0
  22. package/lib/esm/decode_codepoint.d.ts.map +1 -1
  23. package/lib/esm/decode_codepoint.js +1 -1
  24. package/lib/esm/decode_codepoint.js.map +1 -1
  25. package/lib/esm/encode.d.ts +11 -49
  26. package/lib/esm/encode.d.ts.map +1 -1
  27. package/lib/esm/encode.js +50 -100
  28. package/lib/esm/encode.js.map +1 -1
  29. package/lib/esm/escape.d.ts +43 -0
  30. package/lib/esm/escape.d.ts.map +1 -0
  31. package/lib/esm/escape.js +106 -0
  32. package/lib/esm/escape.js.map +1 -0
  33. package/lib/esm/generated/decode-data-html.d.ts.map +1 -1
  34. package/lib/esm/generated/decode-data-html.js +4 -1
  35. package/lib/esm/generated/decode-data-html.js.map +1 -1
  36. package/lib/esm/generated/decode-data-xml.d.ts.map +1 -1
  37. package/lib/esm/generated/decode-data-xml.js +4 -1
  38. package/lib/esm/generated/decode-data-xml.js.map +1 -1
  39. package/lib/esm/generated/encode-html.d.ts.map +1 -1
  40. package/lib/esm/generated/encode-html.js +7 -1
  41. package/lib/esm/generated/encode-html.js.map +1 -1
  42. package/lib/esm/index.d.ts +3 -2
  43. package/lib/esm/index.d.ts.map +1 -1
  44. package/lib/esm/index.js +5 -3
  45. package/lib/esm/index.js.map +1 -1
  46. package/lib/generated/decode-data-html.d.ts.map +1 -1
  47. package/lib/generated/decode-data-html.js +5 -2
  48. package/lib/generated/decode-data-html.js.map +1 -1
  49. package/lib/generated/decode-data-xml.d.ts.map +1 -1
  50. package/lib/generated/decode-data-xml.js +5 -2
  51. package/lib/generated/decode-data-xml.js.map +1 -1
  52. package/lib/generated/encode-html.d.ts.map +1 -1
  53. package/lib/generated/encode-html.js +7 -1
  54. package/lib/generated/encode-html.js.map +1 -1
  55. package/lib/index.d.ts +3 -2
  56. package/lib/index.d.ts.map +1 -1
  57. package/lib/index.js +13 -11
  58. package/lib/index.js.map +1 -1
  59. package/package.json +17 -14
  60. package/lib/encode-trie.d.ts +0 -3
  61. package/lib/encode-trie.d.ts.map +0 -1
  62. package/lib/encode-trie.js +0 -66
  63. package/lib/encode-trie.js.map +0 -1
  64. package/lib/esm/encode-trie.d.ts +0 -3
  65. package/lib/esm/encode-trie.d.ts.map +0 -1
  66. package/lib/esm/encode-trie.js +0 -57
  67. package/lib/esm/encode-trie.js.map +0 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "entities",
3
- "version": "4.2.0",
3
+ "version": "4.4.0",
4
4
  "description": "Encode & decode XML and HTML entities with ease & speed",
5
5
  "author": "Felix Boehm <me@feedic.com>",
6
6
  "funding": "https://github.com/fb55/entities?sponsor=1",
@@ -27,6 +27,10 @@
27
27
  "./lib/decode.js": {
28
28
  "require": "./lib/decode.js",
29
29
  "import": "./lib/esm/decode.js"
30
+ },
31
+ "./lib/escape.js": {
32
+ "require": "./lib/escape.js",
33
+ "import": "./lib/esm/escape.js"
30
34
  }
31
35
  },
32
36
  "files": [
@@ -36,18 +40,18 @@
36
40
  "node": ">=0.12"
37
41
  },
38
42
  "devDependencies": {
39
- "@types/jest": "^27.4.1",
40
- "@types/node": "^17.0.23",
41
- "@typescript-eslint/eslint-plugin": "^5.18.0",
42
- "@typescript-eslint/parser": "^5.18.0",
43
- "eslint": "^8.12.0",
43
+ "@types/jest": "^28.1.8",
44
+ "@types/node": "^18.7.14",
45
+ "@typescript-eslint/eslint-plugin": "^5.36.1",
46
+ "@typescript-eslint/parser": "^5.36.1",
47
+ "eslint": "^8.23.0",
44
48
  "eslint-config-prettier": "^8.5.0",
45
49
  "eslint-plugin-node": "^11.1.0",
46
- "jest": "^27.5.1",
47
- "prettier": "^2.6.2",
48
- "ts-jest": "^27.1.4",
49
- "typedoc": "^0.22.13",
50
- "typescript": "^4.6.3"
50
+ "jest": "^28.1.3",
51
+ "prettier": "^2.7.1",
52
+ "ts-jest": "^28.0.8",
53
+ "typedoc": "^0.23.12",
54
+ "typescript": "^4.8.2"
51
55
  },
52
56
  "scripts": {
53
57
  "test": "npm run test:jest && npm run lint",
@@ -60,8 +64,8 @@
60
64
  "format:prettier": "npm run prettier -- --write",
61
65
  "prettier": "prettier '**/*.{ts,md,json,yml}'",
62
66
  "build": "npm run build:cjs && npm run build:esm",
63
- "build:cjs": "tsc",
64
- "build:esm": "tsc --module esnext --target es2019 --outDir lib/esm && echo '{\"type\":\"module\"}' > lib/esm/package.json",
67
+ "build:cjs": "tsc --sourceRoot https://raw.githubusercontent.com/fb55/entities/$(git rev-parse HEAD)/src/",
68
+ "build:esm": "npm run build:cjs -- --module esnext --target es2019 --outDir lib/esm && echo '{\"type\":\"module\"}' > lib/esm/package.json",
65
69
  "build:docs": "typedoc --hideGenerator src/index.ts",
66
70
  "build:trie": "ts-node scripts/write-decode-map.ts",
67
71
  "build:encode-trie": "ts-node scripts/write-encode-map.ts",
@@ -74,7 +78,6 @@
74
78
  "license": "BSD-2-Clause",
75
79
  "jest": {
76
80
  "preset": "ts-jest",
77
- "testEnvironment": "node",
78
81
  "coverageProvider": "v8",
79
82
  "moduleNameMapper": {
80
83
  "^(.*)\\.js$": "$1"
@@ -1,3 +0,0 @@
1
- export declare const getCodePoint: (str: string, index: number) => number;
2
- export declare function encodeHTMLTrieRe(regExp: RegExp, str: string): string;
3
- //# sourceMappingURL=encode-trie.d.ts.map
@@ -1 +0,0 @@
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;AAExC,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CA6CpE"}
@@ -1,66 +0,0 @@
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.encodeHTMLTrieRe = exports.getCodePoint = void 0;
7
- var encode_html_js_1 = __importDefault(require("./generated/encode-html.js"));
8
- function isHighSurrogate(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 isHighSurrogate(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
- function encodeHTMLTrieRe(regExp, str) {
26
- var ret = "";
27
- var lastIdx = 0;
28
- var match;
29
- while ((match = regExp.exec(str)) !== null) {
30
- var i = match.index;
31
- ret += str.substring(lastIdx, i);
32
- var char = str.charCodeAt(i);
33
- var next = encode_html_js_1.default.get(char);
34
- if (typeof next === "object") {
35
- // We are in a branch. Try to match the next char.
36
- if (i + 1 < str.length) {
37
- var nextChar = str.charCodeAt(i + 1);
38
- var value = typeof next.n === "number"
39
- ? next.n === nextChar
40
- ? next.o
41
- : undefined
42
- : next.n.get(nextChar);
43
- if (value !== undefined) {
44
- ret += value;
45
- lastIdx = regExp.lastIndex += 1;
46
- continue;
47
- }
48
- }
49
- next = next.v;
50
- }
51
- // We might have a tree node without a value; skip and use a numeric entitiy.
52
- if (next !== undefined) {
53
- ret += next;
54
- lastIdx = i + 1;
55
- }
56
- else {
57
- var cp = (0, exports.getCodePoint)(str, i);
58
- ret += "&#x".concat(cp.toString(16), ";");
59
- // Increase by 1 if we have a surrogate pair
60
- lastIdx = regExp.lastIndex += Number(cp !== char);
61
- }
62
- }
63
- return ret + str.substr(lastIdx);
64
- }
65
- exports.encodeHTMLTrieRe = encodeHTMLTrieRe;
66
- //# sourceMappingURL=encode-trie.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"encode-trie.js","sourceRoot":"","sources":["../src/encode-trie.ts"],"names":[],"mappings":";;;;;;AAAA,8EAAkD;AAOlD,SAAS,eAAe,CAAC,CAAS;IAC9B,OAAO,CAAC,CAAC,mBAAiB,CAAC,qBAAmB,CAAC;AACnD,CAAC;AAED,yDAAyD;AAC5C,QAAA,YAAY;AACrB,uEAAuE;AACvE,MAAM,CAAC,SAAS,CAAC,WAAW,IAAI,IAAI;IAChC,CAAC,CAAC,UAAC,GAAW,EAAE,KAAa,IAAa,OAAA,GAAG,CAAC,WAAW,CAAC,KAAK,CAAE,EAAvB,CAAuB;IACjE,CAAC,CAAC,uEAAuE;QACvE,UAAC,CAAS,EAAE,KAAa;YACrB,OAAA,eAAe,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;gBAChC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,mBAAiB,CAAC,GAAG,KAAK;oBAC9C,CAAC,CAAC,UAAU,CAAC,KAAK,GAAG,CAAC,CAAC;oBACvB,MAAM;oBACN,OAAO;gBACT,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC;QALzB,CAKyB,CAAC;AAExC,SAAgB,gBAAgB,CAAC,MAAc,EAAE,GAAW;IACxD,IAAI,GAAG,GAAG,EAAE,CAAC;IACb,IAAI,OAAO,GAAG,CAAC,CAAC;IAChB,IAAI,KAAK,CAAC;IAEV,OAAO,CAAC,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,IAAI,EAAE;QACxC,IAAM,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC;QACtB,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QACjC,IAAM,IAAI,GAAG,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QAC/B,IAAI,IAAI,GAAG,wBAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAE9B,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;YAC1B,kDAAkD;YAClD,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE;gBACpB,IAAM,QAAQ,GAAG,GAAG,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;gBACvC,IAAM,KAAK,GACP,OAAO,IAAI,CAAC,CAAC,KAAK,QAAQ;oBACtB,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,QAAQ;wBACjB,CAAC,CAAC,IAAI,CAAC,CAAC;wBACR,CAAC,CAAC,SAAS;oBACf,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;gBAE/B,IAAI,KAAK,KAAK,SAAS,EAAE;oBACrB,GAAG,IAAI,KAAK,CAAC;oBACb,OAAO,GAAG,MAAM,CAAC,SAAS,IAAI,CAAC,CAAC;oBAChC,SAAS;iBACZ;aACJ;YAED,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC;SACjB;QAED,6EAA6E;QAC7E,IAAI,IAAI,KAAK,SAAS,EAAE;YACpB,GAAG,IAAI,IAAI,CAAC;YACZ,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC;SACnB;aAAM;YACH,IAAM,EAAE,GAAG,IAAA,oBAAY,EAAC,GAAG,EAAE,CAAC,CAAC,CAAC;YAChC,GAAG,IAAI,aAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,MAAG,CAAC;YAChC,4CAA4C;YAC5C,OAAO,GAAG,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,EAAE,KAAK,IAAI,CAAC,CAAC;SACrD;KACJ;IAED,OAAO,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;AACrC,CAAC;AA7CD,4CA6CC"}
@@ -1,3 +0,0 @@
1
- export declare const getCodePoint: (str: string, index: number) => number;
2
- export declare function encodeHTMLTrieRe(regExp: RegExp, str: string): string;
3
- //# sourceMappingURL=encode-trie.d.ts.map
@@ -1 +0,0 @@
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;AAExC,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CA6CpE"}
@@ -1,57 +0,0 @@
1
- import htmlTrie from "./generated/encode-html.js";
2
- function isHighSurrogate(c) {
3
- return (c & 64512 /* Mask */) === 55296 /* High */;
4
- }
5
- // For compatibility with node < 4, we wrap `codePointAt`
6
- export const getCodePoint =
7
- // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
8
- String.prototype.codePointAt != null
9
- ? (str, index) => str.codePointAt(index)
10
- : // http://mathiasbynens.be/notes/javascript-encoding#surrogate-formulae
11
- (c, index) => isHighSurrogate(c.charCodeAt(index))
12
- ? (c.charCodeAt(index) - 55296 /* High */) * 0x400 +
13
- c.charCodeAt(index + 1) -
14
- 0xdc00 +
15
- 0x10000
16
- : c.charCodeAt(index);
17
- export function encodeHTMLTrieRe(regExp, str) {
18
- let ret = "";
19
- let lastIdx = 0;
20
- let match;
21
- while ((match = regExp.exec(str)) !== null) {
22
- const i = match.index;
23
- ret += str.substring(lastIdx, i);
24
- const char = str.charCodeAt(i);
25
- let next = htmlTrie.get(char);
26
- if (typeof next === "object") {
27
- // We are in a branch. Try to match the next char.
28
- if (i + 1 < str.length) {
29
- const nextChar = str.charCodeAt(i + 1);
30
- const value = typeof next.n === "number"
31
- ? next.n === nextChar
32
- ? next.o
33
- : undefined
34
- : next.n.get(nextChar);
35
- if (value !== undefined) {
36
- ret += value;
37
- lastIdx = regExp.lastIndex += 1;
38
- continue;
39
- }
40
- }
41
- next = next.v;
42
- }
43
- // We might have a tree node without a value; skip and use a numeric entitiy.
44
- if (next !== undefined) {
45
- ret += next;
46
- lastIdx = i + 1;
47
- }
48
- else {
49
- const cp = getCodePoint(str, i);
50
- ret += `&#x${cp.toString(16)};`;
51
- // Increase by 1 if we have a surrogate pair
52
- lastIdx = regExp.lastIndex += Number(cp !== char);
53
- }
54
- }
55
- return ret + str.substr(lastIdx);
56
- }
57
- //# sourceMappingURL=encode-trie.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"encode-trie.js","sourceRoot":"","sources":["../../src/encode-trie.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,4BAA4B,CAAC;AAOlD,SAAS,eAAe,CAAC,CAAS;IAC9B,OAAO,CAAC,CAAC,mBAAiB,CAAC,qBAAmB,CAAC;AACnD,CAAC;AAED,yDAAyD;AACzD,MAAM,CAAC,MAAM,YAAY;AACrB,uEAAuE;AACvE,MAAM,CAAC,SAAS,CAAC,WAAW,IAAI,IAAI;IAChC,CAAC,CAAC,CAAC,GAAW,EAAE,KAAa,EAAU,EAAE,CAAC,GAAG,CAAC,WAAW,CAAC,KAAK,CAAE;IACjE,CAAC,CAAC,uEAAuE;QACvE,CAAC,CAAS,EAAE,KAAa,EAAU,EAAE,CACjC,eAAe,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;YAChC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,mBAAiB,CAAC,GAAG,KAAK;gBAC9C,CAAC,CAAC,UAAU,CAAC,KAAK,GAAG,CAAC,CAAC;gBACvB,MAAM;gBACN,OAAO;YACT,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;AAExC,MAAM,UAAU,gBAAgB,CAAC,MAAc,EAAE,GAAW;IACxD,IAAI,GAAG,GAAG,EAAE,CAAC;IACb,IAAI,OAAO,GAAG,CAAC,CAAC;IAChB,IAAI,KAAK,CAAC;IAEV,OAAO,CAAC,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,IAAI,EAAE;QACxC,MAAM,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC;QACtB,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QACjC,MAAM,IAAI,GAAG,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QAC/B,IAAI,IAAI,GAAG,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAE9B,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;YAC1B,kDAAkD;YAClD,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE;gBACpB,MAAM,QAAQ,GAAG,GAAG,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;gBACvC,MAAM,KAAK,GACP,OAAO,IAAI,CAAC,CAAC,KAAK,QAAQ;oBACtB,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,QAAQ;wBACjB,CAAC,CAAC,IAAI,CAAC,CAAC;wBACR,CAAC,CAAC,SAAS;oBACf,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;gBAE/B,IAAI,KAAK,KAAK,SAAS,EAAE;oBACrB,GAAG,IAAI,KAAK,CAAC;oBACb,OAAO,GAAG,MAAM,CAAC,SAAS,IAAI,CAAC,CAAC;oBAChC,SAAS;iBACZ;aACJ;YAED,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC;SACjB;QAED,6EAA6E;QAC7E,IAAI,IAAI,KAAK,SAAS,EAAE;YACpB,GAAG,IAAI,IAAI,CAAC;YACZ,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC;SACnB;aAAM;YACH,MAAM,EAAE,GAAG,YAAY,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;YAChC,GAAG,IAAI,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC;YAChC,4CAA4C;YAC5C,OAAO,GAAG,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,EAAE,KAAK,IAAI,CAAC,CAAC;SACrD;KACJ;IAED,OAAO,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;AACrC,CAAC"}