@types/node 20.19.25 → 24.10.4

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 (79) hide show
  1. {node v20.19 → node v24.10}/README.md +3 -3
  2. node v24.10/assert/strict.d.ts +111 -0
  3. {node v20.19 → node v24.10}/assert.d.ts +150 -97
  4. {node v20.19 → node v24.10}/async_hooks.d.ts +27 -9
  5. {node v20.19 → node v24.10}/buffer.buffer.d.ts +2 -1
  6. {node v20.19 → node v24.10}/buffer.d.ts +6 -8
  7. {node v20.19 → node v24.10}/child_process.d.ts +11 -10
  8. {node v20.19 → node v24.10}/cluster.d.ts +16 -15
  9. {node v20.19 → node v24.10}/console.d.ts +19 -18
  10. {node v20.19 → node v24.10}/crypto.d.ts +1120 -293
  11. {node v20.19 → node v24.10}/dgram.d.ts +5 -2
  12. {node v20.19 → node v24.10}/diagnostics_channel.d.ts +1 -3
  13. {node v20.19 → node v24.10}/dns/promises.d.ts +30 -6
  14. {node v20.19 → node v24.10}/dns.d.ts +69 -17
  15. {node v20.19 → node v24.10}/domain.d.ts +1 -1
  16. {node v20.19 → node v24.10}/events.d.ts +1 -2
  17. {node v20.19 → node v24.10}/fs/promises.d.ts +85 -38
  18. {node v20.19 → node v24.10}/fs.d.ts +387 -48
  19. {node v20.19 → node v24.10}/globals.d.ts +2 -4
  20. {node v20.19 → node v24.10}/globals.typedarray.d.ts +3 -0
  21. {node v20.19 → node v24.10}/http.d.ts +90 -5
  22. {node v20.19 → node v24.10}/http2.d.ts +166 -41
  23. {node v20.19 → node v24.10}/https.d.ts +4 -3
  24. {node v20.19 → node v24.10}/index.d.ts +13 -5
  25. node v24.10/inspector.d.ts +277 -0
  26. {node v20.19 → node v24.10}/inspector.generated.d.ts +1096 -829
  27. {node v20.19 → node v24.10}/module.d.ts +403 -48
  28. {node v20.19 → node v24.10}/net.d.ts +62 -20
  29. {node v20.19 → node v24.10}/os.d.ts +8 -7
  30. {node v20.19 → node v24.10}/package.json +18 -3
  31. {node v20.19 → node v24.10}/path.d.ts +3 -3
  32. {node v20.19 → node v24.10}/perf_hooks.d.ts +37 -16
  33. {node v20.19 → node v24.10}/process.d.ts +138 -16
  34. {node v20.19 → node v24.10}/punycode.d.ts +1 -1
  35. {node v20.19 → node v24.10}/querystring.d.ts +1 -1
  36. {node v20.19 → node v24.10}/readline/promises.d.ts +0 -1
  37. {node v20.19 → node v24.10}/readline.d.ts +19 -14
  38. {node v20.19 → node v24.10}/repl.d.ts +25 -17
  39. {node v20.19 → node v24.10}/sea.d.ts +11 -2
  40. node v24.10/sqlite.d.ts +937 -0
  41. {node v20.19 → node v24.10}/stream/web.d.ts +85 -45
  42. {node v20.19 → node v24.10}/stream.d.ts +36 -28
  43. {node v20.19 → node v24.10}/string_decoder.d.ts +1 -1
  44. {node v20.19 → node v24.10}/test.d.ts +587 -35
  45. {node v20.19 → node v24.10}/timers/promises.d.ts +1 -1
  46. {node v20.19 → node v24.10}/timers.d.ts +4 -5
  47. {node v20.19 → node v24.10}/tls.d.ts +62 -48
  48. {node v20.19 → node v24.10}/trace_events.d.ts +6 -6
  49. node v24.10/ts5.6/compatibility/float16array.d.ts +71 -0
  50. {node v20.19 → node v24.10}/ts5.6/globals.typedarray.d.ts +2 -0
  51. {node v20.19 → node v24.10}/ts5.6/index.d.ts +15 -5
  52. node v24.10/ts5.7/compatibility/float16array.d.ts +72 -0
  53. node v24.10/ts5.7/index.d.ts +103 -0
  54. {node v20.19 → node v24.10}/tty.d.ts +1 -1
  55. {node v20.19 → node v24.10}/url.d.ts +128 -35
  56. {node v20.19 → node v24.10}/util.d.ts +384 -390
  57. {node v20.19 → node v24.10}/v8.d.ts +175 -32
  58. {node v20.19 → node v24.10}/vm.d.ts +246 -67
  59. {node v20.19 → node v24.10}/wasi.d.ts +23 -2
  60. node v24.10/web-globals/crypto.d.ts +32 -0
  61. {node v20.19 → node v24.10}/web-globals/fetch.d.ts +4 -0
  62. node v24.10/web-globals/navigator.d.ts +25 -0
  63. node v24.10/web-globals/storage.d.ts +24 -0
  64. node v24.10/web-globals/streams.d.ts +22 -0
  65. {node v20.19 → node v24.10}/worker_threads.d.ts +205 -24
  66. {node v20.19 → node v24.10}/zlib.d.ts +185 -44
  67. node v20.19/assert/strict.d.ts +0 -8
  68. node v20.19/compatibility/disposable.d.ts +0 -16
  69. node v20.19/compatibility/index.d.ts +0 -9
  70. node v20.19/compatibility/indexable.d.ts +0 -20
  71. {node v20.19 → node v24.10}/LICENSE +0 -0
  72. {node v20.19 → node v24.10}/compatibility/iterators.d.ts +0 -0
  73. {node v20.19 → node v24.10}/constants.d.ts +0 -0
  74. {node v20.19 → node v24.10}/stream/consumers.d.ts +0 -0
  75. {node v20.19 → node v24.10}/stream/promises.d.ts +0 -0
  76. {node v20.19 → node v24.10}/ts5.6/buffer.buffer.d.ts +0 -0
  77. {node v20.19 → node v24.10}/web-globals/abortcontroller.d.ts +0 -0
  78. {node v20.19 → node v24.10}/web-globals/domexception.d.ts +0 -0
  79. {node v20.19 → node v24.10}/web-globals/events.d.ts +0 -0
