nlcurl 0.6.0 → 0.8.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/README.md +143 -140
- package/dist/cache/groups.d.ts +75 -0
- package/dist/cache/groups.d.ts.map +1 -0
- package/dist/cache/groups.js +118 -0
- package/dist/cache/groups.js.map +1 -0
- package/dist/cache/no-vary-search.d.ts +33 -0
- package/dist/cache/no-vary-search.d.ts.map +1 -0
- package/dist/cache/no-vary-search.js +148 -0
- package/dist/cache/no-vary-search.js.map +1 -0
- package/dist/cache/range.d.ts +120 -0
- package/dist/cache/range.d.ts.map +1 -0
- package/dist/cache/range.js +193 -0
- package/dist/cache/range.js.map +1 -0
- package/dist/cache/store.d.ts +111 -0
- package/dist/cache/store.d.ts.map +1 -0
- package/dist/cache/store.js +414 -0
- package/dist/cache/store.js.map +1 -0
- package/dist/cache/types.d.ts +69 -0
- package/dist/cache/types.d.ts.map +1 -0
- package/dist/cache/types.js +2 -0
- package/dist/cache/types.js.map +1 -0
- package/dist/cli/args.d.ts +4 -37
- package/dist/cli/args.d.ts.map +1 -1
- package/dist/cli/args.js +3 -4
- package/dist/cli/args.js.map +1 -1
- package/dist/cli/index.d.ts +0 -5
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +1 -6
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/output.d.ts +14 -20
- package/dist/cli/output.d.ts.map +1 -1
- package/dist/cli/output.js +14 -20
- package/dist/cli/output.js.map +1 -1
- package/dist/cookies/jar.d.ts +33 -31
- package/dist/cookies/jar.d.ts.map +1 -1
- package/dist/cookies/jar.js +69 -33
- package/dist/cookies/jar.js.map +1 -1
- package/dist/cookies/parser.d.ts +14 -16
- package/dist/cookies/parser.d.ts.map +1 -1
- package/dist/cookies/parser.js +30 -13
- package/dist/cookies/parser.js.map +1 -1
- package/dist/cookies/psl-data.d.ts +1 -1
- package/dist/cookies/psl-data.js +1 -1
- package/dist/cookies/public-suffix.d.ts +5 -27
- package/dist/cookies/public-suffix.d.ts.map +1 -1
- package/dist/cookies/public-suffix.js +5 -37
- package/dist/cookies/public-suffix.js.map +1 -1
- package/dist/core/auth.d.ts +30 -0
- package/dist/core/auth.d.ts.map +1 -0
- package/dist/core/auth.js +34 -0
- package/dist/core/auth.js.map +1 -0
- package/dist/core/client.d.ts +28 -40
- package/dist/core/client.d.ts.map +1 -1
- package/dist/core/client.js +34 -41
- package/dist/core/client.js.map +1 -1
- package/dist/core/errors.d.ts +64 -88
- package/dist/core/errors.d.ts.map +1 -1
- package/dist/core/errors.js +64 -88
- package/dist/core/errors.js.map +1 -1
- package/dist/core/request.d.ts +63 -85
- package/dist/core/request.d.ts.map +1 -1
- package/dist/core/response.d.ts +64 -59
- package/dist/core/response.d.ts.map +1 -1
- package/dist/core/response.js +70 -52
- package/dist/core/response.js.map +1 -1
- package/dist/core/session.d.ts +81 -70
- package/dist/core/session.d.ts.map +1 -1
- package/dist/core/session.js +198 -71
- package/dist/core/session.js.map +1 -1
- package/dist/core/validation.d.ts +44 -42
- package/dist/core/validation.d.ts.map +1 -1
- package/dist/core/validation.js +47 -58
- package/dist/core/validation.js.map +1 -1
- package/dist/dns/cache.d.ts +59 -0
- package/dist/dns/cache.d.ts.map +1 -0
- package/dist/dns/cache.js +99 -0
- package/dist/dns/cache.js.map +1 -0
- package/dist/dns/codec.d.ts +39 -0
- package/dist/dns/codec.d.ts.map +1 -0
- package/dist/dns/codec.js +238 -0
- package/dist/dns/codec.js.map +1 -0
- package/dist/dns/doh-resolver.d.ts +38 -0
- package/dist/dns/doh-resolver.d.ts.map +1 -0
- package/dist/dns/doh-resolver.js +191 -0
- package/dist/dns/doh-resolver.js.map +1 -0
- package/dist/dns/dot-resolver.d.ts +89 -0
- package/dist/dns/dot-resolver.d.ts.map +1 -0
- package/dist/dns/dot-resolver.js +158 -0
- package/dist/dns/dot-resolver.js.map +1 -0
- package/dist/dns/https-rr.d.ts +40 -0
- package/dist/dns/https-rr.d.ts.map +1 -0
- package/dist/dns/https-rr.js +109 -0
- package/dist/dns/https-rr.js.map +1 -0
- package/dist/dns/types.d.ts +82 -0
- package/dist/dns/types.d.ts.map +1 -0
- package/dist/dns/types.js +23 -0
- package/dist/dns/types.js.map +1 -0
- package/dist/fingerprints/akamai.d.ts +3 -11
- package/dist/fingerprints/akamai.d.ts.map +1 -1
- package/dist/fingerprints/akamai.js +3 -11
- package/dist/fingerprints/akamai.js.map +1 -1
- package/dist/fingerprints/database.d.ts +6 -14
- package/dist/fingerprints/database.d.ts.map +1 -1
- package/dist/fingerprints/database.js +6 -14
- package/dist/fingerprints/database.js.map +1 -1
- package/dist/fingerprints/extensions.d.ts +56 -71
- package/dist/fingerprints/extensions.d.ts.map +1 -1
- package/dist/fingerprints/extensions.js +58 -71
- package/dist/fingerprints/extensions.js.map +1 -1
- package/dist/fingerprints/ja3.d.ts +12 -30
- package/dist/fingerprints/ja3.d.ts.map +1 -1
- package/dist/fingerprints/ja3.js +12 -30
- package/dist/fingerprints/ja3.js.map +1 -1
- package/dist/fingerprints/ja4.d.ts +18 -0
- package/dist/fingerprints/ja4.d.ts.map +1 -0
- package/dist/fingerprints/ja4.js +83 -0
- package/dist/fingerprints/ja4.js.map +1 -0
- package/dist/fingerprints/profiles/chrome.d.ts +18 -21
- package/dist/fingerprints/profiles/chrome.d.ts.map +1 -1
- package/dist/fingerprints/profiles/chrome.js +35 -31
- package/dist/fingerprints/profiles/chrome.js.map +1 -1
- package/dist/fingerprints/profiles/edge.d.ts +7 -10
- package/dist/fingerprints/profiles/edge.d.ts.map +1 -1
- package/dist/fingerprints/profiles/edge.js +7 -10
- package/dist/fingerprints/profiles/edge.js.map +1 -1
- package/dist/fingerprints/profiles/firefox.d.ts +8 -11
- package/dist/fingerprints/profiles/firefox.d.ts.map +1 -1
- package/dist/fingerprints/profiles/firefox.js +8 -11
- package/dist/fingerprints/profiles/firefox.js.map +1 -1
- package/dist/fingerprints/profiles/safari.d.ts +11 -14
- package/dist/fingerprints/profiles/safari.d.ts.map +1 -1
- package/dist/fingerprints/profiles/safari.js +11 -14
- package/dist/fingerprints/profiles/safari.js.map +1 -1
- package/dist/fingerprints/profiles/tor.d.ts +5 -8
- package/dist/fingerprints/profiles/tor.d.ts.map +1 -1
- package/dist/fingerprints/profiles/tor.js +5 -8
- package/dist/fingerprints/profiles/tor.js.map +1 -1
- package/dist/fingerprints/types.d.ts +42 -73
- package/dist/fingerprints/types.d.ts.map +1 -1
- package/dist/hsts/store.d.ts +39 -0
- package/dist/hsts/store.d.ts.map +1 -0
- package/dist/hsts/store.js +163 -0
- package/dist/hsts/store.js.map +1 -0
- package/dist/hsts/types.d.ts +24 -0
- package/dist/hsts/types.d.ts.map +1 -0
- package/dist/hsts/types.js +2 -0
- package/dist/hsts/types.js.map +1 -0
- package/dist/http/alt-svc.d.ts +67 -0
- package/dist/http/alt-svc.d.ts.map +1 -0
- package/dist/http/alt-svc.js +186 -0
- package/dist/http/alt-svc.js.map +1 -0
- package/dist/http/early-hints.d.ts +23 -0
- package/dist/http/early-hints.d.ts.map +1 -0
- package/dist/http/early-hints.js +33 -0
- package/dist/http/early-hints.js.map +1 -0
- package/dist/http/form-data.d.ts +17 -35
- package/dist/http/form-data.d.ts.map +1 -1
- package/dist/http/form-data.js +12 -34
- package/dist/http/form-data.js.map +1 -1
- package/dist/http/h1/client.d.ts +14 -26
- package/dist/http/h1/client.d.ts.map +1 -1
- package/dist/http/h1/client.js +29 -22
- package/dist/http/h1/client.js.map +1 -1
- package/dist/http/h1/encoder.d.ts +10 -17
- package/dist/http/h1/encoder.d.ts.map +1 -1
- package/dist/http/h1/encoder.js +10 -17
- package/dist/http/h1/encoder.js.map +1 -1
- package/dist/http/h1/parser.d.ts +22 -59
- package/dist/http/h1/parser.d.ts.map +1 -1
- package/dist/http/h1/parser.js +15 -47
- package/dist/http/h1/parser.js.map +1 -1
- package/dist/http/h2/client.d.ts +18 -59
- package/dist/http/h2/client.d.ts.map +1 -1
- package/dist/http/h2/client.js +29 -64
- package/dist/http/h2/client.js.map +1 -1
- package/dist/http/h2/frames.d.ts +53 -84
- package/dist/http/h2/frames.d.ts.map +1 -1
- package/dist/http/h2/frames.js +48 -76
- package/dist/http/h2/frames.js.map +1 -1
- package/dist/http/h2/hpack.d.ts +16 -35
- package/dist/http/h2/hpack.d.ts.map +1 -1
- package/dist/http/h2/hpack.js +16 -35
- package/dist/http/h2/hpack.js.map +1 -1
- package/dist/http/h3/detection.d.ts +15 -0
- package/dist/http/h3/detection.d.ts.map +1 -0
- package/dist/http/h3/detection.js +41 -0
- package/dist/http/h3/detection.js.map +1 -0
- package/dist/http/negotiator.d.ts +43 -33
- package/dist/http/negotiator.d.ts.map +1 -1
- package/dist/http/negotiator.js +99 -41
- package/dist/http/negotiator.js.map +1 -1
- package/dist/http/pool.d.ts +34 -64
- package/dist/http/pool.d.ts.map +1 -1
- package/dist/http/pool.js +22 -41
- package/dist/http/pool.js.map +1 -1
- package/dist/http/resumable-upload.d.ts +76 -0
- package/dist/http/resumable-upload.d.ts.map +1 -0
- package/dist/http/resumable-upload.js +104 -0
- package/dist/http/resumable-upload.js.map +1 -0
- package/dist/http/trailers.d.ts +29 -0
- package/dist/http/trailers.d.ts.map +1 -0
- package/dist/http/trailers.js +57 -0
- package/dist/http/trailers.js.map +1 -0
- package/dist/index.d.ts +36 -8
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +32 -1
- package/dist/index.js.map +1 -1
- package/dist/middleware/interceptor.d.ts +13 -32
- package/dist/middleware/interceptor.d.ts.map +1 -1
- package/dist/middleware/interceptor.js +11 -16
- package/dist/middleware/interceptor.js.map +1 -1
- package/dist/middleware/rate-limiter.d.ts +8 -17
- package/dist/middleware/rate-limiter.d.ts.map +1 -1
- package/dist/middleware/rate-limiter.js +15 -12
- package/dist/middleware/rate-limiter.js.map +1 -1
- package/dist/middleware/retry-after.d.ts +15 -0
- package/dist/middleware/retry-after.d.ts.map +1 -0
- package/dist/middleware/retry-after.js +36 -0
- package/dist/middleware/retry-after.js.map +1 -0
- package/dist/middleware/retry.d.ts +9 -18
- package/dist/middleware/retry.d.ts.map +1 -1
- package/dist/middleware/retry.js +12 -9
- package/dist/middleware/retry.js.map +1 -1
- package/dist/proxy/auth.d.ts +73 -0
- package/dist/proxy/auth.d.ts.map +1 -0
- package/dist/proxy/auth.js +128 -0
- package/dist/proxy/auth.js.map +1 -0
- package/dist/proxy/env-proxy.d.ts +11 -0
- package/dist/proxy/env-proxy.d.ts.map +1 -0
- package/dist/proxy/env-proxy.js +56 -0
- package/dist/proxy/env-proxy.js.map +1 -0
- package/dist/proxy/http-proxy.d.ts +13 -18
- package/dist/proxy/http-proxy.d.ts.map +1 -1
- package/dist/proxy/http-proxy.js +24 -14
- package/dist/proxy/http-proxy.js.map +1 -1
- package/dist/proxy/socks.d.ts +13 -20
- package/dist/proxy/socks.d.ts.map +1 -1
- package/dist/proxy/socks.js +6 -9
- package/dist/proxy/socks.js.map +1 -1
- package/dist/sse/parser.d.ts +47 -0
- package/dist/sse/parser.d.ts.map +1 -0
- package/dist/sse/parser.js +139 -0
- package/dist/sse/parser.js.map +1 -0
- package/dist/tls/constants.d.ts +15 -74
- package/dist/tls/constants.d.ts.map +1 -1
- package/dist/tls/constants.js +15 -74
- package/dist/tls/constants.js.map +1 -1
- package/dist/tls/ct.d.ts +78 -0
- package/dist/tls/ct.d.ts.map +1 -0
- package/dist/tls/ct.js +175 -0
- package/dist/tls/ct.js.map +1 -0
- package/dist/tls/early-data.d.ts +45 -0
- package/dist/tls/early-data.d.ts.map +1 -0
- package/dist/tls/early-data.js +46 -0
- package/dist/tls/early-data.js.map +1 -0
- package/dist/tls/ech.d.ts +130 -0
- package/dist/tls/ech.d.ts.map +1 -0
- package/dist/tls/ech.js +353 -0
- package/dist/tls/ech.js.map +1 -0
- package/dist/tls/keylog.d.ts +34 -0
- package/dist/tls/keylog.d.ts.map +1 -0
- package/dist/tls/keylog.js +64 -0
- package/dist/tls/keylog.js.map +1 -0
- package/dist/tls/node-engine.d.ts +15 -14
- package/dist/tls/node-engine.d.ts.map +1 -1
- package/dist/tls/node-engine.js +54 -14
- package/dist/tls/node-engine.js.map +1 -1
- package/dist/tls/ocsp.d.ts +55 -0
- package/dist/tls/ocsp.d.ts.map +1 -0
- package/dist/tls/ocsp.js +131 -0
- package/dist/tls/ocsp.js.map +1 -0
- package/dist/tls/pin-verification.d.ts +10 -0
- package/dist/tls/pin-verification.d.ts.map +1 -0
- package/dist/tls/pin-verification.js +28 -0
- package/dist/tls/pin-verification.js.map +1 -0
- package/dist/tls/session-cache.d.ts +58 -0
- package/dist/tls/session-cache.d.ts.map +1 -0
- package/dist/tls/session-cache.js +76 -0
- package/dist/tls/session-cache.js.map +1 -0
- package/dist/tls/stealth/client-hello.d.ts +34 -32
- package/dist/tls/stealth/client-hello.d.ts.map +1 -1
- package/dist/tls/stealth/client-hello.js +116 -11
- package/dist/tls/stealth/client-hello.js.map +1 -1
- package/dist/tls/stealth/engine.d.ts +5 -15
- package/dist/tls/stealth/engine.d.ts.map +1 -1
- package/dist/tls/stealth/engine.js +163 -47
- package/dist/tls/stealth/engine.js.map +1 -1
- package/dist/tls/stealth/handshake.d.ts +23 -32
- package/dist/tls/stealth/handshake.d.ts.map +1 -1
- package/dist/tls/stealth/handshake.js +112 -27
- package/dist/tls/stealth/handshake.js.map +1 -1
- package/dist/tls/stealth/key-schedule.d.ts +59 -86
- package/dist/tls/stealth/key-schedule.d.ts.map +1 -1
- package/dist/tls/stealth/key-schedule.js +46 -58
- package/dist/tls/stealth/key-schedule.js.map +1 -1
- package/dist/tls/stealth/record-layer.d.ts +52 -75
- package/dist/tls/stealth/record-layer.d.ts.map +1 -1
- package/dist/tls/stealth/record-layer.js +47 -63
- package/dist/tls/stealth/record-layer.js.map +1 -1
- package/dist/tls/stealth/tls12-handshake.d.ts +30 -0
- package/dist/tls/stealth/tls12-handshake.d.ts.map +1 -0
- package/dist/tls/stealth/tls12-handshake.js +470 -0
- package/dist/tls/stealth/tls12-handshake.js.map +1 -0
- package/dist/tls/types.d.ts +46 -48
- package/dist/tls/types.d.ts.map +1 -1
- package/dist/utils/buffer-reader.d.ts +26 -81
- package/dist/utils/buffer-reader.d.ts.map +1 -1
- package/dist/utils/buffer-reader.js +26 -81
- package/dist/utils/buffer-reader.js.map +1 -1
- package/dist/utils/buffer-writer.d.ts +30 -66
- package/dist/utils/buffer-writer.d.ts.map +1 -1
- package/dist/utils/buffer-writer.js +30 -66
- package/dist/utils/buffer-writer.js.map +1 -1
- package/dist/utils/compression.d.ts +18 -0
- package/dist/utils/compression.d.ts.map +1 -0
- package/dist/utils/compression.js +34 -0
- package/dist/utils/compression.js.map +1 -0
- package/dist/utils/dictionary-transport.d.ts +97 -0
- package/dist/utils/dictionary-transport.d.ts.map +1 -0
- package/dist/utils/dictionary-transport.js +171 -0
- package/dist/utils/dictionary-transport.js.map +1 -0
- package/dist/utils/encoding.d.ts +12 -28
- package/dist/utils/encoding.d.ts.map +1 -1
- package/dist/utils/encoding.js +77 -40
- package/dist/utils/encoding.js.map +1 -1
- package/dist/utils/happy-eyeballs.d.ts +20 -7
- package/dist/utils/happy-eyeballs.d.ts.map +1 -1
- package/dist/utils/happy-eyeballs.js +57 -25
- package/dist/utils/happy-eyeballs.js.map +1 -1
- package/dist/utils/logger.d.ts +54 -81
- package/dist/utils/logger.d.ts.map +1 -1
- package/dist/utils/logger.js +92 -64
- package/dist/utils/logger.js.map +1 -1
- package/dist/utils/tcp-fast-open.d.ts +30 -0
- package/dist/utils/tcp-fast-open.d.ts.map +1 -0
- package/dist/utils/tcp-fast-open.js +36 -0
- package/dist/utils/tcp-fast-open.js.map +1 -0
- package/dist/utils/url.d.ts +18 -25
- package/dist/utils/url.d.ts.map +1 -1
- package/dist/utils/url.js +18 -25
- package/dist/utils/url.js.map +1 -1
- package/dist/ws/client.d.ts +35 -52
- package/dist/ws/client.d.ts.map +1 -1
- package/dist/ws/client.js +92 -37
- package/dist/ws/client.js.map +1 -1
- package/dist/ws/frame.d.ts +27 -42
- package/dist/ws/frame.d.ts.map +1 -1
- package/dist/ws/frame.js +25 -37
- package/dist/ws/frame.js.map +1 -1
- package/dist/ws/permessage-deflate.d.ts +53 -0
- package/dist/ws/permessage-deflate.d.ts.map +1 -0
- package/dist/ws/permessage-deflate.js +140 -0
- package/dist/ws/permessage-deflate.js.map +1 -0
- package/package.json +62 -62
package/dist/http/h2/hpack.js
CHANGED
|
@@ -151,21 +151,15 @@ function decodeString(data, offset) {
|
|
|
151
151
|
const str = isHuffman ? huffmanDecode(raw).toString("latin1") : raw.toString("latin1");
|
|
152
152
|
return { value: str, bytesRead: intBytes + length };
|
|
153
153
|
}
|
|
154
|
-
/**
|
|
155
|
-
* HPACK header compression encoder (RFC 7541). Maintains a dynamic header
|
|
156
|
-
* table and encodes header lists into compact HPACK binary format using
|
|
157
|
-
* Huffman coding and indexed representations.
|
|
158
|
-
*
|
|
159
|
-
* @see {@link https://datatracker.ietf.org/doc/html/rfc7541}
|
|
160
|
-
*/
|
|
154
|
+
/** HPACK header compression encoder for HTTP/2. */
|
|
161
155
|
export class HPACKEncoder {
|
|
162
156
|
dynamicTable;
|
|
163
157
|
staticIndex;
|
|
164
158
|
staticFullIndex;
|
|
165
159
|
/**
|
|
166
|
-
*
|
|
160
|
+
* Create a new HPACK encoder.
|
|
167
161
|
*
|
|
168
|
-
* @param {number} [tableSize
|
|
162
|
+
* @param {number} [tableSize] - Maximum dynamic table size in bytes.
|
|
169
163
|
*/
|
|
170
164
|
constructor(tableSize = 4096) {
|
|
171
165
|
this.dynamicTable = new DynamicTable(tableSize);
|
|
@@ -183,11 +177,10 @@ export class HPACKEncoder {
|
|
|
183
177
|
}
|
|
184
178
|
}
|
|
185
179
|
/**
|
|
186
|
-
*
|
|
187
|
-
* placed in an HTTP/2 HEADERS or PUSH_PROMISE frame payload.
|
|
180
|
+
* Encode headers into an HPACK header block.
|
|
188
181
|
*
|
|
189
|
-
* @param {Array<[string, string]>} headers - Header name
|
|
190
|
-
* @returns {Buffer}
|
|
182
|
+
* @param {Array<[string, string]>} headers - Header name/value pairs to encode.
|
|
183
|
+
* @returns {Buffer} Compressed header block buffer.
|
|
191
184
|
*/
|
|
192
185
|
encode(headers) {
|
|
193
186
|
const w = new BufferWriter(1024);
|
|
@@ -214,50 +207,38 @@ export class HPACKEncoder {
|
|
|
214
207
|
return w.toBuffer();
|
|
215
208
|
}
|
|
216
209
|
/**
|
|
217
|
-
*
|
|
218
|
-
* `SETTINGS_HEADER_TABLE_SIZE` value is received from the remote peer so
|
|
219
|
-
* that subsequent {@link encode} calls respect the new limit.
|
|
210
|
+
* Update the dynamic table maximum size.
|
|
220
211
|
*
|
|
221
|
-
* @param {number} newSize - New maximum
|
|
212
|
+
* @param {number} newSize - New maximum size in bytes.
|
|
222
213
|
*/
|
|
223
214
|
updateTableSize(newSize) {
|
|
224
215
|
this.dynamicTable.updateMaxSize(newSize);
|
|
225
216
|
}
|
|
226
217
|
}
|
|
227
|
-
/**
|
|
228
|
-
* HPACK header decompression decoder (RFC 7541). Maintains a synchronized
|
|
229
|
-
* dynamic header table and decodes HPACK binary blocks received in
|
|
230
|
-
* HTTP/2 HEADERS and PUSH_PROMISE frames.
|
|
231
|
-
*
|
|
232
|
-
* @see {@link https://datatracker.ietf.org/doc/html/rfc7541}
|
|
233
|
-
*/
|
|
218
|
+
/** HPACK header compression decoder for HTTP/2. */
|
|
234
219
|
export class HPACKDecoder {
|
|
235
220
|
dynamicTable;
|
|
236
221
|
/**
|
|
237
|
-
*
|
|
222
|
+
* Create a new HPACK decoder.
|
|
238
223
|
*
|
|
239
|
-
* @param {number} [tableSize
|
|
224
|
+
* @param {number} [tableSize] - Maximum dynamic table size in bytes.
|
|
240
225
|
*/
|
|
241
226
|
constructor(tableSize = 4096) {
|
|
242
227
|
this.dynamicTable = new DynamicTable(tableSize);
|
|
243
228
|
}
|
|
244
229
|
/**
|
|
245
|
-
*
|
|
246
|
-
* SETTINGS_HEADER_TABLE_SIZE frame is received from the server.
|
|
230
|
+
* Update the dynamic table maximum size.
|
|
247
231
|
*
|
|
248
|
-
* @param {number} maxSize - New maximum
|
|
232
|
+
* @param {number} maxSize - New maximum size in bytes.
|
|
249
233
|
*/
|
|
250
234
|
setMaxTableSize(maxSize) {
|
|
251
235
|
this.dynamicTable.updateMaxSize(maxSize);
|
|
252
236
|
}
|
|
253
237
|
/**
|
|
254
|
-
*
|
|
255
|
-
* name-value pairs. Updates the internal dynamic table as required by the
|
|
256
|
-
* HPACK state machine.
|
|
238
|
+
* Decode an HPACK header block into header pairs.
|
|
257
239
|
*
|
|
258
|
-
* @param {Buffer} data - HPACK
|
|
259
|
-
* @returns {Array<[string, string]>} Decoded header name
|
|
260
|
-
* @throws {Error} If the encoded data references an invalid table index.
|
|
240
|
+
* @param {Buffer} data - HPACK encoded data.
|
|
241
|
+
* @returns {Array<[string, string]>} Decoded header name/value pairs.
|
|
261
242
|
*/
|
|
262
243
|
decode(data) {
|
|
263
244
|
const headers = [];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hpack.js","sourceRoot":"","sources":["../../../src/http/h2/hpack.ts"],"names":[],"mappings":"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,QAAQ,EAAE,EAAE,CAAC;IACd,CAAC,QAAQ,EAAE,EAAE,CAAC;IACd,CAAC,QAAQ,EAAE,EAAE,CAAC;IACd,CAAC,QAAQ,EAAE,EAAE,CAAC;IACd,CAAC,QAAQ,EAAE,EAAE,CAAC;IACd,CAAC,QAAQ,EAAE,EAAE,CAAC;IACd,CAAC,QAAQ,EAAE,EAAE,CAAC;IACd,CAAC,QAAQ,EAAE,EAAE,CAAC;IACd,CAAC,QAAQ,EAAE,EAAE,CAAC;IACd,CAAC,QAAQ,EAAE,EAAE,CAAC;IACd,CAAC,QAAQ,EAAE,EAAE,CAAC;IACd,CAAC,QAAQ,EAAE,EAAE,CAAC;IACd,CAAC,QAAQ,EAAE,EAAE,CAAC;IACd,CAAC,QAAQ,EAAE,EAAE,CAAC;IACd,CAAC,QAAQ,EAAE,EAAE,CAAC;IACd,CAAC,QAAQ,EAAE,EAAE,CAAC;IACd,CAAC,QAAQ,EAAE,EAAE,CAAC;IACd,CAAC,QAAQ,EAAE,EAAE,CAAC;IACd,CAAC,QAAQ,EAAE,EAAE,CAAC;IACd,CAAC,OAAO,EAAE,EAAE,CAAC;IACb,CAAC,QAAQ,EAAE,EAAE,CAAC;IACd,CAAC,QAAQ,EAAE,EAAE,CAAC;IACd,CAAC,QAAQ,EAAE,EAAE,CAAC;IACd,CAAC,QAAQ,EAAE,EAAE,CAAC;IACd,CAAC,QAAQ,EAAE,EAAE,CAAC;IACd,CAAC,QAAQ,EAAE,EAAE,CAAC;IACd,CAAC,QAAQ,EAAE,EAAE,CAAC;IACd,CAAC,QAAQ,EAAE,EAAE,CAAC;IACd,CAAC,QAAQ,EAAE,EAAE,CAAC;IACd,CAAC,QAAQ,EAAE,EAAE,CAAC;IACd,CAAC,QAAQ,EAAE,EAAE,CAAC;IACd,CAAC,QAAQ,EAAE,EAAE,CAAC;IACd,CAAC,QAAQ,EAAE,EAAE,CAAC;IACd,CAAC,QAAQ,EAAE,EAAE,CAAC;IACd,CAAC,QAAQ,EAAE,EAAE,CAAC;IACd,CAAC,QAAQ,EAAE,EAAE,CAAC;IACd,CAAC,QAAQ,EAAE,EAAE,CAAC;IACd,CAAC,QAAQ,EAAE,EAAE,CAAC;IACd,CAAC,QAAQ,EAAE,EAAE,CAAC;IACd,CAAC,QAAQ,EAAE,EAAE,CAAC;IACd,CAAC,QAAQ,EAAE,EAAE,CAAC;IACd,CAAC,OAAO,EAAE,EAAE,CAAC;IACb,CAAC,QAAQ,EAAE,EAAE,CAAC;IACd,CAAC,QAAQ,EAAE,EAAE,CAAC;IACd,CAAC,QAAQ,EAAE,EAAE,CAAC;IACd,CAAC,QAAQ,EAAE,EAAE,CAAC;IACd,CAAC,QAAQ,EAAE,EAAE,CAAC;IACd,CAAC,QAAQ,EAAE,EAAE,CAAC;IACd,CAAC,QAAQ,EAAE,EAAE,CAAC;IACd,CAAC,SAAS,EAAE,EAAE,CAAC;IACf,CAAC,SAAS,EAAE,EAAE,CAAC;IACf,CAAC,OAAO,EAAE,EAAE,CAAC;IACb,CAAC,OAAO,EAAE,EAAE,CAAC;IACb,CAAC,QAAQ,EAAE,EAAE,CAAC;IACd,CAAC,QAAQ,EAAE,EAAE,CAAC;IACd,CAAC,QAAQ,EAAE,EAAE,CAAC;IACd,CAAC,SAAS,EAAE,EAAE,CAAC;IACf,CAAC,SAAS,EAAE,EAAE,CAAC;IACf,CAAC,SAAS,EAAE,EAAE,CAAC;IACf,CAAC,SAAS,EAAE,EAAE,CAAC;IACf,CAAC,SAAS,EAAE,EAAE,CAAC;IACf,CAAC,SAAS,EAAE,EAAE,CAAC;IACf,CAAC,SAAS,EAAE,EAAE,CAAC;IACf,CAAC,QAAQ,EAAE,EAAE,CAAC;IACd,CAAC,SAAS,EAAE,EAAE,CAAC;IACf,CAAC,OAAO,EAAE,EAAE,CAAC;IACb,CAAC,QAAQ,EAAE,EAAE,CAAC;IACd,CAAC,SAAS,EAAE,EAAE,CAAC;IACf,CAAC,SAAS,EAAE,EAAE,CAAC;IACf,CAAC,SAAS,EAAE,EAAE,CAAC;IACf,CAAC,SAAS,EAAE,EAAE,CAAC;IACf,CAAC,SAAS,EAAE,EAAE,CAAC;IACf,CAAC,QAAQ,EAAE,EAAE,CAAC;IACd,CAAC,QAAQ,EAAE,EAAE,CAAC;IACd,CAAC,QAAQ,EAAE,EAAE,CAAC;IACd,CAAC,SAAS,EAAE,EAAE,CAAC;IACf,CAAC,SAAS,EAAE,EAAE,CAAC;IACf,CAAC,SAAS,EAAE,EAAE,CAAC;IACf,CAAC,SAAS,EAAE,EAAE,CAAC;IACf,CAAC,SAAS,EAAE,EAAE,CAAC;IACf,CAAC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"}
|
|
1
|
+
{"version":3,"file":"hpack.js","sourceRoot":"","sources":["../../../src/http/h2/hpack.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAE5D,MAAM,YAAY,GAAoC;IACpD,CAAC,EAAE,EAAE,EAAE,CAAC;IACR,CAAC,YAAY,EAAE,EAAE,CAAC;IAClB,CAAC,SAAS,EAAE,KAAK,CAAC;IAClB,CAAC,SAAS,EAAE,MAAM,CAAC;IACnB,CAAC,OAAO,EAAE,GAAG,CAAC;IACd,CAAC,OAAO,EAAE,aAAa,CAAC;IACxB,CAAC,SAAS,EAAE,MAAM,CAAC;IACnB,CAAC,SAAS,EAAE,OAAO,CAAC;IACpB,CAAC,SAAS,EAAE,KAAK,CAAC;IAClB,CAAC,SAAS,EAAE,KAAK,CAAC;IAClB,CAAC,SAAS,EAAE,KAAK,CAAC;IAClB,CAAC,SAAS,EAAE,KAAK,CAAC;IAClB,CAAC,SAAS,EAAE,KAAK,CAAC;IAClB,CAAC,SAAS,EAAE,KAAK,CAAC;IAClB,CAAC,SAAS,EAAE,KAAK,CAAC;IAClB,CAAC,gBAAgB,EAAE,EAAE,CAAC;IACtB,CAAC,iBAAiB,EAAE,eAAe,CAAC;IACpC,CAAC,iBAAiB,EAAE,EAAE,CAAC;IACvB,CAAC,eAAe,EAAE,EAAE,CAAC;IACrB,CAAC,QAAQ,EAAE,EAAE,CAAC;IACd,CAAC,6BAA6B,EAAE,EAAE,CAAC;IACnC,CAAC,KAAK,EAAE,EAAE,CAAC;IACX,CAAC,OAAO,EAAE,EAAE,CAAC;IACb,CAAC,eAAe,EAAE,EAAE,CAAC;IACrB,CAAC,eAAe,EAAE,EAAE,CAAC;IACrB,CAAC,qBAAqB,EAAE,EAAE,CAAC;IAC3B,CAAC,kBAAkB,EAAE,EAAE,CAAC;IACxB,CAAC,kBAAkB,EAAE,EAAE,CAAC;IACxB,CAAC,gBAAgB,EAAE,EAAE,CAAC;IACtB,CAAC,kBAAkB,EAAE,EAAE,CAAC;IACxB,CAAC,eAAe,EAAE,EAAE,CAAC;IACrB,CAAC,cAAc,EAAE,EAAE,CAAC;IACpB,CAAC,QAAQ,EAAE,EAAE,CAAC;IACd,CAAC,MAAM,EAAE,EAAE,CAAC;IACZ,CAAC,MAAM,EAAE,EAAE,CAAC;IACZ,CAAC,QAAQ,EAAE,EAAE,CAAC;IACd,CAAC,SAAS,EAAE,EAAE,CAAC;IACf,CAAC,MAAM,EAAE,EAAE,CAAC;IACZ,CAAC,MAAM,EAAE,EAAE,CAAC;IACZ,CAAC,UAAU,EAAE,EAAE,CAAC;IAChB,CAAC,mBAAmB,EAAE,EAAE,CAAC;IACzB,CAAC,eAAe,EAAE,EAAE,CAAC;IACrB,CAAC,UAAU,EAAE,EAAE,CAAC;IAChB,CAAC,qBAAqB,EAAE,EAAE,CAAC;IAC3B,CAAC,eAAe,EAAE,EAAE,CAAC;IACrB,CAAC,MAAM,EAAE,EAAE,CAAC;IACZ,CAAC,UAAU,EAAE,EAAE,CAAC;IAChB,CAAC,cAAc,EAAE,EAAE,CAAC;IACpB,CAAC,oBAAoB,EAAE,EAAE,CAAC;IAC1B,CAAC,qBAAqB,EAAE,EAAE,CAAC;IAC3B,CAAC,OAAO,EAAE,EAAE,CAAC;IACb,CAAC,SAAS,EAAE,EAAE,CAAC;IACf,CAAC,SAAS,EAAE,EAAE,CAAC;IACf,CAAC,aAAa,EAAE,EAAE,CAAC;IACnB,CAAC,QAAQ,EAAE,EAAE,CAAC;IACd,CAAC,YAAY,EAAE,EAAE,CAAC;IAClB,CAAC,2BAA2B,EAAE,EAAE,CAAC;IACjC,CAAC,mBAAmB,EAAE,EAAE,CAAC;IACzB,CAAC,YAAY,EAAE,EAAE,CAAC;IAClB,CAAC,MAAM,EAAE,EAAE,CAAC;IACZ,CAAC,KAAK,EAAE,EAAE,CAAC;IACX,CAAC,kBAAkB,EAAE,EAAE,CAAC;CACzB,CAAC;AAEF,MAAM,YAAY;IACR,OAAO,GAA4B,EAAE,CAAC;IACtC,WAAW,GAAG,CAAC,CAAC;IACxB,OAAO,CAAS;IAEhB,YAAY,UAAkB,IAAI;QAChC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAED,GAAG,CAAC,IAAY,EAAE,KAAa;QAC7B,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,GAAG,EAAE,CAAC;QAClD,OAAO,IAAI,CAAC,WAAW,GAAG,SAAS,GAAG,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC9E,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAG,CAAC;YACpC,IAAI,CAAC,WAAW,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,EAAE,CAAC;QACjE,CAAC;QACD,IAAI,SAAS,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YAC9B,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;YACpC,IAAI,CAAC,WAAW,IAAI,SAAS,CAAC;QAChC,CAAC;IACH,CAAC;IAED,GAAG,CAAC,KAAa;QACf,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAC7B,CAAC;IAED,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;IAC7B,CAAC;IAED,aAAa,CAAC,MAAc;QAC1B,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;QACtB,OAAO,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAClE,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAG,CAAC;YACpC,IAAI,CAAC,WAAW,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,EAAE,CAAC;QACjE,CAAC;IACH,CAAC;CACF;AAED,SAAS,aAAa,CAAC,CAAe,EAAE,KAAa,EAAE,MAAc,EAAE,IAAY;IACjF,MAAM,SAAS,GAAG,CAAC,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC;IACpC,IAAI,KAAK,GAAG,SAAS,EAAE,CAAC;QACtB,CAAC,CAAC,UAAU,CAAC,IAAI,GAAG,KAAK,CAAC,CAAC;IAC7B,CAAC;SAAM,CAAC;QACN,CAAC,CAAC,UAAU,CAAC,IAAI,GAAG,SAAS,CAAC,CAAC;QAC/B,KAAK,IAAI,SAAS,CAAC;QACnB,OAAO,KAAK,IAAI,GAAG,EAAE,CAAC;YACpB,CAAC,CAAC,UAAU,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;YACpC,KAAK,KAAK,CAAC,CAAC;QACd,CAAC;QACD,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;IACtB,CAAC;AACH,CAAC;AAED,SAAS,aAAa,CAAC,IAAY,EAAE,MAAc,EAAE,MAAc;IACjE,MAAM,SAAS,GAAG,CAAC,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC;IACpC,IAAI,KAAK,GAAG,IAAI,CAAC,MAAM,CAAE,GAAG,SAAS,CAAC;IACtC,IAAI,SAAS,GAAG,CAAC,CAAC;IAElB,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,IAAI,IAAY,CAAC;QACjB,GAAG,CAAC;YACF,IAAI,MAAM,GAAG,SAAS,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;gBACtC,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;YAC/D,CAAC;YACD,IAAI,KAAK,GAAG,EAAE,EAAE,CAAC;gBACf,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;YACzD,CAAC;YACD,IAAI,GAAG,IAAI,CAAC,MAAM,GAAG,SAAS,CAAE,CAAC;YACjC,SAAS,EAAE,CAAC;YACZ,KAAK,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,KAAK,CAAC;YAChC,KAAK,IAAI,CAAC,CAAC;QACb,CAAC,QAAQ,IAAI,GAAG,IAAI,EAAE;IACxB,CAAC;IAED,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;AAC9B,CAAC;AAED,SAAS,YAAY,CAAC,CAAe,EAAE,GAAW,EAAE,UAAmB,KAAK;IAC1E,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;IACvC,IAAI,OAAO,EAAE,CAAC;QACZ,MAAM,OAAO,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC;QACnC,aAAa,CAAC,CAAC,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;QAC1C,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;IACxB,CAAC;SAAM,CAAC;QACN,aAAa,CAAC,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;QACtC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;IACpB,CAAC;AACH,CAAC;AAED,SAAS,YAAY,CAAC,IAAY,EAAE,MAAc;IAChD,MAAM,SAAS,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAE,GAAG,IAAI,CAAC,CAAC;IAC3C,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;IAC9E,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,QAAQ,EAAE,MAAM,GAAG,QAAQ,GAAG,MAAM,CAAC,CAAC;IACzE,MAAM,GAAG,GAAG,SAAS,CAAC,CAAC,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACvF,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,QAAQ,GAAG,MAAM,EAAE,CAAC;AACtD,CAAC;AAED,mDAAmD;AACnD,MAAM,OAAO,YAAY;IACf,YAAY,CAAe;IAC3B,WAAW,CAAsB;IACjC,eAAe,CAAsB;IAE7C;;;;OAIG;IACH,YAAY,YAAoB,IAAI;QAClC,IAAI,CAAC,YAAY,GAAG,IAAI,YAAY,CAAC,SAAS,CAAC,CAAC;QAEhD,IAAI,CAAC,WAAW,GAAG,IAAI,GAAG,EAAE,CAAC;QAC7B,IAAI,CAAC,eAAe,GAAG,IAAI,GAAG,EAAE,CAAC;QACjC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC7C,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,YAAY,CAAC,CAAC,CAAE,CAAC;YACvC,MAAM,GAAG,GAAG,GAAG,IAAI,KAAK,KAAK,EAAE,CAAC;YAChC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;gBACnC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;YACnC,CAAC;YACD,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;gBAChC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;YAChC,CAAC;QACH,CAAC;IACH,CAAC;IAED;;;;;OAKG;IACH,MAAM,CAAC,OAAgC;QACrC,MAAM,CAAC,GAAG,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC;QAEjC,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,OAAO,EAAE,CAAC;YACpC,MAAM,OAAO,GAAG,GAAG,IAAI,KAAK,KAAK,EAAE,CAAC;YACpC,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YAElD,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;gBAC1B,aAAa,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;gBACnC,SAAS;YACX,CAAC;YAED,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAE3C,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;gBAC1B,aAAa,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;gBACnC,YAAY,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;gBAC7B,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;YACrC,CAAC;iBAAM,CAAC;gBACN,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;gBACnB,YAAY,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;gBAC5B,YAAY,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;gBAC7B,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;YACrC,CAAC;QACH,CAAC;QAED,OAAO,CAAC,CAAC,QAAQ,EAAE,CAAC;IACtB,CAAC;IAED;;;;OAIG;IACH,eAAe,CAAC,OAAe;QAC7B,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;IAC3C,CAAC;CACF;AAED,mDAAmD;AACnD,MAAM,OAAO,YAAY;IACf,YAAY,CAAe;IAEnC;;;;OAIG;IACH,YAAY,YAAoB,IAAI;QAClC,IAAI,CAAC,YAAY,GAAG,IAAI,YAAY,CAAC,SAAS,CAAC,CAAC;IAClD,CAAC;IAED;;;;OAIG;IACH,eAAe,CAAC,OAAe;QAC7B,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;IAC3C,CAAC;IAED;;;;;OAKG;IACH,MAAM,CAAC,IAAY;QACjB,MAAM,OAAO,GAA4B,EAAE,CAAC;QAC5C,IAAI,MAAM,GAAG,CAAC,CAAC;QAEf,OAAO,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;YAC5B,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAE,CAAC;YAE3B,IAAI,IAAI,GAAG,IAAI,EAAE,CAAC;gBAChB,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;gBACnE,MAAM,IAAI,SAAS,CAAC;gBACpB,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;gBACnC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACtB,CAAC;iBAAM,IAAI,IAAI,GAAG,IAAI,EAAE,CAAC;gBACvB,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;gBACjF,MAAM,IAAI,QAAQ,CAAC;gBAEnB,IAAI,IAAY,CAAC;gBACjB,IAAI,SAAS,GAAG,CAAC,EAAE,CAAC;oBAClB,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;gBACrC,CAAC;qBAAM,CAAC;oBACN,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;oBACrE,IAAI,GAAG,CAAC,CAAC;oBACT,MAAM,IAAI,QAAQ,CAAC;gBACrB,CAAC;gBAED,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;gBAClE,MAAM,IAAI,QAAQ,CAAC;gBAEnB,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;gBACnC,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;YAC9B,CAAC;iBAAM,IAAI,IAAI,GAAG,IAAI,EAAE,CAAC;gBACvB,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;gBACrE,MAAM,IAAI,SAAS,CAAC;gBACpB,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;YAC3C,CAAC;iBAAM,CAAC;gBACN,MAAM,MAAM,GAAG,CAAC,CAAC;gBACjB,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;gBACtF,MAAM,IAAI,QAAQ,CAAC;gBAEnB,IAAI,IAAY,CAAC;gBACjB,IAAI,SAAS,GAAG,CAAC,EAAE,CAAC;oBAClB,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;gBACrC,CAAC;qBAAM,CAAC;oBACN,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;oBACrE,IAAI,GAAG,CAAC,CAAC;oBACT,MAAM,IAAI,QAAQ,CAAC;gBACrB,CAAC;gBAED,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;gBAClE,MAAM,IAAI,QAAQ,CAAC;gBACnB,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;YAC9B,CAAC;QACH,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;IAEO,QAAQ,CAAC,KAAa;QAC5B,IAAI,KAAK,KAAK,CAAC,EAAE,CAAC;YAChB,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;QAC5C,CAAC;QACD,IAAI,KAAK,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC;YAChC,OAAO,YAAY,CAAC,KAAK,CAAE,CAAC;QAC9B,CAAC;QACD,MAAM,QAAQ,GAAG,KAAK,GAAG,YAAY,CAAC,MAAM,CAAC;QAC7C,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC9C,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,MAAM,IAAI,KAAK,CAAC,wBAAwB,KAAK,EAAE,CAAC,CAAC;QACnD,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;CACF;AAED,MAAM,aAAa,GAAoC;IACrD,CAAC,MAAM,EAAE,EAAE,CAAC;IACZ,CAAC,QAAQ,EAAE,EAAE,CAAC;IACd,CAAC,SAAS,EAAE,EAAE,CAAC;IACf,CAAC,SAAS,EAAE,EAAE,CAAC;IACf,CAAC,SAAS,EAAE,EAAE,CAAC;IACf,CAAC,SAAS,EAAE,EAAE,CAAC;IACf,CAAC,SAAS,EAAE,EAAE,CAAC;IACf,CAAC,SAAS,EAAE,EAAE,CAAC;IACf,CAAC,SAAS,EAAE,EAAE,CAAC;IACf,CAAC,QAAQ,EAAE,EAAE,CAAC;IACd,CAAC,UAAU,EAAE,EAAE,CAAC;IAChB,CAAC,SAAS,EAAE,EAAE,CAAC;IACf,CAAC,SAAS,EAAE,EAAE,CAAC;IACf,CAAC,UAAU,EAAE,EAAE,CAAC;IAChB,CAAC,SAAS,EAAE,EAAE,CAAC;IACf,CAAC,SAAS,EAAE,EAAE,CAAC;IACf,CAAC,SAAS,EAAE,EAAE,CAAC;IACf,CAAC,SAAS,EAAE,EAAE,CAAC;IACf,CAAC,SAAS,EAAE,EAAE,CAAC;IACf,CAAC,SAAS,EAAE,EAAE,CAAC;IACf,CAAC,SAAS,EAAE,EAAE,CAAC;IACf,CAAC,SAAS,EAAE,EAAE,CAAC;IACf,CAAC,UAAU,EAAE,EAAE,CAAC;IAChB,CAAC,SAAS,EAAE,EAAE,CAAC;IACf,CAAC,SAAS,EAAE,EAAE,CAAC;IACf,CAAC,SAAS,EAAE,EAAE,CAAC;IACf,CAAC,SAAS,EAAE,EAAE,CAAC;IACf,CAAC,SAAS,EAAE,EAAE,CAAC;IACf,CAAC,SAAS,EAAE,EAAE,CAAC;IACf,CAAC,SAAS,EAAE,EAAE,CAAC;IACf,CAAC,SAAS,EAAE,EAAE,CAAC;IACf,CAAC,SAAS,EAAE,EAAE,CAAC;IACf,CAAC,IAAI,EAAE,CAAC,CAAC;IACT,CAAC,KAAK,EAAE,EAAE,CAAC;IACX,CAAC,KAAK,EAAE,EAAE,CAAC;IACX,CAAC,KAAK,EAAE,EAAE,CAAC;IACX,CAAC,MAAM,EAAE,EAAE,CAAC;IACZ,CAAC,IAAI,EAAE,CAAC,CAAC;IACT,CAAC,IAAI,EAAE,CAAC,CAAC;IACT,CAAC,KAAK,EAAE,EAAE,CAAC;IACX,CAAC,KAAK,EAAE,EAAE,CAAC;IACX,CAAC,KAAK,EAAE,EAAE,CAAC;IACX,CAAC,IAAI,EAAE,CAAC,CAAC;IACT,CAAC,KAAK,EAAE,EAAE,CAAC;IACX,CAAC,IAAI,EAAE,CAAC,CAAC;IACT,CAAC,IAAI,EAAE,CAAC,CAAC;IACT,CAAC,IAAI,EAAE,CAAC,CAAC;IACT,CAAC,IAAI,EAAE,CAAC,CAAC;IACT,CAAC,GAAG,EAAE,CAAC,CAAC;IACR,CAAC,GAAG,EAAE,CAAC,CAAC;IACR,CAAC,GAAG,EAAE,CAAC,CAAC;IACR,CAAC,IAAI,EAAE,CAAC,CAAC;IACT,CAAC,IAAI,EAAE,CAAC,CAAC;IACT,CAAC,IAAI,EAAE,CAAC,CAAC;IACT,CAAC,IAAI,EAAE,CAAC,CAAC;IACT,CAAC,IAAI,EAAE,CAAC,CAAC;IACT,CAAC,IAAI,EAAE,CAAC,CAAC;IACT,CAAC,IAAI,EAAE,CAAC,CAAC;IACT,CAAC,IAAI,EAAE,CAAC,CAAC;IACT,CAAC,IAAI,EAAE,CAAC,CAAC;IACT,CAAC,MAAM,EAAE,EAAE,CAAC;IACZ,CAAC,IAAI,EAAE,CAAC,CAAC;IACT,CAAC,KAAK,EAAE,EAAE,CAAC;IACX,CAAC,KAAK,EAAE,EAAE,CAAC;IACX,CAAC,MAAM,EAAE,EAAE,CAAC;IACZ,CAAC,IAAI,EAAE,CAAC,CAAC;IACT,CAAC,IAAI,EAAE,CAAC,CAAC;IACT,CAAC,IAAI,EAAE,CAAC,CAAC;IACT,CAAC,IAAI,EAAE,CAAC,CAAC;IACT,CAAC,IAAI,EAAE,CAAC,CAAC;IACT,CAAC,IAAI,EAAE,CAAC,CAAC;IACT,CAAC,IAAI,EAAE,CAAC,CAAC;IACT,CAAC,IAAI,EAAE,CAAC,CAAC;IACT,CAAC,IAAI,EAAE,CAAC,CAAC;IACT,CAAC,IAAI,EAAE,CAAC,CAAC;IACT,CAAC,IAAI,EAAE,CAAC,CAAC;IACT,CAAC,IAAI,EAAE,CAAC,CAAC;IACT,CAAC,IAAI,EAAE,CAAC,CAAC;IACT,CAAC,IAAI,EAAE,CAAC,CAAC;IACT,CAAC,IAAI,EAAE,CAAC,CAAC;IACT,CAAC,IAAI,EAAE,CAAC,CAAC;IACT,CAAC,IAAI,EAAE,CAAC,CAAC;IACT,CAAC,IAAI,EAAE,CAAC,CAAC;IACT,CAAC,IAAI,EAAE,CAAC,CAAC;IACT,CAAC,IAAI,EAAE,CAAC,CAAC;IACT,CAAC,IAAI,EAAE,CAAC,CAAC;IACT,CAAC,IAAI,EAAE,CAAC,CAAC;IACT,CAAC,IAAI,EAAE,CAAC,CAAC;IACT,CAAC,IAAI,EAAE,CAAC,CAAC;IACT,CAAC,IAAI,EAAE,CAAC,CAAC;IACT,CAAC,IAAI,EAAE,CAAC,CAAC;IACT,CAAC,MAAM,EAAE,EAAE,CAAC;IACZ,CAAC,OAAO,EAAE,EAAE,CAAC;IACb,CAAC,MAAM,EAAE,EAAE,CAAC;IACZ,CAAC,MAAM,EAAE,EAAE,CAAC;IACZ,CAAC,IAAI,EAAE,CAAC,CAAC;IACT,CAAC,MAAM,EAAE,EAAE,CAAC;IACZ,CAAC,GAAG,EAAE,CAAC,CAAC;IACR,CAAC,IAAI,EAAE,CAAC,CAAC;IACT,CAAC,GAAG,EAAE,CAAC,CAAC;IACR,CAAC,IAAI,EAAE,CAAC,CAAC;IACT,CAAC,GAAG,EAAE,CAAC,CAAC;IACR,CAAC,IAAI,EAAE,CAAC,CAAC;IACT,CAAC,IAAI,EAAE,CAAC,CAAC;IACT,CAAC,IAAI,EAAE,CAAC,CAAC;IACT,CAAC,GAAG,EAAE,CAAC,CAAC;IACR,CAAC,IAAI,EAAE,CAAC,CAAC;IACT,CAAC,IAAI,EAAE,CAAC,CAAC;IACT,CAAC,IAAI,EAAE,CAAC,CAAC;IACT,CAAC,IAAI,EAAE,CAAC,CAAC;IACT,CAAC,IAAI,EAAE,CAAC,CAAC;IACT,CAAC,GAAG,EAAE,CAAC,CAAC;IACR,CAAC,IAAI,EAAE,CAAC,CAAC;IACT,CAAC,IAAI,EAAE,CAAC,CAAC;IACT,CAAC,IAAI,EAAE,CAAC,CAAC;IACT,CAAC,GAAG,EAAE,CAAC,CAAC;IACR,CAAC,GAAG,EAAE,CAAC,CAAC;IACR,CAAC,IAAI,EAAE,CAAC,CAAC;IACT,CAAC,IAAI,EAAE,CAAC,CAAC;IACT,CAAC,IAAI,EAAE,CAAC,CAAC;IACT,CAAC,IAAI,EAAE,CAAC,CAAC;IACT,CAAC,IAAI,EAAE,CAAC,CAAC;IACT,CAAC,IAAI,EAAE,CAAC,CAAC;IACT,CAAC,MAAM,EAAE,EAAE,CAAC;IACZ,CAAC,KAAK,EAAE,EAAE,CAAC;IACX,CAAC,MAAM,EAAE,EAAE,CAAC;IACZ,CAAC,MAAM,EAAE,EAAE,CAAC;IACZ,CAAC,SAAS,EAAE,EAAE,CAAC;IACf,CAAC,OAAO,EAAE,EAAE,CAAC;IACb,CAAC,QAAQ,EAAE,EAAE,CAAC;IACd,CAAC,OAAO,EAAE,EAAE,CAAC;IACb,CAAC,OAAO,EAAE,EAAE,CAAC;IACb,CAAC,QAAQ,EAAE,EAAE,CAAC;IACd,CAAC,QAAQ,EAAE,EAAE,CAAC;IACd,CAAC,QAAQ,EAAE,EAAE,CAAC;IACd,CAAC,QAAQ,EAAE,EAAE,CAAC;IACd,CAAC,QAAQ,EAAE,EAAE,CAAC;IACd,CAAC,QAAQ,EAAE,EAAE,CAAC;IACd,CAAC,QAAQ,EAAE,EAAE,CAAC;IACd,CAAC,QAAQ,EAAE,EAAE,CAAC;IACd,CAAC,QAAQ,EAAE,EAAE,CAAC;IACd,CAAC,QAAQ,EAAE,EAAE,CAAC;IACd,CAAC,QAAQ,EAAE,EAAE,CAAC;IACd,CAAC,QAAQ,EAAE,EAAE,CAAC;IACd,CAAC,QAAQ,EAAE,EAAE,CAAC;IACd,CAAC,QAAQ,EAAE,EAAE,CAAC;IACd,CAAC,QAAQ,EAAE,EAAE,CAAC;IACd,CAAC,QAAQ,EAAE,EAAE,CAAC;IACd,CAAC,QAAQ,EAAE,EAAE,CAAC;IACd,CAAC,QAAQ,EAAE,EAAE,CAAC;IACd,CAAC,QAAQ,EAAE,EAAE,CAAC;IACd,CAAC,QAAQ,EAAE,EAAE,CAAC;IACd,CAAC,QAAQ,EAAE,EAAE,CAAC;IACd,CAAC,QAAQ,EAAE,EAAE,CAAC;IACd,CAAC,QAAQ,EAAE,EAAE,CAAC;IACd,CAAC,QAAQ,EAAE,EAAE,CAAC;IACd,CAAC,QAAQ,EAAE,EAAE,CAAC;IACd,CAAC,QAAQ,EAAE,EAAE,CAAC;IACd,CAAC,QAAQ,EAAE,EAAE,CAAC;IACd,CAAC,QAAQ,EAAE,EAAE,CAAC;IACd,CAAC,QAAQ,EAAE,EAAE,CAAC;IACd,CAAC,QAAQ,EAAE,EAAE,CAAC;IACd,CAAC,OAAO,EAAE,EAAE,CAAC;IACb,CAAC,QAAQ,EAAE,EAAE,CAAC;IACd,CAAC,QAAQ,EAAE,EAAE,CAAC;IACd,CAAC,QAAQ,EAAE,EAAE,CAAC;IACd,CAAC,QAAQ,EAAE,EAAE,CAAC;IACd,CAAC,QAAQ,EAAE,EAAE,CAAC;IACd,CAAC,QAAQ,EAAE,EAAE,CAAC;IACd,CAAC,QAAQ,EAAE,EAAE,CAAC;IACd,CAAC,QAAQ,EAAE,EAAE,CAAC;IACd,CAAC,QAAQ,EAAE,EAAE,CAAC;IACd,CAAC,QAAQ,EAAE,EAAE,CAAC;IACd,CAAC,QAAQ,EAAE,EAAE,CAAC;IACd,CAAC,QAAQ,EAAE,EAAE,CAAC;IACd,CAAC,QAAQ,EAAE,EAAE,CAAC;IACd,CAAC,QAAQ,EAAE,EAAE,CAAC;IACd,CAAC,QAAQ,EAAE,EAAE,CAAC;IACd,CAAC,QAAQ,EAAE,EAAE,CAAC;IACd,CAAC,QAAQ,EAAE,EAAE,CAAC;IACd,CAAC,QAAQ,EAAE,EAAE,CAAC;IACd,CAAC,QAAQ,EAAE,EAAE,CAAC;IACd,CAAC,QAAQ,EAAE,EAAE,CAAC;IACd,CAAC,QAAQ,EAAE,EAAE,CAAC;IACd,CAAC,OAAO,EAAE,EAAE,CAAC;IACb,CAAC,QAAQ,EAAE,EAAE,CAAC;IACd,CAAC,QAAQ,EAAE,EAAE,CAAC;IACd,CAAC,QAAQ,EAAE,EAAE,CAAC;IACd,CAAC,QAAQ,EAAE,EAAE,CAAC;IACd,CAAC,QAAQ,EAAE,EAAE,CAAC;IACd,CAAC,QAAQ,EAAE,EAAE,CAAC;IACd,CAAC,QAAQ,EAAE,EAAE,CAAC;IACd,CAAC,SAAS,EAAE,EAAE,CAAC;IACf,CAAC,SAAS,EAAE,EAAE,CAAC;IACf,CAAC,OAAO,EAAE,EAAE,CAAC;IACb,CAAC,OAAO,EAAE,EAAE,CAAC;IACb,CAAC,QAAQ,EAAE,EAAE,CAAC;IACd,CAAC,QAAQ,EAAE,EAAE,CAAC;IACd,CAAC,QAAQ,EAAE,EAAE,CAAC;IACd,CAAC,SAAS,EAAE,EAAE,CAAC;IACf,CAAC,SAAS,EAAE,EAAE,CAAC;IACf,CAAC,SAAS,EAAE,EAAE,CAAC;IACf,CAAC,SAAS,EAAE,EAAE,CAAC;IACf,CAAC,SAAS,EAAE,EAAE,CAAC;IACf,CAAC,SAAS,EAAE,EAAE,CAAC;IACf,CAAC,SAAS,EAAE,EAAE,CAAC;IACf,CAAC,QAAQ,EAAE,EAAE,CAAC;IACd,CAAC,SAAS,EAAE,EAAE,CAAC;IACf,CAAC,OAAO,EAAE,EAAE,CAAC;IACb,CAAC,QAAQ,EAAE,EAAE,CAAC;IACd,CAAC,SAAS,EAAE,EAAE,CAAC;IACf,CAAC,SAAS,EAAE,EAAE,CAAC;IACf,CAAC,SAAS,EAAE,EAAE,CAAC;IACf,CAAC,SAAS,EAAE,EAAE,CAAC;IACf,CAAC,SAAS,EAAE,EAAE,CAAC;IACf,CAAC,QAAQ,EAAE,EAAE,CAAC;IACd,CAAC,QAAQ,EAAE,EAAE,CAAC;IACd,CAAC,QAAQ,EAAE,EAAE,CAAC;IACd,CAAC,SAAS,EAAE,EAAE,CAAC;IACf,CAAC,SAAS,EAAE,EAAE,CAAC;IACf,CAAC,SAAS,EAAE,EAAE,CAAC;IACf,CAAC,SAAS,EAAE,EAAE,CAAC;IACf,CAAC,SAAS,EAAE,EAAE,CAAC;IACf,CAAC,SAAS,EAAE,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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Check whether the Node.js runtime supports QUIC (HTTP/3).
|
|
3
|
+
*
|
|
4
|
+
* @returns `true` if QUIC support is detected.
|
|
5
|
+
*/
|
|
6
|
+
export declare function isQuicAvailable(): boolean;
|
|
7
|
+
/**
|
|
8
|
+
* Assert that QUIC is available, throwing if not.
|
|
9
|
+
*
|
|
10
|
+
* @throws {NLcURLError} If QUIC support is not detected.
|
|
11
|
+
*/
|
|
12
|
+
export declare function assertQuicAvailable(): void;
|
|
13
|
+
/** Reset the cached QUIC availability detection result. */
|
|
14
|
+
export declare function resetQuicDetection(): void;
|
|
15
|
+
//# sourceMappingURL=detection.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"detection.d.ts","sourceRoot":"","sources":["../../../src/http/h3/detection.ts"],"names":[],"mappings":"AAIA;;;;GAIG;AACH,wBAAgB,eAAe,IAAI,OAAO,CAkBzC;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,IAAI,IAAI,CAG1C;AAED,2DAA2D;AAC3D,wBAAgB,kBAAkB,IAAI,IAAI,CAEzC"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { NLcURLError } from "../../core/errors.js";
|
|
2
|
+
let _quicAvailable;
|
|
3
|
+
/**
|
|
4
|
+
* Check whether the Node.js runtime supports QUIC (HTTP/3).
|
|
5
|
+
*
|
|
6
|
+
* @returns `true` if QUIC support is detected.
|
|
7
|
+
*/
|
|
8
|
+
export function isQuicAvailable() {
|
|
9
|
+
if (_quicAvailable !== undefined)
|
|
10
|
+
return _quicAvailable;
|
|
11
|
+
_quicAvailable = false;
|
|
12
|
+
try {
|
|
13
|
+
const quic = globalThis["__quic"];
|
|
14
|
+
if (quic) {
|
|
15
|
+
_quicAvailable = true;
|
|
16
|
+
return true;
|
|
17
|
+
}
|
|
18
|
+
const net = require("node:net");
|
|
19
|
+
if (typeof net.createQuicSocket === "function") {
|
|
20
|
+
_quicAvailable = true;
|
|
21
|
+
return true;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
catch { }
|
|
25
|
+
return false;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Assert that QUIC is available, throwing if not.
|
|
29
|
+
*
|
|
30
|
+
* @throws {NLcURLError} If QUIC support is not detected.
|
|
31
|
+
*/
|
|
32
|
+
export function assertQuicAvailable() {
|
|
33
|
+
if (isQuicAvailable())
|
|
34
|
+
return;
|
|
35
|
+
throw new NLcURLError("HTTP/3 (QUIC) is not available. Node.js does not currently provide a stable QUIC API. " + "Use httpVersion '1.1' or '2', or omit httpVersion to let the library negotiate automatically. " + "Alt-Svc discovery is active — when QUIC becomes available, HTTP/3 will be used automatically.", "ERR_H3_UNAVAILABLE");
|
|
36
|
+
}
|
|
37
|
+
/** Reset the cached QUIC availability detection result. */
|
|
38
|
+
export function resetQuicDetection() {
|
|
39
|
+
_quicAvailable = undefined;
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=detection.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"detection.js","sourceRoot":"","sources":["../../../src/http/h3/detection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAEnD,IAAI,cAAmC,CAAC;AAExC;;;;GAIG;AACH,MAAM,UAAU,eAAe;IAC7B,IAAI,cAAc,KAAK,SAAS;QAAE,OAAO,cAAc,CAAC;IAExD,cAAc,GAAG,KAAK,CAAC;IACvB,IAAI,CAAC;QACH,MAAM,IAAI,GAAI,UAAsC,CAAC,QAAQ,CAAC,CAAC;QAC/D,IAAI,IAAI,EAAE,CAAC;YACT,cAAc,GAAG,IAAI,CAAC;YACtB,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,GAAG,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;QAChC,IAAI,OAAO,GAAG,CAAC,gBAAgB,KAAK,UAAU,EAAE,CAAC;YAC/C,cAAc,GAAG,IAAI,CAAC;YACtB,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAAC,MAAM,CAAC,CAAA,CAAC;IACV,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,mBAAmB;IACjC,IAAI,eAAe,EAAE;QAAE,OAAO;IAC9B,MAAM,IAAI,WAAW,CAAC,wFAAwF,GAAG,gGAAgG,GAAG,+FAA+F,EAAE,oBAAoB,CAAC,CAAC;AAC7U,CAAC;AAED,2DAA2D;AAC3D,MAAM,UAAU,kBAAkB;IAChC,cAAc,GAAG,SAAS,CAAC;AAC7B,CAAC"}
|
|
@@ -3,60 +3,70 @@ import type { TLSOptions } from "../tls/types.js";
|
|
|
3
3
|
import { type PoolOptions } from "./pool.js";
|
|
4
4
|
import type { NLcURLRequest } from "../core/request.js";
|
|
5
5
|
import { NLcURLResponse } from "../core/response.js";
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
* @property {BrowserProfile} [profile] - Browser profile for TLS, HTTP/2, and header fingerprinting.
|
|
13
|
-
* @property {boolean} [insecure] - Skip TLS certificate verification.
|
|
14
|
-
* @property {PoolOptions} [pool] - Connection pool configuration overrides.
|
|
15
|
-
*/
|
|
6
|
+
import { AltSvcStore } from "./alt-svc.js";
|
|
7
|
+
import { HTTPSRRResolver } from "../dns/https-rr.js";
|
|
8
|
+
import { DoHResolver } from "../dns/doh-resolver.js";
|
|
9
|
+
import type { DNSConfig } from "../dns/types.js";
|
|
10
|
+
import type { ECHOptions } from "../tls/ech.js";
|
|
11
|
+
/** Options controlling protocol negotiation behavior. */
|
|
16
12
|
export interface NegotiatorOptions {
|
|
13
|
+
/** Whether to use stealth TLS fingerprinting. */
|
|
17
14
|
stealth?: boolean;
|
|
15
|
+
/** Browser profile to impersonate. */
|
|
18
16
|
profile?: BrowserProfile;
|
|
17
|
+
/** Whether to skip TLS certificate verification. */
|
|
19
18
|
insecure?: boolean;
|
|
19
|
+
/** Connection pool options. */
|
|
20
20
|
pool?: PoolOptions;
|
|
21
|
+
/** TLS engine options. */
|
|
21
22
|
tls?: TLSOptions;
|
|
23
|
+
/** DNS resolver configuration. */
|
|
24
|
+
dns?: DNSConfig;
|
|
25
|
+
/** Encrypted Client Hello options. */
|
|
26
|
+
ech?: ECHOptions;
|
|
27
|
+
/** Whether to use Alt-Svc for protocol upgrades. */
|
|
28
|
+
altSvc?: boolean;
|
|
22
29
|
}
|
|
23
|
-
/**
|
|
24
|
-
* Manages the full lifecycle of an outgoing HTTP request: DNS resolution,
|
|
25
|
-
* TCP/TLS connection establishment (via proxy if configured), HTTP/1.1 or
|
|
26
|
-
* HTTP/2 protocol negotiation through ALPN, connection pooling, and response
|
|
27
|
-
* collection. Uses a shared {@link ConnectionPool} to reuse connections.
|
|
28
|
-
*/
|
|
30
|
+
/** HTTP protocol negotiator managing TLS, connection pooling, and ALPN selection. */
|
|
29
31
|
export declare class ProtocolNegotiator {
|
|
30
32
|
private readonly standardEngine;
|
|
31
33
|
private readonly stealthEngine;
|
|
32
34
|
private readonly pool;
|
|
35
|
+
private readonly sessionCache;
|
|
36
|
+
/** Alt-Svc store tracking alternative service advertisements. */
|
|
37
|
+
readonly altSvcStore: AltSvcStore;
|
|
38
|
+
private httpsRRResolver;
|
|
39
|
+
private dohResolver;
|
|
33
40
|
/**
|
|
34
|
-
*
|
|
41
|
+
* Create a new protocol negotiator.
|
|
35
42
|
*
|
|
36
|
-
* @param {PoolOptions} [poolOptions] -
|
|
43
|
+
* @param {PoolOptions} [poolOptions] - Connection pool configuration.
|
|
44
|
+
* @param {DNSConfig} [dnsConfig] - DNS resolver configuration.
|
|
37
45
|
*/
|
|
38
|
-
constructor(poolOptions?: PoolOptions);
|
|
46
|
+
constructor(poolOptions?: PoolOptions, dnsConfig?: DNSConfig);
|
|
39
47
|
/**
|
|
40
|
-
*
|
|
41
|
-
* available for the request’s origin; otherwise establishes a new TCP/TLS
|
|
42
|
-
* connection (with optional proxy tunnelling) and negotiates HTTP/1.1 or
|
|
43
|
-
* HTTP/2 via ALPN. Returns the server’s response.
|
|
48
|
+
* Send an HTTP request, negotiating the protocol automatically.
|
|
44
49
|
*
|
|
45
|
-
* @param {NLcURLRequest}
|
|
46
|
-
* @param {NegotiatorOptions}
|
|
47
|
-
* @returns {Promise<NLcURLResponse>}
|
|
48
|
-
* @throws {ConnectionError} If the TCP or TLS connection cannot be established.
|
|
49
|
-
* @throws {TLSError} If the TLS handshake fails.
|
|
50
|
-
* @throws {ProxyError} If proxy tunnel negotiation fails.
|
|
51
|
-
* @throws {TimeoutError} If any configured timeout is exceeded.
|
|
50
|
+
* @param {NLcURLRequest} request - Request to send.
|
|
51
|
+
* @param {NegotiatorOptions} [options] - Negotiation options.
|
|
52
|
+
* @returns {Promise<NLcURLResponse>} HTTP response.
|
|
52
53
|
*/
|
|
53
54
|
send(request: NLcURLRequest, options?: NegotiatorOptions): Promise<NLcURLResponse>;
|
|
54
55
|
private _send;
|
|
56
|
+
/** Close all pooled connections and release resources. */
|
|
57
|
+
close(): void;
|
|
55
58
|
/**
|
|
56
|
-
*
|
|
57
|
-
*
|
|
59
|
+
* Return the HTTPS resource record resolver, if configured.
|
|
60
|
+
*
|
|
61
|
+
* @returns {HTTPSRRResolver | null} HTTPS RR resolver instance, or `null`.
|
|
58
62
|
*/
|
|
59
|
-
|
|
63
|
+
getHTTPSRRResolver(): HTTPSRRResolver | null;
|
|
64
|
+
/**
|
|
65
|
+
* Return the DNS-over-HTTPS resolver, if configured.
|
|
66
|
+
*
|
|
67
|
+
* @returns {DoHResolver | null} DoH resolver instance, or `null`.
|
|
68
|
+
*/
|
|
69
|
+
getDoHResolver(): DoHResolver | null;
|
|
60
70
|
private connect;
|
|
61
71
|
}
|
|
62
72
|
//# sourceMappingURL=negotiator.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"negotiator.d.ts","sourceRoot":"","sources":["../../src/http/negotiator.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,KAAK,EAA4C,UAAU,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"negotiator.d.ts","sourceRoot":"","sources":["../../src/http/negotiator.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,KAAK,EAA4C,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAO5F,OAAO,EAAkB,KAAK,WAAW,EAAE,MAAM,WAAW,CAAC;AAE7D,OAAO,KAAK,EAAE,aAAa,EAAkB,MAAM,oBAAoB,CAAC;AACxE,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAKrD,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,eAAe,EAAsB,MAAM,oBAAoB,CAAC;AACzE,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAEhD,yDAAyD;AACzD,MAAM,WAAW,iBAAiB;IAChC,iDAAiD;IACjD,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,sCAAsC;IACtC,OAAO,CAAC,EAAE,cAAc,CAAC;IACzB,oDAAoD;IACpD,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,+BAA+B;IAC/B,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB,0BAA0B;IAC1B,GAAG,CAAC,EAAE,UAAU,CAAC;IACjB,kCAAkC;IAClC,GAAG,CAAC,EAAE,SAAS,CAAC;IAChB,sCAAsC;IACtC,GAAG,CAAC,EAAE,UAAU,CAAC;IACjB,oDAAoD;IACpD,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,qFAAqF;AACrF,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAgB;IAC/C,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAmB;IACjD,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAiB;IACtC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAkB;IAC/C,iEAAiE;IACjE,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;IAClC,OAAO,CAAC,eAAe,CAAgC;IACvD,OAAO,CAAC,WAAW,CAA4B;IAE/C;;;;;OAKG;gBACS,WAAW,CAAC,EAAE,WAAW,EAAE,SAAS,CAAC,EAAE,SAAS;IAe5D;;;;;;OAMG;IACG,IAAI,CAAC,OAAO,EAAE,aAAa,EAAE,OAAO,GAAE,iBAAsB,GAAG,OAAO,CAAC,cAAc,CAAC;YAI9E,KAAK;IAkFnB,0DAA0D;IAC1D,KAAK,IAAI,IAAI;IAIb;;;;OAIG;IACH,kBAAkB,IAAI,eAAe,GAAG,IAAI;IAI5C;;;;OAIG;IACH,cAAc,IAAI,WAAW,GAAG,IAAI;YAItB,OAAO;CAsGtB"}
|
package/dist/http/negotiator.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { NodeTLSEngine } from "../tls/node-engine.js";
|
|
2
2
|
import { StealthTLSEngine } from "../tls/stealth/engine.js";
|
|
3
|
+
import { TLSSessionCache } from "../tls/session-cache.js";
|
|
3
4
|
import { originOf } from "../utils/url.js";
|
|
4
5
|
import { supportsZstd, sanitizeAcceptEncoding } from "../utils/encoding.js";
|
|
5
6
|
import { happyEyeballsConnect } from "../utils/happy-eyeballs.js";
|
|
@@ -8,47 +9,63 @@ import { sendH1Request, sendH1StreamingRequest } from "./h1/client.js";
|
|
|
8
9
|
import { ProtocolError } from "../core/errors.js";
|
|
9
10
|
import { httpProxyConnect } from "../proxy/http-proxy.js";
|
|
10
11
|
import { socksConnect } from "../proxy/socks.js";
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
*/
|
|
12
|
+
import { assertQuicAvailable, isQuicAvailable } from "./h3/detection.js";
|
|
13
|
+
import { AltSvcStore } from "./alt-svc.js";
|
|
14
|
+
import { HTTPSRRResolver } from "../dns/https-rr.js";
|
|
15
|
+
import { DoHResolver } from "../dns/doh-resolver.js";
|
|
16
|
+
/** HTTP protocol negotiator managing TLS, connection pooling, and ALPN selection. */
|
|
17
17
|
export class ProtocolNegotiator {
|
|
18
18
|
standardEngine;
|
|
19
19
|
stealthEngine;
|
|
20
20
|
pool;
|
|
21
|
+
sessionCache;
|
|
22
|
+
/** Alt-Svc store tracking alternative service advertisements. */
|
|
23
|
+
altSvcStore;
|
|
24
|
+
httpsRRResolver = null;
|
|
25
|
+
dohResolver = null;
|
|
21
26
|
/**
|
|
22
|
-
*
|
|
27
|
+
* Create a new protocol negotiator.
|
|
23
28
|
*
|
|
24
|
-
* @param {PoolOptions} [poolOptions] -
|
|
29
|
+
* @param {PoolOptions} [poolOptions] - Connection pool configuration.
|
|
30
|
+
* @param {DNSConfig} [dnsConfig] - DNS resolver configuration.
|
|
25
31
|
*/
|
|
26
|
-
constructor(poolOptions) {
|
|
27
|
-
this.
|
|
32
|
+
constructor(poolOptions, dnsConfig) {
|
|
33
|
+
this.sessionCache = new TLSSessionCache();
|
|
34
|
+
this.standardEngine = new NodeTLSEngine(this.sessionCache);
|
|
28
35
|
this.stealthEngine = new StealthTLSEngine();
|
|
29
36
|
this.pool = new ConnectionPool(poolOptions);
|
|
37
|
+
this.altSvcStore = new AltSvcStore();
|
|
38
|
+
if (dnsConfig?.doh) {
|
|
39
|
+
this.dohResolver = new DoHResolver(dnsConfig.doh);
|
|
40
|
+
this.httpsRRResolver = new HTTPSRRResolver(dnsConfig.doh);
|
|
41
|
+
}
|
|
42
|
+
else if (dnsConfig?.httpsRR !== false) {
|
|
43
|
+
this.httpsRRResolver = new HTTPSRRResolver();
|
|
44
|
+
}
|
|
30
45
|
}
|
|
31
46
|
/**
|
|
32
|
-
*
|
|
33
|
-
* available for the request’s origin; otherwise establishes a new TCP/TLS
|
|
34
|
-
* connection (with optional proxy tunnelling) and negotiates HTTP/1.1 or
|
|
35
|
-
* HTTP/2 via ALPN. Returns the server’s response.
|
|
47
|
+
* Send an HTTP request, negotiating the protocol automatically.
|
|
36
48
|
*
|
|
37
|
-
* @param {NLcURLRequest}
|
|
38
|
-
* @param {NegotiatorOptions}
|
|
39
|
-
* @returns {Promise<NLcURLResponse>}
|
|
40
|
-
* @throws {ConnectionError} If the TCP or TLS connection cannot be established.
|
|
41
|
-
* @throws {TLSError} If the TLS handshake fails.
|
|
42
|
-
* @throws {ProxyError} If proxy tunnel negotiation fails.
|
|
43
|
-
* @throws {TimeoutError} If any configured timeout is exceeded.
|
|
49
|
+
* @param {NLcURLRequest} request - Request to send.
|
|
50
|
+
* @param {NegotiatorOptions} [options] - Negotiation options.
|
|
51
|
+
* @returns {Promise<NLcURLResponse>} HTTP response.
|
|
44
52
|
*/
|
|
45
53
|
async send(request, options = {}) {
|
|
46
54
|
return this._send(request, options, false);
|
|
47
55
|
}
|
|
48
56
|
async _send(request, options, isRetry) {
|
|
57
|
+
if (request.httpVersion === "3") {
|
|
58
|
+
assertQuicAvailable();
|
|
59
|
+
}
|
|
49
60
|
const url = new URL(request.url);
|
|
50
61
|
const origin = originOf(url.toString());
|
|
51
62
|
const timings = {};
|
|
63
|
+
const useAltSvc = options.altSvc !== false;
|
|
64
|
+
if (useAltSvc && !request.httpVersion && isQuicAvailable()) {
|
|
65
|
+
const altEntry = this.altSvcStore.lookup(origin);
|
|
66
|
+
if (altEntry && altEntry.alpn.startsWith("h3")) {
|
|
67
|
+
}
|
|
68
|
+
}
|
|
52
69
|
let poolEntry = this.pool.get(origin);
|
|
53
70
|
if (!poolEntry) {
|
|
54
71
|
const connectStart = Date.now();
|
|
@@ -71,11 +88,11 @@ export class ProtocolNegotiator {
|
|
|
71
88
|
poolEntry = this.pool.put(origin, socket, protocol, undefined, defaultHeaders);
|
|
72
89
|
}
|
|
73
90
|
}
|
|
91
|
+
let response;
|
|
74
92
|
if (poolEntry.protocol === "h2" && poolEntry.h2Client) {
|
|
75
93
|
poolEntry.h2Client.sendPreface();
|
|
76
94
|
try {
|
|
77
|
-
|
|
78
|
-
return response;
|
|
95
|
+
response = request.stream ? await poolEntry.h2Client.streamRequest(request, timings) : await poolEntry.h2Client.request(request, timings);
|
|
79
96
|
}
|
|
80
97
|
catch (err) {
|
|
81
98
|
this.pool.remove(poolEntry);
|
|
@@ -85,37 +102,75 @@ export class ProtocolNegotiator {
|
|
|
85
102
|
throw err;
|
|
86
103
|
}
|
|
87
104
|
}
|
|
88
|
-
const h1Send = request.stream ? sendH1StreamingRequest : sendH1Request;
|
|
89
|
-
let response;
|
|
90
|
-
try {
|
|
91
|
-
response = await h1Send(poolEntry.socket, request, { defaultHeaders: sanitizeProfileHeaders(options.profile?.headers.headers ?? []) }, timings);
|
|
92
|
-
}
|
|
93
|
-
catch (err) {
|
|
94
|
-
this.pool.remove(poolEntry);
|
|
95
|
-
throw err;
|
|
96
|
-
}
|
|
97
|
-
const connection = response.headers["connection"];
|
|
98
|
-
if (connection?.toLowerCase() === "close") {
|
|
99
|
-
this.pool.remove(poolEntry);
|
|
100
|
-
}
|
|
101
105
|
else {
|
|
102
|
-
|
|
106
|
+
const h1Send = request.stream ? sendH1StreamingRequest : sendH1Request;
|
|
107
|
+
try {
|
|
108
|
+
response = await h1Send(poolEntry.socket, request, { defaultHeaders: sanitizeProfileHeaders(options.profile?.headers.headers ?? []) }, timings);
|
|
109
|
+
}
|
|
110
|
+
catch (err) {
|
|
111
|
+
this.pool.remove(poolEntry);
|
|
112
|
+
throw err;
|
|
113
|
+
}
|
|
114
|
+
const connection = response.headers["connection"];
|
|
115
|
+
if (connection?.toLowerCase() === "close") {
|
|
116
|
+
this.pool.remove(poolEntry);
|
|
117
|
+
}
|
|
118
|
+
else {
|
|
119
|
+
this.pool.release(poolEntry);
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
if (useAltSvc) {
|
|
123
|
+
const altSvcHeader = response.headers["alt-svc"];
|
|
124
|
+
if (altSvcHeader) {
|
|
125
|
+
this.altSvcStore.parseHeader(origin, altSvcHeader);
|
|
126
|
+
}
|
|
103
127
|
}
|
|
104
128
|
return response;
|
|
105
129
|
}
|
|
106
|
-
/**
|
|
107
|
-
* Closes the underlying connection pool, destroying all idle and active
|
|
108
|
-
* connections. After calling this method the negotiator must not be reused.
|
|
109
|
-
*/
|
|
130
|
+
/** Close all pooled connections and release resources. */
|
|
110
131
|
close() {
|
|
111
132
|
this.pool.close();
|
|
112
133
|
}
|
|
134
|
+
/**
|
|
135
|
+
* Return the HTTPS resource record resolver, if configured.
|
|
136
|
+
*
|
|
137
|
+
* @returns {HTTPSRRResolver | null} HTTPS RR resolver instance, or `null`.
|
|
138
|
+
*/
|
|
139
|
+
getHTTPSRRResolver() {
|
|
140
|
+
return this.httpsRRResolver;
|
|
141
|
+
}
|
|
142
|
+
/**
|
|
143
|
+
* Return the DNS-over-HTTPS resolver, if configured.
|
|
144
|
+
*
|
|
145
|
+
* @returns {DoHResolver | null} DoH resolver instance, or `null`.
|
|
146
|
+
*/
|
|
147
|
+
getDoHResolver() {
|
|
148
|
+
return this.dohResolver;
|
|
149
|
+
}
|
|
113
150
|
async connect(url, request, options) {
|
|
114
151
|
const engine = (request.stealth ?? options.stealth) ? this.stealthEngine : this.standardEngine;
|
|
115
152
|
const port = url.port ? parseInt(url.port, 10) : url.protocol === "https:" ? 443 : 80;
|
|
116
153
|
const defaultAlpn = request.httpVersion === "1.1" ? ["http/1.1"] : request.httpVersion === "2" ? ["h2"] : ["h2", "http/1.1"];
|
|
117
154
|
const tcpTimeout = typeof request.timeout === "number" ? request.timeout : request.timeout?.connect;
|
|
118
155
|
const tlsTimeout = typeof request.timeout === "number" ? request.timeout : (request.timeout?.tls ?? request.timeout?.connect);
|
|
156
|
+
let httpsRR = null;
|
|
157
|
+
let echConfigList;
|
|
158
|
+
const echOpts = options.ech ?? request.ech;
|
|
159
|
+
const echEnabled = echOpts?.enabled !== false;
|
|
160
|
+
if (echOpts?.echConfigList) {
|
|
161
|
+
echConfigList = typeof echOpts.echConfigList === "string" ? Buffer.from(echOpts.echConfigList, "base64") : echOpts.echConfigList;
|
|
162
|
+
}
|
|
163
|
+
if (this.httpsRRResolver && url.protocol === "https:" && !request.proxy) {
|
|
164
|
+
try {
|
|
165
|
+
httpsRR = await this.httpsRRResolver.resolve(url.hostname, request.signal);
|
|
166
|
+
}
|
|
167
|
+
catch { }
|
|
168
|
+
if (httpsRR) {
|
|
169
|
+
if (!echConfigList && echEnabled && httpsRR.echConfigList) {
|
|
170
|
+
echConfigList = httpsRR.echConfigList;
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
}
|
|
119
174
|
const tlsOptions = {
|
|
120
175
|
host: url.hostname,
|
|
121
176
|
port,
|
|
@@ -130,6 +185,8 @@ export class ProtocolNegotiator {
|
|
|
130
185
|
passphrase: options.tls?.passphrase,
|
|
131
186
|
pfx: options.tls?.pfx,
|
|
132
187
|
ca: options.tls?.ca,
|
|
188
|
+
pinnedPublicKey: options.tls?.pinnedPublicKey,
|
|
189
|
+
echConfigList,
|
|
133
190
|
};
|
|
134
191
|
let dnsTimeMs = 0;
|
|
135
192
|
if (request.proxy) {
|
|
@@ -155,6 +212,7 @@ export class ProtocolNegotiator {
|
|
|
155
212
|
auth: proxyAuth,
|
|
156
213
|
timeout: tcpTimeout,
|
|
157
214
|
family: request.dnsFamily,
|
|
215
|
+
secure: scheme === "https",
|
|
158
216
|
}, url.hostname, port);
|
|
159
217
|
tlsOptions.socket = tunnelSocket;
|
|
160
218
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"negotiator.js","sourceRoot":"","sources":["../../src/http/negotiator.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAC5E,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAClE,OAAO,EAAE,cAAc,
|
|
1
|
+
{"version":3,"file":"negotiator.js","sourceRoot":"","sources":["../../src/http/negotiator.ts"],"names":[],"mappings":"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"}
|