@qevm/strings 5.7.0 → 5.7.2
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/README.md +3 -4
- package/lib/_version.d.ts +1 -1
- package/lib/_version.js +1 -1
- package/lib/bytes32.d.ts.map +1 -1
- package/lib/bytes32.js +6 -6
- package/lib/bytes32.js.map +1 -1
- package/lib/idna.d.ts.map +1 -1
- package/lib/idna.js +48 -38
- package/lib/idna.js.map +1 -1
- package/lib/index.d.ts +1 -1
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +3 -3
- package/lib/index.js.map +1 -1
- package/lib/utf8.d.ts.map +1 -1
- package/lib/utf8.js +60 -52
- package/lib/utf8.js.map +1 -1
- package/package.json +31 -27
- package/src.ts/_version.ts +1 -1
- package/src.ts/bytes32.ts +14 -9
- package/src.ts/idna.ts +112 -58
- package/src.ts/index.ts +12 -7
- package/src.ts/utf8.ts +173 -85
package/README.md
CHANGED
|
@@ -1,17 +1,16 @@
|
|
|
1
1
|
String Manipulation Utilities
|
|
2
2
|
=============================
|
|
3
3
|
|
|
4
|
-
This sub-module is part of the [ethers project](https://github.com/ethers-io/ethers.js).
|
|
4
|
+
This sub-module is part of the qethers, a fork of [ethers project](https://github.com/ethers-io/ethers.js).
|
|
5
5
|
|
|
6
6
|
It contains functions to safely convert between UTF-8 data, strings and Bytes32 strings
|
|
7
7
|
(i.e. "short strings").
|
|
8
8
|
|
|
9
|
-
For more information, see the [documentation](https://docs.ethers.io/v5/api/utils/strings/).
|
|
10
9
|
|
|
11
10
|
Importing
|
|
12
11
|
---------
|
|
13
12
|
|
|
14
|
-
Most users will prefer to use the [umbrella package](https://www.npmjs.com/package/
|
|
13
|
+
Most users will prefer to use the [umbrella package](https://www.npmjs.com/package/@qevm/qethers),
|
|
15
14
|
but for those with more specific needs, individual components can be imported.
|
|
16
15
|
|
|
17
16
|
```javascript
|
|
@@ -37,7 +36,7 @@ const {
|
|
|
37
36
|
|
|
38
37
|
Utf8ErrorFunc,
|
|
39
38
|
|
|
40
|
-
} = require("@
|
|
39
|
+
} = require("@qevm/strings");
|
|
41
40
|
```
|
|
42
41
|
|
|
43
42
|
|
package/lib/_version.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare const version = "strings/5.7.
|
|
1
|
+
export declare const version = "strings/5.7.2";
|
|
2
2
|
//# sourceMappingURL=_version.d.ts.map
|
package/lib/_version.js
CHANGED
package/lib/bytes32.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bytes32.d.ts","sourceRoot":"","sources":["../src.ts/bytes32.ts"],"names":[],"mappings":"AAGA,OAAO,EAAY,SAAS,EAAmB,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"bytes32.d.ts","sourceRoot":"","sources":["../src.ts/bytes32.ts"],"names":[],"mappings":"AAGA,OAAO,EAAY,SAAS,EAAmB,MAAM,aAAa,CAAC;AAInE,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAWxD;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,SAAS,GAAG,MAAM,CAmB3D"}
|
package/lib/bytes32.js
CHANGED
|
@@ -2,12 +2,12 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.formatBytes32String = formatBytes32String;
|
|
4
4
|
exports.parseBytes32String = parseBytes32String;
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
5
|
+
const constants_1 = require("@qevm/constants");
|
|
6
|
+
const bytes_1 = require("@qevm/bytes");
|
|
7
|
+
const utf8_1 = require("./utf8");
|
|
8
8
|
function formatBytes32String(text) {
|
|
9
9
|
// Get the bytes
|
|
10
|
-
|
|
10
|
+
const bytes = (0, utf8_1.toUtf8Bytes)(text);
|
|
11
11
|
// Check we have room for null-termination
|
|
12
12
|
if (bytes.length > 31) {
|
|
13
13
|
throw new Error("bytes32 string must be less than 32 bytes");
|
|
@@ -16,7 +16,7 @@ function formatBytes32String(text) {
|
|
|
16
16
|
return (0, bytes_1.hexlify)((0, bytes_1.concat)([bytes, constants_1.HashZero]).slice(0, 32));
|
|
17
17
|
}
|
|
18
18
|
function parseBytes32String(bytes) {
|
|
19
|
-
|
|
19
|
+
const data = (0, bytes_1.arrayify)(bytes);
|
|
20
20
|
// Must be 32 bytes with a null-termination
|
|
21
21
|
if (data.length !== 32) {
|
|
22
22
|
throw new Error("invalid bytes32 - not 32 bytes long");
|
|
@@ -25,7 +25,7 @@ function parseBytes32String(bytes) {
|
|
|
25
25
|
throw new Error("invalid bytes32 string - no null terminator");
|
|
26
26
|
}
|
|
27
27
|
// Find the null termination
|
|
28
|
-
|
|
28
|
+
let length = 31;
|
|
29
29
|
while (data[length - 1] === 0) {
|
|
30
30
|
length--;
|
|
31
31
|
}
|
package/lib/bytes32.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bytes32.js","sourceRoot":"","sources":["../src.ts/bytes32.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;;
|
|
1
|
+
{"version":3,"file":"bytes32.js","sourceRoot":"","sources":["../src.ts/bytes32.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAOb,kDAWC;AAED,gDAmBC;AArCD,+CAA2C;AAC3C,uCAAmE;AAEnE,iCAAmD;AAEnD,SAAgB,mBAAmB,CAAC,IAAY;IAC5C,gBAAgB;IAChB,MAAM,KAAK,GAAG,IAAA,kBAAW,EAAC,IAAI,CAAC,CAAC;IAEhC,0CAA0C;IAC1C,IAAI,KAAK,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC;QACpB,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;IACjE,CAAC;IAED,wCAAwC;IACxC,OAAO,IAAA,eAAO,EAAC,IAAA,cAAM,EAAC,CAAC,KAAK,EAAE,oBAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;AAC3D,CAAC;AAED,SAAgB,kBAAkB,CAAC,KAAgB;IAC/C,MAAM,IAAI,GAAG,IAAA,gBAAQ,EAAC,KAAK,CAAC,CAAC;IAE7B,2CAA2C;IAC3C,IAAI,IAAI,CAAC,MAAM,KAAK,EAAE,EAAE,CAAC;QACrB,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;IAC3D,CAAC;IACD,IAAI,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC;QACjB,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;IACnE,CAAC;IAED,4BAA4B;IAC5B,IAAI,MAAM,GAAG,EAAE,CAAC;IAChB,OAAO,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC;QAC5B,MAAM,EAAE,CAAC;IACb,CAAC;IAED,6BAA6B;IAC7B,OAAO,IAAA,mBAAY,EAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;AAC/C,CAAC"}
|
package/lib/idna.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"idna.d.ts","sourceRoot":"","sources":["../src.ts/idna.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"idna.d.ts","sourceRoot":"","sources":["../src.ts/idna.ts"],"names":[],"mappings":"AAmKA,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAE3D;AAED,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,CAsBjE;AAED,wBAAgB,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAE1D;AAED,wBAAgB,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAiE9C"}
|
package/lib/idna.js
CHANGED
|
@@ -4,51 +4,55 @@ exports._nameprepTableA1 = _nameprepTableA1;
|
|
|
4
4
|
exports._nameprepTableB2 = _nameprepTableB2;
|
|
5
5
|
exports._nameprepTableC = _nameprepTableC;
|
|
6
6
|
exports.nameprep = nameprep;
|
|
7
|
-
|
|
7
|
+
const utf8_1 = require("./utf8");
|
|
8
8
|
function bytes2(data) {
|
|
9
|
-
if (
|
|
9
|
+
if (data.length % 4 !== 0) {
|
|
10
10
|
throw new Error("bad data");
|
|
11
11
|
}
|
|
12
|
-
|
|
13
|
-
for (
|
|
12
|
+
let result = [];
|
|
13
|
+
for (let i = 0; i < data.length; i += 4) {
|
|
14
14
|
result.push(parseInt(data.substring(i, i + 4), 16));
|
|
15
15
|
}
|
|
16
16
|
return result;
|
|
17
17
|
}
|
|
18
18
|
function createTable(data, func) {
|
|
19
19
|
if (!func) {
|
|
20
|
-
func = function (value) {
|
|
20
|
+
func = function (value) {
|
|
21
|
+
return [parseInt(value, 16)];
|
|
22
|
+
};
|
|
21
23
|
}
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
data.split(",").forEach(
|
|
25
|
-
|
|
24
|
+
let lo = 0;
|
|
25
|
+
let result = {};
|
|
26
|
+
data.split(",").forEach((pair) => {
|
|
27
|
+
let comps = pair.split(":");
|
|
26
28
|
lo += parseInt(comps[0], 16);
|
|
27
29
|
result[lo] = func(comps[1]);
|
|
28
30
|
});
|
|
29
31
|
return result;
|
|
30
32
|
}
|
|
31
33
|
function createRangeTable(data) {
|
|
32
|
-
|
|
33
|
-
return data.split(",").map(
|
|
34
|
-
|
|
34
|
+
let hi = 0;
|
|
35
|
+
return data.split(",").map((v) => {
|
|
36
|
+
let comps = v.split("-");
|
|
35
37
|
if (comps.length === 1) {
|
|
36
38
|
comps[1] = "0";
|
|
37
39
|
}
|
|
38
40
|
else if (comps[1] === "") {
|
|
39
41
|
comps[1] = "1";
|
|
40
42
|
}
|
|
41
|
-
|
|
43
|
+
let lo = hi + parseInt(comps[0], 16);
|
|
42
44
|
hi = parseInt(comps[1], 16);
|
|
43
45
|
return { l: lo, h: hi };
|
|
44
46
|
});
|
|
45
47
|
}
|
|
46
48
|
function matchMap(value, ranges) {
|
|
47
|
-
|
|
48
|
-
for (
|
|
49
|
-
|
|
49
|
+
let lo = 0;
|
|
50
|
+
for (let i = 0; i < ranges.length; i++) {
|
|
51
|
+
let range = ranges[i];
|
|
50
52
|
lo += range.l;
|
|
51
|
-
if (value >= lo &&
|
|
53
|
+
if (value >= lo &&
|
|
54
|
+
value <= lo + range.h &&
|
|
55
|
+
(value - lo) % (range.d || 1) === 0) {
|
|
52
56
|
if (range.e && range.e.indexOf(value - lo) !== -1) {
|
|
53
57
|
continue;
|
|
54
58
|
}
|
|
@@ -57,10 +61,12 @@ function matchMap(value, ranges) {
|
|
|
57
61
|
}
|
|
58
62
|
return null;
|
|
59
63
|
}
|
|
60
|
-
|
|
64
|
+
const Table_A_1_ranges = createRangeTable("221,13-1b,5f-,40-10,51-f,11-3,3-3,2-2,2-4,8,2,15,2d,28-8,88,48,27-,3-5,11-20,27-,8,28,3-5,12,18,b-a,1c-4,6-16,2-d,2-2,2,1b-4,17-9,8f-,10,f,1f-2,1c-34,33-14e,4,36-,13-,6-2,1a-f,4,9-,3-,17,8,2-2,5-,2,8-,3-,4-8,2-3,3,6-,16-6,2-,7-3,3-,17,8,3,3,3-,2,6-3,3-,4-a,5,2-6,10-b,4,8,2,4,17,8,3,6-,b,4,4-,2-e,2-4,b-10,4,9-,3-,17,8,3-,5-,9-2,3-,4-7,3-3,3,4-3,c-10,3,7-2,4,5-2,3,2,3-2,3-2,4-2,9,4-3,6-2,4,5-8,2-e,d-d,4,9,4,18,b,6-3,8,4,5-6,3-8,3-3,b-11,3,9,4,18,b,6-3,8,4,5-6,3-6,2,3-3,b-11,3,9,4,18,11-3,7-,4,5-8,2-7,3-3,b-11,3,13-2,19,a,2-,8-2,2-3,7,2,9-11,4-b,3b-3,1e-24,3,2-,3,2-,2-5,5,8,4,2,2-,3,e,4-,6,2,7-,b-,3-21,49,23-5,1c-3,9,25,10-,2-2f,23,6,3,8-2,5-5,1b-45,27-9,2a-,2-3,5b-4,45-4,53-5,8,40,2,5-,8,2,5-,28,2,5-,20,2,5-,8,2,5-,8,8,18,20,2,5-,8,28,14-5,1d-22,56-b,277-8,1e-2,52-e,e,8-a,18-8,15-b,e,4,3-b,5e-2,b-15,10,b-5,59-7,2b-555,9d-3,5b-5,17-,7-,27-,7-,9,2,2,2,20-,36,10,f-,7,14-,4,a,54-3,2-6,6-5,9-,1c-10,13-1d,1c-14,3c-,10-6,32-b,240-30,28-18,c-14,a0,115-,3,66-,b-76,5,5-,1d,24,2,5-2,2,8-,35-2,19,f-10,1d-3,311-37f,1b,5a-b,d7-19,d-3,41,57-,68-4,29-3,5f,29-37,2e-2,25-c,2c-2,4e-3,30,78-3,64-,20,19b7-49,51a7-59,48e-2,38-738,2ba5-5b,222f-,3c-94,8-b,6-4,1b,6,2,3,3,6d-20,16e-f,41-,37-7,2e-2,11-f,5-b,18-,b,14,5-3,6,88-,2,bf-2,7-,7-,7-,4-2,8,8-9,8-2ff,20,5-b,1c-b4,27-,27-cbb1,f7-9,28-2,b5-221,56,48,3-,2-,3-,5,d,2,5,3,42,5-,9,8,1d,5,6,2-2,8,153-3,123-3,33-27fd,a6da-5128,21f-5df,3-fffd,3-fffd,3-fffd,3-fffd,3-fffd,3-fffd,3-fffd,3-fffd,3-fffd,3-fffd,3-fffd,3,2-1d,61-ff7d");
|
|
61
65
|
// @TODO: Make this relative...
|
|
62
|
-
|
|
63
|
-
|
|
66
|
+
const Table_B_1_flags = "ad,34f,1806,180b,180c,180d,200b,200c,200d,2060,feff"
|
|
67
|
+
.split(",")
|
|
68
|
+
.map((v) => parseInt(v, 16));
|
|
69
|
+
const Table_B_2_ranges = [
|
|
64
70
|
{ h: 25, s: 32, l: 65 },
|
|
65
71
|
{ h: 30, s: 32, e: [23], l: 127 },
|
|
66
72
|
{ h: 54, s: 1, e: [48], l: 64, d: 2 },
|
|
@@ -102,15 +108,17 @@ var Table_B_2_ranges = [
|
|
|
102
108
|
{ h: 24, s: -119601, e: [17], l: 58 },
|
|
103
109
|
{ h: 24, s: -119659, e: [17], l: 58 },
|
|
104
110
|
{ h: 24, s: -119717, e: [17], l: 58 },
|
|
105
|
-
{ h: 24, s: -119775, e: [17], l: 58 }
|
|
111
|
+
{ h: 24, s: -119775, e: [17], l: 58 },
|
|
106
112
|
];
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
113
|
+
const Table_B_2_lut_abs = createTable("b5:3bc,c3:ff,7:73,2:253,5:254,3:256,1:257,5:259,1:25b,3:260,1:263,2:269,1:268,5:26f,1:272,2:275,7:280,3:283,5:288,3:28a,1:28b,5:292,3f:195,1:1bf,29:19e,125:3b9,8b:3b2,1:3b8,1:3c5,3:3c6,1:3c0,1a:3ba,1:3c1,1:3c3,2:3b8,1:3b5,1bc9:3b9,1c:1f76,1:1f77,f:1f7a,1:1f7b,d:1f78,1:1f79,1:1f7c,1:1f7d,107:63,5:25b,4:68,1:68,1:68,3:69,1:69,1:6c,3:6e,4:70,1:71,1:72,1:72,1:72,7:7a,2:3c9,2:7a,2:6b,1:e5,1:62,1:63,3:65,1:66,2:6d,b:3b3,1:3c0,6:64,1b574:3b8,1a:3c3,20:3b8,1a:3c3,20:3b8,1a:3c3,20:3b8,1a:3c3,20:3b8,1a:3c3");
|
|
114
|
+
const Table_B_2_lut_rel = createTable("179:1,2:1,2:1,5:1,2:1,a:4f,a:1,8:1,2:1,2:1,3:1,5:1,3:1,4:1,2:1,3:1,4:1,8:2,1:1,2:2,1:1,2:2,27:2,195:26,2:25,1:25,1:25,2:40,2:3f,1:3f,33:1,11:-6,1:-9,1ac7:-3a,6d:-8,1:-8,1:-8,1:-8,1:-8,1:-8,1:-8,1:-8,9:-8,1:-8,1:-8,1:-8,1:-8,1:-8,b:-8,1:-8,1:-8,1:-8,1:-8,1:-8,1:-8,1:-8,9:-8,1:-8,1:-8,1:-8,1:-8,1:-8,1:-8,1:-8,9:-8,1:-8,1:-8,1:-8,1:-8,1:-8,c:-8,2:-8,2:-8,2:-8,9:-8,1:-8,1:-8,1:-8,1:-8,1:-8,1:-8,1:-8,49:-8,1:-8,1:-4a,1:-4a,d:-56,1:-56,1:-56,1:-56,d:-8,1:-8,f:-8,1:-8,3:-7");
|
|
115
|
+
const Table_B_2_complex = createTable("df:00730073,51:00690307,19:02BC006E,a7:006A030C,18a:002003B9,16:03B903080301,20:03C503080301,1d7:05650582,190f:00680331,1:00740308,1:0077030A,1:0079030A,1:006102BE,b6:03C50313,2:03C503130300,2:03C503130301,2:03C503130342,2a:1F0003B9,1:1F0103B9,1:1F0203B9,1:1F0303B9,1:1F0403B9,1:1F0503B9,1:1F0603B9,1:1F0703B9,1:1F0003B9,1:1F0103B9,1:1F0203B9,1:1F0303B9,1:1F0403B9,1:1F0503B9,1:1F0603B9,1:1F0703B9,1:1F2003B9,1:1F2103B9,1:1F2203B9,1:1F2303B9,1:1F2403B9,1:1F2503B9,1:1F2603B9,1:1F2703B9,1:1F2003B9,1:1F2103B9,1:1F2203B9,1:1F2303B9,1:1F2403B9,1:1F2503B9,1:1F2603B9,1:1F2703B9,1:1F6003B9,1:1F6103B9,1:1F6203B9,1:1F6303B9,1:1F6403B9,1:1F6503B9,1:1F6603B9,1:1F6703B9,1:1F6003B9,1:1F6103B9,1:1F6203B9,1:1F6303B9,1:1F6403B9,1:1F6503B9,1:1F6603B9,1:1F6703B9,3:1F7003B9,1:03B103B9,1:03AC03B9,2:03B10342,1:03B1034203B9,5:03B103B9,6:1F7403B9,1:03B703B9,1:03AE03B9,2:03B70342,1:03B7034203B9,5:03B703B9,6:03B903080300,1:03B903080301,3:03B90342,1:03B903080342,b:03C503080300,1:03C503080301,1:03C10313,2:03C50342,1:03C503080342,b:1F7C03B9,1:03C903B9,1:03CE03B9,2:03C90342,1:03C9034203B9,5:03C903B9,ac:00720073,5b:00B00063,6:00B00066,d:006E006F,a:0073006D,1:00740065006C,1:0074006D,124f:006800700061,2:00610075,2:006F0076,b:00700061,1:006E0061,1:03BC0061,1:006D0061,1:006B0061,1:006B0062,1:006D0062,1:00670062,3:00700066,1:006E0066,1:03BC0066,4:0068007A,1:006B0068007A,1:006D0068007A,1:00670068007A,1:00740068007A,15:00700061,1:006B00700061,1:006D00700061,1:006700700061,8:00700076,1:006E0076,1:03BC0076,1:006D0076,1:006B0076,1:006D0076,1:00700077,1:006E0077,1:03BC0077,1:006D0077,1:006B0077,1:006D0077,1:006B03C9,1:006D03C9,2:00620071,3:00632215006B0067,1:0063006F002E,1:00640062,1:00670079,2:00680070,2:006B006B,1:006B006D,9:00700068,2:00700070006D,1:00700072,2:00730076,1:00770062,c723:00660066,1:00660069,1:0066006C,1:006600660069,1:00660066006C,1:00730074,1:00730074,d:05740576,1:05740565,1:0574056B,1:057E0576,1:0574056D", bytes2);
|
|
116
|
+
const Table_C_ranges = createRangeTable("80-20,2a0-,39c,32,f71,18e,7f2-f,19-7,30-4,7-5,f81-b,5,a800-20ff,4d1-1f,110,fa-6,d174-7,2e84-,ffff-,ffff-,ffff-,ffff-,ffff-,ffff-,ffff-,ffff-,ffff-,ffff-,ffff-,ffff-,2,1f-5f,ff7f-20001");
|
|
111
117
|
function flatten(values) {
|
|
112
|
-
return values.reduce(
|
|
113
|
-
value.forEach(
|
|
118
|
+
return values.reduce((accum, value) => {
|
|
119
|
+
value.forEach((value) => {
|
|
120
|
+
accum.push(value);
|
|
121
|
+
});
|
|
114
122
|
return accum;
|
|
115
123
|
}, []);
|
|
116
124
|
}
|
|
@@ -118,19 +126,19 @@ function _nameprepTableA1(codepoint) {
|
|
|
118
126
|
return !!matchMap(codepoint, Table_A_1_ranges);
|
|
119
127
|
}
|
|
120
128
|
function _nameprepTableB2(codepoint) {
|
|
121
|
-
|
|
129
|
+
let range = matchMap(codepoint, Table_B_2_ranges);
|
|
122
130
|
if (range) {
|
|
123
131
|
return [codepoint + range.s];
|
|
124
132
|
}
|
|
125
|
-
|
|
133
|
+
let codes = Table_B_2_lut_abs[codepoint];
|
|
126
134
|
if (codes) {
|
|
127
135
|
return codes;
|
|
128
136
|
}
|
|
129
|
-
|
|
137
|
+
let shift = Table_B_2_lut_rel[codepoint];
|
|
130
138
|
if (shift) {
|
|
131
139
|
return [codepoint + shift[0]];
|
|
132
140
|
}
|
|
133
|
-
|
|
141
|
+
let complex = Table_B_2_complex[codepoint];
|
|
134
142
|
if (complex) {
|
|
135
143
|
return complex;
|
|
136
144
|
}
|
|
@@ -147,8 +155,8 @@ function nameprep(value) {
|
|
|
147
155
|
return value.toLowerCase();
|
|
148
156
|
}
|
|
149
157
|
// Get the code points (keeping the current normalization)
|
|
150
|
-
|
|
151
|
-
codes = flatten(codes.map(
|
|
158
|
+
let codes = (0, utf8_1.toUtf8CodePoints)(value);
|
|
159
|
+
codes = flatten(codes.map((code) => {
|
|
152
160
|
// Substitute Table B.1 (Maps to Nothing)
|
|
153
161
|
if (Table_B_1_flags.indexOf(code) >= 0) {
|
|
154
162
|
return [];
|
|
@@ -157,7 +165,7 @@ function nameprep(value) {
|
|
|
157
165
|
return [];
|
|
158
166
|
}
|
|
159
167
|
// Substitute Table B.2 (Case Folding)
|
|
160
|
-
|
|
168
|
+
let codesTableB2 = _nameprepTableB2(code);
|
|
161
169
|
if (codesTableB2) {
|
|
162
170
|
return codesTableB2;
|
|
163
171
|
}
|
|
@@ -167,21 +175,23 @@ function nameprep(value) {
|
|
|
167
175
|
// Normalize using form KC
|
|
168
176
|
codes = (0, utf8_1.toUtf8CodePoints)((0, utf8_1._toUtf8String)(codes), utf8_1.UnicodeNormalizationForm.NFKC);
|
|
169
177
|
// Prohibit Tables C.1.2, C.2.2, C.3, C.4, C.5, C.6, C.7, C.8, C.9
|
|
170
|
-
codes.forEach(
|
|
178
|
+
codes.forEach((code) => {
|
|
171
179
|
if (_nameprepTableC(code)) {
|
|
172
180
|
throw new Error("STRINGPREP_CONTAINS_PROHIBITED");
|
|
173
181
|
}
|
|
174
182
|
});
|
|
175
183
|
// Prohibit Unassigned Code Points (Table A.1)
|
|
176
|
-
codes.forEach(
|
|
184
|
+
codes.forEach((code) => {
|
|
177
185
|
if (_nameprepTableA1(code)) {
|
|
178
186
|
throw new Error("STRINGPREP_CONTAINS_UNASSIGNED");
|
|
179
187
|
}
|
|
180
188
|
});
|
|
181
189
|
// IDNA extras
|
|
182
|
-
|
|
190
|
+
let name = (0, utf8_1._toUtf8String)(codes);
|
|
183
191
|
// IDNA: 4.2.3.1
|
|
184
|
-
if (name.substring(0, 1) === "-" ||
|
|
192
|
+
if (name.substring(0, 1) === "-" ||
|
|
193
|
+
name.substring(2, 4) === "--" ||
|
|
194
|
+
name.substring(name.length - 1) === "-") {
|
|
185
195
|
throw new Error("invalid hyphen");
|
|
186
196
|
}
|
|
187
197
|
return name;
|
package/lib/idna.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"idna.js","sourceRoot":"","sources":["../src.ts/idna.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;;
|
|
1
|
+
{"version":3,"file":"idna.js","sourceRoot":"","sources":["../src.ts/idna.ts"],"names":[],"mappings":"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AAC,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE;IAC5B,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE;IAC5B,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE;IAC5D,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE;IAC5B,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE;IAC9C,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE;IACvD,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE;IAC5B,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE;IAC5B,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE;IAC5B,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE;IAC5B,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE;IAC5B,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE;IAC5B,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC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"}
|
package/lib/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { formatBytes32String, parseBytes32String } from "./bytes32";
|
|
2
2
|
import { nameprep } from "./idna";
|
|
3
3
|
import { _toEscapedUtf8String, toUtf8Bytes, toUtf8CodePoints, toUtf8String, UnicodeNormalizationForm, Utf8ErrorFunc, Utf8ErrorFuncs, Utf8ErrorReason } from "./utf8";
|
|
4
|
-
export { _toEscapedUtf8String, toUtf8Bytes, toUtf8CodePoints, toUtf8String, Utf8ErrorFunc, Utf8ErrorFuncs, Utf8ErrorReason, UnicodeNormalizationForm, formatBytes32String, parseBytes32String, nameprep };
|
|
4
|
+
export { _toEscapedUtf8String, toUtf8Bytes, toUtf8CodePoints, toUtf8String, Utf8ErrorFunc, Utf8ErrorFuncs, Utf8ErrorReason, UnicodeNormalizationForm, formatBytes32String, parseBytes32String, nameprep, };
|
|
5
5
|
//# sourceMappingURL=index.d.ts.map
|
package/lib/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src.ts/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AACpE,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAClC,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src.ts/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AACpE,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAClC,OAAO,EACH,oBAAoB,EACpB,WAAW,EACX,gBAAgB,EAChB,YAAY,EACZ,wBAAwB,EACxB,aAAa,EACb,cAAc,EACd,eAAe,EAClB,MAAM,QAAQ,CAAC;AAEhB,OAAO,EACH,oBAAoB,EACpB,WAAW,EACX,gBAAgB,EAChB,YAAY,EACZ,aAAa,EACb,cAAc,EACd,eAAe,EACf,wBAAwB,EACxB,mBAAmB,EACnB,kBAAkB,EAClB,QAAQ,GACX,CAAC"}
|
package/lib/index.js
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.nameprep = exports.parseBytes32String = exports.formatBytes32String = exports.UnicodeNormalizationForm = exports.Utf8ErrorReason = exports.Utf8ErrorFuncs = exports.toUtf8String = exports.toUtf8CodePoints = exports.toUtf8Bytes = exports._toEscapedUtf8String = void 0;
|
|
4
|
-
|
|
4
|
+
const bytes32_1 = require("./bytes32");
|
|
5
5
|
Object.defineProperty(exports, "formatBytes32String", { enumerable: true, get: function () { return bytes32_1.formatBytes32String; } });
|
|
6
6
|
Object.defineProperty(exports, "parseBytes32String", { enumerable: true, get: function () { return bytes32_1.parseBytes32String; } });
|
|
7
|
-
|
|
7
|
+
const idna_1 = require("./idna");
|
|
8
8
|
Object.defineProperty(exports, "nameprep", { enumerable: true, get: function () { return idna_1.nameprep; } });
|
|
9
|
-
|
|
9
|
+
const utf8_1 = require("./utf8");
|
|
10
10
|
Object.defineProperty(exports, "_toEscapedUtf8String", { enumerable: true, get: function () { return utf8_1._toEscapedUtf8String; } });
|
|
11
11
|
Object.defineProperty(exports, "toUtf8Bytes", { enumerable: true, get: function () { return utf8_1.toUtf8Bytes; } });
|
|
12
12
|
Object.defineProperty(exports, "toUtf8CodePoints", { enumerable: true, get: function () { return utf8_1.toUtf8CodePoints; } });
|
package/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src.ts/index.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;;;AAEb,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src.ts/index.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;;;AAEb,uCAAoE;AAsBhE,oGAtBK,6BAAmB,OAsBL;AACnB,mGAvB0B,4BAAkB,OAuB1B;AAtBtB,iCAAkC;AAuB9B,yFAvBK,eAAQ,OAuBL;AAtBZ,iCASgB;AAGZ,qGAXA,2BAAoB,OAWA;AACpB,4FAXA,kBAAW,OAWA;AACX,iGAXA,uBAAgB,OAWA;AAChB,6FAXA,mBAAY,OAWA;AAIZ,yGAdA,+BAAwB,OAcA;AAFxB,+FAVA,qBAAc,OAUA;AACd,gGAVA,sBAAe,OAUA"}
|
package/lib/utf8.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utf8.d.ts","sourceRoot":"","sources":["../src.ts/utf8.ts"],"names":[],"mappings":"AAEA,OAAO,EAAY,SAAS,EAAE,MAAM,aAAa,CAAC;AAQlD,oBAAY,wBAAwB;IAChC,OAAO,
|
|
1
|
+
{"version":3,"file":"utf8.d.ts","sourceRoot":"","sources":["../src.ts/utf8.ts"],"names":[],"mappings":"AAEA,OAAO,EAAY,SAAS,EAAE,MAAM,aAAa,CAAC;AAQlD,oBAAY,wBAAwB;IAChC,OAAO,KAAK;IACZ,GAAG,QAAQ;IACX,GAAG,QAAQ;IACX,IAAI,SAAS;IACb,IAAI,SAAS;CAChB;AAED,oBAAY,eAAe;IAGvB,mBAAmB,iCAAiC;IAIpD,UAAU,yBAAyB;IAInC,OAAO,mBAAmB;IAI1B,gBAAgB,8BAA8B;IAK9C,YAAY,uBAAuB;IAKnC,eAAe,qBAAqB;IAKpC,QAAQ,4BAA4B;CACvC;AAED,MAAM,MAAM,aAAa,GAAG,CACxB,MAAM,EAAE,eAAe,EACvB,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,SAAS,CAAC,MAAM,CAAC,EACxB,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,EACrB,YAAY,CAAC,EAAE,MAAM,KACpB,MAAM,CAAC;AAqEZ,eAAO,MAAM,cAAc,EAAE;IAAE,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa,CAAA;CAI1D,CAAC;AAsIH,wBAAgB,WAAW,CACvB,GAAG,EAAE,MAAM,EACX,IAAI,GAAE,wBAA2D,GAClE,UAAU,CAqCZ;AAOD,wBAAgB,oBAAoB,CAChC,KAAK,EAAE,SAAS,EAChB,OAAO,CAAC,EAAE,aAAa,GACxB,MAAM,CAuCR;AAED,wBAAgB,aAAa,CAAC,UAAU,EAAE,KAAK,CAAC,MAAM,CAAC,GAAG,MAAM,CAa/D;AAED,wBAAgB,YAAY,CACxB,KAAK,EAAE,SAAS,EAChB,OAAO,CAAC,EAAE,aAAa,GACxB,MAAM,CAER;AAED,wBAAgB,gBAAgB,CAC5B,GAAG,EAAE,MAAM,EACX,IAAI,GAAE,wBAA2D,GAClE,KAAK,CAAC,MAAM,CAAC,CAEf"}
|
package/lib/utf8.js
CHANGED
|
@@ -6,10 +6,10 @@ exports._toEscapedUtf8String = _toEscapedUtf8String;
|
|
|
6
6
|
exports._toUtf8String = _toUtf8String;
|
|
7
7
|
exports.toUtf8String = toUtf8String;
|
|
8
8
|
exports.toUtf8CodePoints = toUtf8CodePoints;
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
9
|
+
const bytes_1 = require("@qevm/bytes");
|
|
10
|
+
const logger_1 = require("@qevm/logger");
|
|
11
|
+
const _version_1 = require("./_version");
|
|
12
|
+
const logger = new logger_1.Logger(_version_1.version);
|
|
13
13
|
///////////////////////////////
|
|
14
14
|
var UnicodeNormalizationForm;
|
|
15
15
|
(function (UnicodeNormalizationForm) {
|
|
@@ -19,7 +19,6 @@ var UnicodeNormalizationForm;
|
|
|
19
19
|
UnicodeNormalizationForm["NFKC"] = "NFKC";
|
|
20
20
|
UnicodeNormalizationForm["NFKD"] = "NFKD";
|
|
21
21
|
})(UnicodeNormalizationForm || (exports.UnicodeNormalizationForm = UnicodeNormalizationForm = {}));
|
|
22
|
-
;
|
|
23
22
|
var Utf8ErrorReason;
|
|
24
23
|
(function (Utf8ErrorReason) {
|
|
25
24
|
// A continuation byte was present where there was nothing to continue
|
|
@@ -47,15 +46,15 @@ var Utf8ErrorReason;
|
|
|
47
46
|
// - badCodepoint = the computed codepoint; already bounds checked
|
|
48
47
|
Utf8ErrorReason["OVERLONG"] = "overlong representation";
|
|
49
48
|
})(Utf8ErrorReason || (exports.Utf8ErrorReason = Utf8ErrorReason = {}));
|
|
50
|
-
;
|
|
51
49
|
function errorFunc(reason, offset, bytes, output, badCodepoint) {
|
|
52
|
-
return logger.throwArgumentError(
|
|
50
|
+
return logger.throwArgumentError(`invalid codepoint at offset ${offset}; ${reason}`, "bytes", bytes);
|
|
53
51
|
}
|
|
54
52
|
function ignoreFunc(reason, offset, bytes, output, badCodepoint) {
|
|
55
53
|
// If there is an invalid prefix (including stray continuation), skip any additional continuation bytes
|
|
56
|
-
if (reason === Utf8ErrorReason.BAD_PREFIX ||
|
|
57
|
-
|
|
58
|
-
|
|
54
|
+
if (reason === Utf8ErrorReason.BAD_PREFIX ||
|
|
55
|
+
reason === Utf8ErrorReason.UNEXPECTED_CONTINUE) {
|
|
56
|
+
let i = 0;
|
|
57
|
+
for (let o = offset + 1; o < bytes.length; o++) {
|
|
59
58
|
if (bytes[o] >> 6 !== 0x02) {
|
|
60
59
|
break;
|
|
61
60
|
}
|
|
@@ -86,7 +85,7 @@ function replaceFunc(reason, offset, bytes, output, badCodepoint) {
|
|
|
86
85
|
exports.Utf8ErrorFuncs = Object.freeze({
|
|
87
86
|
error: errorFunc,
|
|
88
87
|
ignore: ignoreFunc,
|
|
89
|
-
replace: replaceFunc
|
|
88
|
+
replace: replaceFunc,
|
|
90
89
|
});
|
|
91
90
|
// http://stackoverflow.com/questions/13356493/decode-utf-8-with-javascript#13691499
|
|
92
91
|
function getUtf8CodePoints(bytes, onError) {
|
|
@@ -94,19 +93,19 @@ function getUtf8CodePoints(bytes, onError) {
|
|
|
94
93
|
onError = exports.Utf8ErrorFuncs.error;
|
|
95
94
|
}
|
|
96
95
|
bytes = (0, bytes_1.arrayify)(bytes);
|
|
97
|
-
|
|
98
|
-
|
|
96
|
+
const result = [];
|
|
97
|
+
let i = 0;
|
|
99
98
|
// Invalid bytes are ignored
|
|
100
99
|
while (i < bytes.length) {
|
|
101
|
-
|
|
100
|
+
const c = bytes[i++];
|
|
102
101
|
// 0xxx xxxx
|
|
103
102
|
if (c >> 7 === 0) {
|
|
104
103
|
result.push(c);
|
|
105
104
|
continue;
|
|
106
105
|
}
|
|
107
106
|
// Multibyte; how many bytes left for this character?
|
|
108
|
-
|
|
109
|
-
|
|
107
|
+
let extraLength = null;
|
|
108
|
+
let overlongMask = null;
|
|
110
109
|
// 110x xxxx 10xx xxxx
|
|
111
110
|
if ((c & 0xe0) === 0xc0) {
|
|
112
111
|
extraLength = 1;
|
|
@@ -137,16 +136,15 @@ function getUtf8CodePoints(bytes, onError) {
|
|
|
137
136
|
continue;
|
|
138
137
|
}
|
|
139
138
|
// Remove the length prefix from the char
|
|
140
|
-
|
|
141
|
-
for (
|
|
142
|
-
|
|
139
|
+
let res = c & ((1 << (8 - extraLength - 1)) - 1);
|
|
140
|
+
for (let j = 0; j < extraLength; j++) {
|
|
141
|
+
let nextChar = bytes[i];
|
|
143
142
|
// Invalid continuation byte
|
|
144
143
|
if ((nextChar & 0xc0) != 0x80) {
|
|
145
144
|
i += onError(Utf8ErrorReason.MISSING_CONTINUE, i, bytes, result);
|
|
146
145
|
res = null;
|
|
147
146
|
break;
|
|
148
147
|
}
|
|
149
|
-
;
|
|
150
148
|
res = (res << 6) | (nextChar & 0x3f);
|
|
151
149
|
i++;
|
|
152
150
|
}
|
|
@@ -174,15 +172,14 @@ function getUtf8CodePoints(bytes, onError) {
|
|
|
174
172
|
return result;
|
|
175
173
|
}
|
|
176
174
|
// http://stackoverflow.com/questions/18729405/how-to-convert-utf8-string-to-byte-array
|
|
177
|
-
function toUtf8Bytes(str, form) {
|
|
178
|
-
if (form === void 0) { form = UnicodeNormalizationForm.current; }
|
|
175
|
+
function toUtf8Bytes(str, form = UnicodeNormalizationForm.current) {
|
|
179
176
|
if (form != UnicodeNormalizationForm.current) {
|
|
180
177
|
logger.checkNormalize();
|
|
181
178
|
str = str.normalize(form);
|
|
182
179
|
}
|
|
183
|
-
|
|
184
|
-
for (
|
|
185
|
-
|
|
180
|
+
let result = [];
|
|
181
|
+
for (let i = 0; i < str.length; i++) {
|
|
182
|
+
const c = str.charCodeAt(i);
|
|
186
183
|
if (c < 0x80) {
|
|
187
184
|
result.push(c);
|
|
188
185
|
}
|
|
@@ -192,12 +189,12 @@ function toUtf8Bytes(str, form) {
|
|
|
192
189
|
}
|
|
193
190
|
else if ((c & 0xfc00) == 0xd800) {
|
|
194
191
|
i++;
|
|
195
|
-
|
|
192
|
+
const c2 = str.charCodeAt(i);
|
|
196
193
|
if (i >= str.length || (c2 & 0xfc00) !== 0xdc00) {
|
|
197
194
|
throw new Error("invalid utf-8 string");
|
|
198
195
|
}
|
|
199
196
|
// Surrogate Pair
|
|
200
|
-
|
|
197
|
+
const pair = 0x10000 + ((c & 0x03ff) << 10) + (c2 & 0x03ff);
|
|
201
198
|
result.push((pair >> 18) | 0xf0);
|
|
202
199
|
result.push(((pair >> 12) & 0x3f) | 0x80);
|
|
203
200
|
result.push(((pair >> 6) & 0x3f) | 0x80);
|
|
@@ -211,47 +208,58 @@ function toUtf8Bytes(str, form) {
|
|
|
211
208
|
}
|
|
212
209
|
return (0, bytes_1.arrayify)(result);
|
|
213
210
|
}
|
|
214
|
-
;
|
|
215
211
|
function escapeChar(value) {
|
|
216
|
-
|
|
212
|
+
const hex = "0000" + value.toString(16);
|
|
217
213
|
return "\\u" + hex.substring(hex.length - 4);
|
|
218
214
|
}
|
|
219
215
|
function _toEscapedUtf8String(bytes, onError) {
|
|
220
|
-
return '"' +
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
216
|
+
return ('"' +
|
|
217
|
+
getUtf8CodePoints(bytes, onError)
|
|
218
|
+
.map((codePoint) => {
|
|
219
|
+
if (codePoint < 256) {
|
|
220
|
+
switch (codePoint) {
|
|
221
|
+
case 8:
|
|
222
|
+
return "\\b";
|
|
223
|
+
case 9:
|
|
224
|
+
return "\\t";
|
|
225
|
+
case 10:
|
|
226
|
+
return "\\n";
|
|
227
|
+
case 13:
|
|
228
|
+
return "\\r";
|
|
229
|
+
case 34:
|
|
230
|
+
return '\\"';
|
|
231
|
+
case 92:
|
|
232
|
+
return "\\\\";
|
|
233
|
+
}
|
|
234
|
+
if (codePoint >= 32 && codePoint < 127) {
|
|
235
|
+
return String.fromCharCode(codePoint);
|
|
236
|
+
}
|
|
229
237
|
}
|
|
230
|
-
if (codePoint
|
|
231
|
-
return
|
|
238
|
+
if (codePoint <= 0xffff) {
|
|
239
|
+
return escapeChar(codePoint);
|
|
232
240
|
}
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
}
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
}).join("") + '"';
|
|
241
|
+
codePoint -= 0x10000;
|
|
242
|
+
return (escapeChar(((codePoint >> 10) & 0x3ff) + 0xd800) +
|
|
243
|
+
escapeChar((codePoint & 0x3ff) + 0xdc00));
|
|
244
|
+
})
|
|
245
|
+
.join("") +
|
|
246
|
+
'"');
|
|
240
247
|
}
|
|
241
248
|
function _toUtf8String(codePoints) {
|
|
242
|
-
return codePoints
|
|
249
|
+
return codePoints
|
|
250
|
+
.map((codePoint) => {
|
|
243
251
|
if (codePoint <= 0xffff) {
|
|
244
252
|
return String.fromCharCode(codePoint);
|
|
245
253
|
}
|
|
246
254
|
codePoint -= 0x10000;
|
|
247
|
-
return String.fromCharCode(((
|
|
248
|
-
})
|
|
255
|
+
return String.fromCharCode(((codePoint >> 10) & 0x3ff) + 0xd800, (codePoint & 0x3ff) + 0xdc00);
|
|
256
|
+
})
|
|
257
|
+
.join("");
|
|
249
258
|
}
|
|
250
259
|
function toUtf8String(bytes, onError) {
|
|
251
260
|
return _toUtf8String(getUtf8CodePoints(bytes, onError));
|
|
252
261
|
}
|
|
253
|
-
function toUtf8CodePoints(str, form) {
|
|
254
|
-
if (form === void 0) { form = UnicodeNormalizationForm.current; }
|
|
262
|
+
function toUtf8CodePoints(str, form = UnicodeNormalizationForm.current) {
|
|
255
263
|
return getUtf8CodePoints(toUtf8Bytes(str, form));
|
|
256
264
|
}
|
|
257
265
|
//# sourceMappingURL=utf8.js.map
|