@@ -37,7 +37,7 @@
37
37
  * 'Host', 'example.com',
38
38
  * 'accepT', '*' ]
39
39
  * ```
40
- * @see [source](https://github.com/nodejs/node/blob/v20.13.1/lib/http.js)
40
+ * @see [source](https://github.com/nodejs/node/blob/v24.x/lib/http.js)
41
41
  */
42
42
  declare module "http" {
43
43
  import { NonSharedBuffer } from "node:buffer";
@@ -147,6 +147,7 @@ declare module "http" {
147
147
  "content-range"?: string | undefined;
148
148
  "content-security-policy"?: string | undefined;
149
149
  "content-security-policy-report-only"?: string | undefined;
150
+ "content-type"?: string | undefined;
150
151
  cookie?: string | string[] | undefined;
151
152
  dav?: string | string[] | undefined;
152
153
  dnt?: string | undefined;
@@ -227,6 +228,7 @@ declare module "http" {
227
228
  path?: string | null | undefined;
228
229
  port?: number | string | null | undefined;
229
230
  protocol?: string | null | undefined;
231
+ setDefaultHeaders?: boolean | undefined;
230
232
  setHost?: boolean | undefined;
231
233
  signal?: AbortSignal | undefined;
232
234
  socketPath?: string | undefined;
@@ -267,6 +269,13 @@ declare module "http" {
267
269
  * @since v18.0.0
268
270
  */
269
271
  keepAliveTimeout?: number | undefined;
272
+ /**
273
+ * An additional buffer time added to the
274
+ * `server.keepAliveTimeout` to extend the internal socket timeout.
275
+ * @since 24.6.0
276
+ * @default 1000
277
+ */
278
+ keepAliveTimeoutBuffer?: number | undefined;
270
279
  /**
271
280
  * Sets the interval value in milliseconds to check for request and headers timeout in incomplete requests.
272
281
  * @default 30000
@@ -331,6 +340,17 @@ declare module "http" {
331
340
  * If the header's value is an array, the items will be joined using `; `.
332
341
  */
333
342
  uniqueHeaders?: Array<string | string[]> | undefined;
343
+ /**
344
+ * A callback which receives an
345
+ * incoming request and returns a boolean, to control which upgrade attempts
346
+ * should be accepted. Accepted upgrades will fire an `'upgrade'` event (or
347
+ * their sockets will be destroyed, if no listener is registered) while
348
+ * rejected upgrades will fire a `'request'` event like any non-upgrade
349
+ * request.
350
+ * @since v24.9.0
351
+ * @default () => server.listenerCount('upgrade') > 0
352
+ */
353
+ shouldUpgradeCallback?: ((request: InstanceType<Request>) => boolean) | undefined;
334
354
  /**
335
355
  * If set to `true`, an error is thrown when writing to an HTTP response which does not have a body.
336
356
  * @default false
@@ -411,12 +431,18 @@ declare module "http" {
411
431
  /**
412
432
  * The number of milliseconds of inactivity a server needs to wait for additional
413
433
  * incoming data, after it has finished writing the last response, before a socket
414
- * will be destroyed. If the server receives new data before the keep-alive
415
- * timeout has fired, it will reset the regular inactivity timeout, i.e., `server.timeout`.
434
+ * will be destroyed.
435
+ *
436
+ * This timeout value is combined with the
437
+ * `server.keepAliveTimeoutBuffer` option to determine the actual socket
438
+ * timeout, calculated as:
439
+ * socketTimeout = keepAliveTimeout + keepAliveTimeoutBuffer
440
+ * If the server receives new data before the keep-alive timeout has fired, it
441
+ * will reset the regular inactivity timeout, i.e., `server.timeout`.
416
442
  *
417
443
  * A value of `0` will disable the keep-alive timeout behavior on incoming
418
444
  * connections.
419
- * A value of `0` makes the http server behave similarly to Node.js versions prior
445
+ * A value of `0` makes the HTTP server behave similarly to Node.js versions prior
420
446
  * to 8.0.0, which did not have a keep-alive timeout.
421
447
  *
422
448
  * The socket timeout logic is set up on connection, so changing this value only
@@ -424,6 +450,18 @@ declare module "http" {
424
450
  * @since v8.0.0
425
451
  */
426
452
  keepAliveTimeout: number;
453
+ /**
454
+ * An additional buffer time added to the
455
+ * `server.keepAliveTimeout` to extend the internal socket timeout.
456
+ *
457
+ * This buffer helps reduce connection reset (`ECONNRESET`) errors by increasing
458
+ * the socket timeout slightly beyond the advertised keep-alive timeout.
459
+ *
460
+ * This option applies only to new incoming connections.
461
+ * @since v24.6.0
462
+ * @default 1000
463
+ */
464
+ keepAliveTimeoutBuffer: number;
427
465
  /**
428
466
  * Sets the timeout value in milliseconds for receiving the entire request from
429
467
  * the client.
@@ -1435,6 +1473,14 @@ declare module "http" {
1435
1473
  */
1436
1474
  destroy(error?: Error): this;
1437
1475
  }
1476
+ interface ProxyEnv extends NodeJS.ProcessEnv {
1477
+ HTTP_PROXY?: string | undefined;
1478
+ HTTPS_PROXY?: string | undefined;
1479
+ NO_PROXY?: string | undefined;
1480
+ http_proxy?: string | undefined;
1481
+ https_proxy?: string | undefined;
1482
+ no_proxy?: string | undefined;
1483
+ }
1438
1484
  interface AgentOptions extends NodeJS.PartialOptions<TcpSocketConnectOpts> {
1439
1485
  /**
1440
1486
  * Keep sockets around in a pool to be used by other requests in the future. Default = false
@@ -1445,6 +1491,16 @@ declare module "http" {
1445
1491
  * Only relevant if keepAlive is set to true.
1446
1492
  */
1447
1493
  keepAliveMsecs?: number | undefined;
1494
+ /**
1495
+ * Milliseconds to subtract from
1496
+ * the server-provided `keep-alive: timeout=...` hint when determining socket
1497
+ * expiration time. This buffer helps ensure the agent closes the socket
1498
+ * slightly before the server does, reducing the chance of sending a request
1499
+ * on a socket that’s about to be closed by the server.
1500
+ * @since v24.7.0
1501
+ * @default 1000
1502
+ */
1503
+ agentKeepAliveTimeoutBuffer?: number | undefined;
1448
1504
  /**
1449
1505
  * Maximum number of sockets to allow per host. Default for Node 0.10 is 5, default for Node 0.12 is Infinity
1450
1506
  */
@@ -1466,6 +1522,22 @@ declare module "http" {
1466
1522
  * @default `lifo`
1467
1523
  */
1468
1524
  scheduling?: "fifo" | "lifo" | undefined;
1525
+ /**
1526
+ * Environment variables for proxy configuration. See
1527
+ * [Built-in Proxy Support](https://nodejs.org/docs/latest-v24.x/api/http.html#built-in-proxy-support) for details.
1528
+ * @since v24.5.0
1529
+ */
1530
+ proxyEnv?: ProxyEnv | undefined;
1531
+ /**
1532
+ * Default port to use when the port is not specified in requests.
1533
+ * @since v24.5.0
1534
+ */
1535
+ defaultPort?: number | undefined;
1536
+ /**
1537
+ * The protocol to use for the agent.
1538
+ * @since v24.5.0
1539
+ */
1540
+ protocol?: string | undefined;
1469
1541
  }
1470
1542
  /**
1471
1543
  * An `Agent` is responsible for managing connection persistence
@@ -1521,7 +1593,7 @@ declare module "http" {
1521
1593
  * });
1522
1594
  * ```
