nlcurl 0.3.1 → 0.5.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.
Files changed (187) hide show
  1. package/README.md +1 -1
  2. package/dist/cli/args.d.ts.map +1 -1
  3. package/dist/cli/args.js +84 -90
  4. package/dist/cli/args.js.map +1 -1
  5. package/dist/cli/index.js +25 -25
  6. package/dist/cli/index.js.map +1 -1
  7. package/dist/cli/output.d.ts +2 -2
  8. package/dist/cli/output.d.ts.map +1 -1
  9. package/dist/cli/output.js +55 -55
  10. package/dist/cli/output.js.map +1 -1
  11. package/dist/cookies/jar.d.ts +1 -1
  12. package/dist/cookies/jar.d.ts.map +1 -1
  13. package/dist/cookies/jar.js +20 -22
  14. package/dist/cookies/jar.js.map +1 -1
  15. package/dist/cookies/parser.d.ts +1 -1
  16. package/dist/cookies/parser.d.ts.map +1 -1
  17. package/dist/cookies/parser.js +20 -22
  18. package/dist/cookies/parser.js.map +1 -1
  19. package/dist/core/client.d.ts +3 -3
  20. package/dist/core/client.d.ts.map +1 -1
  21. package/dist/core/client.js +9 -8
  22. package/dist/core/client.js.map +1 -1
  23. package/dist/core/errors.d.ts +64 -21
  24. package/dist/core/errors.d.ts.map +1 -1
  25. package/dist/core/errors.js +112 -36
  26. package/dist/core/errors.js.map +1 -1
  27. package/dist/core/request.d.ts +10 -5
  28. package/dist/core/request.d.ts.map +1 -1
  29. package/dist/core/response.d.ts +2 -2
  30. package/dist/core/response.d.ts.map +1 -1
  31. package/dist/core/response.js +6 -8
  32. package/dist/core/response.js.map +1 -1
  33. package/dist/core/session.d.ts +7 -6
  34. package/dist/core/session.d.ts.map +1 -1
  35. package/dist/core/session.js +58 -43
  36. package/dist/core/session.js.map +1 -1
  37. package/dist/core/validation.d.ts +96 -0
  38. package/dist/core/validation.d.ts.map +1 -0
  39. package/dist/core/validation.js +246 -0
  40. package/dist/core/validation.js.map +1 -0
  41. package/dist/fingerprints/akamai.d.ts +1 -1
  42. package/dist/fingerprints/akamai.d.ts.map +1 -1
  43. package/dist/fingerprints/akamai.js +3 -7
  44. package/dist/fingerprints/akamai.js.map +1 -1
  45. package/dist/fingerprints/database.d.ts +7 -7
  46. package/dist/fingerprints/database.d.ts.map +1 -1
  47. package/dist/fingerprints/database.js +12 -18
  48. package/dist/fingerprints/database.js.map +1 -1
  49. package/dist/fingerprints/extensions.d.ts.map +1 -1
  50. package/dist/fingerprints/extensions.js +4 -4
  51. package/dist/fingerprints/extensions.js.map +1 -1
  52. package/dist/fingerprints/ja3.d.ts +1 -1
  53. package/dist/fingerprints/ja3.d.ts.map +1 -1
  54. package/dist/fingerprints/ja3.js +12 -12
  55. package/dist/fingerprints/ja3.js.map +1 -1
  56. package/dist/fingerprints/profiles/chrome.d.ts +1 -1
  57. package/dist/fingerprints/profiles/chrome.d.ts.map +1 -1
  58. package/dist/fingerprints/profiles/chrome.js +59 -100
  59. package/dist/fingerprints/profiles/chrome.js.map +1 -1
  60. package/dist/fingerprints/profiles/edge.d.ts +1 -1
  61. package/dist/fingerprints/profiles/edge.d.ts.map +1 -1
  62. package/dist/fingerprints/profiles/edge.js +26 -26
  63. package/dist/fingerprints/profiles/edge.js.map +1 -1
  64. package/dist/fingerprints/profiles/firefox.d.ts +1 -1
  65. package/dist/fingerprints/profiles/firefox.d.ts.map +1 -1
  66. package/dist/fingerprints/profiles/firefox.js +35 -85
  67. package/dist/fingerprints/profiles/firefox.js.map +1 -1
  68. package/dist/fingerprints/profiles/safari.d.ts +1 -1
  69. package/dist/fingerprints/profiles/safari.d.ts.map +1 -1
  70. package/dist/fingerprints/profiles/safari.js +35 -68
  71. package/dist/fingerprints/profiles/safari.js.map +1 -1
  72. package/dist/fingerprints/profiles/tor.d.ts +1 -1
  73. package/dist/fingerprints/profiles/tor.d.ts.map +1 -1
  74. package/dist/fingerprints/profiles/tor.js +24 -57
  75. package/dist/fingerprints/profiles/tor.js.map +1 -1
  76. package/dist/fingerprints/types.d.ts +1 -1
  77. package/dist/fingerprints/types.d.ts.map +1 -1
  78. package/dist/http/h1/client.d.ts +4 -4
  79. package/dist/http/h1/client.d.ts.map +1 -1
  80. package/dist/http/h1/client.js +31 -31
  81. package/dist/http/h1/client.js.map +1 -1
  82. package/dist/http/h1/encoder.d.ts +1 -1
  83. package/dist/http/h1/encoder.d.ts.map +1 -1
  84. package/dist/http/h1/encoder.js +21 -20
  85. package/dist/http/h1/encoder.js.map +1 -1
  86. package/dist/http/h1/parser.d.ts +1 -1
  87. package/dist/http/h1/parser.d.ts.map +1 -1
  88. package/dist/http/h1/parser.js +29 -33
  89. package/dist/http/h1/parser.js.map +1 -1
  90. package/dist/http/h2/client.d.ts +5 -4
  91. package/dist/http/h2/client.d.ts.map +1 -1
  92. package/dist/http/h2/client.js +88 -76
  93. package/dist/http/h2/client.js.map +1 -1
  94. package/dist/http/h2/frames.d.ts +7 -3
  95. package/dist/http/h2/frames.d.ts.map +1 -1
  96. package/dist/http/h2/frames.js +16 -12
  97. package/dist/http/h2/frames.js.map +1 -1
  98. package/dist/http/h2/hpack.d.ts.map +1 -1
  99. package/dist/http/h2/hpack.js +331 -130
  100. package/dist/http/h2/hpack.js.map +1 -1
  101. package/dist/http/negotiator.d.ts +4 -4
  102. package/dist/http/negotiator.d.ts.map +1 -1
  103. package/dist/http/negotiator.js +45 -48
  104. package/dist/http/negotiator.js.map +1 -1
  105. package/dist/http/pool.d.ts +5 -5
  106. package/dist/http/pool.d.ts.map +1 -1
  107. package/dist/http/pool.js +5 -5
  108. package/dist/http/pool.js.map +1 -1
  109. package/dist/index.d.ts +16 -14
  110. package/dist/index.d.ts.map +1 -1
  111. package/dist/index.js +10 -9
  112. package/dist/index.js.map +1 -1
  113. package/dist/middleware/interceptor.d.ts +2 -2
  114. package/dist/middleware/interceptor.d.ts.map +1 -1
  115. package/dist/middleware/interceptor.js.map +1 -1
  116. package/dist/middleware/rate-limiter.d.ts.map +1 -1
  117. package/dist/middleware/rate-limiter.js +2 -0
  118. package/dist/middleware/rate-limiter.js.map +1 -1
  119. package/dist/middleware/retry.d.ts +6 -4
  120. package/dist/middleware/retry.d.ts.map +1 -1
  121. package/dist/middleware/retry.js +9 -7
  122. package/dist/middleware/retry.js.map +1 -1
  123. package/dist/proxy/http-proxy.d.ts +1 -1
  124. package/dist/proxy/http-proxy.d.ts.map +1 -1
  125. package/dist/proxy/http-proxy.js +14 -14
  126. package/dist/proxy/http-proxy.js.map +1 -1
  127. package/dist/proxy/socks.d.ts +1 -1
  128. package/dist/proxy/socks.d.ts.map +1 -1
  129. package/dist/proxy/socks.js +57 -28
  130. package/dist/proxy/socks.js.map +1 -1
  131. package/dist/tls/constants.d.ts.map +1 -1
  132. package/dist/tls/constants.js +1 -4
  133. package/dist/tls/constants.js.map +1 -1
  134. package/dist/tls/node-engine.d.ts +2 -2
  135. package/dist/tls/node-engine.d.ts.map +1 -1
  136. package/dist/tls/node-engine.js +58 -58
  137. package/dist/tls/node-engine.js.map +1 -1
  138. package/dist/tls/stealth/client-hello.d.ts +1 -1
  139. package/dist/tls/stealth/client-hello.d.ts.map +1 -1
  140. package/dist/tls/stealth/client-hello.js +8 -14
  141. package/dist/tls/stealth/client-hello.js.map +1 -1
  142. package/dist/tls/stealth/engine.d.ts +2 -2
  143. package/dist/tls/stealth/engine.d.ts.map +1 -1
  144. package/dist/tls/stealth/engine.js +23 -26
  145. package/dist/tls/stealth/engine.js.map +1 -1
  146. package/dist/tls/stealth/handshake.d.ts +3 -3
  147. package/dist/tls/stealth/handshake.d.ts.map +1 -1
  148. package/dist/tls/stealth/handshake.js +62 -74
  149. package/dist/tls/stealth/handshake.js.map +1 -1
  150. package/dist/tls/stealth/key-schedule.d.ts +2 -2
  151. package/dist/tls/stealth/key-schedule.d.ts.map +1 -1
  152. package/dist/tls/stealth/key-schedule.js +20 -20
  153. package/dist/tls/stealth/key-schedule.js.map +1 -1
  154. package/dist/tls/stealth/record-layer.d.ts +1 -1
  155. package/dist/tls/stealth/record-layer.d.ts.map +1 -1
  156. package/dist/tls/stealth/record-layer.js +13 -13
  157. package/dist/tls/stealth/record-layer.js.map +1 -1
  158. package/dist/tls/types.d.ts +4 -4
  159. package/dist/tls/types.d.ts.map +1 -1
  160. package/dist/utils/buffer-reader.d.ts.map +1 -1
  161. package/dist/utils/buffer-reader.js.map +1 -1
  162. package/dist/utils/buffer-writer.d.ts.map +1 -1
  163. package/dist/utils/buffer-writer.js +6 -0
  164. package/dist/utils/buffer-writer.js.map +1 -1
  165. package/dist/utils/encoding.d.ts +1 -1
  166. package/dist/utils/encoding.d.ts.map +1 -1
  167. package/dist/utils/encoding.js +23 -25
  168. package/dist/utils/encoding.js.map +1 -1
  169. package/dist/utils/happy-eyeballs.d.ts +26 -0
  170. package/dist/utils/happy-eyeballs.d.ts.map +1 -0
  171. package/dist/utils/happy-eyeballs.js +201 -0
  172. package/dist/utils/happy-eyeballs.js.map +1 -0
  173. package/dist/utils/logger.d.ts +48 -7
  174. package/dist/utils/logger.d.ts.map +1 -1
  175. package/dist/utils/logger.js +61 -13
  176. package/dist/utils/logger.js.map +1 -1
  177. package/dist/utils/url.d.ts.map +1 -1
  178. package/dist/utils/url.js +2 -2
  179. package/dist/utils/url.js.map +1 -1
  180. package/dist/ws/client.d.ts +2 -2
  181. package/dist/ws/client.d.ts.map +1 -1
  182. package/dist/ws/client.js +76 -71
  183. package/dist/ws/client.js.map +1 -1
  184. package/dist/ws/frame.d.ts.map +1 -1
  185. package/dist/ws/frame.js +8 -8
  186. package/dist/ws/frame.js.map +1 -1
  187. package/package.json +61 -57
