@gjsify/querystring 0.3.13 → 0.3.14
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/lib/esm/error.js +28 -24
- package/lib/esm/index.js +1023 -1001
- package/package.json +3 -3
package/lib/esm/index.js
CHANGED
|
@@ -1,1033 +1,1055 @@
|
|
|
1
|
-
import { Buffer } from "node:buffer";
|
|
2
1
|
import { NodeURIError } from "./error.js";
|
|
2
|
+
import { Buffer } from "node:buffer";
|
|
3
|
+
|
|
4
|
+
//#region src/index.ts
|
|
3
5
|
const hexTable = new Array(256);
|
|
4
6
|
for (let i = 0; i < 256; ++i) {
|
|
5
|
-
|
|
6
|
-
}
|
|
7
|
-
function encodeStr(str, noEscapeTable, hexTable2) {
|
|
8
|
-
const len = str.length;
|
|
9
|
-
if (len === 0) return "";
|
|
10
|
-
let out = "";
|
|
11
|
-
let lastPos = 0;
|
|
12
|
-
for (let i = 0; i < len; i++) {
|
|
13
|
-
let c = str.charCodeAt(i);
|
|
14
|
-
if (c < 128) {
|
|
15
|
-
if (noEscapeTable[c] === 1) continue;
|
|
16
|
-
if (lastPos < i) out += str.slice(lastPos, i);
|
|
17
|
-
lastPos = i + 1;
|
|
18
|
-
out += hexTable2[c];
|
|
19
|
-
continue;
|
|
20
|
-
}
|
|
21
|
-
if (lastPos < i) out += str.slice(lastPos, i);
|
|
22
|
-
if (c < 2048) {
|
|
23
|
-
lastPos = i + 1;
|
|
24
|
-
out += hexTable2[192 | c >> 6] + hexTable2[128 | c & 63];
|
|
25
|
-
continue;
|
|
26
|
-
}
|
|
27
|
-
if (c < 55296 || c >= 57344) {
|
|
28
|
-
lastPos = i + 1;
|
|
29
|
-
out += hexTable2[224 | c >> 12] + hexTable2[128 | c >> 6 & 63] + hexTable2[128 | c & 63];
|
|
30
|
-
continue;
|
|
31
|
-
}
|
|
32
|
-
++i;
|
|
33
|
-
if (i >= len) throw new ERR_INVALID_URI();
|
|
34
|
-
const c2 = str.charCodeAt(i) & 1023;
|
|
35
|
-
lastPos = i + 1;
|
|
36
|
-
c = 65536 + ((c & 1023) << 10 | c2);
|
|
37
|
-
out += hexTable2[240 | c >> 18] + hexTable2[128 | c >> 12 & 63] + hexTable2[128 | c >> 6 & 63] + hexTable2[128 | c & 63];
|
|
38
|
-
}
|
|
39
|
-
if (lastPos === 0) return str;
|
|
40
|
-
if (lastPos < len) return out + str.slice(lastPos);
|
|
41
|
-
return out;
|
|
7
|
+
hexTable[i] = "%" + ((i < 16 ? "0" : "") + i.toString(16)).toUpperCase();
|
|
42
8
|
}
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
9
|
+
function encodeStr(str, noEscapeTable, hexTable) {
|
|
10
|
+
const len = str.length;
|
|
11
|
+
if (len === 0) return "";
|
|
12
|
+
let out = "";
|
|
13
|
+
let lastPos = 0;
|
|
14
|
+
for (let i = 0; i < len; i++) {
|
|
15
|
+
let c = str.charCodeAt(i);
|
|
16
|
+
if (c < 128) {
|
|
17
|
+
if (noEscapeTable[c] === 1) continue;
|
|
18
|
+
if (lastPos < i) out += str.slice(lastPos, i);
|
|
19
|
+
lastPos = i + 1;
|
|
20
|
+
out += hexTable[c];
|
|
21
|
+
continue;
|
|
22
|
+
}
|
|
23
|
+
if (lastPos < i) out += str.slice(lastPos, i);
|
|
24
|
+
if (c < 2048) {
|
|
25
|
+
lastPos = i + 1;
|
|
26
|
+
out += hexTable[192 | c >> 6] + hexTable[128 | c & 63];
|
|
27
|
+
continue;
|
|
28
|
+
}
|
|
29
|
+
if (c < 55296 || c >= 57344) {
|
|
30
|
+
lastPos = i + 1;
|
|
31
|
+
out += hexTable[224 | c >> 12] + hexTable[128 | c >> 6 & 63] + hexTable[128 | c & 63];
|
|
32
|
+
continue;
|
|
33
|
+
}
|
|
34
|
+
++i;
|
|
35
|
+
if (i >= len) throw new ERR_INVALID_URI();
|
|
36
|
+
const c2 = str.charCodeAt(i) & 1023;
|
|
37
|
+
lastPos = i + 1;
|
|
38
|
+
c = 65536 + ((c & 1023) << 10 | c2);
|
|
39
|
+
out += hexTable[240 | c >> 18] + hexTable[128 | c >> 12 & 63] + hexTable[128 | c >> 6 & 63] + hexTable[128 | c & 63];
|
|
40
|
+
}
|
|
41
|
+
if (lastPos === 0) return str;
|
|
42
|
+
if (lastPos < len) return out + str.slice(lastPos);
|
|
43
|
+
return out;
|
|
47
44
|
}
|
|
45
|
+
var ERR_INVALID_URI = class extends NodeURIError {
|
|
46
|
+
constructor() {
|
|
47
|
+
super("ERR_INVALID_URI", `URI malformed`);
|
|
48
|
+
}
|
|
49
|
+
};
|
|
50
|
+
/**
|
|
51
|
+
* Alias of querystring.parse()
|
|
52
|
+
* @legacy
|
|
53
|
+
*/
|
|
48
54
|
const decode = parse;
|
|
55
|
+
/**
|
|
56
|
+
* Alias of querystring.stringify()
|
|
57
|
+
* @legacy
|
|
58
|
+
*/
|
|
49
59
|
const encode = stringify;
|
|
60
|
+
/**
|
|
61
|
+
* replaces encodeURIComponent()
|
|
62
|
+
* @see https://www.ecma-international.org/ecma-262/5.1/#sec-15.1.3.4
|
|
63
|
+
*/
|
|
50
64
|
function qsEscape(str) {
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
65
|
+
if (typeof str !== "string") {
|
|
66
|
+
if (typeof str === "object") {
|
|
67
|
+
str = String(str);
|
|
68
|
+
} else {
|
|
69
|
+
str += "";
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
return encodeStr(str, noEscape, hexTable);
|
|
59
73
|
}
|
|
74
|
+
/**
|
|
75
|
+
* Performs URL percent-encoding on the given `str` in a manner that is optimized for the specific requirements of URL query strings.
|
|
76
|
+
* Used by `querystring.stringify()` and is generally not expected to be used directly.
|
|
77
|
+
* It is exported primarily to allow application code to provide a replacement percent-encoding implementation if necessary by assigning `querystring.escape` to an alternative function.
|
|
78
|
+
* @legacy
|
|
79
|
+
* @see Tested in `test-querystring-escape.js`
|
|
80
|
+
*/
|
|
60
81
|
const escape = qsEscape;
|
|
61
82
|
const isHexTable = new Int8Array([
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
0,
|
|
319
|
-
0,
|
|
320
|
-
0,
|
|
321
|
-
0,
|
|
322
|
-
0,
|
|
323
|
-
0,
|
|
324
|
-
0,
|
|
325
|
-
0,
|
|
326
|
-
0
|
|
327
|
-
// ... 256
|
|
83
|
+
0,
|
|
84
|
+
0,
|
|
85
|
+
0,
|
|
86
|
+
0,
|
|
87
|
+
0,
|
|
88
|
+
0,
|
|
89
|
+
0,
|
|
90
|
+
0,
|
|
91
|
+
0,
|
|
92
|
+
0,
|
|
93
|
+
0,
|
|
94
|
+
0,
|
|
95
|
+
0,
|
|
96
|
+
0,
|
|
97
|
+
0,
|
|
98
|
+
0,
|
|
99
|
+
0,
|
|
100
|
+
0,
|
|
101
|
+
0,
|
|
102
|
+
0,
|
|
103
|
+
0,
|
|
104
|
+
0,
|
|
105
|
+
0,
|
|
106
|
+
0,
|
|
107
|
+
0,
|
|
108
|
+
0,
|
|
109
|
+
0,
|
|
110
|
+
0,
|
|
111
|
+
0,
|
|
112
|
+
0,
|
|
113
|
+
0,
|
|
114
|
+
0,
|
|
115
|
+
0,
|
|
116
|
+
0,
|
|
117
|
+
0,
|
|
118
|
+
0,
|
|
119
|
+
0,
|
|
120
|
+
0,
|
|
121
|
+
0,
|
|
122
|
+
0,
|
|
123
|
+
0,
|
|
124
|
+
0,
|
|
125
|
+
0,
|
|
126
|
+
0,
|
|
127
|
+
0,
|
|
128
|
+
0,
|
|
129
|
+
0,
|
|
130
|
+
0,
|
|
131
|
+
1,
|
|
132
|
+
1,
|
|
133
|
+
1,
|
|
134
|
+
1,
|
|
135
|
+
1,
|
|
136
|
+
1,
|
|
137
|
+
1,
|
|
138
|
+
1,
|
|
139
|
+
1,
|
|
140
|
+
1,
|
|
141
|
+
0,
|
|
142
|
+
0,
|
|
143
|
+
0,
|
|
144
|
+
0,
|
|
145
|
+
0,
|
|
146
|
+
0,
|
|
147
|
+
0,
|
|
148
|
+
1,
|
|
149
|
+
1,
|
|
150
|
+
1,
|
|
151
|
+
1,
|
|
152
|
+
1,
|
|
153
|
+
1,
|
|
154
|
+
0,
|
|
155
|
+
0,
|
|
156
|
+
0,
|
|
157
|
+
0,
|
|
158
|
+
0,
|
|
159
|
+
0,
|
|
160
|
+
0,
|
|
161
|
+
0,
|
|
162
|
+
0,
|
|
163
|
+
0,
|
|
164
|
+
0,
|
|
165
|
+
0,
|
|
166
|
+
0,
|
|
167
|
+
0,
|
|
168
|
+
0,
|
|
169
|
+
0,
|
|
170
|
+
0,
|
|
171
|
+
0,
|
|
172
|
+
0,
|
|
173
|
+
0,
|
|
174
|
+
0,
|
|
175
|
+
0,
|
|
176
|
+
0,
|
|
177
|
+
0,
|
|
178
|
+
0,
|
|
179
|
+
0,
|
|
180
|
+
1,
|
|
181
|
+
1,
|
|
182
|
+
1,
|
|
183
|
+
1,
|
|
184
|
+
1,
|
|
185
|
+
1,
|
|
186
|
+
0,
|
|
187
|
+
0,
|
|
188
|
+
0,
|
|
189
|
+
0,
|
|
190
|
+
0,
|
|
191
|
+
0,
|
|
192
|
+
0,
|
|
193
|
+
0,
|
|
194
|
+
0,
|
|
195
|
+
0,
|
|
196
|
+
0,
|
|
197
|
+
0,
|
|
198
|
+
0,
|
|
199
|
+
0,
|
|
200
|
+
0,
|
|
201
|
+
0,
|
|
202
|
+
0,
|
|
203
|
+
0,
|
|
204
|
+
0,
|
|
205
|
+
0,
|
|
206
|
+
0,
|
|
207
|
+
0,
|
|
208
|
+
0,
|
|
209
|
+
0,
|
|
210
|
+
0,
|
|
211
|
+
0,
|
|
212
|
+
0,
|
|
213
|
+
0,
|
|
214
|
+
0,
|
|
215
|
+
0,
|
|
216
|
+
0,
|
|
217
|
+
0,
|
|
218
|
+
0,
|
|
219
|
+
0,
|
|
220
|
+
0,
|
|
221
|
+
0,
|
|
222
|
+
0,
|
|
223
|
+
0,
|
|
224
|
+
0,
|
|
225
|
+
0,
|
|
226
|
+
0,
|
|
227
|
+
0,
|
|
228
|
+
0,
|
|
229
|
+
0,
|
|
230
|
+
0,
|
|
231
|
+
0,
|
|
232
|
+
0,
|
|
233
|
+
0,
|
|
234
|
+
0,
|
|
235
|
+
0,
|
|
236
|
+
0,
|
|
237
|
+
0,
|
|
238
|
+
0,
|
|
239
|
+
0,
|
|
240
|
+
0,
|
|
241
|
+
0,
|
|
242
|
+
0,
|
|
243
|
+
0,
|
|
244
|
+
0,
|
|
245
|
+
0,
|
|
246
|
+
0,
|
|
247
|
+
0,
|
|
248
|
+
0,
|
|
249
|
+
0,
|
|
250
|
+
0,
|
|
251
|
+
0,
|
|
252
|
+
0,
|
|
253
|
+
0,
|
|
254
|
+
0,
|
|
255
|
+
0,
|
|
256
|
+
0,
|
|
257
|
+
0,
|
|
258
|
+
0,
|
|
259
|
+
0,
|
|
260
|
+
0,
|
|
261
|
+
0,
|
|
262
|
+
0,
|
|
263
|
+
0,
|
|
264
|
+
0,
|
|
265
|
+
0,
|
|
266
|
+
0,
|
|
267
|
+
0,
|
|
268
|
+
0,
|
|
269
|
+
0,
|
|
270
|
+
0,
|
|
271
|
+
0,
|
|
272
|
+
0,
|
|
273
|
+
0,
|
|
274
|
+
0,
|
|
275
|
+
0,
|
|
276
|
+
0,
|
|
277
|
+
0,
|
|
278
|
+
0,
|
|
279
|
+
0,
|
|
280
|
+
0,
|
|
281
|
+
0,
|
|
282
|
+
0,
|
|
283
|
+
0,
|
|
284
|
+
0,
|
|
285
|
+
0,
|
|
286
|
+
0,
|
|
287
|
+
0,
|
|
288
|
+
0,
|
|
289
|
+
0,
|
|
290
|
+
0,
|
|
291
|
+
0,
|
|
292
|
+
0,
|
|
293
|
+
0,
|
|
294
|
+
0,
|
|
295
|
+
0,
|
|
296
|
+
0,
|
|
297
|
+
0,
|
|
298
|
+
0,
|
|
299
|
+
0,
|
|
300
|
+
0,
|
|
301
|
+
0,
|
|
302
|
+
0,
|
|
303
|
+
0,
|
|
304
|
+
0,
|
|
305
|
+
0,
|
|
306
|
+
0,
|
|
307
|
+
0,
|
|
308
|
+
0,
|
|
309
|
+
0,
|
|
310
|
+
0,
|
|
311
|
+
0,
|
|
312
|
+
0,
|
|
313
|
+
0,
|
|
314
|
+
0,
|
|
315
|
+
0,
|
|
316
|
+
0,
|
|
317
|
+
0,
|
|
318
|
+
0,
|
|
319
|
+
0,
|
|
320
|
+
0,
|
|
321
|
+
0,
|
|
322
|
+
0,
|
|
323
|
+
0,
|
|
324
|
+
0,
|
|
325
|
+
0,
|
|
326
|
+
0,
|
|
327
|
+
0,
|
|
328
|
+
0,
|
|
329
|
+
0,
|
|
330
|
+
0,
|
|
331
|
+
0,
|
|
332
|
+
0,
|
|
333
|
+
0,
|
|
334
|
+
0,
|
|
335
|
+
0,
|
|
336
|
+
0,
|
|
337
|
+
0,
|
|
338
|
+
0
|
|
328
339
|
]);
|
|
329
340
|
function charCodes(str) {
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
341
|
+
const ret = new Array(str.length);
|
|
342
|
+
for (let i = 0; i < str.length; ++i) {
|
|
343
|
+
ret[i] = str.charCodeAt(i);
|
|
344
|
+
}
|
|
345
|
+
return ret;
|
|
335
346
|
}
|
|
336
|
-
function addKeyVal(obj, key, value, keyEncoded, valEncoded,
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
}
|
|
358
|
-
}
|
|
347
|
+
function addKeyVal(obj, key, value, keyEncoded, valEncoded, decode) {
|
|
348
|
+
if (key.length > 0 && keyEncoded) {
|
|
349
|
+
try {
|
|
350
|
+
key = decode(key);
|
|
351
|
+
} catch {}
|
|
352
|
+
}
|
|
353
|
+
if (value.length > 0 && valEncoded) {
|
|
354
|
+
try {
|
|
355
|
+
value = decode(value);
|
|
356
|
+
} catch {}
|
|
357
|
+
}
|
|
358
|
+
if (obj[key] === undefined) {
|
|
359
|
+
obj[key] = value;
|
|
360
|
+
} else {
|
|
361
|
+
const curValue = obj[key];
|
|
362
|
+
if (curValue.pop) {
|
|
363
|
+
curValue[curValue.length] = value;
|
|
364
|
+
} else {
|
|
365
|
+
obj[key] = [curValue, value];
|
|
366
|
+
}
|
|
367
|
+
}
|
|
359
368
|
}
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
|
|
369
|
+
/**
|
|
370
|
+
* Parses a URL query string into a collection of key and value pairs.
|
|
371
|
+
* @param str The URL query string to parse
|
|
372
|
+
* @param sep The substring used to delimit key and value pairs in the query string. Default: '&'.
|
|
373
|
+
* @param eq The substring used to delimit keys and values in the query string. Default: '='.
|
|
374
|
+
* @param options The parse options
|
|
375
|
+
* @param options.decodeURIComponent The function to use when decoding percent-encoded characters in the query string. Default: `querystring.unescape()`.
|
|
376
|
+
* @param options.maxKeys Specifies the maximum number of keys to parse. Specify `0` to remove key counting limitations. Default: `1000`.
|
|
377
|
+
* @legacy
|
|
378
|
+
* @see Tested in test-querystring.js
|
|
379
|
+
*/
|
|
380
|
+
function parse(str, sep = "&", eq = "=", { decodeURIComponent = unescape, maxKeys = 1e3 } = {}) {
|
|
381
|
+
const obj = Object.create(null);
|
|
382
|
+
if (typeof str !== "string" || str.length === 0) {
|
|
383
|
+
return obj;
|
|
384
|
+
}
|
|
385
|
+
const sepCodes = !sep ? [38] : charCodes(String(sep));
|
|
386
|
+
const eqCodes = !eq ? [61] : charCodes(String(eq));
|
|
387
|
+
const sepLen = sepCodes.length;
|
|
388
|
+
const eqLen = eqCodes.length;
|
|
389
|
+
let pairs = 1e3;
|
|
390
|
+
if (typeof maxKeys === "number") {
|
|
391
|
+
pairs = maxKeys > 0 ? maxKeys : -1;
|
|
392
|
+
}
|
|
393
|
+
let decode = unescape;
|
|
394
|
+
if (decodeURIComponent) {
|
|
395
|
+
decode = decodeURIComponent;
|
|
396
|
+
}
|
|
397
|
+
const customDecode = decode !== unescape;
|
|
398
|
+
let lastPos = 0;
|
|
399
|
+
let sepIdx = 0;
|
|
400
|
+
let eqIdx = 0;
|
|
401
|
+
let key = "";
|
|
402
|
+
let value = "";
|
|
403
|
+
let keyEncoded = customDecode;
|
|
404
|
+
let valEncoded = customDecode;
|
|
405
|
+
const plusChar = customDecode ? "%20" : " ";
|
|
406
|
+
let encodeCheck = 0;
|
|
407
|
+
for (let i = 0; i < str.length; ++i) {
|
|
408
|
+
const code = str.charCodeAt(i);
|
|
409
|
+
if (code === sepCodes[sepIdx]) {
|
|
410
|
+
if (++sepIdx === sepLen) {
|
|
411
|
+
const end = i - sepIdx + 1;
|
|
412
|
+
if (eqIdx < eqLen) {
|
|
413
|
+
if (lastPos < end) {
|
|
414
|
+
key += str.slice(lastPos, end);
|
|
415
|
+
} else if (key.length === 0) {
|
|
416
|
+
if (--pairs === 0) {
|
|
417
|
+
return obj;
|
|
418
|
+
}
|
|
419
|
+
lastPos = i + 1;
|
|
420
|
+
sepIdx = eqIdx = 0;
|
|
421
|
+
continue;
|
|
422
|
+
}
|
|
423
|
+
} else if (lastPos < end) {
|
|
424
|
+
value += str.slice(lastPos, end);
|
|
425
|
+
}
|
|
426
|
+
addKeyVal(obj, key, value, keyEncoded, valEncoded, decode);
|
|
427
|
+
if (--pairs === 0) {
|
|
428
|
+
return obj;
|
|
429
|
+
}
|
|
430
|
+
key = value = "";
|
|
431
|
+
encodeCheck = 0;
|
|
432
|
+
lastPos = i + 1;
|
|
433
|
+
sepIdx = eqIdx = 0;
|
|
434
|
+
}
|
|
435
|
+
} else {
|
|
436
|
+
sepIdx = 0;
|
|
437
|
+
if (eqIdx < eqLen) {
|
|
438
|
+
if (code === eqCodes[eqIdx]) {
|
|
439
|
+
if (++eqIdx === eqLen) {
|
|
440
|
+
const end = i - eqIdx + 1;
|
|
441
|
+
if (lastPos < end) {
|
|
442
|
+
key += str.slice(lastPos, end);
|
|
443
|
+
}
|
|
444
|
+
encodeCheck = 0;
|
|
445
|
+
lastPos = i + 1;
|
|
446
|
+
}
|
|
447
|
+
continue;
|
|
448
|
+
} else {
|
|
449
|
+
eqIdx = 0;
|
|
450
|
+
if (!keyEncoded) {
|
|
451
|
+
if (code === 37) {
|
|
452
|
+
encodeCheck = 1;
|
|
453
|
+
continue;
|
|
454
|
+
} else if (encodeCheck > 0) {
|
|
455
|
+
if (isHexTable[code] === 1) {
|
|
456
|
+
if (++encodeCheck === 3) {
|
|
457
|
+
keyEncoded = true;
|
|
458
|
+
}
|
|
459
|
+
continue;
|
|
460
|
+
} else {
|
|
461
|
+
encodeCheck = 0;
|
|
462
|
+
}
|
|
463
|
+
}
|
|
464
|
+
}
|
|
465
|
+
}
|
|
466
|
+
if (code === 43) {
|
|
467
|
+
if (lastPos < i) {
|
|
468
|
+
key += str.slice(lastPos, i);
|
|
469
|
+
}
|
|
470
|
+
key += plusChar;
|
|
471
|
+
lastPos = i + 1;
|
|
472
|
+
continue;
|
|
473
|
+
}
|
|
474
|
+
}
|
|
475
|
+
if (code === 43) {
|
|
476
|
+
if (lastPos < i) {
|
|
477
|
+
value += str.slice(lastPos, i);
|
|
478
|
+
}
|
|
479
|
+
value += plusChar;
|
|
480
|
+
lastPos = i + 1;
|
|
481
|
+
} else if (!valEncoded) {
|
|
482
|
+
if (code === 37) {
|
|
483
|
+
encodeCheck = 1;
|
|
484
|
+
} else if (encodeCheck > 0) {
|
|
485
|
+
if (isHexTable[code] === 1) {
|
|
486
|
+
if (++encodeCheck === 3) {
|
|
487
|
+
valEncoded = true;
|
|
488
|
+
}
|
|
489
|
+
} else {
|
|
490
|
+
encodeCheck = 0;
|
|
491
|
+
}
|
|
492
|
+
}
|
|
493
|
+
}
|
|
494
|
+
}
|
|
495
|
+
}
|
|
496
|
+
if (lastPos < str.length) {
|
|
497
|
+
if (eqIdx < eqLen) {
|
|
498
|
+
key += str.slice(lastPos);
|
|
499
|
+
} else if (sepIdx < sepLen) {
|
|
500
|
+
value += str.slice(lastPos);
|
|
501
|
+
}
|
|
502
|
+
} else if (eqIdx === 0 && key.length === 0) {
|
|
503
|
+
return obj;
|
|
504
|
+
}
|
|
505
|
+
addKeyVal(obj, key, value, keyEncoded, valEncoded, decode);
|
|
506
|
+
return obj;
|
|
487
507
|
}
|
|
508
|
+
/**
|
|
509
|
+
* These characters do not need escaping when generating query strings:
|
|
510
|
+
* ! - . _ ~
|
|
511
|
+
* ' ( ) *
|
|
512
|
+
* digits
|
|
513
|
+
* alpha (uppercase)
|
|
514
|
+
* alpha (lowercase)
|
|
515
|
+
*/
|
|
488
516
|
const noEscape = new Int8Array([
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
|
|
530
|
-
|
|
531
|
-
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
|
|
535
|
-
|
|
536
|
-
|
|
537
|
-
|
|
538
|
-
|
|
539
|
-
|
|
540
|
-
|
|
541
|
-
|
|
542
|
-
|
|
543
|
-
|
|
544
|
-
|
|
545
|
-
|
|
546
|
-
|
|
547
|
-
|
|
548
|
-
|
|
549
|
-
|
|
550
|
-
|
|
551
|
-
|
|
552
|
-
|
|
553
|
-
|
|
554
|
-
|
|
555
|
-
|
|
556
|
-
|
|
557
|
-
|
|
558
|
-
|
|
559
|
-
|
|
560
|
-
|
|
561
|
-
|
|
562
|
-
|
|
563
|
-
|
|
564
|
-
|
|
565
|
-
|
|
566
|
-
|
|
567
|
-
|
|
568
|
-
|
|
569
|
-
|
|
570
|
-
|
|
571
|
-
|
|
572
|
-
|
|
573
|
-
|
|
574
|
-
|
|
575
|
-
|
|
576
|
-
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
|
|
580
|
-
|
|
581
|
-
|
|
582
|
-
|
|
583
|
-
|
|
584
|
-
|
|
585
|
-
|
|
586
|
-
|
|
587
|
-
|
|
588
|
-
|
|
589
|
-
|
|
590
|
-
|
|
591
|
-
|
|
592
|
-
|
|
593
|
-
|
|
594
|
-
|
|
595
|
-
|
|
596
|
-
|
|
597
|
-
|
|
598
|
-
|
|
599
|
-
|
|
600
|
-
|
|
601
|
-
|
|
602
|
-
|
|
603
|
-
|
|
604
|
-
|
|
605
|
-
|
|
606
|
-
|
|
607
|
-
|
|
608
|
-
|
|
609
|
-
|
|
610
|
-
|
|
611
|
-
|
|
612
|
-
|
|
613
|
-
|
|
614
|
-
|
|
615
|
-
|
|
616
|
-
|
|
617
|
-
1,
|
|
618
|
-
1,
|
|
619
|
-
0,
|
|
620
|
-
0,
|
|
621
|
-
0,
|
|
622
|
-
1,
|
|
623
|
-
0
|
|
624
|
-
// 112 - 127
|
|
517
|
+
0,
|
|
518
|
+
0,
|
|
519
|
+
0,
|
|
520
|
+
0,
|
|
521
|
+
0,
|
|
522
|
+
0,
|
|
523
|
+
0,
|
|
524
|
+
0,
|
|
525
|
+
0,
|
|
526
|
+
0,
|
|
527
|
+
0,
|
|
528
|
+
0,
|
|
529
|
+
0,
|
|
530
|
+
0,
|
|
531
|
+
0,
|
|
532
|
+
0,
|
|
533
|
+
0,
|
|
534
|
+
0,
|
|
535
|
+
0,
|
|
536
|
+
0,
|
|
537
|
+
0,
|
|
538
|
+
0,
|
|
539
|
+
0,
|
|
540
|
+
0,
|
|
541
|
+
0,
|
|
542
|
+
0,
|
|
543
|
+
0,
|
|
544
|
+
0,
|
|
545
|
+
0,
|
|
546
|
+
0,
|
|
547
|
+
0,
|
|
548
|
+
0,
|
|
549
|
+
0,
|
|
550
|
+
1,
|
|
551
|
+
0,
|
|
552
|
+
0,
|
|
553
|
+
0,
|
|
554
|
+
0,
|
|
555
|
+
0,
|
|
556
|
+
1,
|
|
557
|
+
1,
|
|
558
|
+
1,
|
|
559
|
+
1,
|
|
560
|
+
0,
|
|
561
|
+
0,
|
|
562
|
+
1,
|
|
563
|
+
1,
|
|
564
|
+
0,
|
|
565
|
+
1,
|
|
566
|
+
1,
|
|
567
|
+
1,
|
|
568
|
+
1,
|
|
569
|
+
1,
|
|
570
|
+
1,
|
|
571
|
+
1,
|
|
572
|
+
1,
|
|
573
|
+
1,
|
|
574
|
+
1,
|
|
575
|
+
0,
|
|
576
|
+
0,
|
|
577
|
+
0,
|
|
578
|
+
0,
|
|
579
|
+
0,
|
|
580
|
+
0,
|
|
581
|
+
0,
|
|
582
|
+
1,
|
|
583
|
+
1,
|
|
584
|
+
1,
|
|
585
|
+
1,
|
|
586
|
+
1,
|
|
587
|
+
1,
|
|
588
|
+
1,
|
|
589
|
+
1,
|
|
590
|
+
1,
|
|
591
|
+
1,
|
|
592
|
+
1,
|
|
593
|
+
1,
|
|
594
|
+
1,
|
|
595
|
+
1,
|
|
596
|
+
1,
|
|
597
|
+
1,
|
|
598
|
+
1,
|
|
599
|
+
1,
|
|
600
|
+
1,
|
|
601
|
+
1,
|
|
602
|
+
1,
|
|
603
|
+
1,
|
|
604
|
+
1,
|
|
605
|
+
1,
|
|
606
|
+
1,
|
|
607
|
+
1,
|
|
608
|
+
0,
|
|
609
|
+
0,
|
|
610
|
+
0,
|
|
611
|
+
0,
|
|
612
|
+
1,
|
|
613
|
+
0,
|
|
614
|
+
1,
|
|
615
|
+
1,
|
|
616
|
+
1,
|
|
617
|
+
1,
|
|
618
|
+
1,
|
|
619
|
+
1,
|
|
620
|
+
1,
|
|
621
|
+
1,
|
|
622
|
+
1,
|
|
623
|
+
1,
|
|
624
|
+
1,
|
|
625
|
+
1,
|
|
626
|
+
1,
|
|
627
|
+
1,
|
|
628
|
+
1,
|
|
629
|
+
1,
|
|
630
|
+
1,
|
|
631
|
+
1,
|
|
632
|
+
1,
|
|
633
|
+
1,
|
|
634
|
+
1,
|
|
635
|
+
1,
|
|
636
|
+
1,
|
|
637
|
+
1,
|
|
638
|
+
1,
|
|
639
|
+
1,
|
|
640
|
+
0,
|
|
641
|
+
0,
|
|
642
|
+
0,
|
|
643
|
+
1,
|
|
644
|
+
0
|
|
625
645
|
]);
|
|
626
646
|
function stringifyPrimitive(v) {
|
|
627
|
-
|
|
628
|
-
|
|
629
|
-
|
|
630
|
-
|
|
631
|
-
|
|
632
|
-
|
|
633
|
-
|
|
634
|
-
|
|
635
|
-
|
|
636
|
-
|
|
637
|
-
|
|
638
|
-
|
|
639
|
-
|
|
647
|
+
if (typeof v === "string") {
|
|
648
|
+
return v;
|
|
649
|
+
}
|
|
650
|
+
if (typeof v === "number" && isFinite(v)) {
|
|
651
|
+
return "" + v;
|
|
652
|
+
}
|
|
653
|
+
if (typeof v === "bigint") {
|
|
654
|
+
return "" + v;
|
|
655
|
+
}
|
|
656
|
+
if (typeof v === "boolean") {
|
|
657
|
+
return v ? "true" : "false";
|
|
658
|
+
}
|
|
659
|
+
return "";
|
|
640
660
|
}
|
|
641
|
-
function encodeStringifiedCustom(v,
|
|
642
|
-
|
|
661
|
+
function encodeStringifiedCustom(v, encode) {
|
|
662
|
+
return encode(stringifyPrimitive(v));
|
|
643
663
|
}
|
|
644
|
-
function encodeStringified(v,
|
|
645
|
-
|
|
646
|
-
|
|
647
|
-
|
|
648
|
-
|
|
649
|
-
|
|
650
|
-
|
|
651
|
-
|
|
652
|
-
|
|
653
|
-
|
|
654
|
-
|
|
655
|
-
|
|
656
|
-
|
|
657
|
-
|
|
664
|
+
function encodeStringified(v, encode) {
|
|
665
|
+
if (typeof v === "string") {
|
|
666
|
+
return v.length ? encode(v) : "";
|
|
667
|
+
}
|
|
668
|
+
if (typeof v === "number" && isFinite(v)) {
|
|
669
|
+
return Math.abs(v) < 1e21 ? "" + v : encode("" + v);
|
|
670
|
+
}
|
|
671
|
+
if (typeof v === "bigint") {
|
|
672
|
+
return "" + v;
|
|
673
|
+
}
|
|
674
|
+
if (typeof v === "boolean") {
|
|
675
|
+
return v ? "true" : "false";
|
|
676
|
+
}
|
|
677
|
+
return "";
|
|
658
678
|
}
|
|
679
|
+
/**
|
|
680
|
+
* Produces a URL query string from a given obj by iterating through the object's "own properties".
|
|
681
|
+
* @param obj The object to serialize into a URL query string.
|
|
682
|
+
* @param sep The substring used to delimit key and value pairs in the query string. Default: '&'.
|
|
683
|
+
* @param eq The substring used to delimit keys and values in the query string. Default: '='.
|
|
684
|
+
* @param options The stringify options
|
|
685
|
+
* @param options.encodeURIComponent The function to use when converting URL-unsafe characters to percent-encoding in the query string. Default: `querystring.escape()`.
|
|
686
|
+
* @legacy
|
|
687
|
+
* @see Tested in `test-querystring.js`
|
|
688
|
+
*/
|
|
659
689
|
function stringify(obj, sep, eq, options) {
|
|
660
|
-
|
|
661
|
-
|
|
662
|
-
|
|
663
|
-
|
|
664
|
-
|
|
665
|
-
|
|
666
|
-
|
|
667
|
-
|
|
668
|
-
|
|
669
|
-
|
|
670
|
-
|
|
671
|
-
|
|
672
|
-
|
|
673
|
-
|
|
674
|
-
|
|
675
|
-
|
|
676
|
-
|
|
677
|
-
|
|
678
|
-
|
|
679
|
-
|
|
680
|
-
|
|
681
|
-
|
|
682
|
-
|
|
683
|
-
|
|
684
|
-
|
|
685
|
-
|
|
686
|
-
|
|
687
|
-
|
|
688
|
-
|
|
689
|
-
|
|
690
|
-
|
|
691
|
-
|
|
692
|
-
|
|
693
|
-
|
|
694
|
-
|
|
695
|
-
|
|
696
|
-
|
|
690
|
+
sep ||= "&";
|
|
691
|
+
eq ||= "=";
|
|
692
|
+
const encode = options ? options.encodeURIComponent : qsEscape;
|
|
693
|
+
const convert = options ? encodeStringifiedCustom : encodeStringified;
|
|
694
|
+
if (obj !== null && typeof obj === "object") {
|
|
695
|
+
const keys = Object.keys(obj);
|
|
696
|
+
const len = keys.length;
|
|
697
|
+
let fields = "";
|
|
698
|
+
for (let i = 0; i < len; ++i) {
|
|
699
|
+
const k = keys[i];
|
|
700
|
+
const v = obj[k];
|
|
701
|
+
let ks = convert(k, encode);
|
|
702
|
+
ks += eq;
|
|
703
|
+
if (Array.isArray(v)) {
|
|
704
|
+
const vlen = v.length;
|
|
705
|
+
if (vlen === 0) continue;
|
|
706
|
+
if (fields) {
|
|
707
|
+
fields += sep;
|
|
708
|
+
}
|
|
709
|
+
for (let j = 0; j < vlen; ++j) {
|
|
710
|
+
if (j) {
|
|
711
|
+
fields += sep;
|
|
712
|
+
}
|
|
713
|
+
fields += ks;
|
|
714
|
+
fields += convert(v[j], encode);
|
|
715
|
+
}
|
|
716
|
+
} else {
|
|
717
|
+
if (fields) {
|
|
718
|
+
fields += sep;
|
|
719
|
+
}
|
|
720
|
+
fields += ks;
|
|
721
|
+
fields += convert(v, encode);
|
|
722
|
+
}
|
|
723
|
+
}
|
|
724
|
+
return fields;
|
|
725
|
+
}
|
|
726
|
+
return "";
|
|
697
727
|
}
|
|
698
728
|
const unhexTable = new Int8Array([
|
|
699
|
-
|
|
700
|
-
|
|
701
|
-
|
|
702
|
-
|
|
703
|
-
|
|
704
|
-
|
|
705
|
-
|
|
706
|
-
|
|
707
|
-
|
|
708
|
-
|
|
709
|
-
|
|
710
|
-
|
|
711
|
-
|
|
712
|
-
|
|
713
|
-
|
|
714
|
-
|
|
715
|
-
|
|
716
|
-
|
|
717
|
-
|
|
718
|
-
|
|
719
|
-
|
|
720
|
-
|
|
721
|
-
|
|
722
|
-
|
|
723
|
-
|
|
724
|
-
|
|
725
|
-
|
|
726
|
-
|
|
727
|
-
|
|
728
|
-
|
|
729
|
-
|
|
730
|
-
|
|
731
|
-
|
|
732
|
-
|
|
733
|
-
|
|
734
|
-
|
|
735
|
-
|
|
736
|
-
|
|
737
|
-
|
|
738
|
-
|
|
739
|
-
|
|
740
|
-
|
|
741
|
-
|
|
742
|
-
|
|
743
|
-
|
|
744
|
-
|
|
745
|
-
|
|
746
|
-
|
|
747
|
-
|
|
748
|
-
|
|
749
|
-
|
|
750
|
-
|
|
751
|
-
|
|
752
|
-
|
|
753
|
-
|
|
754
|
-
|
|
755
|
-
|
|
756
|
-
|
|
757
|
-
|
|
758
|
-
|
|
759
|
-
|
|
760
|
-
|
|
761
|
-
|
|
762
|
-
|
|
763
|
-
|
|
764
|
-
|
|
765
|
-
|
|
766
|
-
|
|
767
|
-
|
|
768
|
-
|
|
769
|
-
|
|
770
|
-
|
|
771
|
-
|
|
772
|
-
|
|
773
|
-
|
|
774
|
-
|
|
775
|
-
|
|
776
|
-
|
|
777
|
-
|
|
778
|
-
|
|
779
|
-
|
|
780
|
-
|
|
781
|
-
|
|
782
|
-
|
|
783
|
-
|
|
784
|
-
|
|
785
|
-
|
|
786
|
-
|
|
787
|
-
|
|
788
|
-
|
|
789
|
-
|
|
790
|
-
|
|
791
|
-
|
|
792
|
-
|
|
793
|
-
|
|
794
|
-
|
|
795
|
-
|
|
796
|
-
|
|
797
|
-
|
|
798
|
-
|
|
799
|
-
|
|
800
|
-
|
|
801
|
-
|
|
802
|
-
|
|
803
|
-
|
|
804
|
-
|
|
805
|
-
|
|
806
|
-
|
|
807
|
-
|
|
808
|
-
|
|
809
|
-
|
|
810
|
-
|
|
811
|
-
|
|
812
|
-
|
|
813
|
-
|
|
814
|
-
|
|
815
|
-
|
|
816
|
-
|
|
817
|
-
|
|
818
|
-
|
|
819
|
-
|
|
820
|
-
|
|
821
|
-
|
|
822
|
-
|
|
823
|
-
|
|
824
|
-
|
|
825
|
-
|
|
826
|
-
|
|
827
|
-
|
|
828
|
-
|
|
829
|
-
|
|
830
|
-
|
|
831
|
-
|
|
832
|
-
|
|
833
|
-
|
|
834
|
-
|
|
835
|
-
|
|
836
|
-
|
|
837
|
-
|
|
838
|
-
|
|
839
|
-
|
|
840
|
-
|
|
841
|
-
|
|
842
|
-
|
|
843
|
-
|
|
844
|
-
|
|
845
|
-
|
|
846
|
-
|
|
847
|
-
|
|
848
|
-
|
|
849
|
-
|
|
850
|
-
|
|
851
|
-
|
|
852
|
-
|
|
853
|
-
|
|
854
|
-
|
|
855
|
-
|
|
856
|
-
|
|
857
|
-
|
|
858
|
-
|
|
859
|
-
|
|
860
|
-
|
|
861
|
-
|
|
862
|
-
|
|
863
|
-
|
|
864
|
-
|
|
865
|
-
|
|
866
|
-
|
|
867
|
-
|
|
868
|
-
|
|
869
|
-
|
|
870
|
-
|
|
871
|
-
|
|
872
|
-
|
|
873
|
-
|
|
874
|
-
|
|
875
|
-
|
|
876
|
-
|
|
877
|
-
|
|
878
|
-
|
|
879
|
-
|
|
880
|
-
|
|
881
|
-
|
|
882
|
-
|
|
883
|
-
|
|
884
|
-
|
|
885
|
-
|
|
886
|
-
|
|
887
|
-
|
|
888
|
-
|
|
889
|
-
|
|
890
|
-
|
|
891
|
-
|
|
892
|
-
|
|
893
|
-
|
|
894
|
-
|
|
895
|
-
|
|
896
|
-
|
|
897
|
-
|
|
898
|
-
|
|
899
|
-
|
|
900
|
-
|
|
901
|
-
|
|
902
|
-
|
|
903
|
-
|
|
904
|
-
|
|
905
|
-
|
|
906
|
-
|
|
907
|
-
|
|
908
|
-
|
|
909
|
-
|
|
910
|
-
|
|
911
|
-
|
|
912
|
-
|
|
913
|
-
|
|
914
|
-
|
|
915
|
-
|
|
916
|
-
|
|
917
|
-
|
|
918
|
-
|
|
919
|
-
|
|
920
|
-
|
|
921
|
-
|
|
922
|
-
|
|
923
|
-
|
|
924
|
-
|
|
925
|
-
|
|
926
|
-
|
|
927
|
-
|
|
928
|
-
|
|
929
|
-
|
|
930
|
-
|
|
931
|
-
|
|
932
|
-
|
|
933
|
-
|
|
934
|
-
|
|
935
|
-
|
|
936
|
-
|
|
937
|
-
|
|
938
|
-
|
|
939
|
-
|
|
940
|
-
|
|
941
|
-
|
|
942
|
-
|
|
943
|
-
|
|
944
|
-
|
|
945
|
-
|
|
946
|
-
|
|
947
|
-
|
|
948
|
-
|
|
949
|
-
|
|
950
|
-
|
|
951
|
-
|
|
952
|
-
|
|
953
|
-
|
|
954
|
-
|
|
955
|
-
-1,
|
|
956
|
-
-1,
|
|
957
|
-
-1,
|
|
958
|
-
-1,
|
|
959
|
-
-1,
|
|
960
|
-
-1,
|
|
961
|
-
-1,
|
|
962
|
-
-1,
|
|
963
|
-
-1
|
|
964
|
-
// ... 255
|
|
729
|
+
-1,
|
|
730
|
+
-1,
|
|
731
|
+
-1,
|
|
732
|
+
-1,
|
|
733
|
+
-1,
|
|
734
|
+
-1,
|
|
735
|
+
-1,
|
|
736
|
+
-1,
|
|
737
|
+
-1,
|
|
738
|
+
-1,
|
|
739
|
+
-1,
|
|
740
|
+
-1,
|
|
741
|
+
-1,
|
|
742
|
+
-1,
|
|
743
|
+
-1,
|
|
744
|
+
-1,
|
|
745
|
+
-1,
|
|
746
|
+
-1,
|
|
747
|
+
-1,
|
|
748
|
+
-1,
|
|
749
|
+
-1,
|
|
750
|
+
-1,
|
|
751
|
+
-1,
|
|
752
|
+
-1,
|
|
753
|
+
-1,
|
|
754
|
+
-1,
|
|
755
|
+
-1,
|
|
756
|
+
-1,
|
|
757
|
+
-1,
|
|
758
|
+
-1,
|
|
759
|
+
-1,
|
|
760
|
+
-1,
|
|
761
|
+
-1,
|
|
762
|
+
-1,
|
|
763
|
+
-1,
|
|
764
|
+
-1,
|
|
765
|
+
-1,
|
|
766
|
+
-1,
|
|
767
|
+
-1,
|
|
768
|
+
-1,
|
|
769
|
+
-1,
|
|
770
|
+
-1,
|
|
771
|
+
-1,
|
|
772
|
+
-1,
|
|
773
|
+
-1,
|
|
774
|
+
-1,
|
|
775
|
+
-1,
|
|
776
|
+
-1,
|
|
777
|
+
+0,
|
|
778
|
+
+1,
|
|
779
|
+
+2,
|
|
780
|
+
+3,
|
|
781
|
+
+4,
|
|
782
|
+
+5,
|
|
783
|
+
+6,
|
|
784
|
+
+7,
|
|
785
|
+
+8,
|
|
786
|
+
+9,
|
|
787
|
+
-1,
|
|
788
|
+
-1,
|
|
789
|
+
-1,
|
|
790
|
+
-1,
|
|
791
|
+
-1,
|
|
792
|
+
-1,
|
|
793
|
+
-1,
|
|
794
|
+
10,
|
|
795
|
+
11,
|
|
796
|
+
12,
|
|
797
|
+
13,
|
|
798
|
+
14,
|
|
799
|
+
15,
|
|
800
|
+
-1,
|
|
801
|
+
-1,
|
|
802
|
+
-1,
|
|
803
|
+
-1,
|
|
804
|
+
-1,
|
|
805
|
+
-1,
|
|
806
|
+
-1,
|
|
807
|
+
-1,
|
|
808
|
+
-1,
|
|
809
|
+
-1,
|
|
810
|
+
-1,
|
|
811
|
+
-1,
|
|
812
|
+
-1,
|
|
813
|
+
-1,
|
|
814
|
+
-1,
|
|
815
|
+
-1,
|
|
816
|
+
-1,
|
|
817
|
+
-1,
|
|
818
|
+
-1,
|
|
819
|
+
-1,
|
|
820
|
+
-1,
|
|
821
|
+
-1,
|
|
822
|
+
-1,
|
|
823
|
+
-1,
|
|
824
|
+
-1,
|
|
825
|
+
-1,
|
|
826
|
+
10,
|
|
827
|
+
11,
|
|
828
|
+
12,
|
|
829
|
+
13,
|
|
830
|
+
14,
|
|
831
|
+
15,
|
|
832
|
+
-1,
|
|
833
|
+
-1,
|
|
834
|
+
-1,
|
|
835
|
+
-1,
|
|
836
|
+
-1,
|
|
837
|
+
-1,
|
|
838
|
+
-1,
|
|
839
|
+
-1,
|
|
840
|
+
-1,
|
|
841
|
+
-1,
|
|
842
|
+
-1,
|
|
843
|
+
-1,
|
|
844
|
+
-1,
|
|
845
|
+
-1,
|
|
846
|
+
-1,
|
|
847
|
+
-1,
|
|
848
|
+
-1,
|
|
849
|
+
-1,
|
|
850
|
+
-1,
|
|
851
|
+
-1,
|
|
852
|
+
-1,
|
|
853
|
+
-1,
|
|
854
|
+
-1,
|
|
855
|
+
-1,
|
|
856
|
+
-1,
|
|
857
|
+
-1,
|
|
858
|
+
-1,
|
|
859
|
+
-1,
|
|
860
|
+
-1,
|
|
861
|
+
-1,
|
|
862
|
+
-1,
|
|
863
|
+
-1,
|
|
864
|
+
-1,
|
|
865
|
+
-1,
|
|
866
|
+
-1,
|
|
867
|
+
-1,
|
|
868
|
+
-1,
|
|
869
|
+
-1,
|
|
870
|
+
-1,
|
|
871
|
+
-1,
|
|
872
|
+
-1,
|
|
873
|
+
-1,
|
|
874
|
+
-1,
|
|
875
|
+
-1,
|
|
876
|
+
-1,
|
|
877
|
+
-1,
|
|
878
|
+
-1,
|
|
879
|
+
-1,
|
|
880
|
+
-1,
|
|
881
|
+
-1,
|
|
882
|
+
-1,
|
|
883
|
+
-1,
|
|
884
|
+
-1,
|
|
885
|
+
-1,
|
|
886
|
+
-1,
|
|
887
|
+
-1,
|
|
888
|
+
-1,
|
|
889
|
+
-1,
|
|
890
|
+
-1,
|
|
891
|
+
-1,
|
|
892
|
+
-1,
|
|
893
|
+
-1,
|
|
894
|
+
-1,
|
|
895
|
+
-1,
|
|
896
|
+
-1,
|
|
897
|
+
-1,
|
|
898
|
+
-1,
|
|
899
|
+
-1,
|
|
900
|
+
-1,
|
|
901
|
+
-1,
|
|
902
|
+
-1,
|
|
903
|
+
-1,
|
|
904
|
+
-1,
|
|
905
|
+
-1,
|
|
906
|
+
-1,
|
|
907
|
+
-1,
|
|
908
|
+
-1,
|
|
909
|
+
-1,
|
|
910
|
+
-1,
|
|
911
|
+
-1,
|
|
912
|
+
-1,
|
|
913
|
+
-1,
|
|
914
|
+
-1,
|
|
915
|
+
-1,
|
|
916
|
+
-1,
|
|
917
|
+
-1,
|
|
918
|
+
-1,
|
|
919
|
+
-1,
|
|
920
|
+
-1,
|
|
921
|
+
-1,
|
|
922
|
+
-1,
|
|
923
|
+
-1,
|
|
924
|
+
-1,
|
|
925
|
+
-1,
|
|
926
|
+
-1,
|
|
927
|
+
-1,
|
|
928
|
+
-1,
|
|
929
|
+
-1,
|
|
930
|
+
-1,
|
|
931
|
+
-1,
|
|
932
|
+
-1,
|
|
933
|
+
-1,
|
|
934
|
+
-1,
|
|
935
|
+
-1,
|
|
936
|
+
-1,
|
|
937
|
+
-1,
|
|
938
|
+
-1,
|
|
939
|
+
-1,
|
|
940
|
+
-1,
|
|
941
|
+
-1,
|
|
942
|
+
-1,
|
|
943
|
+
-1,
|
|
944
|
+
-1,
|
|
945
|
+
-1,
|
|
946
|
+
-1,
|
|
947
|
+
-1,
|
|
948
|
+
-1,
|
|
949
|
+
-1,
|
|
950
|
+
-1,
|
|
951
|
+
-1,
|
|
952
|
+
-1,
|
|
953
|
+
-1,
|
|
954
|
+
-1,
|
|
955
|
+
-1,
|
|
956
|
+
-1,
|
|
957
|
+
-1,
|
|
958
|
+
-1,
|
|
959
|
+
-1,
|
|
960
|
+
-1,
|
|
961
|
+
-1,
|
|
962
|
+
-1,
|
|
963
|
+
-1,
|
|
964
|
+
-1,
|
|
965
|
+
-1,
|
|
966
|
+
-1,
|
|
967
|
+
-1,
|
|
968
|
+
-1,
|
|
969
|
+
-1,
|
|
970
|
+
-1,
|
|
971
|
+
-1,
|
|
972
|
+
-1,
|
|
973
|
+
-1,
|
|
974
|
+
-1,
|
|
975
|
+
-1,
|
|
976
|
+
-1,
|
|
977
|
+
-1,
|
|
978
|
+
-1,
|
|
979
|
+
-1,
|
|
980
|
+
-1,
|
|
981
|
+
-1,
|
|
982
|
+
-1,
|
|
983
|
+
-1,
|
|
984
|
+
-1
|
|
965
985
|
]);
|
|
986
|
+
/**
|
|
987
|
+
* A safe fast alternative to decodeURIComponent
|
|
988
|
+
*/
|
|
966
989
|
function unescapeBuffer(s, decodeSpaces = false) {
|
|
967
|
-
|
|
968
|
-
|
|
969
|
-
|
|
970
|
-
|
|
971
|
-
|
|
972
|
-
|
|
973
|
-
|
|
974
|
-
|
|
975
|
-
|
|
976
|
-
|
|
977
|
-
|
|
978
|
-
|
|
979
|
-
|
|
980
|
-
|
|
981
|
-
|
|
982
|
-
|
|
983
|
-
|
|
984
|
-
|
|
985
|
-
|
|
986
|
-
|
|
987
|
-
|
|
988
|
-
|
|
989
|
-
|
|
990
|
-
|
|
991
|
-
|
|
992
|
-
|
|
993
|
-
|
|
994
|
-
|
|
995
|
-
|
|
996
|
-
|
|
997
|
-
|
|
998
|
-
|
|
999
|
-
|
|
1000
|
-
|
|
1001
|
-
|
|
1002
|
-
|
|
1003
|
-
|
|
1004
|
-
|
|
990
|
+
const out = new Buffer(s.length);
|
|
991
|
+
let index = 0;
|
|
992
|
+
let outIndex = 0;
|
|
993
|
+
let currentChar;
|
|
994
|
+
let nextChar;
|
|
995
|
+
let hexHigh;
|
|
996
|
+
let hexLow;
|
|
997
|
+
const maxLength = s.length - 2;
|
|
998
|
+
let hasHex = false;
|
|
999
|
+
while (index < s.length) {
|
|
1000
|
+
currentChar = s.charCodeAt(index);
|
|
1001
|
+
if (currentChar === 43 && decodeSpaces) {
|
|
1002
|
+
out[outIndex++] = 32;
|
|
1003
|
+
index++;
|
|
1004
|
+
continue;
|
|
1005
|
+
}
|
|
1006
|
+
if (currentChar === 37 && index < maxLength) {
|
|
1007
|
+
currentChar = s.charCodeAt(++index);
|
|
1008
|
+
hexHigh = unhexTable[currentChar];
|
|
1009
|
+
if (!(hexHigh >= 0)) {
|
|
1010
|
+
out[outIndex++] = 37;
|
|
1011
|
+
continue;
|
|
1012
|
+
} else {
|
|
1013
|
+
nextChar = s.charCodeAt(++index);
|
|
1014
|
+
hexLow = unhexTable[nextChar];
|
|
1015
|
+
if (!(hexLow >= 0)) {
|
|
1016
|
+
out[outIndex++] = 37;
|
|
1017
|
+
index--;
|
|
1018
|
+
} else {
|
|
1019
|
+
hasHex = true;
|
|
1020
|
+
currentChar = hexHigh * 16 + hexLow;
|
|
1021
|
+
}
|
|
1022
|
+
}
|
|
1023
|
+
}
|
|
1024
|
+
out[outIndex++] = currentChar;
|
|
1025
|
+
index++;
|
|
1026
|
+
}
|
|
1027
|
+
return hasHex ? out.slice(0, outIndex) : out;
|
|
1005
1028
|
}
|
|
1006
1029
|
function qsUnescape(s) {
|
|
1007
|
-
|
|
1008
|
-
|
|
1009
|
-
|
|
1010
|
-
|
|
1011
|
-
|
|
1030
|
+
try {
|
|
1031
|
+
return decodeURIComponent(s);
|
|
1032
|
+
} catch {
|
|
1033
|
+
return unescapeBuffer(s).toString();
|
|
1034
|
+
}
|
|
1012
1035
|
}
|
|
1036
|
+
/**
|
|
1037
|
+
* Performs decoding of URL percent-encoded characters on the given `str`.
|
|
1038
|
+
* Used by `querystring.parse()` and is generally not expected to be used directly.
|
|
1039
|
+
* It is exported primarily to allow application code to provide a replacement decoding implementation if necessary by assigning `querystring.unescape` to an alternative function.
|
|
1040
|
+
* @legacy
|
|
1041
|
+
* @see Tested in `test-querystring-escape.js`
|
|
1042
|
+
*/
|
|
1013
1043
|
const unescape = qsUnescape;
|
|
1014
|
-
var
|
|
1015
|
-
|
|
1016
|
-
|
|
1017
|
-
|
|
1018
|
-
|
|
1019
|
-
|
|
1020
|
-
|
|
1021
|
-
|
|
1022
|
-
};
|
|
1023
|
-
export {
|
|
1024
|
-
ERR_INVALID_URI,
|
|
1025
|
-
decode,
|
|
1026
|
-
index_default as default,
|
|
1027
|
-
encode,
|
|
1028
|
-
escape,
|
|
1029
|
-
parse,
|
|
1030
|
-
stringify,
|
|
1031
|
-
unescape,
|
|
1032
|
-
unescapeBuffer
|
|
1044
|
+
var src_default = {
|
|
1045
|
+
parse,
|
|
1046
|
+
stringify,
|
|
1047
|
+
decode,
|
|
1048
|
+
encode,
|
|
1049
|
+
unescape,
|
|
1050
|
+
escape,
|
|
1051
|
+
unescapeBuffer
|
|
1033
1052
|
};
|
|
1053
|
+
|
|
1054
|
+
//#endregion
|
|
1055
|
+
export { ERR_INVALID_URI, decode, src_default as default, encode, escape, parse, stringify, unescape, unescapeBuffer };
|