1523
1595
  *
1524
- * `options` in [`socket.connect()`](https://nodejs.org/docs/latest-v20.x/api/net.html#socketconnectoptions-connectlistener) are also supported.
1596
+ * `options` in [`socket.connect()`](https://nodejs.org/docs/latest-v24.x/api/net.html#socketconnectoptions-connectlistener) are also supported.
1525
1597
  *
1526
1598
  * To configure any of them, a custom {@link Agent} instance must be created.
1527
1599
  *
@@ -2043,6 +2115,19 @@ declare module "http" {
2043
2115
  * Defaults to 16KB. Configurable using the `--max-http-header-size` CLI option.
2044
2116
  */
2045
2117
  const maxHeaderSize: number;
2118
+ /**
2119
+ * A browser-compatible implementation of `WebSocket`.
2120
+ * @since v22.5.0
2121
+ */
2122
+ const WebSocket: typeof import("undici-types").WebSocket;
2123
+ /**
2124
+ * @since v22.5.0
2125
+ */
2126
+ const CloseEvent: typeof import("undici-types").CloseEvent;
2127
+ /**
2128
+ * @since v22.5.0
2129
+ */
2130
+ const MessageEvent: typeof import("undici-types").MessageEvent;
2046
2131
  }
2047
2132
  declare module "node:http" {
2048
2133
  export * from "http";
@@ -6,7 +6,7 @@
6
6
  * import http2 from 'node:http2';
7
7
  * ```
8
8
  * @since v8.4.0
9
- * @see [source](https://github.com/nodejs/node/blob/v20.13.1/lib/http2.js)
9
+ * @see [source](https://github.com/nodejs/node/blob/v24.x/lib/http2.js)
10
10
  */
11
11
  declare module "http2" {
12
12
  import { NonSharedBuffer } from "node:buffer";
@@ -33,18 +33,14 @@ declare module "http2" {
33
33
  ":scheme"?: string | undefined;
34
34
  }
35
35
  // Http2Stream
36
- export interface StreamPriorityOptions {
37
- exclusive?: boolean | undefined;
38
- parent?: number | undefined;
39
- weight?: number | undefined;
40
- silent?: boolean | undefined;
41
- }
42
36
  export interface StreamState {
43
37
  localWindowSize?: number | undefined;
44
38
  state?: number | undefined;
45
39
  localClose?: number | undefined;
46
40
  remoteClose?: number | undefined;
41
+ /** @deprecated */
47
42
  sumDependencyWeight?: number | undefined;
43
+ /** @deprecated */
48
44
  weight?: number | undefined;
49
45
  }
50
46
  export interface ServerStreamResponseOptions {
@@ -153,10 +149,9 @@ declare module "http2" {
153
149
  */
154
150
  close(code?: number, callback?: () => void): void;
155
151
  /**
156
- * Updates the priority for this `Http2Stream` instance.
157
- * @since v8.4.0
152
+ * @deprecated Priority signaling is no longer supported in Node.js.
158
153
  */
159
- priority(options: StreamPriorityOptions): void;
154
+ priority(options: unknown): void;
160
155
  /**
161
156
  * ```js
162
157
  * import http2 from 'node:http2';
@@ -290,61 +285,111 @@ declare module "http2" {
290
285
  addListener(event: "continue", listener: () => {}): this;
291
286
  addListener(
292
287
  event: "headers",
293
- listener: (headers: IncomingHttpHeaders & IncomingHttpStatusHeader, flags: number) => void,
288
+ listener: (
289
+ headers: IncomingHttpHeaders & IncomingHttpStatusHeader,
290
+ flags: number,
291
+ rawHeaders: string[],
292
+ ) => void,
294
293
  ): this;
295
294
  addListener(event: "push", listener: (headers: IncomingHttpHeaders, flags: number) => void): this;
296
295
  addListener(
297
296
  event: "response",
298
- listener: (headers: IncomingHttpHeaders & IncomingHttpStatusHeader, flags: number) => void,
297
+ listener: (
298
+ headers: IncomingHttpHeaders & IncomingHttpStatusHeader,
299
+ flags: number,
300
+ rawHeaders: string[],
301
+ ) => void,
299
302
  ): this;
300
303
  addListener(event: string | symbol, listener: (...args: any[]) => void): this;
301
304
  emit(event: "continue"): boolean;
302
- emit(event: "headers", headers: IncomingHttpHeaders & IncomingHttpStatusHeader, flags: number): boolean;
305
+ emit(
306
+ event: "headers",
307
+ headers: IncomingHttpHeaders & IncomingHttpStatusHeader,
308
+ flags: number,
309
+ rawHeaders: string[],
310
+ ): boolean;
303
311
  emit(event: "push", headers: IncomingHttpHeaders, flags: number): boolean;
304
- emit(event: "response", headers: IncomingHttpHeaders & IncomingHttpStatusHeader, flags: number): boolean;
312
+ emit(
313
+ event: "response",
314
+ headers: IncomingHttpHeaders & IncomingHttpStatusHeader,
315
+ flags: number,
316
+ rawHeaders: string[],
317
+ ): boolean;
305
318
  emit(event: string | symbol, ...args: any[]): boolean;
306
319
  on(event: "continue", listener: () => {}): this;
307
320
  on(
308
321
  event: "headers",
309
- listener: (headers: IncomingHttpHeaders & IncomingHttpStatusHeader, flags: number) => void,
322
+ listener: (
323
+ headers: IncomingHttpHeaders & IncomingHttpStatusHeader,
324
+ flags: number,
325
+ rawHeaders: string[],
326
+ ) => void,
310
327
  ): this;
311
328
  on(event: "push", listener: (headers: IncomingHttpHeaders, flags: number) => void): this;
312
329
  on(
313
330
  event: "response",
314
- listener: (headers: IncomingHttpHeaders & IncomingHttpStatusHeader, flags: number) => void,
331
+ listener: (
332
+ headers: IncomingHttpHeaders & IncomingHttpStatusHeader,
333
+ flags: number,
334
+ rawHeaders: string[],
335
+ ) => void,
315
336
  ): this;
316
337
  on(event: string | symbol, listener: (...args: any[]) => void): this;
317
338
  once(event: "continue", listener: () => {}): this;
318
339
  once(
319
340
  event: "headers",
320
- listener: (headers: IncomingHttpHeaders & IncomingHttpStatusHeader, flags: number) => void,
341
+ listener: (
342
+ headers: IncomingHttpHeaders & IncomingHttpStatusHeader,
343
+ flags: number,
344
+ rawHeaders: string[],
345
+ ) => void,
321
346
  ): this;
322
347
  once(event: "push", listener: (headers: IncomingHttpHeaders, flags: number) => void): this;
323
348
  once(
324
349
  event: "response",
325
- listener: (headers: IncomingHttpHeaders & IncomingHttpStatusHeader, flags: number) => void,
350
+ listener: (
351
+ headers: IncomingHttpHeaders & IncomingHttpStatusHeader,
352
+ flags: number,
353
+ rawHeaders: string[],
354
+ ) => void,
326
355
  ): this;
327
356
  once(event: string | symbol, listener: (...args: any[]) => void): this;
328
357
  prependListener(event: "continue", listener: () => {}): this;
329
358
  prependListener(
330
359
  event: "headers",
331
- listener: (headers: IncomingHttpHeaders & IncomingHttpStatusHeader, flags: number) => void,
360
+ listener: (
361
+ headers: IncomingHttpHeaders & IncomingHttpStatusHeader,
362
+ flags: number,
363
+ rawHeaders: string[],
364
+ ) => void,
332
365
  ): this;
333
366
  prependListener(event: "push", listener: (headers: IncomingHttpHeaders, flags: number) => void): this;
334
367
  prependListener(
335
368
  event: "response",
336
- listener: (headers: IncomingHttpHeaders & IncomingHttpStatusHeader, flags: number) => void,
369
+ listener: (
370
+ headers: IncomingHttpHeaders & IncomingHttpStatusHeader,
371
+ flags: number,
372
+ rawHeaders: string[],
373
+ ) => void,
337
374
  ): this;
338
375
  prependListener(event: string | symbol, listener: (...args: any[]) => void): this;
339
376
  prependOnceListener(event: "continue", listener: () => {}): this;
340
377
  prependOnceListener(
341
378
  event: "headers",
342
- listener: (headers: IncomingHttpHeaders & IncomingHttpStatusHeader, flags: number) => void,
379
+ listener: (
380
+ headers: IncomingHttpHeaders & IncomingHttpStatusHeader,
381
+ flags: number,
382
+ rawHeaders: string[],
383
+ ) => void,
343
384
  ): this;
344
385
  prependOnceListener(event: "push", listener: (headers: IncomingHttpHeaders, flags: number) => void): this;
345
386
  prependOnceListener(
346
387
  event: "response",
347
- listener: (headers: IncomingHttpHeaders & IncomingHttpStatusHeader, flags: number) => void,
388
+ listener: (
389
+ headers: IncomingHttpHeaders & IncomingHttpStatusHeader,
390
+ flags: number,
391
+ rawHeaders: string[],
392
+ ) => void,
348
393
  ): this;
349
394
  prependOnceListener(event: string | symbol, listener: (...args: any[]) => void): this;
350
395
  }
@@ -397,7 +442,7 @@ declare module "http2" {
397
442
  ): void;
398
443
  pushStream(
399
444
  headers: OutgoingHttpHeaders,
400
- options?: StreamPriorityOptions,
445
+ options?: Pick<ClientSessionRequestOptions, "exclusive" | "parent">,
401
446
  callback?: (err: Error | null, pushStream: ServerHttp2Stream, headers: OutgoingHttpHeaders) => void,
402
447
  ): void;
403
448
  /**
@@ -430,7 +475,7 @@ declare module "http2" {
430
475
  * ```
431
476
  * @since v8.4.0
432
477
  */
433
- respond(headers?: OutgoingHttpHeaders, options?: ServerStreamResponseOptions): void;
478
+ respond(headers?: OutgoingHttpHeaders | readonly string[], options?: ServerStreamResponseOptions): void;
434
479
  /**
435
480
  * Initiates a response whose data is read from the given file descriptor. No
436
481
  * validation is performed on the given file descriptor. If an error occurs while
@@ -631,7 +676,6 @@ declare module "http2" {
631
676
  endStream?: boolean | undefined;
632
677
  exclusive?: boolean | undefined;
633
678
  parent?: number | undefined;
634
- weight?: number | undefined;
635
679
  waitForTrailers?: boolean | undefined;
636
680
  signal?: AbortSignal | undefined;
637
681
  }
@@ -973,7 +1017,10 @@ declare module "http2" {
973
1017
  * * `:path` \= `/`
974
1018
  * @since v8.4.0
975
1019
  */
976
- request(headers?: OutgoingHttpHeaders, options?: ClientSessionRequestOptions): ClientHttp2Stream;
1020
+ request(
1021
+ headers?: OutgoingHttpHeaders | readonly string[],
1022
+ options?: ClientSessionRequestOptions,
1023
+ ): ClientHttp2Stream;
977
1024
  addListener(event: "altsvc", listener: (alt: string, origin: string, stream: number) => void): this;
978
1025
  addListener(event: "origin", listener: (origins: string[]) => void): this;
979
1026
  addListener(
@@ -986,6 +1033,7 @@ declare module "http2" {
986
1033
  stream: ClientHttp2Stream,
987
1034
  headers: IncomingHttpHeaders & IncomingHttpStatusHeader,
988
1035
  flags: number,
1036
+ rawHeaders: string[],
989
1037
  ) => void,
990
1038
  ): this;
991
1039
  addListener(event: string | symbol, listener: (...args: any[]) => void): this;
@@ -997,6 +1045,7 @@ declare module "http2" {
997
1045
  stream: ClientHttp2Stream,
998
1046
  headers: IncomingHttpHeaders & IncomingHttpStatusHeader,
999
1047
  flags: number,
1048
+ rawHeaders: string[],
1000
1049
  ): boolean;
1001
1050
  emit(event: string | symbol, ...args: any[]): boolean;
1002
1051
  on(event: "altsvc", listener: (alt: string, origin: string, stream: number) => void): this;
@@ -1008,6 +1057,7 @@ declare module "http2" {
1008
1057
  stream: ClientHttp2Stream,
1009
1058
  headers: IncomingHttpHeaders & IncomingHttpStatusHeader,
1010
1059
  flags: number,
1060
+ rawHeaders: string[],
1011
1061
  ) => void,
1012
1062
  ): this;
1013
1063
  on(event: string | symbol, listener: (...args: any[]) => void): this;
@@ -1023,6 +1073,7 @@ declare module "http2" {
1023
1073
  stream: ClientHttp2Stream,
1024
1074
  headers: IncomingHttpHeaders & IncomingHttpStatusHeader,
1025
1075
  flags: number,
1076
+ rawHeaders: string[],
1026
1077
  ) => void,
1027
1078
  ): this;
1028
1079
  once(event: string | symbol, listener: (...args: any[]) => void): this;
@@ -1038,6 +1089,7 @@ declare module "http2" {
1038
1089
  stream: ClientHttp2Stream,
1039
1090
  headers: IncomingHttpHeaders & IncomingHttpStatusHeader,
1040
1091
  flags: number,
1092
+ rawHeaders: string[],
1041
1093
  ) => void,
1042
1094
  ): this;