@@ -1,9 +1,9 @@
1
- import { PassThrough } from 'node:stream';
2
- import { NLcURLResponse } from '../../core/response.js';
3
- import { HTTPError, TimeoutError, ProtocolError } from '../../core/errors.js';
4
- import { decompressBody, createDecompressStream } from '../../utils/encoding.js';
5
- import { HPACKEncoder, HPACKDecoder } from './hpack.js';
6
- import { readFrame, writeFrame, buildSettingsFrame, buildWindowUpdateFrame, buildHeadersFrame, buildDataFrame, buildPingFrame, buildGoawayFrame, buildRstStreamFrame, H2_PREFACE, FrameType, Flags, } from './frames.js';
1
+ import { PassThrough } from "node:stream";
2
+ import { NLcURLResponse } from "../../core/response.js";
3
+ import { HTTPError, TimeoutError, ProtocolError } from "../../core/errors.js";
4
+ import { decompressBody, createDecompressStream } from "../../utils/encoding.js";
5
+ import { HPACKEncoder, HPACKDecoder } from "./hpack.js";
6
+ import { readFrame, writeFrame, buildSettingsFrame, buildWindowUpdateFrame, buildHeadersFrame, buildDataFrame, buildPingFrame, buildGoawayFrame, buildRstStreamFrame, H2_PREFACE, FrameType, Flags } from "./frames.js";
7
7
  const DEFAULT_INITIAL_WINDOW_SIZE = 65535;
