@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/lib/utf8.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utf8.js","sourceRoot":"","sources":["../src.ts/utf8.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;;;
|
|
1
|
+
{"version":3,"file":"utf8.js","sourceRoot":"","sources":["../src.ts/utf8.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,29 +1,33 @@
|
|
|
1
1
|
{
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
"
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
"
|
|
12
|
-
"
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
"
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
"
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
2
|
+
"contributors": [
|
|
3
|
+
"Eugene Kuleshov <kulevgen32@gmail.com>",
|
|
4
|
+
"Richard Moore <me@ricmoo.com>"
|
|
5
|
+
],
|
|
6
|
+
"dependencies": {
|
|
7
|
+
"@qevm/bytes": "^5.7.2",
|
|
8
|
+
"@qevm/constants": "^5.7.2",
|
|
9
|
+
"@qevm/logger": "^5.7.1"
|
|
10
|
+
},
|
|
11
|
+
"description": "String utility functions.",
|
|
12
|
+
"keywords": [
|
|
13
|
+
"QEVM",
|
|
14
|
+
"QuantumEVM",
|
|
15
|
+
"qethers",
|
|
16
|
+
"strings",
|
|
17
|
+
"utf8"
|
|
18
|
+
],
|
|
19
|
+
"license": "MIT",
|
|
20
|
+
"main": "./lib/index.js",
|
|
21
|
+
"module": "./lib.esm/index.js",
|
|
22
|
+
"name": "@qevm/strings",
|
|
23
|
+
"publishConfig": {
|
|
24
|
+
"access": "public"
|
|
25
|
+
},
|
|
26
|
+
"scripts": {
|
|
27
|
+
"test": "echo \"Error: no test specified\" && exit 1"
|
|
28
|
+
},
|
|
29
|
+
"sideEffects": false,
|
|
30
|
+
"tarballHash": "0xbde9a4dad59a25a6b1956cf36146ddcceb251b39b2761ac4899b24876656c496",
|
|
31
|
+
"types": "./lib/index.d.ts",
|
|
32
|
+
"version": "5.7.2"
|
|
29
33
|
}
|
package/src.ts/_version.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export const version = "strings/5.7.
|
|
1
|
+
export const version = "strings/5.7.2";
|
package/src.ts/bytes32.ts
CHANGED
|
@@ -1,35 +1,40 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
import { HashZero } from "@
|
|
3
|
+
import { HashZero } from "@qevm/constants";
|
|
4
4
|
import { arrayify, BytesLike, concat, hexlify } from "@qevm/bytes";
|
|
5
5
|
|
|
6
6
|
import { toUtf8Bytes, toUtf8String } from "./utf8";
|
|
7
7
|
|
|
8
|
-
|
|
9
8
|
export function formatBytes32String(text: string): string {
|
|
10
|
-
|
|
11
9
|
// Get the bytes
|
|
12
10
|
const bytes = toUtf8Bytes(text);
|
|
13
11
|
|
|
14
12
|
// Check we have room for null-termination
|
|
15
|
-
if (bytes.length > 31) {
|
|
13
|
+
if (bytes.length > 31) {
|
|
14
|
+
throw new Error("bytes32 string must be less than 32 bytes");
|
|
15
|
+
}
|
|
16
16
|
|
|
17
17
|
// Zero-pad (implicitly null-terminates)
|
|
18
|
-
return hexlify(concat([
|
|
18
|
+
return hexlify(concat([bytes, HashZero]).slice(0, 32));
|
|
19
19
|
}
|
|
20
20
|
|
|
21
21
|
export function parseBytes32String(bytes: BytesLike): string {
|
|
22
22
|
const data = arrayify(bytes);
|
|
23
23
|
|
|
24
24
|
// Must be 32 bytes with a null-termination
|
|
25
|
-
if (data.length !== 32) {
|
|
26
|
-
|
|
25
|
+
if (data.length !== 32) {
|
|
26
|
+
throw new Error("invalid bytes32 - not 32 bytes long");
|
|
27
|
+
}
|
|
28
|
+
if (data[31] !== 0) {
|
|
29
|
+
throw new Error("invalid bytes32 string - no null terminator");
|
|
30
|
+
}
|
|
27
31
|
|
|
28
32
|
// Find the null termination
|
|
29
33
|
let length = 31;
|
|
30
|
-
while (data[length - 1] === 0) {
|
|
34
|
+
while (data[length - 1] === 0) {
|
|
35
|
+
length--;
|
|
36
|
+
}
|
|
31
37
|
|
|
32
38
|
// Determine the string value
|
|
33
39
|
return toUtf8String(data.slice(0, length));
|
|
34
40
|
}
|
|
35
|
-
|
package/src.ts/idna.ts
CHANGED
|
@@ -1,19 +1,25 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
import {
|
|
3
|
+
import {
|
|
4
|
+
toUtf8CodePoints,
|
|
5
|
+
_toUtf8String,
|
|
6
|
+
UnicodeNormalizationForm,
|
|
7
|
+
} from "./utf8";
|
|
4
8
|
|
|
5
9
|
type Ranged = {
|
|
6
|
-
l: number
|
|
7
|
-
h: number
|
|
8
|
-
d?: number
|
|
9
|
-
s?: number
|
|
10
|
-
e?: Array<number
|
|
10
|
+
l: number; // Lo value
|
|
11
|
+
h: number; // High value (less the lo)
|
|
12
|
+
d?: number; // Delta/stride (default: 1)
|
|
13
|
+
s?: number; // Shift (default: 1)
|
|
14
|
+
e?: Array<number>; // Exceptions to skip
|
|
11
15
|
};
|
|
12
16
|
|
|
13
|
-
type Table = { [
|
|
17
|
+
type Table = { [src: number]: Array<number> };
|
|
14
18
|
|
|
15
19
|
function bytes2(data: string): Array<number> {
|
|
16
|
-
if (
|
|
20
|
+
if (data.length % 4 !== 0) {
|
|
21
|
+
throw new Error("bad data");
|
|
22
|
+
}
|
|
17
23
|
let result = [];
|
|
18
24
|
for (let i = 0; i < data.length; i += 4) {
|
|
19
25
|
result.push(parseInt(data.substring(i, i + 4), 16));
|
|
@@ -21,14 +27,19 @@ function bytes2(data: string): Array<number> {
|
|
|
21
27
|
return result;
|
|
22
28
|
}
|
|
23
29
|
|
|
24
|
-
function createTable(
|
|
30
|
+
function createTable(
|
|
31
|
+
data: string,
|
|
32
|
+
func?: (value: string) => Array<number>,
|
|
33
|
+
): Table {
|
|
25
34
|
if (!func) {
|
|
26
|
-
func = function(value: string) {
|
|
35
|
+
func = function (value: string) {
|
|
36
|
+
return [parseInt(value, 16)];
|
|
37
|
+
};
|
|
27
38
|
}
|
|
28
39
|
|
|
29
40
|
let lo = 0;
|
|
30
41
|
|
|
31
|
-
let result: Table = {
|
|
42
|
+
let result: Table = {};
|
|
32
43
|
data.split(",").forEach((pair) => {
|
|
33
44
|
let comps = pair.split(":");
|
|
34
45
|
lo += parseInt(comps[0], 16);
|
|
@@ -59,36 +70,46 @@ function matchMap(value: number, ranges: Array<Ranged>): Ranged {
|
|
|
59
70
|
for (let i = 0; i < ranges.length; i++) {
|
|
60
71
|
let range = ranges[i];
|
|
61
72
|
lo += range.l;
|
|
62
|
-
if (
|
|
63
|
-
|
|
73
|
+
if (
|
|
74
|
+
value >= lo &&
|
|
75
|
+
value <= lo + range.h &&
|
|
76
|
+
(value - lo) % (range.d || 1) === 0
|
|
77
|
+
) {
|
|
78
|
+
if (range.e && range.e.indexOf(value - lo) !== -1) {
|
|
79
|
+
continue;
|
|
80
|
+
}
|
|
64
81
|
return range;
|
|
65
82
|
}
|
|
66
83
|
}
|
|
67
84
|
return null;
|
|
68
85
|
}
|
|
69
86
|
|
|
70
|
-
const Table_A_1_ranges = createRangeTable(
|
|
87
|
+
const Table_A_1_ranges = createRangeTable(
|
|
88
|
+
"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",
|
|
89
|
+
);
|
|
71
90
|
|
|
72
91
|
// @TODO: Make this relative...
|
|
73
|
-
const Table_B_1_flags = "ad,34f,1806,180b,180c,180d,200b,200c,200d,2060,feff"
|
|
92
|
+
const Table_B_1_flags = "ad,34f,1806,180b,180c,180d,200b,200c,200d,2060,feff"
|
|
93
|
+
.split(",")
|
|
94
|
+
.map((v) => parseInt(v, 16));
|
|
74
95
|
|
|
75
96
|
const Table_B_2_ranges: Array<Ranged> = [
|
|
76
97
|
{ h: 25, s: 32, l: 65 },
|
|
77
|
-
{ h: 30, s: 32, e: [
|
|
78
|
-
{ h: 54, s: 1, e: [
|
|
98
|
+
{ h: 30, s: 32, e: [23], l: 127 },
|
|
99
|
+
{ h: 54, s: 1, e: [48], l: 64, d: 2 },
|
|
79
100
|
{ h: 14, s: 1, l: 57, d: 2 },
|
|
80
101
|
{ h: 44, s: 1, l: 17, d: 2 },
|
|
81
|
-
{ h: 10, s: 1, e: [
|
|
102
|
+
{ h: 10, s: 1, e: [2, 6, 8], l: 61, d: 2 },
|
|
82
103
|
{ h: 16, s: 1, l: 68, d: 2 },
|
|
83
|
-
{ h: 84, s: 1, e: [
|
|
84
|
-
{ h: 26, s: 32, e: [
|
|
104
|
+
{ h: 84, s: 1, e: [18, 24, 66], l: 19, d: 2 },
|
|
105
|
+
{ h: 26, s: 32, e: [17], l: 435 },
|
|
85
106
|
{ h: 22, s: 1, l: 71, d: 2 },
|
|
86
107
|
{ h: 15, s: 80, l: 40 },
|
|
87
108
|
{ h: 31, s: 32, l: 16 },
|
|
88
109
|
{ h: 32, s: 1, l: 80, d: 2 },
|
|
89
110
|
{ h: 52, s: 1, l: 42, d: 2 },
|
|
90
111
|
{ h: 12, s: 1, l: 55, d: 2 },
|
|
91
|
-
{ h: 40, s: 1, e: [
|
|
112
|
+
{ h: 40, s: 1, e: [38], l: 15, d: 2 },
|
|
92
113
|
{ h: 14, s: 1, l: 48, d: 2 },
|
|
93
114
|
{ h: 37, s: 48, l: 49 },
|
|
94
115
|
{ h: 148, s: 1, l: 6351, d: 2 },
|
|
@@ -100,34 +121,44 @@ const Table_B_2_ranges: Array<Ranged> = [
|
|
|
100
121
|
{ h: 25, s: -119711, l: 53248 },
|
|
101
122
|
{ h: 25, s: -119763, l: 52 },
|
|
102
123
|
{ h: 25, s: -119815, l: 52 },
|
|
103
|
-
{ h: 25, s: -119867, e: [
|
|
124
|
+
{ h: 25, s: -119867, e: [1, 4, 5, 7, 8, 11, 12, 17], l: 52 },
|
|
104
125
|
{ h: 25, s: -119919, l: 52 },
|
|
105
|
-
{ h: 24, s: -119971, e: [
|
|
106
|
-
{ h: 24, s: -120023, e: [
|
|
126
|
+
{ h: 24, s: -119971, e: [2, 7, 8, 17], l: 52 },
|
|
127
|
+
{ h: 24, s: -120023, e: [2, 7, 13, 15, 16, 17], l: 52 },
|
|
107
128
|
{ h: 25, s: -120075, l: 52 },
|
|
108
129
|
{ h: 25, s: -120127, l: 52 },
|
|
109
130
|
{ h: 25, s: -120179, l: 52 },
|
|
110
131
|
{ h: 25, s: -120231, l: 52 },
|
|
111
132
|
{ h: 25, s: -120283, l: 52 },
|
|
112
133
|
{ h: 25, s: -120335, l: 52 },
|
|
113
|
-
{ h: 24, s: -119543, e: [
|
|
114
|
-
{ h: 24, s: -119601, e: [
|
|
115
|
-
{ h: 24, s: -119659, e: [
|
|
116
|
-
{ h: 24, s: -119717, e: [
|
|
117
|
-
{ h: 24, s: -119775, e: [
|
|
134
|
+
{ h: 24, s: -119543, e: [17], l: 56 },
|
|
135
|
+
{ h: 24, s: -119601, e: [17], l: 58 },
|
|
136
|
+
{ h: 24, s: -119659, e: [17], l: 58 },
|
|
137
|
+
{ h: 24, s: -119717, e: [17], l: 58 },
|
|
138
|
+
{ h: 24, s: -119775, e: [17], l: 58 },
|
|
118
139
|
];
|
|
119
|
-
const Table_B_2_lut_abs = createTable(
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
140
|
+
const Table_B_2_lut_abs = createTable(
|
|
141
|
+
"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",
|
|
142
|
+
);
|
|
143
|
+
const Table_B_2_lut_rel = createTable(
|
|
144
|
+
"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",
|
|
145
|
+
);
|
|
146
|
+
const Table_B_2_complex = createTable(
|
|
147
|
+
"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",
|
|
148
|
+
bytes2,
|
|
149
|
+
);
|
|
150
|
+
|
|
151
|
+
const Table_C_ranges = createRangeTable(
|
|
152
|
+
"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",
|
|
153
|
+
);
|
|
125
154
|
|
|
126
155
|
function flatten(values: Array<Array<number>>): Array<number> {
|
|
127
156
|
return values.reduce((accum, value) => {
|
|
128
|
-
value.forEach((value) => {
|
|
157
|
+
value.forEach((value) => {
|
|
158
|
+
accum.push(value);
|
|
159
|
+
});
|
|
129
160
|
return accum;
|
|
130
|
-
}, [
|
|
161
|
+
}, []);
|
|
131
162
|
}
|
|
132
163
|
|
|
133
164
|
export function _nameprepTableA1(codepoint: number): boolean {
|
|
@@ -136,16 +167,24 @@ export function _nameprepTableA1(codepoint: number): boolean {
|
|
|
136
167
|
|
|
137
168
|
export function _nameprepTableB2(codepoint: number): Array<number> {
|
|
138
169
|
let range = matchMap(codepoint, Table_B_2_ranges);
|
|
139
|
-
if (range) {
|
|
170
|
+
if (range) {
|
|
171
|
+
return [codepoint + range.s];
|
|
172
|
+
}
|
|
140
173
|
|
|
141
174
|
let codes = Table_B_2_lut_abs[codepoint];
|
|
142
|
-
if (codes) {
|
|
175
|
+
if (codes) {
|
|
176
|
+
return codes;
|
|
177
|
+
}
|
|
143
178
|
|
|
144
179
|
let shift = Table_B_2_lut_rel[codepoint];
|
|
145
|
-
if (shift) {
|
|
180
|
+
if (shift) {
|
|
181
|
+
return [codepoint + shift[0]];
|
|
182
|
+
}
|
|
146
183
|
|
|
147
184
|
let complex = Table_B_2_complex[codepoint];
|
|
148
|
-
if (complex) {
|
|
185
|
+
if (complex) {
|
|
186
|
+
return complex;
|
|
187
|
+
}
|
|
149
188
|
|
|
150
189
|
return null;
|
|
151
190
|
}
|
|
@@ -155,30 +194,42 @@ export function _nameprepTableC(codepoint: number): boolean {
|
|
|
155
194
|
}
|
|
156
195
|
|
|
157
196
|
export function nameprep(value: string): string {
|
|
158
|
-
|
|
159
197
|
// This allows platforms with incomplete normalize to bypass
|
|
160
198
|
// it for very basic names which the built-in toLowerCase
|
|
161
199
|
// will certainly handle correctly
|
|
162
|
-
if (value.match(/^[a-z0-9-]*$/i) && value.length <= 59) {
|
|
200
|
+
if (value.match(/^[a-z0-9-]*$/i) && value.length <= 59) {
|
|
201
|
+
return value.toLowerCase();
|
|
202
|
+
}
|
|
163
203
|
|
|
164
204
|
// Get the code points (keeping the current normalization)
|
|
165
205
|
let codes = toUtf8CodePoints(value);
|
|
166
206
|
|
|
167
|
-
codes = flatten(
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
207
|
+
codes = flatten(
|
|
208
|
+
codes.map((code) => {
|
|
209
|
+
// Substitute Table B.1 (Maps to Nothing)
|
|
210
|
+
if (Table_B_1_flags.indexOf(code) >= 0) {
|
|
211
|
+
return [];
|
|
212
|
+
}
|
|
213
|
+
if (code >= 0xfe00 && code <= 0xfe0f) {
|
|
214
|
+
return [];
|
|
215
|
+
}
|
|
216
|
+
|
|
217
|
+
// Substitute Table B.2 (Case Folding)
|
|
218
|
+
let codesTableB2 = _nameprepTableB2(code);
|
|
219
|
+
if (codesTableB2) {
|
|
220
|
+
return codesTableB2;
|
|
221
|
+
}
|
|
222
|
+
|
|
223
|
+
// No Substitution
|
|
224
|
+
return [code];
|
|
225
|
+
}),
|
|
226
|
+
);
|
|
179
227
|
|
|
180
228
|
// Normalize using form KC
|
|
181
|
-
codes = toUtf8CodePoints(
|
|
229
|
+
codes = toUtf8CodePoints(
|
|
230
|
+
_toUtf8String(codes),
|
|
231
|
+
UnicodeNormalizationForm.NFKC,
|
|
232
|
+
);
|
|
182
233
|
|
|
183
234
|
// Prohibit Tables C.1.2, C.2.2, C.3, C.4, C.5, C.6, C.7, C.8, C.9
|
|
184
235
|
codes.forEach((code) => {
|
|
@@ -198,10 +249,13 @@ export function nameprep(value: string): string {
|
|
|
198
249
|
let name = _toUtf8String(codes);
|
|
199
250
|
|
|
200
251
|
// IDNA: 4.2.3.1
|
|
201
|
-
if (
|
|
252
|
+
if (
|
|
253
|
+
name.substring(0, 1) === "-" ||
|
|
254
|
+
name.substring(2, 4) === "--" ||
|
|
255
|
+
name.substring(name.length - 1) === "-"
|
|
256
|
+
) {
|
|
202
257
|
throw new Error("invalid hyphen");
|
|
203
258
|
}
|
|
204
259
|
|
|
205
260
|
return name;
|
|
206
261
|
}
|
|
207
|
-
|
package/src.ts/index.ts
CHANGED
|
@@ -2,22 +2,27 @@
|
|
|
2
2
|
|
|
3
3
|
import { formatBytes32String, parseBytes32String } from "./bytes32";
|
|
4
4
|
import { nameprep } from "./idna";
|
|
5
|
-
import {
|
|
5
|
+
import {
|
|
6
|
+
_toEscapedUtf8String,
|
|
7
|
+
toUtf8Bytes,
|
|
8
|
+
toUtf8CodePoints,
|
|
9
|
+
toUtf8String,
|
|
10
|
+
UnicodeNormalizationForm,
|
|
11
|
+
Utf8ErrorFunc,
|
|
12
|
+
Utf8ErrorFuncs,
|
|
13
|
+
Utf8ErrorReason,
|
|
14
|
+
} from "./utf8";
|
|
6
15
|
|
|
7
16
|
export {
|
|
8
17
|
_toEscapedUtf8String,
|
|
9
18
|
toUtf8Bytes,
|
|
10
19
|
toUtf8CodePoints,
|
|
11
20
|
toUtf8String,
|
|
12
|
-
|
|
13
21
|
Utf8ErrorFunc,
|
|
14
22
|
Utf8ErrorFuncs,
|
|
15
23
|
Utf8ErrorReason,
|
|
16
|
-
|
|
17
24
|
UnicodeNormalizationForm,
|
|
18
|
-
|
|
19
25
|
formatBytes32String,
|
|
20
26
|
parseBytes32String,
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
}
|
|
27
|
+
nameprep,
|
|
28
|
+
};
|