1043
1095
  prependListener(event: string | symbol, listener: (...args: any[]) => void): this;
@@ -1053,6 +1105,7 @@ declare module "http2" {
1053
1105
  stream: ClientHttp2Stream,
1054
1106
  headers: IncomingHttpHeaders & IncomingHttpStatusHeader,
1055
1107
  flags: number,
1108
+ rawHeaders: string[],
1056
1109
  ) => void,
1057
1110
  ): this;
1058
1111
  prependOnceListener(event: string | symbol, listener: (...args: any[]) => void): this;
@@ -1170,7 +1223,12 @@ declare module "http2" {
1170
1223
  ): this;
1171
1224
  addListener(
1172
1225
  event: "stream",
1173
- listener: (stream: ServerHttp2Stream, headers: IncomingHttpHeaders, flags: number) => void,
1226
+ listener: (
1227
+ stream: ServerHttp2Stream,
1228
+ headers: IncomingHttpHeaders,
1229
+ flags: number,
1230
+ rawHeaders: string[],
1231
+ ) => void,
1174
1232
  ): this;
1175
1233
  addListener(event: string | symbol, listener: (...args: any[]) => void): this;
1176
1234
  emit(
@@ -1178,7 +1236,13 @@ declare module "http2" {
1178
1236
  session: ServerHttp2Session<Http1Request, Http1Response, Http2Request, Http2Response>,
1179
1237
  socket: net.Socket | tls.TLSSocket,
1180
1238
  ): boolean;
1181
- emit(event: "stream", stream: ServerHttp2Stream, headers: IncomingHttpHeaders, flags: number): boolean;
1239
+ emit(
1240
+ event: "stream",
1241
+ stream: ServerHttp2Stream,
1242
+ headers: IncomingHttpHeaders,
1243
+ flags: number,
1244
+ rawHeaders: string[],
1245
+ ): boolean;
1182
1246
  emit(event: string | symbol, ...args: any[]): boolean;
1183
1247
  on(
1184
1248
  event: "connect",
@@ -1189,7 +1253,12 @@ declare module "http2" {
1189
1253
  ): this;
1190
1254
  on(
1191
1255
  event: "stream",
1192
- listener: (stream: ServerHttp2Stream, headers: IncomingHttpHeaders, flags: number) => void,
1256
+ listener: (
1257
+ stream: ServerHttp2Stream,
1258
+ headers: IncomingHttpHeaders,
1259
+ flags: number,
1260
+ rawHeaders: string[],
1261
+ ) => void,
1193
1262
  ): this;
1194
1263
  on(event: string | symbol, listener: (...args: any[]) => void): this;
1195
1264
  once(
@@ -1201,7 +1270,12 @@ declare module "http2" {
1201
1270
  ): this;
1202
1271
  once(
1203
1272
  event: "stream",
1204
- listener: (stream: ServerHttp2Stream, headers: IncomingHttpHeaders, flags: number) => void,
1273
+ listener: (
1274
+ stream: ServerHttp2Stream,
1275
+ headers: IncomingHttpHeaders,
1276
+ flags: number,
1277
+ rawHeaders: string[],
1278
+ ) => void,
1205
1279
  ): this;
1206
1280
  once(event: string | symbol, listener: (...args: any[]) => void): this;
1207
1281
  prependListener(
@@ -1213,7 +1287,12 @@ declare module "http2" {
1213
1287
  ): this;
1214
1288
  prependListener(
1215
1289
  event: "stream",
1216
- listener: (stream: ServerHttp2Stream, headers: IncomingHttpHeaders, flags: number) => void,
1290
+ listener: (
1291
+ stream: ServerHttp2Stream,
1292
+ headers: IncomingHttpHeaders,
1293
+ flags: number,
1294
+ rawHeaders: string[],
1295
+ ) => void,
1217
1296
  ): this;
1218
1297
  prependListener(event: string | symbol, listener: (...args: any[]) => void): this;
1219
1298
  prependOnceListener(
@@ -1225,7 +1304,12 @@ declare module "http2" {
1225
1304
  ): this;
1226
1305
  prependOnceListener(
1227
1306
  event: "stream",
1228
- listener: (stream: ServerHttp2Stream, headers: IncomingHttpHeaders, flags: number) => void,
1307
+ listener: (
1308
+ stream: ServerHttp2Stream,
1309
+ headers: IncomingHttpHeaders,
1310
+ flags: number,
1311
+ rawHeaders: string[],
1312
+ ) => void,
1229
1313
  ): this;
1230
1314
  prependOnceListener(event: string | symbol, listener: (...args: any[]) => void): this;
1231
1315
  }
@@ -1299,6 +1383,14 @@ declare module "http2" {
1299
1383
  * @default 100000
1300
1384
  */
1301
1385
  unknownProtocolTimeout?: number | undefined;
1386
+ /**
1387
+ * If `true`, it turns on strict leading
1388
+ * and trailing whitespace validation for HTTP/2 header field names and values
1389
+ * as per [RFC-9113](https://www.rfc-editor.org/rfc/rfc9113.html#section-8.2.1).
1390
+ * @since v24.2.0
1391
+ * @default true
1392
+ */
1393
+ strictFieldWhitespaceValidation?: boolean | undefined;
1302
1394
  }
1303
1395
  export interface ClientSessionOptions extends SessionOptions {
1304
1396
  /**
@@ -1328,6 +1420,8 @@ declare module "http2" {
1328
1420
  Http2Request extends typeof Http2ServerRequest = typeof Http2ServerRequest,
1329
1421
  Http2Response extends typeof Http2ServerResponse<InstanceType<Http2Request>> = typeof Http2ServerResponse,
1330
1422
  > extends SessionOptions {
1423
+ streamResetBurst?: number | undefined;
1424
+ streamResetRate?: number | undefined;
1331
1425
  Http1IncomingMessage?: Http1Request | undefined;
1332
1426
  Http1ServerResponse?: Http1Response | undefined;
1333
1427
  Http2ServerRequest?: Http2Request | undefined;
@@ -1384,7 +1478,12 @@ declare module "http2" {
1384
1478
  addListener(event: "sessionError", listener: (err: Error) => void): this;
1385
1479
  addListener(
1386
1480
  event: "stream",
1387
- listener: (stream: ServerHttp2Stream, headers: IncomingHttpHeaders, flags: number) => void,
1481
+ listener: (
1482
+ stream: ServerHttp2Stream,
1483
+ headers: IncomingHttpHeaders,
1484
+ flags: number,
1485
+ rawHeaders: string[],
1486
+ ) => void,
1388
1487
  ): this;
1389
1488
  addListener(event: "timeout", listener: () => void): this;
1390
1489
  addListener(event: string | symbol, listener: (...args: any[]) => void): this;
@@ -1399,7 +1498,13 @@ declare module "http2" {
1399
1498
  session: ServerHttp2Session<Http1Request, Http1Response, Http2Request, Http2Response>,
1400
1499
  ): boolean;
1401
1500
  emit(event: "sessionError", err: Error): boolean;
1402
- emit(event: "stream", stream: ServerHttp2Stream, headers: IncomingHttpHeaders, flags: number): boolean;
1501
+ emit(
1502
+ event: "stream",
1503
+ stream: ServerHttp2Stream,
1504
+ headers: IncomingHttpHeaders,
1505
+ flags: number,
1506
+ rawHeaders: string[],
1507
+ ): boolean;
1403
1508
  emit(event: "timeout"): boolean;
1404
1509
  emit(event: string | symbol, ...args: any[]): boolean;
1405
1510
  on(
@@ -1417,7 +1522,12 @@ declare module "http2" {
1417
1522
  on(event: "sessionError", listener: (err: Error) => void): this;
1418
1523
  on(
1419
1524
  event: "stream",
1420
- listener: (stream: ServerHttp2Stream, headers: IncomingHttpHeaders, flags: number) => void,
1525
+ listener: (
1526
+ stream: ServerHttp2Stream,
1527
+ headers: IncomingHttpHeaders,
1528
+ flags: number,
1529
+ rawHeaders: string[],
1530
+ ) => void,
1421
1531
  ): this;
1422
1532
  on(event: "timeout", listener: () => void): this;
1423
1533
  on(event: string | symbol, listener: (...args: any[]) => void): this;
@@ -1436,7 +1546,12 @@ declare module "http2" {
1436
1546
  once(event: "sessionError", listener: (err: Error) => void): this;
1437
1547
  once(
1438
1548
  event: "stream",
1439
- listener: (stream: ServerHttp2Stream, headers: IncomingHttpHeaders, flags: number) => void,
1549
+ listener: (
1550
+ stream: ServerHttp2Stream,
1551
+ headers: IncomingHttpHeaders,
1552
+ flags: number,
1553
+ rawHeaders: string[],
1554
+ ) => void,
1440
1555
  ): this;
1441
1556
  once(event: "timeout", listener: () => void): this;
1442
1557
  once(event: string | symbol, listener: (...args: any[]) => void): this;
@@ -1455,7 +1570,12 @@ declare module "http2" {
1455
1570
  prependListener(event: "sessionError", listener: (err: Error) => void): this;
1456
1571
  prependListener(
1457
1572
  event: "stream",
1458
- listener: (stream: ServerHttp2Stream, headers: IncomingHttpHeaders, flags: number) => void,
1573
+ listener: (
1574
+ stream: ServerHttp2Stream,
1575
+ headers: IncomingHttpHeaders,
1576
+ flags: number,
1577
+ rawHeaders: string[],
1578
+ ) => void,
1459
1579
  ): this;
1460
1580
  prependListener(event: "timeout", listener: () => void): this;
1461
1581
  prependListener(event: string | symbol, listener: (...args: any[]) => void): this;
@@ -1474,7 +1594,12 @@ declare module "http2" {
1474
1594
  prependOnceListener(event: "sessionError", listener: (err: Error) => void): this;
1475
1595
  prependOnceListener(
1476
1596
  event: "stream",
1477
- listener: (stream: ServerHttp2Stream, headers: IncomingHttpHeaders, flags: number) => void,
1597
+ listener: (
1598
+ stream: ServerHttp2Stream,
1599
+ headers: IncomingHttpHeaders,
1600
+ flags: number,
1601
+ rawHeaders: string[],
1602
+ ) => void,
1478
1603
  ): this;
1479
1604
  prependOnceListener(event: "timeout", listener: () => void): this;
1480
1605
  prependOnceListener(event: string | symbol, listener: (...args: any[]) => void): this;
@@ -1863,7 +1988,7 @@ declare module "http2" {
1863
1988
  * If there were no previous values for the header, this is equivalent to calling {@link setHeader}.
1864
1989
  *
1865
1990
  * Attempting to set a header field name or value that contains invalid characters will result in a
1866
- * [TypeError](https://nodejs.org/docs/latest-v20.x/api/errors.html#class-typeerror) being thrown.
1991
+ * [TypeError](https://nodejs.org/docs/latest-v24.x/api/errors.html#class-typeerror) being thrown.
1867
1992
  *
1868
1993
  * ```js
1869
1994
  * // Returns headers including "set-cookie: a" and "set-cookie: b"
@@ -2195,8 +2320,8 @@ declare module "http2" {
2195
2320
  * will result in a `TypeError` being thrown.
2196
2321
  * @since v8.4.0
2197
2322
  */
2198
- writeHead(statusCode: number, headers?: OutgoingHttpHeaders): this;
2199
- writeHead(statusCode: number, statusMessage: string, headers?: OutgoingHttpHeaders): this;
2323
+ writeHead(statusCode: number, headers?: OutgoingHttpHeaders | readonly string[]): this;
2324
+ writeHead(statusCode: number, statusMessage: string, headers?: OutgoingHttpHeaders | readonly string[]): this;
2200
2325
  /**
2201
2326
  * Call `http2stream.pushStream()` with the given headers, and wrap the
2202
2327
  * given `Http2Stream` on a newly created `Http2ServerResponse` as the callback
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * HTTPS is the HTTP protocol over TLS/SSL. In Node.js this is implemented as a
3
3
  * separate module.
4
- * @see [source](https://github.com/nodejs/node/blob/v20.13.1/lib/https.js)
4
+ * @see [source](https://github.com/nodejs/node/blob/v24.x/lib/https.js)
5
5
  */
6
6
  declare module "https" {
7
7
  import { NonSharedBuffer } from "node:buffer";
@@ -14,12 +14,13 @@ declare module "https" {
14
14
  Response extends typeof http.ServerResponse<InstanceType<Request>> = typeof http.ServerResponse,
15
15
  > extends http.ServerOptions<Request, Response>, tls.TlsOptions {}
16
16
  interface RequestOptions extends http.RequestOptions, tls.SecureContextOptions {
17
- checkServerIdentity?: typeof tls.checkServerIdentity | undefined;
17
+ checkServerIdentity?:
18
+ | ((hostname: string, cert: tls.DetailedPeerCertificate) => Error | undefined)
19
+ | undefined;
18
20
  rejectUnauthorized?: boolean | undefined; // Defaults to true
19
21
  servername?: string | undefined; // SNI TLS Extension
20
22
  }
21
23
  interface AgentOptions extends http.AgentOptions, tls.ConnectionOptions {
22
- rejectUnauthorized?: boolean | undefined;
23
24
  maxCachedSessions?: number | undefined;
24
25
  }
25
26
  /**