8
8
  const WINDOW_UPDATE_THRESHOLD_RATIO = 0.5;
9
9
  /**
@@ -32,6 +32,7 @@ export class H2Client {
32
32
  streamRecvWindows = new Map();
33
33
  serverMaxConcurrentStreams = Infinity;
34
34
  serverMaxFrameSize = 16384;
35
+ localMaxFrameSize = 16384;
35
36
  connectionSendWindow = DEFAULT_INITIAL_WINDOW_SIZE;
36
37
  initialStreamSendWindow = DEFAULT_INITIAL_WINDOW_SIZE;
37
38
  streamSendWindows = new Map();
@@ -60,9 +61,9 @@ export class H2Client {
60
61
  this.decoder = new HPACKDecoder();
61
62
  this.h2Profile = h2Profile;
62
63
  this.defaultHeaders = defaultHeaders;
63
- stream.on('data', (chunk) => this.onData(chunk));
64
- stream.once('error', (err) => this.handleError(err));
65
- stream.once('close', () => this.handleClose());
64
+ stream.on("data", (chunk) => this.onData(chunk));
65
+ stream.once("error", (err) => this.handleError(err));
66
+ stream.once("close", () => this.handleClose());
66
67
  }
67
68
  /**
68
69
  * Returns `true` if the connection has been closed or destroyed and is no
@@ -88,6 +89,8 @@ export class H2Client {
88
89
  for (const s of this.h2Profile.settings) {
89
90
  if (s.id === 4)
90
91
  this.initialStreamRecvWindow = s.value;
92
+ if (s.id === 5)
93
+ this.localMaxFrameSize = s.value;
91
94
  }
92
95
  if (this.h2Profile.windowUpdate > 0) {
93
96
  this.connectionRecvWindow = DEFAULT_INITIAL_WINDOW_SIZE + this.h2Profile.windowUpdate;
@@ -134,13 +137,13 @@ export class H2Client {
134
137
  */
