@relative-ci/core 6.0.0 → 6.0.1-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/cjs/__/content-type/dist/index.js +155 -71
- package/lib/cjs/__/content-type/dist/index.js.map +1 -1
- package/lib/cjs/__/undici/lib/core/request.js +68 -2
- package/lib/cjs/__/undici/lib/core/request.js.map +1 -1
- package/lib/cjs/__/undici/lib/dispatcher/agent.js +6 -2
- package/lib/cjs/__/undici/lib/dispatcher/agent.js.map +1 -1
- package/lib/cjs/__/undici/lib/dispatcher/client-h1.js +18 -9
- package/lib/cjs/__/undici/lib/dispatcher/client-h1.js.map +1 -1
- package/lib/cjs/__/undici/lib/dispatcher/client-h2.js +73 -23
- package/lib/cjs/__/undici/lib/dispatcher/client-h2.js.map +1 -1
- package/lib/cjs/__/undici/lib/dispatcher/client.js +3 -2
- package/lib/cjs/__/undici/lib/dispatcher/client.js.map +1 -1
- package/lib/cjs/__/undici/lib/dispatcher/dispatcher-base.js +14 -0
- package/lib/cjs/__/undici/lib/dispatcher/dispatcher-base.js.map +1 -1
- package/lib/cjs/__/undici/lib/handler/retry-handler.js +4 -1
- package/lib/cjs/__/undici/lib/handler/retry-handler.js.map +1 -1
- package/lib/cjs/__/undici/lib/web/eventsource/eventsource-stream.js +93 -10
- package/lib/cjs/__/undici/lib/web/eventsource/eventsource-stream.js.map +1 -1
- package/lib/cjs/__/undici/lib/web/eventsource/eventsource.js +5 -1
- package/lib/cjs/__/undici/lib/web/eventsource/eventsource.js.map +1 -1
- package/lib/cjs/__/undici/lib/web/fetch/index.js +7 -9
- package/lib/cjs/__/undici/lib/web/fetch/index.js.map +1 -1
- package/lib/cjs/__/undici/lib/web/websocket/receiver.js +14 -0
- package/lib/cjs/__/undici/lib/web/websocket/receiver.js.map +1 -1
- package/lib/cjs/env/load.js +1 -1
- package/lib/cjs/env/load.js.map +1 -1
- package/lib/esm/__/content-type/dist/index.js +155 -71
- package/lib/esm/__/content-type/dist/index.js.map +1 -1
- package/lib/esm/__/undici/lib/core/request.js +68 -2
- package/lib/esm/__/undici/lib/core/request.js.map +1 -1
- package/lib/esm/__/undici/lib/dispatcher/agent.js +6 -2
- package/lib/esm/__/undici/lib/dispatcher/agent.js.map +1 -1
- package/lib/esm/__/undici/lib/dispatcher/client-h1.js +18 -9
- package/lib/esm/__/undici/lib/dispatcher/client-h1.js.map +1 -1
- package/lib/esm/__/undici/lib/dispatcher/client-h2.js +72 -23
- package/lib/esm/__/undici/lib/dispatcher/client-h2.js.map +1 -1
- package/lib/esm/__/undici/lib/dispatcher/client.js +3 -2
- package/lib/esm/__/undici/lib/dispatcher/client.js.map +1 -1
- package/lib/esm/__/undici/lib/dispatcher/dispatcher-base.js +10 -0
- package/lib/esm/__/undici/lib/dispatcher/dispatcher-base.js.map +1 -1
- package/lib/esm/__/undici/lib/handler/retry-handler.js +4 -1
- package/lib/esm/__/undici/lib/handler/retry-handler.js.map +1 -1
- package/lib/esm/__/undici/lib/web/eventsource/eventsource-stream.js +92 -10
- package/lib/esm/__/undici/lib/web/eventsource/eventsource-stream.js.map +1 -1
- package/lib/esm/__/undici/lib/web/eventsource/eventsource.js +5 -1
- package/lib/esm/__/undici/lib/web/eventsource/eventsource.js.map +1 -1
- package/lib/esm/__/undici/lib/web/fetch/index.js +7 -9
- package/lib/esm/__/undici/lib/web/fetch/index.js.map +1 -1
- package/lib/esm/__/undici/lib/web/websocket/receiver.js +14 -0
- package/lib/esm/__/undici/lib/web/websocket/receiver.js.map +1 -1
- package/lib/esm/env/load.js +1 -1
- package/lib/esm/env/load.js.map +1 -1
- package/lib/esm/index.js +2 -2
- package/package.json +10 -10
|
@@ -5,6 +5,44 @@
|
|
|
5
5
|
* Copyright(c) 2015 Douglas Christopher Wilson
|
|
6
6
|
* MIT Licensed
|
|
7
7
|
*/
|
|
8
|
+
const SP = 32; // " "
|
|
9
|
+
const HTAB = 9; // "\t"
|
|
10
|
+
const SEMI = 59; // ";"
|
|
11
|
+
const EQ = 61; // "="
|
|
12
|
+
const DQUOTE = 34; // '"'
|
|
13
|
+
const BSLASH = 92; // "\\"
|
|
14
|
+
const COMMA = 44; // ","
|
|
15
|
+
const LOWER_CASE = 1;
|
|
16
|
+
const OWS = 2;
|
|
17
|
+
const SEMI_FLAG = 4;
|
|
18
|
+
const COMMA_FLAG = 8;
|
|
19
|
+
const TOKEN_FLAG = 16;
|
|
20
|
+
const NON_ASCII = 0xff00;
|
|
21
|
+
const CASE_FLAGS = LOWER_CASE | NON_ASCII;
|
|
22
|
+
/**
|
|
23
|
+
* Character flags used to normalize HTTP field values while scanning.
|
|
24
|
+
* Out-of-range reads intentionally coerce to zero in bitwise expressions.
|
|
25
|
+
*/
|
|
26
|
+
const CHAR_MAP = new Uint8Array(0x100);
|
|
27
|
+
CHAR_MAP[HTAB] |= OWS;
|
|
28
|
+
CHAR_MAP[SP] |= OWS;
|
|
29
|
+
CHAR_MAP[SEMI] |= SEMI_FLAG;
|
|
30
|
+
CHAR_MAP[COMMA] |= COMMA_FLAG;
|
|
31
|
+
for (let code = 0x80 /* non-ASCII */; code <= 0xff; code++) {
|
|
32
|
+
CHAR_MAP[code] |= LOWER_CASE;
|
|
33
|
+
}
|
|
34
|
+
for (const char of "!#$%&'*+-.^_`|~") {
|
|
35
|
+
CHAR_MAP[char.charCodeAt(0)] |= TOKEN_FLAG;
|
|
36
|
+
}
|
|
37
|
+
for (let code = 0x30 /* 0 */; code <= 0x39 /* 9 */; code++) {
|
|
38
|
+
CHAR_MAP[code] |= TOKEN_FLAG;
|
|
39
|
+
}
|
|
40
|
+
for (let code = 0x41 /* A */; code <= 0x5a /* Z */; code++) {
|
|
41
|
+
CHAR_MAP[code] |= LOWER_CASE | TOKEN_FLAG;
|
|
42
|
+
}
|
|
43
|
+
for (let code = 0x61 /* a */; code <= 0x7a /* z */; code++) {
|
|
44
|
+
CHAR_MAP[code] |= TOKEN_FLAG;
|
|
45
|
+
}
|
|
8
46
|
/**
|
|
9
47
|
* Null object perf optimization. Faster than `Object.create(null)` and `{ __proto__: null }`.
|
|
10
48
|
*/
|
|
@@ -17,112 +55,158 @@ const NullObject = /* @__PURE__ */ (() => {
|
|
|
17
55
|
* Parse a `Content-Type` header.
|
|
18
56
|
*/
|
|
19
57
|
function parse(header, options) {
|
|
20
|
-
const
|
|
58
|
+
const stopFlags = SEMI_FLAG | (0);
|
|
21
59
|
const len = header.length;
|
|
22
|
-
let
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
60
|
+
let valueStart = 0;
|
|
61
|
+
while ((CHAR_MAP[header.charCodeAt(valueStart)] & OWS) !== 0) {
|
|
62
|
+
valueStart++;
|
|
63
|
+
}
|
|
64
|
+
let index = valueStart;
|
|
65
|
+
let typeFlags = 0;
|
|
66
|
+
let whitespace = -1;
|
|
67
|
+
let stop = 0;
|
|
68
|
+
while (index < len) {
|
|
69
|
+
const code = header.charCodeAt(index);
|
|
70
|
+
const flags = CHAR_MAP[code];
|
|
71
|
+
if ((flags & stopFlags) !== 0) {
|
|
72
|
+
stop |= flags & COMMA_FLAG;
|
|
73
|
+
break;
|
|
74
|
+
}
|
|
75
|
+
if ((flags & OWS) !== 0) {
|
|
76
|
+
if (whitespace === -1)
|
|
77
|
+
whitespace = index;
|
|
78
|
+
}
|
|
79
|
+
else {
|
|
80
|
+
whitespace = -1;
|
|
81
|
+
}
|
|
82
|
+
typeFlags |= (code & NON_ASCII) | flags;
|
|
83
|
+
index++;
|
|
84
|
+
}
|
|
85
|
+
const valueEnd = whitespace === -1 ? index : whitespace;
|
|
86
|
+
const value = header.slice(valueStart, valueEnd);
|
|
87
|
+
const type = (typeFlags & CASE_FLAGS) === 0 ? value : value.toLowerCase();
|
|
88
|
+
if (index === len || stop !== 0) {
|
|
89
|
+
return { type, index, parameters: new NullObject() };
|
|
90
|
+
}
|
|
91
|
+
return parseParameters(header, type, index, len, stopFlags);
|
|
28
92
|
}
|
|
29
|
-
const SP = 32; // " "
|
|
30
|
-
const HTAB = 9; // "\t"
|
|
31
|
-
const SEMI = 59; // ";"
|
|
32
|
-
const EQ = 61; // "="
|
|
33
|
-
const DQUOTE = 34; // '"'
|
|
34
|
-
const BSLASH = 92; // "\\"
|
|
35
93
|
/**
|
|
36
94
|
* Parses the parameters of a `Content-Type` header starting at the given index.
|
|
37
95
|
*/
|
|
38
|
-
function parseParameters(header, type, index, len,
|
|
96
|
+
function parseParameters(header, type, index, len, stopFlags) {
|
|
39
97
|
const parameters = new NullObject();
|
|
40
98
|
parameter: while (index < len) {
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
99
|
+
index++; // Skip over ;
|
|
100
|
+
while ((CHAR_MAP[header.charCodeAt(index)] & OWS) !== 0) {
|
|
101
|
+
index++;
|
|
102
|
+
}
|
|
44
103
|
const keyStart = index;
|
|
104
|
+
let keyFlags = 0;
|
|
105
|
+
let keyWhitespace = -1;
|
|
45
106
|
while (index < len) {
|
|
46
107
|
const code = header.charCodeAt(index);
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
108
|
+
const flags = CHAR_MAP[code];
|
|
109
|
+
if ((flags & stopFlags) !== 0) {
|
|
110
|
+
if ((flags & COMMA_FLAG) !== 0)
|
|
111
|
+
break parameter;
|
|
50
112
|
continue parameter;
|
|
113
|
+
}
|
|
51
114
|
if (code === EQ) {
|
|
52
|
-
const keyEnd =
|
|
53
|
-
const
|
|
54
|
-
|
|
55
|
-
|
|
115
|
+
const keyEnd = keyWhitespace === -1 ? index : keyWhitespace;
|
|
116
|
+
const value = header.slice(keyStart, keyEnd);
|
|
117
|
+
const key = (keyFlags & CASE_FLAGS) === 0 ? value : value.toLowerCase();
|
|
118
|
+
index++;
|
|
119
|
+
while ((CHAR_MAP[header.charCodeAt(index)] & OWS) !== 0) {
|
|
56
120
|
index++;
|
|
57
|
-
|
|
121
|
+
}
|
|
122
|
+
if (index < len && header.charCodeAt(index) === DQUOTE) {
|
|
123
|
+
const quotedStart = ++index;
|
|
124
|
+
let escaped = false;
|
|
58
125
|
while (index < len) {
|
|
59
|
-
const code = header.charCodeAt(index
|
|
126
|
+
const code = header.charCodeAt(index);
|
|
60
127
|
if (code === DQUOTE) {
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
128
|
+
if (parameters[key] === undefined) {
|
|
129
|
+
parameters[key] = escaped
|
|
130
|
+
? unescapeQuotedPairs(header, quotedStart, index)
|
|
131
|
+
: header.slice(quotedStart, index);
|
|
132
|
+
}
|
|
133
|
+
index++;
|
|
134
|
+
let stop = 0;
|
|
135
|
+
// Discard characters between quote and delimiter.
|
|
136
|
+
while (index < len) {
|
|
137
|
+
const code = header.charCodeAt(index);
|
|
138
|
+
const flags = CHAR_MAP[code];
|
|
139
|
+
if ((flags & stopFlags) !== 0) {
|
|
140
|
+
stop = flags & COMMA_FLAG;
|
|
141
|
+
break;
|
|
142
|
+
}
|
|
143
|
+
index++;
|
|
144
|
+
}
|
|
145
|
+
if (stop !== 0)
|
|
146
|
+
break parameter;
|
|
147
|
+
continue parameter;
|
|
65
148
|
}
|
|
66
|
-
if (code === BSLASH && index < len) {
|
|
67
|
-
|
|
149
|
+
if (code === BSLASH && index + 1 < len) {
|
|
150
|
+
escaped = true;
|
|
151
|
+
index += 2;
|
|
68
152
|
continue;
|
|
69
153
|
}
|
|
70
|
-
|
|
154
|
+
index++;
|
|
71
155
|
}
|
|
72
156
|
continue parameter;
|
|
73
157
|
}
|
|
74
158
|
const valueStart = index;
|
|
75
|
-
|
|
159
|
+
let stop = 0;
|
|
160
|
+
let valueWhitespace = -1;
|
|
161
|
+
while (index < len) {
|
|
162
|
+
const code = header.charCodeAt(index);
|
|
163
|
+
const flags = CHAR_MAP[code];
|
|
164
|
+
if ((flags & stopFlags) !== 0) {
|
|
165
|
+
stop = flags & COMMA_FLAG;
|
|
166
|
+
break;
|
|
167
|
+
}
|
|
168
|
+
if ((flags & OWS) !== 0) {
|
|
169
|
+
if (valueWhitespace === -1)
|
|
170
|
+
valueWhitespace = index;
|
|
171
|
+
}
|
|
172
|
+
else {
|
|
173
|
+
valueWhitespace = -1;
|
|
174
|
+
}
|
|
175
|
+
index++;
|
|
176
|
+
}
|
|
76
177
|
if (parameters[key] === undefined) {
|
|
77
|
-
const valueEnd =
|
|
178
|
+
const valueEnd = valueWhitespace === -1 ? index : valueWhitespace;
|
|
78
179
|
parameters[key] = header.slice(valueStart, valueEnd);
|
|
79
180
|
}
|
|
181
|
+
if (stop !== 0)
|
|
182
|
+
break parameter;
|
|
80
183
|
continue parameter;
|
|
81
184
|
}
|
|
185
|
+
if ((flags & OWS) !== 0) {
|
|
186
|
+
if (keyWhitespace === -1)
|
|
187
|
+
keyWhitespace = index;
|
|
188
|
+
}
|
|
189
|
+
else {
|
|
190
|
+
keyWhitespace = -1;
|
|
191
|
+
}
|
|
192
|
+
keyFlags |= (code & NON_ASCII) | flags;
|
|
82
193
|
index++;
|
|
83
194
|
}
|
|
84
195
|
}
|
|
85
196
|
return { type, index, parameters };
|
|
86
197
|
}
|
|
87
198
|
/**
|
|
88
|
-
*
|
|
199
|
+
* Remove backslashes from quoted pairs in a known-terminated quoted string body.
|
|
89
200
|
*/
|
|
90
|
-
function
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
if (
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
return index;
|
|
98
|
-
}
|
|
99
|
-
/**
|
|
100
|
-
* Skip optional whitespace (OWS) in an HTTP header value.
|
|
101
|
-
*
|
|
102
|
-
* OWS is defined in RFC 9110 sec 5.6.3 as SP (" ") or HTAB ("\t").
|
|
103
|
-
*/
|
|
104
|
-
function skipOWS(header, index, len) {
|
|
105
|
-
while (index < len) {
|
|
106
|
-
const char = header.charCodeAt(index);
|
|
107
|
-
if (char !== SP && char !== HTAB)
|
|
108
|
-
break;
|
|
109
|
-
index++;
|
|
110
|
-
}
|
|
111
|
-
return index;
|
|
112
|
-
}
|
|
113
|
-
/**
|
|
114
|
-
* Trim optional whitespace (OWS) from the end of a substring.
|
|
115
|
-
*
|
|
116
|
-
* OWS is defined in RFC 9110 sec 5.6.3 as SP (" ") or HTAB ("\t").
|
|
117
|
-
*/
|
|
118
|
-
function trailingOWS(header, start, end) {
|
|
119
|
-
while (end > start) {
|
|
120
|
-
const char = header.charCodeAt(end - 1);
|
|
121
|
-
if (char !== SP && char !== HTAB)
|
|
122
|
-
break;
|
|
123
|
-
end--;
|
|
201
|
+
function unescapeQuotedPairs(str, start, end) {
|
|
202
|
+
let result = "";
|
|
203
|
+
for (let index = start; index < end; index++) {
|
|
204
|
+
if (str.charCodeAt(index) === BSLASH) {
|
|
205
|
+
result += str.slice(start, index);
|
|
206
|
+
start = ++index;
|
|
207
|
+
}
|
|
124
208
|
}
|
|
125
|
-
return end;
|
|
209
|
+
return result + str.slice(start, end);
|
|
126
210
|
}
|
|
127
211
|
|
|
128
212
|
exports.parse = parse;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../../../../../node_modules/content-type/dist/index.js"],"sourcesContent":["/*!\n * content-type\n * Copyright(c) 2015 Douglas Christopher Wilson\n * MIT Licensed\n */\nconst TEXT_REGEXP = /^[\\u0009\\u0020-\\u007e\\u0080-\\u00ff]*$/;\nconst TOKEN_REGEXP = /^[!#$%&'*+.^_`|~0-9A-Za-z-]+$/;\n/**\n * RegExp to match chars that must be quoted-pair in RFC 9110 sec 5.6.4\n */\nconst QUOTE_REGEXP = /[\\\\\"]/g;\n/**\n * RegExp to match type in RFC 9110 sec 8.3.1\n *\n * media-type = type \"/\" subtype\n * type = token\n * subtype = token\n */\nconst TYPE_REGEXP = /^[!#$%&'*+.^_`|~0-9A-Za-z-]+\\/[!#$%&'*+.^_`|~0-9A-Za-z-]+$/;\n/**\n * Null object perf optimization. Faster than `Object.create(null)` and `{ __proto__: null }`.\n */\nconst NullObject = /* @__PURE__ */ (() => {\n const C = function () { };\n C.prototype = Object.create(null);\n return C;\n})();\n/**\n * Format an object into a `Content-Type` header.\n */\nexport function format(obj) {\n const { type, parameters } = obj;\n if (!type || !TYPE_REGEXP.test(type)) {\n throw new TypeError(`Invalid type: ${type}`);\n }\n let result = type;\n if (parameters) {\n for (const param of Object.keys(parameters)) {\n if (!TOKEN_REGEXP.test(param)) {\n throw new TypeError(`Invalid parameter name: ${param}`);\n }\n result += `; ${param}=${qstring(parameters[param])}`;\n }\n }\n return result;\n}\n/**\n * Parse a `Content-Type` header.\n */\nexport function parse(header, options) {\n const stopChar = options?.comma === true ? COMMA : 65_536; // Sentinel for \"no stop char\".\n const len = header.length;\n let index = skipOWS(header, options?.start ?? 0, len);\n const valueStart = index;\n index = skipValue(header, index, len, stopChar);\n const valueEnd = trailingOWS(header, valueStart, index);\n const type = header.slice(valueStart, valueEnd).toLowerCase();\n if (options?.parameters === false) {\n return { type, index, parameters: new NullObject() };\n }\n return parseParameters(header, type, index, len, stopChar);\n}\nconst SP = 32; // \" \"\nconst HTAB = 9; // \"\\t\"\nconst SEMI = 59; // \";\"\nconst EQ = 61; // \"=\"\nconst DQUOTE = 34; // '\"'\nconst BSLASH = 92; // \"\\\\\"\nconst COMMA = 44; // \",\"\n/**\n * Parses the parameters of a `Content-Type` header starting at the given index.\n */\nfunction parseParameters(header, type, index, len, stopChar) {\n const parameters = new NullObject();\n parameter: while (index < len) {\n if (header.charCodeAt(index) === stopChar)\n break;\n index = skipOWS(header, index + 1 /* Skip over ; */, len);\n const keyStart = index;\n while (index < len) {\n const code = header.charCodeAt(index);\n if (code === stopChar)\n break parameter;\n if (code === SEMI)\n continue parameter;\n if (code === EQ) {\n const keyEnd = trailingOWS(header, keyStart, index);\n const key = header.slice(keyStart, keyEnd).toLowerCase();\n index = skipOWS(header, index + 1, len);\n if (index < len && header.charCodeAt(index) === DQUOTE) {\n index++;\n let value = \"\";\n while (index < len) {\n const code = header.charCodeAt(index++);\n if (code === DQUOTE) {\n index = skipValue(header, index, len, stopChar);\n if (parameters[key] === undefined)\n parameters[key] = value;\n break;\n }\n if (code === BSLASH && index < len) {\n value += header[index++];\n continue;\n }\n value += String.fromCharCode(code);\n }\n continue parameter;\n }\n const valueStart = index;\n index = skipValue(header, index, len, stopChar);\n if (parameters[key] === undefined) {\n const valueEnd = trailingOWS(header, valueStart, index);\n parameters[key] = header.slice(valueStart, valueEnd);\n }\n continue parameter;\n }\n index++;\n }\n }\n return { type, index, parameters };\n}\n/**\n * Skip over characters until a semicolon or other exit character.\n */\nfunction skipValue(str, index, len, stopChar) {\n while (index < len) {\n const code = str.charCodeAt(index);\n if (code === SEMI || code === stopChar)\n break;\n index++;\n }\n return index;\n}\n/**\n * Skip optional whitespace (OWS) in an HTTP header value.\n *\n * OWS is defined in RFC 9110 sec 5.6.3 as SP (\" \") or HTAB (\"\\t\").\n */\nfunction skipOWS(header, index, len) {\n while (index < len) {\n const char = header.charCodeAt(index);\n if (char !== SP && char !== HTAB)\n break;\n index++;\n }\n return index;\n}\n/**\n * Trim optional whitespace (OWS) from the end of a substring.\n *\n * OWS is defined in RFC 9110 sec 5.6.3 as SP (\" \") or HTAB (\"\\t\").\n */\nfunction trailingOWS(header, start, end) {\n while (end > start) {\n const char = header.charCodeAt(end - 1);\n if (char !== SP && char !== HTAB)\n break;\n end--;\n }\n return end;\n}\n/**\n * Serialize a parameter value.\n */\nfunction qstring(str) {\n if (TOKEN_REGEXP.test(str))\n return str;\n if (TEXT_REGEXP.test(str))\n return `\"${str.replace(QUOTE_REGEXP, \"\\\\$&\")}\"`;\n throw new TypeError(`Invalid parameter value: ${str}`);\n}\n//# sourceMappingURL=index.js.map"],"names":[],"mappings":"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","x_google_ignoreList":[0]}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../../../../node_modules/content-type/dist/index.js"],"sourcesContent":["/*!\n * content-type\n * Copyright(c) 2015 Douglas Christopher Wilson\n * MIT Licensed\n */\nconst SP = 32; // \" \"\nconst HTAB = 9; // \"\\t\"\nconst SEMI = 59; // \";\"\nconst EQ = 61; // \"=\"\nconst DQUOTE = 34; // '\"'\nconst BSLASH = 92; // \"\\\\\"\nconst COMMA = 44; // \",\"\nconst LOWER_CASE = 1;\nconst OWS = 2;\nconst SEMI_FLAG = 4;\nconst COMMA_FLAG = 8;\nconst TOKEN_FLAG = 16;\nconst NON_ASCII = 0xff00;\nconst CASE_FLAGS = LOWER_CASE | NON_ASCII;\n/**\n * Character flags used to normalize HTTP field values while scanning.\n * Out-of-range reads intentionally coerce to zero in bitwise expressions.\n */\nconst CHAR_MAP = new Uint8Array(0x100);\nCHAR_MAP[HTAB] |= OWS;\nCHAR_MAP[SP] |= OWS;\nCHAR_MAP[SEMI] |= SEMI_FLAG;\nCHAR_MAP[COMMA] |= COMMA_FLAG;\nfor (let code = 0x80 /* non-ASCII */; code <= 0xff; code++) {\n CHAR_MAP[code] |= LOWER_CASE;\n}\nfor (const char of \"!#$%&'*+-.^_`|~\") {\n CHAR_MAP[char.charCodeAt(0)] |= TOKEN_FLAG;\n}\nfor (let code = 0x30 /* 0 */; code <= 0x39 /* 9 */; code++) {\n CHAR_MAP[code] |= TOKEN_FLAG;\n}\nfor (let code = 0x41 /* A */; code <= 0x5a /* Z */; code++) {\n CHAR_MAP[code] |= LOWER_CASE | TOKEN_FLAG;\n}\nfor (let code = 0x61 /* a */; code <= 0x7a /* z */; code++) {\n CHAR_MAP[code] |= TOKEN_FLAG;\n}\n/**\n * Null object perf optimization. Faster than `Object.create(null)` and `{ __proto__: null }`.\n */\nconst NullObject = /* @__PURE__ */ (() => {\n const C = function () { };\n C.prototype = Object.create(null);\n return C;\n})();\n/**\n * Validate a type string against RFC 9110.\n */\nexport function isTypeValid(type, start = 0, end = type.length) {\n let hasSlash = false;\n for (let index = start; index < end; index++) {\n const code = type.charCodeAt(index);\n if (code === 47 /* / */) {\n if (hasSlash || index === start || index >= end - 1)\n return false;\n hasSlash = true;\n }\n else if (!isTokenCode(code)) {\n return false;\n }\n }\n return hasSlash;\n}\n/**\n * Validate a token against RFC 9110.\n */\nexport function isTokenValid(token, start = 0, end = token.length) {\n if (start >= end)\n return false;\n for (let index = start; index < end; index++) {\n if (!isTokenCode(token.charCodeAt(index)))\n return false;\n }\n return true;\n}\n/**\n * Check whether a character code belongs to the token production in RFC 9110.\n */\nfunction isTokenCode(code) {\n return (CHAR_MAP[code] & TOKEN_FLAG) !== 0;\n}\n/**\n * Serialize a parameter value.\n */\nfunction parameterValue(str) {\n const len = str.length;\n if (len === 0)\n return '\"\"';\n let index = 0;\n while (index < len && isTokenCode(str.charCodeAt(index)))\n index++;\n if (index === len)\n return str;\n let result = '\"';\n let start = 0;\n while (index < len) {\n const code = str.charCodeAt(index);\n if (code !== HTAB && (code < SP || code === 127 || code > 255)) {\n throw new TypeError(`Invalid parameter value: ${str}`);\n }\n if (code === 34 /* \" */ || code === 92 /* \\\\ */) {\n result += `${str.slice(start, index)}\\\\`;\n start = index;\n }\n index++;\n }\n return `${result}${str.slice(start)}\"`;\n}\n/**\n * Format an object into a `Content-Type` header.\n */\nexport function format(obj) {\n const { type, parameters } = obj;\n if (!type || !isTypeValid(type)) {\n throw new TypeError(`Invalid type: ${type}`);\n }\n let result = type;\n if (parameters) {\n for (const param of Object.keys(parameters)) {\n if (!isTokenValid(param)) {\n throw new TypeError(`Invalid parameter name: ${param}`);\n }\n result += `; ${param}=${parameterValue(parameters[param])}`;\n }\n }\n return result;\n}\n/**\n * Parse a `Content-Type` header.\n */\nexport function parse(header, options) {\n const stopFlags = SEMI_FLAG | (options?.comma === true ? COMMA_FLAG : 0);\n const len = header.length;\n let valueStart = options?.start ?? 0;\n while ((CHAR_MAP[header.charCodeAt(valueStart)] & OWS) !== 0) {\n valueStart++;\n }\n let index = valueStart;\n let typeFlags = 0;\n let whitespace = -1;\n let stop = options?.parameters === false ? COMMA_FLAG : 0;\n while (index < len) {\n const code = header.charCodeAt(index);\n const flags = CHAR_MAP[code];\n if ((flags & stopFlags) !== 0) {\n stop |= flags & COMMA_FLAG;\n break;\n }\n if ((flags & OWS) !== 0) {\n if (whitespace === -1)\n whitespace = index;\n }\n else {\n whitespace = -1;\n }\n typeFlags |= (code & NON_ASCII) | flags;\n index++;\n }\n const valueEnd = whitespace === -1 ? index : whitespace;\n const value = header.slice(valueStart, valueEnd);\n const type = (typeFlags & CASE_FLAGS) === 0 ? value : value.toLowerCase();\n if (index === len || stop !== 0) {\n return { type, index, parameters: new NullObject() };\n }\n return parseParameters(header, type, index, len, stopFlags);\n}\n/**\n * Parses the parameters of a `Content-Type` header starting at the given index.\n */\nfunction parseParameters(header, type, index, len, stopFlags) {\n const parameters = new NullObject();\n parameter: while (index < len) {\n index++; // Skip over ;\n while ((CHAR_MAP[header.charCodeAt(index)] & OWS) !== 0) {\n index++;\n }\n const keyStart = index;\n let keyFlags = 0;\n let keyWhitespace = -1;\n while (index < len) {\n const code = header.charCodeAt(index);\n const flags = CHAR_MAP[code];\n if ((flags & stopFlags) !== 0) {\n if ((flags & COMMA_FLAG) !== 0)\n break parameter;\n continue parameter;\n }\n if (code === EQ) {\n const keyEnd = keyWhitespace === -1 ? index : keyWhitespace;\n const value = header.slice(keyStart, keyEnd);\n const key = (keyFlags & CASE_FLAGS) === 0 ? value : value.toLowerCase();\n index++;\n while ((CHAR_MAP[header.charCodeAt(index)] & OWS) !== 0) {\n index++;\n }\n if (index < len && header.charCodeAt(index) === DQUOTE) {\n const quotedStart = ++index;\n let escaped = false;\n while (index < len) {\n const code = header.charCodeAt(index);\n if (code === DQUOTE) {\n if (parameters[key] === undefined) {\n parameters[key] = escaped\n ? unescapeQuotedPairs(header, quotedStart, index)\n : header.slice(quotedStart, index);\n }\n index++;\n let stop = 0;\n // Discard characters between quote and delimiter.\n while (index < len) {\n const code = header.charCodeAt(index);\n const flags = CHAR_MAP[code];\n if ((flags & stopFlags) !== 0) {\n stop = flags & COMMA_FLAG;\n break;\n }\n index++;\n }\n if (stop !== 0)\n break parameter;\n continue parameter;\n }\n if (code === BSLASH && index + 1 < len) {\n escaped = true;\n index += 2;\n continue;\n }\n index++;\n }\n continue parameter;\n }\n const valueStart = index;\n let stop = 0;\n let valueWhitespace = -1;\n while (index < len) {\n const code = header.charCodeAt(index);\n const flags = CHAR_MAP[code];\n if ((flags & stopFlags) !== 0) {\n stop = flags & COMMA_FLAG;\n break;\n }\n if ((flags & OWS) !== 0) {\n if (valueWhitespace === -1)\n valueWhitespace = index;\n }\n else {\n valueWhitespace = -1;\n }\n index++;\n }\n if (parameters[key] === undefined) {\n const valueEnd = valueWhitespace === -1 ? index : valueWhitespace;\n parameters[key] = header.slice(valueStart, valueEnd);\n }\n if (stop !== 0)\n break parameter;\n continue parameter;\n }\n if ((flags & OWS) !== 0) {\n if (keyWhitespace === -1)\n keyWhitespace = index;\n }\n else {\n keyWhitespace = -1;\n }\n keyFlags |= (code & NON_ASCII) | flags;\n index++;\n }\n }\n return { type, index, parameters };\n}\n/**\n * Remove backslashes from quoted pairs in a known-terminated quoted string body.\n */\nfunction unescapeQuotedPairs(str, start, end) {\n let result = \"\";\n for (let index = start; index < end; index++) {\n if (str.charCodeAt(index) === BSLASH) {\n result += str.slice(start, index);\n start = ++index;\n }\n }\n return result + str.slice(start, end);\n}\n//# sourceMappingURL=index.js.map"],"names":[],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA,MAAM,EAAE,GAAG,EAAE,CAAC;AACd,MAAM,IAAI,GAAG,CAAC,CAAC;AACf,MAAM,IAAI,GAAG,EAAE,CAAC;AAChB,MAAM,EAAE,GAAG,EAAE,CAAC;AACd,MAAM,MAAM,GAAG,EAAE,CAAC;AAClB,MAAM,MAAM,GAAG,EAAE,CAAC;AAClB,MAAM,KAAK,GAAG,EAAE,CAAC;AACjB,MAAM,UAAU,GAAG,CAAC;AACpB,MAAM,GAAG,GAAG,CAAC;AACb,MAAM,SAAS,GAAG,CAAC;AACnB,MAAM,UAAU,GAAG,CAAC;AACpB,MAAM,UAAU,GAAG,EAAE;AACrB,MAAM,SAAS,GAAG,MAAM;AACxB,MAAM,UAAU,GAAG,UAAU,GAAG,SAAS;AACzC;AACA;AACA;AACA;AACA,MAAM,QAAQ,GAAG,IAAI,UAAU,CAAC,KAAK,CAAC;AACtC,QAAQ,CAAC,IAAI,CAAC,IAAI,GAAG;AACrB,QAAQ,CAAC,EAAE,CAAC,IAAI,GAAG;AACnB,QAAQ,CAAC,IAAI,CAAC,IAAI,SAAS;AAC3B,QAAQ,CAAC,KAAK,CAAC,IAAI,UAAU;AAC7B,KAAK,IAAI,IAAI,GAAG,IAAI,kBAAkB,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,EAAE;AAC5D,IAAI,QAAQ,CAAC,IAAI,CAAC,IAAI,UAAU;AAChC;AACA,KAAK,MAAM,IAAI,IAAI,iBAAiB,EAAE;AACtC,IAAI,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,UAAU;AAC9C;AACA,KAAK,IAAI,IAAI,GAAG,IAAI,UAAU,IAAI,IAAI,IAAI,UAAU,IAAI,EAAE,EAAE;AAC5D,IAAI,QAAQ,CAAC,IAAI,CAAC,IAAI,UAAU;AAChC;AACA,KAAK,IAAI,IAAI,GAAG,IAAI,UAAU,IAAI,IAAI,IAAI,UAAU,IAAI,EAAE,EAAE;AAC5D,IAAI,QAAQ,CAAC,IAAI,CAAC,IAAI,UAAU,GAAG,UAAU;AAC7C;AACA,KAAK,IAAI,IAAI,GAAG,IAAI,UAAU,IAAI,IAAI,IAAI,UAAU,IAAI,EAAE,EAAE;AAC5D,IAAI,QAAQ,CAAC,IAAI,CAAC,IAAI,UAAU;AAChC;AACA;AACA;AACA;AACA,MAAM,UAAU,mBAAmB,CAAC,MAAM;AAC1C,IAAI,MAAM,CAAC,GAAG,YAAY,EAAE,CAAC;AAC7B,IAAI,CAAC,CAAC,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;AACrC,IAAI,OAAO,CAAC;AACZ,CAAC,GAAG;AAmFJ;AACA;AACA;AACO,SAAS,KAAK,CAAC,MAAM,EAAE,OAAO,EAAE;AACvC,IAAI,MAAM,SAAS,GAAG,SAAS,IAA2C,CAAC,CAAC;AAC5E,IAAI,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM;AAC7B,IAAI,IAAI,UAAU,GAAqB,CAAC;AACxC,IAAI,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,GAAG,GAAG,MAAM,CAAC,EAAE;AAClE,QAAQ,UAAU,EAAE;AACpB,IAAI;AACJ,IAAI,IAAI,KAAK,GAAG,UAAU;AAC1B,IAAI,IAAI,SAAS,GAAG,CAAC;AACrB,IAAI,IAAI,UAAU,GAAG,EAAE;AACvB,IAAI,IAAI,IAAI,GAAgD,CAAC;AAC7D,IAAI,OAAO,KAAK,GAAG,GAAG,EAAE;AACxB,QAAQ,MAAM,IAAI,GAAG,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC;AAC7C,QAAQ,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC;AACpC,QAAQ,IAAI,CAAC,KAAK,GAAG,SAAS,MAAM,CAAC,EAAE;AACvC,YAAY,IAAI,IAAI,KAAK,GAAG,UAAU;AACtC,YAAY;AACZ,QAAQ;AACR,QAAQ,IAAI,CAAC,KAAK,GAAG,GAAG,MAAM,CAAC,EAAE;AACjC,YAAY,IAAI,UAAU,KAAK,EAAE;AACjC,gBAAgB,UAAU,GAAG,KAAK;AAClC,QAAQ;AACR,aAAa;AACb,YAAY,UAAU,GAAG,EAAE;AAC3B,QAAQ;AACR,QAAQ,SAAS,IAAI,CAAC,IAAI,GAAG,SAAS,IAAI,KAAK;AAC/C,QAAQ,KAAK,EAAE;AACf,IAAI;AACJ,IAAI,MAAM,QAAQ,GAAG,UAAU,KAAK,EAAE,GAAG,KAAK,GAAG,UAAU;AAC3D,IAAI,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,UAAU,EAAE,QAAQ,CAAC;AACpD,IAAI,MAAM,IAAI,GAAG,CAAC,SAAS,GAAG,UAAU,MAAM,CAAC,GAAG,KAAK,GAAG,KAAK,CAAC,WAAW,EAAE;AAC7E,IAAI,IAAI,KAAK,KAAK,GAAG,IAAI,IAAI,KAAK,CAAC,EAAE;AACrC,QAAQ,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,UAAU,EAAE,EAAE;AAC5D,IAAI;AACJ,IAAI,OAAO,eAAe,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,CAAC;AAC/D;AACA;AACA;AACA;AACA,SAAS,eAAe,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE;AAC9D,IAAI,MAAM,UAAU,GAAG,IAAI,UAAU,EAAE;AACvC,IAAI,SAAS,EAAE,OAAO,KAAK,GAAG,GAAG,EAAE;AACnC,QAAQ,KAAK,EAAE,CAAC;AAChB,QAAQ,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,GAAG,GAAG,MAAM,CAAC,EAAE;AACjE,YAAY,KAAK,EAAE;AACnB,QAAQ;AACR,QAAQ,MAAM,QAAQ,GAAG,KAAK;AAC9B,QAAQ,IAAI,QAAQ,GAAG,CAAC;AACxB,QAAQ,IAAI,aAAa,GAAG,EAAE;AAC9B,QAAQ,OAAO,KAAK,GAAG,GAAG,EAAE;AAC5B,YAAY,MAAM,IAAI,GAAG,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC;AACjD,YAAY,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC;AACxC,YAAY,IAAI,CAAC,KAAK,GAAG,SAAS,MAAM,CAAC,EAAE;AAC3C,gBAAgB,IAAI,CAAC,KAAK,GAAG,UAAU,MAAM,CAAC;AAC9C,oBAAoB,MAAM,SAAS;AACnC,gBAAgB,SAAS,SAAS;AAClC,YAAY;AACZ,YAAY,IAAI,IAAI,KAAK,EAAE,EAAE;AAC7B,gBAAgB,MAAM,MAAM,GAAG,aAAa,KAAK,EAAE,GAAG,KAAK,GAAG,aAAa;AAC3E,gBAAgB,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,MAAM,CAAC;AAC5D,gBAAgB,MAAM,GAAG,GAAG,CAAC,QAAQ,GAAG,UAAU,MAAM,CAAC,GAAG,KAAK,GAAG,KAAK,CAAC,WAAW,EAAE;AACvF,gBAAgB,KAAK,EAAE;AACvB,gBAAgB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,GAAG,GAAG,MAAM,CAAC,EAAE;AACzE,oBAAoB,KAAK,EAAE;AAC3B,gBAAgB;AAChB,gBAAgB,IAAI,KAAK,GAAG,GAAG,IAAI,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,KAAK,MAAM,EAAE;AACxE,oBAAoB,MAAM,WAAW,GAAG,EAAE,KAAK;AAC/C,oBAAoB,IAAI,OAAO,GAAG,KAAK;AACvC,oBAAoB,OAAO,KAAK,GAAG,GAAG,EAAE;AACxC,wBAAwB,MAAM,IAAI,GAAG,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC;AAC7D,wBAAwB,IAAI,IAAI,KAAK,MAAM,EAAE;AAC7C,4BAA4B,IAAI,UAAU,CAAC,GAAG,CAAC,KAAK,SAAS,EAAE;AAC/D,gCAAgC,UAAU,CAAC,GAAG,CAAC,GAAG;AAClD,sCAAsC,mBAAmB,CAAC,MAAM,EAAE,WAAW,EAAE,KAAK;AACpF,sCAAsC,MAAM,CAAC,KAAK,CAAC,WAAW,EAAE,KAAK,CAAC;AACtE,4BAA4B;AAC5B,4BAA4B,KAAK,EAAE;AACnC,4BAA4B,IAAI,IAAI,GAAG,CAAC;AACxC;AACA,4BAA4B,OAAO,KAAK,GAAG,GAAG,EAAE;AAChD,gCAAgC,MAAM,IAAI,GAAG,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC;AACrE,gCAAgC,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC;AAC5D,gCAAgC,IAAI,CAAC,KAAK,GAAG,SAAS,MAAM,CAAC,EAAE;AAC/D,oCAAoC,IAAI,GAAG,KAAK,GAAG,UAAU;AAC7D,oCAAoC;AACpC,gCAAgC;AAChC,gCAAgC,KAAK,EAAE;AACvC,4BAA4B;AAC5B,4BAA4B,IAAI,IAAI,KAAK,CAAC;AAC1C,gCAAgC,MAAM,SAAS;AAC/C,4BAA4B,SAAS,SAAS;AAC9C,wBAAwB;AACxB,wBAAwB,IAAI,IAAI,KAAK,MAAM,IAAI,KAAK,GAAG,CAAC,GAAG,GAAG,EAAE;AAChE,4BAA4B,OAAO,GAAG,IAAI;AAC1C,4BAA4B,KAAK,IAAI,CAAC;AACtC,4BAA4B;AAC5B,wBAAwB;AACxB,wBAAwB,KAAK,EAAE;AAC/B,oBAAoB;AACpB,oBAAoB,SAAS,SAAS;AACtC,gBAAgB;AAChB,gBAAgB,MAAM,UAAU,GAAG,KAAK;AACxC,gBAAgB,IAAI,IAAI,GAAG,CAAC;AAC5B,gBAAgB,IAAI,eAAe,GAAG,EAAE;AACxC,gBAAgB,OAAO,KAAK,GAAG,GAAG,EAAE;AACpC,oBAAoB,MAAM,IAAI,GAAG,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC;AACzD,oBAAoB,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC;AAChD,oBAAoB,IAAI,CAAC,KAAK,GAAG,SAAS,MAAM,CAAC,EAAE;AACnD,wBAAwB,IAAI,GAAG,KAAK,GAAG,UAAU;AACjD,wBAAwB;AACxB,oBAAoB;AACpB,oBAAoB,IAAI,CAAC,KAAK,GAAG,GAAG,MAAM,CAAC,EAAE;AAC7C,wBAAwB,IAAI,eAAe,KAAK,EAAE;AAClD,4BAA4B,eAAe,GAAG,KAAK;AACnD,oBAAoB;AACpB,yBAAyB;AACzB,wBAAwB,eAAe,GAAG,EAAE;AAC5C,oBAAoB;AACpB,oBAAoB,KAAK,EAAE;AAC3B,gBAAgB;AAChB,gBAAgB,IAAI,UAAU,CAAC,GAAG,CAAC,KAAK,SAAS,EAAE;AACnD,oBAAoB,MAAM,QAAQ,GAAG,eAAe,KAAK,EAAE,GAAG,KAAK,GAAG,eAAe;AACrF,oBAAoB,UAAU,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,UAAU,EAAE,QAAQ,CAAC;AACxE,gBAAgB;AAChB,gBAAgB,IAAI,IAAI,KAAK,CAAC;AAC9B,oBAAoB,MAAM,SAAS;AACnC,gBAAgB,SAAS,SAAS;AAClC,YAAY;AACZ,YAAY,IAAI,CAAC,KAAK,GAAG,GAAG,MAAM,CAAC,EAAE;AACrC,gBAAgB,IAAI,aAAa,KAAK,EAAE;AACxC,oBAAoB,aAAa,GAAG,KAAK;AACzC,YAAY;AACZ,iBAAiB;AACjB,gBAAgB,aAAa,GAAG,EAAE;AAClC,YAAY;AACZ,YAAY,QAAQ,IAAI,CAAC,IAAI,GAAG,SAAS,IAAI,KAAK;AAClD,YAAY,KAAK,EAAE;AACnB,QAAQ;AACR,IAAI;AACJ,IAAI,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE;AACtC;AACA;AACA;AACA;AACA,SAAS,mBAAmB,CAAC,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE;AAC9C,IAAI,IAAI,MAAM,GAAG,EAAE;AACnB,IAAI,KAAK,IAAI,KAAK,GAAG,KAAK,EAAE,KAAK,GAAG,GAAG,EAAE,KAAK,EAAE,EAAE;AAClD,QAAQ,IAAI,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,KAAK,MAAM,EAAE;AAC9C,YAAY,MAAM,IAAI,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC;AAC7C,YAAY,KAAK,GAAG,EAAE,KAAK;AAC3B,QAAQ;AACR,IAAI;AACJ,IAAI,OAAO,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC;AACzC;;","x_google_ignoreList":[0]}
|
|
@@ -280,11 +280,77 @@ function requireRequest () {
|
|
|
280
280
|
}
|
|
281
281
|
}
|
|
282
282
|
|
|
283
|
-
|
|
283
|
+
/**
|
|
284
|
+
* @param {number|null} statusCode
|
|
285
|
+
* @param {Buffer[]|null} headers
|
|
286
|
+
* @param {import('node:stream').Duplex} socket
|
|
287
|
+
* @param {string} [statusText]
|
|
288
|
+
*/
|
|
289
|
+
onUpgrade (statusCode, headers, socket, statusText = '') {
|
|
290
|
+
this.onFinally();
|
|
291
|
+
|
|
284
292
|
assert(!this.aborted);
|
|
285
293
|
assert(!this.completed);
|
|
286
294
|
|
|
287
|
-
|
|
295
|
+
if (statusCode !== null) {
|
|
296
|
+
this.#publishUpgradeHeaders(statusCode, headers, statusText);
|
|
297
|
+
}
|
|
298
|
+
|
|
299
|
+
const result = this[kHandler].onUpgrade(statusCode, headers, socket);
|
|
300
|
+
|
|
301
|
+
if (!this.aborted) {
|
|
302
|
+
this.completed = true;
|
|
303
|
+
if (statusCode !== null) {
|
|
304
|
+
this.#publishUpgradeTrailers();
|
|
305
|
+
}
|
|
306
|
+
}
|
|
307
|
+
|
|
308
|
+
return result
|
|
309
|
+
}
|
|
310
|
+
|
|
311
|
+
/**
|
|
312
|
+
* @param {number} statusCode
|
|
313
|
+
* @param {import('node:http2').IncomingHttpHeaders} headers
|
|
314
|
+
* @param {(headers: import('node:http2').IncomingHttpHeaders) => Buffer[]} parseHeaders
|
|
315
|
+
* @param {string} [statusText]
|
|
316
|
+
*/
|
|
317
|
+
onUpgradeResponse (statusCode, headers, parseHeaders, statusText = '') {
|
|
318
|
+
assert(!this.aborted);
|
|
319
|
+
assert(this.completed);
|
|
320
|
+
|
|
321
|
+
if (channels.headers.hasSubscribers) {
|
|
322
|
+
this.#publishUpgradeHeaders(statusCode, parseHeaders(headers), statusText);
|
|
323
|
+
}
|
|
324
|
+
this.#publishUpgradeTrailers();
|
|
325
|
+
}
|
|
326
|
+
|
|
327
|
+
/**
|
|
328
|
+
* @param {Error} error
|
|
329
|
+
*/
|
|
330
|
+
onUpgradeError (error) {
|
|
331
|
+
assert(!this.aborted);
|
|
332
|
+
assert(this.completed);
|
|
333
|
+
|
|
334
|
+
if (channels.error.hasSubscribers) {
|
|
335
|
+
channels.error.publish({ request: this, error });
|
|
336
|
+
}
|
|
337
|
+
}
|
|
338
|
+
|
|
339
|
+
/**
|
|
340
|
+
* @param {number} statusCode
|
|
341
|
+
* @param {Buffer[]} headers
|
|
342
|
+
* @param {string} statusText
|
|
343
|
+
*/
|
|
344
|
+
#publishUpgradeHeaders (statusCode, headers, statusText) {
|
|
345
|
+
if (channels.headers.hasSubscribers) {
|
|
346
|
+
channels.headers.publish({ request: this, response: { statusCode, headers, statusText } });
|
|
347
|
+
}
|
|
348
|
+
}
|
|
349
|
+
|
|
350
|
+
#publishUpgradeTrailers () {
|
|
351
|
+
if (channels.trailers.hasSubscribers) {
|
|
352
|
+
channels.trailers.publish({ request: this, trailers: [] });
|
|
353
|
+
}
|
|
288
354
|
}
|
|
289
355
|
|
|
290
356
|
onComplete (trailers) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"request.js","sources":["../../../../../../../../node_modules/undici/lib/core/request.js"],"sourcesContent":["'use strict'\n\nconst {\n InvalidArgumentError,\n NotSupportedError\n} = require('./errors')\nconst assert = require('node:assert')\nconst {\n isValidHTTPToken,\n isValidHeaderValue,\n isStream,\n destroy,\n isBuffer,\n isFormDataLike,\n isIterable,\n isBlobLike,\n buildURL,\n validateHandler,\n getServerName,\n normalizedMethodRecords\n} = require('./util')\nconst { channels } = require('./diagnostics.js')\nconst { headerNameLowerCasedRecord } = require('./constants')\n\n// Verifies that a given path is valid does not contain control chars \\x00 to \\x20\nconst invalidPathRegex = /[^\\u0021-\\u00ff]/\n\nconst kHandler = Symbol('handler')\n\nclass Request {\n constructor (origin, {\n path,\n method,\n body,\n headers,\n query,\n idempotent,\n blocking,\n upgrade,\n headersTimeout,\n bodyTimeout,\n reset,\n throwOnError,\n expectContinue,\n servername\n }, handler) {\n if (typeof path !== 'string') {\n throw new InvalidArgumentError('path must be a string')\n } else if (\n path[0] !== '/' &&\n !(path.startsWith('http://') || path.startsWith('https://')) &&\n method !== 'CONNECT'\n ) {\n throw new InvalidArgumentError('path must be an absolute URL or start with a slash')\n } else if (invalidPathRegex.test(path)) {\n throw new InvalidArgumentError('invalid request path')\n }\n\n if (typeof method !== 'string') {\n throw new InvalidArgumentError('method must be a string')\n } else if (normalizedMethodRecords[method] === undefined && !isValidHTTPToken(method)) {\n throw new InvalidArgumentError('invalid request method')\n }\n\n if (upgrade && typeof upgrade !== 'string') {\n throw new InvalidArgumentError('upgrade must be a string')\n }\n\n if (upgrade && !isValidHeaderValue(upgrade)) {\n throw new InvalidArgumentError('invalid upgrade header')\n }\n\n if (headersTimeout != null && (!Number.isFinite(headersTimeout) || headersTimeout < 0)) {\n throw new InvalidArgumentError('invalid headersTimeout')\n }\n\n if (bodyTimeout != null && (!Number.isFinite(bodyTimeout) || bodyTimeout < 0)) {\n throw new InvalidArgumentError('invalid bodyTimeout')\n }\n\n if (reset != null && typeof reset !== 'boolean') {\n throw new InvalidArgumentError('invalid reset')\n }\n\n if (expectContinue != null && typeof expectContinue !== 'boolean') {\n throw new InvalidArgumentError('invalid expectContinue')\n }\n\n this.headersTimeout = headersTimeout\n\n this.bodyTimeout = bodyTimeout\n\n this.throwOnError = throwOnError === true\n\n this.method = method\n\n this.abort = null\n\n if (body == null) {\n this.body = null\n } else if (isStream(body)) {\n this.body = body\n\n const rState = this.body._readableState\n if (!rState || !rState.autoDestroy) {\n this.endHandler = function autoDestroy () {\n destroy(this)\n }\n this.body.on('end', this.endHandler)\n }\n\n this.errorHandler = err => {\n if (this.abort) {\n this.abort(err)\n } else {\n this.error = err\n }\n }\n this.body.on('error', this.errorHandler)\n } else if (isBuffer(body)) {\n this.body = body.byteLength ? body : null\n } else if (ArrayBuffer.isView(body)) {\n this.body = body.buffer.byteLength ? Buffer.from(body.buffer, body.byteOffset, body.byteLength) : null\n } else if (body instanceof ArrayBuffer) {\n this.body = body.byteLength ? Buffer.from(body) : null\n } else if (typeof body === 'string') {\n this.body = body.length ? Buffer.from(body) : null\n } else if (isFormDataLike(body) || isIterable(body) || isBlobLike(body)) {\n this.body = body\n } else {\n throw new InvalidArgumentError('body must be a string, a Buffer, a Readable stream, an iterable, or an async iterable')\n }\n\n this.completed = false\n\n this.aborted = false\n\n this.upgrade = upgrade || null\n\n this.path = query ? buildURL(path, query) : path\n\n this.origin = origin\n\n this.idempotent = idempotent == null\n ? method === 'HEAD' || method === 'GET'\n : idempotent\n\n this.blocking = blocking == null ? false : blocking\n\n this.reset = reset == null ? null : reset\n\n this.host = null\n\n this.contentLength = null\n\n this.contentType = null\n\n this.headers = []\n\n // Only for H2\n this.expectContinue = expectContinue != null ? expectContinue : false\n\n if (Array.isArray(headers)) {\n if (headers.length % 2 !== 0) {\n throw new InvalidArgumentError('headers array must be even')\n }\n for (let i = 0; i < headers.length; i += 2) {\n processHeader(this, headers[i], headers[i + 1])\n }\n } else if (headers && typeof headers === 'object') {\n if (headers[Symbol.iterator]) {\n for (const header of headers) {\n if (!Array.isArray(header) || header.length !== 2) {\n throw new InvalidArgumentError('headers must be in key-value pair format')\n }\n processHeader(this, header[0], header[1])\n }\n } else {\n const keys = Object.keys(headers)\n for (let i = 0; i < keys.length; ++i) {\n processHeader(this, keys[i], headers[keys[i]])\n }\n }\n } else if (headers != null) {\n throw new InvalidArgumentError('headers must be an object or an array')\n }\n\n validateHandler(handler, method, upgrade)\n\n this.servername = servername || getServerName(this.host)\n\n this[kHandler] = handler\n\n if (channels.create.hasSubscribers) {\n channels.create.publish({ request: this })\n }\n }\n\n onBodySent (chunk) {\n if (this[kHandler].onBodySent) {\n try {\n return this[kHandler].onBodySent(chunk)\n } catch (err) {\n this.abort(err)\n }\n }\n }\n\n onRequestSent () {\n if (channels.bodySent.hasSubscribers) {\n channels.bodySent.publish({ request: this })\n }\n\n if (this[kHandler].onRequestSent) {\n try {\n return this[kHandler].onRequestSent()\n } catch (err) {\n this.abort(err)\n }\n }\n }\n\n onConnect (abort) {\n assert(!this.aborted)\n assert(!this.completed)\n\n if (this.error) {\n abort(this.error)\n } else {\n this.abort = abort\n return this[kHandler].onConnect(abort)\n }\n }\n\n onResponseStarted () {\n return this[kHandler].onResponseStarted?.()\n }\n\n onHeaders (statusCode, headers, resume, statusText) {\n assert(!this.aborted)\n assert(!this.completed)\n\n if (channels.headers.hasSubscribers) {\n channels.headers.publish({ request: this, response: { statusCode, headers, statusText } })\n }\n\n try {\n return this[kHandler].onHeaders(statusCode, headers, resume, statusText)\n } catch (err) {\n this.abort(err)\n }\n }\n\n onData (chunk) {\n assert(!this.aborted)\n assert(!this.completed)\n\n try {\n return this[kHandler].onData(chunk)\n } catch (err) {\n this.abort(err)\n return false\n }\n }\n\n onUpgrade (statusCode, headers, socket) {\n assert(!this.aborted)\n assert(!this.completed)\n\n return this[kHandler].onUpgrade(statusCode, headers, socket)\n }\n\n onComplete (trailers) {\n this.onFinally()\n\n assert(!this.aborted)\n\n this.completed = true\n if (channels.trailers.hasSubscribers) {\n channels.trailers.publish({ request: this, trailers })\n }\n\n try {\n return this[kHandler].onComplete(trailers)\n } catch (err) {\n // TODO (fix): This might be a bad idea?\n this.onError(err)\n }\n }\n\n onError (error) {\n this.onFinally()\n\n if (channels.error.hasSubscribers) {\n channels.error.publish({ request: this, error })\n }\n\n if (this.aborted) {\n return\n }\n this.aborted = true\n\n return this[kHandler].onError(error)\n }\n\n onFinally () {\n if (this.errorHandler) {\n this.body.off('error', this.errorHandler)\n this.errorHandler = null\n }\n\n if (this.endHandler) {\n this.body.off('end', this.endHandler)\n this.endHandler = null\n }\n }\n\n addHeader (key, value) {\n processHeader(this, key, value)\n return this\n }\n}\n\nfunction processHeader (request, key, val) {\n if (val && (typeof val === 'object' && !Array.isArray(val))) {\n throw new InvalidArgumentError(`invalid ${key} header`)\n } else if (val === undefined) {\n return\n }\n\n let headerName = headerNameLowerCasedRecord[key]\n\n if (headerName === undefined) {\n headerName = key.toLowerCase()\n if (headerNameLowerCasedRecord[headerName] === undefined && !isValidHTTPToken(headerName)) {\n throw new InvalidArgumentError('invalid header key')\n }\n }\n\n if (Array.isArray(val)) {\n const arr = []\n for (let i = 0; i < val.length; i++) {\n if (typeof val[i] === 'string') {\n if (!isValidHeaderValue(val[i])) {\n throw new InvalidArgumentError(`invalid ${key} header`)\n }\n arr.push(val[i])\n } else if (val[i] === null) {\n arr.push('')\n } else if (typeof val[i] === 'object') {\n throw new InvalidArgumentError(`invalid ${key} header`)\n } else {\n // Coerce primitives (and reject unsafe coercions such as functions\n // with a crafted toString/Symbol.toPrimitive).\n const str = `${val[i]}`\n if (!isValidHeaderValue(str)) {\n throw new InvalidArgumentError(`invalid ${key} header`)\n }\n arr.push(str)\n }\n }\n val = arr\n } else if (typeof val === 'string') {\n if (!isValidHeaderValue(val)) {\n throw new InvalidArgumentError(`invalid ${key} header`)\n }\n } else if (val === null) {\n val = ''\n } else {\n // Coerce primitives (and reject unsafe coercions such as functions\n // with a crafted toString/Symbol.toPrimitive).\n val = `${val}`\n if (!isValidHeaderValue(val)) {\n throw new InvalidArgumentError(`invalid ${key} header`)\n }\n }\n\n if (headerName === 'host') {\n if (request.host !== null) {\n throw new InvalidArgumentError('duplicate host header')\n }\n if (typeof val !== 'string') {\n throw new InvalidArgumentError('invalid host header')\n }\n // Consumed by Client\n request.host = val\n } else if (headerName === 'content-length') {\n if (request.contentLength !== null) {\n throw new InvalidArgumentError('duplicate content-length header')\n }\n request.contentLength = parseInt(val, 10)\n if (!Number.isFinite(request.contentLength)) {\n throw new InvalidArgumentError('invalid content-length header')\n }\n } else if (request.contentType === null && headerName === 'content-type') {\n request.contentType = val\n request.headers.push(key, val)\n } else if (headerName === 'transfer-encoding' || headerName === 'keep-alive' || headerName === 'upgrade') {\n throw new InvalidArgumentError(`invalid ${headerName} header`)\n } else if (headerName === 'connection') {\n const value = typeof val === 'string' ? val.toLowerCase() : null\n if (value !== 'close' && value !== 'keep-alive') {\n throw new InvalidArgumentError('invalid connection header')\n }\n\n if (value === 'close') {\n request.reset = true\n }\n } else if (headerName === 'expect') {\n throw new NotSupportedError('expect header not supported')\n } else {\n request.headers.push(key, val)\n }\n}\n\nmodule.exports = Request\n"],"names":["require$$0","require$$1","require$$2","require$$3","require$$4"],"mappings":"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","x_google_ignoreList":[0]}
|
|
1
|
+
{"version":3,"file":"request.js","sources":["../../../../../../../../node_modules/undici/lib/core/request.js"],"sourcesContent":["'use strict'\n\nconst {\n InvalidArgumentError,\n NotSupportedError\n} = require('./errors')\nconst assert = require('node:assert')\nconst {\n isValidHTTPToken,\n isValidHeaderValue,\n isStream,\n destroy,\n isBuffer,\n isFormDataLike,\n isIterable,\n isBlobLike,\n buildURL,\n validateHandler,\n getServerName,\n normalizedMethodRecords\n} = require('./util')\nconst { channels } = require('./diagnostics.js')\nconst { headerNameLowerCasedRecord } = require('./constants')\n\n// Verifies that a given path is valid does not contain control chars \\x00 to \\x20\nconst invalidPathRegex = /[^\\u0021-\\u00ff]/\n\nconst kHandler = Symbol('handler')\n\nclass Request {\n constructor (origin, {\n path,\n method,\n body,\n headers,\n query,\n idempotent,\n blocking,\n upgrade,\n headersTimeout,\n bodyTimeout,\n reset,\n throwOnError,\n expectContinue,\n servername\n }, handler) {\n if (typeof path !== 'string') {\n throw new InvalidArgumentError('path must be a string')\n } else if (\n path[0] !== '/' &&\n !(path.startsWith('http://') || path.startsWith('https://')) &&\n method !== 'CONNECT'\n ) {\n throw new InvalidArgumentError('path must be an absolute URL or start with a slash')\n } else if (invalidPathRegex.test(path)) {\n throw new InvalidArgumentError('invalid request path')\n }\n\n if (typeof method !== 'string') {\n throw new InvalidArgumentError('method must be a string')\n } else if (normalizedMethodRecords[method] === undefined && !isValidHTTPToken(method)) {\n throw new InvalidArgumentError('invalid request method')\n }\n\n if (upgrade && typeof upgrade !== 'string') {\n throw new InvalidArgumentError('upgrade must be a string')\n }\n\n if (upgrade && !isValidHeaderValue(upgrade)) {\n throw new InvalidArgumentError('invalid upgrade header')\n }\n\n if (headersTimeout != null && (!Number.isFinite(headersTimeout) || headersTimeout < 0)) {\n throw new InvalidArgumentError('invalid headersTimeout')\n }\n\n if (bodyTimeout != null && (!Number.isFinite(bodyTimeout) || bodyTimeout < 0)) {\n throw new InvalidArgumentError('invalid bodyTimeout')\n }\n\n if (reset != null && typeof reset !== 'boolean') {\n throw new InvalidArgumentError('invalid reset')\n }\n\n if (expectContinue != null && typeof expectContinue !== 'boolean') {\n throw new InvalidArgumentError('invalid expectContinue')\n }\n\n this.headersTimeout = headersTimeout\n\n this.bodyTimeout = bodyTimeout\n\n this.throwOnError = throwOnError === true\n\n this.method = method\n\n this.abort = null\n\n if (body == null) {\n this.body = null\n } else if (isStream(body)) {\n this.body = body\n\n const rState = this.body._readableState\n if (!rState || !rState.autoDestroy) {\n this.endHandler = function autoDestroy () {\n destroy(this)\n }\n this.body.on('end', this.endHandler)\n }\n\n this.errorHandler = err => {\n if (this.abort) {\n this.abort(err)\n } else {\n this.error = err\n }\n }\n this.body.on('error', this.errorHandler)\n } else if (isBuffer(body)) {\n this.body = body.byteLength ? body : null\n } else if (ArrayBuffer.isView(body)) {\n this.body = body.buffer.byteLength ? Buffer.from(body.buffer, body.byteOffset, body.byteLength) : null\n } else if (body instanceof ArrayBuffer) {\n this.body = body.byteLength ? Buffer.from(body) : null\n } else if (typeof body === 'string') {\n this.body = body.length ? Buffer.from(body) : null\n } else if (isFormDataLike(body) || isIterable(body) || isBlobLike(body)) {\n this.body = body\n } else {\n throw new InvalidArgumentError('body must be a string, a Buffer, a Readable stream, an iterable, or an async iterable')\n }\n\n this.completed = false\n\n this.aborted = false\n\n this.upgrade = upgrade || null\n\n this.path = query ? buildURL(path, query) : path\n\n this.origin = origin\n\n this.idempotent = idempotent == null\n ? method === 'HEAD' || method === 'GET'\n : idempotent\n\n this.blocking = blocking == null ? false : blocking\n\n this.reset = reset == null ? null : reset\n\n this.host = null\n\n this.contentLength = null\n\n this.contentType = null\n\n this.headers = []\n\n // Only for H2\n this.expectContinue = expectContinue != null ? expectContinue : false\n\n if (Array.isArray(headers)) {\n if (headers.length % 2 !== 0) {\n throw new InvalidArgumentError('headers array must be even')\n }\n for (let i = 0; i < headers.length; i += 2) {\n processHeader(this, headers[i], headers[i + 1])\n }\n } else if (headers && typeof headers === 'object') {\n if (headers[Symbol.iterator]) {\n for (const header of headers) {\n if (!Array.isArray(header) || header.length !== 2) {\n throw new InvalidArgumentError('headers must be in key-value pair format')\n }\n processHeader(this, header[0], header[1])\n }\n } else {\n const keys = Object.keys(headers)\n for (let i = 0; i < keys.length; ++i) {\n processHeader(this, keys[i], headers[keys[i]])\n }\n }\n } else if (headers != null) {\n throw new InvalidArgumentError('headers must be an object or an array')\n }\n\n validateHandler(handler, method, upgrade)\n\n this.servername = servername || getServerName(this.host)\n\n this[kHandler] = handler\n\n if (channels.create.hasSubscribers) {\n channels.create.publish({ request: this })\n }\n }\n\n onBodySent (chunk) {\n if (this[kHandler].onBodySent) {\n try {\n return this[kHandler].onBodySent(chunk)\n } catch (err) {\n this.abort(err)\n }\n }\n }\n\n onRequestSent () {\n if (channels.bodySent.hasSubscribers) {\n channels.bodySent.publish({ request: this })\n }\n\n if (this[kHandler].onRequestSent) {\n try {\n return this[kHandler].onRequestSent()\n } catch (err) {\n this.abort(err)\n }\n }\n }\n\n onConnect (abort) {\n assert(!this.aborted)\n assert(!this.completed)\n\n if (this.error) {\n abort(this.error)\n } else {\n this.abort = abort\n return this[kHandler].onConnect(abort)\n }\n }\n\n onResponseStarted () {\n return this[kHandler].onResponseStarted?.()\n }\n\n onHeaders (statusCode, headers, resume, statusText) {\n assert(!this.aborted)\n assert(!this.completed)\n\n if (channels.headers.hasSubscribers) {\n channels.headers.publish({ request: this, response: { statusCode, headers, statusText } })\n }\n\n try {\n return this[kHandler].onHeaders(statusCode, headers, resume, statusText)\n } catch (err) {\n this.abort(err)\n }\n }\n\n onData (chunk) {\n assert(!this.aborted)\n assert(!this.completed)\n\n try {\n return this[kHandler].onData(chunk)\n } catch (err) {\n this.abort(err)\n return false\n }\n }\n\n /**\n * @param {number|null} statusCode\n * @param {Buffer[]|null} headers\n * @param {import('node:stream').Duplex} socket\n * @param {string} [statusText]\n */\n onUpgrade (statusCode, headers, socket, statusText = '') {\n this.onFinally()\n\n assert(!this.aborted)\n assert(!this.completed)\n\n if (statusCode !== null) {\n this.#publishUpgradeHeaders(statusCode, headers, statusText)\n }\n\n const result = this[kHandler].onUpgrade(statusCode, headers, socket)\n\n if (!this.aborted) {\n this.completed = true\n if (statusCode !== null) {\n this.#publishUpgradeTrailers()\n }\n }\n\n return result\n }\n\n /**\n * @param {number} statusCode\n * @param {import('node:http2').IncomingHttpHeaders} headers\n * @param {(headers: import('node:http2').IncomingHttpHeaders) => Buffer[]} parseHeaders\n * @param {string} [statusText]\n */\n onUpgradeResponse (statusCode, headers, parseHeaders, statusText = '') {\n assert(!this.aborted)\n assert(this.completed)\n\n if (channels.headers.hasSubscribers) {\n this.#publishUpgradeHeaders(statusCode, parseHeaders(headers), statusText)\n }\n this.#publishUpgradeTrailers()\n }\n\n /**\n * @param {Error} error\n */\n onUpgradeError (error) {\n assert(!this.aborted)\n assert(this.completed)\n\n if (channels.error.hasSubscribers) {\n channels.error.publish({ request: this, error })\n }\n }\n\n /**\n * @param {number} statusCode\n * @param {Buffer[]} headers\n * @param {string} statusText\n */\n #publishUpgradeHeaders (statusCode, headers, statusText) {\n if (channels.headers.hasSubscribers) {\n channels.headers.publish({ request: this, response: { statusCode, headers, statusText } })\n }\n }\n\n #publishUpgradeTrailers () {\n if (channels.trailers.hasSubscribers) {\n channels.trailers.publish({ request: this, trailers: [] })\n }\n }\n\n onComplete (trailers) {\n this.onFinally()\n\n assert(!this.aborted)\n\n this.completed = true\n if (channels.trailers.hasSubscribers) {\n channels.trailers.publish({ request: this, trailers })\n }\n\n try {\n return this[kHandler].onComplete(trailers)\n } catch (err) {\n // TODO (fix): This might be a bad idea?\n this.onError(err)\n }\n }\n\n onError (error) {\n this.onFinally()\n\n if (channels.error.hasSubscribers) {\n channels.error.publish({ request: this, error })\n }\n\n if (this.aborted) {\n return\n }\n this.aborted = true\n\n return this[kHandler].onError(error)\n }\n\n onFinally () {\n if (this.errorHandler) {\n this.body.off('error', this.errorHandler)\n this.errorHandler = null\n }\n\n if (this.endHandler) {\n this.body.off('end', this.endHandler)\n this.endHandler = null\n }\n }\n\n addHeader (key, value) {\n processHeader(this, key, value)\n return this\n }\n}\n\nfunction processHeader (request, key, val) {\n if (val && (typeof val === 'object' && !Array.isArray(val))) {\n throw new InvalidArgumentError(`invalid ${key} header`)\n } else if (val === undefined) {\n return\n }\n\n let headerName = headerNameLowerCasedRecord[key]\n\n if (headerName === undefined) {\n headerName = key.toLowerCase()\n if (headerNameLowerCasedRecord[headerName] === undefined && !isValidHTTPToken(headerName)) {\n throw new InvalidArgumentError('invalid header key')\n }\n }\n\n if (Array.isArray(val)) {\n const arr = []\n for (let i = 0; i < val.length; i++) {\n if (typeof val[i] === 'string') {\n if (!isValidHeaderValue(val[i])) {\n throw new InvalidArgumentError(`invalid ${key} header`)\n }\n arr.push(val[i])\n } else if (val[i] === null) {\n arr.push('')\n } else if (typeof val[i] === 'object') {\n throw new InvalidArgumentError(`invalid ${key} header`)\n } else {\n // Coerce primitives (and reject unsafe coercions such as functions\n // with a crafted toString/Symbol.toPrimitive).\n const str = `${val[i]}`\n if (!isValidHeaderValue(str)) {\n throw new InvalidArgumentError(`invalid ${key} header`)\n }\n arr.push(str)\n }\n }\n val = arr\n } else if (typeof val === 'string') {\n if (!isValidHeaderValue(val)) {\n throw new InvalidArgumentError(`invalid ${key} header`)\n }\n } else if (val === null) {\n val = ''\n } else {\n // Coerce primitives (and reject unsafe coercions such as functions\n // with a crafted toString/Symbol.toPrimitive).\n val = `${val}`\n if (!isValidHeaderValue(val)) {\n throw new InvalidArgumentError(`invalid ${key} header`)\n }\n }\n\n if (headerName === 'host') {\n if (request.host !== null) {\n throw new InvalidArgumentError('duplicate host header')\n }\n if (typeof val !== 'string') {\n throw new InvalidArgumentError('invalid host header')\n }\n // Consumed by Client\n request.host = val\n } else if (headerName === 'content-length') {\n if (request.contentLength !== null) {\n throw new InvalidArgumentError('duplicate content-length header')\n }\n request.contentLength = parseInt(val, 10)\n if (!Number.isFinite(request.contentLength)) {\n throw new InvalidArgumentError('invalid content-length header')\n }\n } else if (request.contentType === null && headerName === 'content-type') {\n request.contentType = val\n request.headers.push(key, val)\n } else if (headerName === 'transfer-encoding' || headerName === 'keep-alive' || headerName === 'upgrade') {\n throw new InvalidArgumentError(`invalid ${headerName} header`)\n } else if (headerName === 'connection') {\n const value = typeof val === 'string' ? val.toLowerCase() : null\n if (value !== 'close' && value !== 'keep-alive') {\n throw new InvalidArgumentError('invalid connection header')\n }\n\n if (value === 'close') {\n request.reset = true\n }\n } else if (headerName === 'expect') {\n throw new NotSupportedError('expect header not supported')\n } else {\n request.headers.push(key, val)\n }\n}\n\nmodule.exports = Request\n"],"names":["require$$0","require$$1","require$$2","require$$3","require$$4"],"mappings":"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","x_google_ignoreList":[0]}
|
|
@@ -38,7 +38,7 @@ function requireAgent () {
|
|
|
38
38
|
}
|
|
39
39
|
|
|
40
40
|
class Agent extends DispatcherBase {
|
|
41
|
-
constructor ({ factory = defaultFactory, maxRedirections = 0, connect, ...options } = {}) {
|
|
41
|
+
constructor ({ factory = defaultFactory, maxRedirections = 0, connect, tls, ...options } = {}) {
|
|
42
42
|
if (typeof factory !== 'function') {
|
|
43
43
|
throw new InvalidArgumentError('factory must be a function.')
|
|
44
44
|
}
|
|
@@ -57,11 +57,15 @@ function requireAgent () {
|
|
|
57
57
|
connect = { ...connect };
|
|
58
58
|
}
|
|
59
59
|
|
|
60
|
+
if (tls && typeof tls !== 'function') {
|
|
61
|
+
tls = { ...tls };
|
|
62
|
+
}
|
|
63
|
+
|
|
60
64
|
this[kInterceptors] = options.interceptors?.Agent && Array.isArray(options.interceptors.Agent)
|
|
61
65
|
? options.interceptors.Agent
|
|
62
66
|
: [createRedirectInterceptor({ maxRedirections })];
|
|
63
67
|
|
|
64
|
-
this[kOptions] = { ...util$1.deepClone(options), connect };
|
|
68
|
+
this[kOptions] = { ...util$1.deepClone(options), connect, tls };
|
|
65
69
|
this[kOptions].interceptors = options.interceptors
|
|
66
70
|
? { ...options.interceptors }
|
|
67
71
|
: undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent.js","sources":["../../../../../../../../node_modules/undici/lib/dispatcher/agent.js"],"sourcesContent":["'use strict'\n\nconst { InvalidArgumentError } = require('../core/errors')\nconst { kClients, kRunning, kClose, kDestroy, kDispatch, kInterceptors } = require('../core/symbols')\nconst DispatcherBase = require('./dispatcher-base')\nconst Pool = require('./pool')\nconst Client = require('./client')\nconst util = require('../core/util')\nconst createRedirectInterceptor = require('../interceptor/redirect-interceptor')\n\nconst kOnConnect = Symbol('onConnect')\nconst kOnDisconnect = Symbol('onDisconnect')\nconst kOnConnectionError = Symbol('onConnectionError')\nconst kMaxRedirections = Symbol('maxRedirections')\nconst kOnDrain = Symbol('onDrain')\nconst kFactory = Symbol('factory')\nconst kOptions = Symbol('options')\n\nfunction defaultFactory (origin, opts) {\n return opts && opts.connections === 1\n ? new Client(origin, opts)\n : new Pool(origin, opts)\n}\n\nclass Agent extends DispatcherBase {\n constructor ({ factory = defaultFactory, maxRedirections = 0, connect, ...options } = {}) {\n if (typeof factory !== 'function') {\n throw new InvalidArgumentError('factory must be a function.')\n }\n\n if (connect != null && typeof connect !== 'function' && typeof connect !== 'object') {\n throw new InvalidArgumentError('connect must be a function or an object')\n }\n\n if (!Number.isInteger(maxRedirections) || maxRedirections < 0) {\n throw new InvalidArgumentError('maxRedirections must be a positive number')\n }\n\n super(options)\n\n if (connect && typeof connect !== 'function') {\n connect = { ...connect }\n }\n\n this[kInterceptors] = options.interceptors?.Agent && Array.isArray(options.interceptors.Agent)\n ? options.interceptors.Agent\n : [createRedirectInterceptor({ maxRedirections })]\n\n this[kOptions] = { ...util.deepClone(options), connect }\n this[kOptions].interceptors = options.interceptors\n ? { ...options.interceptors }\n : undefined\n this[kMaxRedirections] = maxRedirections\n this[kFactory] = factory\n this[kClients] = new Map()\n\n this[kOnDrain] = (origin, targets) => {\n this.emit('drain', origin, [this, ...targets])\n }\n\n this[kOnConnect] = (origin, targets) => {\n this.emit('connect', origin, [this, ...targets])\n }\n\n this[kOnDisconnect] = (origin, targets, err) => {\n this.emit('disconnect', origin, [this, ...targets], err)\n }\n\n this[kOnConnectionError] = (origin, targets, err) => {\n this.emit('connectionError', origin, [this, ...targets], err)\n }\n }\n\n get [kRunning] () {\n let ret = 0\n for (const client of this[kClients].values()) {\n ret += client[kRunning]\n }\n return ret\n }\n\n [kDispatch] (opts, handler) {\n let key\n if (opts.origin && (typeof opts.origin === 'string' || opts.origin instanceof URL)) {\n key = String(opts.origin)\n } else {\n throw new InvalidArgumentError('opts.origin must be a non-empty string or URL.')\n }\n\n let dispatcher = this[kClients].get(key)\n\n if (!dispatcher) {\n dispatcher = this[kFactory](opts.origin, this[kOptions])\n .on('drain', this[kOnDrain])\n .on('connect', this[kOnConnect])\n .on('disconnect', this[kOnDisconnect])\n .on('connectionError', this[kOnConnectionError])\n\n // This introduces a tiny memory leak, as dispatchers are never removed from the map.\n // TODO(mcollina): remove te timer when the client/pool do not have any more\n // active connections.\n this[kClients].set(key, dispatcher)\n }\n\n return dispatcher.dispatch(opts, handler)\n }\n\n async [kClose] () {\n const closePromises = []\n for (const client of this[kClients].values()) {\n closePromises.push(client.close())\n }\n this[kClients].clear()\n\n await Promise.all(closePromises)\n }\n\n async [kDestroy] (err) {\n const destroyPromises = []\n for (const client of this[kClients].values()) {\n destroyPromises.push(client.destroy(err))\n }\n this[kClients].clear()\n\n await Promise.all(destroyPromises)\n }\n}\n\nmodule.exports = Agent\n"],"names":["require$$0","require$$1","require$$2","require$$3","require$$4","util","require$$5","require$$6"],"mappings":";;;;;;;;;;;;;;;;;CAEA,MAAM,EAAE,oBAAoB,EAAE,GAAGA,gBAAA;AACjC,CAAA,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,aAAa,EAAE,GAAGC,iBAAA;AAC3E,CAAA,MAAM,cAAc,GAAGC,wBAAA;AACvB,CAAA,MAAM,IAAI,GAAGC,cAAA;AACb,CAAA,MAAM,MAAM,GAAGC,gBAAA;AACf,CAAA,MAAMC,MAAI,GAAGC,cAAA;AACb,CAAA,MAAM,yBAAyB,GAAGC,6BAAA;;AAElC,CAAA,MAAM,UAAU,GAAG,MAAM,CAAC,WAAW;AACrC,CAAA,MAAM,aAAa,GAAG,MAAM,CAAC,cAAc;AAC3C,CAAA,MAAM,kBAAkB,GAAG,MAAM,CAAC,mBAAmB;AACrD,CAAA,MAAM,gBAAgB,GAAG,MAAM,CAAC,iBAAiB;AACjD,CAAA,MAAM,QAAQ,GAAG,MAAM,CAAC,SAAS;AACjC,CAAA,MAAM,QAAQ,GAAG,MAAM,CAAC,SAAS;AACjC,CAAA,MAAM,QAAQ,GAAG,MAAM,CAAC,SAAS;;AAEjC,CAAA,SAAS,cAAc,EAAE,MAAM,EAAE,IAAI,EAAE;AACvC,GAAE,OAAO,IAAI,IAAI,IAAI,CAAC,WAAW,KAAK;AACtC,OAAM,IAAI,MAAM,CAAC,MAAM,EAAE,IAAI;AAC7B,OAAM,IAAI,IAAI,CAAC,MAAM,EAAE,IAAI;AAC3B,CAAA;;CAEA,MAAM,KAAK,SAAS,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"agent.js","sources":["../../../../../../../../node_modules/undici/lib/dispatcher/agent.js"],"sourcesContent":["'use strict'\n\nconst { InvalidArgumentError } = require('../core/errors')\nconst { kClients, kRunning, kClose, kDestroy, kDispatch, kInterceptors } = require('../core/symbols')\nconst DispatcherBase = require('./dispatcher-base')\nconst Pool = require('./pool')\nconst Client = require('./client')\nconst util = require('../core/util')\nconst createRedirectInterceptor = require('../interceptor/redirect-interceptor')\n\nconst kOnConnect = Symbol('onConnect')\nconst kOnDisconnect = Symbol('onDisconnect')\nconst kOnConnectionError = Symbol('onConnectionError')\nconst kMaxRedirections = Symbol('maxRedirections')\nconst kOnDrain = Symbol('onDrain')\nconst kFactory = Symbol('factory')\nconst kOptions = Symbol('options')\n\nfunction defaultFactory (origin, opts) {\n return opts && opts.connections === 1\n ? new Client(origin, opts)\n : new Pool(origin, opts)\n}\n\nclass Agent extends DispatcherBase {\n constructor ({ factory = defaultFactory, maxRedirections = 0, connect, tls, ...options } = {}) {\n if (typeof factory !== 'function') {\n throw new InvalidArgumentError('factory must be a function.')\n }\n\n if (connect != null && typeof connect !== 'function' && typeof connect !== 'object') {\n throw new InvalidArgumentError('connect must be a function or an object')\n }\n\n if (!Number.isInteger(maxRedirections) || maxRedirections < 0) {\n throw new InvalidArgumentError('maxRedirections must be a positive number')\n }\n\n super(options)\n\n if (connect && typeof connect !== 'function') {\n connect = { ...connect }\n }\n\n if (tls && typeof tls !== 'function') {\n tls = { ...tls }\n }\n\n this[kInterceptors] = options.interceptors?.Agent && Array.isArray(options.interceptors.Agent)\n ? options.interceptors.Agent\n : [createRedirectInterceptor({ maxRedirections })]\n\n this[kOptions] = { ...util.deepClone(options), connect, tls }\n this[kOptions].interceptors = options.interceptors\n ? { ...options.interceptors }\n : undefined\n this[kMaxRedirections] = maxRedirections\n this[kFactory] = factory\n this[kClients] = new Map()\n\n this[kOnDrain] = (origin, targets) => {\n this.emit('drain', origin, [this, ...targets])\n }\n\n this[kOnConnect] = (origin, targets) => {\n this.emit('connect', origin, [this, ...targets])\n }\n\n this[kOnDisconnect] = (origin, targets, err) => {\n this.emit('disconnect', origin, [this, ...targets], err)\n }\n\n this[kOnConnectionError] = (origin, targets, err) => {\n this.emit('connectionError', origin, [this, ...targets], err)\n }\n }\n\n get [kRunning] () {\n let ret = 0\n for (const client of this[kClients].values()) {\n ret += client[kRunning]\n }\n return ret\n }\n\n [kDispatch] (opts, handler) {\n let key\n if (opts.origin && (typeof opts.origin === 'string' || opts.origin instanceof URL)) {\n key = String(opts.origin)\n } else {\n throw new InvalidArgumentError('opts.origin must be a non-empty string or URL.')\n }\n\n let dispatcher = this[kClients].get(key)\n\n if (!dispatcher) {\n dispatcher = this[kFactory](opts.origin, this[kOptions])\n .on('drain', this[kOnDrain])\n .on('connect', this[kOnConnect])\n .on('disconnect', this[kOnDisconnect])\n .on('connectionError', this[kOnConnectionError])\n\n // This introduces a tiny memory leak, as dispatchers are never removed from the map.\n // TODO(mcollina): remove te timer when the client/pool do not have any more\n // active connections.\n this[kClients].set(key, dispatcher)\n }\n\n return dispatcher.dispatch(opts, handler)\n }\n\n async [kClose] () {\n const closePromises = []\n for (const client of this[kClients].values()) {\n closePromises.push(client.close())\n }\n this[kClients].clear()\n\n await Promise.all(closePromises)\n }\n\n async [kDestroy] (err) {\n const destroyPromises = []\n for (const client of this[kClients].values()) {\n destroyPromises.push(client.destroy(err))\n }\n this[kClients].clear()\n\n await Promise.all(destroyPromises)\n }\n}\n\nmodule.exports = Agent\n"],"names":["require$$0","require$$1","require$$2","require$$3","require$$4","util","require$$5","require$$6"],"mappings":"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","x_google_ignoreList":[0]}
|