135
138
  async request(req, timings = {}) {
136
139
  if (this._closed) {
137
- throw new ProtocolError('HTTP/2 connection is closed');
140
+ throw new ProtocolError("HTTP/2 connection is closed");
138
141
  }
139
142
  if (!this.prefaceSent)
140
143
  this.sendPreface();
141
144
  const streamId = this.nextStreamId;
142
145
  if (streamId > 0x7fffffff) {
143
- throw new ProtocolError('HTTP/2 stream ID exhausted; open a new connection');
146
+ throw new ProtocolError("HTTP/2 stream ID exhausted; open a new connection");
144
147
  }
145
148
  this.nextStreamId += 2;
146
149
  return new Promise((resolve, reject) => {
@@ -161,22 +164,22 @@ export class H2Client {
161
164
  this.streamSendWindows.set(streamId, this.initialStreamSendWindow);
162
165
  const headers = this.buildRequestHeaders(req);
163
166
  const headerBlock = this.encoder.encode(headers);
164
- const hasBody = req.body !== undefined &&
165
- req.body !== null &&
166
- req.method !== 'GET' &&
167
- req.method !== 'HEAD';
167
+ const hasBody = req.body !== undefined && req.body !== null && req.method !== "GET" && req.method !== "HEAD";
168
168
  this.write(buildHeadersFrame(streamId, headerBlock, !hasBody, true));
169
169
  if (hasBody) {
170
170
  const bodyBuf = serializeBody(req.body);
171
171
  this.sendDataWithFlowControl(streamId, bodyBuf, true);
172
172
  }
173
173
  const timeout = req.timeout;
174
- const timeoutMs = typeof timeout === 'number' ? timeout : (timeout?.total ?? timeout?.response ?? 0);
174
+ const timeoutMs = typeof timeout === "number" ? timeout : (timeout?.total ?? timeout?.response ?? 0);
175
175
  if (timeoutMs > 0) {
176
176
  h2stream.timer = setTimeout(() => {
177
177
  if (this.streams.has(streamId)) {
178
178
  this.streams.delete(streamId);
179
- reject(new TimeoutError('HTTP/2 request timed out', 'response'));
179
+ this.streamRecvWindows.delete(streamId);
180
+ this.streamSendWindows.delete(streamId);
181
+ this.pendingSendData.delete(streamId);
182
+ reject(new TimeoutError("HTTP/2 request timed out", "response"));
180
183
  }
181
184
  }, timeoutMs);
182
185
  }
@@ -196,13 +199,13 @@ export class H2Client {
196
199
  */
197
200
  async streamRequest(req, timings = {}) {
198
201
  if (this._closed) {
199
- throw new ProtocolError('HTTP/2 connection is closed');
202
+ throw new ProtocolError("HTTP/2 connection is closed");
200
203
  }
201
204
  if (!this.prefaceSent)
202
205
  this.sendPreface();
203
206
  const streamId = this.nextStreamId;
204
207
  if (streamId > 0x7fffffff) {
205
- throw new ProtocolError('HTTP/2 stream ID exhausted; open a new connection');
208
+ throw new ProtocolError("HTTP/2 stream ID exhausted; open a new connection");
206
209
  }
207
210
  this.nextStreamId += 2;
208
211
  return new Promise((resolve, reject) => {
@@ -225,10 +228,7 @@ export class H2Client {
225
228
  this.streamSendWindows.set(streamId, this.initialStreamSendWindow);
226
229
  const headers = this.buildRequestHeaders(req);
227
230
  const headerBlock = this.encoder.encode(headers);
228
- const hasBody = req.body !== undefined &&
229
- req.body !== null &&
230
- req.method !== 'GET' &&
231
- req.method !== 'HEAD';
231
+ const hasBody = req.body !== undefined && req.body !== null && req.method !== "GET" && req.method !== "HEAD";
232
232
  this.write(buildHeadersFrame(streamId, headerBlock, !hasBody, true));
233
233
  if (hasBody) {
234
234
  const bodyBuf = serializeBody(req.body);
@@ -238,13 +238,16 @@ export class H2Client {
238
238
  resolve(resp);
239
239
  };
240
240
  const timeout = req.timeout;
241
- const timeoutMs = typeof timeout === 'number' ? timeout : (timeout?.total ?? timeout?.response ?? 0);
241
+ const timeoutMs = typeof timeout === "number" ? timeout : (timeout?.total ?? timeout?.response ?? 0);
242
242
  if (timeoutMs > 0) {
243
243
  h2stream.timer = setTimeout(() => {
244
244
  if (this.streams.has(streamId)) {
245
245
  this.streams.delete(streamId);
246
- bodyStream.destroy(new TimeoutError('HTTP/2 request timed out', 'response'));
247
- reject(new TimeoutError('HTTP/2 request timed out', 'response'));
246
+ this.streamRecvWindows.delete(streamId);
247
+ this.streamSendWindows.delete(streamId);
248
+ this.pendingSendData.delete(streamId);
249
+ bodyStream.destroy(new TimeoutError("HTTP/2 request timed out", "response"));
250
+ reject(new TimeoutError("HTTP/2 request timed out", "response"));
248
251
  }
249
252
  }, timeoutMs);
250
253
  }
@@ -258,6 +261,15 @@ export class H2Client {
258
261
  if (this._closed)
259
262
  return;
260
263
  this._closed = true;
264
+ for (const [, s] of this.streams) {
265
+ if (s.timer)
266
+ clearTimeout(s.timer);
267
+ s.reject(new ProtocolError("HTTP/2 connection closed", 0));
268
+ }
269
+ this.streams.clear();
270
+ this.streamRecvWindows.clear();
271
+ this.streamSendWindows.clear();
272
+ this.pendingSendData.clear();
261
273
  this.write(buildGoawayFrame(0, 0));
262
274
  this.stream.end();
263
275
  this.onClose?.();
@@ -272,7 +284,7 @@ export class H2Client {
272
284
  for (const [, s] of this.streams) {
273
285
  if (s.timer)
274
286
  clearTimeout(s.timer);
275
- s.reject(new ProtocolError('HTTP/2 connection destroyed'));
287
+ s.reject(new ProtocolError("HTTP/2 connection destroyed"));
276
288
  }
277
289
  this.streams.clear();
278
290
  this.streamRecvWindows.clear();
@@ -284,17 +296,12 @@ export class H2Client {
284
296
  const url = new URL(req.url);
285
297
  const authority = url.port ? `${url.hostname}:${url.port}` : url.hostname;
286
298
  const path = url.pathname + url.search;
287
- const order = this.h2Profile?.pseudoHeaderOrder ?? [
288
- ':method',
289
- ':authority',
290
- ':scheme',
291
- ':path',
292
- ];
299
+ const order = this.h2Profile?.pseudoHeaderOrder ?? [":method", ":authority", ":scheme", ":path"];
293
300
  const pseudoMap = {
294
- ':method': req.method ?? 'GET',
295
- ':authority': authority,
296
- ':scheme': url.protocol.replace(':', ''),
297
- ':path': path || '/',
301
+ ":method": req.method ?? "GET",
302
+ ":authority": authority,
303
+ ":scheme": url.protocol.replace(":", ""),
304
+ ":path": path || "/",
298
305
  };
299
306
  const headers = [];
300
307
  for (const ph of order) {
@@ -337,7 +344,7 @@ export class H2Client {
337
344
  }
338
345
  processFrames() {
339
346
  while (true) {
340
- const result = readFrame(this.readBuffer, 0);
347
+ const result = readFrame(this.readBuffer, 0, this.localMaxFrameSize);
341
348
  if (!result)
342
349
  break;
343
350
  this.readBuffer = this.readBuffer.subarray(result.bytesRead);
@@ -351,7 +358,7 @@ export class H2Client {
351
358
  for (const [, s] of this.streams) {
352
359
  if (s.timer)
353
360
  clearTimeout(s.timer);
354
- s.reject(new ProtocolError('Protocol error: expected CONTINUATION frame', 1));
361
+ s.reject(new ProtocolError("Protocol error: expected CONTINUATION frame", 1));
355
362
  }
356
363
  this.streams.clear();
357
364
  this.onClose?.();
@@ -371,13 +378,13 @@ export class H2Client {
371
378
  let headerPayload = frame.payload;
372
379
  if (frame.flags & Flags.PADDED) {
373
380
  if (headerPayload.length < 1) {
374
- s.reject(new ProtocolError('HEADERS frame with PADDED flag but no pad length'));
381
+ s.reject(new ProtocolError("HEADERS frame with PADDED flag but no pad length"));
375
382
  this.streams.delete(frame.streamId);
376
383
  break;
377
384
  }
378
385
  const padLength = headerPayload[0];
379
386
  if (padLength >= headerPayload.length) {
380
- s.reject(new ProtocolError('HEADERS pad length exceeds payload'));
387
+ s.reject(new ProtocolError("HEADERS pad length exceeds payload"));
381
388
  this.streams.delete(frame.streamId);
382
389
  break;
383
390
  }
@@ -385,7 +392,7 @@ export class H2Client {
385
392
  }
386
393
  if (frame.flags & Flags.PRIORITY) {
387
394
  if (headerPayload.length < 5) {
388
- s.reject(new ProtocolError('HEADERS frame with PRIORITY but insufficient data'));
395
+ s.reject(new ProtocolError("HEADERS frame with PRIORITY but insufficient data"));
389
396
  this.streams.delete(frame.streamId);
390
397
  break;
391
398
  }
@@ -404,6 +411,15 @@ export class H2Client {
404
411
  if (this.pendingHeaderStreamId === null || frame.streamId !== this.pendingHeaderStreamId) {
405
412
  this._closed = true;
406
413
  this.write(buildGoawayFrame(0, 1));
414
+ for (const [, s] of this.streams) {
415
+ if (s.timer)
416
+ clearTimeout(s.timer);
417
+ s.reject(new ProtocolError("Protocol error: unexpected CONTINUATION frame", 1));
418
+ }
419
+ this.streams.clear();
420
+ this.streamRecvWindows.clear();
421
+ this.streamSendWindows.clear();
422
+ this.pendingSendData.clear();
407
423
  this.onClose?.();
408
424
  return;
409
425
  }
@@ -428,13 +444,13 @@ export class H2Client {
428
444
  let dataPayload = frame.payload;
429
445
  if (frame.flags & Flags.PADDED) {
430
446
  if (dataPayload.length < 1) {
431
- s.reject(new ProtocolError('DATA frame with PADDED flag but no pad length'));
447
+ s.reject(new ProtocolError("DATA frame with PADDED flag but no pad length"));
432
448
  this.streams.delete(frame.streamId);
433
449
  break;
434
450
  }
435
451
  const padLength = dataPayload[0];
436
452
  if (padLength >= dataPayload.length) {
437
- s.reject(new ProtocolError('DATA pad length exceeds payload'));
453
+ s.reject(new ProtocolError("DATA pad length exceeds payload"));
438
454
  this.streams.delete(frame.streamId);
439
455
  break;
440
456
  }
@@ -488,7 +504,7 @@ export class H2Client {
488
504
  s.reject(new ProtocolError(`HTTP/2 GOAWAY: error code ${errorCode}`, errorCode));
489
505
  }
490
506
  else {
491
- s.reject(new ProtocolError('HTTP/2 GOAWAY: graceful shutdown', 0));
507
+ s.reject(new ProtocolError("HTTP/2 GOAWAY: graceful shutdown", 0));
492
508
  }
493
509
  this.streams.delete(id);
494
510
  }
@@ -525,14 +541,17 @@ export class H2Client {
525
541
  }
526
542
  processDecodedHeaders(s, headerBlock, flags) {
527
543
  const headers = this.decoder.decode(headerBlock);
544
+ if (s.status === 0) {
545
+ s.timings.firstByte = performance.now();
546
+ }
528
547
  for (const [name, value] of headers) {
529
- if (name === ':status') {
548
+ if (name === ":status") {
530
549
  s.status = parseInt(value, 10);
531
550
  }
532
551
  s.responseRawHeaders.push([name, value]);
533
552
  const existing = s.responseHeaders.get(name);
534
553
  if (existing !== undefined) {
535
- const sep = name === 'set-cookie' ? '; ' : ', ';
554
+ const sep = name === "set-cookie" ? "; " : ", ";
536
555
  s.responseHeaders.set(name, existing + sep + value);
537
556
  }
538
557
  else {
@@ -549,21 +568,21 @@ export class H2Client {
549
568
  resolveStreamingResponse(s) {
550
569
  const responseHeaders = {};
551
570
  for (const [k, v] of s.responseHeaders) {
552
- if (!k.startsWith(':')) {
571
+ if (!k.startsWith(":")) {
553
572
  responseHeaders[k] = v;
554
573
  }
555
574
  }
556
- const encoding = s.responseHeaders.get('content-encoding');
575
+ const encoding = s.responseHeaders.get("content-encoding");
557
576
  const decompressor = createDecompressStream(encoding);
558
577
  const outputStream = decompressor ? s.bodyStream.pipe(decompressor) : s.bodyStream;
559
578
  const response = new NLcURLResponse({
560
579
  status: s.status,
561
- statusText: '',
580
+ statusText: "",
562
581
  headers: responseHeaders,
563
- rawHeaders: s.responseRawHeaders.filter(([k]) => !k.startsWith(':')),
582
+ rawHeaders: s.responseRawHeaders.filter(([k]) => !k.startsWith(":")),
564
583
  rawBody: Buffer.alloc(0),
565
584
  body: outputStream,
566
- httpVersion: 'h2',
585
+ httpVersion: "h2",
567
586
  url: s.request.url,
568
587
  redirectCount: 0,
569
588
  timings: {
@@ -575,7 +594,7 @@ export class H2Client {
575
594
  },
576
595
  request: {
577
596
  url: s.request.url,
578
- method: s.request.method ?? 'GET',
597
+ method: s.request.method ?? "GET",
579
598
  headers: s.request.headers ?? {},
580
599
  },
581
600
  });
@@ -586,6 +605,8 @@ export class H2Client {
586
605
  clearTimeout(s.timer);
587
606
  this.streams.delete(s.id);
588
607
  this.streamRecvWindows.delete(s.id);
608
+ this.streamSendWindows.delete(s.id);
609
+ this.pendingSendData.delete(s.id);
589
610
  if (s.bodyStream) {
590
611
  if (s.status > 0) {
591
612
  this.resolveStreamingResponse(s);
@@ -595,7 +616,7 @@ export class H2Client {
595
616
  return;
596
617
  }
597
618
  const rawBody = Buffer.concat(s.dataChunks);
598
- const encoding = s.responseHeaders.get('content-encoding');
619
+ const encoding = s.responseHeaders.get("content-encoding");
599
620
  let body;
600
621
  try {
601
622
  body = encoding ? await decompressBody(rawBody, encoding) : rawBody;
@@ -605,17 +626,17 @@ export class H2Client {
605
626
  }
606
627
  const responseHeaders = {};
607
628
  for (const [k, v] of s.responseHeaders) {
608
- if (!k.startsWith(':')) {
629
+ if (!k.startsWith(":")) {
609
630
  responseHeaders[k] = v;
610
631
  }
611
632
  }
612
633
  const response = new NLcURLResponse({
613
634
  status: s.status,
614
- statusText: '',
635
+ statusText: "",
615
636
  headers: responseHeaders,
616
- rawHeaders: s.responseRawHeaders.filter(([k]) => !k.startsWith(':')),
637
+ rawHeaders: s.responseRawHeaders.filter(([k]) => !k.startsWith(":")),
617
638
  rawBody: body,
618
- httpVersion: 'h2',
639
+ httpVersion: "h2",
619
640
  url: s.request.url,
620
641
  redirectCount: 0,
621
642
  timings: {
@@ -627,7 +648,7 @@ export class H2Client {
627
648
  },
628
649
  request: {
629
650
  url: s.request.url,
630
- method: s.request.method ?? 'GET',
651
+ method: s.request.method ?? "GET",
631
652
  headers: s.request.headers ?? {},
632
653
  },
633
654
  });
@@ -653,11 +674,6 @@ export class H2Client {
653
674
  break;
654
675
  case 4:
655
676
  {
656
- const recvDelta = value - this.initialStreamRecvWindow;
657
- this.initialStreamRecvWindow = value;
658
- for (const [streamId, win] of this.streamRecvWindows) {
659
- this.streamRecvWindows.set(streamId, win + recvDelta);
660
- }
661
677
  const sendDelta = value - this.initialStreamSendWindow;
662
678
  this.initialStreamSendWindow = value;
663
679
  for (const [streamId, win] of this.streamSendWindows) {
@@ -673,9 +689,7 @@ export class H2Client {
673
689
  }
674
690
  consumeRecvWindow(streamId, length) {
675
691
  this.connectionRecvWindow -= length;
676
- const connMax = this.h2Profile
677
- ? DEFAULT_INITIAL_WINDOW_SIZE + (this.h2Profile.windowUpdate || 0)
678
- : DEFAULT_INITIAL_WINDOW_SIZE + 15663105;
692
+ const connMax = this.h2Profile ? DEFAULT_INITIAL_WINDOW_SIZE + (this.h2Profile.windowUpdate || 0) : DEFAULT_INITIAL_WINDOW_SIZE + 15663105;
679
693
  const connThreshold = Math.floor(connMax * WINDOW_UPDATE_THRESHOLD_RATIO);
680
694
  if (this.connectionRecvWindow < connThreshold) {
681
695
  const increment = connMax - this.connectionRecvWindow;
@@ -713,7 +727,7 @@ export class H2Client {
713
727
  for (const [, s] of this.streams) {
714
728
  if (s.timer)
715
729
  clearTimeout(s.timer);
716
- s.reject(new HTTPError('HTTP/2 connection closed', 0));
730
+ s.reject(new HTTPError("HTTP/2 connection closed", 0));
717
731
  }
718
732
  this.streams.clear();
719
733
  this.streamRecvWindows.clear();
@@ -745,9 +759,7 @@ export class H2Client {
745
759
  }
746
760
  }
747
761
  flushPendingSendData(streamId) {
748
- const streamIds = streamId === 0
749
- ? [...this.pendingSendData.keys()]
750
- : [streamId];
762
+ const streamIds = streamId === 0 ? [...this.pendingSendData.keys()] : [streamId];
751
763
  for (const sid of streamIds) {
752
764
  const pending = this.pendingSendData.get(sid);
753
765
  if (!pending || pending.length === 0)
@@ -785,13 +797,13 @@ function serializeBody(body) {
785
797
  return Buffer.alloc(0);
786
798
  if (Buffer.isBuffer(body))
787
799
  return body;
788
- if (typeof body === 'string')
789
- return Buffer.from(body, 'utf-8');
800
+ if (typeof body === "string")
801
+ return Buffer.from(body, "utf-8");
790
802
  if (body instanceof URLSearchParams) {
791
- return Buffer.from(body.toString(), 'utf-8');
803
+ return Buffer.from(body.toString(), "utf-8");
792
804
  }
793
- if (typeof body === 'object' && !(body instanceof ReadableStream)) {
794
- return Buffer.from(JSON.stringify(body), 'utf-8');
805
+ if (typeof body === "object" && !(body instanceof ReadableStream)) {
806
+ return Buffer.from(JSON.stringify(body), "utf-8");
795
807
  }
796
808
  return Buffer.alloc(0);
797
809
  }
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../../../src/http/h2/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../../src/http/h2/client.ts"],"names":[],"mappings":"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"}
@@ -59,12 +59,16 @@ export interface H2Frame {
59
59
  * Attempts to parse one HTTP/2 frame starting at `offset` in `data`.
60
60
  * Returns `null` if insufficient bytes are available for a complete frame.
61
61
  *
62
- * @param {Buffer} data - Input buffer potentially containing one or more frames.
63
- * @param {number} offset - Byte offset within `data` at which to start parsing.
62
+ * @param {Buffer} data - Input buffer potentially containing one or more frames.
63
+ * @param {number} offset - Byte offset within `data` at which to start parsing.
64
+ * @param {number} [maxFrameSize=16777215] - Maximum permitted payload length.
65
+ * Frames whose length field exceeds this value cause a `FRAME_SIZE_ERROR`.
66
+ * Callers should pass the peer's `SETTINGS_MAX_FRAME_SIZE` value here.
64
67
  * @returns {{ frame: H2Frame; bytesRead: number } | null} Parsed frame and total bytes consumed,
65
68
  * or `null` if more data is required.
69
+ * @throws {Error} If the frame's length field exceeds `maxFrameSize`.
66
70
  */
67
- export declare function readFrame(data: Buffer, offset: number): {
71
+ export declare function readFrame(data: Buffer, offset: number, maxFrameSize?: number): {
68
72
  frame: H2Frame;
69
73
  bytesRead: number;
70
74
  } | null;
@@ -1 +1 @@
1
- {"version":3,"file":"frames.d.ts","sourceRoot":"","sources":["../../../src/http/h2/frames.ts"],"names":[],"mappings":"AAIA;;;;GAIG;AACH,eAAO,MAAM,SAAS;;;;;;;;;;;CAWZ,CAAC;AAEX;;;;GAIG;AACH,eAAO,MAAM,KAAK;;;;;;CAMR,CAAC;AAEX;;;;GAIG;AACH,eAAO,MAAM,aAAa;;;;;;;CAOhB,CAAC;AAEX;;;;;;;;GAQG;AACH,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;;;;;;;GAQG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAuBpG;AAED;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAUjD;AAED;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,KAAK,CAAC;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,EAC9C,GAAG,UAAQ,GACV,MAAM,CAoBR;AAED;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CACpC,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,GAChB,MAAM,CASR;AAED;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,OAAO,EAClB,UAAU,EAAE,OAAO,GAClB,MAAM,CAUR;AAED;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAC5B,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,OAAO,GACjB,MAAM,CASR;AAED;;;;;;;;;GASG;AACH,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,OAAO,EAClB,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,GACb,MAAM,CAYR;AAED;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAC9B,YAAY,EAAE,MAAM,EACpB,SAAS,EAAE,MAAM,GAChB,MAAM,CAUR;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,UAAQ,GAAG,MAAM,CAShE;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,GAChB,MAAM,CASR;AAED;;;;;;GAMG;AACH,eAAO,MAAM,UAAU,qBAA2D,CAAC"}
1
+ {"version":3,"file":"frames.d.ts","sourceRoot":"","sources":["../../../src/http/h2/frames.ts"],"names":[],"mappings":"AAGA;;;;GAIG;AACH,eAAO,MAAM,SAAS;;;;;;;;;;;CAWZ,CAAC;AAEX;;;;GAIG;AACH,eAAO,MAAM,KAAK;;;;;;CAMR,CAAC;AAEX;;;;GAIG;AACH,eAAO,MAAM,aAAa;;;;;;;CAOhB,CAAC;AAEX;;;;;;;;GAQG;AACH,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;CACjB;AAKD;;;;;;;;;;;;GAYG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,GAAE,MAAgC,GAAG;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAqBpJ;AAED;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAUjD;AAED;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,KAAK,CAAC;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,EAAE,GAAG,UAAQ,GAAG,MAAM,CAoBtG;AAED;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CASlF;AAED;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,GAAG,MAAM,CAUxH;AAED;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,GAAG,MAAM,CASzF;AAED;;;;;;;;;GASG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAYlH;AAED;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAAC,YAAY,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAUhF;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,UAAQ,GAAG,MAAM,CAShE;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAS/E;AAED;;;;;;GAMG;AACH,eAAO,MAAM,UAAU,qBAA2D,CAAC"}